openHAB2 und MQTT 2.4

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
udo1toni
Beiträge: 13948
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

giss69 hat geschrieben: 27. Jan 2019 09:30 Es ist natürlich sehr komfortabel die items über Paper UI hinzufügen aber mein Ziel war iOS App weiter zu benutzen und da muss man ein Sitemaps definieren, was wiederum nicht ohne items file geht.
Nein, das ist so nicht richtig.

Es ist der Sitemap egal, ob ein Item über ein .items File definiert ist oder über Paper UI.
Es ist außerdem egal, ob man ein Thing über eine .things Datei erstellt hat oder über Paper UI, man benötigt nur den Channelnamen, um den Link zu einem Item zu erstellen (ob nun per Paper UI oder per .items Datei).
Wenn Du es also nicht schaffst, das Thing korrekt mit einer .things Datei zu erstellen, kannst Du das ohne Probleme auch über Paper UI erledigen.

Es gibt zur Zeit nur einen zwingenden Grund, Items mittels .items Dateien zu erstellen, nämlich wenn man Tags setzen muss, um myopenHAB oder Alexa/Siri zu nutzen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

giss69
Beiträge: 14
Registriert: 1. Jan 2019 20:36

Re: openHAB2 und MQTT 2.4

Beitrag von giss69 »

@udo1toni
Danke für Deine Hilfe und Geduld!
Dann brauche ich dann gar keine .items bzw. .things anlegen, nicht auch für Bridge. Ich kann alles über Paper UI anlegen und
in Sitemap einfach item richtig benennen? Und es spielt keine Rolle ob die things über MQTT laufen oder über eine andere binding?
1.Dann ist die Frage was nehme ich als Item im Sitemap, dass was bei Paper UI bei Things unter Channel steht?
Zum Beispiel zwei things( WiFi binding und MQTT Binding)

Oder was in Paper UI unter items steht: LEDDach1_Power.(bei mqtt Diele_Power)
Dann
Switch item=LEDDach1_Power. (Switch item=Diele_Power)

2.Wie kann man Gruppen erstellen und in sitemaps definieren?

Sorry für so viele Fragen aber es klappt irgendwie nicht bei mir. :(

Update: 1 habe ich jetzt selber herausgefunden. Item Namen unter Paper UI nehmen!
Bitte bei frage 2 helfen.

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

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

Wenn Du ein Thing über Paper UI anlegst, gleichgültig, ob nun über Autodiscovery oder manuell, hast Du die Möglichkeit, den Channel zu verlinken (das + im Channel...) Dort kannst Du auch alle Items sehen, die mit dem Channel verlinkt sind. openHAB kann automatisch Items anlegen (Simple Mode on) oder dies dem Anwender überlassen (Simple Mode off; dann gibt es einen extra Menüpunkt Items unter Configuration). Items, die openHAB selbst anlegt, haben einen generischen Namen, macht keinen Spaß, die zu tippen ;) Allerdings ist das ja auch nicht unbedingt nötig, wenn man z.B. VSCode verwendet...

Gruppen kannst Du nur erstellen, wenn Du Simple Mode ausschaltest, dann unter Configuration->Items einfach die Group Items anlegen. Soweit ich weiß, kann man beliebig zwischen Simple on und off wechseln, automatisch generierte Items bleiben ebenso erhalten wie manuell erstellte.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

kaloschke
Beiträge: 175
Registriert: 29. Jan 2019 07:20

Re: openHAB2 und MQTT 2.4

Beitrag von kaloschke »

Hallo,

ich würde Euch zu diesem Thema auch gern um Hilfe bitten.
Auf einem RPI läuft ein MQTT-Clientscript, welches einen Motor steuert. Die Kommandos

mosquitto_pub -t AZ/jalousie -m "J1 AUS"
mosquitto_pub -t AZ/jalousie -m "J1 RECHTS"
mosquitto_pub -t AZ/jalousie -m "J1 LINKS"

funktionieren wie gewünscht.

