CuxD mit alexa_remote_control.sh geht nicht mehr

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
fantasticn
Beiträge: 102
Registriert: 15.03.2016, 14:34

CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von fantasticn » 18.07.2021, 13:04

Hallo zusammen,

ich habe seit geraumer Zeit das Problem, dass auf meiner CCU3 meine CuxD-Aufrufe des alexa_remote_control.sh-Scripts plötzlich nicht mehr klappen. Sowohl das Script als auch CuxD scheinen aber zu funktionieren.

Beispiel:
Aufruf im Terminal-Fenster: ./alexa_remote_control.sh -d 'Echo Buero' -e speak:'Die Waschmaschine ist fertig!'
= funktioniert

Aufruf in der CCU:
system.Exec("sh /usr/local/addons/user/alexa_remote_control.sh -d 'Echo Buero' -e speak:'Die Waschmaschine ist fertig!'");
= funktioniert

Aufruf in der CCU
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("sh /usr/local/addons/user/alexa_remote_control.sh -d 'Echo Buero' -e speak:'Die Waschmaschine ist fertig!'");
= funktioniert nicht

Auch andere Aufrufe des Scripts mit dom.GetObject... klappen nicht, aber mit system.Exec.

Nun könnte man meinen, dass CuxD nicht mehr läuft. Deshalb habe ich es auch vorsorglich schon mehrfach deinstalliert und neu installiert (immer mit diversen Restarts dazwischen). Auch habe ich schon die ältere Version 2.51 versucht (bin jetzt wieder zurück auf die aktuelle Version 2.6). Zudem habe ich es mit anderen Aufrufen getestet und CuxD scheint zu laufen. Also z.B. der Aufruf des Mail-Addons mit

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 04");

versendet brav die voreingestellte E-Mail.

Was läuft also nun falsch beim Aufruf des alexa_remote_control.sh-Scripts?

Ich sage schon mal many thanx vorab für Eure Hilfe!

Edit:
Habe gerade festgestellt: Der funktionsfähige Aufruf (Versand einer Mail über CuxD) sorgt dafür, dass der entsprechende "Taster", an den ich das Exec-Command bei CuxD angebunden habe, in der CCU eine Aktualisierung erfährt (Zeit des letzten Aufrufs ist das die Uhrezit, an dem ich das Kommando abgesetzt habe). Der nicht-funktionsfähige Aufruf des alexa_remote_control.sh-Scripts indes sorgt auch für keine Aktualisierung, als würde der virtuelle Taster dann auch nicht gedrückt.

Benutzeravatar
uwe111
Beiträge: 4805
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von uwe111 » 18.07.2021, 14:25

fantasticn hat geschrieben:
18.07.2021, 13:04
Habe gerade festgestellt: Der funktionsfähige Aufruf (Versand einer Mail über CuxD) sorgt dafür, dass der entsprechende "Taster", an den ich das Exec-Command bei CuxD angebunden habe, in der CCU eine Aktualisierung erfährt (Zeit des letzten Aufrufs ist das die Uhrezit, an dem ich das Kommando abgesetzt habe). Der nicht-funktionsfähige Aufruf des alexa_remote_control.sh-Scripts indes sorgt auch für keine Aktualisierung, als würde der virtuelle Taster dann auch nicht gedrückt.
Was steht denn dazu im CUxD-Syslog?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

fantasticn
Beiträge: 102
Registriert: 15.03.2016, 14:34

Re: CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von fantasticn » 18.07.2021, 14:49

Hallo Uwe,

zunächst schon mal vielen Dank für die Antwort.

Im CuxD-Log steht:

Code: Alles auswählen

Jul 18 14:47:46 ccu daemon.info cuxd[2418]: system(sh /usr/local/addons/user/alexa_remote_control.sh -d 'Echo Buero' -e speak:'Die Waschmaschine ist fertig!') exit(1) 1s
Im Full Syslog steht:

