Gerät 28 Exec Statusupdate

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

Moderator: Co-Administratoren

emil70
Beiträge: 130
Registriert: 02.12.2017, 13:47
Hat sich bedankt: 1 Mal

Re: Gerät 28 Exec Statusupdate

Beitrag von emil70 » 25.12.2018, 09:02

emil70 hat geschrieben:
24.12.2018, 13:56
Wie geht das?
Der Datenpunkt heißt SET_STATE. Damit kannst Du den Gerätestatus setzen.

Viele Grüße

Uwe
Wie mach ich das dann genau, soetwas anzulegen?
gruß emil70

Benutzeravatar
uwe111
Beiträge: 3968
Registriert: 26.02.2011, 22:22
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Gerät 28 Exec Statusupdate

Beitrag von uwe111 » 25.12.2018, 14:17

emil70 hat geschrieben:
25.12.2018, 09:02
Wie mach ich das dann genau, soetwas anzulegen?
Du musst nichts anlegen! Schau mal in die CUxD-Doku.
Jeder Kanal vom Gerät (28) System.Exec hat einen beschreibbaren SET_STATE Datenpunkt.
Wenn Du diesen Datenpunkt auf den neuen Status setzt, dann ändert sich der Gerätestatus entsprechend.

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

Benutzeravatar
DerHeimer
Beiträge: 166
Registriert: 30.08.2014, 00:57
Danksagung erhalten: 1 Mal

Re: Gerät 28 Exec Statusupdate

Beitrag von DerHeimer » 28.12.2018, 18:30

Da ich gerade dieses Thema auch habe, hatte ich diesen Fred gefunden.

Ich frage mich also auch, wie ich per CuxD einen Tasmota Shelly vom Status her abfragen kann.

Den Status selber bekommt man ja mittels

Code: Alles auswählen

http://192.168.1.123/cm?cmnd=Power
Die IP entspricht shells-IP.

Ich selber nutze zum Schalten ein 28er/Exec/Switch Gerät. Bestens geeignet, für an oder aus wird dann einfach mittels Befehl das Gerät ein oder ausgeschaltet.
Ich denke aber, dass ich mit diesen Einstellungen keine Statusabfrage machen kann:
2018-12-28 18_16_20-Window.png
2018-12-28 18_16_20-Window.png (12.8 KiB) 638 mal betrachtet
Der gute Uwe schreibt nun, das SET_STATE die Lösung wär - ich peils aber noch nicht.
Klar, mittels

Code: Alles auswählen

http://IP:8181/cuxd.exe?x=dom.GetObject("CUxD.CUX2801001:2.SET_STATE").State(1);
Könnte ich jetzt per Skript das dingens setzen....

Habe auch mit den Wrappern gespielt, um diesen Status zu setzen. Das geht - aber auch hier bekomme ich keinen automatische Abfrage.

Die Lösung wäre eigentlich für die Shelly 1 https://github.com/jp112sdl/ShellyHMLOX . Das geht perfekt, da die FW des Shellies einfach den Status zurücksendet, wenn man per Wandschalter schaltet. Aber: Diese FW wird nicht weiter entwickelt.

Eine andere Lösung wäre mit iobroker und MQTT. Ich vermute, da ich mich überhaupt noch nicht mit MQTT auskenne, dass der Status da vielleicht übertragen wird. Dann könnte iobroker den Status setzen. Aber auch blöd auf diesen Dienst angewiesen zu sein.

Ich denke, was wir suchen ist eine Art Cuxd Wrapper-MQTT-Lösung. Muss glatt mal suchen, ob nicht eine gut funktionierende mqtt Lösungen für HM gibt.

Oder einen FeatureRequest für tasmota, dass hier ebenso die Rückmeldung wie bei ShellyHMLOX eingebaut wird.

@Uwe: Fällt Dir da nicht noch was geniales ein? Bisher hast Du schon so viele Wunder bewirkt... :D
Da wird doch diese einfache Lösung auch möglich sein, oder?

Benutzeravatar
uwe111
Beiträge: 3968
Registriert: 26.02.2011, 22:22
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Gerät 28 Exec Statusupdate

Beitrag von uwe111 » 28.12.2018, 21:19

DerHeimer hat geschrieben:
28.12.2018, 18:30
@Uwe: Fällt Dir da nicht noch was geniales ein? Bisher hast Du schon so viele Wunder bewirkt... :D
Da wird doch diese einfache Lösung auch möglich sein, oder?
Ja, wie ich es bereits geschrieben habe. Ich würde unter CMD_TIMER ein TCL-Script eintragen, das den Status des Gerätes abfragt und mittels SET_STATE auf den aktuellen Kanal überträgt. Bei TIMER_PRESET wählst Du ein Intervall in Sekunden, in dem dieses Script dann automatisch aufgerufen wird.
Mehr ist nicht zu tun.

Leider bin ich nicht so fit in TCL, das ich solch ein Script mal eben schnell erstellen könnte. Also entweder macht das jemand anderes, oder Du musst es selbst tun. Zauberei ist es jedenfalls nicht.

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

Benutzeravatar
DerHeimer
Beiträge: 166
Registriert: 30.08.2014, 00:57
Danksagung erhalten: 1 Mal

Re: Gerät 28 Exec Statusupdate

Beitrag von DerHeimer » 29.12.2018, 00:38

Ich glaube jetzt hat es langsam klick gemacht...

=>Muss es denn TCL sein - geht denn nicht auch bash? Denke schon...
Das bekomme ich problemlos hin.

Ich nehme also mein Gerät aus dem Bild meines letzten Eintrages.
Dann unter Switch|CMD_Timer das Skript aufrufen (wo ich hoffe, dass es auch in .sh geht).
Dieses Skript ruft also intern dann den Set_state auf:

Code: Alles auswählen

http://IPmeinerCCU:8181/cuxd.exe?x=dom.GetObject("CUxD.CUX2801001:2.SET_STATE").State(v_value);
Ich hatte versucht anstelle eines Skriptes direkt den curl (also die Abfrage auf den Shelly) zu machen und kämpfte mit dem Rückgabewert.

TIMER_PRESET: Hab's wirklich im Handbuch gesucht aber nicht eineindeutig gefunden. Der Wert ist in Sekunden?
Seite 101 schreibst du
TIMER_PRESET - setzen des Timers (0=AUS, siehe System.Timer)
Unter 5.8.1 Seite 89 schreibst Du dann
TIMER_PRESET - manuelles Setzen des Timers (siehe TIMER_SET Datenpunkt)
Dann bin ich auf Seite 91 fündig geworden:
TIMER_SET String lesend/schreibend
„0“ - entspricht TIMER_STOP
„sss“ - auslösen in sss Sekunden (relativ)
„:ss“ - auslösen um XX:XX:ss (absolut)
„mm:ss“ - auslösen um XX:mm:ss (absolut)
„hh:mm:ss“ - auslösen um hh:mm:ss (absolut)
„d:hh:mm:ss“ - auslösen am Wochentag d [0-6] um hh:mm:ss
(absolut), wenn d > 6, dann wird ein Wochenoffset von d / 6
hinzuaddiert....
Kann ich also diese Syntax verwenden?


EDIT: Ich lese Deinen letzten Eintrag gerade noch einmal. Da schreibst Du ja "in Sekunden".
Bleibt dennoch die Frage der Syntax. Vielleicht könntest Du das bitte im Handbuch noch geringfügig anpassen, falls es doch "nur" Sekunden sind?

Benutzeravatar
uwe111
Beiträge: 3968
Registriert: 26.02.2011, 22:22
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Gerät 28 Exec Statusupdate

Beitrag von uwe111 » 29.12.2018, 15:14

DerHeimer hat geschrieben:
29.12.2018, 00:38
Kann ich also diese Syntax verwenden?
Ja, die Syntax sollte bei allen TIMER... Datenpunkten gleich sein.
Wobei hier absolute Zeiten nicht wirklich Sinn machen.

Schreibe einfach die Sekunden als ganze Zahl rein.

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

emil70
Beiträge: 130
Registriert: 02.12.2017, 13:47
Hat sich bedankt: 1 Mal

Re: Gerät 28 Exec Statusupdate

Beitrag von emil70 » 29.12.2018, 19:31

Mir ist zu Ohren gekommen, das bei der neuen Tasmota-Soft es die Möglichkeit gibt einen Emulator auf HUE zu stellen. Dann soll auch die Statusänderung funktionieren

@DerHeimer kannst du ja mal testen
gruß emil70

Benutzeravatar
DerHeimer
Beiträge: 166
Registriert: 30.08.2014, 00:57
Danksagung erhalten: 1 Mal

Re: Gerät 28 Exec Statusupdate

Beitrag von DerHeimer » 29.12.2018, 19:45

Zur Hue weiter unten mehr:

Ich habe es jetzt erst einmal komplett gelöst, das synchron beim Schalten des shellys mit tasmota FW auch die CCU zeitnah und voll synchron den Status erhält.
Das war sogar sehr einfach einzurichten! Auch wenn es gleich etwas kompliziert klingt - ist es aber wirklich nicht.

Ich habe doch erst einmal MQTT genutzt, da hier ein Status automatisch zurückkommt. Rednode und MQTT auf der CCU erscheint mir irgendwie überzogen.
Die Lösung ein eigener MQTT Broker. Der war neben meinem iobroker (auf dem gleichen Mini-Rechner) sehr schnell installiert. Erstaunlich wie einfach das ist.
IoBroker hat den MQTT Broker/Client erhalten - als Client eingrichtet. Der einfache MQTT client lief einfach nicht wie gewünscht.
Schaltet nun der shelly egal woher und wie, sendet er ein feedback an den MQTT Broker.
der iobroker Client hat diesen "Kanal" abboniert und schreibt den Status sofort weg.
Nun noch ein kleines Javasript mit einer Subscription und schwupps wird der Status gesetzt. Der Aufruf ist dann wie in der Zeile zuvor mit dem Set_State sehr einfach.

Vielleicht schreib ich mal dazu eine kleine Doku. Denn es ist schon erstaunlich, wie einfach das alles ist und wie umständlich dass überall erklärt wird. Zumindest war das Schwierigste für mich den Einstieg in MQTT zu finden.
Dieses Protokoll habe ich nun schätzen gelernt. Macht spaß amit und mir erscheint es so, als ob ich hier eine große Tür zur Erweiterung meiner Hausautomation aufgestoßen habe.

Uber CUXD interessiert mich auch die Lüsung über den Skriptaufruf, aber es ist doch etwas asynchroner.
Mit dieser Lösung ist es quasi synchron, Verzögerung < 1 Sekunde.
Das Gute ist, dass sogar bei einem Restart des Shellys mit der tasmota FW auch der aktuelle Status übergeben wird. So lange der Broker läuft, bekommt man dann auch den Status richtig gesetzt. Bin begeistert.
----------------------------------------------------------------------------------------------------------------------------
Der Hinweis zur Hue Nutzung klingt interessant. Gleich mal geschaut:
Die CCU fand nichts, ioBroker jedoch den Shelly mit Tasmota, wo ich Hue freigegben hatte.
Ich habe keine Bridge, mit der wäre da vielleicht noch mehr möglich. Wer weiß.
Man kann wohl alexa direkt ohne Bridge dann verbinden, wie auch immer, das nutze ich aber auch nicht.
Da Hue zumindest in ioBroker kleine Timingeinschränkungen hat (irgendwas stand da mit 10 Meldung pro Einheit...habe es leider nicht mehr genau in Erinnerung) habe ich für mich beschlossen, dass es keine sinnvolle Ergänzung für mich ist.
Weiterhin ist dann EIN shelly auch EINE Bridge? Das passt im Moment auch nicht. Mag sein, dass es für Bridge Besitzer besser funktioniert.

MQTT bleibt also die Beste (für mich) Wahl im Moment. MQTT kann ich dann wenigstens auch gleich woanders noch einsetzen, wenn Bedarf. Bisher läuft es wirklich bestens.

garten
Beiträge: 9
Registriert: 05.11.2016, 11:33

Re: Gerät 28 Exec Statusupdate

Beitrag von garten » 10.01.2019, 19:23

Hallo,
und wie hast das dann gelöst... ich hab noch keinen Plan..
ich kann natürlich bei der Änderung einmalig den Status von dem Sonoff S20 / espeasy senden.

Weiterer Controller HTTP:
x.exe?x=dom.GetObject("CUxD.CUX2801003:2.SET_STATE").State(v_value);

Aber bessser wäre es den Mqtt Status in der Homematic auszwerten, aber wie das gehen soll, hab ich keine Ahnung!



VG
Manfred
Dateianhänge
MQTT an Homematic.docx
(91.95 KiB) 21-mal heruntergeladen

Hypnos
Beiträge: 286
Registriert: 06.01.2018, 12:48
Hat sich bedankt: 19 Mal
Danksagung erhalten: 3 Mal

Re: Gerät 28 Exec Statusupdate

Beitrag von Hypnos » 11.01.2019, 09:48

MQTT <-- --> Homematic:

Man nehme:
1. MQTT Broker Mosquitto als CCU AddOn
2. RedMatic CCU AddOn (=Node-Red)

Benötigt eine CCU3 oder RaspberryMatic, aber damit lässt sich das einfach einrichten und man benötigt keine extra Hardware.

Mit RedMatic kann man MQTT mit Homematic verbinden. Wenn man sich noch CuXD AddOn installiert kann man damit auch noch virtuelle Geräte in der CCU einrichten, die man dann über MQTT einbindet.

Antworten

Zurück zu „CUxD“