NEWS
[Vorlage] Variable Zeitsteuerung mit VIS Editor
-
Habe eine neue Version hochgeladen; hier ist eine neue Variable integriert, über die eine zeitversetzte Steuerung möglich ist.
Wie zuletzt immer gehandhabt: Wer diese Funktion nicht benötigt, braucht oben im Variablen-Bereich keine Variablen zu ergänzen.
Beim Testen der neuen Funktion mit dem Versatz ist mir ein Bug aufgefallen:
Wenn mehrere Timer gemerkt werden, werden im Nachgang nicht alle Timer sofort ausgelöst, wenn die Bedingungen nachträglich erfüllt werden. Ich bin noch nicht dahintergekommen welche Umstände dazu führen, aber ich konnte es reproduzieren als ich 4 Timer zur selben Uhrzeit mit nicht-erfüllten Bedingungen in den Hintegrund "geschoben" habe.Bug ist nicht durch die neue Funktion entstanden, muss wohl schon länger so sein, daher habe ich jetzt trotzdem die neue Version hochgeladen
Changelog 17.06.2020 (Skript)
- Steuerung der Geräte mit Versatz möglich. Neue (optionale) Variable "sendWithOffset"
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@micklafisch
Wenn der Rollladen gestartet wird und nicht über ein Befehl mittendrin gestoppt wird und die zuvor gemessene Zeit X (oder Rest von X, falls von mittendrin gestartet) überschritten wird, muss der Rollladen an einer Endposition sein und die berechnete/angezeigte Position wird auf 0 bzw 100 gesetzt. Vorhandene Rechenfehler der Position, werden hiermit eliminiert.Das hört sich in der Tat interessant an. Bisher hatte ich mit den 0 - 50 und 100% Stellungen gelebt, wobei die 50% Stellung bei Somy die fest eingespeicherte "my" Position ist. Alles was dann manuell mitten drin gestoppt wurde wurde in der VIS falsch dargestellt.
Die neue Version mit der Verzögerung werde ich vermutlich am Wochenende testen und dann bereichten wie es läuft.
-
@GiuseppeS
ich habe glaube ich noch einen Fehler gefunden:Ich habe bei den Rollläden die Sortierung der Gruppe über "DropDownDevice" geändert und das Skript danach neu gestartet. Jetzt werden die Rollläden korrekt sortiert angezeigt, wenn ich aber ein einzelnen Rollladen auswähle, dann sind die angezeigten Parameter nicht die des aktuellen Rollladens sondern für den der zuvor in der Liste der DropDownDevice stand.
Ein Video sagt mehr als tausend Worte:
Da ich mich erst jetzt wieder tiefer mit dem Skript beschäftige und auch jetzt erst dadurch die Sortierung der Rollläden angepasst habe, kann ich nicht sagen seit wann der Fehler ist.
-
@micklafisch sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
und das Skript danach neu gestartet.
starte mal dein komplettes System mal neu ... und was ist dann !?
-
@micklafisch
Den Fehler kann ich bei mir nicht reproduzieren. Filtert wie gewünscht...Wie Glasfaser meinte, System mal komplett neu starten. Hatten schon die seltsamsten Probleme.
Ich werde übrigens auch nochmal schauen, ob mein Bug mit System Neustart noch existiert. Daran hatte ich nämlich auch nicht gedacht.Wenn das mit dem Filtern bei dir weiterhin fehlerhaft ist, muss ich mal prüfen ob es mit deinen ":" in den Namen zusammenhängen kann. Sonderzeichen sind selten eine gute Idee
-
@GiuseppeS @Glasfaser
ein Neustart meines ioBroker Containers hat nichts gebracht, der Fehler ist weiterhin. Jetzt habe ich in einem zweiten Skript welches parallel läuft (andere Geräte/Aufzählungen) und auch die Filterung bisher funktionierte einmal die Sortierung in dem entsprechenden DropDownDevice geändert und siehe da ich hab den Fehler auch da. Der Doppelpunkt kommt von der CCU (CUx Device), da ich damals beim Einrichten dem Rat gefolgt bin jedem Geräte-Kanal auch die Kanalnummer im Namen mitzugeben um die Übersicht zu behalten.Ich hab den Namen der Kanäle einmal händisch angepasst und den Doppelpunkt in ioBroker entfernt, das wird aber wieder überschrieben wenn die CCU die Daten synchronisiert.
Komischerweise funktionierte die Filterung im zweiten Enum bisher problemlos, bis ich die Sortierung geändert habe. Als würde das manuelle anpassen der Sortierung etwas an der Schreibweise der Daten ändern
-
@micklafisch
Das war der goldene Hinweis! Habe das Skript zweimal laufen (auch unterschiedliche Geräte), einmal original und einmal umsortiert. Und bei der umsortierten Tabelle habe ich auch den Fehler.
Die Reihenfolge aus dem Dropdown stimmt funktional anscheinend mit der original Reihenfolge der Tabelle überein, auch wenn die Geräte Reihenfolge geändert wurde.
Dieser Fehler kann nicht besonders kompliziert sein, werde ich mir am Wochenende anschauen und korrigieren. -
@GiuseppeS
Puhhh dann bin ich fast schon froh dass ich nicht alleine bin. Dachte schon ich muss alle meine Geräte in der CCU umbenennen und in ioBroker alles anpassenAber gut wenn du den Fehler nun auch nachstellen kannst. Ich warte erstmal mit der Umbenennerei.
Zum testen stehe ich gerne bereit
-
@micklafisch
Selbst wenn das einen Einfluss gehabt hätte, könnte man es sicherlich anders lösen anstatt zig Merkmale umzubenennen. Wenn du bisher keine Nebenwirkungen wegen der Namen hattest, wird es schon ok sein. -
Update ist hochgeladen:
Changelog 20.06.2020 (Skript)
- Bugfix: Bei Tabellen mit modifizierter Reihenfolge funktioniert nun auch die Filterung korrekt!
- State "javascript.0.Timer.AtHomeSimul.TableJSON" gelöscht, wurde schon länger nicht benötigt.
Habe eben auch gesucht, woher der Bug mit den gemerkten Timern herrührt, aber kann noch keine Ursache ausmachen. Muss mich damit weiter beschäftigen...
-
@GiuseppeS
Sortierung funktioniert einwandfrei, sehr geil.Danke!
-
Hallo, bei mir steht immer NULL da?
-
@sigi234
Hmm, dachte, dass es mit der letzten Änderung nicht mehr passiert.
Gib mal im State "javascript.0.Timer.Devices.ErrorMsg" etwas ein und lösche es wieder nach wenigen Sekunden.Muss das nachher testen.
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@sigi234
Hmm, dachte, dass es mit der letzten Änderung nicht mehr passiert.
Gib mal im State "javascript.0.Timer.Devices.ErrorMsg" etwas ein und lösche es wieder nach wenigen Sekunden.Muss das nachher testen.
Geht jetzt.
Frage, sehe ich das Richtig das ich für jede Funktion (var deviceEnum = "enum.functions.blinds";) eine Vis und ein Skript anlegen muss?
-
Hallo, coole Sache....Bin gerade am ausprobieren und habe folgende Meldungen im log, sobad ich auf löschen oder add drücke...
Ansosnten funktionert es soweit bei mir...host.ioBroker-RasPi4 2020-06-29 12:30:00.070 info instance system.adapter.daswetter.0 started with pid 14115 javascript.1 2020-06-29 12:25:09.421 error (21153) at processImmediate (internal/timers.js:456:21) javascript.1 2020-06-29 12:25:09.421 error (21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.1 2020-06-29 12:25:09.420 error (21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.1 2020-06-29 12:25:09.420 error (21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.1 2020-06-29 12:25:09.420 error (21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:834:26) javascript.1 2020-06-29 12:25:09.419 error (21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19) javascript.1 2020-06-29 12:25:09.419 error (21153) at Function.keys (<anonymous>:null:null) javascript.1 2020-06-29 12:25:09.418 error (21153) Error in callback: TypeError: Cannot convert undefined or null to object javascript.1 2020-06-29 12:24:59.005 error (21153) at processImmediate (internal/timers.js:456:21) javascript.1 2020-06-29 12:24:59.004 error (21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.1 2020-06-29 12:24:59.004 error (21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.1 2020-06-29 12:24:59.004 error (21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.1 2020-06-29 12:24:59.003 error (21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:927:22) javascript.1 2020-06-29 12:24:59.003 error (21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19) javascript.1 2020-06-29 12:24:59.002 error (21153) at Function.keys (<anonymous>:null:null) javascript.1 2020-06-29 12:24:59.002 error (21153) Error in callback: TypeError: Cannot convert undefined or null to object javascript.1 2020-06-29 12:24:57.737 error (21153) at processImmediate (internal/timers.js:456:21) javascript.1 2020-06-29 12:24:57.736 error (21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.1 2020-06-29 12:24:57.736 error (21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.1 2020-06-29 12:24:57.735 error (21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.1 2020-06-29 12:24:57.735 error (21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:927:22) javascript.1 2020-06-29 12:24:57.734 error (21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19) javascript.1 2020-06-29 12:24:57.734 error (21153) at Function.keys (<anonymous>:null:null) javascript.1 2020-06-29 12:24:57.733 error (21153) Error in callback: TypeError: Cannot convert undefined or null to object javascript.1 2020-06-29 12:24:56.091 error (21153) at processImmediate (internal/timers.js:456:21) javascript.1 2020-06-29 12:24:56.091 error (21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.1 2020-06-29 12:24:56.090 error (21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.1 2020-06-29 12:24:56.090 error (21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.1 2020-06-29 12:24:56.089 error (21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:927:22) javascript.1 2020-06-29 12:24:56.088 error (21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19) javascript.1 2020-06-29 12:24:56.087 error (21153) at Function.keys (<anonymous>:null:null) javascript.1 2020-06-29 12:24:56.086 error (21153) Error in callback: TypeError: Cannot convert undefined or null to object
-
Error in callback: TypeError: Cannot convert undefined or null to object
https://forum.iobroker.net/topic/23346/vorlage-variable-zeitsteuerung-mit-vis-editor/126
-
@smartboart
Wenn ich es richtig sehe, hast du das Skript mit Javascript Instanz 1 gestartet, oder? Bitte ausschließlich mit Instanz 0 nutzen. Habe es im Skript nicht dynamisch programmiert. Falls der ausdrückliche Wunsch besteht, kann ich es auch dynamisch einrichten. Allerdings würden die Zuordnungen im Editor dann auch nicht mehr passen. -
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Wenn ich es richtig sehe, hast du das Skript mit Javascript Instanz 1 gestartet, oder? Bitte ausschließlich mit Instanz 0 nutzen. Habe es im Skript nicht dynamisch programmiert. Falls der ausdrückliche Wunsch besteht, kann ich es auch dynamisch einrichten. Allerdings würden die Zuordnungen im Editor dann auch nicht mehr passen.
danke für die Antwort...habe das aber alles im script angepasst, damit es auf javascript.1 läuft und die Vis ebenfalls... also alles von javascript.0 auf javascript.1 im script geändert..sollte doch dann gehen oder?
Die Popup Umschaltung habe ich ebenfalls umgeschrieben, da ich meine views mittels State und view in widget umschaltet... Sollte damit alles nix zu tun haben.Korrigiere mich, wenn der Wechsel der Instanz so nicht ohne weiteres möglich ist...
Nachtrag...Hinweis von Glasfaser hats gebracht...
-
@Glasfaser sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Error in callback: TypeError: Cannot convert undefined or null to object
https://forum.iobroker.net/topic/23346/vorlage-variable-zeitsteuerung-mit-vis-editor/126
Danke das wars....
kann man das nicht anders abfangen? -
@smartboart
Ich muss zugeben, dass ich im Gegensatz zu Glasfaser die Problematik (Ursache des Fehlers) nicht verstanden habe.
Kommt dieser Fehler immer wenn die Variable splitHtml auf true gesetzt ist? Nutze diese Funktion selbst gar nicht, hatte es aber bisher nicht als Fehlerhaft in Erinnerung. Wenn ich es reproduzieren kann, werde ich den Fehler aber zügig beheben, kann nicht kompliziert sein.