Autor Thema: MQTT2 Device - SetList  (Gelesen 594 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6751
  • eigentlich eher user wie "developer"
Antw:MQTT2 Device - SetList
« Antwort #15 am: 12 Juni 2019, 11:45:16 »
(Sorry für weiteres OT)
Der Hinweis, über einen Event-Handler die Daten vom OBIS-Modul zum MQTT2 Server zu bringen war der
entscheidende Hinweis. Wie Du schon sagtest, ist dann auch kein MQTT2 Device notwendig.
Danke für die Rückmeldung.

Zitat
Ich habe es letztendlich mit DOIF gelöst.
defmod di_Q3D DOIF (["SWU_Q3D:power_"])\
(\
   set MQTT_Server publish fhem/SWU_Q3D/p_L1 [SWU_Q3D:power_L1];;\
   set MQTT_Server publish fhem/SWU_Q3D/p_L2 [SWU_Q3D:power_L2];;\
   set MQTT_Server publish fhem/SWU_Q3D/p_L3 [SWU_Q3D:power_L3];;\
   set MQTT_Server publish fhem/SWU_Q3D/p_sum [SWU_Q3D:power];;\
   set MQTT_Server publish fhem/SWU_Q3D/p_ges [SWU_Q3D:total_consumption];;\
)
attr di_Q3D do always
attr di_Q3D room DOIF
Ich kenne mich mit diesem Modul nicht aus und werde in diesem Leben vermutlich auch nicht mehr verstehen, warum man das für solche einfachen Aufgaben nutzt, aber m.E. ist da ein Fehler drin, weil (vermutlich!?) das publish aller Werte jeweils durchgeführt wird, wenn sich einer der power_-Werte ändert.

Wenn, dann wäre das "suboptimal".

Als notify dürfte sowas reichen:
defmod n_Q3D notify SWU_Q3D:.* set MQTT_Server publish fhem/SWU_Q3D/$EVTPART0 $EVTPART1Das gibt dann allerdings topics, die wie die Readings heißen, dafür wird nur gesendet, was sich geändert hat...
Server: HP-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Klausi

  • New Member
  • *
  • Beiträge: 25
Antw:MQTT2 Device - SetList
« Antwort #16 am: 12 Juni 2019, 12:20:54 »
Nochmals kurzes Feedback

ich habe Dein notify eingegeben und es funktioniert, aber es werden mir auch topics gemeldet, die ich garnicht brauche
0.0.96.1.255.255 = 1ESY1160287766 <---
1.0.0.0.0.255 = 11-53-43-18-2 <---
1.0.96.5.5.255 = 80 <---
Verbrauch = 1.624 <---
power = 88.19
power_G = 88.19
power_L1 = 14.56
power_L2 = 60.78
power_L3 = 12.85
power_total = 9328.1730318
total_consumption = 9328.1730318

Du hast völlig recht mit dem Deinen Einwand, dass auf jede Änderung der "power_-Werte" getriggert wird. Deswegen habe ich nun den Event-Trigger auf
(["SWU_Q3D:total_consumption"])
gesetzt.

lg Klausi

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6751
  • eigentlich eher user wie "developer"
Antw:MQTT2 Device - SetList
« Antwort #17 am: 12 Juni 2019, 12:39:37 »
 :)
...man kann auch bei einem notify den Trigger einschränken...

(Das hätte den Vorteil, dass man es auch als einfachen "Generalersatz" für MQTT_GENERIC_BRIDGE nutzen kann ;) ):
defmod n_publish_MQTT notify SWU_Q3D:(power|total_).* set MQTT_Server publish fhem/$NAME/$EVTPART0 $EVTPART1Du mußt dann nur noch die Regex anfassen, z.B. so:
(Fenster_sensorx:|SWU_Q3D:(power|total_)).*Dann wird auch jede triggernde Reading-Änderung von Fenster_sensorx "ver-mqtt".
Server: HP-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}