mqtt2.template: bugs, Fragen, Anregungen

Begonnen von Beta-User, 15 Dezember 2018, 11:44:43

Vorheriges Thema - Nächstes Thema

Dlay

Moin zusammen,

mir ist grad aufgefallen, dass das Template für WLED nur max. 15 Presets anzeigt.
Da ich 20 Presets definiert habe, sollte das ggf. auf einen höheren Wert angepasst werden.

Außerdem, falls möglich, wären die Namen der Presets ganz nett.

Lässt sich das so umsetzen?

Grüße

Dlay

[ANFRAGE]

Ich habe seit neuestem ein NUKI und möchte mir die Bridge sparen.

Dabei bin ich auf das Github Projekt Nuki_hub gestoßen.

Damit kann ein ESP32 Modul geflasht und als MQTT Schnittstelle verwendet werden.
Es wäre Prima hierfür ein MQTT2 Modul zu haben.

Leider bin ich nicht in der Lage ein solches zu erstellen.

Mag das jemand übernehmen, um das NUKI kostengünstig an FHEM anbinden zu können?

Die Nuki Bridge ist ja um den Faktor 10 teurer (gebraucht)

Dlay

#557
Zitat von: Dlay am 14 März 2024, 23:36:08[ANFRAGE]

Ich habe seit neuestem ein NUKI und möchte mir die Bridge sparen.

Dabei bin ich auf das Github Projekt Nuki_hub gestoßen.

Damit kann ein ESP32 Modul geflasht und als MQTT Schnittstelle verwendet werden.
Es wäre Prima hierfür ein MQTT2 Modul zu haben.

Leider bin ich nicht in der Lage ein solches zu erstellen.

Mag das jemand übernehmen, um das NUKI kostengünstig an FHEM anbinden zu können?

Die Nuki Bridge ist ja um den Faktor 10 teurer (gebraucht)

So sehen die Readings aus, die MQTT2 automatisch anlegt.

nukihub:nuki/maintenance/networkDevice:.* networkDevice
nukihub:nuki/lock/action:.* action
nukihub:nuki/lock/query/battery:.* battery
nukihub:nuki/lock/query/config:.* config
nukihub:nuki/lock/query/lockstate:.* lockstate
nukihub:nuki/maintenance/reset:.* reset
nukihub:nuki/maintenance/mqttConnectionState:.* mqttConnectionState
nukihub:nuki/info/nukiHubIp:.* nukiHubIp
nukihub:nuki/maintenance/uptime:.* uptime
nukihub:nuki/info/nukiHubVersion:.* nukiHubVersion
nukihub:nuki/lock/address:.* address
nukihub:nuki/lock/query/lockstateCommandResult:.* lockstateCommandResult
nukihub:nuki/lock/trigger:.* trigger
nukihub:nuki/lock/lastLockAction:.* lastLockAction
nukihub:nuki/lock/completionStatus:.* completionStatus
nukihub:nuki/lock/doorSensorState:.* doorSensorState
nukihub:nuki/battery/critical:.* critical
nukihub:nuki/battery/charging:.* charging
nukihub:nuki/battery/level:.* level
nukihub:nuki/battery/keypadCritical:.* keypadCritical
nukihub:nuki/lock/json:.* { json2nameValue($EVENT) }
nukihub:nuki/presence/devices:.* { json2nameValue($EVENT) }
nukihub:nuki/battery/voltage:.* voltage
nukihub:nuki/battery/drain:.* drain
nukihub:nuki/battery/maxTurnCurrent:.* maxTurnCurrent
nukihub:nuki/battery/lockDistance:.* lockDistance
nukihub:nuki/configuration/buttonEnabled:.* buttonEnabled
nukihub:nuki/configuration/ledEnabled:.* ledEnabled
nukihub:nuki/configuration/ledBrightness:.* ledBrightness
nukihub:nuki/configuration/singleLock:.* singleLock
nukihub:nuki/info/firmwareVersion:.* firmwareVersion
nukihub:nuki/info/hardwareVersion:.* hardwareVersion
nukihub:nuki/configuration/autoUnlock:.* autoUnlock
nukihub:nuki/configuration/autoLock:.* autoLock
nukihub:nuki/lock/rssi:.* rssi
nukihub:nuki/lock/log:.* log
nukihub:nuki/lock/authorizationId:.* authorizationId
nukihub:nuki/lock/authorizationName:.* authorizationName
nukihub:nuki/maintenance/wifiRssi:.* wifiRssi

