[PATCH] SetExtensions (on-for-timer etc.) für MQTT_Device

Begonnen von ThoTo, 05 Januar 2018, 18:38:26

Vorheriges Thema - Nächstes Thema

ThoTo

Hallo zusammen!

Ich habe versucht in das bestehende MQTT_DEVICE Modul die SetExtensions von Rudi zu integrieren.
Da die SetExtensions wirklich nur bei Bedarf verwendet werden sollen, muss das Attribut useSetExtensions auf 1 gesetzt werden.

Dann stehen folgende zusätzliche Set-Befehle für das Device zur Verfügung:

  • blink
  • intervals
  • off-for-timer
  • off-till
  • off-till-overnight
  • on-for-timer
  • on-till
  • on-till-overnight
  • toggle

Patch-File für alle die Verwendung dafür haben anbei - viel Spass beim Testen!
Der ein oder andere Sonoff-User wartet vielleicht schon darauf...

@eisler
Bitte bei Interesse gerne nacharbeiten und integrieren 8)

LG Thomas


Update 18.02.2018: Ergänzung Device-Help, Regex angepasst
Update 23.02.2018: Patch wurde ins Modul übernommen
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

slowfinger

Hallo

fände es gut wenn diese Erweiterung offiziell werden würde. Erklärt dass heute meine Lämpchen per on-till nicht funktioniert haben :-)

Mal schauen ob ich das mit dem Patchen hinbekomme und ausprobieren kann.

Gruss

ThoTo

Zitat von: slowfinger am 09 Januar 2018, 08:54:50
Hallo

fände es gut wenn diese Erweiterung offiziell werden würde. Erklärt dass heute meine Lämpchen per on-till nicht funktioniert haben :-)

Mal schauen ob ich das mit dem Patchen hinbekomme und ausprobieren kann.

Gruss

Ich habe dir die bereits gepatchte Version der 10_MQTT_DEVICE.pm im ersten Post angehängt.
Einfach ersetzen und FHEM neu starten.
Damit die Datei bei einem Update nicht überschrieben wird, ggf. noch:
attr global exclude_from_update 10_MQTT_DEVICE.pm

LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

slowfinger

Danke, ich habe das gerade versucht.

Leider wird anscheinend der letzte Teil des Kommandos nicht mit übertragen .. Bin da aber absoluter Laie. Im Device habe ich die useSetExtensions auf 1 gesetzt und im Interface sind auch die neuen Optionen zu sehen


2018-01-09 19:08:25 MQTT_DEVICE Sonoff_Steckdose_1 off
2018-01-09 19:08:25 MQTT_DEVICE Sonoff_Steckdose_1 transmission-state: outgoing publish sent
2018-01-09 19:08:25 at a_Steckdosen execNow
2018-01-09 19:08:25 MQTT_DEVICE Sonoff_Steckdose_1 transmission-state: incoming publish received
2018-01-09 19:08:25 MQTT_DEVICE Sonoff_Steckdose_1 off

tut wie erwartet

2018-01-09 19:10:33 MQTT_DEVICE Sonoff_Steckdose_1 on-till
2018-01-09 19:10:33 MQTT_DEVICE Sonoff_Steckdose_1 transmission-state: outgoing publish sent
2018-01-09 19:10:33 at a_Steckdosen execNow
2018-01-09 19:10:33 MQTT_DEVICE Sonoff_Steckdose_1 transmission-state: incoming publish received
2018-01-09 19:10:33 MQTT_DEVICE Sonoff_Steckdose_1 off

2018-01-09 19:11:53 MQTT_DEVICE Sonoff_Steckdose_1 on-for-timer
2018-01-09 19:11:53 MQTT_DEVICE Sonoff_Steckdose_1 transmission-state: outgoing publish sent
2018-01-09 19:11:53 at a_Steckdosen execNow
2018-01-09 19:11:53 MQTT_DEVICE Sonoff_Steckdose_1 transmission-state: incoming publish received
2018-01-09 19:11:53 MQTT_DEVICE Sonoff_Steckdose_1 off

tut nicht, da nach on im Eventmonitor nichts mehr kommt. Auch per Kommandozeile wird zB die gewünschte Zeit verschluckt

ThoTo

Zitat von: slowfinger am 09 Januar 2018, 19:19:04
Leider wird anscheinend der letzte Teil des Kommandos nicht mit übertragen .. Bin da aber absoluter Laie. Im Device habe ich die useSetExtensions auf 1 gesetzt und im Interface sind auch die neuen Optionen zu sehen
, da nach on im Eventmonitor nichts mehr kommt. Auch per Kommandozeile wird zB die gewünschte Zeit verschluckt

