Seite 7 von 9

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 17.08.2016, 20:35
von pdulles
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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 18.08.2016, 09:51
von Homoran
Dazu müsste aber wenigstens die Netzwerkkarte unter Strom sein. Und das ist sie imho im deep standby nicht.

Gruß
Rainer

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 18.08.2016, 10:14
von t_heinrich
Man muss einen IR Befehl senden. zB mittels IRTrans.


Gesendet von iPhone mit Tapatalk

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 17.10.2016, 21:48
von ichdertyp
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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 17.10.2016, 22:05
von alchy
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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 18.10.2016, 09:46
von ichdertyp
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 :?

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 19.11.2016, 11:41
von mike08
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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 19.11.2016, 12:39
von mike08
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!

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 19.11.2016, 13:21
von alchy
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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 20.11.2016, 11:14
von MoritzWB
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);