Eine kleine setList hab ich hinbekommen:
lock:noArg nuki/lock/action lock
unlock:noArg nuki/lock/action unlock
unlatch:noArg nuki/lock/action unlatch
lockNgo:noArg nuki/lock/action lockNgo
lockNgoUnlatch:noArg nuki/lock/action lockNgoUnlatch
fullLock:noArg nuki/lock/action fullLock
hubreboot:noArg nuki/maintenance/reset 1

In der Docu gibt es noch weit mehr :-\

Dlay

Zitat von: Dlay am 13 März 2024, 19:58:44Moin zusammen,

mir ist grad aufgefallen, dass das Template für WLED nur max. 15 Presets anzeigt.
Da ich 20 Presets definiert habe, sollte das ggf. auf einen höheren Wert angepasst werden.

Außerdem, falls möglich, wären die Namen der Presets ganz nett.

Lässt sich das so umsetzen?

Grüße

Dann helf ich mir mal selbst:

Einfach in der setList-Zeile von 15 auf 30 erhöhen und schon gehts mit mehr Presets:

Vorher:
preset:selectnumbers,0,1,15,0,lin wled/display/api PL=$EVTPART1
Nachher:
preset:selectnumbers,0,1,30,0,lin wled/display/api PL=$EVTPART1

Tueftler1983

Hallo bei dem Template für die Hoymiles OpenDTU ist ein Fehler/Bug, das Reading für Die AC und DC Leistung Heißen beide power.
Deshalb überschreiben sich diese gegenseitig, ich habe jetzt in der Readingslist das Reading für DC Leistung heißt jetzt power_DC

Hoffe es hilft
Lg Holger

Beta-User

Zitat von: Tueftler1983 am 20 April 2024, 13:20:23Hallo bei dem Template für die Hoymiles OpenDTU ist ein Fehler/Bug, das Reading für Die AC und DC Leistung Heißen beide power.
Deshalb überschreiben sich diese gegenseitig, ich habe jetzt in der Readingslist das Reading für DC Leistung heißt jetzt power_DC

Hoffe es hilft
Lg Holger
Leider bin ich immer noch ziemlich ratlos, was konkret zu ändern wäre... Das war hier schon mal Thema:

Zitat von: Beta-User am 07 März 2024, 10:34:35
Zitat von: tomcat.x am 07 März 2024, 10:14:22
Zitat von: Elektron am 25 Februar 2024, 18:19:46Habe mir das heute mal angesehen und dabei ist mir aufgefallen, dass sowohl die AC-Leistung als auch die DC-Leistung auf das Reading ,,Power" gemapt wird.

Bei mir habe ich DC-Leistung auf "powerdc" gemappt, ohne über Namenskonventionen weiter nachzudenken (also nicht sicher, ob das so ins template sollte). Auch das was mich eigentlich interessiert, ist die AC-Leistung, die habe ich auf "power" gelassen.
Das aktuelle template nennt das soweit erkennbar auch "powerdc" (es gibt afaik leider (!) noch keine Namenskonvention für PV-bezogene Readings). Aber immer noch gilt die Bitte, diesen Thread nur als "Anlaufstelle" zu nutzen, für Hoymiles gibt es den Spezialthread https://forum.fhem.de/index.php?topic=121282.0.
Also Bitte: Den Spezialthread nutzen und dann zeigen, wie das funktionierende Device grade komplett aussieht, sonst tappe ich im Dunkeln...
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

