Textfile-Konfiguration mit zigbee2Mqtt

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

drossel_bart
Beiträge: 11
Registriert: 7. Jan 2022 16:42
Answers: 0

Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von drossel_bart »

Hallo,

ich habe mich schon durch einige Tutorials auf yt geklickt finde aber nicht den richtigen Einstieg. Vielleicht finde ich hier die entsprechenden Anregungen.

Was habe ich vor:
Ich möchte gerne mein Things und Item in Textdateien anlegen und verwalten und ich möchte möglichst keine externen Bridges verwenden. Deshalb habe ich mir überlegt meine Konfiguration mittels mqtt bzw. zigbee2mqtt umzusetzen.

Was habe ich bislang:
1. Openhab in der Version 3.2.0-1 auf einem Raspberry 3
2. Mosquitto, zigbee2mqtt und Mqtt-Binding installiert

und nun kommen die Fragen

1. Die Bridge und Things in einer Datei konfigurien und dann entsprechende Items zu definieren?

Code: Alles auswählen

Bridge mqtt:broker:ff69091523 [
  host="192.168.178.201",
  secure=false,
  port=1883,
  clientId="client1"
]
{

Thing topic Lampe1      "Lampe 1" @ "mqtt" {
  Type switch : lampe1_switch   "Schalter"       [ stateTopic="zigbee2mqtt/0x90fd9ffffe6ca951", on="true", off="false", transformationPattern="JSONPATH:$.state" ]
}
oder
2. Die Items direkt anzusprechen?

Code: Alles auswählen

Switch IKEAE27_TOGGLE "IKEAE27 [%s]" <light> 
{mqtt=">[broker:zigbee2mqtt/0x90fd9ffffe6ca951/set:command:*:JS(setZigbeeState.js)],<[broker:zigbee2mqtt/0x90fd9ffffe6ca951:state:JSONPATH($.state)]", expire="120m,command=OFF"}
Den zweiten Weg hab ich bei ST33ZYMedia bzw, jetzt BangerTech auf youtube gefunden. Da er aber auf die Erzeugung der einzelnen Items nicht wirklich eingeht komme ich da nicht weiter. Was muss wohin, damit ich den Status der Lampe lesen und setzen kann?

Vielleicht habt ihr ja ein paar Anregungen.

Vielen Dank im Voraus

Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von HiG »

Vielleicht... hilft das ja weiter? Ob es (wegen des Alters) noch funktioniert...musste ausprobieren. Ist aus 2019... also OH2

https://community.openhab.org/t/openhab ... ners/83446

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

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von udo1toni »

Ganz klar: Unter openHAB3 gibt es für Items ausschließlich(!) Links mit channel, wenn Du irgendwo im Internet auf Items trifft, die in geschweiften Klammern eine Notation ungleich {channel="..."} stehen haben (also wie in Deinem Beispiel {mqtt="..."}) dann kannst Du das sofort wieder vergessen, das funktioniert nur in openHAB1 und mit passenden Bindings in openHAB2 so, in openHAB3 gibt es das nicht.

Es gibt da auch kein "direkt" und "weniger direkt" oder "indirekt". Es ist einfach so, dass der hardwarspezifische Teil der Konfiguration aus der *.items Datei in die *.things Datei gewandert ist.
Der Hintergrund dazu ist, dass openHAB seit Version 2 Autodiscovery beherrscht (nicht für alle Bindings) und dies nun mal über Things abgebildet wird. In openHAB2 gab es extra ein Compatibility Layer, um weiterhin v1-Bindings nutzen zu können. Das hatte natürlich vor allem den Grund, dass man sonst nur sehr wenige Geräte von Anfang an hätte nutzen können.
Mit der Zeit wurden aber alle wichtigen (und auch viele eher exotische Bindings) auf das neue Format umgestellt. Mit openHAB3 wurde der Compatibility Layer nicht fortgeführt, weil in der Zwischenzeit sehr viele Dinge im Core gändert worden waren (vor allem, um die Stabilität zu verbessern). Es hätte einen enormen Aufwand bedeutet, und auf jeden Fall um den Preis der Stabilität.
Man hat diesen Aufwand dann lieber darin investiert, möglichst schnell möglichst viele Bindings umzustellen, es gibt dazu in github auch eine sehr vollständige Liste umgestellter und nicht umgestellter Bindings.
Sollte man tatsächlich ein altes Binding benötigen, so muss man openHAB in Version 2.5.12 auf einem 2. Rechner installieren und die Instanz mit dem openHAB Binding anbinden. (oder man bleibt komplett auf openHAB 2.5.12, was aber schade wäre)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

drossel_bart
Beiträge: 11
Registriert: 7. Jan 2022 16:42
Answers: 0

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von drossel_bart »

udo1toni hat geschrieben: 7. Jan 2022 22:14 (oder man bleibt komplett auf openHAB 2.5.12, was aber schade wäre)
Angesichts Deiner Signatur bin ich jetzt etwas überrascht ;-)

Ich hab dann mal anhand des verlinkten Artikels etwas nachzubauen.
Thing-File

Code: Alles auswählen

Bridge mqtt:broker:ff69091523 [
  host="192.168.178.201",
  secure=false,
  port=1883,
  clientId="client1"
]
{
 
  Thing  topic  Lampe1      "Lampe1" @ "mqtt" {
    Type number : lampe1_ct  "Farbtemperatur"         [ stateTopic="zigbee2mqtt/lampe1", transformationPattern="JSONPATH:$.color_temp", commandTopic="zigbee2mqtt/lampe1/set", formatBeforePublish="{ \"brightness\" : %s }"]
    Type number : lampe1_q   "Linkquality"            [ stateTopic="zigbee2mqtt/lampe1", transformationPattern="JSONPATH:$.linkquality" ]
    Type number : lampe1_b   "Helligkeit"             [ stateTopic="zigbee2mqtt/lampe1", transformationPattern="JSONPATH:$.brightness", commandTopic="zigbee2mqtt/lampe1/set", formatBeforePublish="{ \"brightness\" : %s }"]
    Type switch : lampe1_u   "Update"                 [ stateTopic="zigbee2mqtt/lampe1", transformationPattern="JSONPATH:$.update_available" ]
    Type switch : lampe1_s   "Status"                 [ stateTopic="zigbee2mqtt/lampe1", transformationPattern="JSONPATH:$.state", commandTopic="zigbee2mqtt/lampe1/set", transformationPatternOut="JS:settradfristate.js"]
  }

}
Item-File

Code: Alles auswählen

Switch x_lampe1_sw     "Schalter Spot 03"               {channel="mqtt:topic:ff69091523:Lampe1:lampe1_s"}
Dimmer x_lampe1_dim    "Dimmer Spot 03 [%d %%]"         {channel="mqtt:topic:ff69091523:Lampe1:lampe1_b"}
Number x_lampe1_ct     "Farbwert Spot 03 [%d %%]"       {channel="mqtt:topic:ff69091523:Lampe1:lampe1_ct"}
Number x_lampe1_qy     "Linkquality Spot 03 [%d %%]"    {channel="mqtt:topic:ff69091523:Lampe1:lampe1_q"}
Switch x_lampe1_up     "Update Spot 03"                 {channel="mqtt:topic:ff69091523:Lampe1:lampe1_u"}

Wenn ich nach dem Neustart von OH in der zigbee-Web-Oberfläche diese Lampe einschalte, kommt im Log

Code: Alles auswählen

2022-01-08 09:55:10.921 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'x_lampe1_up' changed from NULL to ON
2022-01-08 09:55:10.924 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'x_lampe1_qy' changed from NULL to 223
2022-01-08 09:55:10.926 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'x_lampe1_sw' changed from NULL to ON
2022-01-08 09:55:10.929 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'x_lampe1_ct' changed from NULL to 250
Danach kann ich machen was ich will es erfolgen keine weiteren Logausgaben.

Im journalctl-Fenster laufen die aber weiter. Also jeder Klick ein Payload

Code: Alles auswählen

Jan 08 10:21:27 openhabian npm[8576]: Zigbee2MQTT:info  2022-01-08 10:21:27: MQTT publish: topic 'zigbee2mqtt/lampe1', payload '{"brightness":7,"color_mode":"color_temp","color_temp":250,"device":{"applicationVersion":17,"dateCode":"20170331","friendlyName":"lampe1","hardwareVersion":1,"ieeeAddr":"0x90fd9ffffed650d7","manufacturerID":4476,"manufacturerName":"IKEA of Sweden","model":"LED1537R6/LED1739R5","networkAddress":35565,"powerSource":"Mains (single phase)","softwareBuildID":"1.2.217","stackVersion":87,"type":"Router","zclVersion":1},"linkquality":239,"state":"OFF","update":{"state":"available"},"update_available":true}'
Jan 08 10:21:29 openhabian npm[8576]: Zigbee2MQTT:info  2022-01-08 10:21:29: MQTT publish: topic 'zigbee2mqtt/lampe1', payload '{"brightness":7,"color_mode":"color_temp","color_temp":250,"device":{"applicationVersion":17,"dateCode":"20170331","friendlyName":"lampe1","hardwareVersion":1,"ieeeAddr":"0x90fd9ffffed650d7","manufacturerID":4476,"manufacturerName":"IKEA of Sweden","model":"LED1537R6/LED1739R5","networkAddress":35565,"powerSource":"Mains (single phase)","softwareBuildID":"1.2.217","stackVersion":87,"type":"Router","zclVersion":1},"linkquality":239,"state":"ON","update":{"state":"available"},"update_available":true}'
Jan 08 10:21:30 openhabian npm[8576]: Zigbee2MQTT:info  2022-01-08 10:21:30: MQTT publish: topic 'zigbee2mqtt/lampe1', payload '{"brightness":7,"color_mode":"color_temp","color_temp":250,"device":{"applicationVersion":17,"dateCode":"20170331","friendlyName":"lampe1","hardwareVersion":1,"ieeeAddr":"0x90fd9ffffed650d7","manufacturerID":4476,"manufacturerName":"IKEA of Sweden","model":"LED1537R6/LED1739R5","networkAddress":35565,"powerSource":"Mains (single phase)","softwareBuildID":"1.2.217","stackVersion":87,"type":"Router","zclVersion":1},"linkquality":239,"state":"OFF","update":{"state":"available"},"update_available":true}'

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

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von udo1toni »

drossel_bart hat geschrieben: 8. Jan 2022 10:24
udo1toni hat geschrieben: 7. Jan 2022 22:14 (oder man bleibt komplett auf openHAB 2.5.12, was aber schade wäre)
Angesichts Deiner Signatur bin ich jetzt etwas überrascht ;-)
Gell?

Ich war auch jahrelang mit meinem Produktivsystem noch auf openHAB 1, als ich längst viele Tipps für openHAB 2 abgesondert habe... Es ist ja nicht so, dass ich kein openHAB 3 betreibe, aber das ist eben nicht produktiv. Ich habe letztens erst im Hauruck openHAB 3.2.0 mit meiner aktuellen Konfiguration an den Start gebracht. Leider gab es diverse Auffälligkeiten, welche ich nicht auf die Schnelle fixen konnte, deshalb war der Schritt zurück zum bestehenden Produktivsystem die einfache und schnelle Variante (ich betreibe die Maschinen ja virtuell, ob ich da nun die ID 102 oder die ID 107 starte, ist mir herzlich schnuppe...)

Was steht denn in der settradfristate.js drin?
Du verwendest für Farbtemperatur und Helligkeit das selbe ausgehende Topic und die selbe Formatierung, ist das so korrekt?

Was mich auch etwas irritiert (aber da ich keine Tradfri habe, habe ich da keine Ahnung), sind die vielen Topics, nur um das Licht zu steuern. Bei einer Vollfarb-Lampe würde ich einen(!) Color Channel erwarten. Der Color Channel wird mit einem Color Item verbunden, kann aber wahlweise auch (zusätzlich) mit Dimmer Item und Switch Item verbunden werden, um die Lampe nur in der Helligkeit oder im Zustand ON/OFF zu steuern. Wie geagt ist es gut möglich, dass die Tradfri anbindung über zigbee2mqtt hier nicht ideal ist und Umwege erfordert.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

drossel_bart
Beiträge: 11
Registriert: 7. Jan 2022 16:42
Answers: 0

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von drossel_bart »

udo1toni hat geschrieben: 8. Jan 2022 14:56 ist mir herzlich schnuppe
Die Gnade der frühen Geburt ;-) Man wird im Alter gelassener
udo1toni hat geschrieben: 8. Jan 2022 14:56 Du verwendest für Farbtemperatur und Helligkeit das selbe ausgehende Topic und die selbe Formatierung, ist das so korrekt?
Nein. Natürlich nicht. Hab ich korrigiert. Das Schalten....also der Elektrick-Trick funktioniert nun.

