FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Ralli am 28 Juni 2015, 07:50:01

Titel: HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: Ralli 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.
Titel: Antw:HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: martinp876 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

Titel: Antw:HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: Ralli 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.
Titel: Antw:HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: martinp876 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.
Titel: Antw:HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: Ralli am 28 Juni 2015, 12:45:51
Daumen hoch!
Titel: Antw:HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: frank am 28 Juni 2015, 14:03:47
ZitatDie 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?

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

Zitatattr 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?
Titel: Antw:HMLAN/HMUSB-Loadbyte als Reading?
Beitrag von: martinp876 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%