MQTT-Familie

Hi @sathya,

eine schicke Erweiterung für Homegear wäre eine MQTT-Familie. Man müsste halt die einzelnen Topics (Channel) über eine Konfiguration zu einen Device zusammenbinden können, aber dann wäre Homegear superflexibel.

Alternativ könnte man auch die “Homie-Convention” verwenden. Ich habe keine Ahnung, ob der Link die offizielle Stelle ist, das war nur mein erstes Google-Ergebnis. :wink:

Vielleicht also zwei Familien, mqtt-homie und mqtt-manual. Oder eine, die beides kann.

Was denkst Du?

Viele Grüße

Joachim

1 Like

Damit klar ist, was ich meine hier mal ein Beispiel. Ich habe vor ein paar Tagen meine zigbee2mqtt-Anbindung in openHAB auf das aktuelle mqtt-binding (2.4) umgestellt. Vorher habe ich die einzelnen Topics mit dem mqtt1-binding an items gebunden. War etwas häßlicher, aber weniger Schreib- oder eher Kopierarbeit.

Ein Xiaomi-Bewegungsmelder:

Thing topic TEMD "TEMD"  @ "TE"
{
    Channels:
        Type switch : occupancy "occupancy" [ stateTopic = "zigbee/TEMD/occupancy", on="true", off="false"  ]
        Type number : illuminance "illuminance" [ stateTopic = "zigbee/TEMD/illuminance" ]            
        Type number : voltage "voltage" [ stateTopic = "zigbee/TEMD/voltage" ]     
        Type number : battery "battery" [ stateTopic = "zigbee/TEMD/battery" ]     
        Type number : linkquality "linkquality" [ stateTopic = "zigbee/TEMD/linkquality" ]     
}

Ein Xiaomi-Temperatursensor:

Thing topic KUGS "KUGS" @ "KU"
{
    Channels:
        Type number : temperature "temperature" [ stateTopic = "zigbee/KUGS/temperature" ]
        Type number : humidity "humidity" [ stateTopic = "zigbee/KUGS/humidity" ]
        Type number : pressure "pressure" [ stateTopic = "zigbee/KUGS/pressure" ]
        Type number : voltage "voltage" [ stateTopic = "zigbee/KUGS/voltage" ]     
        Type number : battery "battery" [ stateTopic = "zigbee/KUGS/battery" ]     
        Type number : linkquality "linkquality" [ stateTopic = "zigbee/KUGS/linkquality" ]               
}   

Solche Konfigurationen müsste man natürlich für jeden peer(-Typ) erstellen. Das Topic natürlich mit Platzhalter. Aber dafür ist Homegear ja open-source.

Hallo @job,

das ist eine sehr gute Idee!!! Sollte vom Prinzip her auch schnell programmiert sein. Bei Verwendung der “Homie-Convention” o. ä. ist die Frage, wie Variablen automatisch gefunden werden können, welche nur schreibbar sind?

Viele Grüße

Sathya

1 Like

Das freut mich, ich kann das besser gestern als heute gebrauchen… aber wahrscheinlich ist deine ToDo-Liste rappelvoll.

Naja, diese Convention ist ja nur eine Vereinfachung der Konfiguration, von daher würde ich das nicht als Priorität sehen. Ist natürlich toll wenn die Dinger automatisch gefunden udn konfiguriert werden

Hier ist nochmal die openHAB-Konfiguration für einen Osram Smart Plug:

Thing topic AZMO "AZMO" @ "AZ"
{
    Channels:
        Type switch : state "state" [ stateTopic = "zigbee/AZMO/state", commandTopic = "zigbee/AZMO/set/state", on="ON", off="OFF" ]
        Type number : linkquality "linkquality" [ stateTopic = "zigbee/AZMO/linkquality" ]               
}    

Es gibt für jeden Kanal ein stateTopic und ein commandTopic. Das stateTopic ist zu lesen, das commandTopic ist zum schreiben. Bei readonly or writeonly natürlich nur eins von beiden. :wink:

Ich könnte Konfigurationen für meine ganzen Xiaomi-Zigbee-Geräte beisteuern und z.B. auch für ein Sonoff-Basic (hier muss man irgendwie noch das Jsonpath reinbringen):

Thing topic T1DL "T1DL" @ "T1"
{
    Channels:
        Type switch : power     "Power"                [ stateTopic="sonoff/t1so/stat/POWER", commandTopic="sonoff/t1so/cmnd/POWER"]
        Type string : reachable "Reachable"            [ stateTopic="sonoff/t1so/tele/LWT" ]
        Type number : rssi      "WiFi Signal Strength" [ stateTopic="sonoff/t1so/tele/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version   "Firmware Version"     [stateTopic="sonoff/t1so/stat/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]

        Type string : info1     "Info1"                [stateTopic="sonoff/t1so/tele/INFO1"]
        Type string : info2     "Info2"                [stateTopic="sonoff/t1so/tele/INFO2"]
        Type string : info3     "Info3"                [stateTopic="sonoff/t1so/tele/INFO3"]
        Type string : result    "Result"               [stateTopic="sonoff/t1so/stat/RESULT"]
}

Ja, leider - wir stellen gerade unsere Hardware fertig und ich schreibe die Firmware dazu. Aber danach findet sich hoffentlich etwas Luft, das einzubauen. Eine Grundversion sollte nicht länger als einen Tag dauern.

Ich könnte Konfigurationen für meine ganzen Xiaomi-Zigbee-Geräte beisteuern

Das wäre super. Im ersten Schritt können das Ganze ja mit manueller Konfiguration anlegen. Im zweiten dann schauen, was für Automatismen möglich sind.

1 Like