Tueftler1983

Hallo Zusammen
Ich habe einen Bestway Z Spar Wirlpool in diesen habe ich ein Funkmodul eingebaut (ESP8266) mit dem ich diesen über Weboberfläche und MQTT auslesen und Steuern kann.

Wie mache ich jetzt ein Template für diesen?
Habe vom Entwickler ein paar Infos zu den Readings und denn Steuerwerten bekommen.

Hoffe Wir können zusammen da etwas auf die Beine stellen.

Es wäre schön wenn die Ist Temperatur und die Zieltemperatur Angezeigt werden würde und der Ist Zustand von der Filterpumpe, Der Heizung und des Gebläses.

Steuern Würde ich gerne die Ziel Temperatur, Filterpumpe, Heizung, Gebläse und die Sperr Funktion vom Display.
defmod MQTT2_Lay_Z_Spa_Module MQTT2_DEVICE Lay_Z_Spa_Module
attr MQTT2_Lay_Z_Spa_Module readingList Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/button:.* button\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/message:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/times:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/other:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/Status:.* Status\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/MAC_Address:.* MAC_Address\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/MQTT_Connect_Count:.* MQTT_Connect_Count\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/reboot_time:.* reboot_time\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/reboot_reason:.* reboot_reason\
Lay_Z_Spa_Module:homeassistant/number/Lay-Z-Spa\x20Module_brightness/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_pressed_button/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_reboot_time/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_reboot_reason/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_ssid/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_rssi/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_ip/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_connect_count/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_error/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_time_to_ready/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_rs/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_energy/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_today/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_power/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_chlorine_age/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_filter_age/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_uptime/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_pumptime/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_heatertime/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_airtime/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_temperature_f/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_temp_c/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_virtualtemp_f/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_virtualtemp_c/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_target_temp_f/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_target_temp_c/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/sensor/Lay-Z-Spa\x20Module_amb_temp_c/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/binary_sensor/Lay-Z-Spa\x20Module_lock/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/binary_sensor/Lay-Z-Spa\x20Module_heater/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/binary_sensor/Lay-Z-Spa\x20Module_ready/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/binary_sensor/Lay-Z-Spa\x20Module_connection/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/switch/Lay-Z-Spa\x20Module_heat_regulation/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/switch/Lay-Z-Spa\x20Module_jets/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/switch/Lay-Z-Spa\x20Module_airbubbles/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/switch/Lay-Z-Spa\x20Module_pump/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/switch/Lay-Z-Spa\x20Module_temperature_unit/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/switch/Lay-Z-Spa\x20Module_take_ctrl/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/button/Lay-Z-Spa\x20Module_reset_chlorine/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/button/Lay-Z-Spa\x20Module_reset_filter/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/button/Lay-Z-Spa\x20Module_restart_esp/config:.* { json2nameValue($EVENT) }\
Lay_Z_Spa_Module:homeassistant/climate/Lay-Z-Spa\x20Module_climate/config:.* { json2nameValue($EVENT) }

Tueftler1983

Mein erster Versuch für Set Befehle, es soll die Luftblasen eingeschaltet werden.
Klappt leider nicht
off:noArg  Lay_Z_Spa_Module/layzspar/command/CMD/2 0
on:noArg    Lay_Z_Spa_Module/layzspar/command/CMD/2 1


Beta-User

Also: Danke für's aufmachen von dem gesonderten Thread zu lazyspa hier: https://forum.fhem.de/index.php?topic=138202.0.

Manöverkritik:
- am vollständigen list/"copy for forum" würde man (da MQTT2_SERVER) vermutlich die "subscriptions" sehen, dann müßte man nicht raten, wie die Doku zu lesen ist.
- den "homeassistant"-(autodiscovery)-Teil brauchen wir nicht, das sollte man m.E. per ignoreRegexp ins Nirvana befördern (da steht was zu im Wiki bei MQTT2_CLIENT).
- es kommt mir so vor, dass da irgendein Topic-Teil mit Umlaut versehen ist (wurde?!?). Wenn möglich bitte ändern, das schafft nur Probleme!
- im Wiki gibt es auch einen Artikel "Schritt für Schritt" zu MQTT2_DEVICE, da stehen diese Tipps auch drin, dazu Anmerkungen dazu, was ggf. in "on/off"-Settern landen sollte etc..

