Hauptmenü

UserReading

Begonnen von Eisix, 01 Dezember 2016, 15:33:07

Vorheriges Thema - Nächstes Thema

Eisix

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



Otto123

Hi Eisix,

also + ist für Zahlen, wenn die Readings Zahlen sind dann nimm einfach ReadingsNum statt ReadingsVal.


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

igami

#2
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)}
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Eisix

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)}


igami

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?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Eisix

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.

igami

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.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Eisix

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