Nun soll das Ganze unter OH2.4 mit dem embedded Broker gesteuert werden. Ich habe diesen installiert und in einer Datei mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:oh_embedded [ host="192.168.2.2", secure=false ]{
    Thing topic motoren {
    Channels:
       Type switch : Jalousie1_AZ "Jalousie 1 Arbeitszimmer" [ commandTopic="AZ/jalousie", on="J1 RECHTS", off="J1 AUS" ]
    }
}         
ein Thing motoren angelegt. Der Broker als auch das Thing werden in der PaperUI als online angezeigt. Außerdem ist in der Datei mqtt.items

Code: Alles auswählen

Switch Jalousie1_AZ "Jalousie Arbeitszimmer" { channel="mqtt:topic:oh_embedded:motoren:Jalousie1_AZ" }
das entsprechende Item definiert. Zum Schluss wird in der Datei home.sitemap

Code: Alles auswählen

sitemap home label="Zuhause"
{
    Frame label="Arbeitszimmer" {
        Switch item=Jalousie1_AZ label="Jalousie 1"
   }

}
den Schalter eingebunden. Leider klappt das nicht, da ich nicht weiß, wie die mqtt-Nachrichten "J1 AÚS" usw. verschicken soll. So wie ich es in der mqtt.things mache, wird es wohl falsch sein.

Viele Grüße

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

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

Da Du mehrere verschiedene Befehle senden möchtest, ist Switch der falsche Itemtyp. Die einfachste Variante dürfte ein String Item sein:

Code: Alles auswählen

    Type string : Jalousie1_AZ "Jalousie 1 Arbeitszimmer" [ commandTopic="AZ/jalousie" ]
das Item:

Code: Alles auswählen

String Jalousie1_AZ "Jalousie Arbeitszimmer" { channel="mqtt:topic:oh_embedded:motoren:Jalousie1_AZ" }
Die Sitemap:

Code: Alles auswählen

Switch item=Jalousie1_AZ mappings=["J1 RECHTS"="rechts","J1 LINKS"="links","J1 AUS"="aus"]
Allerdings ein paar Tipps:
  1. Du solltest pro Motor ein eigenes Topic definieren, statt ein Topic zu verwenden, welches dann im Value zwei Informationen übergibt
  2. Die Drehrichtung der Motoren sollte nicht interessieren. Da Du Jalousien steuern willst, solltest Du die Schllüsselworte UP, DOWN und STOP in Deinem Script verwenden. Dann kannst Du problemlos einen Rollershutter Channel/Item verwenden:

Code: Alles auswählen

    Type rollershutter : Jalousie1_AZ "Jalousie 1 Arbeitszimmer" [ commandTopic="AZ/jalousie/J1" ]
das Item:

Code: Alles auswählen

Rollershutter Jalousie1_AZ "Jalousie Arbeitszimmer" { channel="mqtt:topic:oh_embedded:motoren:Jalousie1_AZ" }
Die Sitemap:

Code: Alles auswählen

Switch item=Jalousie1_AZ 
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

kaloschke
Beiträge: 175
Registriert: 29. Jan 2019 07:20

Re: openHAB2 und MQTT 2.4

Beitrag von kaloschke »

Sehr cool. Vielen Dank für die schnelle und ausführliche Antwort.
Leider klappt es noch nicht ganz, was aber vielleicht am embedded broker liegt. Nach den Änderungen steht im openhab log

Code: Alles auswählen

2019-01-29 15:53:03.355 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.2.2' with clientid paho22366194400882 and file store 'C:\openHAB2\userdata\mqtt\192.168.2.2'
2019-01-29 15:53:03.355 [WARN ] [moquette.spi.impl.SessionsRepository] - Session does not exist. CId=paho22366194400882
und im events.log

Code: Alles auswählen

2019-01-29 15:53:03.355 [hingStatusInfoChangedEvent] - 'mqtt:topic:oh_embedded:motoren' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2019-01-29 15:53:03.355 [me.event.ThingUpdatedEvent] - Thing 'mqtt:broker:oh_embedded' has been updated.
2019-01-29 15:54:10.755 [ome.event.ItemCommandEvent] - Item 'Jalousie1_AZ' received command J1 RECHTS
Jedenfalls kommt am RPI nichts an.

Zu Deinen Tipps. Danke dafür. Bin noch in der Testphase. Der Motor dreht lediglich die Jalousie in entsprechende Position, daher "rechts" und "links" drehen. Ein "aus" habe ich nur sicherheitshalber, die Motoren habe nach dem festen Einbau eine Endabschaltung. Aber es sollte später sicher heißen "auf" und "zu".

Hoffentlich hast Du noch mehr Tipps für mich :-)

kaloschke
Beiträge: 175
Registriert: 29. Jan 2019 07:20

Re: openHAB2 und MQTT 2.4

Beitrag von kaloschke »

Neustart und alles ist gut :-)
Vielen Dank noch mal für Deine Hilfe

kaloschke
Beiträge: 175
Registriert: 29. Jan 2019 07:20

Re: openHAB2 und MQTT 2.4

Beitrag von kaloschke »

Doch noch eine Frage:
Auf der Sitemap sieht man jetzt ja die drei Schaltflächen für Rechts, Links und Aus. Links daneben erscheint immer der zugeordnete Text. Kann man das verhindern?

Lycos
Beiträge: 27
Registriert: 30. Aug 2018 12:08

Re: openHAB2 und MQTT 2.4

Beitrag von Lycos »

Hallo zusammen,

ich habe einen Sonoff 4Ch Pro und benutze als Broker Mosquitto. Alles lief natürlich gut bis zum Update auf 2.4.
Ich habe natürlich alle Beiträge hier genau gelesen, aber bekomme es dennoch nicht gebacken das das Teil wieder läuft.

mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:mosquitto "Mosquitto MQTT Broker" @ "MQTT" [ 
  host="localhost",
  secure=false,
  port=1883,
  qos=0,
  retain=false,
  //clientid="paho360305817892100",
  //certificate="",
  //certificatepin=false,
  //publickey="",
  //publickeypin=false,
  keep_alive_time=30000,
  reconnect_time=60000,
  //lastwill_message="",
  //lastwill_qos=1,
  //lastwill_topic="",
  username="xxx",
  password="xxx"
]
{
Thing topic sonoff_paterre "Sonoff Paterre" {

Channels:

Type switch : PowerSwitch1 [ stateTopic="tasmota/stat/sonoff_paterre/POWER1", commandTopic="tasmota/cmnd/sonoff_paterre/POWER1", on="ON", off="OFF" ]
Type switch : PowerSwitch2 [ stateTopic="tasmota/stat/sonoff_paterre/POWER2", commandTopic="tasmota/cmnd/sonoff_paterre/POWER2", on="ON", off="OFF" ]
Type switch : PowerSwitch3 [ stateTopic="tasmota/stat/sonoff_paterre/POWER3", commandTopic="tasmota/cmnd/sonoff_paterre/POWER3", on="ON", off="OFF" ]
Type switch : PowerSwitch4 [ stateTopic="tasmota/stat/sonoff_paterre/POWER4", commandTopic="tasmota/cmnd/sonoff_paterre/POWER4", on="ON", off="OFF" ]

}
}

Items:

Code: Alles auswählen

Switch			H_Pumpe_Paterre								"H-Pumpe Paterre"								<Temperature>												{channel="mqtt:topic:mosquitto:sonoff_paterre:PowerSwitch1"}
Switch			H_Pumpe_1_Stock								"H-Pumpe 1 Stock"								<Temperature>												{channel="mqtt:topic:mosquitto:sonoff_paterre:PowerSwitch2"}
Ich kann weder schalten, noch bekomme ich einen Status. In der Paper UI wird aber der Broker und der Sonoff als ONLINE angezeigt.
Muss ich eigentlich die "mqtt.cfg" noch bearbeiten oder erübrigt sich das nun mit der ".Thing"?

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

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

kaloschke hat geschrieben: 29. Jan 2019 16:34 Doch noch eine Frage:
Auf der Sitemap sieht man jetzt ja die drei Schaltflächen für Rechts, Links und Aus. Links daneben erscheint immer der zugeordnete Text. Kann man das verhindern?
Ja, das sollte möglich sein. Versuche, in der Sitemap ein Label zu definieren:

Code: Alles auswählen

Switch item=Jalousie1_AZ label="Jalousie Arbeitszimmer" mappings=["J1 RECHTS"="rechts","J1 LINKS"="links","J1 AUS"="aus"]
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten