Pittini / iobroker-Fensterauswertung

Zählt geöffnete Fenster pro Raum und gesamt. Kann einmalig oder zyklisch an offene Fenster erinnern. Erzeugt Lüftungswarnung uvm.
MIT License
42 stars 15 forks source link

RoomsWithVentWarning DP #7

Closed n3roGit closed 4 years ago

n3roGit commented 4 years ago

Moin moin,

vielen Dank für die Anpassung für das Lüften von Räumen! Funktioniert perfekt!

Kannst du vielleicht noch den oben genannten DP einbauen?

Darüber mache ich dann die Ansage. Du hattest ja nicht vor einen "Mute" DP für die Ansagen einzubauen. Der Frauen-Akzeptanz-Faktor ist nicht so groß wenn Tantchen nachts los plappert^^

Pittini commented 4 years ago

Schau Dir mal die 1.4.0 an, evtl hilft Dir der neue "LastMessage" Datenpunkt schon weiter. Wenn nicht kann ich das im nächsten update integrieren, bitte um Feedback.

n3roGit commented 4 years ago

Das müsste auch funktionieren und ist eine tolle Erweiterung!

Allerdings schmeißt das Script mit der neuen Version Fehler.

08:39:05.232 error javascript.0 (1144) script.js.System.WindowWatcher: TypeError: Cannot read property 'split' of null
08:39:05.232 error javascript.0 (1144) at WriteMessageLog (script.js.System.WindowWatcher:183:37)
08:39:05.233 error javascript.0 (1144) at Meldung (script.js.System.WindowWatcher:178:5)
08:39:05.233 error javascript.0 (1144) at VentCheck (script.js.System.WindowWatcher:301:21)
08:39:05.233 error javascript.0 (1144) at init (script.js.System.WindowWatcher:144:9)
08:39:05.233 error javascript.0 (1144) at main (script.js.System.WindowWatcher:152:5)
08:39:05.233 error javascript.0 (1144) at script.js.System.WindowWatcher:123:13
Pittini commented 4 years ago

Allerdings schmeißt das Script mit der neuen Version Fehler.

Das schau ich mir heut abend gleich mal an, kannst Du mir bitte mal die Einstellungen die Du gesetzt hast hier posten bitte? Ich weis schon wo der Fehler ist, nur noch nicht warum da ein Null Wert ankommt.

PS: Ich hab grad nochn update hochgeladen, Dein gewünschter Datenpunkt ist jetzt drin und noch zusätzlich ein MessageMute DP wo Du Sprachausgaben oder alle Nachrichten deaktivieren kannst, entweder manuell via Vis oder mit nem Timerskript.

PPS: Ich kann den Fehler nicht nachstellen, gugg mal bitte ob das in der neuen Version nicht schon gefixt ist, hatte da ne Kleinigkeit geändert.

n3roGit commented 4 years ago

// V1.4.0 vom 12.4.2020 - https://github.com/Pittini/iobroker-Fensterauswertung - https://forum.iobroker.net/topic/31674/vorlage-generisches-fensteroffenskript-vis //Script um offene Fenster pro Raum und insgesamt zu zählen. Legt pro Raum zwei Datenpunkte an, sowie zwei Datenpunkte fürs gesamte. //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 "Verschluss" für jeden entsprechenden Datenpunkt zugewiesen sein.

//Grundeinstellungen const logging = true; //Erweiterte Logs ausgeben? const praefix = "javascript.0.WindowWatcher."; //Grundpfad für Script DPs - Muß innerhalb javascript.x sein. const WelcheFunktionVerwenden = "fenster"; // Legt fest nach welchem Begriff in Funktionen gesucht wird. Diese Funktion nur dem Datenpunkt zuweisen, NICHT dem ganzen Channel! //Nachrichteneinstellungen const ZeitBisNachricht = 1800000 // 300000 ms = 5 Minuten const OpenMsgAktiv = true; // Legt fest ob eine Infonachricht für offene Fenster nach x Minuten ausgegeben werden soll; Zeitfestlegung erfolgte in Zeile 11 const VentMsgAktiv = true; //Soll Lüftungsempfehlung auch als Nachricht ausgegeben werden (sonst nur in der Tabelle)? const AlsoMsgWinOpenClose = false; //Soll auch das erstmalige öffnen, sowie das schliessen gemeldet werden? const RepeatInfoMsg = true; // Legt fest ob Nachrichten einmalig oder zyklisch ausgegeben werden sollen

const UseTelegram = false; // Sollen Nachrichten via Telegram gesendet werden? const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden? const AlexaId = "1a184bb09d4a44dca6f2ec8dcda5f815"; // 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.

//Tabelleneinstellungen const WindowOpenImg = "/icons-mfd-svg/fts_window_1w_open.svg"; //Icon für Fenster offen const WindowCloseImg = "/icons-mfd-svg/fts_window_1w.svg"; // Icon für Fenster geschlossen const VentImg = "/icons-mfd-svg/vent_ventilation.svg"; //Icon für Lüftungsinfo const ImgInvert = 1; // Bildfarben invertieren? Erlaubte Werte von 0 bis 1 const OpenWindowColor = "#f44336"; // Farbe für Fenster offen const ClosedWindowColor = "#4caf50"; // Farbe für Fenster geschlossen const VentWarnColor = "#ffc107"; // Farbe für Fenster geschlossen const ShowCaptionTbl = false; // Überschrift anzeigen? const ShowSummaryTbl = false; // Zusammenfassung anzeigen? const ShowDetailTbl = true; // Details anzeigen?

//Logeinstellungen const MaxLogEntrys = 20; //Maximale Anzahl der zu speichernden Logeinträge const AutoAddTimestamp = true; //Soll den geloggten Nachrichten automatisch ein Zeitsempel zugeordnet werden? const LogTimeStampFormat = "TT.MM.JJJJ SS:mm:ss"; const LogEntrySeparator = "
";

n3roGit commented 4 years ago

Super klasse! Dank dir!!!! Ich schau es mir an und werde berichten! =)

n3roGit commented 4 years ago

Ich glaube du hast das Update noch nicht gepusht. Hier gibts weiterhin nur die Version von vor 2 Tagen 1.4

Pittini commented 4 years ago

Ich glaube du hast das Update noch nicht gepusht. Hier gibts weiterhin nur die Version von vor 2 Tagen 1.4

Tatsache, dachte ich hätte schon. Jetzt aber.

Woher Dein Fehler kommt, is jetzt auch ziemlich klar, letzte 2 Zeilen Deiner Einstellungen. Erstens sollte da kein Zeilenumbruch sein, 2tens ist es keine Gute Idee den Separator komplett zu entfernen weil den das Skript nutzt um die Logeinträge auseinanderhalten zu können, alte zu löschen usw. (deshalb heißt das Ding ja auch Separator ;) )Wenn Dir der voreingestellte HTML Umbruch nicht taugt, nimm Komma, Strichpunkt, Bindestrich...was auch immer, nur nicht nix und kein Leerzeichen.

n3roGit commented 4 years ago

Komisch den hatte ich"meine ich" garnicht angepasst.

Ich habs jetzt mit der neuen version gemacht und das als Ergebnis bekommen.

14:51:38.516 error javascript.0 (1144) at Meldung (script.js.System.WindowWatcher:173:21)
14:51:38.516 error javascript.0 (1144) at VentCheck (script.js.System.WindowWatcher:333:21)
14:51:38.516 error javascript.0 (1144) at init (script.js.System.WindowWatcher:153:9)
14:51:38.516 error javascript.0 (1144) at main (script.js.System.WindowWatcher:160:5)
14:51:38.516 error javascript.0 (1144) at Object. (script.js.System.WindowWatcher:129:13)

Und der MuteDP ist momentan glaube ich noch vom falschen Typ. Da steht 0 oder 1. Das soll ja wahrscheinlich true oder false sein =)

Pittini commented 4 years ago

Und der MuteDP ist momentan glaube ich noch vom falschen Typ. Da steht 0 oder 1. Das soll ja wahrscheinlich true oder false sein =)

Nene, das ist schon korrekt so, da es 0,1 und 2 gibt - Siehe Beschreibung der Datenpunkte in der Anleitung.

Zu dem Fehlerlog kann ich nix sagen, da steht nix relevantes drin. Ich könnte mir aber vorstellen dass da vom alten irgendein Murks in den Datenpunkten steht, bitte lösch mal den ganzen channel unter javascript.0.windowwatcher (wird autom. wieder angelegt) und starte das Skript dann neu. Sollte dann immer noch ein Fehler auftauchen bitte das Skriptlog posten (nicht nur die Errors) und nen Screenshot des gesamten aufgeklappten javascript.0.windowwatcher channel

Pittini commented 4 years ago

Ok, warum der Umbruch weg war is nu klar, Du hast das direkt hier gepostet und dann wird der HTML Umbrauch halt einfach umgebrochen, sowas bitte immer in Code Tags setzen.

Test const LogEntrySeparator = "
";

Test const LogEntrySeparator = "<br>";

n3roGit commented 4 years ago

AAhhh alles klar! Ich bin happy! Mach zu das Ding =)