Node MCU plus DHT22

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Node MCU plus DHT22

Beitrag von Joe »

Hi,
habe über die MCU einen DHT22 angeschlossen, soweit alles gut und super...die Werte stimmen.
Jetzt würde ich gerne wissen welcher Spannung (Volt) am MCU anliegt, da ich das ganze gerne über 2x1,5V Zellen versorgen möchte.
Allerdings bekomme ich es nicht geregelt, dass ich die Volt angezeigt bekomme.
Hat jemand einen Tipp was ich vergessen habe, anbei der Code:
ITEMS:

Code: Alles auswählen

Number parVccMCU1               "Spannung [%.2f V]"     <energy>    { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Vcc)]" } 
SITEMAP:

Code: Alles auswählen

Text item=parVccMCU1
Angezeigt bekomme ich immer nur einen "-"?

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

Re: Node MCU plus DHT22

Beitrag von peter-pan »

Ich gehe mal davon aus, dass du den ESP8266 mit Tasmota geflasht hast !? Welche Version ?
Welches MQTT-Binding hast du im Einsatz 1 oder 2 ? Sieht noch nach Version 1 aus !!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Re: Node MCU plus DHT22

Beitrag von Joe »

ja habe die neue 8.2.0 Tasmota drauf, MQTT ist 2.4.0

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

Re: Node MCU plus DHT22

Beitrag von peter-pan »

die Syntax, die du verwendest ist aus MQTT1. Wenn du das MQTT2 im Einsatz hast, dann poste mal das dazugehörige Thing.

Falls du aber tatsächlich doch noch das MQTT1-Binding im Einsatz hast, dann ersetze "STATE:state" durch "SENSOR:state"
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Re: Node MCU plus DHT22

Beitrag von Joe »

ich habe nochmals nachgesehen habe beide MQTTs im Einsatz 1.13.0 und 2.4.0. leider hat der wechsel zu SENDOR:State auch nicht geholfen.
Bei meinem Sonoff POW ging es ohne Probleme mit der Spannungsanzeige.
Welches Thing meinst Du genau?
Alle anderen Werte funktionieren mit dem "STATE:state"

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

Re: Node MCU plus DHT22

Beitrag von peter-pan »

...also es muss SENSOR heissen nicht SENDOR, wenn du MQTT1 benutzt.
Wenn du aber MQTT2 für deinen NODEMCU im Einsatz hast musst du auch ein entsprechendes Thing mit Channels dafür angelegt haben. Entweder über PaperUI oder in einer .things-Datei.

Als beispiel meine .items

Code: Alles auswählen

Switch    esp_amica_01_Unreach        "ESP Amica 1  LWT-Ereichbarkeit [%s]"              <siren1>                (gAmica,gLWTesp)               { channel="mqtt:topic:hans:esp_amica01:reachable"}         // persisted in mapDB
Number    esp_amica_01_hum            "ESP Amica 1 DHT22 Luftfeuchtigkeit[%.1f %%]"      <humidity>              (gAmica,EG_Buro)               { channel="mqtt:topic:hans:esp_amica01:hum"}               
Number    esp_amica_01_temp           "ESP Amica 1 DHT22 Temperatur[%.1f °C]"            <temperature>           (gAmica,EG_Buro,gRtIstI)       { channel="mqtt:topic:hans:esp_amica01:temp"}               
Number    esp_amica_01_dew            "ESP Amica 1 DHT22 Taupunkt[%.1f °C]"              <temperature>           (gAmica,EG_Buro,gRtIstI)       { channel="mqtt:topic:hans:esp_amica01:dew"}               
Number    esp_amica_01_vcc            "ESP Amica 1 Spannung[%.1f V]"                     <temperature>           (gAmica,EG_Buro,gRtIstI)       { channel="mqtt:topic:hans:esp_amica01:vcc"}               
Switch    esp_amica_01_motion         "ESP Amica 1 Bewegung[%s]"                         <siren>                 (gAmica,EG_Buro,gMotion)       { channel="mqtt:topic:hans:esp_amica01:motion"}               
String    esp_amica_01_Version        "ESP Amica 1 Version [%s]"                         <sonoff_pow>            (gSonoffs,gVer)                { channel="mqtt:topic:hans:esp_amica01:version" }            
Switch    esp_amica_01_motion1        "ESP Amica 1 Bewegung 1[%s]"                       <siren>                 (EG_Kind2,gMotion)             { channel="mqtt:topic:hans:esp_amica01:motion1"}               
String    esp_amica_01_Hardware       "ESP Amica 1 Hardware [%s]"                        <sonoff_pow>            (gSonoffs,gHard)               { channel="mqtt:topic:hans:esp_amica01:hardware" }            
String    esp_amica_01_IPAddress      "ESP Amica 1 IP-Address [%s]"                      <sonoff_pow>            (gSonoffs,gHard)               { channel="mqtt:topic:hans:esp_amica01:ipaddress" }            
Das mit dem SENSOR in Version 1 könnt auch eine Fehleinschätzung meinerseits sein. Hab einfach mal in einer alten .items-Datei geschaut, da hat sich aber zwischenzeitlich einiges geändert.


und das dazugehörige Thing aus der .things-Datei:

Code: Alles auswählen

    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 number : vcc         "Amica01 Spannung"      [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.Vcc"]
        Type switch : motion      "Amica01 Bewegung"      [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.Switch1" ]
        Type switch : motion1     "Amica01 Bewegung"      [ stateTopic="stat/amica_01/POWER" ]
        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"]
    }
Das mit dem SENSOR in Version 1 könnt auch eine Fehleinschätzung meinerseits sein. Hab einfach mal in einer alten .items-Datei geschaut, da hat sich aber zwischenzeitlich einiges geändert. Ich kann das leider nicht testen, da MQTT1 bei mir komplett abgeschaltet.
Ich hab aber den Channel für VCC bei mir angelegt und ein entsprechendes Item dazu und das klappt auch:
vcc.jpg
Du musst aber nach der Änderung des Things openHAB neu starten, da sonst die Änderungen nicht erkannt werden.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Node MCU plus DHT22

Beitrag von peter-pan »

...sorry. Der Channel muss natürlich so heissen

Code: Alles auswählen

Type number : vcc         "Amica01 Spannung"      [ stateTopic="tele/amica_01/STATE", transformationPattern="JSONPATH:$.Vcc"]
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Re: Node MCU plus DHT22

Beitrag von Joe »

sorry das verstehe ich jetzt nicht, ich habe für keinen anderen Wert ein entsprechendes thing angelegt.
Warum muss ich für die Spannung eins anlegen?
Ich bin leider nicht so der Fachmann in openhab :-)

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

Re: Node MCU plus DHT22

Beitrag von peter-pan »

:o :?: Anders herum gefragt, wie bekommst du denn deine anderen Werte in openHAB hinein ?
Joe hat geschrieben: 3. Mai 2020 17:43 Hi,
habe über die MCU einen DHT22 angeschlossen, soweit alles gut und super...die Werte stimmen
Wie sieht denn da dein SetUp aus ? Die Werte von denen du sprichst müssen ja auch irgendwie an OH2 übergeben werden.
Joe hat geschrieben: 3. Mai 2020 19:08 ich habe nochmals nachgesehen habe beide MQTTs im Einsatz 1.13.0 und 2.4.0. leider hat der wechsel zu SENDOR:State auch nicht geholfen.
Bei meinem Sonoff POW ging es ohne Probleme mit der Spannungsanzeige.
Welche Items laufen denn mit MQTT1 und welche mit MQTT2 ? Bei Items, die mit MQTT2 laufen brauchst du immer entsprechende /Bridge/Things.

Hab mal beim POW nachgeschaut, aber keinen JSON-Parameter "Vcc" gefunden.

