Seite 1 von 1

openhab 2.5 MQTT EspEasy auf einem NodeMCU Lolin V3 mit Relais

Verfasst: 1. Mai 2020 23:30
von Jochen
Hallo zusammen,

ich hab schon einiges in dem Forum gelesen, bisher konnte ich immer eine Lösung finden. Jetzt will's leider einfach nicht so klappen, wie ich will :)

Ich habe auf einem Raspbery Pi 3 Openhab 2.5 laufen, das MQTT Binding ist installiert und funktioniert auch.

Für eine neue Gartenbewässerung habe ich einen ESP8266 NodeMCU Lolin V3 mit EspEasy Mega geflasht. Und die Devices angelegt.
EsPEasy Devices.jpg
Die mqtt.things Datei:

Code: Alles auswählen

Bridge mqtt:broker:brokerhome [ host="192.168.100.51", secure=false ]{
    Thing topic Gartenbewaesserung {
        Channels:
            Type switch : GB_Buschbewaesserung "Buschbewässerung" [stateTopic="Gartenbewaesserung_2/Relais1/State", commandTopic="Gartenbewaesserung_2/GPIO/13", ON="0", OFF="1", autoupdate="false"]
            Type number : GB_Spannung "Akkuspannung" [stateTopic="Gartenbewaesserung_2/Spannungssensor/Akkuspannung"]
            Type number : GB_Bodenfeuchte "Bodenfeuchte" [stateTopic="Gartenbewaesserung_2/Bodenfeuchtesensor/Bodenfeuchte"]
            Type number : GB_Temperatur "Temperatur Steuerung" [stateTopic="Gartenbewaesserung_2/BMP280/Temperatur"]
            Type number : GB_Luftfeuchtigkeit "Luftfeuchtigkeit Steuerung" [stateTopic="Gartenbewaesserung_2/BMP280/Luftfeuchtigkeit"]
            Type number : GB_Luftdruck "Luftdruck Steuerung" [stateTopic="Gartenbewaesserung_2/BMP280/Luftdruck"]
    }
}
Und die mqtt.items

Code: Alles auswählen

// Gartenbewässerung
Switch GB_Buschbewaesserung "Buschbewässerung" <switch> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Buschbewaesserung"}
Number GB_Spannung "Akkuspannung" {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Spannung"}
Number GB_Bodenfeuchte "Bodenfeuchte" <humidtiy> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Bodenfeuchte"}
Number GB_Temperatur "Temperatur" <temperature> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Temperatur"}
Number GB_Luftfeuchtigkeit "Luftfeuchtigkeit Steuerung" <humidity> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Luftfeuchtigkeit"}
Number GB_Luftdruck "Luftdruck Steuerung" <pressure> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Luftdruck"}
Switch GB_Automatik "Gartenbewässerung Automatik"
und noch die Mein_Haus.sitemap:

Code: Alles auswählen

        Text label="Gartenbewässerung" icon="garden"{
            Default item=GB_Buschbewaesserung label="Buschbewässerung" icon="water"
            Default item=GB_Spannung label="Akkuspannung [%.1fV]"
            Default item=Gartenbewaesserung_Batteriespannung_Prozent label="Ladezustand[%.0f%%]" icon=battery
            Default item=GB_Temperatur label="Temperatur Steuerung [%.1f°C]"
            Default item=GB_Luftfeuchtigkeit label="Luftfeuchtigkeit Steuerung [%.1f%%]"
            Default item=GB_Luftdruck label="Luftdruck Steuerung [%.1fhPa]"
            Default item=GB_Automatik label="Automatik"
Die Werte der verschiedenen Sensoren werden richtig übertragen und angezeigt. Der Status des Relais wird auch angezeigt und geändert, wenn ich das Relais über die Weboberfläche schalte.
Es funktioniert auch im Programm MQTT.fx "Gartenbewaesserung_2/GPIO/13/1" zu publishen.

ESP Easy gibt dann das im Logfile aus:
30686567: SW : GPIO 13 Set to 1
30686617: SW : GPIO=13 State=1 Output value=0

Leider funktioniert es nicht das Relais über die Sitemap zu schalten. Bzw. schaltet es nur bei jedem zweiten Drücken auf das Item, das dann den Status zweimal selbst wechselt. Über die Rules kann ich das leider nicht gebrauchen.

Hat jemand vielleicht einen Tip für mich, wo ich hier den Fehler mache, ich weiß echt nicht mehr, was ich noch ausprobieren könnte.

schöne Grüße
Jochen

PS: unter Tasmota hat das Schalten des Relais einwandfrei funktioniert, leider habe ich dort einen ADS1115 am I2C Port nicht zum laufen gebracht:-(

Re: openhab 2.5 MQTT EspEasy auf einem NodeMCU Lolin V3 mit Relais

Verfasst: 2. Mai 2020 01:07
von udo1toni
autoupdate="false" ist kein gültiger Parameter für einen mqtt Channel. Dieser Parameter gehört zum Item als "zusätzliches Binding". Die beiden Parameter on und off müssten eigentlich klein geschrieben werden, wobei das Binding da wohl nicht so zimperlich ist.

Re: openhab 2.5 MQTT EspEasy auf einem NodeMCU Lolin V3 mit Relais

Verfasst: 2. Mai 2020 09:34
von Jochen
Hallo udo1toni,

mit dem autoupdate="false" hab ichs leider auch nicht hin bekommen, aber dein Tipp mit dem "zusätzlichen Binding" hat mich auf die richtige Spur geführt.

Die mqtt.things schaut jetzt so aus:

Code: Alles auswählen

    Thing topic Gartenbewaesserung {
        Channels:
            Type switch : GB_Buschbewaesserung "Buschbewässerung" [commandTopic="Gartenbewaesserung_2/GPIO/13", on="0", off="1"]
            Type switch : GB_Buschbewaesserung_Status "Buschbewässerung Status" [stateTopic="Gartenbewaesserung_2/Relais1/State"]
            Type number : GB_Spannung "Akkuspannung" [stateTopic="Gartenbewaesserung_2/Spannungssensor/Akkuspannung"]
            Type number : GB_Bodenfeuchte "Bodenfeuchte" [stateTopic="Gartenbewaesserung_2/Bodenfeuchtesensor/Bodenfeuchte"]
            Type number : GB_Temperatur "Temperatur Steuerung" [stateTopic="Gartenbewaesserung_2/BMP280/Temperatur"]
            Type number : GB_Luftfeuchtigkeit "Luftfeuchtigkeit Steuerung" [stateTopic="Gartenbewaesserung_2/BMP280/Luftfeuchtigkeit"]
            Type number : GB_Luftdruck "Luftdruck Steuerung" [stateTopic="Gartenbewaesserung_2/BMP280/Luftdruck"]
und die mqtt.items so:

Code: Alles auswählen

Switch GB_Buschbewaesserung "Buschbewässerung" <switch> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Buschbewaesserung", channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Buschbewaesserung_Status"}
Number GB_Spannung "Akkuspannung" {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Spannung"}
Number GB_Spannung_Prozent "Akkk Ladestand"
Number GB_Bodenfeuchte "Bodenfeuchte" <humidtiy> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Bodenfeuchte"}
Number GB_Temperatur "Temperatur" <temperature> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Temperatur"}
Number GB_Luftfeuchtigkeit "Luftfeuchtigkeit Steuerung" <humidity> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Luftfeuchtigkeit"}
Number GB_Luftdruck "Luftdruck Steuerung" <pressure> {channel="mqtt:topic:brokerhome:Gartenbewaesserung:GB_Luftdruck"}
Switch GB_Automatik "Gartenbewässerung Automatik"
wie du siehst, hab ich für das Schalten und den Status des Relais jetzt zwei Channels angelegt und die dann beim Item wieder in eines zusammen gebracht.

So klappt es jetzt endlich :-)

Danke für deine Hilfe.

Gruß Jochen

Re: openhab 2.5 MQTT EspEasy auf einem NodeMCU Lolin V3 mit Relais

Verfasst: 2. Mai 2020 15:39
von udo1toni
Ja, wenn das stateTopic komplett andere Werte liefert als das commandTopic braucht (hier also ON/OFF gegenüber 0/1), ist es das Einfachste, einen zusätzlichen Channel zu verwenden, funktioniert wunderbar :)