Ich habe eine Klimaanlage, die über MQTT steuerbar ist. Über das Mosquitto Modul habe ich bisher ein MQTT Device definiert. Darin wird der JSON String der Anlage auch schon in einzelne Readings zerlegt.
Aus dem Wert der beiden SubscribeReadings state und settings werden dabei schon einzelne Readings wie power, mode, temperature, fan usw.
Leider fehlt mir aber noch eine Idee, wie ich FHEM dazu bringen kann, für diese Einzelkomponenten ein GUI Auswahlelement anzuzeigen und dem dann einen entsprechenden JSON String für das Publish zuzuordnen.
Also zum Beispiel einen Slider für Temperatur der dann bei Betätigung ein {"temperature":24} published oder ein An/Aus Schalter, der dann {"power":"OFF"} bzw. {"power":"ON"} published.
Habt Ihr mir da ein paar Tipps, wie man das mit dem Mosquitto oder den MQTT2 Modulen hin bekommen könnte?
Gruß,
Reiner
Hallo,
schau dir mal in /opt/fhem/FHEM/lib/AttrTemplate die ebus Datei an, da müsste/sollte ein Beispiel dabei sein wie es mit MQTT2 geht.
Gruß
Thomas
Meinst Du die Datei mqtt2.template? Eine ebus Datei finde ich in dem Verzeichnis bei mir nämlich nicht.
Ja, genau. Und auch mittlerweile selbst nachgeschaut, ganz unten das letzte Beispiel.
Sry. mqtt2.ebus.template
Danke! Hab es dank Deinem Hinweis geschafft! :-)
Mit diesen Attributen kann ich jetzt schon fast alle Settings einstellen:
attr OG_WZ_Heatpump readingList /SmartHome/OG_WZ_Heatpump:.* { json2nameValue($EVENT) }\
/SmartHome/OG_WZ_Heatpump/status:.* { json2nameValue($EVENT) }
attr OG_WZ_Heatpump setList on:noArg /SmartHome/OG_WZ_Heatpump/set {"power":"ON"}\
off:noArg /SmartHome/OG_WZ_Heatpump/set {"power":"OFF"}\
temperature:slider,16,1,31 /SmartHome/OG_WZ_Heatpump/set {"power":"ON","temperature":"$EVTPART1"}\
mode:AUTO,HEAT,COOL,FAN,DRY /SmartHome/OG_WZ_Heatpump/set {"power":"ON","$EVTPART0":"$EVTPART1"}\
fan:AUTO,QUIET,1,2,3,4 /SmartHome/OG_WZ_Heatpump/set {"power":"ON","$EVTPART0":"$EVTPART1"}\
attr OG_WZ_Heatpump stateFormat {lc ReadingsVal("$name","power",0)}
attr OG_WZ_Heatpump webCmd toggle:on:off
Hast du deinen Klimaanlage jetzt auf mqtt2 umgestellt oder war es auch mit Mqtt möglich ?
Ich bin auf MQTT2_Device umgestiegen. Damit funktioniert es jetzt gut. Das MQTT2_Device hängt über ein MQTT2_Client Device am bestehenden Mosquitto MQTT Server.
So habe ich das jetzt aufgesetzt:
define OG_WZ_Klimaanlage MQTT2_DEVICE
attr OG_WZ_Klimaanlage devStateIcon on:general_an off:general_aus
attr OG_WZ_Klimaanlage group Heizung und Temperatur
attr OG_WZ_Klimaanlage readingList /SmartHome/OG_WZ_Heatpump:.* { json2nameValue($EVENT) }\
/SmartHome/OG_WZ_Heatpump/status:.* { json2nameValue($EVENT) }
attr OG_WZ_Klimaanlage room Device,Heizung,Wohnzimmer
attr OG_WZ_Klimaanlage setList on:noArg /SmartHome/OG_WZ_Heatpump/set {"power":"ON"}\
off:noArg /SmartHome/OG_WZ_Heatpump/set {"power":"OFF"}\
temperature:16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 /SmartHome/OG_WZ_Heatpump/set {"power":"ON","$EVTPART0":"$EVTPART1"}\
mode:AUTO,HEAT,COOL,FAN,DRY /SmartHome/OG_WZ_Heatpump/set {"power":"ON","$EVTPART0":"$EVTPART1"}\
fan:AUTO,QUIET,1,2,3,4 /SmartHome/OG_WZ_Heatpump/set {"power":"ON","$EVTPART0":"$EVTPART1"}
attr OG_WZ_Klimaanlage stateFormat {lc ReadingsVal("$name","power",0)}
attr OG_WZ_Klimaanlage webCmd toggle:on:off:temperature:mode
Hab's geschafft mit dem MQTT2 Device ;D läuft...
Homekitmapping habe ich auch noch hinbekommen. Jetzt läuft das ganze mit HomeKit und Siri ;D ;D ;D
genericDeviceType HeaterCooler
clear
Active:power,values=off:ACTIVE;on:ACTIVE,cmds=ACTIVE:on;INACTIVE:off
CoolingThresholdTemperature=temperature,cmd=temperature,minValue=18,maxValue=25,minStep=1
HeatingThresholdTemperature=temperature,cmd=temperature,minValue=18,maxValue=25,minStep=1
CurrentTemperature=temperature
TargetHeaterCoolerState=mode,values=OFF:0,cmds=OFF;;HEAT;;COOL;;AUTO:
CurrentHeaterCoolerState=mode,values=OFF:0;;HEAT:1;;COOL:2;;AUTO:0
RotationSpeed=fan,minValue=1,maxValue=4,cmd=fan,delay=1
Nur das Umstellen von Cool auf Heat funktioniert noch nicht, brauche aber eigentlich auch nur das COOL von dem her läuft es mal so