NEWS
[solved] HM: Abfragen von Datenpunkt generiert Duty Cycle?
-
Hallo,
Frage an die Experten:
Habe eigentlich in der Absicht unnötige Kommandos und damit DC auf der HM CCU zu vermeiden, den aktuellen Aktorzustand in den ioBroker Objekten per Skript abgefragt.
Wollte nur dann ein Zustandstandsignal an dden Datenpunkt übergeben, wenn das tatsächlich zu einer Änderung geführt hätte.
Dazu also den Datenpunktunkt abgefragt und verglichen.
Aber durch diese Abfrage des Datenpunkts in den ioBroker Objekten scheint sich der DC auf der CCU drastisch zu erhöhen.Wie ist das zu erklären? Ich dachte so ein getState sei ein lesender Zugriff? Offensichtlich habe ich das Zusammenspiel zwischen ioBroker und HM nicht verstanden.
Habe jetzt im Skript eine Varibla angelegt, die abfrage. Diese Variable wird geändert, wenn sich das subscribierte HM-Objekt ändert. Jetzt ist der DC wieder normal.
Thema also gelöst, aber nicht wirklich verstanden. -
@klassisch sagte: Ich dachte so ein getState sei ein lesender Zugriff?
Ja, und sogar nur auf den Puffer der Javascript-Instanz. Der HM-RPC-Adapter bekommt den Zugriff nicht mit - erst recht nicht die CCU.
-
@paul53 Danke!
Das dachte ich auch.
Passt aber nicht zu meinem DC.Jetzt habe ich das nochmals recherchiert und das alte Script aus dem Backup geholt und nochmals genauer nachgeschaut und einen Fehler gefunden:
Da stand
if(intendedState != getState(windowsAdviserId)){
wo hätte stehen sollen
if(intendedState != getState(windowsAdviserId).val){
Der hat also nicht den Datenpunkt geholt, sondern das ganze Objekt. damit ist wohl die Ungleichheit im if statement immer gegeben und der Aktor wird immer angesteuert. Die "Sparschaltung" war also fehlerhaft.
"User did err" hätte die alte Univac gesagt.
Danke für Deine Mühe.