CUxD SystemDevice mit HTTP-Call per wget?

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

Moderator: Co-Administratoren

Antworten
theshmike
Beiträge: 14
Registriert: 12.01.2018, 12:54

CUxD SystemDevice mit HTTP-Call per wget?

Beitrag von theshmike » 14.01.2018, 20:04

Hallo zusammen,

ich habe mir mit einem Raspberry für den TV Ambilight gebastelt, welches ich per Webserver auf dem PI aus- und einschalten kann.
Das funktioniert mit

Code: Alles auswählen

http://pi/ambilight.pl?action=off
http://pi/ambilight.pl?action=on
http://pi/ambilight.pl?action=status
Ich würde das Ambilight nun gerne in HM einbinden, damit ich per "Alle-Lampen-aus"-Funktion auch das Ambilight erwische.
Mein erster Ansatz war nun ein System-Gerät (EXEC, Schalter) per CUxD zu erzeugen und habe dabei das Problem, dass es das Gerät einfach nicht tut. So wie ich das verstehe, müsste ich z.B. im Kanal unter CMD|SHORT eintragen:

Code: Alles auswählen

wget http://pi/ambilight.pl?action=off
Das nimmt er allerdings schon gar nicht. Er meint er hätte alles fein ans Gerät übertragen, aber beim nächsten Aufruf der Einstellungen ist das Feld wieder leer.

Habe ich irgendwo einen Denkfehler?

Ein zweiter Gedanke ist noch: Kann CUxD eigentlich den aktuellen Status des Geräts auch per Abfrage "?action=status" abfragen?
Ich könnte das Ambilight ja z.B. per HM ein, und per Handfernbedienung des PI wieder ausschalten. In diesem Fall würde HM das Gerät ja immer noch als "AN" mitführen.

Für ein paar Tipps wäre ich sehr dankbar :)

Benutzeravatar
uwe111
Beiträge: 3628
Registriert: 26.02.2011, 23:22
Kontaktdaten:

Re: CUxD SystemDevice mit HTTP-Call per wget?

Beitrag von uwe111 » 15.01.2018, 09:24

theshmike hat geschrieben:Das nimmt er allerdings schon gar nicht. Er meint er hätte alles fein ans Gerät übertragen, aber beim nächsten Aufruf der Einstellungen ist das Feld wieder leer.

Habe ich irgendwo einen Denkfehler?
Schau Dir mal die Tabelle mit den Sonderzeichen in der CUxD-Doku Kapitel 5.8 an. Das = Zeichen musst Du ersetzen!
theshmike hat geschrieben:Ein zweiter Gedanke ist noch: Kann CUxD eigentlich den aktuellen Status des Geräts auch per Abfrage "?action=status" abfragen?
Ja, die Möglichkeit besteht mittels periodischer Abfrage über ein eigenes Script (CMD_TIMER Geräteparameter). Das Script für die Abfrage und Verabreitung des Rückgabewertes kannst Du frei entwickeln.

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.0.1, RFD-Monitor, Vellemann K8055, SSH KeyDir

theshmike
Beiträge: 14
Registriert: 12.01.2018, 12:54

Re: CUxD SystemDevice mit HTTP-Call per wget?

Beitrag von theshmike » 15.01.2018, 09:54

Ja, die Möglichkeit besteht mittels periodischer Abfrage über ein eigenes Script (CMD_TIMER Geräteparameter). Das Script für die Abfrage und Verabreitung des Rückgabewertes kannst Du frei entwickeln.
Ah, das hilft mir schonmal weiter, danke!
Gibt es evtl. irgendwo ein Beispiel, aus welchem ersichtlich ist, welche Werte das Script für an/aus zurückgeben muss?
Ich bin ja als Informatiker nun wirklich nicht ganz unbedarft, aber in diesem Punkt werde ich aus dem CUxD-Handbuch nicht ganz schlau ;)

Viele Grüße,
Mike

Benutzeravatar
uwe111
Beiträge: 3628
Registriert: 26.02.2011, 23:22
Kontaktdaten:

Re: CUxD SystemDevice mit HTTP-Call per wget?

Beitrag von uwe111 » 15.01.2018, 12:51

Hallo Mike,
theshmike hat geschrieben:Gibt es evtl. irgendwo ein Beispiel, aus welchem ersichtlich ist, welche Werte das Script für an/aus zurückgeben muss?
Das Script wird periodisch aufgerufen und könnte dann per HM-Script beliebige Werte auf der CCU ändern.
Ich denke, dass die Fritzbox-Scripts viewtopic.php?f=37&t=27994 das nutzen.

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.0.1, RFD-Monitor, Vellemann K8055, SSH KeyDir

theshmike
Beiträge: 14
Registriert: 12.01.2018, 12:54

Re: CUxD SystemDevice mit HTTP-Call per wget?

Beitrag von theshmike » 15.01.2018, 15:33

Ah okay, jetzt verstehe ich das! D.h. ich schreibe ein Skript, welches ggf. auch die Stati mehrerer virtueller Geräte prüft und dann per .State() o.Ä. den Status der jeweiligen Geräte selbst ändert.
Dachte bisher, das Skript muss in irgendeinem vorgegebenem Format Rückgabewerte an den Aufrufer ausgeben.

Macht Sinn, werde ich mich mal dransetzen, danke! :D

Antworten

Zurück zu „CUxD“