Seite 1 von 5
Node MCU plus DHT22
Verfasst: 3. Mai 2020 17:43
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:
Angezeigt bekomme ich immer nur einen "-"?
Re: Node MCU plus DHT22
Verfasst: 3. Mai 2020 18:41
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 !!!
Re: Node MCU plus DHT22
Verfasst: 3. Mai 2020 18:45
von Joe
ja habe die neue 8.2.0 Tasmota drauf, MQTT ist 2.4.0
Re: Node MCU plus DHT22
Verfasst: 3. Mai 2020 18:54
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"
Re: Node MCU plus DHT22
Verfasst: 3. Mai 2020 19:08
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"
Re: Node MCU plus DHT22
Verfasst: 3. Mai 2020 19:52
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.
Re: Node MCU plus DHT22
Verfasst: 3. Mai 2020 19:55
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"]
Re: Node MCU plus DHT22
Verfasst: 4. Mai 2020 19:37
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

Re: Node MCU plus DHT22
Verfasst: 4. Mai 2020 22:34
von peter-pan

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.
Re: Node MCU plus DHT22
Verfasst: 5. Mai 2020 07:21
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.