In die Detail-Diskussion mische ich mich im Moment nicht ein.
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

Tueftler1983

Sorry jetzt erst nach deinem Hinweis gelesen...
Mache drüben weiter.

LG und danke

Beta-User

Zitat von: Tueftler1983 am 17 Mai 2024, 15:26:19Hier ist das Fertige Device, vielleicht als template für alle?!
Also, ich nehme einen entsprechenden vollständigen attrTemplate-Vorschlag gerne in die Sammlung für alle auf, aber für ein "fertiges" Device würde ich noch ein paar Kleinigkeiten sehen:
- "bubbles" als setter ist "AIR" als Reading. Das ist nicht intuitiv => entweder das Reading (=> jsonMap) oder den setter umbenennen...
- "TGT" scheint sowas wie "desired-temp" zu sein? Dann würde ich das auch (im Sinne in FHEM gängiger Reading-Namen) umbenennen (jsonMap).
- falls (?) man RED und GRN irgendwie auswerten könnte (Zusammenhang mit "heat"?), wäre das m.E. auch noch sinnvoll, und evtl. gibt es auch einen "Info-Kreislauf" für "pump"?

Dann noch eine "desc", einen comment etc, damit man die Projektseiten ggf. findet und du bist so gut wie fertig ;) ...
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

Tueftler1983

#566
Hallo und danke für das Feedback.
1. bubbles ist geändert in air somit ist der setter air und das Reading was zeigt ob die "Luftblasen" an sind AIR
2. TGT ist geändert in desired-temp das readind dazu ist TGT oder TGTC für °C und TGTF für °F
3. RED ist Heizung an aber Zieltemperatur nicht erreicht, GRN ist Heizung an und Zieltemperatur erreicht, da wei?ß ich leider nicht wie ich diese in einem Icon zusammen fassen kann.

define MQTT2_spa MQTT2_DEVICE spa
attr MQTT2_spa devStateIcon 2.1:water-heat@orange:heat+0\
2.0:water-heat@red:heat+1\
3.0:water-heat@red:heat+1\
3.1:water-heat@green:heat+0\
1.1:sani_domestic_waterworks@green:pump+0\
1.0:sani_domestic_waterworks@red:pump+1\
4.0:vent_ventilation_level_0@red:bubbles+1\
4.1:vent_ventilation_level_3@green:bubbles+0\

attr MQTT2_spa readingList spa:spa/message:.* { json2nameValue($EVENT) }\
spa:spa/times:.* { json2nameValue($EVENT) }\
spa:spa/other:.* { json2nameValue($EVENT) }
attr MQTT2_spa room MQTT2_DEVICE
attr MQTT2_spa setList air:0,1 spa/command {"CMD": 2, "VALUE": $EVTPART1, "XTIME": 0, "INTERVAL": 0}\
pump:0,1 spa/command {"CMD": 4, "VALUE": $EVTPART1, "XTIME": 0, "INTERVAL": 0}\
heat:0,1 spa/command {"CMD": 3, "VALUE": $EVTPART1, "XTIME": 0, "INTERVAL": 0}\
desired-temp:slider,20,1,40 spa/command {"CMD": 0, "VALUE": $EVTPART1, "XTIME": 0, "INTERVAL": 0}
attr MQTT2_spa stateFormat 1:FLT\
2:RED\
3:GRN\
4:AIR\
TMP °C\

attr MQTT2_spa webCmd desired-temp

