NEWS
[Vorlage] Flexibles Timerskript + Vis
-
@Freaknet sagte in [Vorlage] Flexibles Timerskript + Vis:
Vielleicht kannst Du mal über die Log drüberschaun und sagen woran es liegen könnte.
Ich vermute am UserData Channel. Bleib mal beim javascript Channel.
-
Werd ich versuchen!
Kann es sein das es auch evtl. an den Datenpunkten selbst liegen kann?
Hab alle Datenpunkte für TimerTarget aus dem Alias.0 genommen und nicht direkt die aus dem Adapter (z.B. Hue, Shelly oder Sonoff).Nachtrag:
Jetzt läuft das Script Bin auf den javascript gewechselt und jetzt kommen keine Fehler mehr. Nur das mit Alias.0 klappt wohl nicht mit dem Namen. Hab im Bild mal markiert was ich meine. Bei Alias.0 Datenpunkten kommt der Name nicht in der Vis, bei den anderen schon. Kann man da noch was optimieren? -
Scheint stabil zu laufen jetzt!
Danke Pittini für die schnelle Hilfe .
Muss jetzt nur noch meine alias.0 Datenpunkte dazu bringen den Namen in der Vis angezeigt zu bekommen, da ich eigentlich nur mit alias arbeite...
Denke aber da muss im Script was geändert werden, oder?
Vielleicht weiß Du da was oder hast einen Rat -
@Freaknet sagte in [Vorlage] Flexibles Timerskript + Vis:
Hab im Bild mal markiert was ich meine. Bei Alias.0 Datenpunkten kommt der Name nicht in der Vis, bei den anderen schon. Kann man da noch was optimieren?
Seh da eigentlich grad keinen Grund warum die Namen da nicht kommen. Schau ich mir mal an.
-
Also grad nochmal paar Datenpunkte aus dem alias.0 Ordner eingefügt (Screen).
Immer das selbe Problem... die Namen werden in der Vis nicht angezeigt und nur (Objekt Objekt) (siehe Foto) angezeigt. Wenn es nichts hilft muss ich wohl die Datenpunkte aus den Adaptern nehmen, da funktioniert das sehr gut!Also das Schaltziel wird richtig angezeigt... nur der Zielname wird nicht übernommen.
-
Hi nochmal,
also das Problem konnte ich jetzt lösen.
Das Problem lag an den Namen der alias.0 Ordner.
Die ID und der Name des Objekt´s müssen sich unterscheiden, dann wird auch in der Vis alles korrekt angezeigt. Siehe Beispiel:Vorher:
Nachher:
Vielleicht hilft das jemanden ja weiter
-
@Freaknet sagte in [Vorlage] Flexibles Timerskript + Vis:
Vielleicht hilft das jemanden ja weiter
Netter workaround bei dem ich grad nicht weis warums funktioniert. Das eigentliche Problem ist in der 2.1.6 behoben, sollte jetzt auch im Aliasordner klappen.
-
Vielen Dank für die schnelle Umsetzung mit Version 2.1.6. Schaut perfekt aus
Jetzt hätte ich nur noch ein Anliegen oder eine Frage.
Ist es möglich, im Script den richtigen Zielname hinter dem Schaltziel schreiben zu lassen?Es geht um folgendes z.B.
Ich habe 2 Datenpunkte in einem Ordner mit "TimerTarget" hinterlegt.
alias.0.Licht.Nachtlicht_OG.ON (An/Aus)
alias.0.Licht.Nachtlicht_OG.BRIGHTNESS (Helligkeit 0-100)Wenn ich nun in der VIS sowohl ON als auch BRIGHTNESS verwenden will steht jeweils immer Nachtlicht OG in der Auswahlliste. Somit kann man nicht direkt erkennen ob es der ON oder der BRIGHTNESS Datenpunkt ist. Erst nach dem Speichern sehe ich dann im Schaltziel, ob ich den richtigen Datenpunkt erwischt habe.
Vielleicht kann man das ja noch einbauen, das der direkte Name des Datenpunkt angezeigt wird. Falls nicht gewünscht oder möglich ist es auch nicht schlimm. Würde es aber erleichtern den richtigen Datenpunkt auszuwählen.
Schonmal Danke und noch einen schönen Sonntag!
-
@Freaknet sagte in [Vorlage] Flexibles Timerskript + Vis:
Vielleicht kann man das ja noch einbauen, das der direkte Name des Datenpunkt angezeigt wird. Falls nicht gewünscht oder möglich ist es auch nicht schlimm. Würde es aber erleichtern den richtigen Datenpunkt auszuwählen.
Das kann man nicht global machen, da würden andere (mich eingeschlossen) ein Problem kriegen, die hätten dann in der Liste z.B. x mal "power" stehen. Was noch unübersichtlicher wäre. Verstehe aber auch Dein anleigen und hab Dir das mal schnell als Option in die 2.1.7 gepackt. Zeile 10 auf false stellen, dann sollte es so sein wie Du wolltest.
-
@Pittini said in [Vorlage] Flexibles Timerskript + Vis:
Das kann man nicht global machen, da würden andere (mich eingeschlossen) ein Problem kriegen, die hätten dann in der Liste z.B. x mal "power" stehen. Was noch unübersichtlicher wäre. Verstehe aber auch Dein anleigen und hab Dir das mal schnell als Option in die 2.1.7 gepackt. Zeile 10 auf false stellen, dann sollte es so sein wie Du wolltest.
Das war's
Vielen lieben Dank für die schnelle Umsetzung!!Nachtag:
Jetzt kommt folgende Error-Meldung noch bei mir:javascript.0 2020-07-26 18:12:22.860 error (2508) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-07-26 18:12:22.859 error (2508) at processImmediate (internal/timers.js:456:21) javascript.0 2020-07-26 18:12:22.859 error (2508) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-07-26 18:12:22.859 error (2508) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-07-26 18:12:22.859 error (2508) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-07-26 18:12:22.859 error (2508) at Object.<anonymous> (script.js.Meine_Scripte.Timersteuerung:1107:130) javascript.0 2020-07-26 18:12:22.858 error (2508) at DetermineNextActiveAstroDay (script.js.Meine_Scripte.Timersteuerung:520:32) javascript.0 2020-07-26 18:12:22.858 error (2508) at CheckTodayAstroIsOver (script.js.Meine_Scripte.Timersteuerung:631:15) javascript.0 2020-07-26 18:12:22.857 error (2508) Error in callback: TypeError: Cannot read property 'setMinutes' of undefined javascript.0 2020-07-26 18:12:22.848 error (2508) Cannot get astro date for "time"
-
@Freaknet sagte in [Vorlage] Flexibles Timerskript + Vis:
Jetzt kommt folgende Error-Meldung noch bei mir:
Kommt noch oder erst seit der Änderung? Aus sonem Schnipsel kann ich auch nix erkennen btw., bitte komplettes Startlog.
-
Keine Daten und Fehler nach Seitenaktualisierung im Webbrowser. Chrome auf dem PC und Fully Kiosk auf dem Tablet.
Hallo, ich habe ein Problem mit dem Skript. Beim Anlegen wie das auch in Github beschrieben, läuft das Script. Aber sobald ich die VIS Seite in dem Webbrowser aktualisiere, habe ich keine Daten mehr stehen. Auch die angelegten Datenpunkte sind nicht sichtbar. Wenn ich etwas anlegen will, steht da als Punkt "undefined" Wenn ich dies als Punkt setze kommen sehe ich die angelegten Datenpunkte wieder. Aber diese kann ich nicht ändern. Dann fängt das mit den Fehlermeldungen an. Auch wird das Pausenzeichen des Skriptes gelb. Auch ein Löschen der Datenpunkte unter Javascript und Neustarten des Skriptes löst mein Problem nicht. Ich muss also immer nach aktualisieren des Browsers das Script neu starten...
Beim Ausführen bekomme ich dann eine Warnung siehe letztes Bild.
Hat da jemand eventuell ein Tipp für mich ? Leider sind meine Java Kenntnisse gegen null.
Danke Gruß André
-
@Pittini said in [Vorlage] Flexibles Timerskript + Vis:
Kommt noch oder erst seit der Änderung?
Scheint das es jetzt nicht mehr kommt wenn ich das Script neu starte.
Scheint erstmal gelöst zu sein Warum??
Teste mal weiter.
Danke! -
Guten Abend,
habe gerade von v2.1.5 auf v2.1.7 gewechselt und bekomme folgende Fehlermeldung:
21:17:31.700 info javascript.0 (28046) Stop script script.js.Olli.Timer 21:17:31.771 info javascript.0 (28046) Start javascript script.js.Olli.Timer 21:17:31.785 info javascript.0 (28046) script.js.Olli.Timer: Starting TimerSkript V2.1.7 21:17:31.790 info javascript.0 (28046) script.js.Olli.Timer: registered 0 subscriptions and 0 schedules 21:17:31.843 info javascript.0 (28046) script.js.Olli.Timer: Initial CreateStates finished! 21:17:31.843 info javascript.0 (28046) script.js.Olli.Timer: Reaching Main 21:17:31.843 info javascript.0 (28046) script.js.Olli.Timer: Reaching Init() 21:17:31.844 info javascript.0 (28046) script.js.Olli.Timer: GetParentId(Targets[y])=sonoff.0.Sonoff_1 21:17:31.844 info javascript.0 (28046) script.js.Olli.Timer: GetParentId(Targets[y])=sonoff.0.Sonoff_2 21:17:31.845 info javascript.0 (28046) script.js.Olli.Timer: GetParentId(Targets[y])=shelly.0.SHSW-1#8CAAB505CF4B#1 21:17:31.845 info javascript.0 (28046) script.js.Olli.Timer: GetParentId(Targets[y])=shelly.0.SHSW-1#8CAAB505D4BC#1 21:17:31.845 info javascript.0 (28046) script.js.Olli.Timer: GetParentId(Targets[y])=deconz.0.Lights.2 21:17:31.846 info javascript.0 (28046) script.js.Olli.Timer: GetParentId(Targets[y])=deconz.0.Lights.3 21:17:31.846 info javascript.0 (28046) script.js.Olli.Timer: 6 Targets found - Targets are: sonoff.0.Sonoff_1.POWER,sonoff.0.Sonoff_2.POWER,shelly.0.SHSW-1#8CAAB505CF4B#1.Relay0.Switch,shelly.0.SHSW-1#8CAAB505D4BC#1.Relay0.Switch,deconz.0.Lights.2.on,deconz.0.Lights.3.on 21:17:31.846 info javascript.0 (28046) script.js.Olli.Timer: Names are: Sonoff_1,Sonoff_2,Shelly 1,Shelly 2,Mi Smart Plug 1,Mi Smart plug 2 21:17:31.849 info javascript.0 (28046) script.js.Olli.Timer: Reaching CreateTimerCountList() 21:17:31.849 info javascript.0 (28046) script.js.Olli.Timer: Reaching SetValueListPairs() 21:17:31.850 info javascript.0 (28046) script.js.Olli.Timer: Reaching ConvertPresence. TempPresence=true 21:17:31.852 error javascript.0 (28046) at ConvertPresence (script.js.Olli.Timer:323:5) 21:17:31.852 error javascript.0 (28046) at main (script.js.Olli.Timer:463:5) 21:17:31.852 error javascript.0 (28046) at Object.<anonymous> (script.js.Olli.Timer:211:17) 21:17:31.866 info javascript.0 (28046) script.js.Olli.Timer: Timer CreateState(s) finished! 21:17:31.867 info javascript.0 (28046) script.js.Olli.Timer: Reaching CreateDeviceTrigger() Trigger added for sonoff.0.Sonoff_2.POWER whichone= 0 21:17:31.868 info javascript.0 (28046) script.js.Olli.Timer: Reaching SetTimer(whichone=,0 GoToTommorrow=false) 21:17:31.869 info javascript.0 (28046) script.js.Olli.Timer: Reaching CreateTimerTargetsNameList() 21:17:31.869 info javascript.0 (28046) script.js.Olli.Timer: Original TargetNames are:Sonoff_1,Sonoff_2,Shelly 1,Shelly 2,Mi Smart Plug 1,Mi Smart plug 2 21:17:31.870 info javascript.0 (28046) script.js.Olli.Timer: Possible Target are:sonoff.0.Sonoff_1.POWER,sonoff.0.Sonoff_2.POWER,shelly.0.SHSW-1#8CAAB505CF4B#1.Relay0.Switch,shelly.0.SHSW-1#8CAAB505D4BC#1.Relay0.Switch,deconz.0.Lights.2.on,deconz.0.Lights.3.on 21:17:31.871 info javascript.0 (28046) script.js.Olli.Timer: New TargetNames are:Sonoff_1,Sonoff_2,Shelly 1,Shelly 2,Mi Smart Plug 1,Mi Smart plug 2 21:17:31.871 info javascript.0 (28046) script.js.Olli.Timer: Reaching MakeTable 21:17:31.875 error javascript.0 (28046) at MakeTable (script.js.Olli.Timer:774:38) 21:17:31.878 error javascript.0 (28046) at FillTimerArray (script.js.Olli.Timer:310:9) 21:17:31.878 error javascript.0 (28046) at Object.<anonymous> (script.js.Olli.Timer:260:17)
Anbei der Header aus dem Script:
//Wichtige Einstellungen const logging = true; //Logmeldungen an/aus const praefix = "javascript.0.Timer."; //Grundpfad const PresenceDap = ""; //Pfad zum Anwesenheitsdatenpunkt - Leer lassen wenn nicht vorhanden! const WelcheFunktionVerwenden = "TimerTarget"; const UseChannelNames = true; //Namen aus ID oder Channel extrahieren? //Benachrichtigungseinstellungen const UseTelegram = false; // Sollen Nachrichten via Telegram gesendet werden? const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden? const AlexaId = ""; // Die Alexa Seriennummer. const UseMail = false; //Nachricht via Mail versenden? const UseSay = false; // Sollen Nachrichten via Say ausgegeben werden? Autorenfunktion, muß deaktiviert werden. const UseEventLog = false; // Sollen Nachrichten ins Eventlog geschreiben werden? Autorenfunktion, muß deaktiviert werden. //Tabellen Einstellungen const TblOnBgColor = "#4caf50"; //Hintergrundfarbe für Timer hat angeschaltet const TblOffBgColor = "#f44336"; //Hintergrundfarbe für Timer hat ausgeschaltet const TblIdleBgColor = ""; //Hintergrundfarbe für Timer ist inaktiv const TblDisabledBgColor = "black"; //Hintergrundfarbe für Timer ist inaktiv const TblEditBgColor = "#ffc107"; //Hintergrundfarbe für Timer welcher gerade bearbeitet wird const TblChoosenColor = "white"; //Rahmenfarbe für gewählten Timer, noch nicht im Edit Mode const HeadBgColor = "dimgrey"; //Hintergrundfarbe des Tabellenkopfes const FontColor = "white"; //Textfarbe für Tabelleninhalt const HeadFontColor = "white"; //Textfarbe für Tabellenkopf const FontSize = "12px";//Textgröße für Tabelleninhalt const HeadFontSize = "16px";//Textgröße für Tabellenlopf const TblShowTimerLfdCol = true; //Tabellenspalte mit laufender Nummer anzeigen? const TblShowTimerActiveCol = true; //Tabellenspalte ob Timer aktiv anzeigen? const TblShowTimerActionCol = true; //Tabellenspalte mit Timer Aktion anzeigen? const TblShowTimerSendValueCol = true; //Tabellenspalte mit Sendewerten anzeigen? const TblShowTimerModeCol = true; //Tabellenspalte mit Timermodus anzeigen? const TblShowTimerTimeCol = true; //Tabellenspalte mit Schaltzeit anzeigen? const TblShowTimerAstroOffsetCol = true; //Tabellenspalte mit Astro Offset anzeigen? const TblShowTimerTargetCol = true; //Tabellenspalte mit Timer Ziel anzeigen? const TblShowTimerTargetNameCol = true; //Tabellenspalte mit Namen des Timer Ziels anzeigen? const TblShowTimerDaysCol = true; //Tabellenspalte mit aktiven Tagen anzeigen? const TblShowTimerIfPresenceCol = true; //Tabellenspalte Schaltung nur bei Anwesenheit ausgeben? const TblShowTimerIfNoPresenceCol = true; //Tabellenspalte Schaltung nur bei Abwesenheit ausgeben? const TblShowTimerMessageCol = true; //Tabellenspalte für separate Benachrichtigungseinstellung ausgeben? const ImgInvert = 0; // Bildfarben invertieren? Erlaubte Werte von 0 bis 1 const TblLfdImg = "/icons-mfd-svg/time_timer.svg"; //Bild für "Timer aktiv" const TblActiveImg = "/icons-mfd-svg/control_on_off.svg"; //Bild für "Timer aktiv" const TblIfPresenceImg = "/icons-mfd-svg/status_available.svg"; //Bild für "Nur wenn anwesend" const TblIfNoPresenceImg = "/icons-mfd-svg/control_building_empty.svg"; //Bild für "Nur wenn abwesend" const TblMessageImg = "/icons-mfd-svg/message_mail.svg"; //Bild für "Nachricht senden"
Wahrscheinlich habe ich etwas übersehen, nur was?
-
@qqolli sagte in [Vorlage] Flexibles Timerskript + Vis:
Wahrscheinlich habe ich etwas übersehen, nur was?
Is klar dass das Skript da aussteigt. Du hast den Variablennamen in Zeile 4 geändert, original heißt der "PresenceDp" und nicht "PresenceDap".
-
Besteht das Problem auch mit dem Orginaldatenpunkt?
Zeig auch mal bitte deine Einstellungen im Skript -
-
@Dominik-F
Es gibt nur diesen einen Datenpunkt einmal zum testen, da ich erst sicher gehen möchte,dass dies funktioniert.
Dies sollte doch kein Problem sein, da es hier ja um die Anzeige des Skriptes selbst geht.code_text ```//Timerskript //Wichtige Einstellungen const logging = true; //Logmeldungen an/aus const praefix = "javascript.0.Timer."; //Grundpfad const PresenceDp = "fb-checkpresence.0.Andre.presence"; //Pfad zum Anwesenheitsdatenpunkt - Leer lassen wenn nicht vorhanden! const WelcheFunktionVerwenden = "TimerTarget"; //Benachrichtigungseinstellungen const UseTelegram = true; // Sollen Nachrichten via Telegram gesendet werden? const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden? const AlexaId = ""; // Die Alexa Seriennummer. const UseMail = false; //Nachricht via Mail versenden? const UseSay = false; // Sollen Nachrichten via Say ausgegeben werden? Autorenfunktion, muß deaktiviert werden. const UseEventLog = false; // Sollen Nachrichten ins Eventlog geschreiben werden? Autorenfunktion, muß deaktiviert werden. //Tabellen Einstellungen const TblOnBgColor = "#4caf50"; //Hintergrundfarbe für Timer hat angeschaltet const TblOffBgColor = "#f44336"; //Hintergrundfarbe für Timer hat ausgeschaltet const TblIdleBgColor = ""; //Hintergrundfarbe für Timer ist inaktiv const TblDisabledBgColor = "black"; //Hintergrundfarbe für Timer ist inaktiv const TblEditBgColor = "#ffc107"; //Hintergrundfarbe für Timer welcher gerade bearbeitet wird const TblChoosenColor = "white"; //Rahmenfarbe für gewählten Timer, noch nicht im Edit Mode const HeadBgColor = "dimgrey"; //Hintergrundfarbe des Tabellenkopfes const FontColor = "white"; //Textfarbe für Tabelleninhalt const HeadFontColor = "white"; //Textfarbe für Tabellenkopf const FontSize = "12px";//Textgröße für Tabelleninhalt const HeadFontSize = "16px";//Textgröße für Tabellenlopf const TblShowTimerLfdCol = true; //Tabellenspalte mit laufender Nummer anzeigen? const TblShowTimerActiveCol = true; //Tabellenspalte ob Timer aktiv anzeigen? const TblShowTimerActionCol = true; //Tabellenspalte mit Timer Aktion anzeigen? const TblShowTimerSendValueCol = true; //Tabellenspalte mit Sendewerten anzeigen? const TblShowTimerModeCol = true; //Tabellenspalte mit Timermodus anzeigen? const TblShowTimerTimeCol = true; //Tabellenspalte mit Schaltzeit anzeigen? const TblShowTimerAstroOffsetCol = true; //Tabellenspalte mit Astro Offset anzeigen? const TblShowTimerTargetCol = true; //Tabellenspalte mit Timer Ziel anzeigen? const TblShowTimerTargetNameCol = true; //Tabellenspalte mit Namen des Timer Ziels anzeigen? const TblShowTimerDaysCol = true; //Tabellenspalte mit aktiven Tagen anzeigen? const TblShowTimerIfPresenceCol = true; //Tabellenspalte Schaltung nur bei Anwesenheit ausgeben? const TblShowTimerIfNoPresenceCol = true; //Tabellenspalte Schaltung nur bei Abwesenheit ausgeben? const TblShowTimerMessageCol = true; //Tabellenspalte für separate Benachrichtigungseinstellung ausgeben? const ImgInvert = 0; // Bildfarben invertieren? Erlaubte Werte von 0 bis 1 const TblLfdImg = "/icons-mfd-svg/time_timer.svg"; //Bild für "Timer aktiv" const TblActiveImg = "/icons-mfd-svg/control_on_off.svg"; //Bild für "Timer aktiv" const TblIfPresenceImg = "/icons-mfd-svg/status_available.svg"; //Bild für "Nur wenn anwesend" const TblIfNoPresenceImg = "/icons-mfd-svg/control_building_empty.svg"; //Bild für "Nur wenn abwesend" const TblMessageImg = "/icons-mfd-svg/message_mail.svg"; //Bild für "Nachricht senden"
-
@gelberlemmy sagte in [Vorlage] Flexibles Timerskript + Vis:
Hat da jemand eventuell ein Tipp für mich ? Leider sind meine Java Kenntnisse gegen null.
Ich sags gern nochmal, ich brauch ein komplettes Startlog.
Nicht als Screenshot, sondern hier als Codeblock einfügen. Und nicht das Log ausm Js Fenster, sondern ausm großen iobroker Log. -
@Pittini
ok. das heisst ich suche die Logdatei aus dem Ordner /op/iobroker/log und poste es hier ?
Ich würde dann den JS Adpater auf Debugg stellen ?Leider habe ich den Button Herunterladen im "LOG Reiter" des Admin nicht.