NEWS
[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 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.
-
@pittini Hast Recht (natürlich). Ist durch das "Update" auf die neue Version wieder auf false gewesen. Ok, also nochmal die Logs nach aktivieren des Logging.
javascript.0 2021-05-24 11:52:19.464 info (27308) script.js.Tools.LightControl_js: Reaching AutoOff_Lux() Lux=172 javascript.0 2021-05-24 11:52:19.464 info (27308) script.js.Tools.LightControl_js: Reaching AutoOn_Lux() Lux=172 javascript.0 2021-05-24 11:52:19.464 info (27308) script.js.Tools.LightControl_js: PresenceCount Dp found, set Presence to 2 javascript.0 2021-05-24 11:52:19.460 info (27308) script.js.Tools.LightControl_js: Group 2 has 1 Motion Sensor Datapoints, with values: javascript.0 2021-05-24 11:52:19.460 info (27308) script.js.Tools.LightControl_js: Group 1 has 1 Motion Sensor Datapoints, with values: javascript.0 2021-05-24 11:52:19.459 info (27308) script.js.Tools.LightControl_js: Group 0 has 1 Motion Sensor Datapoints, with values: javascript.0 2021-05-24 11:52:19.459 info (27308) script.js.Tools.LightControl_js: Reaching Init javascript.0 2021-05-24 11:52:19.459 info (27308) script.js.Tools.LightControl_js: Reaching main javascript.0 2021-05-24 11:52:19.459 info (27308) script.js.Tools.LightControl_js: CreateStates fertig! javascript.0 2021-05-24 11:52:18.312 info (27308) script.js.Tools.LightControl_js: registered 0 subscriptions and 0 schedules javascript.0 2021-05-24 11:52:18.304 info (27308) script.js.Tools.LightControl_js: starting LightControl V.0.1.5 javascript.0 2021-05-24 11:52:18.299 info (27308) Start javascript script.js.Tools.LightControl_js
-
Ich nutze einen Touchscreen an einem Windows PC ohne Maus und Tastatur.
Leider ist die Eingabe der Zeit damit nicht praktikabel.
Es öffnet sich zwar das Dialogfenster, aber eine präzise Zeiteingabe über die Slider ist per Touch nicht möglich.
Hat jemand vielleicht eine Idee, wie ich das Problem lösen kann?Danke im Voraus für eure Ideen.
-
Vielleicht kannste dir die Slider in der Größe ja verändern. Ich nutze das am Handy und kann dort alles ohne Probleme minutengenau einstellen
-
Am Handy geht das bei mir auch ohne Probleme.
Unter Windows funktioniert leider das Slidern nicht, weder mit Chome, Firefox oder Edge.
Ich kann nur wild auf die Leiste tippen und hoffen, dass ich irgendwann mal die richtige Zeit treffe.
Das Vergössen des Popups würde das Treffen vermutlich deutlich erleichtern, aber mit den jqui Widgets stehe ich auf dem Kriegspfad.
Vielleicht kann mir ja jemand einen Tipp geben, wie ich das Popup anpassen kann, oder hat eine Idee zu einem anderen Widget, mit dem ich die Zeit eingeben kann.Nach schon stunden langem Basteln, bin ich ziemlich verzweifelt.
-
@stefande Du kannst dafür auch einfach nen normales Input Widget nehmen, mußt nur sicherstellen dass die Zeit immer im Format HH:MM:SS anzugeben ist, erwartet wird einfach ein String in dieser Form, von welchem Widget das kommt is dem Skript egal.
-
@pittini
Hast du vielleicht eine Idee welches Widget geeignet wäre?
Ich hab schon selber nach einem Widget gesucht, aber die meisten sind erstmal Böhmisch Dörfer für mich. -
@stefande jqui-input
-
Ich hab mich jetzt mal ein bisschen mit dem jqui-input Widget beschäftigt.
Da mir nach wie vor eine Tastatur fehlt, hab ich es mal mit der Widget Virtueller Tastatur versucht.
Hier ist die Eingabe extrem umständlich, da man zur Eingabe des Doppelpunkts immer das Layout umschalten muss. Man kann in dem Widget auch ein Keypad auswählen, aber damit hab ich überhaupt keine Möglichkeit den Doppelpunkt einzugeben.Hast du dazu vielleicht noch eine Idee?
-
@stefande sagte in [Vorlage] Flexibles Timerskript + Vis:
Hast du dazu vielleicht noch eine Idee?
Nein.