Dieses template ist für das SmartAndRelay Wlan Modul für einen Bestway z Spa,
mit diesem ist es möglich alle Werte vom Wirlpool zu empfangen und diesen zu steuern.
Es wird der Status der Filtepumpe angezeigt, An/Aus. Der status der Heizung: An/Aus/Heizt auf/Temperatur erreicht und der Status des Gebläses des Sprudelns An/Aus. Zudem die aktuelle Wassertemperatur.
Gesteuert werden kann Die Filterpumpe An/Aus, Die Heizung An/Aus, das Sprudel Gebläse An/Aus und die Ziel Temperatur

Webseite des Entwicklers https://www.mk-innovations.de/smartandrelax-modul/
Dieses Wlanmodul basiert auf einen ESP8266 mit Einer Firmware von Michael Krenner
das Wlan modul ist für eine Vielzahl an Wirlpools der firma Bestway kompatiebel

P.S. auch für Modelle mit Jet funktion diese sind in diesem template nicht enthalten da ich diesen nicht habe und daher nicht testen kann.

Tueftler1983

#567
Hallo, ich habe versucht ein template zu erstellen.

vielleicht kann mal jemand drüber gucken der sich auskennt und es dann ggf mit aufnehmen.

angezeigt wird:
Pumpen status: on off
Heizungs status: off, on und Heizt auf, und on und Temperatur erreicht
Sprudel Gebläse: on, off
Wasser Temperatur: °C
Soll Temperatur: °C
Tage seid dem letzten Filter wechsel in: Tagen
Tage seid der letzten Chlorung in: Tagen

