SystemExec durch CuxD ersetzen -> vorher / nachher

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

pdulles
Beiträge: 75
Registriert: 28.11.2015, 23:33

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von pdulles » 17.08.2016, 20:35

dondaik hat geschrieben:interessante aufgabenstellung: wie schalte ich ein gerät elektronisch per software ein welches hardwaremäßig aus ist und nicht im standbymodus... :-) :-)
Da es hierbei nicht um einen EIN/AUS Schalter handelt sondern um einen Taster, der auch nur einen Befehl auslöst,
könnte es ja schon sein, diesen Befehl per Software zu steuern
pdulles
--------------------------------------------------------------------
223 Kanäle in 89 Geräten und 68 CUxD-Kanäle in 19 CUxD-Geräten

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von Homoran » 18.08.2016, 09:51

Dazu müsste aber wenigstens die Netzwerkkarte unter Strom sein. Und das ist sie imho im deep standby nicht.

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

t_heinrich
Beiträge: 542
Registriert: 24.07.2011, 16:38

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von t_heinrich » 18.08.2016, 10:14

Man muss einen IR Befehl senden. zB mittels IRTrans.


Gesendet von iPhone mit Tapatalk

ichdertyp
Beiträge: 20
Registriert: 17.10.2016, 21:40

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von ichdertyp » 17.10.2016, 21:48

Hallo liebe Helfer,

ich habe ein Problem bei den Einstellungen der Mail-Benachrichtigung bei "Klingel". Lustigerweise hat es zwischendurch geklappt und nun leider nicht mehr.

Das Skript:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("cd /usr/local/addons/sendCamShot/ && tclsh sendCamShot.tcl"); 
Das tcl:

Code: Alles auswählen

package require base64

set SNAPSHOT_URL "http://benutzer:passwort@192.168.xxxxxxx/Streaming/Channels/1/picture"
set EMAIL_SUBJECT "Es hat geklingelt"
set EMAIL_BODY "Diese Person hat geklingelt:"
set SEND_TO "meine adresse"
set SEND_FROM "sende-adresse"
set SMTP_HOST „host“
set SMTP_USER "benutzer"
set SMTP_PASSWD "passwort"
set SMTP_DOMAIN "sende-adresse nach dem @"


# DEFINE EMAIL TEMPLATE
set tmpl "To: $SEND_TO
From: $SEND_FROM
Subject: $EMAIL_SUBJECT
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk\"

--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 8bit

$EMAIL_BODY

--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"photo.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo.jpg\"

{IMGDATA}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"
                                    
                                                             
# DOWNLOAD THE SNAPSHOT                                      
exec wget -q -O /tmp/snapshot.jpg $SNAPSHOT_URL                                                        
                                                             
# READ SNAPSHOT INTO VARIABLE & BASE64 ENCODE                                                          
set fp [open "/tmp/snapshot.jpg" r]                                                                    
fconfigure $fp -translation binary                                                                     
set imgdata [read $fp]                                                                                 
set encodeddata [::base64::encode $imgdata]                     
close $fp                                                    
                                                                
# REPLACE IMG DATA WITH REAL IMAGE DATA                
regsub -all "{IMGDATA}" $tmpl $encodeddata tmpl              
                                                                
# WRITE READY EMAIL TO A TMP FILE                            
set fp [open "/tmp/ready.eml" w]                                
puts $fp $tmpl                                                  
close $fp                                                    
                                                       
set config "                                                    
defaults                                               
tls on                                                          
tls_certcheck off                                               
logfile /var/log/email.log                                      
account provider                                                
host $SMTP_HOST                                
from $SEND_FROM                                
domain $SMTP_DOMAIN                            
auth login                                     
user $SMTP_USER
password $SMTP_PASSWD                                           
account default: provider                                    
"                                                               
                                                                
set fp [open "/tmp/msmtp.conf" w]                            
puts $fp $config                                       
close $fp                                                       
                                                       
exec chmod 0600 /tmp/msmtp.conf                                 
                                                                
# SEND EMAIL USING MSMTP                                        
exec cat /tmp/ready.eml | msmtp -C /tmp/msmtp.conf $SEND_TO     
                                               
# CLEAN UP                                     
exec rm -f /tmp/msmtp.conf                                 
exec rm -f /tmp/ready.eml                      
exec rm -f /tmp/snapshot.jpg
kann mir jemand helfen? Danke im Voraus :)

IchDerTyp

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von alchy » 17.10.2016, 22:05

Wieso denkst du, das hätte irgendetwas mit cuxd zu tun?
Das >> H I E R << gelesen?

die sendCamShot.tcl Datei auf der Kommandozeile aufgerufen ergibt welche Fehlermeldung?

....

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ichdertyp
Beiträge: 20
Registriert: 17.10.2016, 21:40

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von ichdertyp » 18.10.2016, 09:46

Hey Alchy,

danke für die schnelle Antwort :)

ich habe meine Anfrage versehentlich hier gepostet, eigentlich sollte sie in den von dir verlinkten Bereich, den ich selbstverständlich durchforstet habe. Ob ich alles verstanden habe steht auf einem anderen Blatt ;)

von mir aus gerne dort weiter...

Nun zur tcl: wo finde ich die Kommandozeile? In Filezilla kann ich keine finden :?

mike08
Beiträge: 283
Registriert: 13.09.2015, 11:18
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 3 Mal
Danksagung erhalten: 2 Mal

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von mike08 » 19.11.2016, 11:41

HAllo,

kann "/usr/local/addons/cuxd/extra/ether-wake -die-MAC-" direkt auf "KEY|CMD_SHORT" von "CUX2801002" legen oder wie ist der richtige Eintrag.

Habe schon viel gelesen und sicherlich einiges überlesen! Vielleicht hat einer einen schnellen Verweis. Danke!

Grüße
Michael
Fritzbox 7590 mit 7.x (immer aktuell)
Raspberry Pi3b mit RM: Aktuell
CCU2: Abgeschaltet
Zusatzsoftware: CUx-Daemon, E-Mail CCU Addon, hm_pdetect, hm-Print
Skripte: Servicemeldung 1.x http://homematic-forum.de/forum/viewtop ... 18#p211604
ioBroker auf Synology DS916+II imTest;
Wandtermostat, Tür-/Fensterkontakt, Ausenthermostat, 1 Kanal Taster, 2 Kanal Taster, Hutch-4fach Aktor, 1fach UP-Aktor, 2fach UP-Aktor, E-Paper-Display; CUL868(v3), USB2.0-Ser! [FF]

mike08
Beiträge: 283
Registriert: 13.09.2015, 11:18
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 3 Mal
Danksagung erhalten: 2 Mal

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von mike08 » 19.11.2016, 12:39

mike08 hat geschrieben:Hallo,
kann "/usr/local/addons/cuxd/extra/ether-wake -die-MAC-" direkt auf "KEY|CMD_SHORT" von "CUX2801002" legen oder wie ist der richtige Eintrag.
JA!
Fritzbox 7590 mit 7.x (immer aktuell)
Raspberry Pi3b mit RM: Aktuell
CCU2: Abgeschaltet
Zusatzsoftware: CUx-Daemon, E-Mail CCU Addon, hm_pdetect, hm-Print
Skripte: Servicemeldung 1.x http://homematic-forum.de/forum/viewtop ... 18#p211604
ioBroker auf Synology DS916+II imTest;
Wandtermostat, Tür-/Fensterkontakt, Ausenthermostat, 1 Kanal Taster, 2 Kanal Taster, Hutch-4fach Aktor, 1fach UP-Aktor, 2fach UP-Aktor, E-Paper-Display; CUL868(v3), USB2.0-Ser! [FF]

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von alchy » 19.11.2016, 13:21

ichdertyp hat geschrieben: Nun zur tcl: wo finde ich die Kommandozeile? In Filezilla kann ich keine finden :?
Kommandozeile:
  • SSH auf der CCU2 einschalten und ein Passwort vergeben wie >> H I E R << auf dem Bild angezeigt.
  • mittels >> PUTTY << musst du dann eine Verbindung per ssh zur CCU aufbauen
mike08 hat geschrieben:kann "/usr/local/addons/cuxd/extra/ether-wake -die-MAC-" direkt auf "KEY|CMD_SHORT" von "CUX2801002" legen oder wie ist der richtige Eintrag.
Jupp

Code: Alles auswählen

/usr/local/addons/cuxd/extra/ether-wake 00:11:22:33:44:55
da ja

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/usr/local/addons/cuxd/extra/ether-wake 00:11:22:33:44:55");
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

MoritzWB
Beiträge: 37
Registriert: 18.10.2016, 11:16
Hat sich bedankt: 2 Mal

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von MoritzWB » 20.11.2016, 11:14

Hallo Zusammen,
ich möchte das meine Waschmaschine mir eine Nachricht sendet wenn sie fertig ist. Wie das prinzipiell geht ist mir klar, ich bin soweit, dass die CCU "nur" noch einen http oder https Link aufrufen muss damit die Nachricht ankommt. Und da hängt es jetzt.
Ich habe um das Ganze zu testen mir einfach mal angenommen, dass ich mit einem Zeitwert X das Skript ausführe und möchte dies tun. Ich habe leider keine Ahnung woran es hängt und habe den Link sowohl als SystemExec und mit CuxD eingefügt, aber nichts.
Wäre nett, wenn ihr mal über die Skripts schaut und mir noch ein Tipp geben könnt, wie ich teste ob die CCU überhaupt was tut, wie kann ich ein Skript direkt testen, und wie könnte ich die zeitgesteuerte Ausführung von irgendetwas am einfachsten testen?

Code: Alles auswählen

string stderr;
string stdout;
string url="\"https://api.telegram.org/botXXX:XXX/sendMessage?chat_id=XXX&text=Wäsche ist fertig!"";
system.Exec("wget –no-check-certificate -q -O – "#url, &stdout, &stderr);

Code: Alles auswählen

string url="https://api.telegram.org/botXXX:XXX/sendMessage?chat_id=XXX&text=Wäsche ist fertig!";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“