Hallo,
ich möchte zwei readings zu einem neuen userreading addieren
SUMME {ReadingsVal("DEVICE","READING1",0)+ReadingsVal("DEVICE","READING2",0)}
Habe schon diverse Varianten probiert, das userreading wird aber nicht angelegt. In Forum und Wiki haben ich auch keine Lösung gefunden.
Hat hier jemand eine Idee?
Gruß
Eisix
Hi Eisix,
also + ist für Zahlen, wenn die Readings Zahlen sind dann nimm einfach ReadingsNum statt ReadingsVal.
Gruß Otto
Hallo Eisix,
ein List vom Device hilft meistens.
Wenn das userreading im gleichen device angelegt wird kannst du auch $name verwenden.
Folgendes funktioniert bei mir:
Internals:
CFGFN
NAME sum
NR 115664
STATE ???
TYPE dummy
Helper:
Dblog:
1:
Dblog:
TIME 1480603812.53656
VALUE 1
2:
Dblog:
TIME 1480603773.61703
VALUE 2
Sum:
Dblog:
TIME 1480603812.53656
VALUE 3
Readings:
2016-12-01 15:50:12 1 1
2016-12-01 15:49:33 2 2
2016-12-01 15:50:12 sum 3
Attributes:
readingList 1 2
setList 1 2
userReadings sum {ReadingsNum($name, "1", 0) + ReadingsNum($name, "2", 0)}
Kriege es nicht hin >:(
Internals:
NAME UPDATE
NR 316
STATE OK
TYPE CustomReadings
Helper:
Dblog:
All:
Logdb:
TIME 1480604400.40897
VALUE 0
Fhem:
Logdb:
TIME 1480604400.40897
VALUE 0
Ftui:
Logdb:
TIME 1480604400.40897
VALUE 0
Readings:
2016-12-01 15:59:59 FHEM 0
2016-12-01 15:59:59 FTUI 0
2016-12-01 15:59:59 state OK
Attributes:
event-on-change-reading FHEM,FTUI,ALL
event-on-update-reading FHEM,FTUI,ALL
interval 600
readingDefinitions FHEM:qx(wget -qO - http://fhem.de/fhemupdate/controls_fhem.txt| diff - /opt/fhem/FHEM/controls_fhem.txt |grep ">"|grep "UPD"|wc -l),FTUI:qx(wget -qO - https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt| diff - /opt/fhem/FHEM/controls_fhemtabletui.txt |grep ">" |grep "UPD"|wc -l)
userReadings ALL {ReadingsNum($name,"FHEM",0)+ReadingsNum($name,"FTUI",0)}
Du hast event-on-change-reading und event-on-update-reading gesetzt, ich weiß nicht wie sich das zusammen verhält.
Was steht denn im EventMonitor?
event-on-change-reading und event-on-update-reading habe ich zum testen gesetzt. Aber auch einzeln oder ohne, kein Unterschied.
Eventmonitor nach FHEM neustart (intervall auf 60s) sieht für mich korrekt aus.
2016-12-01 16:26:36 CustomReadings UPDATE FHEM: 0
2016-12-01 16:26:36 CustomReadings UPDATE FTUI: 0
2016-12-01 16:26:36 CustomReadings UPDATE ALL: 0
2016-12-01 16:27:36 CustomReadings UPDATE FHEM: 0
2016-12-01 16:27:36 CustomReadings UPDATE FTUI: 0
2016-12-01 16:27:36 CustomReadings UPDATE ALL: 0
2016-12-01 16:28:36 CustomReadings UPDATE FHEM: 0
2016-12-01 16:28:36 CustomReadings UPDATE FTUI: 0
2016-12-01 16:28:36 CustomReadings UPDATE ALL: 0
Reading erscheint aber nicht im device.
UserReadings scheinen in CustomReadings nicht zu gehen aufgrund von
foreach my $r (keys %{$hash->{READINGS}}) {
if (not $r ~~ @used) {
delete $hash->{READINGS}{$r};
}
}
Du könntest das einfach als weiteres ReadingsDefinition angeben
ALL:{ReadingsNum($name, "FHEM", 0) + ReadingsNum($name, "FTUI", 0)}
wichtig ist, dass die Definition in geschweifte Klammern gefasst wird um das Komma nicht als Trennzeichen auszuwerten.
Gute Idee.
Danke geht, da hätte ich auch drauf kommen können. Manchmal sieht man einfach den Wald vor lauter Bäumen nicht ;D
Gruß
Eisix