Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

dejavue
Beiträge: 7
Registriert: 21. Apr 2020 22:49
Answers: 0

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von dejavue »

Hallo Gemeinde
Ich habe da auch so meine Probleme mit dem DHT22, der ESP ist mit Tasmota geflasht, zeigt mir auch die Werte an.
Im MQTT fx werden die Daten auch ausgegeben, leider bringe ich dies nicht in meine Sidemap rein :twisted:

tasmota.items

Code: Alles auswählen

Number dataTemp "Temperatur [%.1f °C]" 
    { mqtt="<[mosquitto:tele/DHT22/SENSOR:state:JSONPATH($.AM2301.Temperature)]" }

Number dataHum "Luftfeuchtigkeit [%.1f %%rH]" 
    { mqtt="<[mosquitto:tele/DHT22/SENSOR:state:JSONPATH($.AM2301.Humidity)]" }
default.sidemap

Code: Alles auswählen

Frame label="DHT22" {
        Text item=dataTemp
		Text item=dataHum
	}
Habe ich da was übersehen? Muss ich noch die ganzen Einstelungen im Paper ui einbinden, oder geht dies auch ohne.

Merci schon mal für ein kleines Feedback

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von peter-pan »

dejavue hat geschrieben: 29. Sep 2020 23:25 Habe ich da was übersehen?
Den Broker hast duja schon installiert, so wie es aussieht (Mosquitto).
Die Notation deiner Items deutet darauf hin, dass du das MQTTV1-Binding installiert hast, das ist aber veraltet und wird spätestens ab OH3 nicht mehr unterstützt. Deshalb würde ich dir raten dieses nicht mehr zu nutzen bzw. zu deinstallieren, falls du es noch nicht anderweitig im Einsatz hast.

Installiere das MQTTv2-Binding (aktuell 2.5.9).

Anschliessend legst du eine Thing-Bridge für deinen Broker und mindestens ein Thing für ein Device (deinen ESP) an.
Das sieht dann etwa so aus:
mqtt.things:

Code: Alles auswählen

//https://openhabforum.de/viewtopic.php?f=15&t=970&start=20   // from Udo
//Bridge mqtt:broker:MosquittoMqttBroker "Mosquitto MQTT Broker" @ "MQTT2" 
//       ^    ^      ^                    ^                      ^ Zeige diese Bridge auf der Unterseite "MQTT" in Paper UI Control
//       ^    ^      ^                    ^ Label der Bridge
//       ^    ^      ^ Name der Bridge
//       ^    ^ Art der Bridge
//       ^ Binding

Bridge mqtt:broker:dejavue "Mosquitto" [ host="localhost", port=1883, secure=false, clientID="OH2_dejavue" ]  
{
    Thing topic esp_amica01 "ESP8266 Amica Nr 01" @ "MQTT2" {
    Channels:
        Type switch : reachable   "Amica01 Reachable"     [ stateTopic="tele/amica_01/LWT", transformationPattern="MAP:reachable.map" ] // on="Online",off="Offline"
        Type number : temp        "Amica01 Temp. DHT22"   [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Temperature"]
        Type number : hum         "Amica01 Hum.  DHT22"   [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Humidity"]
        Type number : dew         "Amica01 Tau.  DHT22"   [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.DewPoint"]
        Type string : version     "Amica01 Fw Version"    [ stateTopic="stat/amica_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type string : hardware    "Amica Chip Set"        [ stateTopic="stat/amica_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress   "Amica IP Address"      [ stateTopic="stat/amica_01/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
        Type string : ssid        "Amica01 WiFi"          [ stateTopic="tele/amica_01/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
    }
und die passenden Items

tasmota.items

Code: Alles auswählen

Group                     gAmica         "ESP8266 Amica   "                                 <esp8266_2>             
Switch    esp_amica_01_Unreach        "ESP Amica 1  LWT-Ereichbarkeit [%s]"              <siren1>                (gAmica,gLWTesp,gLWT)          { channel="mqtt:topic:dejavue:esp_amica01:reachable"}         // persisted in mapDB
Number    esp_amica_01_hum            "ESP Amica 1 DHT22 Luftfeuchtigkeit[%.1f %%]"      <humidity>              (gAmica,EG_Buro)               { channel="mqtt:topic:dejavue:esp_amica01:hum"}               
Number    esp_amica_01_temp           "ESP Amica 1 DHT22 Temperatur[%.1f °C]"            <temperature>           (gAmica,EG_Buro,gRtIstI)       { channel="mqtt:topic:dejavue:esp_amica01:temp"}               
Number    esp_amica_01_dew            "ESP Amica 1 DHT22 Taupunkt[%.1f °C]"              <temperature>           (gAmica,EG_Buro,gRtIstI)       { channel="mqtt:topic:dejavue:esp_amica01:dew"}               
String    esp_amica_01_Version        "ESP Amica 1 Version [%s]"                         <sonoff_pow>            (gAmica,gSonoffs,gVer)         { channel="mqtt:topic:dejavue:esp_amica01:version" }            
String    esp_amica_01_Hardware       "ESP Amica 1 Hardware [%s]"                        <sonoff_pow>            (gAmica,gSonoffs,gHard)        { channel="mqtt:topic:dejavue:esp_amica01:hardware" }            
String    esp_amica_01_IPAddress      "ESP Amica 1 IP-Address [%s]"                      <sonoff_pow>            (gAmica,gSonoffs,gHard)        { channel="mqtt:topic:dejavue:esp_amica01:ipaddress" }            
String    esp_amica_01_SSID           "ESP Amica 1 Wlan [%s]"                            <chart>                 (gAmica)                       { channel="mqtt:topic:dejavue:esp_amica01:ssid" }            
Als Brokername habe ich der Einfachheit halber "dejavue" und als Client "OH2_dejavue" in der Bridge gewählt und entsprechend in den Item-Channels auch "dejavue" eingesetzt.

Für einen ersten Test kannst du dir die Items über das Group Item in die Sitemap einbinden:

Code: Alles auswählen

Group item=gAmica
oder besser:

Code: Alles auswählen

    Text label="Meine ESP xxx-Werte" {
      Text item=esp_amica_01_Unreach            
      Text item=esp_amica_01_hum           
      Text item=esp_amica_01_temp           
      Text item=esp_amica_01_dew          
      Text item=esp_amica_01_Version          
      Text item=esp_amica_01_Hardware        
      Text item=esp_amica_01_IPAddress        
      Text item=esp_amica_01_SSID         
    }
Das Beispiel ist aus meinem Setup und du musst es halt noch auf deine Bedürfnisse anpassen. Viel Spass ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

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

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von udo1toni »

Ohne jetzt das Posting von Peter komplett durchgelesen zu haben :) nur so als Stichwort:

Es gibt zwei mqtt Bindings (mit diesem Namen) in openHAB2.

Das eine ist ein V1 Binding, das andere ist ein V2 Binding. Ersteres ist deprecated und meines Wissens inzwischen nur dann in openHAB2 installierbar, wenn deprecated Bindings explizit aktiviert wurden. Es ist also eher unwahrscheinlich, dass Du mqtt1 installiert hast.
Deine Konfiguration ist allerdings die für mqtt1. ;)

Grundsätzlich: Wenn Du für ein Addon Konfigurationen in Paper UI vornehmen kannst, handelt es sich um ein V2 Binding (leider gibt es ein paar Ausnahmen, aber als Regel kann man sich das trotzdem merken, zumal das Thema mit openHAB3 eh erledigt ist).
Du musst also eine Bridge zum mqtt Broker anlegen (Achtung! Nicht den System Broker verwenden!) und anschließend mindestens ein Thing (gewöhnlich ein Thing pro Device), welches dem Broker zugeordnet ist. Innerhalb des Things legst Du dann für jedes Topic (Paar) einen Channel an. Die Kommunikation über mqtt läuft gewöhnlich gerichtet, es gibt also Topics zum Steuern und Topics über die man Zustände erhält. Bei Tasmota wäre das Steuern ausschließlich über das Prefix cmnd möglich, die Rückmeldungen kommen über stat und tele (stat als Reaktion auf cmnd, tele rein periodisch, default alle 300 Sekunden).

Die Verlinkungen des Channels zum Item erfolgt dann über {channel=“...“} wobei die Punkte durch die UID des Channels ersetzt werden. Wenn Du VSCode verwendest, kann das openHAB Plugin Dir die Links vollautomatisch generieren.

Ob Du Bridge und Thing(s) über Paper UI oder Textdateien (*.things) anlegst, ist Jacke wie Hose, die UI bietet weniger Fehlermöglichkeiten, dafür ist die Textvariante besser zu zitieren und vor allem bei vielen gleichartigen Geräten wesentlich schneller als die Geräte über die UI zusammenzuklicken ;)


Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

dejavue
Beiträge: 7
Registriert: 21. Apr 2020 22:49
Answers: 0

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von dejavue »

Hallo zusammen und merci für eure schnellen Antworten.

Habe mich letzte Nacht entschieden mir einen Raspi 4 zu holen und diesen neu aufzusetzten, dies werde ich in den nächsten Tagen tun, na ja, so wie die Zeit reicht.
Der dreier läuft halt auch schon am Limit, werde mich ansonsten bei Bedarf nächste Woche diesbezüglich zurück melden.

Grüsse aus der Schweiz, Urs
Was geht mal schon:
Einbindung und Steuerung von einzelnen HUE Lampen, sowie Licht über Taster und Shelly ansteuern
Astrobinding, sowie Temperatur und Feuchte über wemos d1 und dht22 auslesen
Gartenbewässerung ansteuerung über feuchtigkeit des Bodens via wemos d1 und Bodensensor

Was sollte noch alles eingebunden werden:
Heizungssteuerung, nach Umbau meiner Heizung im Keller ;)

dejavue
Beiträge: 7
Registriert: 21. Apr 2020 22:49
Answers: 0

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von dejavue »

Hallo Gemeinde

Habe mir jetzt das OH3 installiert, jetzt blicke ich noch weniger durch.

Was heisst aus dem Betrag von udo1toni:
(zumal das Thema mit openHAB3 eh erledigt ist).
Wie bringe ich meine DHT22 Werte in OH3 angezeigt, über MQTT.fx kann ich diese wie gehabt auslesen.
Hier anbei meinen Code:
UID: mqtt:topic:29f855830c:Temperatur_Studio
label: Temperatur Studio
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:29f855830c
location: Studio
channels:
- id: Temperatur_Studio
channelTypeUID: mqtt:number
label: Studio
description: null
configuration:
stateTopic: tele/studio/SENSOR
transformationPattern: JSONPATH:$.AM2301.Temperature
Was geht mal schon:
Einbindung und Steuerung von einzelnen HUE Lampen, sowie Licht über Taster und Shelly ansteuern
Astrobinding, sowie Temperatur und Feuchte über wemos d1 und dht22 auslesen
Gartenbewässerung ansteuerung über feuchtigkeit des Bodens via wemos d1 und Bodensensor

Was sollte noch alles eingebunden werden:
Heizungssteuerung, nach Umbau meiner Heizung im Keller ;)

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von peter-pan »

dejavue hat geschrieben: 7. Feb 2021 12:31 Was heisst aus dem Betrag von udo1toni:
Udo meint damit, dass es in OH3 keine OH1-basierende Bindings mehr gibt. Falls du also noch MQTT1 benutzt hast, musst du auf jeden Fall auf MQTT2/3 umsteigen.

Ansonsten sollten die weiter vorne angegebenen Parameter noch Gültigkeit haben. Du kannst dazu die Textkonfiguration nehmen oder aber über die Main-UI Bridge/Things/Channel und Items anlegen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Jojo
Beiträge: 207
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von Jojo »

Mal ganz saublöd gefragt ( ich habe jetzt den Ganzen Beitrag gelesen ):
Wo hängt denn der DHT22 dran ?
Meiner ist an einen ESP83266 angeschlossen, und auf dem ist Tasmota (Danke dem Forum hier ).
Seitdem flutscht das nur so mit den Werten. Eine Bridge und pro ESP einen Channel. Da hängen auch DS18B20 dran, die sind 1-Wire, es sind also bis zu 3 Stück an einem ESP ( der braucht dann nur ne gute Stromversorgung ). Ich habe an einem ESP sogar einen DS18b20 UND einen DHT hängen ( auf 2 GPIO´s ).
Und ich bin echt froh, nicht mehr mit der Arduino IDE rumtun zu müssen ...
--

Gruß

Jojo

dejavue
Beiträge: 7
Registriert: 21. Apr 2020 22:49
Answers: 0

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von dejavue »

Hallo zusammen
Merci für die schnellen Antworten, das Virus hat mich etwas brach legen lassen, bin nun wieder auf den Beinen. Bitte entschuldigt mein nichtmelden nach Euren Antworten.
Inzwischen habe ich auch mein Openhab aktualisiert und die Fühler kontrolliert. Meine Bestellung vom Chinesen waren alle schlecht gelötet, und somit konnte ich die Werte nicht auslesen.

Scheisse aber auch.

--
Gruss Urs
Was geht mal schon:
Einbindung und Steuerung von einzelnen HUE Lampen, sowie Licht über Taster und Shelly ansteuern
Astrobinding, sowie Temperatur und Feuchte über wemos d1 und dht22 auslesen
Gartenbewässerung ansteuerung über feuchtigkeit des Bodens via wemos d1 und Bodensensor

Was sollte noch alles eingebunden werden:
Heizungssteuerung, nach Umbau meiner Heizung im Keller ;)

Antworten