Autor Thema: HMLAN/HMUSB-Loadbyte als Reading?  (Gelesen 4310 mal)

Offline Ralli

  • Sr. Member
  • ****
  • Beiträge: 804
HMLAN/HMUSB-Loadbyte als Reading?
« am: 28 Juni 2015, 07:50:01 »
Hallo Martin,

wäre es nicht sinnvoll, das Loadbyte, was sich jetzt in dem Internal msgLoadCurrent wiederfindet, eher als Reading zu implementieren?

1) es ist tatsächlich Gerätespezifisch und wird vom Gerät belegt - wie Registerwerte von Devices
2) es wäre einfacher, auf ein solches Reading auf Grund des Event-Handlers ein Notify, Watchdog oder DOIF zu setzen

Momentan löse ich die Ausgabe einer Warnung vor Overload mit einem DOIF, welches alle fünf Minuten getriggert wird, denn die Internals lösen ja keine Events aus.
Gruß,
Ralli

Intel NUC7i5BNH mit ESXi 7.0, virtualisiertes fhem 6.0 dev, virtualisierte RaspberryMatic (3.51.6.20200621) mit 2x HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.12), FBDECT

Offline martinp876

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 10782
Antw:HMLAN/HMUSB-Loadbyte als Reading?
« Antwort #1 am: 28 Juni 2015, 10:11:35 »
schon richtig. Es gibt aber dann viele Notify. Das kostet unnötig CPU.
Wie wäre es mit einstellbaren Level? Ein Attribut? Full Flexible wäre

attr hmlan loadLevel 40:batchLimit,60:intermediate,80:high,99:suspended

Das wäre der Default. Der User kann mit diesem Attribut die Level und deren Namen einstellen.
Das sind dann (fast) nur die Anzeigewerte. 80 und 100 (besser 99) sind fix durch das HMLAN gesetzt.

batchLimit werde ich immer einfügen, wenn es der User nicht setzt. Es ersetzt dann hmMsgLowLimit. Ist der Wert kleiner wird batch (hintergrund) messaging erlaubt. Das sind die autoReadReg Aktionen.
Der User kann den Wert ändern, aber nicht ausblenden.

Möglich sind z.B.

attr hmlan loadLevel 10:l10,20:l20,30:l30,40:batchLimit,60:intermediate,80:high,99:suspended
attr hmlan loadLevel 80:batchLimit,0:low,60:intermediate,80:high,99:suspended


Offline Ralli

  • Sr. Member
  • ****
  • Beiträge: 804
Antw:HMLAN/HMUSB-Loadbyte als Reading?
« Antwort #2 am: 28 Juni 2015, 11:53:46 »
Das ist ein gangbarer Weg - vor allem dann, wenn die Anzahl der Wertepaare ebenfalls flexibel ist.

Ich könnte also

attr hmlan loadLevel 10:10,20:20,30:30,40:batchLimit,50:50,60:intermediate,70:70,80:high,90:critical,99:suspended

oder nur

attr hmlan loadLevel 30:info,40:batchLimit,60:warn,80:high,99:suspended

setzen.

Und im Reading loadLevel würde dann die per attr definierten Werte gesetzt und Events auslösen.
Gruß,
Ralli

Intel NUC7i5BNH mit ESXi 7.0, virtualisiertes fhem 6.0 dev, virtualisierte RaspberryMatic (3.51.6.20200621) mit 2x HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.12), FBDECT

Offline martinp876

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 10782
Antw:HMLAN/HMUSB-Loadbyte als Reading?
« Antwort #3 am: 28 Juni 2015, 12:38:07 »
So die idee. Mit eventonchange werden unnoetige notify unterdeueckt.
Die messageload fuer batch waere integriert, das attribut wuerde mittelfristig verschwinden.
Wenn du nur einige level brauchst kannst du diese einstellen.
Der aktuelle wert wird dann immernoch im internal angezeigt. Dort erzeugt er keine trigger und kann abgefragt werden.

Offline Ralli

  • Sr. Member
  • ****
  • Beiträge: 804
Antw:HMLAN/HMUSB-Loadbyte als Reading?
« Antwort #4 am: 28 Juni 2015, 12:45:51 »
Daumen hoch!
Gruß,
Ralli

Intel NUC7i5BNH mit ESXi 7.0, virtualisiertes fhem 6.0 dev, virtualisierte RaspberryMatic (3.51.6.20200621) mit 2x HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.12), FBDECT

Online frank

  • Hero Member
  • *****
  • Beiträge: 8661
Antw:HMLAN/HMUSB-Loadbyte als Reading?
« Antwort #5 am: 28 Juni 2015, 14:03:47 »
Zitat
Die messageload fuer batch waere integriert, das attribut wuerde mittelfristig verschwinden.
du meinst, dass das attr msgLowLimit verschwindet?

dieses kann dann also durch "batchLimit" im attr messageLoad gesetzt werden? wenn das zauberwort batchLimit hier nicht auftaucht ist also batchLimit=40=default?

Zitat
80 und 100 (besser 99) sind fix durch das HMLAN gesetzt.
highload ist 90.

Zitat
attr hmlan loadLevel 40:batchLimit,60:intermediate,80:high,99:suspended

Das wäre der Default.
diese permanenten vergleiche sind dann also performanter, als einfach nur den aktuellen wert in ein reading zu stecken, dass eventuell default über attribut ausgeschaltet ist?
FHEM: 6.0(SVN) => Pi3(stretch)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [hm.js]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline martinp876

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 10782
Antw:HMLAN/HMUSB-Loadbyte als Reading?
« Antwort #6 am: 28 Juni 2015, 17:23:44 »
ja, batchLimit sollte so funktionieren.
msgLowLimit wird übernommen, wenn es jetzt schon gesetzt ist - für die Übergangzeit.

hm - was ist performanter... jedes Reading was abgesetzt wird, wird durch die Notify-suche gejagt. Hat man keine Notify ist es wenig. Könnte aber auch anders aussehen...
wenn man entsprechend wenig Werte vorgibt sollte es  auch wenig Änderungen geben und event-on-change-reading gute Arbeit leisten. Ausserdem sind nur die Werte aktiv, die der User nutzen will.
Ich denke schon, dass es i.a. deutlich spart.

ja, highload ist 90%

 

decade-submarginal