FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jackie am 30 Januar 2024, 07:10:29

Titel: Frage zu Bedingungen in notify
Beitrag von: Jackie am 30 Januar 2024, 07:10:29
Hallo,

ich komme derzeit mit der Syntax für Bedingungen in einem Notify nicht weiter. Kurz was ich machen will: abhängig vom Schaltzustand einer Steckdose (Huedevice) soll ein MQTT publish ausgelöst werden an ein AWTRIXLight Device (Ulanzi Pixel Clock). In einem ersten Schritt soll hier mal nur "on" und "off" angezeigt werden, in einem späteren Schritt soll dann beik Zustand "off" eine leere MQTT Message versendet werden um die Seite zu löschen, aber so weit komme ich erst gar nicht. Mein bisheriger Versuch sieht so aus:

define notify_Display_SteckdoseDrucker notify SteckdoseDrucker.* {\
  fhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "on"}))) if ($EVENT eq "on");;\
  fhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "off"})) if ($EVENT eq "off");;\
}

Edit: hier das angeforderte Listing:

Internals:
   DEF        8  IODev=deCONZ
   FUUID      62c3bb85-f33f-6bf2-d738-2aeaff976a460038
   FVERSION   31_HUEDevice.pm:0.282220/2023-11-28
   ID         8
   INTERVAL   
   IODev      deCONZ
   NAME       SteckdoseDrucker
   NR         269
   STATE      off
   TYPE       HUEDevice
   desired    0
   eventCount 81
   has_events 1
   manufacturername IKEA of Sweden
   modelid    TRADFRI control outlet
   name       On/Off plug-in unit 8
   productid  E1703
   swversion  2.0.024
   type       On/Off plug-in unit
   uniqueid   84:fd:27:ff:fe:cd:e6:83-01
   READINGS:
     2024-01-30 08:22:11   IODev           deCONZ
     2024-01-30 08:22:12   alert           none
     2024-01-30 09:40:11   lastseen        2024-01-30T08:39Z
     2024-01-30 08:27:26   onoff           0
     2024-01-30 08:27:26   pct             0
     2024-01-30 08:22:12   reachable       1
     2024-01-30 08:27:26   state           off
   helper:
     alert      none
     battery    -1
     bri        -1
     colormode 
     ct         -1
     devtype   
     dynamics_status
     effect     
     hue        -1
     lastseen   
     mode       
     on         0
     pct        0
     reachable  1
     rgb       
     sat        -1
     update_timeout -1
     v2effect   
     xy         
     capabilities:
       alerts:
         none
         select
         lselect
     json:
       e          changed
       id         8
       r          lights
       source     event
       t          event
       uniqueid   84:fd:27:ff:fe:cd:e6:83-01
       attr:
         id         8
         lastannounced
         lastseen   2024-01-30T08:40Z
         manufacturername IKEA of Sweden
         modelid    TRADFRI control outlet
         name       On/Off plug-in unit 8
         productid  E1703
         swversion  2.0.024
         type       On/Off plug-in unit
         uniqueid   84:fd:27:ff:fe:cd:e6:83-01
Attributes:
   IODev      deCONZ
   alias      Steckdose5
   color-icons 2
   devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
   group      HUEDevice
   model      TRADFRI control outlet
   room       HUEDevice
   subType    switch
   webCmd     toggle:on:off

Wo genau liegt mein Denkfehler? Wie sollte die Syntax aussehen wenn der state vom SteckdoseDrucker "on" oder "off" sein kann? Danke für alle Tipps!
Titel: Aw: Frage zu Bedingungen in notify
Beitrag von: Beta-User am 30 Januar 2024, 07:18:35
Es heißt hier in der "Bedienungsanleitung" zum Forum nicht umsonst, dass man ein "list" ALLER beteiligten Devices posten soll...

Zitat von: Jackie am 30 Januar 2024, 07:10:29Mein bisheriger Versuch sieht so aus:

define notify_Display_SteckdoseDrucker notify HUEDevice3.* {\
  fhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "on"}))) if ($EVENT eq "on");;\
  fhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "off"})) if ($EVENT eq "off");;\
}

... HueDevice3....
Also was jetzt: HUEDevice316, HUEDevice3, HUEDevice35 oder HueDevice3?

Und. Wo hast du den Code rausgeschnippselt? Würde mich wundern, wenn es ein Modul mit "SteckdoseDrucker" gäbe...
(Lt. commandref zu notify ist die Syntax:
define <name> notify <pattern> <command>
Titel: Aw: Frage zu Bedingungen in notify
Beitrag von: MadMax-FHEM am 30 Januar 2024, 08:26:40
Zusätzlich denke ich, dass bei dieser Definition
Zitatdefine notify_Display_SteckdoseDrucker notify HUEDevice3.*
in $EVENT nur "on" bzw. "off" steht, weil das prüfst du ja ab:
Zitatif ($EVENT eq "on")
.

Besser das notify aus dem Eventmonitor erzeugen lassen: https://wiki.fhem.de/wiki/Event_monitor

Und auch nicht "nur" .* -> alle Events!

Dann per Logausgabe mal prüfen, was tatsächlich in $EVENT (oder $EVTPARTx: $EVTPART1, $EVTPART2, ...) steht: https://forum.fhem.de/index.php?topic=102513.0

Ob dann der Aufruf
Zitatfhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "on"})))
funktioniert?
Aber das kannst du ja im FhemWeb-Eingabefenster ausprobieren...

Wobei ich das "Konstrukt" eh eigenartig finde...

Gruß, Joachim
Titel: Aw: Frage zu Bedingungen in notify
Beitrag von: betateilchen am 30 Januar 2024, 10:41:19
Zitat von: MadMax-FHEM am 30 Januar 2024, 08:26:40Ob dann der Aufruf
Zitatfhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "on"})))
funktioniert?

Wobei ich das "Konstrukt" eh eigenartig finde...

Und inhaltlich falsch. Zahlenwerte werden in json nicht in Anführungszeichen übergeben.
Titel: Aw: Frage zu Bedingungen in notify
Beitrag von: betateilchen am 30 Januar 2024, 11:53:10
Zitatfhem(qq(set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": "56378","duration":"5","text": "on"}))) if ($EVENT eq "on")

Hast Du eigentlich mal die Klammern gezählt?
Sowohl die öffnenden als auch die schließenden?

Probier doch mal so:

fhem('set MQTT2_FHEM_Server publish awtrix_52/custom/SteckdoseDruckerOn {"icon": 56378,"duration":5,"text":"on"}') if ($EVENT eq "on");