dummy mit MQTT2 device (mit notify?) snychronisieren

Begonnen von teichtaucher, 08 März 2023, 19:22:00

Vorheriges Thema - Nächstes Thema

teichtaucher

Hi, ich weiß gar ob der Threat überhaupt hier reinpasst. Ich möchte meine Panasonic Klimaanlage per Tasmota_IR fernsteuern und habe das Tasmota per MQTT2 angebunden.



Internals:
   CID        DVES_8F37BC
   DEF        DVES_8F37BC
   FUUID      6406f04c-f33f-2bd4-782f-ddb0bf5d23d21042
   IODev      gl.gw.mqttBroker
   LASTInputDev gl.gw.mqttBroker
   MSGCNT     165
   NAME       MQTT2_DVES_8F37BC
   NR         331
   STATE      state
<br>
<a href="http://192.168.178.45" target="_blank">192.168.178.45</a>
   TYPE       MQTT2_DEVICE
   eventCount 40
   gl.gw.mqttBroker_CONN gl.gw.mqttBroker_192.168.178.45_55978
   gl.gw.mqttBroker_MSGCNT 165
   gl.gw.mqttBroker_TIME 2023-03-08 19:13:02
   READINGS:
     2023-03-08 10:57:58   BootCount       19
     2023-03-08 10:57:58   FallbackTopic   cmnd/DVES_8F37BC_fb/
     2023-03-08 10:57:58   GroupTopic      cmnd/tasmotas/
     2023-03-08 19:13:02   Heap            26
     2023-03-08 10:57:58   Hostname        kiAc-8F37BC-6076
     2023-03-08 09:55:35   IODev           gl.gw.mqttBroker
     2023-03-08 10:57:58   IPAddress       192.168.178.45
     2023-03-08 16:55:35   IrReceived_Bits 216
     2023-03-08 16:55:35   IrReceived_Data 0x0220E004000000060220E00400212E803F0000066020008500001F
     2023-03-08 16:55:35   IrReceived_IRHVAC_Beep Off
     2023-03-08 16:55:35   IrReceived_IRHVAC_Celsius On
     2023-03-08 16:55:35   IrReceived_IRHVAC_Clean Off
     2023-03-08 16:55:35   IrReceived_IRHVAC_Econo Off
     2023-03-08 16:55:35   IrReceived_IRHVAC_FanSpeed Min
     2023-03-08 16:55:35   IrReceived_IRHVAC_Filter Off
     2023-03-08 16:55:35   IrReceived_IRHVAC_Light Off
     2023-03-08 16:55:35   IrReceived_IRHVAC_Mode Dry
     2023-03-08 16:55:35   IrReceived_IRHVAC_Model 4
     2023-03-08 16:55:35   IrReceived_IRHVAC_Power On
     2023-03-08 16:55:35   IrReceived_IRHVAC_Quiet Off
     2023-03-08 16:55:35   IrReceived_IRHVAC_Sleep -1
     2023-03-08 16:55:35   IrReceived_IRHVAC_SwingH Auto
     2023-03-08 16:55:35   IrReceived_IRHVAC_SwingV Auto
     2023-03-08 16:55:35   IrReceived_IRHVAC_Temp 23
     2023-03-08 16:55:35   IrReceived_IRHVAC_Turbo On
     2023-03-08 16:55:35   IrReceived_IRHVAC_Vendor PANASONIC_AC
     2023-03-08 16:55:35   IrReceived_Protocol PANASONIC_AC
     2023-03-08 16:55:35   IrReceived_Repeat 0
     2023-03-08 12:26:08   LWT             Online
     2023-03-08 19:13:02   LoadAvg         19
     2023-03-08 10:57:58   Module          Generic
     2023-03-08 19:13:02   MqttCount       2
     2023-03-08 12:26:08   POWER           
     2023-03-08 10:57:58   RestartReason   Power On
     2023-03-08 19:13:02   Sleep           50
     2023-03-08 19:13:02   SleepMode       Dynamic
     2023-03-08 19:13:02   Time            2023-03-08T19:13:13
     2023-03-08 19:13:02   Uptime          0T08:15:08
     2023-03-08 19:13:02   UptimeSec       29708
     2023-03-08 19:13:02   Vcc             3.463
     2023-03-08 10:57:58   Version         12.4.0(ir)
     2023-03-08 10:57:58   WebServerMode   Admin
     2023-03-08 19:13:02   Wifi_AP         1
     2023-03-08 19:13:02   Wifi_BSSId      7C:FF:4D:2B:42:27
     2023-03-08 19:13:02   Wifi_Channel    1
     2023-03-08 19:13:02   Wifi_Downtime   0T00:00:03
     2023-03-08 19:13:02   Wifi_LinkCount  1
     2023-03-08 19:13:02   Wifi_Mode       11n
     2023-03-08 19:13:02   Wifi_RSSI       72
     2023-03-08 19:13:02   Wifi_SSId       FetzNetz
     2023-03-08 19:13:02   Wifi_Signal     -64
     2023-03-08 12:26:08   btn_1           0
     2023-03-08 12:26:08   btn_10          0
     2023-03-08 12:26:08   btn_11          0
     2023-03-08 12:26:08   btn_12          0
     2023-03-08 12:26:08   btn_13          0
     2023-03-08 12:26:08   btn_14          0
     2023-03-08 12:26:08   btn_15          0
     2023-03-08 12:26:08   btn_16          0
     2023-03-08 12:26:08   btn_17          0
     2023-03-08 12:26:08   btn_18          0
     2023-03-08 12:26:08   btn_19          0
     2023-03-08 12:26:08   btn_2           0
     2023-03-08 12:26:08   btn_20          0
     2023-03-08 12:26:08   btn_21          0
     2023-03-08 12:26:08   btn_22          0
     2023-03-08 12:26:08   btn_23          0
     2023-03-08 12:26:08   btn_24          0
     2023-03-08 12:26:08   btn_25          0
     2023-03-08 12:26:08   btn_26          0
     2023-03-08 12:26:08   btn_27          0
     2023-03-08 12:26:08   btn_28          0
     2023-03-08 12:26:08   btn_3           0
     2023-03-08 12:26:08   btn_4           0
     2023-03-08 12:26:08   btn_5           0
     2023-03-08 12:26:08   btn_6           0
     2023-03-08 12:26:08   btn_7           0
     2023-03-08 12:26:08   btn_8           0
     2023-03-08 12:26:08   btn_9           0
     2023-03-08 12:26:08   dn              KiAc
     2023-03-08 12:26:08   fn_1            KiAc
     2023-03-08 12:26:08   ft              %prefix%/%topic%/
     2023-03-08 12:26:08   hn              kiAc-8F37BC-6076
     2023-03-08 12:26:08   if              0
     2023-03-08 12:26:08   ip              192.168.178.45
     2023-03-08 12:26:08   lk              0
     2023-03-08 12:26:08   lt_st           0
     2023-03-08 12:26:08   mac             BCDDC28F37BC
     2023-03-08 12:26:08   md              Generic
     2023-03-08 12:26:08   ofln            Offline
     2023-03-08 12:26:08   onln            Online
     2023-03-08 12:26:08   rl_1            0
     2023-03-08 12:26:08   rl_10           0
     2023-03-08 12:26:08   rl_11           0
     2023-03-08 12:26:08   rl_12           0
     2023-03-08 12:26:08   rl_13           0
     2023-03-08 12:26:08   rl_14           0
     2023-03-08 12:26:08   rl_15           0
     2023-03-08 12:26:08   rl_16           0
     2023-03-08 12:26:08   rl_17           0
     2023-03-08 12:26:08   rl_18           0
     2023-03-08 12:26:08   rl_19           0
     2023-03-08 12:26:08   rl_2            0
     2023-03-08 12:26:08   rl_20           0
     2023-03-08 12:26:08   rl_21           0
     2023-03-08 12:26:08   rl_22           0
     2023-03-08 12:26:08   rl_23           0
     2023-03-08 12:26:08   rl_24           0
     2023-03-08 12:26:08   rl_25           0
     2023-03-08 12:26:08   rl_26           0
     2023-03-08 12:26:08   rl_27           0
     2023-03-08 12:26:08   rl_28           0
     2023-03-08 12:26:08   rl_3            0
     2023-03-08 12:26:08   rl_4            0
     2023-03-08 12:26:08   rl_5            0
     2023-03-08 12:26:08   rl_6            0
     2023-03-08 12:26:08   rl_7            0
     2023-03-08 12:26:08   rl_8            0
     2023-03-08 12:26:08   rl_9            0
     2023-03-08 12:26:08   sho_1           0
     2023-03-08 12:26:08   sho_2           0
     2023-03-08 12:26:08   sho_3           0
     2023-03-08 12:26:08   sho_4           0
     2023-03-08 12:26:08   sht_1_1         0
     2023-03-08 12:26:08   sht_1_2         0
     2023-03-08 12:26:08   sht_1_3         0
     2023-03-08 12:26:08   sht_2_1         0
     2023-03-08 12:26:08   sht_2_2         0
     2023-03-08 12:26:08   sht_2_3         0
     2023-03-08 12:26:08   sht_3_1         0
     2023-03-08 12:26:08   sht_3_2         0
     2023-03-08 12:26:08   sht_3_3         0
     2023-03-08 12:26:08   sht_4_1         0
     2023-03-08 12:26:08   sht_4_2         0
     2023-03-08 12:26:08   sht_4_3         0
     2023-03-08 12:26:08   sn_Time         2023-03-08T12:26:19
     2023-03-08 12:26:08   so_11           0
     2023-03-08 12:26:08   so_114          0
     2023-03-08 12:26:08   so_117          0
     2023-03-08 12:26:08   so_13           0
     2023-03-08 12:26:08   so_17           0
     2023-03-08 12:26:08   so_20           0
     2023-03-08 12:26:08   so_30           0
     2023-03-08 12:26:08   so_4            0
     2023-03-08 12:26:08   so_68           0
     2023-03-08 12:26:08   so_73           0
     2023-03-08 12:26:08   so_82           0
     2023-03-08 12:26:08   state_1         OFF
     2023-03-08 12:26:08   state_2         ON
     2023-03-08 12:26:08   state_3         TOGGLE
     2023-03-08 12:26:08   state_4         HOLD
     2023-03-08 12:26:08   sw              12.4.0
     2023-03-08 12:26:08   swc_1           -1
     2023-03-08 12:26:08   swc_10          -1
     2023-03-08 12:26:08   swc_11          -1
     2023-03-08 12:26:08   swc_12          -1
     2023-03-08 12:26:08   swc_13          -1
     2023-03-08 12:26:08   swc_14          -1
     2023-03-08 12:26:08   swc_15          -1
     2023-03-08 12:26:08   swc_16          -1
     2023-03-08 12:26:08   swc_17          -1
     2023-03-08 12:26:08   swc_18          -1
     2023-03-08 12:26:08   swc_19          -1
     2023-03-08 12:26:08   swc_2           -1
     2023-03-08 12:26:08   swc_20          -1
     2023-03-08 12:26:08   swc_21          -1
     2023-03-08 12:26:08   swc_22          -1
     2023-03-08 12:26:08   swc_23          -1
     2023-03-08 12:26:08   swc_24          -1
     2023-03-08 12:26:08   swc_25          -1
     2023-03-08 12:26:08   swc_26          -1
     2023-03-08 12:26:08   swc_27          -1
     2023-03-08 12:26:08   swc_28          -1
     2023-03-08 12:26:08   swc_3           -1
     2023-03-08 12:26:08   swc_4           -1
     2023-03-08 12:26:08   swc_5           -1
     2023-03-08 12:26:08   swc_6           -1
     2023-03-08 12:26:08   swc_7           -1
     2023-03-08 12:26:08   swc_8           -1
     2023-03-08 12:26:08   swc_9           -1
     2023-03-08 12:26:08   t               kiAc_8F37BC
     2023-03-08 12:26:08   tp_1            cmnd
     2023-03-08 12:26:08   tp_2            stat
     2023-03-08 12:26:08   tp_3            tele
     2023-03-08 12:26:08   ty              0
     2023-03-08 12:26:08   ver             1
Attributes:
   event-on-change-reading IrReceived_IRHVAC.*
   icon       IR
   model      tasmota_ir
   readingList tele/kiAc_8F37BC/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
  tele/kiAc_8F37BC/RESULT:.* { $EVENT =~ m,..IrReceived....Protocol...([A-Za-z0-9]+)...Bits..([\d]+)..Data...([A-Za-z0-9]+)..., ? {"$1_$2"=>$3} : json2nameValue($EVENT) }
DVES_8F37BC:tele/kiAc_8F37BC/STATE:.* { json2nameValue($EVENT) }
DVES_8F37BC:stat/kiAc_8F37BC/RESULT:.* { json2nameValue($EVENT) }
DVES_8F37BC:tele/kiAc_8F37BC/LWT:.* LWT
DVES_8F37BC:cmnd/kiAc_8F37BC/POWER:.* POWER
DVES_8F37BC:tasmota/discovery/BCDDC28F37BC/config:.* { json2nameValue($EVENT) }
DVES_8F37BC:tasmota/discovery/BCDDC28F37BC/sensors:.* { json2nameValue($EVENT) }
   room       Kinderzimmer,MQTT2_DEVICE
   setList    power:noArg cmnd/kiAc_8F37BC/IRHVAC {"Vendor":"PANASONIC_AC","Model":4,"Mode":"Dry","Power":"Off","Celsius":"On","Temp":25,"FanSpeed":"Auto","SwingV":"Auto","SwingH":"Auto","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
volumeup:noArg cmnd/kiAc_8F37BC/IRsend {"Protocol":"PANASONIC_AC","Bits":216,"Data":"0x0220E004000000060220E00400213280AF00000660000085000073","Repeat":0}
11:noArg cmnd/kiAc_8F37BC/Backlog IRsend {"Protocol":"PANASONIC_AC","Bits":216,"Data":"0x0220E004000000060220E00400213280AF00000660000085000073","Repeat":0};cmnd/kiAc_8F37BC/delay 8;cmnd/kiAc_8F37BC/IRsend {"Protocol":"PANASONIC_AC","Bits":216,"Data":"0x0220E004000000060220E00400213280AF00000660000085000073","Repeat":0}
irsend:textField cmnd/kiAc_8F37BC/irsend {"Protocol":"$EVTPART1","Bits":$EVTPART2,"Data":"0x$EVTPART3","Repeat": 2}
irhvac:textField cmnd/kiAc_8F37BC/IRHVAC {"Vendor":"PANASONIC_AC","Model":4,"Mode":"$EVTPART1","Power":"$EVTPART2","Celsius":"On","Temp":$EVTPART3,"FanSpeed":"Auto","SwingV":"Auto","SwingH":"Auto","Quiet":"$EVTPART4","Turbo":"$EVTPART5","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
   stateFormat state
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>




Zusätzlich habe ich ein Dummy war so ne Art Thermostat für die Klima darstellen soll. So sieht das aus:


Internals:
   FUUID      640256c5-f33f-2bd4-e887-9ffd9c87975c25eb
   NAME       ki.dt.Klimaanlage
   NR         328
   STATE      Mode: heat Powerful: on Quiet: off Temp: 21  Power: off
   TYPE       dummy
   READINGS:
     2023-03-07 21:03:31   mode            heat
     2023-03-08 09:11:44   powerful        on
     2023-03-08 09:09:40   quiet           off
     2023-03-08 08:39:59   state           off
     2023-03-05 20:41:14   temp            21
Attributes:
   readingList mode temp state
   room       Kinderzimmer
   setList    mode:auto,cool,heat,dry temp:slider,16,1,26 state:on,off powerful:on,off quiet:on,off
   stateFormat Mode: mode Powerful: powerful Quiet: quiet Temp: temp  Power: state
   webCmd     mode:temp:state


Momentan überwache ich die Änderungen am dummy mit notify und sende dann die Readings über IRHVAC an das MQTT2 Device. Das klappt soweit auch ganz gut. Allerdings möchte ich die Klima auch parallel mit der original IR Fernbedienung steuern. Dabei kann passt der Zustand des Dummies nicht mehr den realen Einstellungen der Klima. Jetzt kam mir die Idee dass die das MQTT2 Device auch per Notify überwache und bei Änderungen der IRHVAC-Readings (die von der Fernbedienung empfangen wurden) in meinem Dummy setze.
Das würde aber nicht funktionieren denn das Setzen neuer Readings wieder das Sende-Notify auslöst und der gleiche IR Code nochmal von Tasmota_IR geschickt wird. Ich muss irgendwie verhindern dass beim Empfang kein weiteres Sende-Notify ausgelöst wird. Was kann ich da machen?
Oder gibt es noch bessere Möglichkeiten die Readings vom Dummy mit Readings vom MQTT2 Device synchron zu halten?

Beta-User

Ich würde annehmen, dass man den dummy nicht braucht.

Eine etwas komplexere Konfiguration einer MQTT2_DEVICE-Instanz sollte das auch abbilden können, dann hat man hoffentlich nicht das Problem, dass Sende- und Empfangsdaten sich in die Quere kommen; scheinbar ist ja alles, was mit dem Panasonic zu tun hat unter IrReceived_IRHVAC.* zu finden, oder?
Schau mal ins Wiki unter "Schritt für Schritt", dann solltest du zumindest einen Eindruck bekommen, warum manches wie aussieht, und was komplett unnötig ist...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

Danke, das wäre sicherlich die beste Lösung aber wird vermutlich nicht funktionieren. Im MQTT device gibt es die Readings IrReceived_IRHVAC_* aber keine Readings für den gesendeten Code.
Ich habe mir jetzt überlegt dass ich es so mache dass ich erst das Sende-Notify auf Inactive schalte, dann die Readings im Dummy aktualisieren und dann das Sende-Notify wieder auf active. Ich berichte mal ob es funktioniert hat.

Beta-User

Zitat von: teichtaucher am 09 März 2023, 09:37:24
Danke, das wäre sicherlich die beste Lösung aber wird vermutlich nicht funktionieren. Im MQTT device gibt es die Readings IrReceived_IRHVAC_* aber keine Readings für den gesendeten Code.
?
Du musst halt eine entsprechende setList anlegen, ggf. setStateList anpassen und das ganze mit ein paar userReadings garnieren, die das "set_" aus den Readings fischen...

Zitat
Ich habe mir jetzt überlegt dass ich es so mache dass ich erst das Sende-Notify auf Inactive schalte, dann die Readings im Dummy aktualisieren und dann das Sende-Notify wieder auf active. Ich berichte mal ob es funktioniert hat.
Das klingt für mich unnötig umständlich (also umständlicher wie das "richtige" Konfigurieren eines M2D), aber gelobt sei, was funktioniert...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

Deine Lösung ist sicherlich besser, aber bis ich mich da reingefuchst habe will ich es erstmal mit den notifys versuchen. Jetzt hänge ich aber bei einem anderen Problem: mehrere commands im notify. So sieht jetzt das Kommando im Notify bei mir aus:


set ki.fn.KlimaTx inactive;;setreading ki.dt.Klimaanlage mode [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Mode];;set ki.fn.KlimaTx active


Bin erst über die DOIF Syntax gestolpert weil ich die einzelnen Befehle in Klammern gesetzt habe bis gelernt habe dass Notify das nicht kennt  :o Habe dann im Forum gelesen dass die set's mit zwei Semikolon getrennt sein müssen aber auch das funktioniert nicht. FHEM interpretiert alles was hinter "inactive" steht als weiteren Parameter... Selbst wenn ich die set's oben in die Commandline eingebe läuft es nicht.
Ich könnte es natürlich über {fhem("...")} versuchen aber ich vermute das wird auch nicht laufen. Gibt es da einen Trick oder wo hängt es bei mir?

Beta-User

Vielleicht hilft ein kurzes (fhem-) sleep nach dem inactive? (Beachte auch da die Zahl der erforderlichen Semikola und mache klarer, worauf sich das ggf. bezieht. In der DEF ist die Darstellung nämlich anders als in raw-Def etc.)

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

Das inactive ist vermutlich kein Problem. Ich habe auch versucht, mir per Telegram Nachrichten zu senden um zu sehen ob das Notify überhaupt ausgelöst wird. Sobalb mehr als ein Kommando abgesendet wird gibt es Probleme. Ich habe langsam keine Lust mehr auf Notify... Kann ich das nicht irgendwie mit DOIF nachbauen? Gibt es auch sowas wie DOFI on-change-Reading oder so?

Beta-User

Stell' mir keine solchen Fragen, eventuell ist es einfach ein Problem, dass das notify sich selbst deakivieren soll. Um nach einem Event kurz zu skippen, gibt es da auch ein Attribut.

OIF verstehe ich nicht, und ich würde es nach wie vor als M2D bauen... Das ist im Ergebnis m.E. einfacher als alles andere.

Just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

Es läuft jetzt. Für die Nachwelt meine Lösung:
Ich habe jetzt anstatt dem Empfangs-Notify ein DOIF verwendet. Der Vorteil von DOIF is dass es einfach flexibler ist als das Notify:
-Beim Notify schaffe ich es nicht, mehr als ein Kommando abzusenden - selbst wenn ich ";;" zwischen den Kommandos einfüge.
-Ich kann kein Perl und Fhem mischen. Es geht nur entweder oder. Im DOIF habe ich ein paar FHEM Kommandos in Klammern neben ein paar Perl-Schnipseln in Klammern. Läuft wunderbar.

Zur Vollständigkeit hier mein DOIF was beim Empfang von IR Botschaften reagiert:




Internals:
   CFGFN     
   DEF        ([MQTT2_DVES_8F37BC])
(set ki.fn.KlimaTx inactive)
(setreading ki.dt.Klimaanlage mode [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Mode])
(setreading ki.dt.Klimaanlage temp [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Temp])
{if(ReadingsVal("MQTT2_DVES_8F37BC","IrReceived_IRHVAC_Turbo","On") eq "On")
{fhem("setreading ki.dt.Klimaanlage profile Quiet")}
elsif(ReadingsVal("MQTT2_DVES_8F37BC","IrReceived_IRHVAC_Quiet","On") eq "On")
{fhem("setreading ki.dt.Klimaanlage profile Powerful")}
else {fhem("setreading ki.dt.Klimaanlage profile Normal")}}
(set ki.dt.Klimaanlage [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Power])
(set ki.fn.KlimaTx active)
   FUUID      6409e3d2-f33f-2bd4-07ac-e0372e6220108c88
   MODEL      FHEM
   NAME       ki.fd.KlimaRx
   NOTIFYDEV  MQTT2_DVES_8F37BC,global
   NR         1341
   NTFY_ORDER 50-ki.fd.KlimaRx
   STATE      initialized
   TYPE       DOIF
   VERSION    26938 2023-01-01 18:13:32
   eventCount 165
   READINGS:
     2023-03-10 08:18:41   cmd             0
     2023-03-10 08:18:41   mode            enabled
     2023-03-10 08:18:41   state           initialized
   Regex:
     accu:
     collect:
     cond:
       MQTT2_DVES_8F37BC:
         0:
           &STATE     ^MQTT2_DVES_8F37BC$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'MQTT2_DVES_8F37BC','STATE')
   do:
     0:
       0          set ki.fn.KlimaTx inactive
       1          setreading ki.dt.Klimaanlage mode [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Mode]
       2          setreading ki.dt.Klimaanlage temp [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Temp]
       3          {if(ReadingsVal("MQTT2_DVES_8F37BC","IrReceived_IRHVAC_Turbo","On") eq "On") {fhem("setreading ki.dt.Klimaanlage profile Quiet")}  elsif(ReadingsVal("MQTT2_DVES_8F37BC","IrReceived_IRHVAC_Quiet","On") eq "On")  {fhem("setreading ki.dt.Klimaanlage profile Powerful")}  else {fhem("setreading ki.dt.Klimaanlage profile Normal")}}
       4          set ki.dt.Klimaanlage [MQTT2_DVES_8F37BC:IrReceived_IRHVAC_Power]
       5          set ki.fn.KlimaTx active
     1:
   helper:
     NOTIFYDEV  MQTT2_DVES_8F37BC,global
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     all         MQTT2_DVES_8F37BC:STATE
   uiState:
   uiTable:
Attributes:
   do         always
   room       Kinderzimmer

rudolfkoenig

Zitat-Beim Notify schaffe ich es nicht, mehr als ein Kommando abzusenden - selbst wenn ich ";;" zwischen den Kommandos einfüge.
Das geht aber problemlos.

Zitat-Ich kann kein Perl und Fhem mischen. Es geht nur entweder oder
Das funktioniert normalerweise auch, ich empfehle aber stattdessen im Perl-Code den Aufruf der FHEM-Befehle per fhem("...") Funktion.