NEWS
[gelöst] Gelegentlich Fehler bei Homematic
-
@grrfield Erster Versuch ist gestartet:
19:57:39.036 error script.js.common.Rollladen.RollControl: setHMStateSec hm-rpc.0.LEQ1439759.1.LEVEL no success after trial 5 javascript.2 2022-03-26 19:57:37.036 warn script.js.common.Rollladen.RollControl: setHMStateSec hm-rpc.0.LEQ1439759.1.LEVEL trial 5 javascript.2 2022-03-26 19:57:35.036 warn script.js.common.Rollladen.RollControl: setHMStateSec hm-rpc.0.LEQ1439759.1.LEVEL trial 4 javascript.2 2022-03-26 19:57:33.035 warn script.js.common.Rollladen.RollControl: setHMStateSec hm-rpc.0.LEQ1439759.1.LEVEL trial 3 javascript.2 2022-03-26 19:57:31.035 warn script.js.common.Rollladen.RollControl: setHMStateSec hm-rpc.0.LEQ1439759.1.LEVEL trial 2 javascript.2 2022-03-26 19:57:29.025 warn script.js.common.Rollladen.RollControl: (f) setScheduler (6) wurde gesetzt auf (29 57 19 * * *)
Muss noch die Zeiten anpassen
-
@grrfield Die Änderung mit deinem Script hat nichts verschlimmbessert. Wenn ich die Funktionsweise des Scripts richtig verstanden habe, wird das setState grundsätzlich verzögert ans Device gegeben. Somit wird der Logeintrag aus " 'setHMStateSec '+HM_id+' Success.' " wohl nie zu sehen sein.
BTW: Da dieser Fehler überwiegend bei meinen Rollladen auftritt und es da besonders ärgerlich ist, habe ich die Funktion in mein Rollladenscript eingebaut so dass es (@Homoran) nicht im global liegen muss. Ich werd dann weiter beobachten, ob es noch Seiteneffekte gibt, wenn mehrere Rollladen zeitlich recht zusammenliegend gefahren werden (i, _HMacksiID) . -
@homoran Ja das paßt - wenn Du die Funktion unter global speicherst, kannst Du sie aus jedem Skript heraus aufrufen und damit kritische HM-Devices ansteuern. Genau dafür ist global ja da - Funktionen, die ich in jedem Skript benötige, zu speichern.
-
@rene55 Nein, der State wird in Zeile 22 sofort gesetzt. Dann wird in der setInterval-Schleife mit Verzögerung nachgeschaut, ob es geklappt hat. Wenn ja, wird 'Success.' ausgegeben, wenn nein, wird es wieder versucht. Du solltest also das 'Success' zu sehen bekommen. Vielleicht erstmal mit einem normalen Schalter versuchen.
Bei den Rolläden hast Du das gleich Problem wie bei der Heizungssteuerung. Die Rollos melden während der Fahrt mehrmals ihren Status - HM_ackwait muß daher größer gewählt werden als die Rollolaufzeit. -
@grrfield Tatsache, hatte ich übersehen. Klar, die Rollladen brauchen eine Weile, bis die ihre Position erreicht haben. Frage an den Fachmann: gibt es hier Beeinflussung, wenn zwei Rollläden gleichzeitig gefahren werden bezüglich i und _HMacksiID?
-
@rene55 Da sollte es keine Beeinflussung geben, da die Variablen ja nur innerhalb der aktuellen Funktion gelten. Zwei Rollos gleichzeitig zu fahren ist aber problematisch, da die beiden sich gegenseitig stören, wenn sie ihre Position ständig übermitteln. Besser ist es da, eine Direktverknüpfung mit einem virtuellen CCU-Kanal anzulegen und diesen anzusprechen:
Das funktioniert eigentlich recht zuverlässig. -
@grrfield Ah, ok. Dass dann der Funkkanal stark belegt ist, ist schon klar. Kommt auch eigentlich nicht vor, da ich alle Rollladenaktoren etwas zeitversetzt fahre (außer bei einer morgens - hier ist ein großes Fenster mit geteilten Rollladen). Zu dem Hinweis mit den Direktverknüpfungen - davon habe ich gar keine Ahnung. Ich hab mich darauf versteift, alles im ioBroker zu machen. Somit hab ich die RaspberryMatic eigentlich nur zum funken. Ich schau es mir trotzdem mal näher an.
-
@rene55 Der Vorteil ist auch, daß alle Rollos wirklich gleichzeitig und nicht nacheinander hoch- und runtergehen - sieht einfach besser aus!
-
@grrfield Meinst Du grundsätzlich oder speziell bei einem Fenster? Ich persönlich finde es natürlicher, wenn in den verschiedenen Zimmern die Rollläden zu verschiedenen Zeiten rauf und runter gehen. Sieht dann nach außen auch nicht so vollautomatisiert aus. Dein Script läuft jetzt zur Probe und ich warte auf den nächsten "Gelegentlich-Fall". Daher erstmal als gelöst markiert.
-
@rene55 Ich meinte alle Rollos, die in der Direktverknüpfung sind. Ich persönlich finde es schöner, wenn alle (zumindest in einem Raum) geleichzeitig arbeiten - ist aber Geschmackssache.