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) }
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
Moin Autor Tueftler1983,
versuchs doch mal so
off:noArg Lay_Z_Spa_Module/layzspar/command {2 0 0 0}
on:noArg Lay_Z_Spa_Module/layzspar/command {2 1 0 0}
Grüße
Jens
Hallo, und danke für die Unterstützung,
Leider auch damit keine Reaktion am Wirlpool. Der Entwickler der Platine und der Firmware hat mir noch dieses Beispiel für Openhab gegeben.
Vielleicht hilft das weiter.
Identifier: sSpaBubbles
Label: Spa Bubbles
Channel type: On/Off Switch
MQTT State Topic: BW_2.0.0/message
MQTT Command Topic: BW_2.0.0/command
Custom On/Open Value: 1
Custom Off/Closed Value: 0
Incoming Value Transformation: JSONPATH:$.AIR
Outgoing Value Format: {"CMD":2,"VALUE":%s,"XTIME":0,"INTERVAL":0}
LG Holger
Moin,
Auf Seite 19 steht das man einen Json senden muss.
Nimm mal das Format welches Du gerade zeigst:
ZitatIdentifier: sSpaBubbles
Label: Spa Bubbles
Channel type: On/Off Switch
MQTT State Topic: BW_2.0.0/message
MQTT Command Topic: BW_2.0.0/command
Custom On/Open Value: 1
Custom Off/Closed Value: 0
Incoming Value Transformation: JSONPATH:$.AIR
Outgoing Value Format: {"CMD":2,"VALUE":%s,"XTIME":0,"INTERVAL":0}
Gruß
Thomas
Verstehe leider nicht wie ich den dann aufbauen muss, muss davor das Lay_Z_Spar_Modul...?
Also so??
off:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":0,"XTIME":0,"INTERVAL":0}
on:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":1,"XTIME":0,"INTERVAL":0}
Hier ist noch die bis jetzige RAW definition vom Wirlpool
defmod MQTT2_Lay_Z_Spa_Module MQTT2_DEVICE Lay_Z_Spa_Module
attr MQTT2_Lay_Z_Spa_Module devStateIcon 2.1:water-heat@orange\
2.0:water-heat@red\
3.0:water-heat@red\
3.1:water-heat@green\
1.1:sani_domestic_waterworks@green\
1.0:sani_domestic_waterworks@red\
4.0:vent_ventilation_level_0@red\
4.1:vent_ventilation_level_100@green
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) }
attr MQTT2_Lay_Z_Spa_Module room Garten,MQTT2_DEVICE,Pool
attr MQTT2_Lay_Z_Spa_Module setList off:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":0,"XTIME":0,"INTERVAL":0}\
on:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":1,"XTIME":0,"INTERVAL":0}
attr MQTT2_Lay_Z_Spa_Module stateFormat 1:FLT\
2:RED\
3:GRN\
4:AIR\
TMP °C
Zitat von: Tueftler1983 am 12 Mai 2024, 10:13:10Verstehe leider nicht wie ich den dann aufbauen muss, muss davor das Lay_Z_Spar_Modul...?
Also so??
off:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":0,"XTIME":0,"INTERVAL":0}
on:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":1,"XTIME":0,"INTERVAL":0}
Du musst ganz dringend auf richtige Schreibweise achten.
Zitat von: Christian83 am 12 Mai 2024, 11:23:10Zitat von: Tueftler1983 am 12 Mai 2024, 10:13:10Verstehe leider nicht wie ich den dann aufbauen muss, muss davor das Lay_Z_Spar_Modul...?
Also so??
off:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":0,"XTIME":0,"INTERVAL":0}
on:noArg Lay_Z_Spa_Module/layzspar/command {"CMD":2,"VALUE":1,"XTIME":0,"INTERVAL":0}
Du musst ganz dringend auf richtige Schreibweise achten.
Okay wo muss ich es denn anpassen? Habe bis jetzt nur fertige Templates genutzt.
Kannst du mir helfen den ersten zusammen zu bauen? Für Filterpumpe und Heizung sollte ich es dann ja hin bekommen..... Hoffe ich
Hi,
versuch es doch erstmal mit lazyspa und nicht layzspar.
Zitat von: Christian83 am 12 Mai 2024, 11:48:27Hi,
versuch es doch erstmal mit lazyspa und nicht layzspar.
Verstehe ich nicht es steht doch so in der info die ich vom Entwickler habe layzspar
Screenshot_20240512_115258_Gmail.jpg
Okay. Habe ich nicht gesehen. Dann kann ich dir leider nicht weiterhelfen.
Trotzdem danke!
Zitat von: Tueftler1983 am 12 Mai 2024, 11:56:43Zitat von: Christian83 am 12 Mai 2024, 11:48:27Hi,
versuch es doch erstmal mit lazyspa und nicht layzspar.
Verstehe ich nicht es steht doch so in der info die ich vom Entwickler habe layzspar
Screenshot_20240512_115258_Gmail.jpg
Du hast trotzdem layzspar geschrieben.
Also entweder habe ich schnapps gesoffen oder ich verstehe nicht was du meinst?
Natürlich schreibe ich layzspar so heißt das ganze ja auch!
Von LazySpar habe ich noch nix gelesen oder gehört
Zitat von: Tueftler1983 am 13 Mai 2024, 06:59:51Also entweder habe ich schnapps gesoffen oder ich verstehe nicht was du meinst?
Natürlich schreibe ich layzspar so heißt das ganze ja auch!
Von LazySpar habe ich noch nix gelesen oder gehört
Also ich lese immer layzspa. Ohne r am Ende.
Das hatte ich immer "überlesen" was mir aufgefallen war war lazy statt layz
Zitat von: Christian83 am 12 Mai 2024, 18:04:42Okay. Habe ich nicht gesehen. Dann kann ich dir leider nicht weiterhelfen.
Deswegen war mir das r nicht aufgefallen, Auber auch ohne das bekomme ich es nicht hin
Hi,
Kannst du denn überhaupt Daten auslesen?
Also kommt vom Gerät überhaupt was an deinem MQTT_Device an?
Ja Daten bekomme ich, ich habe jetzt im Spa Modul die Client-ID und Basic-Tropic umbenannt von Lay-Z-Spa Modul in spa
Da Fhem in der setlist auf jeden Fall ein Problem mit dem LEERZEICHEN hatte.
Bringt mich aber immer noch nicht weiter.
Internals:
CFGFN
CID spa
DEF spa
FUUID 66423127-f33f-91a4-d07a-0166d68976c8990a
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.2.150_50192
MQTT2_FHEM_Server_MSGCNT 39
MQTT2_FHEM_Server_TIME 2024-05-13 18:16:31
MSGCNT 39
NAME MQTT2_spa
NR 5510
STATE 1:0
2:0
3:0
4:0
29 °C
TYPE MQTT2_DEVICE
eventCount 89
READINGS:
2024-05-13 18:16:31 AIR 0
2024-05-13 18:16:31 AIRTIME 5642
2024-05-13 18:16:31 AMB 40
2024-05-13 18:16:31 AMBC 40
2024-05-13 18:16:31 AMBF 104
2024-05-13 18:16:31 BRT 6
2024-05-13 18:16:31 CH1 32
2024-05-13 18:16:31 CH2 50
2024-05-13 18:16:31 CH3 57
2024-05-13 18:16:31 CLINT 14
2024-05-13 18:16:31 CLTIME 1715250060
2024-05-13 18:16:31 CONTENT OTHER
2024-05-13 18:16:31 COST 11.13430691
2024-05-13 18:16:31 DBG 192 1 254 183 254 223 254 9 255 245 255 good pkt:0
2024-05-13 18:16:31 ERR 0
2024-05-13 18:16:31 FINT 30
2024-05-13 18:16:31 FLT 0
2024-05-13 18:16:31 FTIME 1715250056
2024-05-13 18:16:31 FW 2024-04-27-001
2024-05-13 18:16:31 GOD 0
2024-05-13 18:16:31 GRN 0
2024-05-13 18:16:31 HASGOD false
2024-05-13 18:16:31 HASJETS false
2024-05-13 18:16:31 HEATINGTIME 73531
2024-05-13 18:16:31 HJT 0
2024-05-13 17:26:31 IODev MQTT2_FHEM_Server
2024-05-13 18:16:31 IP 192.168.2.150
2024-05-13 18:16:31 JETTIME 0
2024-05-13 18:16:31 KWH 41.23817062
2024-05-13 18:16:31 KWHD 41.24728535
2024-05-13 18:16:31 LCK 1
2024-05-13 17:26:32 MAC_Address CC:50:E3:6B:70:30
2024-05-13 18:16:31 MODEL MIAMI2021
2024-05-13 18:16:31 MQTT 0
2024-05-13 17:26:32 MQTT_Connect_Count 9
2024-05-13 18:16:31 PUMPTIME 88837
2024-05-13 18:16:31 PWR 1
2024-05-13 18:16:31 RED 0
2024-05-13 18:16:31 RS Not ready
2024-05-13 18:16:31 RSSI -68
2024-05-13 18:16:31 SSID GartenAP
2024-05-13 17:26:31 Status Alive
2024-05-13 18:16:31 T2R 4.905910015
2024-05-13 18:16:31 TGT 39
2024-05-13 18:16:31 TGTC 39
2024-05-13 18:16:31 TGTF 102
2024-05-13 18:16:31 TIME 1715616990
2024-05-13 18:16:31 TMP 29
2024-05-13 18:16:31 TMPC 29
2024-05-13 18:16:31 TMPF 84
2024-05-13 18:16:31 UNT 1
2024-05-13 18:16:31 UPTIME 340722
2024-05-13 18:16:31 VTM 31.0423317
2024-05-13 18:16:31 VTMC 31.0423317
2024-05-13 18:16:31 VTMF 87.87619781
2024-05-13 18:16:31 WATT 2
2024-05-13 17:27:25 act_t spa/message
2024-05-13 17:27:25 act_tpl {% if value_json.RED == 1 %}heating{% elif value_json.GRN == 1 %}idle{% elif value_json.FLT == 1 %}fan{% else %}off{% endif %}
2024-05-13 17:27:20 assumed_state 0
2024-05-13 17:27:25 avty_t spa/Status
2024-05-13 17:26:33 button NOBTN
2024-05-13 17:27:23 cmd_t spa/command
2024-05-13 17:26:38 cmd_tpl {CMD:12,VALUE:{{ value | int }},XTIME:0,INTERVAL:0}
2024-05-13 17:27:25 curr_temp_t spa/message
2024-05-13 17:27:25 curr_temp_tpl {{ value_json.TMPF }}
2024-05-13 17:27:23 dev_cla restart
2024-05-13 17:27:25 dev_configuration_url http://192.168.2.150
2024-05-13 17:27:25 dev_connections_1_1 mac
2024-05-13 17:27:25 dev_connections_1_2 CC:50:E3:6B:70:30
2024-05-13 17:27:25 dev_identifiers 7041072
2024-05-13 17:27:25 dev_manufacturer Visualapproach
2024-05-13 17:27:25 dev_model MIAMI2021
2024-05-13 17:27:25 dev_name spa WiFi controller
2024-05-13 17:27:25 dev_sw_version 2024-04-27-001
2024-05-13 17:27:20 expire_after 700
2024-05-13 17:27:23 icon mdi:restart
2024-05-13 18:16:31 loopfq 463130
2024-05-13 17:26:38 max 8
2024-05-13 17:27:25 max_temp 104
2024-05-13 17:26:38 min 0
2024-05-13 17:27:25 min_temp 68
2024-05-13 17:26:38 mode slider
2024-05-13 17:27:25 mode_cmd_t spa/command_batch
2024-05-13 17:27:25 mode_cmd_tpl [{CMD:3,VALUE:{%if value == "heat" %}1{% else %}0{% endif %},XTIME:0,INTERVAL:0},{CMD:4,VALUE:{%if value == "fan_only" %}1{% elif value == "heat" %}1{% else %}0{% endif %},XTIME:0,INTERVAL:0}]
2024-05-13 17:27:25 mode_stat_t spa/message
2024-05-13 17:27:25 mode_stat_tpl {% if value_json.RED == 1 %}heat{% elif value_json.GRN == 1 %}heat{% else %}off{% endif %}
2024-05-13 17:27:25 modes_1 fan_only
2024-05-13 17:27:25 modes_2 off
2024-05-13 17:27:25 modes_3 heat
2024-05-13 17:27:25 name spa temperature control
2024-05-13 17:27:23 payload_press {CMD:6,VALUE:true,XTIME:0,INTERVAL:0}
2024-05-13 17:27:25 pl_avail Alive
2024-05-13 17:27:25 pl_not_avail Dead
2024-05-13 17:27:20 pl_off {CMD:17,VALUE:false,XTIME:0,INTERVAL:0}
2024-05-13 17:27:20 pl_on {CMD:17,VALUE:true,XTIME:0,INTERVAL:0}
2024-05-13 17:27:25 precision 1
2024-05-13 17:26:32 reboot_reason Power On
2024-05-13 17:26:32 reboot_time 2024-05-11 09:44:01Z
2024-05-13 17:27:20 stat_t spa/message
2024-05-13 17:26:52 state_class measurement
2024-05-13 17:27:20 state_off 0
2024-05-13 17:27:20 state_on 1
2024-05-13 17:29:03 subscriptions spa/command spa/command_batch
2024-05-13 17:27:25 temp_cmd_t spa/command
2024-05-13 17:27:25 temp_cmd_tpl {CMD:0,VALUE:{{ value|int }},XTIME:0,INTERVAL:0}
2024-05-13 17:27:25 temp_stat_t spa/message
2024-05-13 17:27:25 temp_stat_tpl {{ value_json.TGTF }}
2024-05-13 17:27:25 temp_unit F
2024-05-13 17:27:25 uniq_id climate.spa_climate7041072
2024-05-13 17:27:13 unit_of_meas °C
2024-05-13 17:27:20 val_tpl {{ value_json.GOD }}
Attributes:
devStateIcon 2.1:water-heat@orange
2.0:water-heat@red
3.0:water-heat@red
3.1:water-heat@green
1.1:sani_domestic_waterworks@green
1.0:sani_domestic_waterworks@red
4.0:vent_ventilation_level_0@red
4.1:vent_ventilation_level_100@green
readingList spa:spa/Status:.* Status
spa:spa/MAC_Address:.* MAC_Address
spa:spa/MQTT_Connect_Count:.* MQTT_Connect_Count
spa:spa/reboot_time:.* reboot_time
spa:spa/reboot_reason:.* reboot_reason
spa:spa/button:.* button
spa:spa/message:.* { json2nameValue($EVENT) }
spa:spa/times:.* { json2nameValue($EVENT) }
spa:spa/other:.* { json2nameValue($EVENT) }
spa:homeassistant/number/spa_brightness/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_pressed_button/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_reboot_time/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_reboot_reason/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_ssid/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_rssi/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_ip/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_connect_count/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_error/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_time_to_ready/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_rs/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_energy/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_today/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_power/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_chlorine_age/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_filter_age/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_uptime/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_pumptime/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_heatertime/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_airtime/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_temperature_f/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_temp_c/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_virtualtemp_f/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_virtualtemp_c/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_target_temp_f/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_target_temp_c/config:.* { json2nameValue($EVENT) }
spa:homeassistant/sensor/spa_amb_temp_c/config:.* { json2nameValue($EVENT) }
spa:homeassistant/binary_sensor/spa_lock/config:.* { json2nameValue($EVENT) }
spa:homeassistant/binary_sensor/spa_heater/config:.* { json2nameValue($EVENT) }
spa:homeassistant/binary_sensor/spa_ready/config:.* { json2nameValue($EVENT) }
spa:homeassistant/binary_sensor/spa_connection/config:.* { json2nameValue($EVENT) }
spa:homeassistant/switch/spa_heat_regulation/config:.* { json2nameValue($EVENT) }
spa:homeassistant/switch/spa_jets/config:.* { json2nameValue($EVENT) }
spa:homeassistant/switch/spa_airbubbles/config:.* { json2nameValue($EVENT) }
spa:homeassistant/switch/spa_pump/config:.* { json2nameValue($EVENT) }
spa:homeassistant/switch/spa_temperature_unit/config:.* { json2nameValue($EVENT) }
spa:homeassistant/switch/spa_take_ctrl/config:.* { json2nameValue($EVENT) }
spa:homeassistant/button/spa_reset_chlorine/config:.* { json2nameValue($EVENT) }
spa:homeassistant/button/spa_reset_filter/config:.* { json2nameValue($EVENT) }
spa:homeassistant/button/spa_restart_esp/config:.* { json2nameValue($EVENT) }
spa:homeassistant/climate/spa_climate/config:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
stateFormat 1:FLT
2:RED
3:GRN
4:AIR
TMP °C
Das ist der aktuelle Versuch der nicht klappt
off:noArg spa/layzspa/command/ { "CMD": 2, "VALUE": 0, "XTIME": 0, "INTERVAL": 0 }
on:noArg spa/layzspa/command/ { "CMD": 2, "VALUE": 1, "XTIME": 0, "INTERVAL": 0 }
Da du ja scheinbar https://forum.fhem.de/index.php?msg=1313120 gelesen hast: Warum setzt du das dann nur zum Teil um? (Der homeassistant-Teil ist in FHEM nur nervtötend!)
Und warum nimmst du nicht 1:1 das, was sich aus "subscriptions" ergibt?
bubbles:0,1 spa/command {"CMD": 2, "VALUE": $EVTPART1, "XTIME": 0, "INTERVAL": 0}
Tatsächlich habe ich es Grade nach deinem Hinweis gelesen, das wie ich die Homeassistent Sachen raus bekomme gucke ich mir an auch wie man das jetzt mit den subscriptions macht.
Bin grade unterwegs und gucke gleich weiter.
Aber danke schön mal.
So konnte nun etwas testen zwar nur vom Handy aber bin soweit ganz zufrieden.
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/Status:.* Status\
spa:spa/MAC_Address:.* MAC_Address\
spa:spa/MQTT_Connect_Count:.* MQTT_Connect_Count\
spa:spa/reboot_time:.* reboot_time\
spa:spa/reboot_reason:.* reboot_reason\
spa:spa/button:.* button\
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 bubbles: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}\
attr MQTT2_spa stateFormat 1:FLT\
2:RED\
3:GRN\
4:AIR\
TMP °C
# CFGFN
# CID spa
# DEF spa
# FUUID 66423127-f33f-91a4-d07a-0166d68976c8990a
# IODev MQTT2_FHEM_Server
# LASTInputDev MQTT2_FHEM_Server
# MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.2.150_50192
# MQTT2_FHEM_Server_MSGCNT 234
# MQTT2_FHEM_Server_TIME 2024-05-13 22:19:17
# MSGCNT 234
# NAME MQTT2_spa
# NR 5510
# STATE 1:1
#2:0
#3:0
#4:0
#29 °C
# TYPE MQTT2_DEVICE
# eventCount 315
# READINGS:
# 2024-05-13 22:19:16 AIR 0
# 2024-05-13 22:19:17 AIRTIME 5868
# 2024-05-13 22:19:16 AMB 40
# 2024-05-13 22:19:16 AMBC 40
# 2024-05-13 22:19:16 AMBF 104
# 2024-05-13 22:19:16 BRT 6
# 2024-05-13 22:19:16 CH1 32
# 2024-05-13 22:19:16 CH2 50
# 2024-05-13 22:19:16 CH3 57
# 2024-05-13 22:19:17 CLINT 14
# 2024-05-13 22:19:17 CLTIME 1715250060
# 2024-05-13 22:19:17 CONTENT OTHER
# 2024-05-13 22:19:17 COST 11.15837669
# 2024-05-13 22:19:17 DBG 192 1 254 183 254 223 254 1 255 247 255 good pkt:0
# 2024-05-13 22:19:16 ERR 0
# 2024-05-13 22:19:17 FINT 30
# 2024-05-13 22:19:16 FLT 1
# 2024-05-13 22:19:17 FTIME 1715250056
# 2024-05-13 22:19:17 FW 2024-04-27-001
# 2024-05-13 22:19:16 GOD 0
# 2024-05-13 22:19:16 GRN 0
# 2024-05-13 22:19:17 HASGOD false
# 2024-05-13 22:19:17 HASJETS false
# 2024-05-13 22:19:17 HEATINGTIME 73570
# 2024-05-13 22:19:16 HJT 0
# 2024-05-13 22:13:43 IODev MQTT2_FHEM_Server
# 2024-05-13 22:19:17 IP 192.168.2.150
# 2024-05-13 22:19:17 JETTIME 0
# 2024-05-13 22:19:17 KWH 41.3273201
# 2024-05-13 22:19:17 KWHD 41.33725281
# 2024-05-13 22:19:16 LCK 0
# 2024-05-13 17:26:32 MAC_Address CC:50:E3:6B:70:30
# 2024-05-13 22:19:17 MODEL MIAMI2021
# 2024-05-13 22:19:17 MQTT 0
# 2024-05-13 17:26:32 MQTT_Connect_Count 9
# 2024-05-13 22:19:17 PUMPTIME 89760
# 2024-05-13 22:19:16 PWR 1
# 2024-05-13 22:19:16 RED 0
# 2024-05-13 22:19:17 RS Not ready
# 2024-05-13 22:19:17 RSSI -66
# 2024-05-13 22:19:17 SSID GartenAP
# 2024-05-13 17:26:31 Status Alive
# 2024-05-13 22:19:17 T2R 5.510149956
# 2024-05-13 22:19:16 TGT 39
# 2024-05-13 22:19:16 TGTC 39
# 2024-05-13 22:19:16 TGTF 102
# 2024-05-13 22:19:17 TIME 1715631556
# 2024-05-13 22:19:16 TMP 29
# 2024-05-13 22:19:16 TMPC 29
# 2024-05-13 22:19:16 TMPF 84
# 2024-05-13 22:19:16 UNT 1
# 2024-05-13 22:19:17 UPTIME 355285
# 2024-05-13 22:19:16 VTM 29.98999977
# 2024-05-13 22:19:16 VTMC 29.98999977
# 2024-05-13 22:19:16 VTMF 85.98200226
# 2024-05-13 22:19:17 WATT 42
# 2024-05-13 17:27:25 act_t spa/message
# 2024-05-13 17:27:25 act_tpl {% if value_json.RED == 1 %}heating{% elif value_json.GRN == 1 %}idle{% elif value_json.FLT == 1 %}fan{% else %}off{% endif %}
# 2024-05-13 17:27:20 assumed_state 0
# 2024-05-13 17:27:25 avty_t spa/Status
# 2024-05-13 17:26:33 button NOBTN
# 2024-05-13 17:27:23 cmd_t spa/command
# 2024-05-13 17:26:38 cmd_tpl {CMD:12,VALUE:{{ value | int }},XTIME:0,INTERVAL:0}
# 2024-05-13 17:27:25 curr_temp_t spa/message
# 2024-05-13 17:27:25 curr_temp_tpl {{ value_json.TMPF }}
# 2024-05-13 17:27:23 dev_cla restart
# 2024-05-13 17:27:25 dev_configuration_url http://192.168.2.150
# 2024-05-13 17:27:25 dev_connections_1_1 mac
# 2024-05-13 17:27:25 dev_connections_1_2 CC:50:E3:6B:70:30
# 2024-05-13 17:27:25 dev_identifiers 7041072
# 2024-05-13 17:27:25 dev_manufacturer Visualapproach
# 2024-05-13 17:27:25 dev_model MIAMI2021
# 2024-05-13 17:27:25 dev_name spa WiFi controller
# 2024-05-13 17:27:25 dev_sw_version 2024-04-27-001
# 2024-05-13 17:27:20 expire_after 700
# 2024-05-13 17:27:23 icon mdi:restart
# 2024-05-13 22:19:17 loopfq 3064
# 2024-05-13 17:26:38 max 8
# 2024-05-13 17:27:25 max_temp 104
# 2024-05-13 17:26:38 min 0
# 2024-05-13 17:27:25 min_temp 68
# 2024-05-13 17:26:38 mode slider
# 2024-05-13 17:27:25 mode_cmd_t spa/command_batch
# 2024-05-13 17:27:25 mode_cmd_tpl [{CMD:3,VALUE:{%if value == "heat" %}1{% else %}0{% endif %},XTIME:0,INTERVAL:0},{CMD:4,VALUE:{%if value == "fan_only" %}1{% elif value == "heat" %}1{% else %}0{% endif %},XTIME:0,INTERVAL:0}]
# 2024-05-13 17:27:25 mode_stat_t spa/message
# 2024-05-13 17:27:25 mode_stat_tpl {% if value_json.RED == 1 %}heat{% elif value_json.GRN == 1 %}heat{% else %}off{% endif %}
# 2024-05-13 17:27:25 modes_1 fan_only
# 2024-05-13 17:27:25 modes_2 off
# 2024-05-13 17:27:25 modes_3 heat
# 2024-05-13 17:27:25 name spa temperature control
# 2024-05-13 17:27:23 payload_press {CMD:6,VALUE:true,XTIME:0,INTERVAL:0}
# 2024-05-13 17:27:25 pl_avail Alive
# 2024-05-13 17:27:25 pl_not_avail Dead
# 2024-05-13 17:27:20 pl_off {CMD:17,VALUE:false,XTIME:0,INTERVAL:0}
# 2024-05-13 17:27:20 pl_on {CMD:17,VALUE:true,XTIME:0,INTERVAL:0}
# 2024-05-13 17:27:25 precision 1
# 2024-05-13 17:26:32 reboot_reason Power On
# 2024-05-13 17:26:32 reboot_time 2024-05-11 09:44:01Z
# 2024-05-13 17:27:20 stat_t spa/message
# 2024-05-13 22:19:15 state bubbles
# 2024-05-13 17:26:52 state_class measurement
# 2024-05-13 17:27:20 state_off 0
# 2024-05-13 17:27:20 state_on 1
# 2024-05-13 22:13:43 subscriptions spa/command spa/command_batch
# 2024-05-13 17:27:25 temp_cmd_t spa/command
# 2024-05-13 17:27:25 temp_cmd_tpl {CMD:0,VALUE:{{ value|int }},XTIME:0,INTERVAL:0}
# 2024-05-13 17:27:25 temp_stat_t spa/message
# 2024-05-13 17:27:25 temp_stat_tpl {{ value_json.TGTF }}
# 2024-05-13 17:27:25 temp_unit F
# 2024-05-13 17:27:25 uniq_id climate.spa_climate7041072
# 2024-05-13 17:27:13 unit_of_meas °C
# 2024-05-13 17:27:20 val_tpl {{ value_json.GOD }}
#
setstate MQTT2_spa 1:1\
2:0\
3:0\
4:0\
29 °C
setstate MQTT2_spa 2024-05-13 22:19:16 AIR 0
setstate MQTT2_spa 2024-05-13 22:19:17 AIRTIME 5868
setstate MQTT2_spa 2024-05-13 22:19:16 AMB 40
setstate MQTT2_spa 2024-05-13 22:19:16 AMBC 40
setstate MQTT2_spa 2024-05-13 22:19:16 AMBF 104
setstate MQTT2_spa 2024-05-13 22:19:16 BRT 6
setstate MQTT2_spa 2024-05-13 22:19:16 CH1 32
setstate MQTT2_spa 2024-05-13 22:19:16 CH2 50
setstate MQTT2_spa 2024-05-13 22:19:16 CH3 57
setstate MQTT2_spa 2024-05-13 22:19:17 CLINT 14
setstate MQTT2_spa 2024-05-13 22:19:17 CLTIME 1715250060
setstate MQTT2_spa 2024-05-13 22:19:17 CONTENT OTHER
setstate MQTT2_spa 2024-05-13 22:19:17 COST 11.15837669
setstate MQTT2_spa 2024-05-13 22:19:17 DBG 192 1 254 183 254 223 254 1 255 247 255 good pkt:0
setstate MQTT2_spa 2024-05-13 22:19:16 ERR 0
setstate MQTT2_spa 2024-05-13 22:19:17 FINT 30
setstate MQTT2_spa 2024-05-13 22:19:16 FLT 1
setstate MQTT2_spa 2024-05-13 22:19:17 FTIME 1715250056
setstate MQTT2_spa 2024-05-13 22:19:17 FW 2024-04-27-001
setstate MQTT2_spa 2024-05-13 22:19:16 GOD 0
setstate MQTT2_spa 2024-05-13 22:19:16 GRN 0
setstate MQTT2_spa 2024-05-13 22:19:17 HASGOD false
setstate MQTT2_spa 2024-05-13 22:19:17 HASJETS false
setstate MQTT2_spa 2024-05-13 22:19:17 HEATINGTIME 73570
setstate MQTT2_spa 2024-05-13 22:19:16 HJT 0
setstate MQTT2_spa 2024-05-13 22:13:43 IODev MQTT2_FHEM_Server
setstate MQTT2_spa 2024-05-13 22:19:17 IP 192.168.2.150
setstate MQTT2_spa 2024-05-13 22:19:17 JETTIME 0
setstate MQTT2_spa 2024-05-13 22:19:17 KWH 41.3273201
setstate MQTT2_spa 2024-05-13 22:19:17 KWHD 41.33725281
setstate MQTT2_spa 2024-05-13 22:19:16 LCK 0
setstate MQTT2_spa 2024-05-13 17:26:32 MAC_Address CC:50:E3:6B:70:30
setstate MQTT2_spa 2024-05-13 22:19:17 MODEL MIAMI2021
setstate MQTT2_spa 2024-05-13 22:19:17 MQTT 0
setstate MQTT2_spa 2024-05-13 17:26:32 MQTT_Connect_Count 9
setstate MQTT2_spa 2024-05-13 22:19:17 PUMPTIME 89760
setstate MQTT2_spa 2024-05-13 22:19:16 PWR 1
setstate MQTT2_spa 2024-05-13 22:19:16 RED 0
setstate MQTT2_spa 2024-05-13 22:19:17 RS Not ready
setstate MQTT2_spa 2024-05-13 22:19:17 RSSI -66
setstate MQTT2_spa 2024-05-13 22:19:17 SSID GartenAP
setstate MQTT2_spa 2024-05-13 17:26:31 Status Alive
setstate MQTT2_spa 2024-05-13 22:19:17 T2R 5.510149956
setstate MQTT2_spa 2024-05-13 22:19:16 TGT 39
setstate MQTT2_spa 2024-05-13 22:19:16 TGTC 39
setstate MQTT2_spa 2024-05-13 22:19:16 TGTF 102
setstate MQTT2_spa 2024-05-13 22:19:17 TIME 1715631556
setstate MQTT2_spa 2024-05-13 22:19:16 TMP 29
setstate MQTT2_spa 2024-05-13 22:19:16 TMPC 29
setstate MQTT2_spa 2024-05-13 22:19:16 TMPF 84
setstate MQTT2_spa 2024-05-13 22:19:16 UNT 1
setstate MQTT2_spa 2024-05-13 22:19:17 UPTIME 355285
setstate MQTT2_spa 2024-05-13 22:19:16 VTM 29.98999977
setstate MQTT2_spa 2024-05-13 22:19:16 VTMC 29.98999977
setstate MQTT2_spa 2024-05-13 22:19:16 VTMF 85.98200226
setstate MQTT2_spa 2024-05-13 22:19:17 WATT 42
setstate MQTT2_spa 2024-05-13 17:27:25 act_t spa/message
setstate MQTT2_spa 2024-05-13 17:27:25 act_tpl {% if value_json.RED == 1 %}heating{% elif value_json.GRN == 1 %}idle{% elif value_json.FLT == 1 %}fan{% else %}off{% endif %}
setstate MQTT2_spa 2024-05-13 17:27:20 assumed_state 0
setstate MQTT2_spa 2024-05-13 17:27:25 avty_t spa/Status
setstate MQTT2_spa 2024-05-13 17:26:33 button NOBTN
setstate MQTT2_spa 2024-05-13 17:27:23 cmd_t spa/command
setstate MQTT2_spa 2024-05-13 17:26:38 cmd_tpl {CMD:12,VALUE:{{ value | int }},XTIME:0,INTERVAL:0}
setstate MQTT2_spa 2024-05-13 17:27:25 curr_temp_t spa/message
setstate MQTT2_spa 2024-05-13 17:27:25 curr_temp_tpl {{ value_json.TMPF }}
setstate MQTT2_spa 2024-05-13 17:27:23 dev_cla restart
setstate MQTT2_spa 2024-05-13 17:27:25 dev_configuration_url http://192.168.2.150
setstate MQTT2_spa 2024-05-13 17:27:25 dev_connections_1_1 mac
setstate MQTT2_spa 2024-05-13 17:27:25 dev_connections_1_2 CC:50:E3:6B:70:30
setstate MQTT2_spa 2024-05-13 17:27:25 dev_identifiers 7041072
setstate MQTT2_spa 2024-05-13 17:27:25 dev_manufacturer Visualapproach
setstate MQTT2_spa 2024-05-13 17:27:25 dev_model MIAMI2021
setstate MQTT2_spa 2024-05-13 17:27:25 dev_name spa WiFi controller
setstate MQTT2_spa 2024-05-13 17:27:25 dev_sw_version 2024-04-27-001
setstate MQTT2_spa 2024-05-13 17:27:20 expire_after 700
setstate MQTT2_spa 2024-05-13 17:27:23 icon mdi:restart
setstate MQTT2_spa 2024-05-13 22:19:17 loopfq 3064
setstate MQTT2_spa 2024-05-13 17:26:38 max 8
setstate MQTT2_spa 2024-05-13 17:27:25 max_temp 104
setstate MQTT2_spa 2024-05-13 17:26:38 min 0
setstate MQTT2_spa 2024-05-13 17:27:25 min_temp 68
setstate MQTT2_spa 2024-05-13 17:26:38 mode slider
setstate MQTT2_spa 2024-05-13 17:27:25 mode_cmd_t spa/command_batch
setstate MQTT2_spa 2024-05-13 17:27:25 mode_cmd_tpl [{CMD:3,VALUE:{%if value == "heat" %}1{% else %}0{% endif %},XTIME:0,INTERVAL:0},{CMD:4,VALUE:{%if value == "fan_only" %}1{% elif value == "heat" %}1{% else %}0{% endif %},XTIME:0,INTERVAL:0}]
setstate MQTT2_spa 2024-05-13 17:27:25 mode_stat_t spa/message
setstate MQTT2_spa 2024-05-13 17:27:25 mode_stat_tpl {% if value_json.RED == 1 %}heat{% elif value_json.GRN == 1 %}heat{% else %}off{% endif %}
setstate MQTT2_spa 2024-05-13 17:27:25 modes_1 fan_only
setstate MQTT2_spa 2024-05-13 17:27:25 modes_2 off
setstate MQTT2_spa 2024-05-13 17:27:25 modes_3 heat
setstate MQTT2_spa 2024-05-13 17:27:25 name spa temperature control
setstate MQTT2_spa 2024-05-13 17:27:23 payload_press {CMD:6,VALUE:true,XTIME:0,INTERVAL:0}
setstate MQTT2_spa 2024-05-13 17:27:25 pl_avail Alive
setstate MQTT2_spa 2024-05-13 17:27:25 pl_not_avail Dead
setstate MQTT2_spa 2024-05-13 17:27:20 pl_off {CMD:17,VALUE:false,XTIME:0,INTERVAL:0}
setstate MQTT2_spa 2024-05-13 17:27:20 pl_on {CMD:17,VALUE:true,XTIME:0,INTERVAL:0}
setstate MQTT2_spa 2024-05-13 17:27:25 precision 1
setstate MQTT2_spa 2024-05-13 17:26:32 reboot_reason Power On
setstate MQTT2_spa 2024-05-13 17:26:32 reboot_time 2024-05-11 09:44:01Z
setstate MQTT2_spa 2024-05-13 17:27:20 stat_t spa/message
setstate MQTT2_spa 2024-05-13 22:19:15 state bubbles
setstate MQTT2_spa 2024-05-13 17:26:52 state_class measurement
setstate MQTT2_spa 2024-05-13 17:27:20 state_off 0
setstate MQTT2_spa 2024-05-13 17:27:20 state_on 1
setstate MQTT2_spa 2024-05-13 22:13:43 subscriptions spa/command spa/command_batch
setstate MQTT2_spa 2024-05-13 17:27:25 temp_cmd_t spa/command
setstate MQTT2_spa 2024-05-13 17:27:25 temp_cmd_tpl {CMD:0,VALUE:{{ value|int }},XTIME:0,INTERVAL:0}
setstate MQTT2_spa 2024-05-13 17:27:25 temp_stat_t spa/message
setstate MQTT2_spa 2024-05-13 17:27:25 temp_stat_tpl {{ value_json.TGTF }}
setstate MQTT2_spa 2024-05-13 17:27:25 temp_unit F
setstate MQTT2_spa 2024-05-13 17:27:25 uniq_id climate.spa_climate7041072
setstate MQTT2_spa 2024-05-13 17:27:13 unit_of_meas °C
setstate MQTT2_spa 2024-05-13 17:27:20 val_tpl {{ value_json.GOD }}
Man kann die icons anklicken um den Zustand zu wechseln
Screenshot_20240513_223518_Chrome.jpg
Was mir noch nicht gefällt ist:
1. Das man 0 und 1 auswählen muss oder halt set spa bubbles 1
Anstatt
set spa bubbles on
2. Das ich 2 Icons für die Heizung habe da es 2 Readings für die Heizung gibt,
"RED" 0 = Heizung aus, oder Soll Temperatur erreicht
"RED" 1 = Heizung an aber noch nicht Soll Temperatur
"GRN" 0 Heizung aus, oder Soll Temperatur noch nicht erreicht
"GRN" 1 Heizung an und Soll Temperatur erreicht
Da hätte ich lieber 1 Icon
Rot aus
Orange an und Soll Temperatur noch nicht erreicht
Grün Soll Temperatur erreicht
3. Das on Off rechts neben den Icons
So weiterer Fortschritt,
Problem 3 ist gelöst. Habe da jetzt einen Slider um die Soll Temperatur einzustellen.
Hätte diesen zwar gerne unter den Icons aber das geht wohl nicht im devStateIcon/StateFormat
Screenshot_20240513_232341_Chrome.jpg
So zusätzlich kann jetzt die Umgebungstemperatur "AMBC" gesetzt werden. Bei mir geschieht das via Doif mit einem Oregon Funk Temperatur sender. Dies dient zur internen Berechnung im Wirlpool Modul.
Zitat von: Tueftler1983 am 13 Mai 2024, 23:31:48Hätte diesen zwar gerne unter den Icons aber das geht wohl nicht im devStateIcon/StateFormat
Geht schon, aber man müßte es komplett in Perl notieren. Falls (!) du Code suchst: die sonos-Geschichte ist vermutlich das am weitesten in diese Richtung fortgeschrittene Beispiel, das mir grade einfällt.
ZitatWas mir noch nicht gefällt ist:
1. Das man 0 und 1 auswählen muss oder halt set spa bubbles 1
Anstatt
set spa bubbles on
2. Das ich 2 Icons für die Heizung habe da es 2 Readings für die Heizung gibt,
"RED" 0 = Heizung aus, oder Soll Temperatur erreicht
"RED" 1 = Heizung an aber noch nicht Soll Temperatur
"GRN" 0 Heizung aus, oder Soll Temperatur noch nicht erreicht
"GRN" 1 Heizung an und Soll Temperatur erreicht
Da hätte ich lieber 1 Icon
Rot aus
Orange an und Soll Temperatur noch nicht erreicht
Grün Soll Temperatur erreicht
ad 1:
a) Vermutlich sollte der setter "AIR" heißen, das scheint jedenfalls das Reading zu sein, das rückwärts dazu kommt.
b) Man kann das schon von "0" nach "off" mappen etc.. Ist dann halt Nacharbeit in Sende- und Empfangsrichtung (Perl...)
ad 2: auch das ließe sich mit Perl-devStateIcon-Code lösen. Ist halt die Frage, ob es dir den Aufwand wert ist...
Ne mit perl mag ich mich nicht noch auseinander setzen, denke es ist so auch schon ein gut brauchbares Device geworden.
Kann man dies anderen als Templates zur Verfügung stellen?
Das ist also mein Endergebnis
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/Status:.* Status\
spa:spa/MAC_Address:.* MAC_Address\
spa:spa/MQTT_Connect_Count:.* MQTT_Connect_Count\
spa:spa/reboot_time:.* reboot_time\
spa:spa/reboot_reason:.* reboot_reason\
spa:spa/button:.* button\
spa:spa/message:.* { json2nameValue($EVENT) }\
spa:spa/times:.* { json2nameValue($EVENT) }\
spa:spa/other:.* { json2nameValue($EVENT) }\
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 bubbles: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}\
TGT: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 TGT
# CID spa
# DEF spa
# FUUID 66423127-f33f-91a4-d07a-0166d68976c8990a
# IODev MQTT2_FHEM_Server
# LASTInputDev MQTT2_FHEM_Server
# MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.2.150_59235
# MQTT2_FHEM_Server_MSGCNT 1062
# MQTT2_FHEM_Server_TIME 2024-05-17 17:48:34
# MSGCNT 1062
# NAME MQTT2_spa
# NR 652
# STATE 1:0
#2:0
#3:0
#4:0
#19 °C
#attr MQTT2_spa webCmd 39
# TYPE MQTT2_DEVICE
# eventCount 1074
# READINGS:
# 2024-05-17 17:48:34 AIR 0
# 2024-05-17 17:48:34 AIRTIME 5910
# 2024-05-17 17:48:34 AMB 14
# 2024-05-17 17:48:34 AMBC 14
# 2024-05-17 17:48:34 AMBF 57
# 2024-05-17 17:48:34 BRT 4
# 2024-05-17 17:48:34 CH1 101
# 2024-05-17 17:48:34 CH2 48
# 2024-05-17 17:48:34 CH3 50
# 2024-05-17 17:48:34 CLINT 14
# 2024-05-17 17:48:34 CLTIME 1715250060
# 2024-05-17 17:48:34 CONTENT OTHER
# 2024-05-17 17:48:34 COST 11.22632694
# 2024-05-17 17:48:34 DBG 192 243 254 127 254 183 254 1 255 241 255 good pkt:0
# 2024-05-17 17:48:34 ERR 2
# 2024-05-17 17:48:34 FINT 30
# 2024-05-17 17:48:34 FLT 0
# 2024-05-17 17:48:34 FTIME 1715250056
# 2024-05-17 17:48:34 FW 2024-04-27-001
# 2024-05-17 17:48:34 GOD 0
# 2024-05-17 17:48:34 GRN 0
# 2024-05-17 17:48:34 HASGOD false
# 2024-05-17 17:48:34 HASJETS false
# 2024-05-17 17:48:34 HEATINGTIME 73597
# 2024-05-17 17:48:34 HJT 0
# 2024-05-17 16:56:52 IODev MQTT2_FHEM_Server
# 2024-05-17 17:48:34 IP 192.168.2.150
# 2024-05-17 17:48:34 JETTIME 0
# 2024-05-17 17:48:34 KWH 41.57898712
# 2024-05-17 17:48:34 KWHD 41.5898898
# 2024-05-17 17:48:34 LCK 0
# 2024-05-17 17:48:34 MODEL MIAMI2021
# 2024-05-17 17:48:34 MQTT 0
# 2024-05-17 17:48:34 PUMPTIME 99652
# 2024-05-17 17:48:34 PWR 1
# 2024-05-17 17:48:34 RED 0
# 2024-05-17 17:48:34 RS Never
# 2024-05-17 17:48:34 RSSI -68
# 2024-05-17 17:48:34 SSID GartenAP
# 2024-05-17 17:48:34 T2R -1
# 2024-05-17 17:48:34 TGT 39
# 2024-05-17 17:48:34 TGTC 39
# 2024-05-17 17:48:34 TGTF 102
# 2024-05-17 17:48:34 TIME 1715960891
# 2024-05-17 17:48:34 TMP 19
# 2024-05-17 17:48:34 TMPC 19
# 2024-05-17 17:48:34 TMPF 66
# 2024-05-17 17:48:34 UNT 1
# 2024-05-17 17:48:34 UPTIME 567991
# 2024-05-17 17:48:34 VTM 18.978508
# 2024-05-17 17:48:34 VTMC 18.978508
# 2024-05-17 17:48:34 VTMF 66.16131592
# 2024-05-17 17:48:34 WATT 2
# 2024-05-17 17:48:34 loopfq 309
# 2024-05-17 17:44:58 state pump
# 2024-05-17 17:40:53 subscriptions spa/command spa/command_batch
#
setstate MQTT2_spa 1:0\
2:0\
3:0\
4:0\
19 °C\
attr MQTT2_spa webCmd 39
setstate MQTT2_spa 2024-05-17 17:48:34 AIR 0
setstate MQTT2_spa 2024-05-17 17:48:34 AIRTIME 5910
setstate MQTT2_spa 2024-05-17 17:48:34 AMB 14
setstate MQTT2_spa 2024-05-17 17:48:34 AMBC 14
setstate MQTT2_spa 2024-05-17 17:48:34 AMBF 57
setstate MQTT2_spa 2024-05-17 17:48:34 BRT 4
setstate MQTT2_spa 2024-05-17 17:48:34 CH1 101
setstate MQTT2_spa 2024-05-17 17:48:34 CH2 48
setstate MQTT2_spa 2024-05-17 17:48:34 CH3 50
setstate MQTT2_spa 2024-05-17 17:48:34 CLINT 14
setstate MQTT2_spa 2024-05-17 17:48:34 CLTIME 1715250060
setstate MQTT2_spa 2024-05-17 17:48:34 CONTENT OTHER
setstate MQTT2_spa 2024-05-17 17:48:34 COST 11.22632694
setstate MQTT2_spa 2024-05-17 17:48:34 DBG 192 243 254 127 254 183 254 1 255 241 255 good pkt:0
setstate MQTT2_spa 2024-05-17 17:48:34 ERR 2
setstate MQTT2_spa 2024-05-17 17:48:34 FINT 30
setstate MQTT2_spa 2024-05-17 17:48:34 FLT 0
setstate MQTT2_spa 2024-05-17 17:48:34 FTIME 1715250056
setstate MQTT2_spa 2024-05-17 17:48:34 FW 2024-04-27-001
setstate MQTT2_spa 2024-05-17 17:48:34 GOD 0
setstate MQTT2_spa 2024-05-17 17:48:34 GRN 0
setstate MQTT2_spa 2024-05-17 17:48:34 HASGOD false
setstate MQTT2_spa 2024-05-17 17:48:34 HASJETS false
setstate MQTT2_spa 2024-05-17 17:48:34 HEATINGTIME 73597
setstate MQTT2_spa 2024-05-17 17:48:34 HJT 0
setstate MQTT2_spa 2024-05-17 16:56:52 IODev MQTT2_FHEM_Server
setstate MQTT2_spa 2024-05-17 17:48:34 IP 192.168.2.150
setstate MQTT2_spa 2024-05-17 17:48:34 JETTIME 0
setstate MQTT2_spa 2024-05-17 17:48:34 KWH 41.57898712
setstate MQTT2_spa 2024-05-17 17:48:34 KWHD 41.5898898
setstate MQTT2_spa 2024-05-17 17:48:34 LCK 0
setstate MQTT2_spa 2024-05-17 17:48:34 MODEL MIAMI2021
setstate MQTT2_spa 2024-05-17 17:48:34 MQTT 0
setstate MQTT2_spa 2024-05-17 17:48:34 PUMPTIME 99652
setstate MQTT2_spa 2024-05-17 17:48:34 PWR 1
setstate MQTT2_spa 2024-05-17 17:48:34 RED 0
setstate MQTT2_spa 2024-05-17 17:48:34 RS Never
setstate MQTT2_spa 2024-05-17 17:48:34 RSSI -68
setstate MQTT2_spa 2024-05-17 17:48:34 SSID GartenAP
setstate MQTT2_spa 2024-05-17 17:48:34 T2R -1
setstate MQTT2_spa 2024-05-17 17:48:34 TGT 39
setstate MQTT2_spa 2024-05-17 17:48:34 TGTC 39
setstate MQTT2_spa 2024-05-17 17:48:34 TGTF 102
setstate MQTT2_spa 2024-05-17 17:48:34 TIME 1715960891
setstate MQTT2_spa 2024-05-17 17:48:34 TMP 19
setstate MQTT2_spa 2024-05-17 17:48:34 TMPC 19
setstate MQTT2_spa 2024-05-17 17:48:34 TMPF 66
setstate MQTT2_spa 2024-05-17 17:48:34 UNT 1
setstate MQTT2_spa 2024-05-17 17:48:34 UPTIME 567991
setstate MQTT2_spa 2024-05-17 17:48:34 VTM 18.978508
setstate MQTT2_spa 2024-05-17 17:48:34 VTMC 18.978508
setstate MQTT2_spa 2024-05-17 17:48:34 VTMF 66.16131592
setstate MQTT2_spa 2024-05-17 17:48:34 WATT 2
setstate MQTT2_spa 2024-05-17 17:48:34 loopfq 309
setstate MQTT2_spa 2024-05-17 17:44:58 state pump
setstate MQTT2_spa 2024-05-17 17:40:53 subscriptions spa/command spa/command_batch
Wie wird daraus jetzt ein Template?
Sorry, hatte in https://forum.fhem.de/index.php?msg=1313412 geantwortet, aber m.E. wäre die weitere Diskussion hier besser aufgehoben...
Weg wäre zudem noch:
- IO-TYPE unempfindlich machen (keine CID-präfixe in readingList)
- Variablen benutzen wie DEVICE und BASETOPIC
Äää ja ich lese es, ich verstehe es auch soweit, nur weiß ich noch nicht wie ich das umzusetzen habe.
Device weiß ich glaube ich wie ich es zu machen habe und das basetropic ist ja eig genau so wie der device ame bei Auslieferung des WLAN modules gleich.
Was du hiermit meinst weiß ich nicht.
Zitat- IO-TYPE unempfindlich machen (keine CID-präfixe in readingList)
LG Holger
Lass uns bitte hier weiter machen...
Ad https://forum.fhem.de/index.php?msg=1313425 und deinen letzten Fragen hier:
In https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt ist eigentlich alles (kurz) erklärt, was man braucht, und das nur in Teilen zurückzuspielen war nicht das, was ich mir erhofft hatte. "AIR" und "air" sind eben zwei Paar Stiefel und gerade kein geschlossener Kreis.
Und bitte unternimm doch gleich den Versuch, das selbst in die attrTemplate-"Sprache" zu übertragen, eine Einführung dazu gibt es ebenfalls im Wiki: https://wiki.fhem.de/wiki/AttrTemplate
Hy hatte ne Benachrichtigung über deinen Beitrag bekommen, ich habe das schon seit gut 2 Jahren am laufen eventuell hilft es ja noch falz das was bei ist was noch nicht so will.
defmod Helsinki MQTT2_DEVICE TEST1
attr Helsinki group Spa
attr Helsinki jsonMap TGT:desired-temp TMP:temperature FLT:pump AIR:air RED:heater UNT:unit
attr Helsinki readingList layzspa/times:.* { json2nameValue($EVENT, 'times_', $JSONMAP) }\
layzspa/other:.* { json2nameValue($EVENT, 'other_', $JSONMAP) }\
layzspa/message:.* { $EVENT =~ s/"(FLT|AIR|RED)":1/"$1":"on"/g;;;; $EVENT =~ s/"(FLT|AIR|RED)":0/"$1":"off"/g;;;; json2nameValue($EVENT,'',$JSONMAP) }\
layzspa/Status:.* { $EVENT eq 'Alive' ? {LWT=>'online'} : {LWT=>'offline'} }\
layzspa/MAC_Address:.* MAC_Address\
layzspa/MQTT_Connect_Count:.* MQTT_Connect_Count\
layzspa/reboot_time:.* reboot_time\
layzspa/reboot_reason:.* reboot_reason\
layzspa/button:.* button\
layzspa/message:.* { $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g;;;; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g;;;; json2nameValue($EVENT,'',$JSONMAP) }\
Helsinki:homeassistant/sensor/layzspa_temperature/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }\
Helsinki:homeassistant/sensor/layzspa_target_temperature/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }\
Helsinki:homeassistant/climate/layzspa_climate/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }
attr Helsinki room MQTT2_DEVICE
attr Helsinki setList pump:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;; qq(layzspa/command { "CMD":4, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
desired-temp:slider,20,1,40 layzspa/command {CMD:0,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}\
air:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;; qq(layzspa/command { "CMD":2, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
unit:Celsius,Fahrenheit { my $Celsius = $EVTPART1 eq 'Celsius'?1:0;;;; qq(layzspa/command { "CMD":1, "VALUE":$Celsius, "XTIME":0, "INTERVAL":0 }) }\
heater:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;; qq(layzspa/command { "CMD":3, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }
attr Helsinki setStateList on off
attr Helsinki stateFormat temperature config_unit_of_measurement
attr Helsinki webCmd pump:air:heater:unit:desired-temp
Guten morgen,
Gasmast3r ich habe mir tatsächlich ein wenig bei dir geklaut und zwar den teil um auf Fhem freundliche readings zu Mappen und um die zustände als on/off zu haben und zu schalten anstatt 1/2.
das Sollte die Fertige version sein, bis auf das Symbol für die heizung da hätte ich halt gerne 1 Symbol um (Aus/ Ein Aufheizen/ Ein Temp Erreicht) darzustellen
defmod Wirlpool MQTT2_DEVICE Lay_Z_Spa_Module
attr Wirlpool devStateIcon 2.on:water-heat@orange:heat+off\
2.off:water-heat@red:heat+on\
3.off:water-heat@red:heat+on\
3.on:water-heat@green:heat+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 Wirlpool jsonMap TGT:desired-temp TMP:temperature FLT:pump AIR:air RED:heater GRN:hot UNT:unit
attr Wirlpool readingList Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/button:.* button\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/message:.* { $EVENT =~ s/"(FLT|AIR|RED|GRN)":1/"$1":"on"/g;;;;;;;; $EVENT =~ s/"(FLT|AIR|RED|GRN)":0/"$1":"off"/g;;;;;;;; json2nameValue($EVENT,'',$JSONMAP) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/message:.* { $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g;;;;;;;; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g;;;;;;;; json2nameValue($EVENT,'',$JSONMAP) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/times:.* { json2nameValue($EVENT, 'times_', $JSONMAP) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/other:.* { json2nameValue($EVENT, 'other_', $JSONMAP) }\
Lay_Z_Spa_Module:Lay-Z-Spa\x20Module/Status:.* { $EVENT eq 'Alive' ? {LWT=>'online'} : {LWT=>'offline'} }\
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
attr Wirlpool room MQTT2_DEVICE
attr Wirlpool setList pump:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;; qq(layzspa/command { "CMD":4, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
desired-temp:slider,20,1,40 layzspa/command {CMD:0,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}\
air:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;; qq(layzspa/command { "CMD":2, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
unit:Celsius,Fahrenheit { my $Celsius = $EVTPART1 eq 'Celsius'?1:0;;;;;;;; qq(layzspa/command { "CMD":1, "VALUE":$Celsius, "XTIME":0, "INTERVAL":0 }) }\
heater:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;; qq(layzspa/command { "CMD":3, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }
attr Wirlpool stateFormat 1:pump\
2:heater\
3:hot\
4:air\
temperature °C\
attr Wirlpool webCmd desired-temp
setstate Wirlpool 1:off\
2:off\
3:off\
4:off\
25 °C\
habe mal einen versuch gewagt
####################################
# provided as mqtt2_layzspa.template by Tueftler1983
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 }
defmod DEVICE MQTT2_DEVICE Lay_Z_Spa_Module
attr DEVICE devStateIcon 2.on:water-heat@orange:heat+off
2.off:water-heat@red:heat+on
3.off:water-heat@red:heat+on
3.on:water-heat@green:heat+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
attr DEVICE readingList Lay_Z_Spa_Module:Lay-Z-Spa\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 }) }
attr DEVICE stateFormat 1:pump
2:heater
3:hot
4:air
temperature °C\
Hallo Holger.
Zitat von: Tueftler1983 am 12 Mai 2024, 08:42:28... Der Entwickler der Platine und der Firmware hat mir noch dieses Beispiel ...
Wo findet man eigentlich die Platine, die Firmware und Doku? Dann könnten ggf. auch andere vom Template profitieren :)
Danke und viele Grüße
rob
Das anschlussfertige Modul gibt es hier, wird einfach via Steckverbinder zwischen Bedienteil und Steuerung geklemmt.
Habe grade nur das problem das plötzlich das mapping von 0/1 zu off/on nicht mehr geht.
Es lief die ganze Zeit und jetzt steht in den Readings plötzlich wieder 0 bzw 1
www.mk-innovations.de
Hmm komisches Phänomen, nach einem shutdown restart von fhem funktioniert das Mapping auf on Off wieder...
versuch ein Template zu erstellen:
####################################
# 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
Kannst du das bitte mal testen:
####################################
# 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
par:BASE_TOPIC;base topic set in SmarAndRelax MQTT Konfiguration;{ AttrVal('DEVICE','readingList','') =~ m,([^:]+)/Status:, ? $1 : undef }
desc:Use this for the WiFi Module RelaxAndSpa for Bestway Lay Z Spar Wirlpools. The WiFi module ist selled and supportet by Michael Krenner https://www.mk-innovations.de/smartandrelax-modul/. Note: in case Client-ID and Basic-Topic include SPACE letters, you will have to change that fist in the settings of the WiFi 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 BASE_TOPIC/button:.* button\
BASE_TOPIC/message:.* { $EVENT =~ s/"(FLT|AIR|RED|GRN)":1/"$1":"on"/g; $EVENT =~ s/"(FLT|AIR|RED|GRN)":0/"$1":"off"/g; $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g; json2nameValue($EVENT,'',$JSONMAP) }\
BASE_TOPIC/times:.* { json2nameValue($EVENT, 'times_', $JSONMAP) }\
BASE_TOPIC/other:.* { json2nameValue($EVENT, 'other_', $JSONMAP) }\
BASE_TOPIC/Status:.* { $EVENT eq 'Alive' ? {LWT=>'online'} : {LWT=>'offline'} }\
BASE_TOPIC/MAC_Address:.* MAC_Address\
BASE_TOPIC/MQTT_Connect_Count:.* MQTT_Connect_Count\
BASE_TOPIC/reboot_time:.* reboot_time\
BASE_TOPIC/reboot_reason:.* reboot_reason
attr DEVICE room MQTT2_DEVICE
attr DEVICE setList pump:on,off { my $on = $EVTPART1 eq 'on'?1:0; qq(BASE_TOPIC/command { "CMD":4, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
desired-temp:slider,20,1,40 BASE_TOPIC/command {CMD:0,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}\
air:on,off { my $on = $EVTPART1 eq 'on'?1:0; qq(BASE_TOPIC/command { "CMD":2, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
unit:Celsius,Fahrenheit { my $Celsius = $EVTPART1 eq 'Celsius'?1:0; qq(BASE_TOPIC/command { "CMD":1, "VALUE":$Celsius, "XTIME":0, "INTERVAL":0 }) }\
heater:on,off { my $on = $EVTPART1 eq 'on'?1:0; qq(BASE_TOPIC/command { "CMD":3, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
reset_chlorid BASE_TOPIC/command {CMD:9,VALUE:,XTIME:0,INTERVAL:0}\
reset_filter BASE_TOPIC/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:times_CLTIME.* {return int((time()-ReadingsVal($name, 'times_CLTIME', 0))/DAYSECONDS);}, last_filter_change:times_FTIME.* {return int((time()-ReadingsVal($name, 'times_FTIME', 0))/DAYSECONDS);}
attr DEVICE webCmd desired-temp:reset_filter:reset_chlorid
Anmerkungen:
Man könnte auch mit $DEVICETOPIC arbeiten, müßte es dann aber auch korrekt setzen; finde hier die einfache Klartext-Form ausreichend, und auch die Zahl der Strichpunkte dürfte so ausreichen.
Okay Teste es gerne, diesen Quelltext muss ich doch jetzt in /opt/fhem/FHEM/lib/AttrTemplate ind die mqtt2.template am ende einfügen, dann Fhem Neustarten und ab da an sollte ich sie im device oben unter set DEVICE attr Template LayZSpa auswählen können oder?
Da steht es leider nicht zur auswahl.
Auch habe ich versucht eine Datei LayZSpa.template anzulegen und diese in den entsprechenden Ordner geschoben doch auch leider so kein Erfolg ein { AttrTemplate_Initialize() } habe ich auch gemacht
Habe die ReadingList mal von hand in mein Device übertragen ( Copy Past) doch leider werden die Readings von AIR FLT RED GRN nicht mehr von 1/0 auf on/off umgesetzt
define Wirlpool MQTT2_DEVICE Lay-Z-Spa
attr Wirlpool 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 Wirlpool jsonMap TGT:desired-temp TMP:temperature FLT:pump AIR:air RED:heater GRN:hot UNT:unit AMB:ambiant-temp
attr Wirlpool readingList Lay-Z-Spa-Module/button:.* button\
Lay-Z-Spa-Module/message:.* { $EVENT =~ s/"(FLT|AIR|RED|GRN)":1/"$1":"on"/g;; $EVENT =~ s/"(FLT|AIR|RED|GRN)":0/"$1":"off"/g;; $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g;; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g;; json2nameValue($EVENT,'',$JSONMAP) }\
Lay-Z-Spa-Module/message:.* { $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g;;;;;;;; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g;;;;;;;; json2nameValue($EVENT,'',$JSONMAP) }\
Lay-Z-Spa-Module/times:.* { json2nameValue($EVENT, 'times_', $JSONMAP) }\
Lay-Z-Spa-Module/other:.* { json2nameValue($EVENT, 'other_', $JSONMAP) }\
Lay-Z-Spa-Module/Status:.* { $EVENT eq 'Alive' ? {LWT=>'online'} : {LWT=>'offline'} }\
Lay-Z-Spa-Module/MAC_Address:.* MAC_Address\
Lay-Z-Spa-Module/MQTT_Connect_Count:.* MQTT_Connect_Count\
Lay-Z-Spa-Module/reboot_time:.* reboot_time\
Lay-Z-Spa-Module/reboot_reason:.* reboot_reason\
attr Wirlpool room Garten,Gast,MQTT2_DEVICE,Pool
attr Wirlpool setList pump:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;;;;;;;;;; qq(Lay-Z-Spa-Module/command { "CMD":4, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
desired-temp:slider,20,1,40 Lay-Z-Spa-Module/command {CMD:0,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}\
air:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;;;;;;;;;; qq(Lay-Z-Spa-Module/command { "CMD":2, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
unit:Celsius,Fahrenheit { my $Celsius = $EVTPART1 eq 'Celsius'?1:0;;;;;;;;;;;;;;;; qq(Lay-Z-Spa-Module/command { "CMD":1, "VALUE":$Celsius, "XTIME":0, "INTERVAL":0 }) }\
heater:on,off { my $on = $EVTPART1 eq 'on'?1:0;;;;;;;;;;;;;;;; qq(Lay-Z-Spa-Module/command { "CMD":3, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
ambiant-temp Lay-Z-Spa-Module/command {CMD:15,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}\
reset_chlorid Lay-Z-Spa-Module/command {CMD:9,VALUE:,XTIME:0,INTERVAL:0}\
reset_filter Lay-Z-Spa-Module/command {CMD:10,VALUE:,XTIME:0,INTERVAL:0}
attr Wirlpool 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 Wirlpool 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 Wirlpool webCmd desired-temp:reset_filter:reset_chlorid
# CID Lay-Z-Spa
# DEF Lay-Z-Spa
# FUUID 6647a578-f33f-91a4-fb4a-87fd094bd03bdc1e
# IODev MQTT2_FHEM_Server
# LASTInputDev MQTT2_FHEM_Server
# MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.2.150_54650
# MQTT2_FHEM_Server_MSGCNT 136
# MQTT2_FHEM_Server_TIME 2024-05-23 12:41:16
# MSGCNT 136
# NAME Wirlpool
# NR 609
# STATE 1:1
#2:0
#3:0
#4:0
#18 °C
#<br>
#Letzter Filter Wechsel 4 Tage
#<br>
#Letzte Chlorung 4 Tage
# TYPE MQTT2_DEVICE
# eventCount 139
# JSONMAP:
# AIR air
# AMB ambiant-temp
# FLT pump
# GRN hot
# RED heater
# TGT desired-temp
# TMP temperature
# UNT unit
# OLDREADINGS:
# READINGS:
# 2024-05-23 12:41:16 AMBC 18
# 2024-05-23 12:41:16 AMBF 64
# 2024-05-23 12:41:16 BRT 4
# 2024-05-23 12:41:16 CH1 32
# 2024-05-23 12:41:16 CH2 49
# 2024-05-23 12:41:16 CH3 56
# 2024-05-23 12:41:16 CONTENT STATES
# 2024-05-23 12:41:16 ERR 0
# 2024-05-23 12:41:16 GOD 0
# 2024-05-23 12:41:16 HJT 0
# 2024-05-23 12:41:16 LCK 1
# 2024-05-23 12:41:16 PWR 1
# 2024-05-23 12:41:16 TGTC 33
# 2024-05-23 12:41:16 TGTF 91
# 2024-05-23 12:41:16 TIME 1716460876
# 2024-05-23 12:41:16 TMPC 18
# 2024-05-23 12:41:16 TMPF 64
# 2024-05-23 12:41:16 VTM 17.7349987
# 2024-05-23 12:41:16 VTMC 17.7349987
# 2024-05-23 12:41:16 VTMF 63.92299652
# 2024-05-23 12:41:16 air 0
# 2024-05-23 12:41:16 ambiant-temp 18
# 2024-05-23 12:41:16 desired-temp 33
# 2024-05-23 12:41:16 heater 0
# 2024-05-23 12:41:16 hot 0
# 2024-05-23 12:41:16 last_add_chlorid 4
# 2024-05-23 12:41:16 last_filter_change 4
# 2024-05-23 12:41:16 other_CONTENT OTHER
# 2024-05-23 12:41:16 other_FW 2024-04-27-001
# 2024-05-23 12:41:16 other_HASGOD false
# 2024-05-23 12:41:16 other_HASJETS false
# 2024-05-23 12:41:16 other_IP 192.168.2.150
# 2024-05-23 12:41:16 other_MODEL MIAMI2021
# 2024-05-23 12:41:16 other_MQTT 0
# 2024-05-23 12:41:16 other_RSSI -69
# 2024-05-23 12:41:16 other_SSID GartenAP
# 2024-05-23 12:41:16 other_loopfq 82
# 2024-05-23 12:41:16 pump 1
# 2024-05-23 12:33:30 state pump
# 2024-05-23 12:41:16 temperature 18
# 2024-05-23 12:41:16 times_AIRTIME 5972
# 2024-05-23 12:41:16 times_CLINT 14
# 2024-05-23 12:41:16 times_CLTIME 1716073090
# 2024-05-23 12:41:16 times_CONTENT TIMES
# 2024-05-23 12:41:16 times_COST 11.75545216
# 2024-05-23 12:41:16 times_DBG 192 1 254 13 254 255 254 9 255 247 255 good pkt:0
# 2024-05-23 12:41:16 times_FINT 30
# 2024-05-23 12:41:16 times_FTIME 1716066900
# 2024-05-23 12:41:16 times_HEATINGTIME 73993
# 2024-05-23 12:41:16 times_JETTIME 0
# 2024-05-23 12:41:16 times_KWH 43.53871155
# 2024-05-23 12:41:16 times_KWHD 43.55185257
# 2024-05-23 12:41:16 times_PUMPTIME 236256
# 2024-05-23 12:41:16 times_RS Not ready
# 2024-05-23 12:41:16 times_T2R 15.577672
# 2024-05-23 12:41:16 times_TIME 1716460876
# 2024-05-23 12:41:16 times_UPTIME 962416
# 2024-05-23 12:41:16 times_WATT 42
# 2024-05-23 12:41:16 unit Celsius
#
setstate Wirlpool 1:1\
2:0\
3:0\
4:0\
18 °C\
<br>\
Letzter Filter Wechsel 4 Tage\
<br>\
Letzte Chlorung 4 Tage
setstate Wirlpool 2024-05-23 12:41:16 AMBC 18
setstate Wirlpool 2024-05-23 12:41:16 AMBF 64
setstate Wirlpool 2024-05-23 12:41:16 BRT 4
setstate Wirlpool 2024-05-23 12:41:16 CH1 32
setstate Wirlpool 2024-05-23 12:41:16 CH2 49
setstate Wirlpool 2024-05-23 12:41:16 CH3 56
setstate Wirlpool 2024-05-23 12:41:16 CONTENT STATES
setstate Wirlpool 2024-05-23 12:41:16 ERR 0
setstate Wirlpool 2024-05-23 12:41:16 GOD 0
setstate Wirlpool 2024-05-23 12:41:16 HJT 0
setstate Wirlpool 2024-05-23 12:41:16 LCK 1
setstate Wirlpool 2024-05-23 12:41:16 PWR 1
setstate Wirlpool 2024-05-23 12:41:16 TGTC 33
setstate Wirlpool 2024-05-23 12:41:16 TGTF 91
setstate Wirlpool 2024-05-23 12:41:16 TIME 1716460876
setstate Wirlpool 2024-05-23 12:41:16 TMPC 18
setstate Wirlpool 2024-05-23 12:41:16 TMPF 64
setstate Wirlpool 2024-05-23 12:41:16 VTM 17.7349987
setstate Wirlpool 2024-05-23 12:41:16 VTMC 17.7349987
setstate Wirlpool 2024-05-23 12:41:16 VTMF 63.92299652
setstate Wirlpool 2024-05-23 12:41:16 air 0
setstate Wirlpool 2024-05-23 12:41:16 ambiant-temp 18
setstate Wirlpool 2024-05-23 12:41:16 desired-temp 33
setstate Wirlpool 2024-05-23 12:41:16 heater 0
setstate Wirlpool 2024-05-23 12:41:16 hot 0
setstate Wirlpool 2024-05-23 12:41:16 last_add_chlorid 4
setstate Wirlpool 2024-05-23 12:41:16 last_filter_change 4
setstate Wirlpool 2024-05-23 12:41:16 other_CONTENT OTHER
setstate Wirlpool 2024-05-23 12:41:16 other_FW 2024-04-27-001
setstate Wirlpool 2024-05-23 12:41:16 other_HASGOD false
setstate Wirlpool 2024-05-23 12:41:16 other_HASJETS false
setstate Wirlpool 2024-05-23 12:41:16 other_IP 192.168.2.150
setstate Wirlpool 2024-05-23 12:41:16 other_MODEL MIAMI2021
setstate Wirlpool 2024-05-23 12:41:16 other_MQTT 0
setstate Wirlpool 2024-05-23 12:41:16 other_RSSI -69
setstate Wirlpool 2024-05-23 12:41:16 other_SSID GartenAP
setstate Wirlpool 2024-05-23 12:41:16 other_loopfq 82
setstate Wirlpool 2024-05-23 12:41:16 pump 1
setstate Wirlpool 2024-05-23 12:33:30 state pump
setstate Wirlpool 2024-05-23 12:41:16 temperature 18
setstate Wirlpool 2024-05-23 12:41:16 times_AIRTIME 5972
setstate Wirlpool 2024-05-23 12:41:16 times_CLINT 14
setstate Wirlpool 2024-05-23 12:41:16 times_CLTIME 1716073090
setstate Wirlpool 2024-05-23 12:41:16 times_CONTENT TIMES
setstate Wirlpool 2024-05-23 12:41:16 times_COST 11.75545216
setstate Wirlpool 2024-05-23 12:41:16 times_DBG 192 1 254 13 254 255 254 9 255 247 255 good pkt:0
setstate Wirlpool 2024-05-23 12:41:16 times_FINT 30
setstate Wirlpool 2024-05-23 12:41:16 times_FTIME 1716066900
setstate Wirlpool 2024-05-23 12:41:16 times_HEATINGTIME 73993
setstate Wirlpool 2024-05-23 12:41:16 times_JETTIME 0
setstate Wirlpool 2024-05-23 12:41:16 times_KWH 43.53871155
setstate Wirlpool 2024-05-23 12:41:16 times_KWHD 43.55185257
setstate Wirlpool 2024-05-23 12:41:16 times_PUMPTIME 236256
setstate Wirlpool 2024-05-23 12:41:16 times_RS Not ready
setstate Wirlpool 2024-05-23 12:41:16 times_T2R 15.577672
setstate Wirlpool 2024-05-23 12:41:16 times_TIME 1716460876
setstate Wirlpool 2024-05-23 12:41:16 times_UPTIME 962416
setstate Wirlpool 2024-05-23 12:41:16 times_WATT 42
setstate Wirlpool 2024-05-23 12:41:16 unit Celsius
Zitat von: Tueftler1983 am 23 Mai 2024, 11:40:56Okay Teste es gerne, diesen Quelltext muss ich doch jetzt in /opt/fhem/FHEM/lib/AttrTemplate ind die mqtt2.template am ende einfügen, dann Fhem Neustarten und ab da an sollte ich sie im device oben unter set DEVICE attr Template LayZSpa auswählen können oder?
Da steht es leider nicht zur auswahl.
Auch habe ich versucht eine Datei LayZSpa.template anzulegen und diese in den entsprechenden Ordner geschoben doch auch leider so kein Erfolg ein { AttrTemplate_Initialize() } habe ich auch gemacht
Kommt drauf an, evtl. schlägt da auch die "filter"-Anweisung durch? Ggf. einfach etwas großzügiger fassen (nur auf TYPE).
Zitat von: Tueftler1983 am 23 Mai 2024, 12:41:55Habe die ReadingList mal von hand in mein Device übertragen ( Copy Past) doch leider werden die Readings von AIR FLT RED GRN nicht mehr von 1/0 auf on/off umgesetzt
Bitte lösche erst mal die 2. Zeile mit "message". Kann sonst sein, dass die 2. Zeile die Ergebnisse der ersten überschreibt, daher war da auch die vorgeschlagene Doppelung raus...
Hey also mit reduziertem filter funktioniert das Template.
Nur die Zuweisung in den Raum funktioniert nicht, es wird dann ein Raum angelegt mit dem Namen : MQTT2_Devicename
Eigentlich soll es ja in den Raum (MQTT2_DEVICE)
Und das "°" Zeichen wurde nicht dargestellt sondern ein anderes undefiniertes Zeichen deshalb habe ich es in den Text "Grad"
####################################
# 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
par:BASE_TOPIC;base topic set in SmarAndRelax MQTT Konfiguration;{ AttrVal('DEVICE','readingList','') =~ m,([^:]+)/Status:, ? $1 : undef }
desc:Use this for the WiFi Module RelaxAndSpa for Bestway Lay Z Spar Wirlpools. The WiFi module ist selled and supportet by Michael Krenner https://www.mk-innovations.de/smartandrelax-modul/. Note: in case Client-ID and Basic-Topic include SPACE letters, you will have to change that fist in the settings of the WiFi 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 BASE_TOPIC/button:.* button\
BASE_TOPIC/message:.* { $EVENT =~ s/"(FLT|AIR|RED|GRN)":1/"$1":"on"/g; $EVENT =~ s/"(FLT|AIR|RED|GRN)":0/"$1":"off"/g; $EVENT =~ s/"(UNT)":1/"$1":"Celsius"/g; $EVENT =~ s/"(UNT)":0/"$1":"Fahrenheit"/g; json2nameValue($EVENT,'',$JSONMAP) }\
BASE_TOPIC/times:.* { json2nameValue($EVENT, 'times_', $JSONMAP) }\
BASE_TOPIC/other:.* { json2nameValue($EVENT, 'other_', $JSONMAP) }\
BASE_TOPIC/Status:.* { $EVENT eq 'Alive' ? {LWT=>'online'} : {LWT=>'offline'} }\
BASE_TOPIC/MAC_Address:.* MAC_Address\
BASE_TOPIC/MQTT_Connect_Count:.* MQTT_Connect_Count\
BASE_TOPIC/reboot_time:.* reboot_time\
BASE_TOPIC/reboot_reason:.* reboot_reason
attr DEVICE room MQTT2_DEVICE
attr DEVICE setList pump:on,off { my $on = $EVTPART1 eq 'on'?1:0; qq(BASE_TOPIC/command { "CMD":4, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
desired-temp:slider,20,1,40 BASE_TOPIC/command {CMD:0,VALUE:$EVTPART1,XTIME:0,INTERVAL:0}\
air:on,off { my $on = $EVTPART1 eq 'on'?1:0; qq(BASE_TOPIC/command { "CMD":2, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
unit:Celsius,Fahrenheit { my $Celsius = $EVTPART1 eq 'Celsius'?1:0; qq(BASE_TOPIC/command { "CMD":1, "VALUE":$Celsius, "XTIME":0, "INTERVAL":0 }) }\
heater:on,off { my $on = $EVTPART1 eq 'on'?1:0; qq(BASE_TOPIC/command { "CMD":3, "VALUE":$on, "XTIME":0, "INTERVAL":0 }) }\
reset_chlorid BASE_TOPIC/command {CMD:9,VALUE:,XTIME:0,INTERVAL:0}\
reset_filter BASE_TOPIC/command {CMD:10,VALUE:,XTIME:0,INTERVAL:0}
attr DEVICE stateFormat 1:pump\
2:heater\
3:hot\
4:air\
temperature Grad C\
<br>\
Letzter Filter Wechsel last_filter_change Tage\
<br>\
Letzte Chlorung last_add_chlorid Tage
attr DEVICE userReadings last_add_chlorid:times_CLTIME.* {return int((time()-ReadingsVal($name, 'times_CLTIME', 0))/DAYSECONDS);}, last_filter_change:times_FTIME.* {return int((time()-ReadingsVal($name, 'times_FTIME', 0))/DAYSECONDS);}
attr DEVICE webCmd desired-temp:reset_filter:reset_chlorid
An dieser Stelle nochmal einen herzlichen Dank für die Hilfe.
Freue mich wenn das Template aufgenommen wird.
LG Holger
...ist drin...
Hab den room noch ganz rausgenommen (da will der user idR keine Änderung) und setStateList aus dem Vorschlag von @Gasmast3r übernommen.
Ist zwar immer noch "na ja" (schon alleine wegen des eingedeutschten stateFormats, kein icon), aber wer will, kann das ja verbessern...
Okay habe ein fhem Update gemacht aber in meinem MQTT2.template ist es nicht mit drin.
Was bewirkt das setStateList denn??
Sehe keinen Unterschied wenn ich es bei mir als attr eintrage.
LG holger
ZitatOkay habe ein fhem Update gemacht aber in meinem MQTT2.template ist es nicht mit drin.
Nabend,
noch nie mitbekommen das Updates erst am nächsten Morgen verfügbar sind ?
So (oben in der Befehlszeile ausgeführt), siehst dein Template jetzt schon.
{Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template","FHEM/lib/AttrTemplate/mqtt2.template",sub(){AttrTemplate_Initialize()})}
Zu setStateList: Übersetz dir mal die Hilfe zu dem Attribut und versuchs nachzuvollziehen, so ist es am einfachsten zu verstehen.
Hey, nein kannte ich noch nicht, dachte wenn das Update da ist, ist es da. ( das das MQTT2.template im update ist wurde ja durch Update Check angezeigt.) Aber vielen Dank für die Info.
Gucke mir die Hilfe mal an. Danke.
Und schönen Abend noch
Zitatdas das MQTT2.template im update ist wurde ja durch Update Check angezeigt
Kann ich mir sehr gut vorstellen, hab ich jetzt nach genauerem hinschauen festgestellt. Das update des Template erfolgte um 06:24:49. Hätte zeitlich passen sollen. Keine Ahnung was da schief lief. Probier mal morgen nochmal, wenn es dann immer noch nicht angezeigt wird, passt an irgendeiner Stelle bei dir irgendwas nicht.
Wird das Template nach ausführen von
{Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template","FHEM/lib/AttrTemplate/mqtt2.template",sub(){AttrTemplate_Initialize()})}
angezeigt ?
Ja nach ausführen des Befehls sagt Fhem wird heruntergeladen und nach dem shutdown restart ist es im attrTemplate vorhanden und läuft.
Vielen Dank an dieser Stelle nochmal
Zitatund nach dem shutdown restart ist es im attrTemplate vorhanden
Wovon auch immer es genau abhängig ist, meine Erfahrung mit meinem mit Sicherheit nicht optimal aufgebauten System, hat bisher gezeigt das ein shutdown restart nach dem ausführen des Codes nicht benötigt wird.
Okay, dachte muss sein.
Hehe schaden kann es ja nicht.
LG holger