NEWS
[Vorlage] Flexibles Timerskript + Vis
-
@dominik-f Grundsätzlich nachvollziehbar. Nur hab ich grad keinerlei Ideen wie umsetzen.
-
Nur mal so leienhaft dahergedacht:
Man könnte in einem Array die Ordnernamen im Skript festlegen. Wenn man dann einen Timer erstellt, dann könnte man in Vis dem Timer ja den Ordnernamen zuweisen.Wenn jetzt für jeden Ordner eine eigene Tabelle erstellt werden würde, könnte man mitttels Dropdown Menü den Ordner auswählen und somit die Tabelle die man haben möchte anzeigen lassen ähnlich wie bei den Profilen in deiner Heatingcontrol Vis
-
Kann ich eigentlich irgendwie die Ansage von alexa und Nachricht über Telegram ändern.
Derzeit sagt er Timer 1, Deckenlicht, send value 100 as number. -
@fuxxz2 sagte in [Vorlage] Flexibles Timerskript + Vis:
Kann ich eigentlich irgendwie die Ansage von alexa und Nachricht über Telegram ändern.
Derzeit sagt er Timer 1, Deckenlicht, send value 100 as number.Zeile 664-720 stehen die Texte verteilt. Der Text der Dir nicht gefällt kommt von 720, kannste dort ändern, mußt aber nach jedem update erneut ändern.
-
@pittini N'Abend, ich habe kürzlich einen Shelly 25 als Doppelschalter integriert und wollte den über das Timerscript steuern. Leider haben beide Relais in der Deviceliste den gleichen Namen. Da fällt die richtige Auswahl schon schwer. Gibt es dafür eine Lösung?
-
Dann benenne sie dir doch um in der Vis. Die Funktion dafür ist ja vorhanden.
-
@dominik-f Hi Dominik, könntest du mir bitte vielleicht das View fürs Handy auch mal zukommen lassen ? Falls du es noch hast wäre mega Cool , danke..
-
https://forum.iobroker.net/topic/33228/vorlage-flexibles-timerskript-vis/343?_=1615543076072
Die Zip Datei ist ca. 10 Posts über deinem.
-
Hallo mal eine Frage,
seit meinen Updates Node-js, js-controler und js zeigt die vis nur noch einen farbigen Balken an, auch wenn mehrere States geschaltet haben. Hat das auch schon jemand bemerkt, oder ist das nur bei mir so? Habe das Skript auch aktualisiert.
Gruß
Holger -
Mal noch eine blöde Frage:
ich bekomme dauern willkürliche Schaltvorgänge.
javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: Device shelly.0.SHSW-25#8CAAB5556B27#1.Relay1.Switch switched from outside, setting TargetDeviceTimer 4 to idle javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: Device shelly.0.SHSW-25#8CAAB5556B27#1.Relay1.Switch switched from outside, setting TargetDeviceTimer 3 to idle javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: Reaching SetLockStates() TriggerIndex=1 SwitchingTimerIndex=-1 javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: TargetSwitchingInProgress=false javascript.0 2021-03-26 15:31:30.149 info (3078722) script.js.System.Zeitsteuerung_2_1_9: MyTimer[1][(Dps.length + 0)]=idle javascript.0 2021-03-26 15:31:30.149 info (3078722) script.js.System.Zeitsteuerung_2_1_9: TargetDevice shelly.0.SHSW-25#8CAAB5556B27#1.Relay1.Switch state changed to false, refreshing table
Das ist so einer. Habe um 15:31 keine Schaltung des Shelly´s im System
Bedeutet diese Meldung wirklich das der Shelly von extern, also nicht über das Skript geschaltet wird?Gruß
Holger -
@holger-etzel sagte in [Vorlage] Flexibles Timerskript + Vis:
Bedeutet diese Meldung wirklich das der Shelly von extern, also nicht über das Skript geschaltet wird?
Da mir kein Problem diesbezüglich bekannt ist, sag ich mal ja..
-
@holger-etzel said in [Vorlage] Flexibles Timerskript + Vis:
Mal noch eine blöde Frage:
ich bekomme dauern willkürliche Schaltvorgänge.
javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: Device shelly.0.SHSW-25#8CAAB5556B27#1.Relay1.Switch switched from outside, setting TargetDeviceTimer 4 to idle javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: Device shelly.0.SHSW-25#8CAAB5556B27#1.Relay1.Switch switched from outside, setting TargetDeviceTimer 3 to idle javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: Reaching SetLockStates() TriggerIndex=1 SwitchingTimerIndex=-1 javascript.0 2021-03-26 15:31:30.150 info (3078722) script.js.System.Zeitsteuerung_2_1_9: TargetSwitchingInProgress=false javascript.0 2021-03-26 15:31:30.149 info (3078722) script.js.System.Zeitsteuerung_2_1_9: MyTimer[1][(Dps.length + 0)]=idle javascript.0 2021-03-26 15:31:30.149 info (3078722) script.js.System.Zeitsteuerung_2_1_9: TargetDevice shelly.0.SHSW-25#8CAAB5556B27#1.Relay1.Switch state changed to false, refreshing table
Das ist so einer. Habe um 15:31 keine Schaltung des Shelly´s im System
Bedeutet diese Meldung wirklich das der Shelly von extern, also nicht über das Skript geschaltet wird?Gruß
Holger@Holger-Etzel Ist dein Smarthome von Extern erreichbar? Ggfs. Ports in der Fritzbox für externe Zugriffe freigegeben?
-
Mir ist da gerade etwas aufgefallen, ich wollte mir die Zeiten einzelner Timer noch zusätzlich anzeigen lassen, damit meine Frau gewisse Zeiten einfacher sehen kann.
Der eingestellte Timer in der Vis ist Nr. 9, in den Objekten ist es jedoch Timer 8. Ich finde das etwas verwirrend. Wäre es möglich die laufenden Nummern der Timer anzugleichen? In der Vis fangen sie bei 1 an, in den Objekten bei 0.
-
@dominik-f Ja, das ist so beabsichtigt und werd ich auch nicht ändern. Intern verwende ich die "normale" Zählweise welche von 0 beginnt. Um die User nicht zu verwirren (hat ja nich jeder DV Hintergrund) wird ab 1 gezählt und dargestellt.
-
Hallo in die Runde,
ich versuche das Timer Skript für das ebenfalls im Einstz befindliche LightControl Skript zu verwenden. Hierbei habe ich folgendes Problem.
Wenn ich das TimerSkript mit einem TimerTarget eines true/false DP von einem LED Strahler oder ähnlichem verwende klappt alles prima.
Sobald ich jedoch als TimerTarget einen LightControl DP wie bspw. "javascript.0.LightControl.1.Power" verwende startet das Skript, läuft jedochauf einen Fehler und in der VIS kann ich kein Target auswählen.Im Log steht Folgendes.
2021-05-21 13:33:02.444 - info: javascript.0 (30567) Start javascript script.js.Tools.Timerscript 2021-05-21 13:33:02.449 - info: javascript.0 (30567) script.js.Tools.Timerscript: Starting TimerSkript V2.1.10 2021-05-21 13:33:02.453 - info: javascript.0 (30567) script.js.Tools.Timerscript: registered 0 subscriptions and 0 schedules 2021-05-21 13:33:02.462 - info: javascript.0 (30567) script.js.Tools.Timerscript: Initial CreateStates finished! 2021-05-21 13:33:02.463 - info: javascript.0 (30567) script.js.Tools.Timerscript: Reaching Main 2021-05-21 13:33:02.463 - info: javascript.0 (30567) script.js.Tools.Timerscript: Reaching Init() 2021-05-21 13:33:02.463 - info: javascript.0 (30567) script.js.Tools.Timerscript: GetParentId(Targets[y])=javascript.0.LightControl.1 2021-05-21 13:33:02.464 - warn: javascript.0 (30567) Object "javascript.0.LightControl.1" does not exist 2021-05-21 13:33:02.465 - error: javascript.0 (30567) Error in callback: TypeError: Cannot read property 'common' of null 2021-05-21 13:33:02.466 - error: javascript.0 (30567) at init (script.js.Tools.Timerscript:436:86) 2021-05-21 13:33:02.466 - error: javascript.0 (30567) at main (script.js.Tools.Timerscript:460:5) 2021-05-21 13:33:02.466 - error: javascript.0 (30567) at Object. (script.js.Tools.Timerscript:211:17) 2021-05-21 13:33:02.466 - error: javascript.0 (30567) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1976:38) 2021-05-21 13:33:02.466 - error: javascript.0 (30567) at processImmediate (internal/timers.js:463:21)
Irgendetwas mache ich wie es aussieht falsch. Hat hierzu jemand eine mögliche Lösung?
Freundliche Grüße
Marco -
@captainbalou Hmm, ja, nachvollziehbar, sollte aber nicht sein. Zeig mal nen Screenshot vom Objektbaum vom aufgeklappten Lightcontrol.1 inkl. der 3 Symbole ganz rechts. Ich hab da nen Verdacht. Und bitte schau mal in den Einstellungen vom JS Adapter ob da setObject erlaubt ist.
-
-
@captainbalou Ok, mein Verdacht ist damit bestätigt, bei Dir sinds keine Channels. Die erstellt das Skript aber an sich selbsständig beim anlegen der DPs, das sieht eigentlich so aus:
Die beste Variante wär mal den ganzen Baum zu löschen, der wird beim nächsten Skriptstart dann neu angelegt, hoffentlich mit den richtigen channels. Aber wenn nicht sollte was im Log stehen.
Der zweite Weg, wär im nachhinein channels draus zu machen, das geht mit nem Einzeiler pro Channel. Also neues Skript anlegen, das hier reinschreiben, ggfs. Natürlich Namen und Id anpassen, einmal starten und dann kann man das Einzeiler-Skript wieder stoppen und löschen.setObject("javascript.0.LightControl.1", { type: 'channel', common: { name: "Der jeweilige Raumname" }, native: {} });
-
@pittini Ich habe den LightControl Baum gelöscht und das Skript neu gestartet Es wurde alles wieder angelegt. Allerdings auch nicht als Channel - wie zuvor. Im Log steht nichts was auf ein Problem schließen lassen könnte. Ich habe den Javascript Adapter auf Debug gestellt und sehe diese Meldungen.
javascript.0 2021-05-23 23:48:53.176 info (25003) script.js.Tools.LightControl_js: PresenceCount Dp found, set Presence to 2 javascript.0 2021-05-23 23:48:51.573 info (25003) script.js.Tools.LightControl_js: registered 0 subscriptions and 0 schedules javascript.0 2021-05-23 23:48:51.562 info (25003) script.js.Tools.LightControl_js: starting LightControl V.0.1.5 javascript.0 2021-05-23 23:48:51.531 info (25003) Start javascript script.js.Tools.LightControl_js
Ich habe exemplarisch drei Räume mit deinem Einzeiler modifiziert. Hat funktioniert.
Ganz wie in deinem Screenshot sieht es nicht aus, da die Unterordner keine Channels sind, aber ich denke der Funktion tut das aktuell nichts ab.
Bekomme ich irgendwie heraus weshalb das nicht angelegt wird wie es soll ohne den Javascript Code manuell durchzuforsten?
Grüße
Marco -
@captainbalou sagte in [Vorlage] Flexibles Timerskript + Vis:
Im Log steht nichts was auf ein Problem schließen lassen könnte.
Naja, ich vermute mal Du hast im Skript logging auf false, dann wird das nix. Debug am JS Adapter einzustellen bringt 0.