Geschaltet werden kann:
Pumpe: on, off
Heizung: on, off
Sprudel Gebläse: on, off
Soll temperatur via Slider 20-40°C
Filter wechsel Zeit Reset
Chlor Zeit reset
Umgebungstemperatur ( für die interne verarbeitung im wlan modul.

Gebaut entwickelt wurde das Wlan Modul von Michael Krenner https://www.mk-innovations.de/smartandrelax-modul/
Du darfst diesen Dateianhang nicht ansehen.

####################################
# provided as mqtt2_layzspa.template by Tueftler1983
#Use this for the WLAN Module RelaxAndSpa for Bestway Lay Z Spar Wirlpools. The Wlan module ist Selled and #Supportet from Michael Krenner https://www.mk-innovations.de/smartandrelax-modul/
name:LayZSpa
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*/message/{ $EVENT =~ s/"(FLT|AIR|RED|GRN)":1/"$1":"on"/g;;;;;;;; $EVENT =~ s/"(FLT|AIR|RED|GRN)":0/"$1":"off"/g;;;;;;;; json2nameValue($EVENT,'',$JSONMAP) }.*
par:BASE_TOPIC;base topic set in SmarAndRelax MQTT Konfiguration;{ AttrVal("DEVICE","devicetopic","") =~ m,[\b]?([^/:]+)(/.+)?, ? $1 : AttrVal("DEVICE","readingList","") =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
desc:Please befor use remove all SPACE in Client-ID and Basic-Tropic inside the Settings from Wlan module
defmod DEVICE MQTT2_DEVICE Lay_Z_Spa_Module
attr DEVICE devStateIcon 2.on:water-heat@orange:heater+off
2.off:water-heat@red:heater+on
3.off:water-heat@red:heater+on
3.on:water-heat@green:heater+off
1.on:sani_domestic_waterworks@green:pump+off
1.off:sani_domestic_waterworks@red:pump+on
4.off:vent_ventilation_level_0@red:air+on
4.on:vent_ventilation_level_3@green:air+off

attr DEVICE jsonMap TGT:desired-temp TMP:temperature FLT:pump AIR:air RED:heater GRN:hot UNT:unit AMB:ambiant-temp
attr DEVICE readingList $\DEVICETOPIC\x20Module/button:.* button
$\DEVICETOPIC/message:.* { $EVENT =~ s/"(FLT|AIR|RED|GRN)":1/"$1":"on"/g;;;;;;;; $EVENT =~ s/"(FLT|AIR|RED|GRN)":0/"$1":"off"/g;;;;;;;; json2nameValue($EVENT,'',$JSONMAP) }
$\DEVICETOPIC/message:.* { $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g;;;;;;;; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g;;;;;;;; json2nameValue($EVENT,'',$JSONMAP) }
$\DEVICETOPIC/times:.* { json2nameValue($EVENT, 'times_', $JSONMAP) }
$\DEVICETOPIC/other:.* { json2nameValue($EVENT, 'other_', $JSONMAP) }
$\DEVICETOPIC/Status:.* { $EVENT eq 'Alive' ? {LWT=>'online'} : {LWT=>'offline'} }
$\DEVICETOPIC/MAC_Address:.* MAC_Address
$\DEVICETOPIC/MQTT_Connect_Count:.* MQTT_Connect_Count
$\DEVICETOPIC/reboot_time:.* reboot_time
$\DEVICETOPIC/reboot_reason:.* reboot_reason
attr DEVICE room MQTT2_DEVICE
attr DEVICE setList pump:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;; qq($\DEVICETOPIC/command  { "CMD":4, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }
desired-temp:slider,20,1,40 $\DEVICETOPIC/command  {CMD:0,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}
air:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;; qq($\DEVICETOPIC/command { "CMD":2, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }
unit:Celsius,Fahrenheit { my $Celsius = $EVTPART1 eq 'Celsius'?1:0;;;;;;;; qq($\DEVICETOPIC/command  { "CMD":1, "VALUE":$Celsius, "XTIME":0, "INTERVAL":0 }) }
heater:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;; qq($\DEVICETOPIC/command  { "CMD":3, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }
reset_chlorid $\DEVICETOPIC/command  {CMD:9,VALUE:,XTIME:0,INTERVAL:0}
reset_filter $\DEVICETOPIC/command  {CMD:10,VALUE:,XTIME:0,INTERVAL:0}
attr DEVICE stateFormat 1:pump
2:heater
3:hot
4:air
temperature °C
<br>
Letzter Filter Wechsel last_filter_change Tage
<br>
Letzte Chlorung last_add_chlorid Tage
attr DEVICE userReadings last_add_chlorid {my $zeitstamp = ReadingsVal("Wirlpool", "times_CLTIME", 0);;my $current_time = time();;my $diff_seconds = $current_time - $zeitstamp;;return int($diff_seconds / (24 * 60 * 60));;},
last_filter_change {my $zeitstamp = ReadingsVal("Wirlpool", "times_FTIME", 0);;my $current_time = time();;my $diff_seconds = $current_time - $zeitstamp;;return int($diff_seconds / (24 * 60 * 60));;}
attr DEVICE webCmd desired-temp:reset_filter:reset_chlorid

Fabiango

Bug im Template -  zigbee2mqtt bridge (Version 20240627)

Seit dem neuen Template wird das STATE nicht mehr korrekt angezeigt.
Statt "Online"  und  "Offline"  wird nun neu  {"state":"online"}  und  {"state":"offline"} angezeihgt.

Das macht nun Probleme bei der weiteren Verarbeitung.


Kann das ein Modul Verantwortlicher oer Update bitte beheben?

Danke euch.
Gruss, Fabian

TomLee

#569
Hallo,

kann ich mit Version 1.38.0 und jetzt nach update auf 1.39.0 nicht bestätigen.

Bei mir kommt über den state topic ein String, kein Json:
13:51:23.340 mqttjs_8424fa5c zigbee2mqtt/bridge/state online

Welche Version von z2m verwendest Du ?

Zeig bitte mal ein "Copy for forum.fhem.de", am besten in einem separaten Thread.

edit:
Im Template ist diesbezüglich auch kein Bug, hab das Template angewendet, z2m neu gestartet und es landet ein String in state.
setstate MQTT2_zigbee_bridge 2024-07-06 13:57:14 attrTemplateVersion 20240627
Gruß

Thomas