Frage zu Bedingungen in notify

Begonnen von Jackie, 30 Januar 2024, 07:10:29

Vorheriges Thema - Nächstes Thema

Jackie

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!
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Beta-User

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

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

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");
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!