Aber wie gesagt, bei mir geht's, wie du ja an dem Sceenshot sehen kannst. Allerdings dauert es unter Umständen, denn das Telemetrie-Kommando wird immer nur zu bestimmten Zeiten gesendet, je nachdem, wie deine Einstellungen sind. Der Default-Wert liegt hier bei 300 Sekunden, also 5 Minuten. Das solltest du auch immer im Auge behalten.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Re: Node MCU plus DHT22

Beitrag von Joe »

Naja was soll ich jetzt sagen, ich habe meine MCU mit dem DHT22 geflasht das ganze in den MQTT eingebunden. In OH die ITEMS angelegt und diese in der SITEMAP eingetragen...fertig.

Code: Alles auswählen

Number mcu1_T                   "TempTest [%.1f C]"     <network>   { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.AM2301.Temperature)],<[Broker:stat/MCU1/STATUS8:state:JSONPATH(StatusSNS.AM2301.Temperature)]" }                                                
Number mcu1_D                   "Taupunkt [%.1f C]"     <network>   { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.AM2301.DewPoint)],<[Broker:stat/MCU1/STATUS8:state:JSONPATH(StatusSNS.AM2301.DewPoint)]" }                                               
Number mcu1_H                   "Humidity [%d %%]"      <network>   { mqtt="<[Brokere:tele/MCU1/STATE:state:JSONPATH($.AM2301.Humidity)],<[Broker:stat/MCU1/STATUS8:state:JSONPATH(StatusSNS.AM2301.Humidity)]" }                                               
Number WifiMCU1                 "Wifi level [%s %%]"    <network>   { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Wifi.RSSI)]" }

//Adminbereich
Number parWiFiAPMCU1            "WiFi AP [%s]"          <network>   { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Wifi.AP)]" }
String parWiFiSSIDMCU1          "WiFi SSID [%s]"        <network>   { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Wifi.SSId)]" }
String bootModuleMCU1           "Modul [%s]"            <modul>     { mqtt="<Broker:tele/MCU1/INFO1:state:JSONPATH($.Module)]" }
String bootVersionMCU1          "Version [%s]"          <version>   { mqtt="<[Broker:tele/MCU1/INFO1:state:JSONPATH($.Version)]" }
String bootFallbackMCU1         "Fallback Topic [%s]"   <mqtt>      { mqtt="<[Broker:tele/MCU1/INFO1:state:JSONPATH($.FallbackTopic)]" }
String bootGroupMCU1            "Group Topic [%s]"      <mqtt>      { mqtt="<[Broker:tele/MCU1/INFO1:state:JSONPATH($.GroupTopic)]" }
String bootWSModeMCU1           "Webserver Mode [%s]"   <www>       { mqtt="<[Broker:tele/MCU1/INFO2:state:JSONPATH($.WebServerMode)]" }
String bootHostnameMCU1         "Hostname [%s]"         <server>    { mqtt="<[Broker:tele/MCU1/INFO2:state:JSONPATH($.Hostname)]" }
String bootIPAddressMCU1        "IP-Adresse [%s]"       <rj45>      { mqtt="<[Broker:tele/MCU1/INFO2:state:JSONPATH($.IPAddress)]" }
//String parWiFiMacMCU1           "WiFi MAC [%s]"         <network>   { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Wifi.APMac)]" }
String bootRestartReasonMCU1    "Restart Grund [%s]"    <restart>   { mqtt="<[Broker:tele/MCU1/INFO3:state:JSONPATH($.RestartReason)]" }
String parUpdateMCU1            "Letzter Update [%s]"   <time>      { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Time)]" }
String parUptimeMCU1            "Laufzeit [%s]"         <time>      { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Uptime)]" }
Number parVccMCU1               "Spannung [%.2f V]"     <energy>    { mqtt="<[Broker:tele/MCU1/STATE:state:JSONPATH($.Vcc)]" }
fertig...naja bis auf die Spannung eben :-(
Ich bekomme die Spannung über den MQTT Broker nicht abgefragt. Ich bin sicher das ich hier einen Denkfehler habe. :?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten