UserReadings: Werte addieren geht nicht!

Begonnen von choetzu, 27 Februar 2018, 19:53:23

Vorheriges Thema - Nächstes Thema

choetzu

Hallo

ich habe 2 Dummies (TEST und TEST2) welche je ein Reading "testerei" haben. Nun möchte ich die Werte der zwei Readings in einem neuen Dummy speichern. Wenn ich nun beim Dummy folgendes eingebe, gehts nicht.

summe {ReadingsNum("TEST", "testerei", 0) + ReadingsNum("TEST2", "testerei", 0)}

Hmm, das sollte doch aber gemäss Forenbeispielen und Wiki gehen...

Lg c
Raspi3, EnOcean, Zwave, Homematic

CoolTux

geht nicht ist keine Fehlermeldung. Was sollen wir uns darunter vorstellen.
Was genau geht denn nicht?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

choetzu

Sorry, die mangelnde Info. Es schreibt mir kein reading summe ins Dummy mit dem UserReading..  und im logfile ist kein Eintrag. Hmm, deshalb gehts nicht :}
Raspi3, EnOcean, Zwave, Homematic

CoolTux

Ein userReading wird nur geschrieben wenn ein Event vom Device ausgelöst wird. Hast du ein Wert in dein Dummy gesetzt?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

choetzu

In TEST gibts den Wert 2 beim Reading testerei. Und bei TEST2 den Wert 5. Beide Dummies haben event-on-change-reading.*

Wenn ich nun setreading TEST testerei 6 mache, dann gibts auch den entspechenden Event, aber es wird nix ins Ummy mit dem userReading geschrieben... komisch
Raspi3, EnOcean, Zwave, Homematic

Otto123

Was gibt Dir der Ausdruck in der FHEM Kommandozeile zurück?
{ReadingsNum("TEST", "testerei", 0) + ReadingsNum("TEST2", "testerei", 0)}

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

choetzu

Das korrekte Resultat! :) Ach Otto, mein Fhem-Gott, das wars. Ich muss zweimal readingsNum machen. Komisch nur, dass dies in etlichen Forenbeiträgen mit nur einem readingsNum gemacht wurde..

Herzlichen Dank, Euch beiden..
Raspi3, EnOcean, Zwave, Homematic

CoolTux

Zitat von: choetzu am 27 Februar 2018, 23:14:48
Das korrekte Resultat! :) Ach Otto, mein Fhem-Gott, das wars. Ich muss zweimal readingsNum machen. Komisch nur, dass dies in etlichen Forenbeiträgen mit nur einem readingsNum gemacht wurde..

Herzlichen Dank, Euch beiden..

Die Aussage verstehe ich nicht. In Deinem ersten Post wo Du sagst es geht nicht hast Du doch auch zweimal ReadingsNum
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

CoolTux mir gehts wie Dir. Ich weiß auch nicht so recht wieso ich jetzt zur Lösung beigetragen habe  :D
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

CoolTux

Ich hätte eher getippt das es mit setreading eh nicht geht. Aber da bin ich mir unsicher.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

choetzu

Zitat von: CoolTux am 27 Februar 2018, 23:21:20
Die Aussage verstehe ich nicht. In Deinem ersten Post wo Du sagst es geht nicht hast Du doch auch zweimal ReadingsNum

oh, Mann, jetzt oute ich mich "erneut" als Pfeiffe.. Ich habe in der Tat zu früh gejubelt. Gestern hat mein Lieblingsclub im Cup den Einzug ins Finale geschafft, deshalb vermutlich grad etwas übermässig positiv resp. zu früh gefreut.

Also, ihr habt natürlich recht. Es geht immer noch nicht. Wenn ich die Zeile eingebe, dann gibts mir das richtige Resultat wieder. Wenn ich es aber in ein UserReading integriere, funktioniert es nicht. Ich kriege sowohl mit setreading oder set einen Event.  Also, bin ich nicht wirklich weiter ;)
Raspi3, EnOcean, Zwave, Homematic

KernSani

mach mal bitte ein list von deinem Dummy
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

crusader

Damit ein Userreading berechnet wird, muss die ReadingsUpdate-Routine des Moduls, in dem es definiert ist, auch aufgerufen werden.

Bei Modulen, die über ein Intervall verfügen, ist das regelmäßig der Fall, bei einem Dummy aber nicht.

Du kannst den Aufruf aber erzwingen, wenn Du ein beliebiges Reading des Dummys setzt.
Das sollte imo auch funktionieren, wenn Du den state des Dummys veränderst.

CoolTux

du musst den dummys die attribute setList und readingList setzen und kannst dann ein set blabla machen. Somit greift auch das userReading. In meiner Testumgebung hat das geklappt
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

choetzu

Guten Mittag,

danke für Eure Hilfe, jetzt hat es definitiv geklappt. Folgend nun die Auflösung:

Sonos DOIF: Speichert die Anzahl Sonos Players, welche AN sind
Internals:
   CHANGED   
   NAME       Sonos_AN_Anzahl_DOIF
   NR         382
   NTFY_ORDER 50-Sonos_AN_Anzahl_DOIF
   STATE      0
   TYPE       DOIF
   READINGS:
     2018-02-26 22:29:53   cmd             0
     2018-02-26 22:29:53   mode            enabled
     2018-02-28 15:16:39   state           0
   Regex:
     STATE:
       :
         STATE:
           ""         
   condition:
   devices:
   do:
     0:
   helper:
     DOIF_Readings_events
     event      233.6
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev Steckdose_HM_Regenwasser_SenU
     DOIF_eventas:
       state: 0
     triggerEvents:
       233.6
     triggerEventsState:
       state: 233.6
   itimer:
   uiState:
   uiTable:
Attributes:
   alias      Sonos an
   event-on-change-reading .*
   group      Statistik
   icon       black/svg/volume-up
   room       11_Statistik
   state      [#"":svTransportStatePlay:$_ ==1 and $group eq "Sonos"]


DOIF TV: Speichert die Anzahl TVs, welche AN sind
Internals:
   NAME       TV_AN_Anzahl_DOIF
   NR         298
   NTFY_ORDER 50-TV_AN_Anzahl_DOIF
   STATE      0
   TYPE       DOIF
   READINGS:
     2017-12-06 10:50:21   Device          DB7080
     2017-12-04 19:22:32   cmd             0
     2017-12-06 21:36:22   mode            enable
     2018-02-28 15:14:57   state           0
   Regex:
     STATE:
       :
         STATE:
           "^DB:"     ^DB:
   condition:
   devices:
   do:
     0:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      off,channel: -,currentTitle: -
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev DB8000
     triggerEvents:
       off
       channel: -
       currentTitle: -
     triggerEventsState:
       state: off
       channel: -
       currentTitle: -
   itimer:
   uiState:
   uiTable:
Attributes:
   alias      TV an
   event-on-change-reading state
   group      Statistik
   icon       black/svg/tv
   room       11_Statistik
   state      [#"^DB:"::$STATE eq "on"  and $group eq "TV"]


Media Dummy: Hier werden die Werte anhand der notify unten gespeichert.
Internals:
   NAME       Media_Dummy
   NR         383
   STATE      3
   TYPE       dummy
   READINGS:
     2018-02-28 15:20:31   Sonos           2
     2018-02-28 15:20:13   TV              1
     2018-02-28 15:20:31   Total           3
Attributes:
   alias      Media Total
   group      Statistik
   icon       music
   room       11_Statistik
   setList    TV Sonos
   stateFormat Total
   userReadings Total {ReadingsNum("TV_AN_Anzahl_DOIF", "state", 0) + ReadingsNum("Sonos_AN_Anzahl_DOIF", "state", 0)}


Notify TV_AN: Sobald ein TV an ist, wird es auf Media_Dummy übertragen
Internals:
   CFGFN     
   DEF        TV_AN_Anzahl_DOIF:.* setreading Media_Dummy TV [TV_AN_Anzahl_DOIF:state:d]
   NAME       TV_Media_notify
   NOTIFYDEV  TV_AN_Anzahl_DOIF
   NR         556
   NTFY_ORDER 50-TV_Media_notify
   REGEXP     TV_AN_Anzahl_DOIF:.*
   STATE      2018-02-28 15:20:13
   TYPE       notify
   READINGS:
     2018-02-28 15:13:18   state           active
Attributes:


Notify Sonos_AN: Sobald ein Sonos Player an ist, wird es auf Media_Dummy übertragen
Internals:
   CFGFN     
   DEF        Sonos_AN_Anzahl_DOIF:.* setreading Media_Dummy Sonos [Sonos_AN_Anzahl_DOIF:state:d]
   NAME       Sonos_Media_notify
   NOTIFYDEV  Sonos_AN_Anzahl_DOIF
   NR         538
   NTFY_ORDER 50-Sonos_Media_notify
   REGEXP     Sonos_AN_Anzahl_DOIF:.*
   STATE      2018-02-28 15:20:31
   TYPE       notify
   READINGS:
     2018-02-28 15:12:57   state           active
Attributes:


Frage: Kann es sein, dass das Sonos DOIF viel Ressourcen frisst? Seit ich dieses DOIF im Betrieb habe, erhalte ich gelegentlich "Cannot fork: Cannot allocate memory"..  Aus fhemdebug und apptime werde ich nicht schlau..
Raspi3, EnOcean, Zwave, Homematic