FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: reibuehl am 23 Juni 2019, 14:31:12

Titel: [gelöst] Set Eingabeelemente für MQTT Device?
Beitrag von: reibuehl am 23 Juni 2019, 14:31:12
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
Titel: Antw:Set Eingabeelemente für MQTT Device?
Beitrag von: TomLee am 23 Juni 2019, 15:06:05
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
Titel: Antw:Set Eingabeelemente für MQTT Device?
Beitrag von: reibuehl am 23 Juni 2019, 15:13:33
Meinst Du die Datei mqtt2.template? Eine ebus Datei finde ich in dem Verzeichnis bei mir nämlich nicht.
Titel: Antw:Set Eingabeelemente für MQTT Device?
Beitrag von: TomLee am 23 Juni 2019, 15:27:16
Ja, genau. Und auch mittlerweile selbst nachgeschaut, ganz unten das letzte Beispiel.
Titel: Antw:Set Eingabeelemente für MQTT Device?
Beitrag von: TomLee am 23 Juni 2019, 15:28:56
Sry. mqtt2.ebus.template
Titel: Antw:Set Eingabeelemente für MQTT Device?
Beitrag von: reibuehl am 23 Juni 2019, 16:21:24
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
Titel: Antw:[gelöst] Set Eingabeelemente für MQTT Device?
Beitrag von: PatBreitMe am 28 August 2019, 14:50:26
Hast du deinen Klimaanlage jetzt auf mqtt2 umgestellt oder war es auch mit Mqtt möglich ?
Titel: Antw:[gelöst] Set Eingabeelemente für MQTT Device?
Beitrag von: reibuehl am 28 August 2019, 20:54:29
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
Titel: Antw:[gelöst] Set Eingabeelemente für MQTT Device?
Beitrag von: PatBreitMe am 28 August 2019, 23:43:38
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