MQTT command ist okay state nicht

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

MQTT command ist okay state nicht

Beitrag von kaloschke »

Hallo,
bin mit meinem Latein - mal wieder - am Ende. Ich habe einen Thermostaten von Hama (baugleich SEA801-Zigbee/SEA802-Zigbee).
Mein Problem ist, dass ich die Solltemperatur zwar über Openhab setzten kann, aber keine Rückmeldung bekomme, wenn sie anderweitig geändert wird.
Zigbee2Mqtt bekommt diese Änderung sehr wohl mit und meine Testinstallation von HomeAssistant auch. Obwohl in der Zigbww2Mqtt-Doku steht:
current_heating_setpoint: Temperature setpoint. To control publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"current_heating_setpoint": VALUE} where VALUE is the °C between 5 and 30. Reading (/get) this attribute is not possible.
In meiner mqtt.things steht:

Code: Alles auswählen

    Thing topic rst1_office "MQTT Thermostat Arbeitszimmer" {
      Channels:
         Type number : rst_set         "Temperatur Soll"  [ stateTopic="zigbee2mqtt/RST1_Office/get/current_heating_setpoint", commandTopic="zigbee2mqtt/RST1_Office/set/current_heating_setpoint" ]
         Type string : rst_current     "Temperatur Ist"   [ stateTopic="zigbee2mqtt/RST1_Office/local_temperature" ]
         Type string : rst_systemmode  "System Mode"      [ stateTopic="zigbee2mqtt/RST1_Office/system_mode",              commandTopic="zigbee2mqtt/RST1_Office/set/system_mode" ]
         Type string : rst_battery_low "Batterie leer "   [ stateTopic="zigbee2mqtt/RST1_Office/battery_low" ]
    }
Auch ohne das get beim stateTopic klappt es nicht. local_temperature ist übrigens die aktuelle Temperatur am Thermostaten.

Viele Grüße

Anhang: Anzeige in Zigbee2Mqtt

Code: Alles auswählen

{
    "anti_scaling": "ON",
    "away_mode": "OFF",
    "battery_low": false,
    "child_lock": "LOCK",
    "current_heating_setpoint": 24,
    "frost_detection": "ON",
    "heating": "OFF",
    "linkquality": 255,
    "local_temperature": 22.5,
    "local_temperature_calibration": 0,
    "preset_mode": "none",
    "system_mode": "heat",
    "window_detection": "OFF",
    "device": {
        "applicationVersion": 67,
        "dateCode": "",
        "friendlyName": "RST1_Office",
        "hardwareVersion": 1,
        "ieeeAddr": "0xa4c138c6450957d7",
        "manufacturerID": 4417,
        "manufacturerName": "_TZE200_h4cgnbzg",
        "model": "SEA801-Zigbee/SEA802-Zigbee",
        "networkAddress": 45063,
        "powerSource": "Battery",
        "stackVersion": 0,
        "type": "EndDevice",
        "zclVersion": 3
    }
}

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: MQTT command ist okay state nicht

Beitrag von kaloschke »

Sehr skurril. Ich habe jetzt

Code: Alles auswählen

         Type number : rst_set         "Temperatur Soll"  [ stateTopic="zigbee2mqtt/RST1_Office/set/current_heating_setpoint", commandTopic="zigbee2mqtt/RST1_Office/set/current_heating_setpoint" ]
gesetzt. Im stateTopic das get also gegen ein set getauscht.
Damit werden Änderungen, die ich in HA vornehme auch in OH gespiegelt, NICHT aber Änderungen am Thermostaten. Die kommen wie bisher auch nur bei HA an.

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: MQTT command ist okay state nicht

Beitrag von kaloschke »

Problem gelöst. Habe den Thermostaten über die OH-Oberfläche erzeugen lassen. Damit klappt es ...

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: MQTT command ist okay state nicht

Beitrag von kaloschke »

Hmm. Ist aber etwas seltsam. Auf der Konfigurationsseite steht unter Required:
MQTT Base Prefix:
homeassistant

Und die Channel-UID lautet:

Code: Alles auswählen

mqtt:homeassistant:mosquitto:zigbee2mqtt_5F0xa4c138cdc4778bba:climate#temperature
Statt mqtt:topic: steht da jetzt mqtt:homeassistant. Und die Topics lauten jetzt auch anders im Vergleich zu oben.

In der Oberfläche von OH finde ich den Thermostaten jedoch auch, wenn Homeassistant gar nicht läuft.

Kann jemand Licht in mein Dunkel bringen?

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: MQTT command ist okay state nicht

Beitrag von kaloschke »

Ich vermute mal, es daran liegt, dass ich gestern wegen meiner Probleme mit dem Thermostaten alle Zigbee2Mqtt Homeassistant zugefügt habe.
Aber was passiert, wenn HA wieder entfernt wird?

Harka
Beiträge: 487
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: MQTT command ist okay state nicht

Beitrag von Harka »

https://www.openhab.org/addons/bindings ... assistant/

Z2M kann die Infos zu Geräte in einem für den HA mundgerechtem Format schicken. openHAB kann dies Format weitestgehend auch nutzen um die Einrichtung zu vereinfachen. Solange Du nichts an Z2M änderst funktioniert dies auch ohne HA. Ist nicht die von mir bevorzugte Herangehensweise aber hat was.

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: MQTT command ist okay state nicht

Beitrag von kaloschke »

Vielen Dank für die Info. Das erhellt die Sache!

Es ist nur so, dass ALLE meine in mqtt.things angelegten Geräte nicht mehr funktionieren, seit dem ich in HA Z2M hinzugefügt habe.
Ich muss sie in mqtt.things also löschen und dann über die automatische Erkennung wieder neu anlegen.
Wenn ich ein Gerät in HA lösche, wird es spätestens bei einem Neustart wieder gefunden.

Ich würde ja gerne auf den ganzen Kram verzichten, aber ich bekomme halt anders meine Thermostaten nicht zu laufen .
Sehr ärgerlich.

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: MQTT command ist okay state nicht

Beitrag von kaloschke »

Sehr seltsam finde ich, das für HA offensichtlich andere Topics "erfunden" werden, als die ursprünglich für das Gerät definierten.

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: MQTT command ist okay state nicht

Beitrag von udo1toni »

Der Punkt ist, dass schon am Anfang das falsche Topic genutzt wurde.
Du musst "einfach" mittels MQTT Explorer schauen, auf welchem Topic Zigbee2mqtt die Änderung der Solltemperatur bestätigt.
Mutmaßlich wird dies im JSON Format geschehen, sofern Du es nicht explizit abgeschaltet hast.
Dieses Topic (und einen passenden JSONPATH) musst Du zur Auswertung der Rückmeldung verwenden, nicht das get-Topic, welches ja laut Doku ohnehin nicht funktioniert.
Und by the way, das get-Topic dient dazu, den aktuellen Wert aktiv anzufordern, es handelt sich um ein commandTopic, nicht ein stateTopic.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Harka
Beiträge: 487
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: MQTT command ist okay state nicht

Beitrag von Harka »

Schau mal in Z2M unter Einstellungen/Erweitert/MQTT output type und probiere dort Attribute_and_json aus.

Antworten