Eindeutige Zuordnung der Sensor-ID von 1-Wire Sensoren zum Reading

Begonnen von Guzzi-Charlie, 13 Oktober 2019, 13:26:19

Vorheriges Thema - Nächstes Thema

Beta-User

Hmm, hier ging's mal um Tasmota, da paßt eine Sketch-Anpassungfrage zu ESP32 nicht wirklich gut hin...

(Ich habe sowas schon gemacht, allerdings mit MySensors; im Prinzip: einfach eine weitere 1-wire-Instanz anlegen (=anderer Name, oder als Array-Elemente), und dann die nacheinander "ganz nochmal" abfragen).

(Bitte ggf. neuen Thread in der Bastelecke zu ESP aufmachen, wenn das nicht weiterhilft..!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Guzzi-Charlie

Hallo,

ich muß den Beitrag auch mal wieder hochholen.

Nachdem sukram das Template angepaßt hatte hat die Zuordnung der ID's perfekt funktioniert. Nochmal vielen Dank dafür.

Ich habe jetzt aber ein ganz kurioses Problem:
Einer meiner 8 One-wire Sensoren erzeugt im FHEM Device kein Reading mehr
In der Tasmota-Konsole ist der Wert im string enthalten
18:07:16 MQT: tele/IoT-WemosD1-Mini-1/SENSOR = {"Time":"2020-03-19T18:07:16","DS18B20-1":{"Id":"01131FE394ED","Temperature":28.0},"DS18B20-2":{"Id":"01131FE98DA6","Temperature":67.9},"DS18B20-3":{"Id":"0114335D738C","Temperature":5.6},"DS18B20-4":{"Id":"01143365CBB6","Temperature":-15.5},"DS18B20-5":{"Id":"0213194EE8AA","Temperature":26.5},"DS18B20-6":{"Id":"0213194FA2AA","Temperature":68.8},"DS18B20-7":{"Id":"0213195D16AA","Temperature":50.5},"DS18B20-8":{"Id":"02131966ECAA","Temperature":48.3},"TempUnit":"C"}
Es geht hier um den Sensor mit der ID 4
Mit readingList "DVES_177B78:tele/IoT-WemosD1-Mini-1/SENSOR:.* { my %ret; while ($EVENT =~ /.Id...([A-F0-9]{12})...Temperature..([\d]+\.[\d]+)./g) { $ret{"Temperatur_".$1}=$2; }; return \%ret; }" taucht der Sensor "01143365CBB6" im FHEM device nicht auf, alle Anderen schon (siehe Anhang)
Mit readingList "DVES_177B78:tele/IoT-WemosD1-Mini-1/SENSOR:.* { json2nameValue($EVENT) }" taucht auch der Sensor mit der ID 4 auf (siehe Anhang)

Die Sensoren ID3 und ID4 waren eine Weile außer Betrieb. Ich habe sie erst vor ein paar Tagen wieder angeschlossen/eingesteckt. Die haben aber vorher schonmal alle 8 funktioniert. Ich habe nicht schlecht gestaunt als der Sensor ID4 nach der Neuinbetriebnahme nicht mehr angezeigt wurde. Defekt ist er ja offensichtlich nicht da er ja im Tasmota WEB-IF angezeigt wird und mit dem "richtigen" Aufruf auch im FHEM device ankommt.

Hat Irgendjemand eine Idee woran das liegen könnte?

- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

Scheint von dem "-"-Zeichen zu kommen, hatte wohl keiner auf dem Schirm...

die regex im temp-Teil wäre zu erweitern/ändern, z.B. so;
Temperature..([-]?[\d]+\.[\d]+)

Ich pack's bei Gelegenheit in das attrTemplate-update.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Guzzi-Charlie

Hallo Beta-User,

ich hab die Änderung gerade eingefügt. Erst hatte sich Nichts geändert, d.h das reading wurde nicht angelegt. Nachdem ich kurz "autocreate" auf "0" und dann wieder auf "1" gesetzt hatte hat es funktioniert und das reading wurde angelegt.

Ich nehme an bei dem eingefügten "-" geht es um das Minus des Meßwertes, oder? Ich verstehe leider zu wenig von der Syntax.

Was mich aber wundert ist, daß es schonmal ohne diese Änderung funktioniert hat. Aber vielleicht wurde ja an anderer Stelle (z.B. in einem Modul) etwas verändert was nun zu dieser Auswirkung geführt hat.

Vielen Dank für die prompte Unterstützung!
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

Ja, es geht um das Vorzeichen, wegen dem dann die regex nicht mehr gepaßt hat. Die Syntax kann man lernen, z.B. bei https://regexr.com/ oder regex101.com/ ;) .

So lange kein negativer Meßwert kommt, sollten auch alle Werte ausgewertet werden, und neue Readings werden erst dann sichtbar, wenn man die Seite im Browser refresht, autocreate sollte damit eigentlich nichts zu tun haben.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Guzzi-Charlie

OK, vielleicht war ich nur zu ungeduldig, aber mit dem Ändern des Attributes erfolgt ja automatisch ein Refresh der Seite. Dein Argument mit den negativen Werten verstehe ich schon, aber die Messung des Gefrierschrankes hatte schon immer negative Werte, also es muß noch irgendetwas zusätzlich gewesen sein. Aber sei es drum. Es funktioniert ja jetzt (wieder).

Danke auch für den Link zu RegExr.
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2