[Gelöst]: Maximalen Wert in Variable speichern

Begonnen von hemmi, 09 Februar 2018, 19:44:57

Vorheriges Thema - Nächstes Thema

hemmi

Hallo Zusammen,

ich habe an meinem FHEM diverse Sensoren.

Was mich interessieren würde wäre es den Maximalwert in einer Variablen zu speichern.

Z.B. Maximaltemperatur heute, Maximale Windgeschwindigkeit in der letzten Stunde, ...

Habe im Forum nichts gefunden (obwohl ich denke die Frage wurde bestimmt schon gestellt) und bin für einen Schubs dankbar :-)

Viele Grüße
Michael


Christoph Morrison

Zitat von: hemmi am 09 Februar 2018, 19:44:57
Habe im Forum nichts gefunden (obwohl ich denke die Frage wurde bestimmt schon gestellt) und bin für einen Schubs dankbar :-)

DOIF/notify als Trigger bei einem Update, if/IF als Test ob neuer Wert > alter Wert, wenn ja, dann überschreiben; wenn nein, dann nix machen.
Reset auf 0 jede Stunde ([:00])

Amenophis86

Und bitte den Threadtitel nicht schreien, dafür gibt es keinen Grund. (Soll heißen Groß- UND Kleinschreibung nutzen. Danke)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Otto123

Ich habe das für meinen Temperatursensor außen mit den beiden attributen:
attr SensorAussen event-aggregator tempMax::none:max:86400,tempMin::none:min:86400
attr SensorAussen userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler"));; $val =~ s/\./,/;; return $val;;}, tempMax {ReadingsVal("$name","temperature","Fehler")}, tempMin {ReadingsVal("$name","temperature","Fehler")}

tempText ist nur für Ansage.

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

hemmi

Hallo Zusammen,

ich habe den Statistikansatz versucht. Ich glaube auch das es läuft - aber wie komme ich an die Werte ran?

Viele Grüße
Michael


NAME

statistik_KS300
NR

38
NTFY_ORDER

10-statistik_KS300
PREFIX

stat
STATE

Updated stats for: LaCrosse_0E
TYPE

statistics
Readings
monitoredDevicesKS300

KS300

2018-02-10 12:14:33

hemmi

Habe die Statistik Werte gefunden  ;)

Da wo sie hingehören - bei den Devices selbst!

Danke für den Schubs!

Viele Grüße
Michael  :D

Rewe2000

Hallo Otto,

irgendwie komm ich da nicht weiter bei einem Problem, welches bei dir anscheinen läuft.
https://forum.fhem.de/index.php/topic,84101.msg763816.html#msg763816


Ich will eigentlich nur die Minimal und Maximaltemperatur in ein Userreading schreiben und verwende dazu das Attribut event-aggregator und userreadings
Gewartet habe ich auch schon mehrere Tage, aber die Temperaturen bleiben alle gleich.

Mein Device ist vom Type ModbusRegister, die Userreadings sind angelegt aber bei Minimal und Maximaltemperatur steht bei beiden immer der gleiche Wert.

Mein Device:
Internals:
   CHANGED   
   DEF        wago QW256
   IODev      WAGO
   LASTInputDev WAGO
   MSGCNT     2973
   ModbusRegister_lastRcv 2018-02-14 20:26:55
   NAME       Aussentemperatur
   NOTIFYDEV  global
   NR         107
   NTFY_ORDER 50-Aussentemperatur
   STATE      -2.9
   TYPE       ModbusRegister
   WAGO_MSGCNT 2973
   WAGO_TIME  2018-02-14 20:26:55
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1518636175.30911
           VALUE      -2.9
   READINGS:
     2018-02-14 20:26:55   RAW             ffe3
     2018-02-14 20:26:55   state           -2.9
     2018-02-14 20:26:55   tempMax         -2.9
     2018-02-14 20:26:55   tempMin         -2.9
   helper:
     addr       3 0 256
     address    256
     disableRegisterMapping 1
     lastUpdate 0
     nextUpdate 1518636475.89602
     nread      1
     readCmd    
     register   256
     registerType 3
     unitId     0
     updateIntervall 60
     wago       1
     wagoDataType W
     cnv:
       a          0.1
       b          0
       max        6553.5
       min        0
       pr         -1
       step       10
Attributes:
   IODev      WAGO
   conversion 0.1:0
   event-aggregator tempMax::none:max:86400,tempMin::none:min:86400
   event-on-change-reading state.*
   group      Umwelt
   plcDataType INT
   room       WAGO
   updateInterval 60
   userReadings tempMax {ReadingsVal("$name","state","Fehler")}, tempMin {ReadingsVal("$name","state","Fehler")}


Es wäre nett wenn du mir in dieser Angelegenheit mal die Augen öffnen könntest.
Oder habe ich da etwas komplett falsch verstanden?

Danke, Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Otto123

Hallo Reinhard,

also ich habe keine Idee. Ich poste Dir mal meinen Sensor, vielleicht siehst Du was. Aber bei mir funktioniert das. Bei Dir ist es der state den Du lesen willst. Produziert der eventuell keine Events? Das sehe ich irgendwie als einzigen Unterschied.
Du kannst versuchen Value("$name") zu nehmen, der liest den Status aus. Aber eigentlich ist es gleich.
Gruß Otto

Internals:
   DEF        16F6E3
   HMLAN1_MSGCNT 9703
   HMLAN1_RAWMSG E16F6E3,0000,05F88580,FF,FFBD,B4867016F6E30000007FE646
   HMLAN1_RSSI -67
   HMLAN1_TIME 2018-02-14 21:43:31
   HMUART1_MSGCNT 9507
   HMUART1_RAWMSG 05000040B4867016F6E30000007FE646
   HMUART1_RSSI -64
   HMUART1_TIME 2018-02-14 21:43:31
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     19210
   NAME       SensorAussen
   NOTIFYDEV  global
   NR         115
   NTFY_ORDER 50-SensorAussen
   STATE      T: -2.6 H: 70
   TYPE       CUL_HM
   lastMsg    No:B4 - t:70 s:16F6E3 d:000000 7FE646
   protLastRcv 2018-02-14 21:43:31
   rssi_at_HMLAN1 cnt:9703 max:-63 avg:-72.15 min:-93 lst:-67
   rssi_at_HMUART1 lst:-64 min:-86 max:-62 avg:-69.83 cnt:9507
   READINGS:
     2018-01-28 18:44:25   Activity        alive
     2015-01-03 13:35:01   CommandAccepted yes
     2015-01-03 13:35:00   D-firmware      1.2
     2015-01-03 13:35:00   D-serialNr      IEQ0206728
     2015-01-03 13:35:01   PairedTo        0x200DB8
     2015-01-03 13:35:01   R-burstRx       off
     2015-01-03 13:35:01   R-pairCentral   0x200DB8
     2015-01-03 13:35:01   RegL_00.        01:00 02:01 05:00 0A:20 0B:0D 0C:B8 0F:00 00:00
     2018-02-14 21:43:31   battery         ok
     2018-02-14 21:43:31   humidity        70
     2015-01-03 13:39:44   powerOn         2015-01-03 13:39:44
     2015-01-03 13:39:44   recentStateType info
     2018-02-14 21:43:31   state           T: -2.6 H: 70
     2018-02-14 21:43:31   tempMax         10.6
     2018-02-14 21:43:31   tempMin         -6.1
     2018-02-14 21:43:31   tempText        -2,6
     2018-02-14 21:43:31   temperature     -2.6
   helper:
     HM_CMDNR   180
     mId        003D
     rxType     140
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +16F6E3,00,00,00
       nextSend   1518641011.20595
       rxt        2
       vccu       VCCU
       p:
         16F6E3
         00
         00
         00
     mRssi:
       mNo        B4
       io:
         HMLAN1     -65
         HMUART1    -64
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf
       qReqStat
     role:
       chn        1
       dev        1
     rssi:
       at_HMLAN1:
         avg        -72.1531485107698
         cnt        9703
         lst        -67
         max        -63
         min        -93
       at_HMUART1:
         avg        -69.8342274113813
         cnt        9507
         lst        -64
         max        -62
         min        -86
     tmpl:
Attributes:
   IODev      HMLAN1
   IOgrp      VCCU
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   event-aggregator tempMax::none:max:86400,tempMin::none:min:86400
   event-on-change-reading state,temp.*
   expert     2_full
   firmware   1.2
   model      HM-WDS10-TH-O
   peerIDs    00000000,
   room       Outdoor
   serialNr   IEQ0206728
   subType    THSensor
   userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler")); $val =~ s/\./,/; return $val;}, tempMax {ReadingsVal("$name","temperature","Fehler")}, tempMin {ReadingsVal("$name","temperature","Fehler")}
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