Also, der Verfasser mag verstanden haben, was er da geschrieben hat.
Ich nehme mal an, was er meint, ist, Du sendest auf Roomname/Aircon/Fanspeed den Wert 1,2,3 oder 4 woraufhin der Quirl auf die Stufe 1,2,3 oder 4 wechselt. Du sendest auf Roomname/Aircon/Vanes 1, 2, 3, 4 oder 5, was dann Pos1, 2, 3, 4 oder Swing entspricht
Du sendest auf Roomname/Aircon/Setpoint werte von 18 bis 30, woraufhin die Solltemperatur auf 18 bis 30 gesetzt wird.
Auf Roomname/Aircon/State sendest Du 0 bis 6, woraufhin das Gerät auf die 7 verschiedenen Modi wechselt.
Und dann sollte es noch weitere Topics geben, deren Name mit status anfängt und ansonsten dem jeweiligen Namen entspricht, und das wären dann die stateTopics.
Zur Konfiguration des Arduino behaupte ich mal, dort wo "Roomname" steht, sollte z.B. "Wohnzimmer" stehen. Dort wo jetzt "Wohnzimmer" steht, sollte der Name des Geräts stehen (Mein Tipp: Leerzeichen mit Unterstrich ersetzen, Sonderzeichen meiden hier vielleicht Heavy_2)
Setpoint scheint mir in Ordnung, "State" würde ich aber durch "Mode" ersetzen (dann gibt es keine Verwirrung wegen Status), Vanes werden wahrscheinlich irgendwelche Klappen sein, mit denen der Luftstrom gelenkt wird? Achte auf jeden Fall darauf, auch die Status Topics entsprechend zu benennen.
Das sähe dann entsprechend Deiner oben geposteten Datei so aus:
Code: Alles auswählen
//Access point that WiFiManager starts for configuration. Name and password should be set below before flashing. This is hardcoded and cannot be changed later.
#define configSSID "MHI Wohnzimmer" //AP name (give every unit a unique name before flashing)
#define configPW "mitsubishi" //Password to connect to the AP
//Variables below are initial values that can be changed at any time from the WiFiManager configuration portal and will be stored in flash memory. If there are different values in config.json, they are overwritten.
char mqtt_server[16] = "0.0.0.0";
char mqtt_port[9] = "1883";
char mqtt_user[20] = "";
char mqtt_pass[20] = "";
char wifiTimeout[3] = "5"; //Timeout in minutes (max. 99) before WiFi configuration portal is turned off and the ESP tries to connect again to the previously configured AP (if any)
char Room[20] = "Wohnzimmer";
char Thing[20] = "Heavy_2";
char Setpoint[60] = "Setpoint";
char statusSetpoint[60] = "statusSetpoint";
char State[60] = "Mode";
char statusState[60] = "statusMode";
char statusRoomtemp[60] = "statusRoomtemp";
char Vanes[60] = "Vanes";
char statusVanes[60] = "statusVanes";
char Fanspeed[60] = "Fanspeed";
char statusFanspeed[60] = "statusFanspeed";
char debug[60] = "debug"; //Send only
char service[60] = "service"; //Receive only
//Variables below hold the current values of bit fields 4-7 and all adjustable settings to check if anything changed after receiving an update from the MHI/Arduino
//Bit field variables are initialized with 255 to force an MQTT update with the most recent MHI settings directly after booting
//The minimal set of bit fields needed to communicate power, mode, setpoint, roomtemp, vanes and fans speed is bit fields 4-7 and 10
byte current_Bitfield4 = 255; //Power, mode and vane swing settings
int current_Bitfield5 = 255; //Vanes setting 1-4 and fan speed 1-3 (4 is in bit field 10)
byte current_Bitfield6 = 255; //Temperature setpoint
byte current_Bitfield7 = 255; //Room temperature
byte current_Mode = 255;
byte current_Vanes = 255;
bool current_Swing = false;
byte current_Fanspeed = 255;
bool current_Fanspeed4 = false;
Natürlich kannst Du die entsprechenden Parameter auch über die Webschnittstelle anpassen und speichern, so ist das ja auch beschrieben...
Dann brauchst Du noch die entsprechenden Channel, die ungefähr so aussehen werden:
Code: Alles auswählen
UID: mqtt:topic:2a8687c12e:klimawozi
label: Klima Wohnzimmer
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:2a8687c12e
channels:
- id: setpoint
channelTypeUID: mqtt:number
label: Temperatur Soll
description: ""
configuration:
stateTopic: Wohnzimmer/Heavy_2/statusSetpoint
commandTopic: Wohnzimmer/Heavy_2/Setpoint
unit: °C
- id: mode
channelTypeUID: mqtt:number
label: Betriebsart
description: ""
configuration:
stateTopic: Wohnzimmer/Heavy_2/statusMode
commandTopic: Wohnzimmer/Heavy_2/Mode
- id: vanes
channelTypeUID: mqtt:number
label: Klappen
description: ""
configuration:
stateTopic: Wohnzimmer/Heavy_2/statusVanes
commandTopic: Wohnzimmer/Heavy_2/Vanes
- id: speed
channelTypeUID: mqtt:number
label: Ventilation
description: ""
configuration:
stateTopic: Wohnzimmer/Heavy_2/statusFanspeed
commandTopic: Wohnzimmer/Heavy_2/Fanspeed
- id: temp
channelTypeUID: mqtt:number
label: Temperatur Ist
description: ""
configuration:
stateTopic: Wohnzimmer/Heavy_2/statusRoomtemp
unit: °C
- id: debug
channelTypeUID: mqtt:string
label: Debug
description: ""
configuration:
stateTopic: Wohnzimmer/Heavy_2/debug
- id: service
channelTypeUID: mqtt:string
label: Service
description: ""
configuration:
commandTopic: Wohnzimmer/Heavy_2/service
Den Text kannst Du (bis auf die erste Zeile mit der UID) einfach über ein bestehendes Thing drüber "schreiben" - In meinem Testsystem hat das jedenfalls sauber geklappt

