NEWS
[Vorlage] Generisches Fensteroffenskript + Vis
-
Das zweite Problem war, dass ich die ids der Aufzählung door/window verwendet habe. Darum hat es zuerst nicht funktioniert. Das Skript geht explizit auf die DE Anzeigetexte. Darum ging es beim ersten Versuch nicht, als ich den JS Adapter durchgestartet habe.
Jetzt macht es Sinn.
-
Ah okay, das ist mir noch nie aufgefallen, da ich generell immer die gleiche ID und Name verwende in den Aufzählungen
-
@Pittini Mir ist aufgefallen das seit einiger Zeit mein Ram voll läuft und mittlerweile auch IoB nach ein paar Tagen nicht mehr erreichbar ist, sobald ich dieses Script laufen habe. Ich habe die neuste Version. In der Log sehe ich leider nichts, was in Verbindung mit deinem Script stehen könnte, dennoch ist es so, wenn ich es deaktiviere läuft der ioB tagelang unauffällig, starte ich das Script geht es nach 1-3 Tagen los. Ram wird immer voller, Teilweise auch bis an die Grenze, beruhigt sich dann wieder. Mittlerweile schmiert dann auch irgendwie der iob ab, ich komm dann gar nicht mehr aufs Web If.
Ich häng hier dennoch mal die Log an, vllt kannst du da was sehen...
Die Log ist voll vom DB Close, ich hab da mal jede Menge gelöscht sonst hätte ich es nicht hochladen können.
Auch sonst ist das System auf dem neusten Stand. (Latest)
-
@d3ltoroxp Das Skript ist so oft im Einsatz, dass ich ein generisches Problem ausschliesse. Du müßtest jetzt rausfinden, was bei Dir anders als bei den anderen, mich eingeschlossen, ist.
-
Das Script läuft bei mir jetzt schon einige Wochen ohne Probleme.
Ist zwar sehr groß und mächtig, aber man kann ja Funktionen die nicht benötigt werden ausschalten.
Bei mir habe ich noch eine Variable für den Wallpanel Adapter eingefügt, damit die Ansagen auf dem Tablet über Wallpanel gemacht werden. War sehr einfach umzusetzen.Nun hätte ich aber noch eine bitte!
Es gibt zwar die Variable für Anwesenheit, aber keine Möglichkeit eine Meldung auszugeben wenn man das Haus verläßt und ein Fenster noch irgendwo offen steht.
Zum Beispiel: Anwesenheit wird false, Fenster offen ist true, dann sofort eine Meldung per Telegramm.Momentan habe ich das mit einem separaten Script realisiert.
-
@manolo Wie Du selber sagst, ist das Skript eh schon recht fett, deswegen werd ich das nicht integrieren, Dein Weg ist da genau der richtige. Das Skript stellt die Info zur Verfügung ob noch was offen ist, und darauf setzt Du ein eigenes Mini Skript auf.
-
Hallo, könnte man dein Skript auch für die Anzeige von Echo Dots verwenden?
Also im Raum XYZ läuft gerade ein Lied? Ist das sehr Aufwendig das anzupassen? -
@sigi234 Wenns dafür iwo nen true/fals Dp gibt, würde das Konzept funktionieren, aber anpassen....eher nicht, das ist zu speziell auf Türen/Fenster, da wär der Aufwand größer als ein neues Skript zu machen und evtl. Teile zu verwenden. Da ich aber keiner Echos, Alexas etc. habe, werd ich da nix machen, könnt ja nich mal testen.
-
Ok, Danke, dann versuche ich das mal mit Blockly.
-
@pittini Vielen Dank für das tolle Script! Bin gerade erst in der Testphase und habe es auch zum Laufen gebracht.
Allerdings kommen immer diese Fehlermeldungen, wenn ein Fenster geöffnet wird:10:36:51.626 error javascript.0 (21880) at Meldung (script.js.common.Fensterauswertung:387:25) 10:36:51.627 error javascript.0 (21880) at CheckWindow (script.js.common.Fensterauswertung:1086:64) 10:36:51.627 error javascript.0 (21880) at Object.<anonymous> (script.js.common.Fensterauswertung:1388:25)
Kann es irgendwie an Umlauten liegen?
Wäre sehr dankbar für jegliche Unterstützung.
Mod-Edit: Code in </> Code-Tag gepackt!
-
@reindeer-web Ich rate mal, Du hast Zeile 42 und/oder 43 nicht auf false gesetzt obwohls extra dabeisteht??
-
@pittini Oh Mann, bin ich blöd!
Da habe ich anscheinend dauernd darüber hinweg gelesen.
Vielen Dank für den Hinweis auf das Brett vor meinem Kopf. -
Kann mir sagen warum ich diese Fehler bekommen
Raum habe ich erstellt.
Unter Function Tuer & Fenster habe ich dennoch bekomme ich fehler meldung.06:32:07.803 info javascript.0 (2685) Start javascript script.js.common.FensterUeberwachung 06:32:13.426 info javascript.0 (2685) Stop script script.js.common.FensterUeberwachung 06:32:31.617 info javascript.0 (360) Stop script script.js.common.FensterUeberwachung 06:32:31.663 info javascript.0 (360) Start javascript script.js.common.FensterUeberwachung 06:32:31.696 info javascript.0 (360) script.js.common.FensterUeberwachung: starting Fensterskript, Version 1.6.15 06:32:31.697 info javascript.0 (360) script.js.common.FensterUeberwachung: registered 3 subscriptions and 0 schedules 06:32:31.703 info javascript.0 (360) script.js.common.FensterUeberwachung: CreateStates fertig! 06:32:31.704 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:325:26) 06:32:31.704 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.704 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.705 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.705 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:326:35) 06:32:31.706 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.706 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.706 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.708 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:327:37) 06:32:31.708 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.709 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.709 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.709 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:328:32) 06:32:31.709 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.710 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.710 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.710 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:329:30) 06:32:31.710 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.710 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.710 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.711 info javascript.0 (360) script.js.common.FensterUeberwachung: x=0= SendWindowWarnMsg=null SendDoorWarnMsg=null SendVentMsg=null SendWindowOpenCloseMsg=null SendDoorOpenCloseMsg=null 06:32:31.711 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:341:27) 06:32:31.711 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.711 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.711 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.712 info javascript.0 (360) script.js.common.FensterUeberwachung: Reaching VentCheck x=0 Init=true VentwarnTime[x]=null RoomStateTimeStamp[x]=undefined 06:32:31.712 info javascript.0 (360) script.js.common.FensterUeberwachung: Room 0 = is open or disabled, no vent warning set 06:32:31.712 info javascript.0 (360) script.js.common.FensterUeberwachung: Reaching CreateRoomsWithVentWarnings 06:32:31.712 info javascript.0 (360) script.js.common.FensterUeberwachung: Reaching CreateRoomsWithOpenDoorsList 06:32:31.713 error javascript.0 (360) at CreateRoomsWithOpenDoorsList (script.js.common.FensterUeberwachung:866:45) 06:32:31.713 error javascript.0 (360) at main (script.js.common.FensterUeberwachung:351:5) 06:32:31.713 error javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.713 error javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.722 info javascript.0 (360) Start javascript script.js.common.FensterUeberwachung 06:32:31.729 info javascript.0 (360) script.js.common.FensterUeberwachung: starting Fensterskript, Version 1.6.15 06:32:31.729 info javascript.0 (360) script.js.common.FensterUeberwachung: registered 3 subscriptions and 0 schedules 06:32:31.757 info javascript.0 (360) script.js.common.FensterUeberwachung: CreateStates fertig! 06:32:31.759 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:325:26) 06:32:31.759 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.759 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.759 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.760 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:326:35) 06:32:31.760 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.760 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.760 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.761 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:327:37) 06:32:31.761 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.761 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.762 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.762 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:328:32) 06:32:31.762 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.763 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.763 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.763 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:329:30) 06:32:31.763 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.764 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.764 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.764 info javascript.0 (360) script.js.common.FensterUeberwachung: x=0= SendWindowWarnMsg=null SendDoorWarnMsg=null SendVentMsg=null SendWindowOpenCloseMsg=null SendDoorOpenCloseMsg=null 06:32:31.764 warn javascript.0 (360) at init (script.js.common.FensterUeberwachung:341:27) 06:32:31.765 warn javascript.0 (360) at main (script.js.common.FensterUeberwachung:349:5) 06:32:31.765 warn javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.765 warn javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13) 06:32:31.765 info javascript.0 (360) script.js.common.FensterUeberwachung: Reaching VentCheck x=0 Init=true VentwarnTime[x]=null RoomStateTimeStamp[x]=undefined 06:32:31.765 info javascript.0 (360) script.js.common.FensterUeberwachung: Room 0 = is open or disabled, no vent warning set 06:32:31.765 info javascript.0 (360) script.js.common.FensterUeberwachung: Reaching CreateRoomsWithVentWarnings 06:32:31.765 info javascript.0 (360) script.js.common.FensterUeberwachung: Reaching CreateRoomsWithOpenDoorsList 06:32:31.766 error javascript.0 (360) at CreateRoomsWithOpenDoorsList (script.js.common.FensterUeberwachung:866:45) 06:32:31.766 error javascript.0 (360) at main (script.js.common.FensterUeberwachung:351:5) 06:32:31.766 error javascript.0 (360) at InitialSort (script.js.common.FensterUeberwachung:314:5) 06:32:31.766 error javascript.0 (360) at Object.<anonymous> (script.js.common.FensterUeberwachung:278:13)
-
zeig mal bitte n Screenshot von den Datenpunkten von einem Fenster und dazu von den ersten 20 Zeilen vom Skript.
Ich gehe stark davon aus, dass du dich nicht ganz genau an die Anleitung gehalten hast.
-
meinst du screenshot von objekte
-
bitte schön ich meine habe alles gemacht
const Skriptversion = "1.6.15" //vom 22.11.2021 - https://github.com/Pittini/iobroker-Fensterauswertung - https://forum.iobroker.net/topic/31674/vorlage-generisches-fensteroffenskript-vis //Script um offene Fenster/Türen pro Raum und insgesamt zu zählen. //Möglichkeit eine Ansage nach x Minuten einmalig oder zyklisch bis Fensterschließung anzugeben //Dynamische erzeugung einer HTML Übersichtstabelle //WICHTIG!!! //Vorraussetzungen: Den Geräten müssen Räume zugewiesen sein, sowie die Funktion "Fenster" bzw "Tuer" für jeden entsprechenden Datenpunkt. //Grundeinstellungen const logging = true; //Erweiterte Logs ausgeben? const praefix = "javascript.0.FensterUeberwachung."; //Grundpfad für Script DPs - Muß innerhalb javascript.x sein. const PresenceDp = "" //Pfad zum Anwesenheitsdatenpunkt, leer lassen wenn nicht vorhanden const WhichWindowFunctionToUse = "Fenster"; // Legt fest nach welchem Begriff in Funktionen gesucht wird. Diese Funktion nur dem Datenpunkt zuweisen, NICHT dem ganzen Channel! const WhichDoorFunctionToUse = "Tuer"; // Legt fest nach welchem Begriff in Funktionen gesucht wird. Diese Funktion nur dem Datenpunkt zuweisen, NICHT dem ganzen Channel! const WindowIgnoreTime = 10000; // 10000 ms = 10 Sekunden - Zeit in ms für die kurzzeitiges öffnen/schliessen ignoriert wird const DoorIgnoreTime = 1000; // 1000 ms = 1 Sekunden - Zeit in ms für die kurzzeitiges öffnen/schliessen ignoriert wird const WhichEnumCategoryToUse = "functions"; // Legt fest in welcher Kategorie sich die Aufzählungen befinden! Nur ändern wer weis was er tut! //Nachrichteneinstellungen const TimeToWindowMsg = 900000 // 300000 ms = 5 Minuten - Zyklus- bzw. Ablaufzeit für Fenster-offenwarnung/en const TimeToDoorMsg = 300000 // 300000 ms = 5 Minuten - Zyklus- bzw. Ablaufzeit für Tür-offenwarnung/en const MaxMessages = 1; //Maximale Anzahl der Nachrichten pro Raum //Telegram const UseTelegram = false; // Sollen Nachrichten via Telegram gesendet werden? //Pushover const UsePushOver = false; // Sollen Nachrichten via PushOver gesendet werden? const PushOverInstance = "pushover.0"; //Pushoverinstanz welche genutzt werden soll angeben const PushOverDevice = "All"; //Welches Gerät soll die Nachricht bekommen const PushOverTitle = "Fensterüberwachung"; const PushOverSound = "none"; //Welcher Sound soll abgespielt werden? "none" für kein Sound, "" für Standartsound, ansonsten Namen angeben z.B. "magic" //Alexa const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden? const AlexaInstance = "alexa2.0"; const AlexaId = ""; // Die Alexa Seriennummer. const AlexaVolume = "50"; // Lautstärke der Nachrichten. Wert von 1 bis 100
-
Ich kann jetzt erstmal nix falsches erkennen, deswegen nochmal 3 Ideen:
Wie siehts mit diesen Einstellungen bei dir aus? Alles auf false?
//Other const UseMail = false; //Nachricht via Mail versenden? const UseSay = false; // Sollen Nachrichten via Say ausgegeben werden? Developerfunktion, muß deaktiviert sein. const UseEventLog = false; /
Dann fällt mir auf, dass bei dir in den Objekten der Raum bei "actual" fett gedruckt ist. Ich weiß nicht ob es ein Unterschied macht, aber hast du es eventuell doppelt ausgewählt? Also einmal den gesamten Channel, so wie es sein soll, und zusätzlich den Datenpunkt?
Wie gesagt, keine Ahnung ob es einen Unterschied macht, aber ausprobieren schadet ja nicht.Dann zu deiner Funtkion:
Schau bitte mal nach, ob sie wirklich auch "Fenster" heisst und nicht zufällig klein geschrieben ist?
-
Ich habe das Script nun auch mal getestet aber ich erhalte bei einer Fensteröffnung immer folgende Log Meldungen
javascript.0 2022-04-22 17:29:05.029 error at processTimers (internal/timers.js:500:7) javascript.0 2022-04-22 17:29:05.028 error at listOnTimeout (internal/timers.js:557:17) javascript.0 2022-04-22 17:29:05.028 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2083:34) javascript.0 2022-04-22 17:29:05.027 error at Object.<anonymous> (script.js.Fenster.Ueberwachung:1070:81) javascript.0 2022-04-22 17:29:05.026 error at Meldung (script.js.Fenster.Ueberwachung:395:17) javascript.0 2022-04-22 17:29:05.016 error Error in callback: ReferenceError: WriteEventLog is not defined
-
Fehler selbst gefunden
const UseEventLog = false; /
-
Hallöchen,
nach dem ich heute das Update des JS-Controllers vorgenommen habe und iobroker neu gestartet hatte, musste ich feststellen, dass sich das Überwachungsscript in einer Endlosschleife aufhängt und somit iobroker bzw. der MiniPC es nicht schafft alle Instanzen komplett neu zu starten.
Er hängt irgendwann sich komplett auf, im Debug Fenster des Scripts sieht man das irgendetwas immer durch rauscht, aber man kann nichts mehr aufrufen, da er total träge ist und sich nichts mehr tut
Starte ich den MiniPC neu durch, stoppe danach js-Instanz, stoppe das Fensterüberwachungsscript und starte danach sofort die JS-Instanz wieder läuft alles einwandfrei hoch