Was noch nicht klappt ist das Dimmen. Dort habe ich noch was angepasst, da mqtt anscheinend Werte zwischen 0 und 254 erwartet.

Code: Alles auswählen

Type number : lampe1_b   "Helligkeit"             [ stateTopic="zigbee2mqtt/lampe1", transformationPattern="JSONPATH:$.brightness", min=0, max=254, step=1,commandTopic="zigbee2mqtt/lampe1/set", formatBeforePublish="{ \"brightness\" : %s }"]
Aber der Dimmer dimmt nicht. Im journalctl kommt immer das an (brightness:254)

Code: Alles auswählen

Jan 08 20:44:14 openhabian npm[8576]: Zigbee2MQTT:info  2022-01-08 20:44:14: MQTT publish: topic 'zb2mqtt/lampe1', payload '{"brightness":254,"color_mode":"color_temp","color_temp":250,"device":{"applicationVersion":17,"dateCode":"20211102","friendlyName":"lampe1","hardwareVersion":1,"ieeeAddr":"0x90fd9ffffe6f5eb1","manufacturerID":4476,"manufacturerName":"IKEA of Sweden","model":"LED1537R6/LED1739R5","networkAddress":42407,"powerSource":"Mains (single phase)","softwareBuildID":"2.3.087","stackVersion":87,"type":"Router","zclVersion":1},"linkquality":223,"state":"ON","update":{"state":"idle"},"update_available":false}'
Egal auf was der Slider steht

tradfristate.js

Code: Alles auswählen

// Transforms an input value of 0 or 1 to "OFF" or "ON" respectively and formats as JSON
(function(x) {
  var result = new Object();
  if ((x == 1) || (x == "1")) {
    result.state = "ON"
  } else if ((x == 0) || (x == "0")) {
    result.state = "OFF" 
  } else result.state = x
  
  return JSON.stringify(result); 
})(input)
udo1toni hat geschrieben: 8. Jan 2022 14:56 Was mich auch etwas irritiert
Ist so von mir gewünscht. Ich hätte gerne diese einzelnen Infos. Bei einem vorliegenden Firmware-Update kann ich mich mittels WhatsApp oder Telegram benachrichtigen lassen.

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

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von udo1toni »

Laut https://www.openhab.org/addons/bindings ... re-publish würde ich im formatBeforePublish %f als Platzhalter für die Zahl erwarten, nicht %s. Evtl. ist das im Artikel weiter oben etwas missverständlich formuliert.
Bist Du Dir mit dem Wertebereich 0 - 254 sicher?
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

drossel_bart
Beiträge: 11
Registriert: 7. Jan 2022 16:42
Answers: 0

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von drossel_bart »

Das f bringt leider keine Verbesserung.
udo1toni hat geschrieben: 8. Jan 2022 23:11 Bist Du Dir mit dem Wertebereich 0 - 254 sicher?
Ich hab mal die Regler auf die Maximalwerte geschoben. Die Erkennung der Lampeneigenschaften ist schon cool. Es werden nur die unterstützten Eigenschaften angezeigt
mqtt1.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von udo1toni »

Eventuell wirst Du an dieser Stelle keinen Dimmer Channel verwenden können.
Ich bin mir gerade nicht sicher, ob es zulässig ist, Max über 100 zu setzen.

Hast Du mqtt.fx oder ein ähnliches Tool, um live zu verfolgen, was tatsächlich über den Broker weitergeleitet wird? (ich nutze mqtt spy, was leider nicht mehr weiterentwickelt wird, aber alle Funktionen bietet, die ich benötige)
Der Auszug aus journalctl weiter oben beinhaltet das falsche Topic, das ist, was von mqtt in openHAB ankommt, nicht, was openHAB zu mqtt hin schickt.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

drossel_bart
Beiträge: 11
Registriert: 7. Jan 2022 16:42
Answers: 0

Re: Textfile-Konfiguration mit zigbee2Mqtt

Beitrag von drossel_bart »

udo1toni hat geschrieben: 9. Jan 2022 09:46 Hast Du mqtt.fx
Das will bei mir nicht laufen.

Aber den Payload zeigt die zigbee2mqtt-Gui im Status an

Code: Alles auswählen

{
    "color_mode": "color_temp",
    "device": {
      // Hier steht auch was
    },
    "linkquality": 239,
    "brightness": 254,
    "state": "OFF",
    "color_temp": 250
}

Antworten