Kannst du bitte ein list Sonoff_Steckdose_1 posten.
Die setExtensions bilden die Funktionen mit on/off nach, d.h. in Richtung Tasmota wird immer nur on/off geschickt.

LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

slowfinger

Wow Du bist schnell :-)



Internals:
   IODev      myBroker
   NAME       Sonoff_Steckdose_1
   NR         225
   STATE      off
   TYPE       MQTT_DEVICE
   READINGS:
     2018-01-09 19:26:49   state           OFF
     2018-01-09 19:46:47   tele            {"Time":"2018-01-09T19:46:46","Uptime":2,"Vcc":3.248,"POWER":"OFF","Wifi":{"AP":1,"SSId":"yyy","RSSI":62,"APMac":"abcd"}}
     2018-01-09 19:46:47   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/Steckdose1/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     stat/Steckdose1/POWER
     tele/Steckdose1/STATE
   subscribeExpr:
     ^stat\/Steckdose1\/POWER$
     ^tele\/Steckdose1\/STATE$
   subscribeReadings:
     stat/Steckdose1/POWER:
       cmd       
       name       state
     tele/Steckdose1/STATE:
       cmd       
       name       tele
Attributes:
   IODev      myBroker
   alias      Steckdose1
   eventMap   ON:on OFF:off
   publishSet ON OFF cmnd/Steckdose1/POWER
   room       MQTT
   stateFormat state
   subscribeReading_state stat/Steckdose1/POWER
   subscribeReading_tele tele/Steckdose1/STATE
   useSetExtensions 1
   webCmd     on


THX4support

ThoTo

Mach mal bitte folgende Änderung und probier nochmal:
attr Sonoff_Steckdose_1 eventMap on:ON off:OFF

LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

slowfinger

Sry, dann passiert garnix mehr und auch mein webCMD geht nicht mehr. Wenn ich das wieder umdrehe wird "wenigstens" ein MQTT-Befehl abgesetzt

emhalknarf

Ist die Funktion / der Patch mittlerweile in MQTT_DEVICE offiziell eingeflossen? Habe gesehen, dass es ein Update vom MQTT_DEVICE gibt aber keinen Hinweis im Changelog gefunden.

ThoTo

Zitat von: emhalknarf am 06 Februar 2018, 21:11:54
Ist die Funktion / der Patch mittlerweile in MQTT_DEVICE offiziell eingeflossen? Habe gesehen, dass es ein Update vom MQTT_DEVICE gibt aber keinen Hinweis im Changelog gefunden.
Soweit mir bekannt, leider nein.

LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

hexenmeister

Spricht dann den Modul-Maintainer am besten direkt an.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

elbombo

Bei mir funktioniert es leider nicht
1. Datei ausgetauscht
2. useSetExtensions auf 1 gesetzt (als Attribut gesetzt)
3. FHEM neu gestartet

on-for-time wird mir nicht angeboten (nur ON OFF)

muss die Firmware noch gepacht werden ?

Zur Zeit funktioniert die Sleep Variante recht gut

fuppking

Bei mir funktioniert es auch nicht. useSetReExternsions auf 1. aber kein on-for-timer in sicht....

wäre super an den Entwickler wenn er nochmal ein Auge draufguggen würde :))

danke lg

ThoTo

KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

Master_Nick

#14
Moin  8)

Wäre es machbar bei MQTT true und false ebenfalls abzudecken? :-)
So wie es gerade ist funktioniert z. B. das toggle damit nicht.

"true" und "false" ist z. B. einfacher wenn man Node-RED als UI nutzt an einem zentralen Steuerpanel spart man sich die konvertierung - wobei auch die machbar wäre... :-)
Suche da aktuell meinen Weg wie was Sinn macht.

Über die Eventmap ging das nicht zu bewerkstelligen.

*EDIT: Ich sehe schon es geht auch keiner der Timer geht wenn man true und false nutzt mhh wie kann man das wohl konvertieren? Oder ist es gerade einfach zu spät?
Habe herausgefunden, was mein Problem ist das Publishset gibt zwar an man könne dort für an und aus 2 strings angeben die dann auf das Topic gesendet werden - es ist aber fest verdrahtet mit on und off daher mein ganzes Problem mit eventmap und co :-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)