MQTT2 on-for-timer Z-Wave Gerät

Begonnen von ToKa, 30 September 2020, 22:30:06

Vorheriges Thema - Nächstes Thema

ToKa

Hallo zusammen,

ich habe über MQTT2 zwei FHEM Instanzen verbunden. Das funktioniert für die Übertragung von state und "einfachen" Befehlen auch gut z.B. Steckdose on / off.

Meine Z-Wave Steckdosen können auch on-for-timer und ich habe das MQTT2-Device so konfiguriert, dass es on-for-timer als set-Befehl auch kennt. Wenn ich mir aber anschauen, was übertragen wird, kommt nur ein on an. Müsste jetzt vom MQTT2-Device nach der eingestellten Zeit ein off kommen? Das passiert leider nicht.

Ich habe dann manuell ein publish mit on-for-timer gemacht, das kommt am Z-Wave Gerät an und wird dort auch sauber verarbeitet - sprich nach der übermittelten Zeit schaltet die Steckdose aus.

Kann ich erreichen, dass auch aus FHEM / MQTT2-Device das on-for-timer übertragen wird? Oder habe ich sonst etwas übersehen?

Danke und beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

rudolfkoenig

Mir ist nicht klar, wie die Verbindung realisiert ist, ich kann mir mindestens 2 Wege vorstellen (mehrere notifies, MQTT_GENERIC_BRIDGE), vmtl. gibt es noch mehr.

on-for-timer ist in FHEM speziell: Wenn das Modul SetExtensions unterstuetzt, und das Geraet selbst kein on-for-timer kann, aber on und off, dann wird on-for-timer durch on und off emuliert, der Timer laeuft in FHEM.

Da hier mehrere FHEM Module und Geraete involviert sind (ich tippe auf jeweils 5-7), muesste man diese Punkte bei jedem einzeln pruefen.

ToKa

Hallo Rudi,

die Kommunikation bzw. die verwendeten Komponenten sehen (schematisch) wie folgt aus:

fhem1 (MQTT2_DEVICE <--> MQTT2_CLIENT) <--> Mosquitto <--> fhem2 (   
MQTT2_CLIENT <--> MQTT_GENERIC_BRIDGE <--> z-Wave Gerät)

Wie beschrieben, sendet fhem1 bei einem on-for-timer nur ein "on" an fhem2. Entgegen meiner ersten Tests wird aber auch das "off" nach der eingestellten Zeit von fhem1 an fhem2 geschickt.

Dennoch würde ich gerne wissen, ob ich nicht auch das on-for-timer + Zeit an fhem2 schicken kann. Mein Test vom mosqitto aus ein manuelles publish mit on-for-timer zu machen, hat ja funktioniert. Auf der fhem2 Seite wird die Nachricht sauber an das z-wave Gerät weiteregeben.

Kann ich auf fhem1 für das MQTT2_Device eine Template erstellen, das dann on-for-timer weitergibt (habe nämlich etliche Steckdosen und Schalter, die on-for-timer unterstützen). Oder kann man mit Perl im setlist auf fhem1 das erreichen?

Danke und beste Grüße
Torsten

RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

rudolfkoenig

Das Verhalten waere normal, falls MQTT_DEVICE@fhem1 nur on und off, aber nicht on-for-timer kennt.

Beta-User

...etwas weniger kryptisch:

Wenn du in die setList des MQTT2_DEVICE@fhem1 "on-for-timer" aufnimmst, kannst du auch eine entsprechende Payload erzeugen.

Falls du mit den Bausteinchen in https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#on-for-timer nicht klarkommst, bitte nochmal melden (das sollte einfacher gehen wie da, $EVTPART1 durchreichen sollte es schon gewesen sein).
Falls das dann "fertig" ist, wäre es ggf. nicht schlecht, im Wiki mal was zu MQTT2_DEVICE-2-FHEM aufzunehmen. Wir scheinen eine zunehmende Zahl von Usern zu haben, die genau diese Konstruktion nutzen (will sagen: Mitarbeit erwünscht!).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

ToKa

Ich habe setExtensionsEvent=1, so dass im MQTT2_DEVICE@fhem1 on-for-timer als set Funktion vorhanden ist und unter setlist on-for-timer smarthome/haus/ST/fl/US_Wandspot/cmd:r on-for-timer $EVTPART1

Habe es jetzt gerade noch einmal probiert und ihr glaubt es nicht, der MQTT Explorer zeigt mir, dass fhem1 ein on-for-timer mit der eingestellten Zeit schickt. Der einzige mir bewusste Unterschied zu meinen vorherigen Tests ist, dass ich heute morgen die beiden FHEM Instanzen aktualisiert und neu gestartet habe.

Es geht also "fast" out of the box. Sorry, dass ich Euch bemüht habe  :-[
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

Schön, dass es geklappt hat.
Allerdings ist das setExtensionsEvent nicht dafür "verantwortlich", dass es nun ging, sondern (mAn.) ausschließlich der readingList-Eintrag.

Vielleicht zum Hintergrund:
"setExtensionsEvent" dient eher der Visualisierung eines SetExtensions-Timers.

Mit einem solchen haben wir es hier aber gerade nicht (mehr) zu tun (jedenfalls im engeren Sinne), weil SetExtensions nur für die Befehle "aushelfen", die ein Device _nicht kennt_. Damit das klappt, muss es also "on" und "off" geben, aber gerade nicht den betreffenden .*-for|till-... Command. Hier hast du aber einen on-for-timer in die setList aufgenommen, damit greift der sich den Befehl und dieser wird nicht an SetExtensions durchgegeben ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors