[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.... ;-)

hexenmeister

#15
Zitat von: Master_Nick am 16 Februar 2018, 00:37:32
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 :-)

Das ist falsch. Gesendet wird alles, was man angibt. Die Werte beeinflussen nur die set-Liste.
Habe hier was dazu schon geschrieben (incl. einer funktionierenden Beispielkonfiguration): https://forum.fhem.de/index.php/topic,84448.msg767485.html#msg767485
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

fuppking

Hallo Thomas hier meine Daten

defmod Basic1 MQTT_DEVICE
attr Basic1 IODev MQTT_Broker
attr Basic1 publishSet ON OFF cmnd/Basic/POWER
attr Basic1 room MQTT
attr Basic1 stateFormat transmission-state
attr Basic1 subscribeReading_Sensor tele/Basic/SENSOR
attr Basic1 subscribeReading_presence tele/Basic/LWT
attr Basic1 subscribeReading_state stat/Basic/POWER
attr Basic1 useSetExtensions 1
attr Basic1 webCmd ON:OFF

setstate Basic1 outgoing publish sent
setstate Basic1 2018-02-15 20:35:11 presence Offline
setstate Basic1 2018-02-15 20:39:52 state on

Danke für deine Hilfe

lg
setstate Basic1 2018-02-15 20:39:52 transmission-state outgoing publish sent

Master_Nick

Zitat von: hexenmeister am 16 Februar 2018, 11:42:53
Das ist falsch. Gesendet wird alles, was man angibt. Die Werte beeinflussen nur die set-Liste.
Habe hier was dazu schon geschrieben (incl. einer funktionierenden Beispielkonfiguration): https://forum.fhem.de/index.php/topic,84448.msg767485.html#msg767485

ACK  8)
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.... ;-)

Master_Nick

Okay dann bin ich hier wohl doch richtig, da das andere nicht zutraf.

Mit folgendem Setup ist Toggle nicht nutzbar:

Internals:
   CFGFN     
   IODev      MQTT_Broker
   NAME       Sonoff_S20_1
   NR         130
   STATE      off
   TYPE       MQTT_DEVICE
   qos        *:1
   retain     *:1
   READINGS:
     2018-02-16 03:29:16   online          true
     2018-02-16 12:37:24   state           false
     2018-02-16 12:37:24   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      homeland/haushalt/elektrik/sonoff/sonoff-s20-1/outlet/on/set
       values:
         true
         false
   sets:
     false     
     true       
   subscribe:
     homeland/haushalt/elektrik/sonoff/sonoff-s20-1/$online
     homeland/haushalt/elektrik/sonoff/sonoff-s20-1/outlet/on
   subscribeExpr:
     ^homeland\/haushalt\/elektrik\/sonoff\/sonoff-s20-1\/\$online$
     ^homeland\/haushalt\/elektrik\/sonoff\/sonoff-s20-1\/outlet\/on$
   subscribeReadings:
     homeland/haushalt/elektrik/sonoff/sonoff-s20-1/$online:
       cmd       
       name       online
     homeland/haushalt/elektrik/sonoff/sonoff-s20-1/outlet/on:
       cmd       
       name       state
Attributes:
   IODev      MQTT_Broker
   alexaName  Paravent
   alexaRoom  Schlafzimmer
   alias      Paravent
   devStateIcon on:10px-kreis-gruen off:10px-kreis-rot .*:hourglass
   eventMap   true:on false:off
   group      Licht
   icon       ge_wht_steckdose
   publishSet true false homeland/haushalt/elektrik/sonoff/sonoff-s20-1/outlet/on/set
   qos        1
   retain     1
   room       Echo,Schlafzimmer
   stateFormat state
   subscribeReading_online homeland/haushalt/elektrik/sonoff/sonoff-s20-1/$online
   subscribeReading_state homeland/haushalt/elektrik/sonoff/sonoff-s20-1/outlet/on
   useSetExtensions 1
   webCmd     on:off


Es schaltet nur ein, nicht aus. Hab ich da nun noch einen Fehler? ??? Auch die Timer funktionieren nicht.
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.... ;-)

hexenmeister

Zum timer kann ich nichts sagen, habe nie genutzt. Was funktioniert bei toggle nicht? Was genau meinst Du damit? Klick aufs Icon? Das klappt bei mir ohne Probleme.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

#20
Der Klick klappt, aber es schaltet nur auf on/true und beim nächsten Klick nicht auf off/false sondern erneut/nochmal auf on/true.
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.... ;-)

fuppking

Hallo Thomas

anbei meine list...


Internals:
   IODev      MQTT_Broker
   NAME       Basic1
   NR         141
   STATE      outgoing publish sent
   TYPE       MQTT_DEVICE
   READINGS:
     2018-02-15 20:35:11   presence        Offline
     2018-02-15 20:39:52   state           on
     2018-02-15 20:39:52   transmission-state outgoing publish sent
   message_ids:
   publishSets:
     :
       topic      cmnd/Basic/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     tele/Basic/SENSOR
     tele/Basic/LWT
     stat/Basic/POWER
   subscribeExpr:
     ^tele\/Basic\/SENSOR$
     ^tele\/Basic\/LWT$
     ^stat\/Basic\/POWER$
   subscribeReadings:
     stat/Basic/POWER:
       cmd       
       name       state
     tele/Basic/LWT:
       cmd       
       name       presence
     tele/Basic/SENSOR:
       cmd       
       name       Sensor
Attributes:
   IODev      MQTT_Broker
   publishSet ON OFF cmnd/Basic/POWER
   room       MQTT
   stateFormat transmission-state
   subscribeReading_Sensor tele/Basic/SENSOR
   subscribeReading_presence tele/Basic/LWT
   subscribeReading_state stat/Basic/POWER
   useSetExtensions 1
   webCmd     ON:OFF

Danke für die Hilfe

hexenmeister

Zitat von: Master_Nick am 16 Februar 2018, 13:34:37
Der Klick klappt, aber es schaltet nur auf on/true und beim nächsten Klick nicht auf off/false sondern erneut/nochmal auf on/true.
Sonderbar, bei mir geht es. Der Unterschied ist natürlich, dass ich die Originalversion teste, ohne den Extension-Patch. Könnte natürlich sein, dass das Problem darin begründet ist.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ThoTo

@hexenmeister
Dürfte ich dich bitten bei Gelegenheit mal einen Blick über den Patch zu werfen?
Würde mich über Feedback/Korrekturen freuen und erst dann mal den Maintainer kontaktieren....

Danke 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)

Master_Nick

Ohne die Extension war toggle (meine ich) gar nicht verfügbar bei mir.  :D
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.... ;-)

fuppking

bei mir klappt nix rein garnix....
so zum angang mal gesagt wenn ich webcmd OF:OFF:TOGGLE drinn habe geht auch toggle ohne probleme.
ich habe in der set auswahl nur ON und OFF sonst nix.

@Thomas: ich hab dein Patch  eingeflegt und auch useSetReExternsions auf 1 stehn aber mein dringend
gebrauchtes on-for-timer funzt nicht. ich habe weiter oben schon mal meine settings gepoostet.

Bitte schauch dir die mal an.

Danke Dir und weiter so

ThoTo

Zitat von: fuppking am 17 Februar 2018, 14:43:38
@Thomas: ich hab dein Patch  eingeflegt und auch useSetReExternsions auf 1 stehn aber mein dringend
gebrauchtes on-for-timer funzt nicht. ich habe weiter oben schon mal meine settings gepoostet.

Ich habe das versucht bei mir nachzubauen und mit folgender Definition funktioniert es:

defmod Basic1 MQTT_DEVICE
attr Basic1 IODev MQTT_Broker
attr Basic1 publishSet on off cmnd/Basic/POWER
attr Basic1 room MQTT
attr Basic1 stateFormat state
attr Basic1 subscribeReading_Sensor tele/Basic/SENSOR
attr Basic1 subscribeReading_presence tele/Basic/LWT
attr Basic1 subscribeReading_state stat/Basic/POWER
attr Basic1 useSetExtensions 1


Bitte lösche das bestehende Device, starte FHEM neu, starte deinen MQTT Broker neu und lege dann das Device neu an.

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)

Master_Nick

@ThoTo ist das bei mir abweichend, dass es da nicht geht?
Wäre cool wenn du einmal drüber schauen würdest - ist etwas höher oder halt hier das Link:

https://forum.fhem.de/index.php/topic,82240.msg767528.html#msg767528
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.... ;-)

hexenmeister

Zitat von: ThoTo am 16 Februar 2018, 17:03:04
@hexenmeister
Dürfte ich dich bitten bei Gelegenheit mal einen Blick über den Patch zu werfen?

Bin kein Experte, was 'setExtensions' angeht, habe noch nie verwendet. Habe mir das jetzt ein wenig angeschaut. Der Patch sieht für mich in Ordnung aus. Ich kann jedoch das zuletzt diskutierte Problem nachvollziehen. Hier schlägt eventMap leider dazwischen. Mapt man on auf true und entsprechend off auf falsch, dann kommt anstatt 'on-for-timer' eben 'true-for-timer' in Modul an und wird so auch brav per MQTT verschicht. (Ohne Ummappen funktioniert bei mir alles.)

Ich habe versucht, eventMap explizit mit Perl-Expression vorzugeben:
{dev=>{ 'true'=>'on', 'false'=>'off'}, usr=>{ 'on'  => 'true', 'off' => 'false'} }

Damit werden Befehle nicht mehr 'kaputgemappt', allerdings habe ich dann den selbn Effekt, wie auch schon vorher mit 'toggle'. Es wird eingeschaltet, dann kommt statt dem Befehl zum Ausschalten ein Fragezeichen an. Warum, verstehe ich bis jetzt nicht. Den Grund müsste man wahrscheinlich im Modul SetExtensions.pm suchen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ThoTo

Zitat von: hexenmeister am 17 Februar 2018, 20:17:23
Bin kein Experte, was 'setExtensions' angeht, habe noch nie verwendet. Habe mir das jetzt ein wenig angeschaut. Der Patch sieht für mich in Ordnung aus. Ich kann jedoch das zuletzt diskutierte Problem nachvollziehen. Hier schlägt eventMap leider dazwischen. Mapt man on auf true und entsprechend off auf falsch, dann kommt anstatt 'on-for-timer' eben 'true-for-timer' in Modul an und wird so auch brav per MQTT verschicht. (Ohne Ummappen funktioniert bei mir alles.)

Danke dir fürs Drüberschauen!!!

ZitatIch habe versucht, eventMap explizit mit Perl-Expression vorzugeben:
{dev=>{ 'true'=>'on', 'false'=>'off'}, usr=>{ 'on'  => 'true', 'off' => 'false'} }

Damit werden Befehle nicht mehr 'kaputgemappt', allerdings habe ich dann den selbn Effekt, wie auch schon vorher mit 'toggle'. Es wird eingeschaltet, dann kommt statt dem Befehl zum Ausschalten ein Fragezeichen an. Warum, verstehe ich bis jetzt nicht. Den Grund müsste man wahrscheinlich im Modul SetExtensions.pm suchen.

Hab jetzt auch 2 Stunden damit verbracht das Verhalten zu analysieren.
Keine Chance es in den Griff zu bekommen.

atttr device eventMap on-for-timer:on-for-timer off-for-timer:off-for-timer on-till:on-till off-till:off-till on-till-overnight:on-till-overnight off-till-overnight:off-till-overnight true:on false:off
Das führt zum fehlerhaften toggle und neben den setExtension-Befehlen werden mir keine Textfelder mehr angezeigt, via set xxx on-for-timer x funktionierts normal.

{dev=>{ 'true'=>'on', 'false'=>'off'}, usr=>{ 'on'  => 'true', 'off' => 'false'} }
Mir werden dann keine SetExtensions angezeigt, was mache ich falsch??

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)

ThoTo

Zitat von: Master_Nick am 17 Februar 2018, 18:21:50
@ThoTo ist das bei mir abweichend, dass es da nicht geht?
Wäre cool wenn du einmal drüber schauen würdest - ist etwas höher oder halt hier das Link:

https://forum.fhem.de/index.php/topic,82240.msg767528.html#msg767528

Leider im Moment keine Idee, siehe auch den Beitrag von Hexenmeister und mir davor.
Wir laufen in ein Problem mit eventMap und setExtensions in Kombination.

Mit on und off bekommst du es auf jeden Fall zum Laufen.

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

Meine eventMap war doch nicht korrekt. Vermutlich müsste folgende passen:
{dev=>{ 'true'=>'on', 'false'=>'off'}, usr=>{ '^on$'  => 'true', '^off$' => 'false'} }
Geht aber auch nicht (da passiert was ganz merkwürdiges).
Ich habe keine Idee, wäre vermutlich es wert, ein neuen Thread zu diesem Verhalten aufzumachen. Ansonsten kann, denke ich, der Patch so eingereicht werden.

Das Problem mit tru/false würde ich bis dahin in NodeRed lösen (habe sogfar so etwas ähnliches dort am laufen).
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

btw. den Patch sollte man gleich auch für MQTT_BRIDGE machen  ;)
*duckundweg*
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

fuppking

@Thomas

Sau DICKES Danke...

bei mir lag es daran das ich bei publishSet on das on und off groß geschrieben habe... zwar komisch
mir aber relativ WURSCHT.

danke nachmal...un weiter so :)

ThoTo

Zitat von: hexenmeister am 17 Februar 2018, 20:40:06
btw. den Patch sollte man gleich auch für MQTT_BRIDGE machen  ;)
*duckundweg*
Man?  8) ::)
Ich hab nur nicht ganz verstanden was die SetExtensions bei einem MQTT_BRIDGE Device bringen.
Hilf mir mal bitte....

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

ähhhm... ich weiß nicht, wo ich gestern mit meinen Gedanken war... du hast natürlich recht, dort hat es nichts verloren.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

#36
Mhhh...

Also bei on-for-timer wird mein MQTT Device auf true-for-timer gesetzt (das true kommt hier durch die eventmap true:on).
Dieses on-for-timer ist aber ja eine rein FHEM interne Verwendung. Weder meine sich aktuell in der Ablöse befindenen Funksteckdosen noch mein MQTT Device können darauf  reagieren.
Somit wird an die Devices eigentlich nur on oder halt true geliefert. Da hier aber nun true-for-timer steht (eventMap bedingt) kann selbst FHEM da nix mehr mit anfangen.

Wie wäre es denn wenn man das entkoppelt? Ich versuche gerade mal was mit true:true-for-timer wäre.
Problem ist aber da hängt noch ne Zahl dran.

Ich glaube ja das es falsch ist, dass hier der nur für FHEM relevante Timer nach außen ins MQTT gepostet wird.
Oder reagieren eure MQTT Devices echt auf "on-for-timer 60"? Aus meiner Sicht dringt da interne Zeitschaltung nach außen wo nur ein und aus ankommen sollte.
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.... ;-)

hexenmeister

Natürlich ist das falsch. Das ist ein Problem in Verbindung mit eventMap und setExtensions. Hat mit MQTT und anderen Devices nichts zu tun.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ThoTo

Zitat von: Master_Nick am 17 Februar 2018, 18:21:50
@ThoTo ist das bei mir abweichend, dass es da nicht geht?
Wäre cool wenn du einmal drüber schauen würdest - ist etwas höher oder halt hier das Link:

https://forum.fhem.de/index.php/topic,82240.msg767528.html#msg767528

Neuer Tag, neues Glück  :)

Rudi hat die SetExtensions.pm abgeändert. Du kannst bis morgen warten oder die Datei aus dem SVN holen und deine bestehende Datei ersetzen.
Link: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/SetExtensions.pm

Dann für dein Device Sonoff_S20_1 folgende eventMap setzen:
attr Sonoff_S20_1 eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }

Dann sollten on-for-timer & Co. funktionieren!

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)

Master_Nick

Der Hammer wie schnell das hier immer geht!  ;D Traumhaft!

Ich werde es testen, sobald ich meine DOIF Loop gekillt habe die meine MQTT gerade lahmlegt  :-[ 8) ;D ;D ;D :)
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.... ;-)

Master_Nick

Bestätige!  8)

Läuft vielen vielen Dank allen beteiligten - das ist ein echt schickes Ergebnis!
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.... ;-)


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

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.... ;-)

Omega

Ich habe ein Sonoff Touch als mein 1. MQTT Device (geflashed mit Tasmota). Für dieses Device möchte ich on-for-timer nutzen, dass funktioniert aber leider nicht.

Mein Device:


Internals:
   IODev      MyBroker
   NAME       KG.Flur_2.Deckenlicht
   NR         979
   STATE      OFF
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       state:
         myFHEMdb:
           TIME       1523386489.1091
           VALUE      OFF
         myFHEMdb_LT:
           TIME       1523386489.12897
           VALUE      OFF
       transmission-state:
         myFHEMdb:
           TIME       1523386489.08436
           VALUE      incoming publish received
   READINGS:
     2018-04-10 20:54:49   state           OFF
     2018-04-10 20:54:49   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/KG.Flur_2.Deckenlicht/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     stat/KG.Flur_2.Deckenlicht/POWER
   subscribeExpr:
     ^stat\/KG.Flur_2.Deckenlicht\/POWER$
   subscribeReadings:
     stat/KG.Flur_2.Deckenlicht/POWER:
       cmd       
       name       state
Attributes:
   IODev      MyBroker
   devStateIcon OFF:FS20.off:ON ON:FS20.on:OFF
   eventMap   { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   icon       light_pendant_light
   publishSet ON OFF cmnd/KG.Flur_2.Deckenlicht/POWER
   room       Keller
   stateFormat state
   subscribeReading_state stat/KG.Flur_2.Deckenlicht/POWER
   useSetExtensions 1
   webCmd     ON:OFF


Ich bitte um Unterstützung bei der Fehlersuche.
LG
Holger

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

hexenmeister

#45
Tatsache, geht nicht mehr. Ich bin mir jedoch sicher, dass es letztendlich funktioniert hat. Ich meine mich zu erinnern, es gab zwischendurch wieder eine Änderung, die die SetExtensions betrifft.
Leider habe ich derzeit aufgrund von vielen beruflichen, privaten und auch weiteren FHEM-bezogenen Baustellen keine Zeit für eine weitere tiefergehende Fehleranalyse. Ich hoffe, es meldet sich zeitnah jemand, der sich gut mit SetExtensions auskennt.


Nehme alles zurück und behaupte das Gegenteil. Es geht bei mir weiterhin, man muss schon richtig nachstellen. Bei Dir sehe ich zumendest den Fehler, dass im EventMap on und off klein und in publish und webCmd groß geschrieben sind. Ich habe kein Tasmota-Device, was wird denn erwartet? Bei mir sendet die Konstellation mit dem gegebenen eventMap brav true und false.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Mhhhh ich teste mal - habe auch einen.
Allerdings nutze ich nicht Tasmota sondern baue mir Homie dafür.
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.... ;-)

Omega

Ja, das groß bzw. kleingeschriebene on/off ist mir auch aufgefallen. Ich hatte Testhalber mal alles klein geschrieben, dann hat der Schalter aber nicht reagiert.
Bisher habe ich auch noch keine Doku dazu gefunden, was Tasmota wirklich zum Schalten benötigt. In den meisten Beispielen, die ich gesehen habe, wurde ON/OFF verwendet. Ich habe mittlerweile aber auch Beispiele, bei denen on/off verwendet wird.
Gerade getestet: wenn ich Kommandos über die Weboberfläche sende (http://192.168.0.55/cm?cmnd=Power%20off) ist die Schreibweise egal. Groß- und Kleinschreibung kann ich sogar mischen.

Wenn ich die Commandref richtig interpretiere, benötige ich die eventMap nur, wenn ich true bzw. false umsetzen möchte.
Zusatzfrage: wofür stehen in der eventMap die dev=>, usr=> und fw=> ?
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Master_Nick

Bei mir funktioniert es ohne Probleme (ebenfalls true/false).
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.... ;-)

Omega

Jetzt funktioniert es bei mir auch. Den Parameter eventMap musste ich löschen - true und false verwende ich ja nicht. Groß- und Kleinschreibung ist egal.
Danke
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

hexenmeister

Groß/Kleinschreibeung war eben wegen eventMap wichtig => weil es dort klein geschrieben war.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Omega

Nachdem es funktioniert hat, habe ich ein Update gemacht. Seit dem habe ich keine setExtensions mehr. attr useSetExtensions ist immer noch definiert, die ganzen Zusätze sind verschwunden.
Im Update war auch SetExtensions.pm.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Omega

#53
Merkwürdig:
Zuerst habe ich SetExtensions.pm gegen die alte Version ausgetauscht und ein shutdown restart ausgelöst ---> keine Extensions vorhanden
Dann ein restore update/2018-04-11   ---> keine Extensions vorhanden
Dann ein tar der zuvor durchgeführten Komplettsicherung   ---> keine Extensions vorhanden

Danach habe ich bei den attr Änderungen durchgeführt:
   - useSetExtensions gelöscht und wieder angelegt    ---> keine Extensions vorhanden
   - publishSet (Schreibweise on/off geändert)   ---> endlich waren die Extensions wieder vorhanden.

Anscheinend wird bzgl. der Extensions etwas im Device gespeichert, was unabhängig ist von der Software. Muss evtl. nach einer Änderung erst ein reset des Device durchgeführt werden?

Nachtrag:
Ich habe noch einmal ein Update durchgeführt. Die setExtensions waren weg. Danach habe ich im attr publishSet eine Änderung durchgeführt. Danach waren die setExtensions wieder vorhanden.
Die Änderungen im publishSet habe ich dann wieder zurückgenommen. Das hatte aber keine weiteren Auswirkungen.

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

hexenmeister

Sehr merkwürdig... Hast Du nach dem Update sicher FHEM neugestartet? Verschwinden womöglich die Extensions auch nach einem Neustart ohne Update?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Omega

Nach jedem Update mache ich immer erst ein "shutdown restart". Erst wenn der durch ist - wirklich keine weiteren Meldungen im Log auftauchen - schalte ich oder mache ich Änderungen.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

hexenmeister

Leider keine Idee. :( Bei mir funktioniert alles normal.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

kinghill

Hi,

Erst mal Big Thx für die Erweiterung! Läuft soweit super
hat jemand zwischenzeitlich die eventmap in de Griff bekommen?

Hätte gerne die Icons On Off und On mit der Zeitschaltuhr in der Fhem Oberfläche sichtbar. Jetzt steht grad nur ON OFF da


hexenmeister

Zitat von: kinghill am 22 April 2018, 10:53:01
hat jemand zwischenzeitlich die eventmap in de Griff bekommen?

Hätte gerne die Icons On Off und On mit der Zeitschaltuhr in der Fhem Oberfläche sichtbar. Jetzt steht grad nur ON OFF da

Die Vorgehensweise, wie hier (https://forum.fhem.de/index.php/topic,82240.msg768624.html#msg768624) beschrieben hilft nicht weiter?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

kinghill

Leider Nein.
Bei einfügen dieser Zeile schält es garnicht mehr.
Wenn ich eventMap raus nehme funktioniert alles wie gewollt.

Hier meine Config:

define Bad_Boiler MQTT_DEVICE
attr Bad_Boiler IODev myBroker
attr Bad_Boiler alias Bad_Boiler
attr Bad_Boiler useSetExtensions 1
attr Bad_Boiler event-on-change-reading state
attr Bad_Boiler eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
attr Bad_Boiler publishSet on off toggle SmartHome/Bad/Schalter/cmnd/power2
attr Bad_Boiler room Bad
attr Bad_Boiler stateFormat state
attr Bad_Boiler subscribeReading_state SmartHome/Bad/Schalter/stat/POWER2
attr Bad_Boiler webCmd on:off:toggle

Dummy Schalter für Schalten bei Anwesenheit:

define Boiler_Einschalten dummy
attr Boiler_Einschalten webCmd on:off

define Bad_Boiler_on notify Boiler_Einschalten.on {\
   fhem("set Bad_Boiler on-for-timer 30")};;{\
   define Bad_Boiler_off notify Boiler_Einschalten.off {\
   fhem("set Bad_Boiler off")};;{\

hexenmeister

Irgendwie ist mir nicht klar, was Du erreichen möchtest. Wenn es ohne eventMap alles korrekt schaltet und Du nur die Icons ändern willst, brauchst Du doch gar kein eventMap. Dafür ist devStateIcon zuständig.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

offenbar bin ich zu doof, die SetExtensions in einem MQTT device zu nutzen.

Das Attribut ist gesetzt, im Logfile steht korrekt "2018.08.06 19:22:52 5: calling SetExtensions(...) for on-for-timer" und trotzdem bekomme ich eine Fehlermeldung "Unknown argument on-for-timer, choose one of OFF ON"

(Sorry, ich musste grad mal Frust loswerden)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

#62
Habe gerade versucht, mit Erfolg.
Mein Testdevice:
defmod MQ_DG_WZ_Licht_Top MQTT_DEVICE
attr MQ_DG_WZ_Licht_Top IODev mqtt
attr MQ_DG_WZ_Licht_Top devStateIcon off:light_light_dim_00@gray on:light_light_dim_100@yellow .*:hourglass
attr MQ_DG_WZ_Licht_Top eventMap on:on off:off
attr MQ_DG_WZ_Licht_Top group DG_Wohnzimmer
attr MQ_DG_WZ_Licht_Top mqttDeviceType switch
attr MQ_DG_WZ_Licht_Top publishSet on off /ha/dg/wz/licht/top/set
attr MQ_DG_WZ_Licht_Top room MQTT_TEST
attr MQ_DG_WZ_Licht_Top stateFormat state
attr MQ_DG_WZ_Licht_Top subscribeReading_state /ha/dg/wz/licht/top/state
attr MQ_DG_WZ_Licht_Top useSetExtensions 1
attr MQ_DG_WZ_Licht_Top webCmd on:off


on-for-timer, off-for-timer, blink funktionieren (rest nicht ausprobiert).
Beim 'blink' landen jedoch Warnungen im Log:

2018.08.06 20:36:08 1: PERL WARNING: Use of uninitialized value $p2 in pattern match (m//) at FHEM/SetExtensions.pm line 127.
2018.08.06 20:36:08 1: stacktrace:
2018.08.06 20:36:08 1:     main::__ANON__                      called by FHEM/SetExtensions.pm (127)
2018.08.06 20:36:08 1:     main::SetExtensions                 called by ./FHEM/10_MQTT_DEVICE.pm (104)
2018.08.06 20:36:08 1:     MQTT::DEVICE::Set                   called by fhem.pl (3579)
2018.08.06 20:36:08 1:     main::CallFn                        called by fhem.pl (1795)
2018.08.06 20:36:08 1:     main::DoSet                         called by fhem.pl (1828)
2018.08.06 20:36:08 1:     main::CommandSet                    called by fhem.pl (1209)
2018.08.06 20:36:08 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2576)
2018.08.06 20:36:08 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (902)
2018.08.06 20:36:08 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (532)
2018.08.06 20:36:08 1:     main::FW_Read                       called by fhem.pl (3584)
2018.08.06 20:36:08 1:     main::CallFn                        called by fhem.pl (723)
2018.08.06 20:36:08 1: PERL WARNING: Use of uninitialized value $p2 in concatenation (.) or string at FHEM/SetExtensions.pm line 134.
2018.08.06 20:36:08 1: stacktrace:
2018.08.06 20:36:08 1:     main::__ANON__                      called by FHEM/SetExtensions.pm (134)
2018.08.06 20:36:08 1:     main::SetExtensions                 called by ./FHEM/10_MQTT_DEVICE.pm (104)
2018.08.06 20:36:08 1:     MQTT::DEVICE::Set                   called by fhem.pl (3579)
2018.08.06 20:36:08 1:     main::CallFn                        called by fhem.pl (1795)
2018.08.06 20:36:08 1:     main::DoSet                         called by fhem.pl (1828)
2018.08.06 20:36:08 1:     main::CommandSet                    called by fhem.pl (1209)
2018.08.06 20:36:08 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2576)
2018.08.06 20:36:08 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (902)
2018.08.06 20:36:08 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (532)
2018.08.06 20:36:08 1:     main::FW_Read                       called by fhem.pl (3584)
2018.08.06 20:36:08 1:     main::CallFn                        called by fhem.pl (723)
2018.08.06 20:36:08 1: PERL WARNING: Use of uninitialized value $p2 in addition (+) at FHEM/SetExtensions.pm line 138.
2018.08.06 20:36:08 1: stacktrace:
2018.08.06 20:36:08 1:     main::__ANON__                      called by FHEM/SetExtensions.pm (138)
2018.08.06 20:36:08 1:     main::SetExtensions                 called by ./FHEM/10_MQTT_DEVICE.pm (104)
2018.08.06 20:36:08 1:     MQTT::DEVICE::Set                   called by fhem.pl (3579)
2018.08.06 20:36:08 1:     main::CallFn                        called by fhem.pl (1795)
2018.08.06 20:36:08 1:     main::DoSet                         called by fhem.pl (1828)
2018.08.06 20:36:08 1:     main::CommandSet                    called by fhem.pl (1209)
2018.08.06 20:36:08 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2576)
2018.08.06 20:36:08 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (902)
2018.08.06 20:36:08 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (532)
2018.08.06 20:36:08 1:     main::FW_Read                       called by fhem.pl (3584)
2018.08.06 20:36:08 1:     main::CallFn                        called by fhem.pl (723)
2018.08.06 20:36:58 5: calling SetExtensions(...) for on-for-timer
2018.08.06 20:36:58 5: publish received for /ha/dg/wz/licht/top/state, on
2018.08.06 20:36:58 5: calling readingsSingleUpdate(MQ_DG_WZ_Licht_Top,state,on,1)
2018.08.06 20:37:01 5: publish received for /ha/dg/wz/licht/top/state, off
2018.08.06 20:37:01 5: calling readingsSingleUpdate(MQ_DG_WZ_Licht_Top,state,off,1)

Hast Du useSetExtensions gesetzt?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

#63
Klar, habe ich SetExtensions gesetzt. Im Log steht ja sogar, dass die SetExtensions (angeblich) aufgerufen werden.

Mir erschließt sich der Sinn folgender Attribute bei Dir in keinster Weise:


attr MQ_DG_WZ_Licht_Top eventMap on:on off:off
attr MQ_DG_WZ_Licht_Top stateFormat state


Zitat von: hexenmeister am 06 August 2018, 20:41:06
Beim 'blink' landen jedoch Warnungen im Log:

Vermutlich hast Du nicht angegeben, wie oft es blinken soll.



Edit:
Vermutlich hast Du nicht angegeben, wie oft und wie lange es blinken soll

set .. blink <anzahl> <dauer>
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ok.

Ich habe nun ein komplett neues MQTT device angelegt. Dann habe ich useSetextensions gesetzt, bevor ich irgendein publish... oder subscribe... angegeben habe.

Und siehe da: nun sind auch die SetExtensions da. Ein shutdown restart von FHEM hat beim vorhandenen device nicht gereicht.

Irgendwie schräg.


define obi MQTT_DEVICE
attr obi IODev mqtt
attr obi publishSet on off cmnd/WemosD1/POWER
attr obi subscribeReading_Power stat/WemosD1/POWER
attr obi subscribeReading_state tele/WemosD1/STATE
attr obi useSetExtensions 1
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

Zitat von: betateilchen am 06 August 2018, 20:55:58
Mir erschließt sich der Sinn folgender Attribute bei Dir in keinster Weise:

attr MQ_DG_WZ_Licht_Top eventMap on:on off:off
attr MQ_DG_WZ_Licht_Top stateFormat state


Mir auch nicht ;D
Es ist mein Testserver mit einem Testdevice, das ich mal wieder zum Testen umgebogen habe. Sind Überreste von irgendwan von irgendwas.

Zitat von: betateilchen am 06 August 2018, 20:55:58
Vermutlich hast Du nicht angegeben, wie oft und wie lange es blinken soll

set .. blink <anzahl> <dauer>
Wie oft habe ich schon angeggeben, wie lange nicht (sollte ja optional sein). 'Geblinkt' hat es ja auch.


Wieso es bei Dir erst so funktioniert hat, ist mir allerdings auch ein Rätsel. Ich habe meinen Device nachhinein useSetextensions beigebogen, ohne Neustart. Ging sofort.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

Zitat von: hexenmeister am 06 August 2018, 21:17:11
Wie oft habe ich schon angeggeben, wie lange nicht (sollte ja optional sein).

Naja, wirklich optional ist das nicht. Wenn man in den Code von SetExtensions.pm schaut, sollte es sogar eine Fehlermeldung geben, die aber scheinbar irgendwo verlorengeht.


  } elsif($cmd eq "blink") {
    my $p2 = $a[1];
    return "$cmd requires 2 numbers as argument"
        if($param !~ m/^\d+$/ || $p2 !~ m/^\d*\.?\d*$/);
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

hm. hast recht. funktioniert jedoch ganz gut ohne den zweiten Parameter (gefühlt wird eine Sekunde angenommen). Egal, ist hier ot.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

beugel01

Hi,
bei mir funktioniert on-for-timer nicht.

Device sieht z.B.: so aus:

define Switch1 MQTT_DEVICE
attr Switch1 IODev myBroker
attr Switch1 eventMap 0:off 1:on
attr Switch1 publishSet 0 1 /house/switch1/
attr Switch1 room ESP-8er
attr Switch1 stateFormat state
attr Switch1 subscribeReading_state /house/switchConfirm1/
attr Switch1 useSetExtensions 1
attr Switch1 webCmd on:off


wenn ich mir mit

mosquitto_sub -v -h localhost -p 1883 -t '#'

mosquitto ansehe kommt mit  "set Switch1 on-for-timer 2":

/house/switch1/ 1-for-timer 2
/house/switchConfirm2/ 1

an.
Das "on-for-timer" wird also zu "1-for-timer" .

"set Switch1 blink 5 1" funktioniert wunderbar.

Oder verstehe ich das ganz komplett falsch und on-for-timer muss vom Device umgesetzt werden nicht von FHEM?

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ThoTo

Zitat von: beugel01 am 13 August 2018, 18:18:38
Hi,
bei mir funktioniert on-for-timer nicht.

Device sieht z.B.: so aus:

define Switch1 MQTT_DEVICE
attr Switch1 IODev myBroker
attr Switch1 eventMap 0:off 1:on
attr Switch1 publishSet 0 1 /house/switch1/
attr Switch1 room ESP-8er
attr Switch1 stateFormat state
attr Switch1 subscribeReading_state /house/switchConfirm1/
attr Switch1 useSetExtensions 1
attr Switch1 webCmd on:off


wenn ich mir mit

mosquitto_sub -v -h localhost -p 1883 -t '#'

mosquitto ansehe kommt mit  "set Switch1 on-for-timer 2":

/house/switch1/ 1-for-timer 2
/house/switchConfirm2/ 1

an.
Das "on-for-timer" wird also zu "1-for-timer" .

"set Switch1 blink 5 1" funktioniert wunderbar.

Oder verstehe ich das ganz komplett falsch und on-for-timer muss vom Device umgesetzt werden nicht von FHEM?

Bitte eventMap wie folgt setzen:
attr Switch1 eventMap { dev=>{ '1'=>'on', '0'=>'off' }, usr=>{ '^on$'=>'1', '^off$'=>'0' }, fw=>{ '^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)

betateilchen

(offtopc)

das Attribut stateFormat auf state zu setzen, ist völlig sinnlos, denn das ist das Standardverhalten wenn stateFormat nicht existiert. Möchte mal gerne wissen, aus welcher verkorksten copy&paste Quelle dieser immer wieder zu lesende Unfug stammt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ThoTo

Zitat von: betateilchen am 13 August 2018, 22:58:48
(offtopc)

das Attribut stateFormat auf state zu setzen, ist völlig sinnlos, denn das ist das Standardverhalten wenn stateFormat nicht existiert. Möchte mal gerne wissen, aus welcher verkorksten copy&paste Quelle dieser immer wieder zu lesende Unfug stammt.

(offtopic)²

http://goo.gl/Ueqq1q
Es ist nicht nur eine Quelle :o 8)

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)

beugel01

Zitat von: ThoTo am 13 August 2018, 22:52:11
attr Switch1 eventMap { dev=>{ '1'=>'on', '0'=>'off' }, usr=>{ '^on$'=>'1', '^off$'=>'0' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }

Danke funktioniert.

Macht es Sinn zu fragen was das bedeutet und wie man darauf kommt?

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)

beugel01

Die Antwort hab ich befürtecht.
Ist aber nur eine Atwort auf das Wo und nicht auf das Warum.

hexenmeister

Na doch, eigentlich schon. Es ist ein etwas asymmetrisches Mapping für jede Richtung (z.B. 1 zu 'on' und 'on' zu 1, aber nicht 'on-for...' zu 1) und mit einer Sonderlocke für die Anzeige im IU. Sonst passt on-for-timer in das Schema und wird durch REGEX auch kaputgemappt.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

schwatter

Wenn ich das setze, um Extras zu erhalten

attr Gosund_Kaffeemaschine eventMap { dev=>{ '1'=>'on', '0'=>'off' }, usr=>{ '^on$'=>'1', '^off$'=>'0' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
attr Gosund_Kaffeemaschine useSetExtensions 1



Schreibt mir expandJson keine Readings mehr in mein MQTT-Device.

define ej_Gosund expandJSON Gosund.*:.*:.{.*}

Hier ein List vom Device:

Internals:
   IODev      myBroker
   NAME       Gosund_Kaffeemaschine
   NR         162
   STATE      OFF
   TYPE       MQTT_DEVICE
   READINGS:
     2018-08-21 22:06:11   ENERGY_Current  0
     2018-08-21 22:06:11   ENERGY_Factor   0
     2018-08-21 22:06:11   ENERGY_Period   0
     2018-08-21 22:06:11   ENERGY_Power    0
     2018-08-21 22:06:11   ENERGY_Today    0
     2018-08-21 22:06:11   ENERGY_Total    0.506
     2018-08-21 22:06:11   ENERGY_Voltage  235
     2018-08-21 22:06:11   ENERGY_Yesterday 0.11
     2018-08-21 22:06:11   POWER           Off
     2018-08-21 22:06:11   Time            2018-08-21T22:06:10
     2018-08-21 22:06:11   Uptime          0T02:40:31
     2018-08-21 22:06:11   Vcc             3.143
     2018-08-21 22:06:11   Wifi_AP         1
     2018-08-21 22:06:11   Wifi_APMac      CC:CE:1E:50:CA:A6
     2018-08-21 22:06:11   Wifi_RSSI       80
     2018-08-21 22:06:11   Wifi_SSId       FRITZ!Box1313
     2018-08-21 21:49:08   precence        online
     2018-08-21 22:16:24   sensor          {"Time":"2018-08-21T22:16:22","ENERGY":{"Total":0.506,"Yesterday":0.110,"Today":0.000,"Period":0,"Power":0,"Factor":0.00,"Voltage":235,"Current":0.000}}
     2018-08-21 22:16:24   setup           {"Time":"2018-08-21T22:16:22","Uptime":"0T02:50:43","Vcc":3.134,"POWER":"OFF","Wifi":{"AP":1,"SSId":"FRITZ!Box1313","RSSI":80,"APMac":"CC:CE:1E:50:CA:A6"}}
     2018-08-21 22:10:58   state           OFF
     2018-08-21 22:16:24   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/Gosund_Kaffeemaschine/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     tele/Gosund_Kaffeemaschine/LWT
     tele/Gosund_Kaffeemaschine/SENSOR
     tele/Gosund_Kaffeemaschine/STATE
     stat/Gosund_Kaffeemaschine/POWER
   subscribeExpr:
     ^tele\/Gosund_Kaffeemaschine\/LWT$
     ^tele\/Gosund_Kaffeemaschine\/SENSOR$
     ^tele\/Gosund_Kaffeemaschine\/STATE$
     ^stat\/Gosund_Kaffeemaschine\/POWER$
   subscribeQos:
     stat/Gosund_Kaffeemaschine/POWER 0
     tele/Gosund_Kaffeemaschine/LWT 0
     tele/Gosund_Kaffeemaschine/SENSOR 0
     tele/Gosund_Kaffeemaschine/STATE 0
   subscribeReadings:
     stat/Gosund_Kaffeemaschine/POWER:
       cmd       
       name       state
     tele/Gosund_Kaffeemaschine/LWT:
       cmd       
       name       precence
     tele/Gosund_Kaffeemaschine/SENSOR:
       cmd       
       name       sensor
     tele/Gosund_Kaffeemaschine/STATE:
       cmd       
       name       setup
Attributes:
   IODev      myBroker
   devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON offline:rc_BLUE:OFF
   eventMap   { dev=>{ '1'=>'on', '0'=>'off' }, usr=>{ '^on$'=>'1', '^off$'=>'0' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   icon       message_socket
   publishSet ON OFF cmnd/Gosund_Kaffeemaschine/POWER
   room       2. Küche,MQTT
   stateFormat {ReadingsVal($name,"precence","") eq "offline" ? "offline" : ReadingsVal($name,"state","")}
   subscribeReading_precence tele/Gosund_Kaffeemaschine/LWT
   subscribeReading_sensor tele/Gosund_Kaffeemaschine/SENSOR
   subscribeReading_setup tele/Gosund_Kaffeemaschine/STATE
   subscribeReading_state stat/Gosund_Kaffeemaschine/POWER
   useSetExtensions 1
   webCmd     On:Off


Master_Nick

Moin - irgendwie scheint setExtension seit einigen Wochen defekt zu sein oder?

Bei mir geht es nicht mehr trotz "setExtension 1".
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.... ;-)

hexenmeister

Es gab Änderungen an setExtensions, schon etwas her. Könnte daher kommen. Ich müsste das versuchen nachzustellen. Wird leider dsauern, gerade viele wichtigere Baustellen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

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.... ;-)

Master_Nick

Wollte nur der Vollständigkeit halber melden, die gehen wieder - seit längerem. :-)
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.... ;-)

stratege-0815

Hallo,
ich laufe auch in das Thema das ich meinem MQTT Device kein on-for-timer mitgeben kann.
Mein Fhem ist vor 4 Wochen ganz frisch installiert und eigentlich komplett upgedatet.
Brauche ich trotzdem noch diesen Patch von vor über einem Jahr?
Mit oder ohne eventmap brachte keinen Unterschied.
Gruß
Jan

Master_Nick

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.... ;-)

stratege-0815