Code: Alles auswählen

Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 4, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 5, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu user.debug rfd: Event: MEQ0396945:1.ERROR_OVERLOAD=false
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 6, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 7, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 8, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 9, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 1 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 10, condition result = 0 [Evaluate():iseCondition.cpp:1078]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: sc = 10, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:12 ccu user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Jul 18 14:47:12 ccu local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 0 [Evaluate():iseCondition.cpp:392]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: sc = 16, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, but dp is not the trigger, condition = 1 [CheckCondition2Data():iseCondition.cpp:547]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: type = DP_LESSOREQUAL, condition valL = 0.000000 valR1 = 0.000000 [Evaluate():iseCondition.cpp:338]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: sc = 17, condition result = 0 [Evaluate():iseCondition.cpp:1078]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: sc = 17, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseRule.cpp:227]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: c = 0, condition result = 0 [Evaluate():iseRule.cpp:235]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: Rule evaluated state is TRUE by Program ID = 19492 'Status Licht innen prüfen'; Destination ID = 39285 [SetState():iseDOMPrg.cpp:509]
Jul 18 14:47:46 ccu local0.info ReGaHss: Info: break execute for Program ID = 19492 'Status Licht innen prüfen', rule's trigger flags = 0 [SetState():iseDOMPrg.cpp:530]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: type = DP_EXACTVALUE, condition valL = 1 valR1 = 0 [Evaluate():iseCondition.cpp:352]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: type = DP_EXACTVALUE, condition valL = 1 valR1 = 0 [Evaluate():iseCondition.cpp:352]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: type = DP_EXACTVALUE, condition valL = 1 valR1 = 0 [Evaluate():iseCondition.cpp:352]
Jul 18 14:47:46 ccu local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jul 18 14:47:46 ccu user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Jul 18 14:47:46 ccu user.debug rfd: HSSXmlRpcEventDispatcher::Handle send 7 events
Jul 18 14:47:46 ccu user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Jul 18 14:47:46 ccu user.debug multimac: C> @881234: #21 LLMAC Response ACK @13797: 35 E5
Jul 18 14:47:48 ccu local0.info ReGaHss: Info: start web processing, worker thread #0 {"HTTP-Listener"} [spawnNewProcess():httpListener.cpp:208]
Jul 18 14:47:48 ccu local0.info ReGaHss: Info: recvd 867 bytes by web server #1 [ThreadFunction():httpServer.cpp:771]
Jul 18 14:47:48 ccu local0.info ReGaHss: Info: IseSession GetSessionId from URL: /esp/system.htm?sid=@jzH5STlTJJ@&action=UpdateUI [GetSessionId():iseSession.cpp:185]
Jul 18 14:47:48 ccu local0.info ReGaHss: Info: http id #1 sends parsed file [ParseFileAndSendWebResponse():httpServer.cpp:2035]
Jul 18 14:47:49 ccu user.debug multimac: A>: #179 HmSystem DutyCycleRequest 
Jul 18 14:47:49 ccu user.debug multimac: A<: #179 HmSystem Response 02 2C
Mir sagt das leider gar nichts.
Zuletzt geändert von uwe111 am 18.07.2021, 16:17, insgesamt 1-mal geändert.
Grund: Code in CODE Tags

Benutzeravatar
uwe111
Beiträge: 4805
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von uwe111 » 18.07.2021, 16:19

Code: Alles auswählen

... exit(1) 1s
bedeutet, dass bei der Verarbeitung des Scripts ein Fehler aufgetreten ist.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

fantasticn
Beiträge: 102
Registriert: 15.03.2016, 14:34

Re: CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von fantasticn » 19.07.2021, 14:57

So, hab es nochmals getestet in der CCU:

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 04");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/bin/sh /usr/local/addons/user/alexa_remote_control.sh -d 'Echo Buero' -r s223993");

Führt dazu, dass der erste Befehl ausgeführt wird (E-Mail wird versandt), aber der zweite nicht (Radiosender wird auf dem besagten Echo nicht ausgeführt).

Im CUxS Syslog steht sodann:
Jul 19 14:52:21 ccu daemon.info cuxd[20300]: system(/bin/sh /usr/local/addons/user/alexa_remote_control.sh -d 'Echo Buero' -r s223993) exit(1) 0s

Ändere ich den zweiten Befehl indes in
system.Exec("/bin/sh /usr/local/addons/user/alexa_remote_control.sh -d 'Echo Buero' -r s223993");

wird der Radiosender auf dem Echo ordnungsgemäß gestartet.

Erkenntnis: CUxD scheint zu laufen und das Alexa-Script auch. Aber beides zusammen geht nicht mehr. Any idea warum?

Benutzeravatar
uwe111
Beiträge: 4805
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von uwe111 » 19.07.2021, 15:12

fantasticn hat geschrieben:
19.07.2021, 14:57
Erkenntnis: CUxD scheint zu laufen und das Alexa-Script auch. Aber beides zusammen geht nicht mehr. Any idea warum?
Um die Stelle, an der das Script hängt, herauszufinden, müsstest Du das Alexa-Script /usr/local/addons/user/alexa_remote_control.sh debuggen.
Warum rufst Du es eigentlich nicht direkt, sondern mittels /bin/sh davor auf? Das ist ja eigentlich nicht notwendig.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

fantasticn
Beiträge: 102
Registriert: 15.03.2016, 14:34

Re: CuxD mit alexa_remote_control.sh geht nicht mehr

Beitrag von fantasticn » 19.07.2021, 16:26

Hallo Uwe,

vielen Dank für Deine Antwort. Den Aufruf des Scripts habe ich aus der Anleitung übernommen. Dass man das vorangestellte "sh" oder auch "/bin/sh" auch weglassen kann, wusste ich nicht

Deiner Analyse zufolge liegt es nicht an CUxD, sondern am alexa_remote_control.sh-Script. Ich habe deshalb nunmehr probeweise mal die Version ohne jq-Unterstützung verwendet (gibt es auch bei Lötzimmer; damit sind dann bestimmte Abfragen nicht möglich). Und siehe da: Damit geht es :-)) Warum das Script mit jq-Unterstützung bei mir nicht läuft, ist mir zwar schleierhaft (das jq-Addon für die CCu habe ich ordnungsgemäß installiert). Aber ich benötige diese Zusatzfunktionen nicht zwingend, komme also auch mit der anderen Script-Version klar.

Also denn: Fürs erste habe ich eine Lösung gefunden. Ich bin wieder glücklich. Vielen herzlichen Dank für Deinen support!

Norman

Antworten

Zurück zu „CUxD“