@stefan.hoehn, based on your quote, I think you are asking specifically about the MQTT interface setup?
I would say that the provided documentation on the Faikin Github site is an OK start: ESP32-Faikout/Manuals/Advanced.md at main · revk/ESP32-Faikout · GitHub
This device is auto-discovered by my OpenHAB 4.x’s Inbox as a HomeAssistant MQTT thing, but I’m not very familiar with this auto-setup and whether it’ll work well. It didn’t work for me but I’m not sure if that’s because I have older Faikin firmware or some nuance of my OH setup.
If not already familiar, you should do a little reading and experimentation on MQTT, and I recommend you install MQTT Explorer (or similar) to be able to see in real time what data is being published to your MQTT broker, the content, timestamps, etc. so you precisely understand what data is available.
It’s been quite a while since I set this all up, and admittedly did not do a great job of documenting the various iterations I went through, but now that I look at my OH configurations, I do see that I turned on the “Home Assistant” option in the Faikin’s web UI, as that triggers status reporting via MQTT on a very frequent basis, and (IIRC) included one or two parameters that I did not see being frequently reported elsewhere. This HA option triggers reporting to an MQTT topic equal the device’s WiFi MAC address:
topic: DC5475XXXXXX (device MAC)
{"online":true,"target":11.00,"temp":19.50,"outside":23.50,"liquid":20.50,"comp":0,"fanfreq":0.0,"mode":"dry","action":"idle","fan":"auto","swing":"V","preset":"home"}
The standard ‘state’ reporting I found to be very infrequent and also missing the ‘target’ parameter which represents an externally-provided setpoint (i.e. from Daikin IR remote, or MQTT):
topic: state/MiniSplit/status
{"protocol":"S21","online":true,"home":19.0,"heat":false,"fanrpm":0,"comp":0,"outside":17.0,"liquid":19.5,"anglev":74,"power":true,"mode":"D","temp":11.0,"fan":"A","swingh":false,"swingv":true,"powerful":false,"autor":0.0,"autot":15.5,"auto0":"00:00","auto1":"00:00","autop":false}
Below are the code representations of my MQTT channels, hopefully they help:
- id: FaikinUpToDate
channelTypeUID: mqtt:switch
label: Faikin Up To Date Indicator
description: ""
configuration:
stateTopic: Faikin/info/MiniSplit/upgrade
transformationPattern:
- JSONPATH:$.up-to-date
off: "false"
on: "true"
- id: FaikinModeString
channelTypeUID: mqtt:string
label: Faikin Mode String
description: ""
configuration:
allowedStates: heat,cool,auto,fan,dry,off
commandTopic: command/MiniSplit/mode
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.mode
- id: FaikinFanMode
channelTypeUID: mqtt:string
label: Faikin Fan Mode
description: ""
configuration:
allowedStates: auto,1,2,3,4,5,low,lowMedium,medium,mediumHigh,high
commandTopic: command/MiniSplit/fan
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.fan
- id: FaikinOnline
channelTypeUID: mqtt:switch
label: Faikin Online Indication
description: ""
configuration:
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.online
off: "false"
on: "true"
- id: FaikinFanFreq
channelTypeUID: mqtt:number
label: Faikin Fan Frequency
description: Fan Speed/Frequency
configuration:
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.fanfreq
- id: FaikinTempSP
channelTypeUID: mqtt:number
label: Faikin Temperature Setpoint
description: ""
configuration:
commandTopic: command/MiniSplit/temp
unit: °C
step: 0.5
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.target
- id: FaikinInsideTemp
channelTypeUID: mqtt:number
label: Faikin Inside Temperature
description: ""
configuration:
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.temp
unit: °C
- id: FaikinLiquidCoolantTemp
channelTypeUID: mqtt:number
label: Faikin Liquid Coolant Temp
description: ""
configuration:
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.liquid
unit: °C
- id: FaikinOutsideTemp
channelTypeUID: mqtt:number
label: Faikin Outside Temp
description: ""
configuration:
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.outside
unit: °C
- id: FaikinTempSetpoint
channelTypeUID: mqtt:number
label: Faikin Temperature Setpoint
description: ""
configuration:
commandTopic: command/MiniSplit/temp
unit: °C
step: 0.5
stateTopic: DC5475XXXXXX
transformationPattern:
- JSONPATH:$.target
I guess another thing to mention is that the Faikin provides an “auto” mode of control which I found to be confusingly/minimally documented and somewhat baffling (YMMV, maybe I just didn’t read the docs carefully enough). So I just have OpenHAB remotely manipulating the temperature setpoint and mode based on Rules I wrote, or buttons/selections on my Main UI.
Happy to help with additional clarifications, if useful.