BEST PRACTICE: event-on-change-reading vs. event-on-update-reading

Begonnen von vbs, 21 April 2015, 11:27:21

Vorheriges Thema - Nächstes Thema

t.huber

Vielen Dank für die schnelle Antwort und Hilfe.
Jetzt geht es wie gewünscht !

In diesem Fall hätte mir die Command-Ref hier tatsächlich helfen können da hier das Schlüsselwort "Paare" steht.
Irgendwie, aus wahrscheinlich schlechter Angewohnheit, schaue ich immer zuerst im Wiki nach.
Da dort die Probleme mehr erklärt werden. Und in diesem Fall fehlte genau zu event-min-interval die wiki-Seite.
Ab jetzt werde ich mehr möglicht zuerst in der CommandRef nachschauen.
Auch wenn mir die code- bzw. Befehlsdarstellung im wiki viel besser gefällt als in der commandRef.
Verbesserungsvorschlag ?  ;)

Mit den Screenshots der Listings wollte ich keine Board-Etikette verletzen. Sorry !
Ich hab eigentlich genau wegen der Übersichtlichkeit kein Code-Tag verwendet.

Sieht doch Sche.... aus oder ?
DeviceOverview
HM_Mess-Schaltsteckdose_Pwr
187072.2
set HM_32B1AE_Pwr
get HM_32B1AE_Pwr
Internals
DEF
32B1AE02
NAME
HM_32B1AE_Pwr
NOTIFYDEV
global
NR
174
NTFY_ORDER
50-HM_32B1AE_Pwr
STATE
187058.7
TYPE
CUL_HM
chanNo
02
device
HM_32B1AE
Readings
R-averaging
1 s
2016-08-17 21:26:24
R-sign
off
2016-08-17 21:26:24
R-txMinDly
8 s
2016-08-17 21:26:24
R-txThrCur
100 mA
2016-08-17 21:26:24
R-txThrFrq
1 Hz
2016-08-17 21:26:24
R-txThrPwr
100 W
2016-08-17 21:26:24
R-txThrVlt
10 V
2016-08-17 21:26:24
RegL_01.
08:00 7A:01 7B:08 7C:00 7D:27 7E:10 7F:00 80:64 81:00 82:64 83:64 00:00
2017-01-24 21:38:02
boot
off
2017-01-25 18:11:46
current
1679
2017-01-25 18:11:46
eState
E: 187058.7 P: 369.12 I: 1679 U: 236.4 f: 50.02
2017-01-25 18:11:46
energy
187058.7
2017-01-25 18:11:46
energyCalc
209492.5
2017-01-25 18:11:46
energyOffset
22433.8
2016-09-17 20:40:15
frequency
50.02
2017-01-25 18:11:46
power
369.12
2017-01-25 18:11:46
state
187072.2
2017-01-25 18:13:56
voltage
236.4
2017-01-25 18:11:46
attr HM_32B1AE_Pwr
Messen
Attributes
alias
HM_Mess-Schaltsteckdose_Pwr
deleteattr
event-min-interval
state:86400
deleteattr
event-on-update-reading
state
deleteattr
model
HM-ES-PMSw1-Pl
deleteattr
room
Messen
deleteattr

Oder gibt es noch einen Trick die ganze Seite eines Device schön in einen Code-Tag zu packen ?

marvin78

Wie schon geschrieben, ist ein list das, was man benötigt. Wenn man die angepinnten Beiträge gelesen hat, weiß man das auch.

list <name>

und dann das Ergebnis hier in Code-Tags posten. Das ist keine Bord-Etikette, es hilft aber dem Helfer, besser und schneller zu helfen.

t.huber

Aah !

Das Kommando list kannte ich noch nicht.
Danke für die Info !

Also z.B. so:
Internals:
   CHANGED
   DEF        32B1AE02
   NAME       HM_32B1AE_Pwr
   NOTIFYDEV  global
   NR         174
   NTFY_ORDER 50-HM_32B1AE_Pwr
   STATE      187265.1
   TYPE       CUL_HM
   chanNo     02
   device     HM_32B1AE
   Helper:
     Dblog:
       Boot:
         Logdb:
           TIME       1485290732.7691
           VALUE      off
       Current:
         Logdb:
           TIME       1485290732.7691
           VALUE      1435
       Estate:
         Logdb:
           TIME       1485290732.7691
           VALUE      E: 186127.7 P: 302.13 I: 1435 U: 234.3 f: 50.01
       Energy:
         Logdb:
           TIME       1485294511.2753
           VALUE      186513.3
       Energycalc:
         Logdb:
           TIME       1485290732.7691
           VALUE      208561.5
       Frequency:
         Logdb:
           TIME       1485290732.7691
           VALUE      50.01
       Power:
         Logdb:
           TIME       1485291193.76686
           VALUE      366.15
       State:
         Logdb:
           TIME       1485364436.85505
           VALUE      187072.2
       Voltage:
         Logdb:
           TIME       1485290732.7691
           VALUE      234.3
   Readings:
     2016-08-17 21:26:24   R-averaging     1 s
     2016-08-17 21:26:24   R-sign          off
     2016-08-17 21:26:24   R-txMinDly      8 s
     2016-08-17 21:26:24   R-txThrCur      100 mA
     2016-08-17 21:26:24   R-txThrFrq      1 Hz
     2016-08-17 21:26:24   R-txThrPwr      100 W
     2016-08-17 21:26:24   R-txThrVlt      10 V
     2017-01-24 21:38:02   RegL_01.          08:00 7A:01 7B:08 7C:00 7D:27 7E:10  7F:00 80:64 81:00 82:64 83:64 00:00
     2017-01-25 21:04:31   boot            off
     2017-01-25 21:04:31   current         1755
     2017-01-25 21:04:31   eState          E: 187265.1 P: 388.87 I: 1755 U: 238 f: 49.92
     2017-01-25 21:04:31   energy          187265.1
     2017-01-25 21:04:31   energyCalc      209698.9
     2016-09-17 20:40:15   energyOffset    22433.8
     2017-01-25 21:04:31   frequency       49.92
     2017-01-25 21:04:31   power           388.87
     2017-01-25 21:04:31   state           187265.1
     2017-01-25 21:04:31   voltage         238
   Helper:
     getCfgListNo
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
     Shadowreg:
Attributes:
   alias      HM_Mess-Schaltsteckdose_Pwr
   event-min-interval state:86400
   event-on-update-reading state
   model      HM-ES-PMSw1-Pl
   room       Messen

Ellert

Ich möchte an dieser Stelle auf das Modul DOIFtools hinweisen.
Mit DOIFtools kann eine Event-Statistik erzeugt werden, die zeigt welches Gerät wieviele Events pro Stunde erzeugt und ob bereits einschränkende Attribute gesetzt sind.

Mit den Daten der Statistik können Geräte identifiziert werden, deren Events eingeschränkt werden können.

DOIFtools funktioniert auch, wenn DOIF selbst nicht genutzt wird.

https://wiki.fhem.de/wiki/DOIFtools#Erfassen_und_Auswerten_von_Statistikdaten

schachti

Ich wärme diesen alten Thread mal wieder auf, weil die Frage meiner Meinung nach gut hier rein passt und dieser Thread auch im Wiki verlinkt ist.

Wie ist nun der richtige Weg, wenn ich bei einigen Readings einen Treshold für event-on-change-reading definieren will, bei allen anderen nicht? Dies hier
attr Heizung event-on-change-reading .*,boiler_data_wWCurTmp:.3,sm_data_bottomtemp:.3
scheint nicht zu funktionieren, die Events kommen auch bei Änderungen, bei denen der Treshold unterschritten wird. Muss ich in dem Fall alle anderen Readings explizit aufführen?

OdfFhem

".*" gehört wohl ans Ende der kommaseparierten Liste, da die Liste von links nach rechts ausgewertet wird.

schachti

Danke, genau so geht's, und nur so macht es auch Sinn, wenn man drüber nachdenkt.