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\
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
Zitat von: Lolo am 17 Mai 2024, 19:38:49da fehlt mit aber das Modul.Das Modul ist doch im ersten Beitrag des zitierten thread angehängt.
Zitat von: jayrock am 17 Mai 2024, 20:46:08Wie bekommt ihr die Readings von dem HPSU-Modul auf MQTT geschoben und die veröffentlichten Nachrichten für Solltemperaturen und 1x Warmwasser ausgewertet?
defmod MQTT2_FHEM_Server MQTT2_SERVER 1883 global
defmod mqttBridgeHPSU MQTT_GENERIC_BRIDGE myHPSU
attr mqttBridgeHPSU IODev MQTT2_FHEM_Server
defmod myHPSU HPSU /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-port0
attr myHPSU myHPSUPublish HPSU.Soll_T_Warmwasser|HPSU.Soll_T_direkter_Heizkreis|HPSU.Durchfluss|HPSU.Aktive_Betriebsart:topic={"$base/$device/$name"}