Hallo,
ich frage meine Dimpex Wärmepumpe ab und es läuft Perfekt.
Ich habe die Vorlauftemperatur und die Rücklauftemperatur. Diese würde ich gerne voneinander abziehen damit ich die Spreizung habe und als extra Wert in das Logfile schreiben lassen wo die Temperaturen stehen.
Vielleicht kann mir jemand behilflich sein, hab aktuell keinen Anhaltspunkt wie ich das angehen soll
Danke Stefan
########################################################
## Register Vorlauftemperatur definieren
## Erstellt........: 06.01.2015
## Geändert........: 04.01.2016
########################################################
define dim_flow_temperature ModbusRegister 0 5
attr dim_flow_temperature IODev HeatPumpServer
attr dim_flow_temperature alias Vorlauftemperatur
attr dim_flow_temperature conversion 0.1:0
attr dim_flow_temperature event-min-interval .*:1800
attr dim_flow_temperature event-on-change-reading temperature:0.1
attr dim_flow_temperature fp_Dimplex 625,604,1,Vorlauftemperatur,
attr dim_flow_temperature group Temperaturen
attr dim_flow_temperature plcDataType INT
attr dim_flow_temperature registerType Holding
attr dim_flow_temperature room Dimplex
attr dim_flow_temperature stateAlias temperature
attr dim_flow_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))}
attr dim_flow_temperature updateInterval 00:01:00
########################################################
## Register Rücklauftemperatur definieren
## Erstellt........: 06.01.2015
## Geändert........: 04.01.2016
########################################################
define dim_return_temperature ModbusRegister 0 2
attr dim_return_temperature IODev HeatPumpServer
attr dim_return_temperature alias Rücklauftemperatur
attr dim_return_temperature conversion 0.1:0
attr dim_return_temperature event-min-interval .*:1800
attr dim_return_temperature event-on-change-reading temperature:0.1
attr dim_return_temperature fp_Dimplex 733,602,1,Rücklauftemperatur,
attr dim_return_temperature group Temperaturen
attr dim_return_temperature plcDataType INT
attr dim_return_temperature registerType Holding
attr dim_return_temperature room Dimplex
attr dim_return_temperature stateAlias temperature
attr dim_return_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))}
attr dim_return_temperature updateInterval 00:01:00
########################################################
## Logfile Betriebsdaten definieren
##
########################################################
define filelog_dim_temperature_monat FileLog ./log/Temperatur_Dimplex_Monat-%Y-%m.log dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*
attr filelog_dim_temperature_monat alias Log Temperatur Dimplex Monat
attr filelog_dim_temperature_monat createGluedFile 1
attr filelog_dim_temperature_monat group Log
attr filelog_dim_temperature_monat nrarchive 2
attr filelog_dim_temperature_monat room Dimplex
Ergebnis im Logfile
2018-02-01_00:00:51 dim_flow_temperature temperature: 36
2018-02-01_00:00:51 dim_return_temperature temperature: 28.9
Hallo Stefan,
ein userReadings, so etwa
attr dim_flow userReadings tempDiff {ReadingsVal("$name","temperature","Fehler") - ReadingsVal("dim_return","temperature","Fehler")}
Schau Dir bitte CodeTags an, die findest Du mit der # Taste über dem :-X Smiley - sieht schöner aus.
Gruß Otto
Hallo Otto,
es schaut schon ganz gut aus, es kommen aber die Vorlauftemperatur...?
Readings
state 29.8 2018-02-09 23:50:36
########################################################
## Spreizung
########################################################
define dim_spreiz_temperature ModbusRegister 0 5
attr dim_spreiz_temperature IODev HeatPumpServer
attr dim_spreiz_temperature alias Spreizung
attr dim_spreiz_temperature conversion 0.1:0
attr dim_spreiz_temperature event-min-interval .*:900
attr dim_spreiz_temperature event-on-change-reading temperature:0.1
attr dim_spreiz_temperature group Temperaturen
attr dim_spreiz_temperature plcDataType INT
attr dim_spreiz_temperature registerType Holding
attr dim_spreiz_temperature room Dimplex
attr dim_spreiz_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))}
attr dim_spreiz_temperature updateInterval 00:01:00
attr dim_spreiz_temperature userReadings temperature{ReadingsVal("dim_flow_temperature","temperature","Fehler") - ReadingsVal("dim_return_temperature","temperature","Fehler")}
Ich verstehe nicht warum Du wegen eines Wertes (eines Readings) das Device duplizierst und dann das vorhandene Reading temperature mit einem userReading konkurrierend schreiben willst. Keine Ahnung was da wirklich rauskommt. :-[
Du zeigst übrigens den Wert für state und nicht den Wert des userreadings. Der Wert für state muss so sein, Du hast Dein Modbus Device dupliziert, das schreibt da rein!
Also mein Vorschlag es einfach als ein zusätzliches Reading zu definieren eines existierenden Gerätes gefällt Dir nicht?
Dann definiere Dir einen dummy und trage dort das userreading mit dem Namen ein wie Du es gewählt hast.
Gruß Otto
Hallo stefantaust1,
danke für die Anregung, hab's bei mir aufgenommen.
Hallo Otto,
ich sehe, dass die tempDiff/Spreizung bei mir im logfile mehrfach geschrieben wird.
Die anderen Readings tauchen nur einfach auf.
Kann man das mehrfache loggen verhindern?
Viele Grüße Gisbert
logfile:
2018-02-10_11:09:47 Heizung Warmwasseraustritt: 54.1
2018-02-10_11:09:47 Heizung Warmwasserspeicher: 56.9
2018-02-10_11:09:47 Heizung Warmwasserpumpe: 1
2018-02-10_11:09:47 Heizung Heizung.Vorlauf: 35.7
2018-02-10_11:09:47 Heizung Heizung.Ruecklauf: 27.7
2018-02-10_11:09:47 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:47 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:49 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:49 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:54 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:54 Heizung Heizung.System.Info: 111
2018-02-10_11:09:54 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:56 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:57 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:58 Heizung Heizung.Spreizung: 8.0
2018-02-10_11:09:58 Heizung Heizung.Spreizung: 7.9
2018-02-10_11:10:00 Heizung Heizung.Spreizung: 7.9
2018-02-10_11:10:00 Heizung Heizung.Spreizung: 7.9
Definition des Logfiles:
defmod FileLog_Heizung FileLog ./log/Heizung-%Y-%m.log Heizung.(Warmwasseraustritt|Warmwasserspeicher|Warmwasserpumpe|Heizung.System.Info|Heizung.Vorlauf|Heizung.Ruecklauf|Heizung.Spreizung).*
attr FileLog_Heizung logtype text
Definition des Devices Heizung:
defmod Heizung MQTT_DEVICE DS18B20
attr Heizung IODev MyBroker
attr Heizung event-min-interval Warmwasseraustritt:50,Warmwasserspeicher:50,Warmwasserpumpe:50,Heizung.Vorlauf:50,Heizung.Ruecklauf:50,Heizung.System.Info:50
attr Heizung eventMap 1.000:aus 0.000:an
attr Heizung icon sani_buffer_temp_all
attr Heizung room Heizung,Mobile
attr Heizung stateFormat Speicherpumpe: WWP<br/>Speicher: Warmwasserspeicher°C<br/>Leitung: Warmwasseraustritt°C<br/>Vorlauf: Heizung.Vorlauf°C<br/>Rücklauf: Heizung.Ruecklauf°C<br/>Spreizung: Heizung.Spreizung°C<br/>Uptime: Heizung.System.Info min<br/>RSSI: Heizung.Wifi<br/>Zeitstempel
attr Heizung subscribeReading_Heizung.Ruecklauf /hooks/devices/22/SensorData/Heizung.Ruecklauf
attr Heizung subscribeReading_Heizung.System.Info /hooks/devices/11/SensorData/Heizung.System.Info
attr Heizung subscribeReading_Heizung.Vorlauf /hooks/devices/21/SensorData/Heizung.Vorlauf
attr Heizung subscribeReading_Heizung.Wifi /hooks/devices/26/SensorData/Heizung.Wifi
attr Heizung subscribeReading_Warmwasseraustritt /hooks/devices/8/SensorData/Warmwasseraustritt
attr Heizung subscribeReading_Warmwasserpumpe /hooks/devices/10/SensorData/Warmwasserpumpe
attr Heizung subscribeReading_Warmwasserspeicher /hooks/devices/9/SensorData/Warmwasserspeicher
attr Heizung userReadings Warmwasseraustritt {sprintf('%.1f', ReadingsVal('Heizung','Warmwasseraustritt',''))}, \
Warmwasserspeicher {sprintf('%.1f', ReadingsVal('Heizung','Warmwasserspeicher',''))}, \
Warmwasserpumpe {sprintf('%.0f', ReadingsVal('Heizung','Warmwasserpumpe',''))}, \
WWP {sprintf('%.3f', ReadingsVal('Heizung','Warmwasserpumpe',''))}, \
Heizung.Vorlauf {sprintf('%.1f', ReadingsVal('Heizung','Heizung.Vorlauf',''))}, \
Heizung.Ruecklauf {sprintf('%.1f', ReadingsVal('Heizung','Heizung.Ruecklauf',''))}, \
Heizung.Spreizung {sprintf('%.1f', ReadingsVal('Heizung','Heizung.Vorlauf','')-ReadingsVal('Heizung','Heizung.Ruecklauf',''))}, \
Zeitstempel {substr(ReadingsTimestamp('Heizung','Warmwasserpumpe',''),0,19)}
Du arbeitest mit attr Heizung event-min-interval ...
Ich würde mit attr Heizung event-on-change-reading Heizung.Spreizung arbeiten.
Gruß Otto
Hallo Otto,
danke für den Hinweis, ich geb zu, dass ich heute morgen zu faul zum Denken war. Entschuldigend muss ich aber sagen, dass ich heute morgen wahrscheinlich nicht ohne Denkanstoss zur Lösung gefunden hätte.
attr Heizung event-on-change-reading Heizung.Spreizung
hat nicht geholfen, aber das Reading mit event-min-interval auf 50 Sekunden zu setzen, wie die anderen auch:
attr Heizung event-min-interval Warmwasseraustritt:50,Warmwasserspeicher:50,Warmwasserpumpe:50,Heizung.Vorlauf:50,Heizung.Ruecklauf:50,Heizung.System.Info:50,Heizung.Spreizung:50
Jetzt kommt dieses Reading wie alle anderen jede Minute rein:
2018-02-10_12:43:03 Heizung Warmwasseraustritt: 54.5
2018-02-10_12:43:03 Heizung Warmwasserspeicher: 59.8
2018-02-10_12:43:03 Heizung Warmwasserpumpe: 0
2018-02-10_12:43:03 Heizung Heizung.Vorlauf: 36.0
2018-02-10_12:43:03 Heizung Heizung.Ruecklauf: 28.4
2018-02-10_12:43:03 Heizung Heizung.Spreizung: 7.6
2018-02-10_12:43:08 Heizung Heizung.System.Info: 205
Viele Grüße Gisbert
Hallo Otto,
ich habe es jetzt so gemacht wie du anfangs vorgeschlagen hast. :)
Bit diesem Code wird es als Reading in der Vorlauftemperatur angezeigt
attr dim_flow_temperature userReadings tempDiff {ReadingsVal("$name","temperature","0") - ReadingsVal("dim_return_temperature","temperature","0")}
state 32 2018-02-10 15:30:52
tempDiff 5.6 2018-02-10 15:30:52
temperature 32 2018-02-10 15:30:52
Im LogFile wird aber nichts geschrieben
Wie kann ich es definieren das der Wert tempDiff ins Log geschrieben wird und ich ihn bei meine Kurven einblenden kann.
########################################################
## Logfile Betriebsdaten definieren
##
########################################################
define filelog_dim_temperature_monat FileLog ./log/Temperatur_Dimplex_Monat-%Y-%m.log dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*
attr filelog_dim_temperature_monat alias Log Temperatur Dimplex Monat
attr filelog_dim_temperature_monat createGluedFile 1
attr filelog_dim_temperature_monat group Log
attr filelog_dim_temperature_monat nrarchive 2
attr filelog_dim_temperature_monat room Dimplex
Grüsse
Stefan
Hi Stefan,
na Du öffnest Dein Filelog filelog_dim_temperature_monat und gehst am einfachsten über den regExp Parts Wizard und wählst dieses Reading zusätzlich aus.
Oder Du editierst die DEF und schreibst es dort dazudim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*|dim_.*._temperature:tempDiff:.*
Gisbert hatte es ja auch schon geschrieben ;)
Gruß Otto
Habe es jetzt genau so eingetragen, aber es wird nix geschrieben :-\
Stefan
Ich hatte einen Aufmerksamkeitsfehler eingebaut -> _temperature:tempDiff ;D
ich steh am Schlauch.... :) wird nix eingetragen :-\
Du hast ein großes D draus gemacht?
Dann nimm doch den Wizard?!
so schauts aus
./log/Temperatur_Dimplex_Monat-%Y-%m.log dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*|dim_.*._temperature:tempDiff:.*
im wizard taucht tempDiff nicht auf :-\
Dann mach mal bitte ein list dim_flow_temperature
und poste die Ausgabe.
Internals:
DEF 0 5
HeatPumpServer_MSGCNT 97
HeatPumpServer_TIME 2018-02-10 17:05:14
IODev HeatPumpServer
LASTInputDev HeatPumpServer
MSGCNT 97
ModbusRegister_lastRcv 2018-02-10 17:05:14
NAME dim_flow_temperature
NR 45
NTFY_ORDER 50-dim_flow_temperature
STATE 25.6
TYPE ModbusRegister
lastUpdate Sat Feb 10 17:05:14 2018
nextUpdate Sat Feb 10 17:06:14 2018
READINGS:
2018-02-10 17:05:14 RAW 0100
2018-02-10 17:05:14 statTemperature Hour: -0.1 Day: 3.6 Month: 3.6 Year: 3.6 (since: 2018-01-25_20:08:10 )
2018-01-26 20:09:53 statTemperatureDay Min: 18.1 Avg: 27.8 Max: 52.4 (since: 2018-01-25_20:45:46 )
2018-01-26 20:09:53 statTemperatureHour Min: 30.6 Avg: 36.3 Max: 36.8
2018-01-26 19:59:55 statTemperatureHourLast Min: 20.4 Avg: 32.9 Max: 36.7
2018-02-10 16:59:55 statTemperatureLast Hour: -0.9 Day: - Month: - Year: -
2018-01-26 20:09:53 statTemperatureMonth Min: 18.1 Avg: 27.8 Max: 52.4 (since: 2018-01-25_20:45:46 )
2018-01-28 13:59:55 statTemperatureTendency 1h: +4.3 2h: +3.5 3h: +2.3 6h: +2.3
2018-01-26 20:09:53 statTemperatureYear Min: 18.1 Avg: 27.8 Max: 52.4 (since: 2018-01-25_20:45:46 )
2018-02-10 17:05:14 state 25.6
2018-02-10 17:05:14 tempDiff -0.100000000000001
2018-02-10 17:05:14 temperature 25.6
helper:
_98_statistics dim_statistics
addr 3 0 5
address 5
disableRegisterMapping 0
lastUpdate 0
nextUpdate 1518278774.31805
nread 1
readCmd
register 5
registerType 3
unitId 0
updateIntervall 60
cnv:
a 0.1
b 0
max 3276.7
min -3276.8
pr -1
step 10
Attributes:
IODev HeatPumpServer
alias Vorlauftemperatur
conversion 0.1:0
event-min-interval .*:1
event-on-change-reading temperature:0.1
fp_Dimplex 625,604,1,Vorlauftemperatur,
group Temperaturen
plcDataType INT
registerType Holding
room Dimplex
stateAlias temperature
stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))}
updateInterval 00:01:00
userReadings tempDiff {ReadingsVal("$name","temperature","0") - ReadingsVal("dim_return_temperature","temperature","0")}
Naja damit ist alles in Ordnung. Ich glaube Dir nicht, dass der im Wizard nicht auftaucht :D
Du musst in der ersten Klappleiste hinter dem set in regexp parts dim_flow_temperature auswählen. Dann sollte in der zweiten Klappleiste eine Liste mit den Werten zur Auswahl stehen.
da habe ich dann nur .* und temperature:.* zur Auswahl
hinzugefügt schaut das dann so aus:
dim_flow_temperature:.*
dim_flow_temperature:temperature:.*
ins Log wird nix geschrieben
ok Du hast -> event-on-change-reading temperature:0.1
Zitat Doku
Zitatevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten "readings" identisch sind, wird kein Ereignis generiert.
Du musst Dein attr <> event-on-change-reading entsprechend anpassen. :-[ ;)
jetzt funktioniert es. ;D Vielen Dank :)
Ich habe mitgelesen und auch meine Spreizung ausgerechnet...
Spreizung {ReadingsVal("WMZ","Vorlauftemperatur","0") - ReadingsVal("WMZ","Ruecklauftemperatur","0")}
Die Temperaturen kommen zwar sauber auf einer nachkommastelle aus dem Modbus Wärmemengenzähler, gelegentlich habe ich aber beim UserReading trotzdem viele Nachkommastellen - hat jemand einen tip wie ich das verhindere..?
Kurz und nicht ausformuliert und getestet:
mit sprintf("%.2f",ReadingsVal("WMZ","Vorlauftemperatur","0") - ReadingsVal("WMZ","Ruecklauftemperatur","0"))
http://perldoc.perl.org/functions/sprintf.html
Edit im Code fehlte ne Klammer - korrigiert.
So ganz trifft das den Nagel nicht auf den Kopf... Mit der Zeile wird nicht mehr aktualisiert.
Ich würde auch gerne noch die aktuelle AZ bestimmen ( abgegebene Leistung / aufgenommene Leistung )
Problem ist, das eine sind kW - das andere W
Zitat von: der-Lolo am 11 Februar 2018, 15:02:46
So ganz trifft das den Nagel nicht auf den Kopf... Mit der Zeile wird nicht mehr aktualisiert.
Verstehe ich nicht. Also Du musst es komplett so machen:
Spreizung {sprintf("%.2f",ReadingsVal("WMZ","Vorlauftemperatur","0") - ReadingsVal("WMZ","Ruecklauftemperatur","0"))}
ZitatProblem ist, das eine sind kW - das andere W
Umrechnungsfaktor 1000 ? :D oder welches Problem siehst Du?
Hehe, komma getrennt - dazu brauchte ich auch die ComandRef... Habs nun, rechnen ging doch einfacher als ich gedacht hatte....
Spreizung {sprintf("%.1f",ReadingsVal("WMZ","Vorlauftemperatur","0") - ReadingsVal("WMZ","Ruecklauftemperatur","0"))},
aktAZ {sprintf("%.2f",ReadingsVal("WMZ","aktWaermeleistung","0")*1000 / ReadingsVal("SDM630","Power_L2__W","0"))}
Ich frag mich schon ob ich mit den Temperaturen und dem Durchfluss die Wärmeleistung mal selber rechne ;-)
Hallo der-Lolo,
ZitatIch frag mich schon ob ich mit den Temperaturen und dem Durchfluss die Wärmeleistung mal selber rechne ;-)
Deine Idee für meinen Holzvergaser geht auch gerade schwanger mit mir ;D
1 wire Anlegefühler sind eh bestellt, dann frisch ans Werk.
Danke für die Vorarbeit an Alle.
Gruß
Hans-Jürgen
Hallo,
ich muss das Thama nochmal aufgreifen
Ich erhalte ja unter der Vorlauftemperatur das Reading der Spreizung
tempDiff {ReadingsVal("$name","temperature","0") - ReadingsVal("dim_return_temperature","temperature","0")}
Wie bekomme ich das Reading tempDiff als extra Dummy oder Device angezeigt?
Stefan
Kannst Du genauer werden? Was ist der Vorteil eines extra Devices gegenüber einem Reading aus Deiner Sicht? Wo willst Du den Wert in dem Device haben?
Gruß Otto
Hallo Otto123,
schön du du mir wieder unter die Arme greifst :D
Ich will den Wert einem Raum und Gruppe zuordnen und dann im Floorplan anzeigen lassen.
Jetzt ist der Wert tempDiff ja nur als reading bei der Vorlauftemperatur zu finden
Danke
Stefan
Hallo Stefan,
und wie lässt Du andere Temperaturen im Floorplan anzeigen? Ich meine klar Du kannst das Reading in den state eines Dummy kopieren, aber das erscheint mir überflüssig.
Du kannst es auch in den state Deines Devices HeatPumpServer schreiben.
Gruß Otto
Hallo Otto,
hiermit frage ich die Vorlauftemperatur ab
########################################################
## Register Vorlauftemperatur definieren
## Erstellt........: 06.01.2015
## Geändert........: 04.01.2016
########################################################
define dim_flow_temperature ModbusRegister 0 5
attr dim_flow_temperature IODev HeatPumpServer
attr dim_flow_temperature alias Vorlauftemperatur
attr dim_flow_temperature conversion 0.1:0
attr dim_flow_temperature event-min-interval .*:900
attr dim_flow_temperature event-on-change-reading tempDiff:0.1,temperature:0.1
attr dim_flow_temperature fp_Dimplex 386,621,1,Vorlauftemperatur,
attr dim_flow_temperature group Temperaturen
attr dim_flow_temperature plcDataType INT
attr dim_flow_temperature registerType Holding
attr dim_flow_temperature room Dimplex
attr dim_flow_temperature stateAlias temperature
attr dim_flow_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))}
attr dim_flow_temperature updateInterval 00:01:00
attr dim_flow_temperature userReadings tempDiff {ReadingsVal("$name","temperature","0") - ReadingsVal("dim_return_temperature","temperature","0")}
Hab irgendwie keinen Plan, wie ich das realisieren soll :-\
Stefan
Hi,
ich habe keinen floorplan und bin Dir da keine große Hilfe.
Mir fallen Stichwort ein
ZitatstateFormat
Ändert den Gerätestatus, dies ist z.Bsp. in der Ausgabe des list Kommandos zu sehen, oder in der Raumübersicht von FHEMWEB. Falls nicht gesetzt, dann wird das state Reading übernommen. Sonst werden alle Wörter im Wert des Attributes durch das entsprechende Reading des Gerätes ersetzt (soweit vorhanden). Falls der Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die Auswertung passiert bei jeder Änderung eines Readings.
Die hier beschriebene "set magic" wird auch angewendet.
Oder readingsGroup (https://fhem.de/commandref_DE.html#readingsGroup)
Ich glaube zu letzterem findest Du auch viel im Forum.
Gruß Otto
über readingsgroup hab ich es jetzt geschafft
define spreiz readingsGroup .*:tempDiff
attr spreiz alias Spreizung
attr spreiz group Temperaturen berechnet
attr spreiz room Dimplex
bin aber nicht zufrieden.... ::)
es wäre schön wenn es bei Temperaturen dabeistehen würde genau so wie die anderen Temperaturen... siehe Anhang
Weil du jetzt zwei ReadingsGroup gemacht hast.
Laut Doku kannst Du doch einfach deine Bestehende Readingsgroup erweitern
Zitatdefine <name> readingsGroup <device>[:regex] [<device-2>[:regex-2]] ... [<device-n>[:regex-n]]
Hallo stefantaust1,
steige jetzt zwar nicht mehr ganz durch...
aber nicht nur in Richtung Floorplan ist readingsProxy mein liebstesKind geworden.
Also bei mir habe ich es ohne Readingsgroup gemacht die einzelnen Devices(Messwerte) in einer attr Group und gut ist.
Also erst ein userReading für tempDiff(Spreizung) im Vorlaufdevice Danke für die Berechnungsformel ! angelegt.
Von diesem userReading ein readingsProxy angelegt und dies mit in die Gruppe der Sensoren angelegt das wars.
Geplottet wird bei mir Hilfe von DBlog.
siehe Anhang
Gruß
Hans-Jürgen