Bestway LayZSpar Wirlpool

Begonnen von Tueftler1983, 11 Mai 2024, 23:53:16

Vorheriges Thema - Nächstes Thema

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) }


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


dyna

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

Tueftler1983

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

TomLee

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

Tueftler1983

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}

Tueftler1983

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

Christian83

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.

Tueftler1983

Zitat von: Christian83 am 12 Mai 2024, 11:23:10
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.

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

Christian83

Hi,

versuch es doch erstmal mit lazyspa und nicht layzspar.


Tueftler1983

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
Du darfst diesen Dateianhang nicht ansehen.

Christian83

Okay. Habe ich nicht gesehen. Dann kann ich dir leider nicht weiterhelfen.

Tueftler1983


Christian83

Zitat von: Tueftler1983 am 12 Mai 2024, 11:56:43
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
Du darfst diesen Dateianhang nicht ansehen.

Du hast trotzdem layzspar geschrieben.

Tueftler1983

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

Christian83

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.

Tueftler1983

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

Christian83

Hi,

Kannst du denn überhaupt Daten auslesen?
Also kommt vom Gerät überhaupt was an deinem MQTT_Device an?

Tueftler1983

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

Tueftler1983

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 }

Beta-User

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}
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

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.

Tueftler1983

#21
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
Du darfst diesen Dateianhang nicht ansehen.
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

Tueftler1983

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
Du darfst diesen Dateianhang nicht ansehen.

Tueftler1983

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.

Beta-User

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...
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

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?

Tueftler1983

#26
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?

Beta-User

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
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

Äää 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

Beta-User

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
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

Gasmast3r

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



Tueftler1983

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\

Tueftler1983

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\

rob

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

Tueftler1983

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

Tueftler1983

Hmm komisches Phänomen, nach einem shutdown restart von fhem funktioniert das Mapping auf on Off wieder...

Tueftler1983

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

Beta-User

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.
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

#38
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

Tueftler1983

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


Beta-User

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...
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

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

Beta-User

...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...
 
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

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

TomLee

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.

Tueftler1983

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

TomLee

#46
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 ?

Tueftler1983

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

TomLee

#48
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.

Tueftler1983

Okay, dachte muss sein.
Hehe schaden kann es ja nicht.

LG holger