also gehe ich davon aus, dass ich alles richtig gemacht habe...
Die sieben Channel verlinkst Du jeweils mit einem Item. Die beiden Temperaturen verlinkst Du jeweils mit einem Number:Temperature Item, die beiden String Channel verlinkst Du mit String Items, die übrigen Channel verlinkst Du mit Number Items.
In den Metadaten aller Items setzt Du außerdem Auto Update auf false.
Z.B. die folgenden Namen:
KlimaWohnzimmerSoll
KlimaWohnzimmerIst
KlimaWohnzimmerMode
KlimaWohnzimmerKlappen
KlimaWohnzimmerFan
KlimaWohnzimmerService
KlimaWohnzimmerDebug
Im Ergebnis solltest Du dann in der Lage sein, die jeweiligen Befehle zu steuern und umgekehrt auch eine Rückmeldung zu bekommen, wenn Du das Gerät lokal bedienst. Auch die Raumtemperatur sollte alle sechs Sekunden im passenden Topic ausgegeben werden.
Ob die openHAB-Seite korrekt funktioniert, kannst Du jederzeit mit MQTT.fx überprüfen, dort sollten die Topics sich passend verhalten. Wenn Du in MQTT.fx auf den ...status... Topics bzw. auf dem debug Topic etwas publizierst (debug = Text, die anderen nur Zahlen) müssen die entsprechenden ITems in openHAB die gesendeten Werte anzeigen. Wenn Du in openHAB die Items beeinflusst (z.B. über die Rules) dann müssen die anderen Topics (jeweils ohne status im Namen) diese Werte anzeigen.
Da im MQTT.fx allerdings keine Temperatur zu sehen ist (sollte alle 6 Sekunden reinkommen), gehe ich davon aus, dass bisher noch keine Kommunikation mit dem Klimagerät erfolgt.