Wie Gradient und deltaT als userReading generieren?

Begonnen von SusisStrolch, 23 Januar 2017, 19:00:07

Vorheriges Thema - Nächstes Thema

SusisStrolch

Ich möchte den Temperaturgradienten sowie die Temperaturdifferenz des Warmwassers an meiner Wärmepumpe messen und protokollieren.
Ich habe zwei Devices (ESPEasy) , die im 15s-Takt Vor-und Rücklauftemperatur liefern:

defmod ESPEasy_NodeMCUv3_01_Vorlauf ESPEasy 192.168.254.96 80 ESPbridge NodeMCUv3_01_Vorlauf
attr ESPEasy_NodeMCUv3_01_Vorlauf IODev ESPbridge
attr ESPEasy_NodeMCUv3_01_Vorlauf Interval 300
attr ESPEasy_NodeMCUv3_01_Vorlauf event-on-change-reading DS18B20_00DA.*
attr ESPEasy_NodeMCUv3_01_Vorlauf event-on-update-reading deltaT.*,gradient.*,deltaGradient.*
attr ESPEasy_NodeMCUv3_01_Vorlauf group ESPEasy Device
attr ESPEasy_NodeMCUv3_01_Vorlauf presenceCheck 1
attr ESPEasy_NodeMCUv3_01_Vorlauf readingSwitchText 1
attr ESPEasy_NodeMCUv3_01_Vorlauf room ESPEasy,Keller
attr ESPEasy_NodeMCUv3_01_Vorlauf setState 12
attr ESPEasy_NodeMCUv3_01_Vorlauf userReadings deltaT:DS18B20.* { sprintf("%.1f", ReadingsVal("$name", "DS18B20_00DA",0) -  ReadingsVal("ESPEasy_NodeMCUv3_01_Ruecklauf", "DS18B20_009F",0)) },\
gradient:DS18B20.* difference { sprintf("%.1f", ReadingsVal("$name", "DS18B20_00DA",0))},\
deltaGradient:DS18B20.* difference { sprintf("%.1f", ReadingsVal("$name", "DS18B20_00DA",0) -  ReadingsVal("ESPEasy_NodeMCUv3_01_Ruecklauf", "DS18B20_009F",0)) }\

defmod ESPEasy_NodeMCUv3_01_Ruecklauf ESPEasy 192.168.254.96 80 ESPbridge NodeMCUv3_01_Ruecklauf
attr ESPEasy_NodeMCUv3_01_Ruecklauf IODev ESPbridge
attr ESPEasy_NodeMCUv3_01_Ruecklauf Interval 300
attr ESPEasy_NodeMCUv3_01_Ruecklauf event-on-change-reading DS18B20.*
attr ESPEasy_NodeMCUv3_01_Ruecklauf group ESPEasy Device
attr ESPEasy_NodeMCUv3_01_Ruecklauf presenceCheck 1
attr ESPEasy_NodeMCUv3_01_Ruecklauf readingSwitchText 1
attr ESPEasy_NodeMCUv3_01_Ruecklauf room ESPEasy,Keller
attr ESPEasy_NodeMCUv3_01_Ruecklauf setState 12




Mit den userReadings berechne ich die Gradienten sowie Differenz zwischen Vor- und Rücklauf.

Leider erhalte ich für die Userreadings jeweils 2 Werte hintereinander - einmal '0', der zweite Wert entspricht der echten Differenz.


TIMESTAMP    DEVICE TYPE EVENT READING VALUE UNIT
2017-01-23 18:38:44 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY DS18B20_00DA: 38.1 DS18B20_00DA 38.1
2017-01-23 18:38:44 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY gradient: -0.100000000000001 gradient -0.100000000000001
2017-01-23 18:38:44 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY deltaGradient: -0.0999999999999979 deltaGradient -0.0999999999999979
2017-01-23 18:38:44 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY gradient: 0 gradient 0
2017-01-23 18:38:44 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY deltaGradient: 0 deltaGradient 0
2017-01-23 18:38:29 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY DS18B20_00DA: 38.2 DS18B20_00DA 38.2
2017-01-23 18:38:29 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY gradient: -0.0999999999999943 gradient -0.0999999999999943
2017-01-23 18:38:29 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY deltaGradient: -0.100000000000001 deltaGradient -0.100000000000001
2017-01-23 18:38:29 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY gradient: 0 gradient 0
2017-01-23 18:38:29 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY deltaGradient: 0 deltaGradient 0
2017-01-23 18:38:14 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY DS18B20_00DA: 38.3 DS18B20_00DA 38.3
2017-01-23 18:38:14 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY gradient: -0.100000000000001 gradient -0.100000000000001
2017-01-23 18:38:14 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY deltaGradient: -0.100000000000001 deltaGradient -0.100000000000001
2017-01-23 18:38:14 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY gradient: 0 gradient 0
2017-01-23 18:38:14 ESPEasy_NodeMCUv3_01_Vorlauf ESPEASY deltaGradient: 0 deltaGradient 0


Wenn ich "event-on-update" nicht verwende, werden die UserReadings logischerweise nicht protokolliert.
Wie kann ich denn nun diese 0-Werte unterdrücken?
Was mache ich an der Stelle falsch? Wo ist mein Denkfehler?
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch