Seite 1 von 2

OpenHAB 2.5 --> MQTT ?

Verfasst: 25. Jan 2020 13:22
von KlausGünther
Hallo Zusammen,

bevor die ersten durchdrehen, ich bin durchaus in der Lage Google zu bemühen und dort zu suchen,
scheint leider gerade mein Verhängnis zu sein..... Aber worum gehts denn überhaupt ?

Ich möchte gerne an meinem RPi4 auf dem OH 2.5 läuft, MQTT nutzen (Sensoren). Da soll als
erstes an einem ESP32 ein AS3935 Blitzsensor dran, das nur am rande.
Jetzt habe ich versucht, anhand der Anleitungen im Netz MQTT zu installieren. Soweit so gut.
Nur klappt das nicht. Bei Mosqutio zum Beispiel (über oh-config) gibt dann den Hinweis, dass
es ja auch einen Broker im System gibt. Und das zieht sich dann durch mit Dingen die mehr
oder weniger nicht so wirklich passen.
Um die Sache mal abzukürzen, hat jemand einen Tipp für die Installation von MQTT auf OH2.5 ?

Grüße
KlausGünther

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 25. Jan 2020 13:29
von eiGelbGeek
Am Raspberry ist es eigentlich nur ein:

Code: Alles auswählen

sudo apt install mosquitto mosquitto-clients
Im Openhab 2.5.0 das MQTT Binding (nicht den Embedded Broker oder sonstiges :mrgreen: )
https://www.openhab.org/addons/bindings/mqtt/

Eine Konfiguration eines Gerätes könnte z.b. wie folgt aussehen.

Code: Alles auswählen

Bridge mqtt:broker:network "MQTT Broker" [ host="10.10.80.3",port=1883,secure=false,retainMessages=false, retain=false ]


Thing mqtt:topic:raspberrypi "MQTT - RPi - Daten" (mqtt:broker:network) {
    Channels:
      Type number : RPi_apartment_temperature "RPi Apartment Temperatur" [ stateTopic="/network/admin/rpi/temp/RPi_apartment_temperature/status" ]
      Type number : RPi_basement_temperature "RPi Basement Temperatur" [ stateTopic="/network/admin/rpi/temp/RPi_basement_temperature/status" ]
      Type number : RPi_laundry_room_temperature "RPi Laundry Room Temperatur" [ stateTopic="/network/admin/rpi/temp/RPi_laundry_room_temperature/status" ]
      Type number : RPi_Corridor_temperature "RPi Corridor Temperatur" [ stateTopic="/network/admin/rpi/temp/RPi_Corridor_temperature/status" ]
}
PS: Die mosquitto-clients brauchst du nur wenn du auch von diesen RPi Daten auslesen willst und an den Broker schicken willst, wie z.b. die CPU Temperatur... Das mache ich mit folgenden Script :-)

Code: Alles auswählen

#!/bin/bash

mqtt_broker_ip="10.10.80.3"
mqtt_broker_port="1883"
mqtt_topic="/network/admin/rpi/temp/"
mqtt_item="RPi_Corridor_temperature"

Temperature=$(/opt/vc/bin/vcgencmd measure_temp|awk -F "=" '{print $2}'| awk -F "\'" '{print $1}' 2>/dev/null)
mosquitto_pub -h $mqtt_broker_ip -p $mqtt_broker_port -t $mqtt_topic$mqtt_item/status -m $Temperature
:!: Diese Konfiguration wird bei mir nur im Internen Netzwerk betrieben, wenn du den Broker im Internet verfügbar machen willst, dann muss dieser noch weitergehend konfiguriert werden. User/Passwort/SSL etc pp. :!:

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 25. Jan 2020 16:36
von peter-pan
...so ein ähnliches Problem hatte ich auch schon mal. Da hat mir Kevin auch sehr weitergeholfen. Jetzt läuft alles so wie es soll. Du kannst auch mal in diesen post reinschauen, da hat er das auch ganz ausführlich erklärt.

Die Installation sollte so wie von Kevin beschrieben klappen. Aber auch mit "openhabian-config". Auch wenn da immer mal wieder der Hinweis kommt, dass es einen "embedded Broker" gibt. Soweit ich weiss wird dieser Broker aber nicht weiter gepflegt. Die einfachere Variante scheint mir allerdings die von Kevin zu sein. Ich hatte Mosquitto schon von MQTT1 installiert, deshalb hab ich das nicht nochmal machen müssen. Sondern nur das MQTT2-Binding installiert.

Für die Installation eines Clients auf einem anderen Rechner gibst du halt auf der Console des jeweiligen Rechners nur

Code: Alles auswählen

sudo apt install mosquitto-clients
oder 
sudo apt-get install mosquitto-clients
an. So kommunizieren inzwischen meine 3 RPi's miteinander.

Die Mosquitto-Einstellungen für deine ESP's musst du halt in der Firmware machen. Ich hab inzwischen 2 ESP's (USB-Anschluss) mit ESP-Easy mega geflashed. Hätte es mir nicht so einfach vorgestellt. Selbst die WiFi-Settings kannst du da nach dem flashen (vielleicht geht auch gleich beim flashen) mit angeben und musst dann nicht mühsam über "192.168.4.1" dein Netzwerk suchen.

meine Bridge mit einem ESP8266-Thing sieht so aus:

Code: Alles auswählen

Bridge mqtt:broker:hans "Mosquitto" [ host="localhost", port=1883, secure=false, clientID="OH2_hans" ]  
{
    Thing topic esp_mini01 "ESP8266 Mini Nr 01" @ "MQTT2" {
    Channels:
        Type switch : reachable   "Mini Reachable"   [ stateTopic="esp_mini_1/status/LWT" ]
        Type switch : motionT1    "Mini Bewegung T1" [ stateTopic="esp_mini_1/HC-SR501_1/State" ]
        Type number : tempT2      "Temp. DHT11 T2"   [ stateTopic="esp_mini_1/DHT11_2/Temperature"]
        Type number : humT2       "Hum.  DHT11 T2"   [ stateTopic="esp_mini_1/DHT11_2/Humidity"]
    }
}
Ich hab noch eine feste clientID vergeben. Ich meine mal gelesen zu haben, wenn das nicht der Fall ist Feher auftreten können. Ich glaube weil OH bei jedem Neustart dann eine neue ID generiert. Ich meine auch, dass dann jedes mal eine neu Logdatei angelegt wird (frag mich nicht wo :oops: ) und das unter Umständen der RasPi zugemüllt wird. Aber da können dir die Spezilisten noch was dazu sagen.

Die Items hierzu sehen so aus:

Code: Alles auswählen

//192.168.yyy.xx                            ESP8266 Mini_1
Switch    esp_mini_01_Unreach           "ESP8266_Mini-1 LWT-Erreichbarkeit [%s]"          <siren1>                (gAmica)                       { channel="mqtt:topic:hans:esp_mini01:reachable"}
Switch    esp_mini_T1_motion            "ESP8266_Mini-1 Bewegung[%s]"                     <siren>                 (gAmica,EG_Buro)               { channel="mqtt:topic:hans:esp_mini01:motionT1"}               
Number    esp_mini_T2_temp              "ESP8266_Mini-1 DHT11 Temperatur[%.1f °C]"        <temperature>           (gAmica,EG_Buro,gRtIstI)       { channel="mqtt:topic:hans:esp_mini01:tempT2"}               
Number    esp_mini_T2_hum               "ESP8266_Mini-1 DHT11 Luftfeuchtigkeit[%.1f %%]"  <humidity>              (gAmica,EG_Buro)               { channel="mqtt:topic:hans:esp_mini01:humT2"}               
Solltest du noch weitere Infos brauchen, du weisst ja wo du uns findest.

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 25. Jan 2020 18:13
von KlausGünther
Ich sage schon mal herzlich danke, werde aber heute nich mehr zu viel kommen.
Mosquitto ist installiert, das 2.5er MQTT Binding auch, der openhab Broker der nach dem installieren des
Bindings in der inbox aufpopte ist online, soweit für heute.

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 25. Jan 2020 20:43
von peter-pan
... hattest du vorher deine Bridge (mqtt2.things - so heisst sie bei mir) + einem Thing angelegt ?

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 26. Jan 2020 09:50
von KlausGünther
Wenn ich mich mit nicht vertue, kam die Bridge (ich hoffe wir reden von der gleichen sache) von ganz allein nach dem installieren des Bindings in die Inbox, Textdateien habe ich bisher keine Angelegt.
Ich muss auch erst mal das ESP32 Modul flashen und den Sensor verkabeln.

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 26. Jan 2020 10:38
von peter-pan
mit der Bridge meine ich das hier:
peter-pan hat geschrieben: 25. Jan 2020 16:36 Bridge mqtt:broker:hans "Mosquitto" [ host="localhost", port=1883, secure=false, clientID="OH2_hans" ]
{
Thing topic esp_mini01 "ESP8266 Mini Nr 01" @ "MQTT2" {
Channels:
Type switch : reachable "Mini Reachable" [ stateTopic="esp_mini_1/status/LWT" ]
Type switch : motionT1 "Mini Bewegung T1" [ stateTopic="esp_mini_1/HC-SR501_1/State" ]
Type number : tempT2 "Temp. DHT11 T2" [ stateTopic="esp_mini_1/DHT11_2/Temperature"]
Type number : humT2 "Hum. DHT11 T2" [ stateTopic="esp_mini_1/DHT11_2/Humidity"]
}
}
Wie gesagt, ich hatte Mosquitto bereits installiert. Und ich meine mich zu erinnern, dass ich nichts mehr installieren musste bzw. in der Inbox aktivieren musste. Es drängt sich mir der Verdacht auf, dass du evtl. nun zwei Broker installiert hast.

Hattest du vorher nichts über MQTT laufen? z.B. Sonoffs

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 26. Jan 2020 12:05
von KlausGünther
Nö, gar nix. Ich hab Mosquitto auch installiert (oh config tool) und dann wie gesagt nur das neue Binding 2.5.1 installiert.

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 26. Jan 2020 13:13
von peter-pan
Ich hab mal testweise meine "mqtt2.things" - Datei rausgenommen (umbenannt in mqtt2.things_stop). Also erst "sudo systemctl stop openhab2", dann Things-Datei umbenannt und dann "sudo systemctl start openhab2".Danach konnte ich auch keinen Broker mehr in der PaperUI unter Things sehen.

Danach wieder zurück und alles war wieder da.

Vielleicht installierst du mal mein Things-Beispiel. Kannst "hans" durch "fritz" ersetzen(musst aber nicht) :lol: . Dann sollte eigentlich der Broker sichtbar werden (PaperUI und Logger). Ich gehe mal davon aus, dass du Mosquitto auf dem gleichen RPi installiert hast, wie dein OH.

Code: Alles auswählen

2020-01-26 10:51:02.805 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to 'localhost' with clientid OH2_hans
Evtl. musst du noch einen Restart von OH machen.

Re: OpenHAB 2.5 --> MQTT ?

Verfasst: 26. Jan 2020 17:47
von KlausGünther
Ich befürchte das wird nächstes Wochenende, heute schaffe ich das nicht mehr und die Woche über bin ich auf Dienstreise. Ich werde mich aber hier melden.
Beides sind MQTT Broker.
Einmal
mqtt:broker
und der zweite
mqtt:system:broker