Seite 5 von 5

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 29. Sep 2020 23:25
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

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 30. Sep 2020 00:34
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 ;)

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 30. Sep 2020 07:59
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

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 30. Sep 2020 23:11
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

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 7. Feb 2021 12:31
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

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 7. Feb 2021 15:06
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.

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 8. Feb 2021 15:37
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 ...

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Verfasst: 10. Mai 2021 11:11
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