NEWS
[Vorlage] Generisches Fensteroffenskript + Vis
-
Hi Pittini, danke für das skript. Superjob
Ich habe nur ein Problem. Wenn ich SendWarnMsg von true auf false setzen möchte verweigert er mir das. Er macht also garnix und lässt hartnäckig true drinn stehen. Woran kann das liegen? -
@Bibo-13 Ok. nehme die Frage zurück. Nach Iobroker restart klappt alles. Sorry
-
Hallo,
Ich erhalte immer folgende Meldungen im log.
javascript.0 2020-05-12 06:40:29.436 error (354) at processTimers (internal/timers.js:492:7) javascript.0 2020-05-12 06:40:29.435 error (354) at listOnTimeout (internal/timers.js:551:17) javascript.0 2020-05-12 06:40:29.435 error (354) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1983:34) javascript.0 2020-05-12 06:40:29.435 error (354) at Object.<anonymous> (script.js.common.Fensterauswertung:520:73) javascript.0 2020-05-12 06:40:29.435 error (354) at Meldung (script.js.common.Fensterauswertung:206:21) javascript.0 2020-05-12 06:40:29.435 error (354) Error in callback: ReferenceError: Say is not defined javascript.0 2020-05-12 06:40:29.434 info (354) script.js.common.Fensterauswertung: Reaching Meldung, msg= Schlafzimmerfenster seit 10 Stunden 43 Minuten geöffnet! javascript.0 2020-05-12 06:40:29.414 error (354) at processTimers (internal/timers.js:492:7) javascript.0 2020-05-12 06:40:29.414 error (354) at listOnTimeout (internal/timers.js:551:17) javascript.0 2020-05-12 06:40:29.414 error (354) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1983:34) javascript.0 2020-05-12 06:40:29.414 error (354) at Object.<anonymous> (script.js.common.Fensterauswertung:520:73) javascript.0 2020-05-12 06:40:29.414 error (354) at Meldung (script.js.common.Fensterauswertung:206:21) javascript.0 2020-05-12 06:40:29.414 error (354) Error in callback: ReferenceError: Say is not defined
Wo liegt bei mir der Fehler?
-
stelle die Funktion mal auf false, siehe Bild.
-
Ist deaktiviert, nutze diese Funktion auch gar nicht.
Verwende nur die Kombination mit Telegramm. -
@e-i-k-e sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Ist deaktiviert, nutze diese Funktion auch gar nicht.
Ich würde @e-i-k-e zustimmen wollen. Zeig mal Deine Skripteinstellungen.
-
@Pittini ich bekomme im Script folgende Fehlermeldungen
20:27:29.302 error javascript.0 (23702) at ReplaceChars (script.js.Fenster.Alle.Fensteroffenerkennung:339:32)
20:27:29.302 error javascript.0 (23702) at CreateOverviewTable (script.js.Fenster.Alle.Fensteroffenerkennung:309:219)
20:27:29.302 error javascript.0 (23702) at ReplaceChars (script.js.Fenster.Alle.Fensteroffenerkennung:339:32)
20:27:29.302 error javascript.0 (23702) at CreateOverviewTable (script.js.Fenster.Alle.Fensteroffenerkennung:309:219)
20:27:29.302 error javascript.0 (23702) at main (script.js.Fenster.Alle.Fensteroffenerkennung:198:5)
20:27:29.302 error javascript.0 (23702) at Object.<anonymous> (script.js.Fenster.Alle.Fensteroffenerkennung:161:13)Im Script selber habe ich nichts verändert, außer in Zeile 22 UseSay zu deaktiveren.
Vor 5 min auf Git gezogen
Daher sehe ich nicht in VIS, und aktualisieren tut er Stati auch nicht
-
Nur um folgendes auszuschließen:
Wenn noch nicht geschehen, allen gewünschten Sensoren einen Raum und eine Funktion zuweisen. Die Funktion muss vorher in den Aufzählungen hinzugefügt werden und könnte z.B. "Verschluss" lauten. Soll ein anderer Begriff verwendet werden, muss dies dann auch im Script, Zeile 11 geändert werden. Nach der Zuweisung, bzw. dem anlegen neuer Aufzählungspunkte ist es oft hilfreich die JS Instanz neu zu starten da diese bei Aufzählungsänderungen gerne mal "zickt" was dann zu Skriptfehlern führt.
Hast du das bei dir eingestellt und befolgt?
-
@Dominik-F alle Sensoren haben die Funktion Verschluss, aber auch noch 2 weiter, für andere Scripte. Die sind auch in den Aufzählungen, das passt.
Die Instanz wurde 1x neu und das Script selber 4x neu gestartet.
Die Ordnerstrucktur wurde im Javascripm Ordner auch anglegt, hier mal Auszüge
-
@AxelF1977 Ein Raum namens undefined läßt auf einen nicht zugeweisen Raum, aber zugeordnetem Verschluss schließen. Um mehr zu sagen mußt mir die Infos geben die ich jedem immer aus der Nase ziehen muß.
Was steht im Skriptlog? Wie sieht die Zuordnung der Funktion und Räume in der Objektliste aus? Welche Einstellungen sind im Skript? Wann tritt der Fehler auf, bei Start oder wenn ne Nachricht geschickt wird?
Du kannst versuchsweise mal den kompletten Skriptchannel löschen. Wird er wieder mit nem undefined Raum angelegt, dann kontrollier Deine Raumzuweisungen. Wenn Du der Meinung bist das da alles paßt, dann melde Dich mit obengenannten Infos wieder. -
@Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Um mehr zu sagen mußt mir die Infos geben die ich jedem immer aus der Nase ziehen muß.Was steht im Skriptlog?
Musst Du doch gar nicht, stand doch schon weiter oben
Log vom Script (unterhalb)
@Pittini ich bekomme im Script folgende Fehlermeldungen
20:27:29.302 error javascript.0 (23702) at ReplaceChars (script.js.Fenster.Alle.Fensteroffenerkennung:339:32)
20:27:29.302 error javascript.0 (23702) at CreateOverviewTable (script.js.Fenster.Alle.Fensteroffenerkennung:309:219)
20:27:29.302 error javascript.0 (23702) at ReplaceChars (script.js.Fenster.Alle.Fensteroffenerkennung:339:32)
20:27:29.302 error javascript.0 (23702) at CreateOverviewTable (script.js.Fenster.Alle.Fensteroffenerkennung:309:219)
20:27:29.302 error javascript.0 (23702) at main (script.js.Fenster.Alle.Fensteroffenerkennung:198:5)
20:27:29.302 error javascript.0 (23702) at Object.<anonymous> (script.js.Fenster.Alle.Fensteroffenerkennung:161:13)Im Script selber habe ich nichts verändert, außer in Zeile 22 UseSay zu deaktiveren.
Vor 5 min auf Git gezogen
Daher sehe ich nichts in VIS, und aktualisieren tut er Stati auch nicht
@Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
@AxelF1977 Ein Raum namens undefined läßt auf einen nicht zugeweisen Raum, aber zugeordnetem Verschluss schließen. Um mehr zu sagen mußt mir die Infos geben die ich jedem immer aus der Nase ziehen muß.
Was steht im Skriptlog? Wie sieht die Zuordnung der Funktion und Räume in der Objektliste aus?@Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Welche Einstellungen sind im Skript?
Im Script selber habe ich nichts verändert, außer in Zeile 22 UseSay zu deaktiveren. Der Fehler tritt im Log laufend auf, also immer wenn das Script durch läuft.
Der Raum namens undefines kann 2 Gründe haben. Einmal gibt es eine Dachlucke, wo ich den State per Skript erzeuge, aus der Prozentangabe des Schalters, der ein Rolladenschalter ist, de rhat von hause aus keinen state (false/true), sondern level 0-100%
Der Raum Küche heißt einmal Küche, einmal Kitchen. Wegen einem anderen Skript, muss ich das leider so beibehalten. Zumindest bis ich das Script Heizung gegen den Adapter tausche.
Das ist die Lage
-
@AxelF1977 sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Musst Du doch gar nicht, stand doch schon weiter oben
Log vom Script (unterhalb)Da muß doch mehr stehen als diese 6 Zeilen, ich brauch das ganze Log, nicht nur den Fehlerteil. Am besten das Log beim Skriptstart. Und wenn da was rotes oder gelbes auftaucht (was ja der Fall ist), das Iobroker Log dazu.
Der Raum namens undefines kann 2 Gründe haben. Einmal gibt es eine Dachlucke, wo ich den State per Skript erzeuge, aus der Prozentangabe des Schalters, der ein Rolladenschalter ist, de rhat von hause aus keinen state (false/true), sondern level 0-100%
Ist dem Skript egal wie der State erzeugt wird. Wohin schreibt das Skript denn den Wert? Is das eingesonderter DP im javascript.0 channel? Wenn ja, zeig mal das ganze als Screenshot inkl. des/der darüberliegenden Channels und inkl. der rechten Spalten mit Bleistift/Mülleimer/Schraubenschlüssel, ich hab so den Verdacht dasses da hängt.
Und wenn Du schon selber sagst dasses zwei Gründe haben kann, dann verifizier das doch mal indem Du einen mal den "Verschluss" wegnimmst und dann dem 2ten. Wo der Fehler dann weg ist, das ist der Bösewicht und man kann da gezielter Ursachenforschung betreiben.
-
@Pittini danke für die Ausführliche Antwort. Ich werde alles nach dem Feierabend einstellen.
Danke
-
@Pittini ich habe jetzt mal alle Räume und Funktionen bereinigt.
Das war alles murks. Da ich nun auf den Heatingcontroll Adapter umgestiegen bin, der jetzt läuft, konnte ich die Benennung von Küche und Kitchen ändern. Ich habe die Funktionen teils über den ganzen Raum gehabt, anstatt nur bei dem einzelnen Datenpunkt.
Nachdem das alles geschehen war, läuft das Script.
Danke für die Denkanstöße und die unermüdliche Hilfe.
-
@Pittini habe eben den JS Adapter upgadeted und seit dem kommen die Öffnungszeiten anders als früher:
neu
früher
-
@kilasat sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
habe eben den JS Adapter upgadeted und seit dem kommen die Öffnungszeiten anders als früher:
Ja, normal wenn die Fenster bei Skriptstart schon offen waren nimmt er den Zeitstempel und macht seine 3 Meldungen oder was Du halt eingestellt hast mit den korrekten Daten. Its not a Bug, its a Feature.
-
@Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
@kilasat sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
habe eben den JS Adapter upgadeted und seit dem kommen die Öffnungszeiten anders als früher:
Ja, normal wenn die Fenster bei Skriptstart schon offen waren nimmt er den Zeitstempel und macht seine 3 Meldungen oder was Du halt eingestellt hast mit den korrekten Daten. Its not a Bug, its a Feature.
Ja perfekt. Hat brav aufgehört und läuft wie ein Uhrwerk.
-
@Pittini
Moin Moin,
ich lese gerade dieses Script von Beitrag 1 bis jetzt 167 durch.
Habe selbst dieses Script noch in Testnutzung. Testnutzung weil ich eigentlich zwei Bereiche separat abdecken möchte:
1x Obergeschoss und 1x ALLE Kontakte zusammen.
Heißt Script1 nur die OG's und Script2 alle Kontakte (EG, OG, Anbauten, Garage etc etc) - genutzt werden ausschließlich die Kontakte von Homematic.
Das Script1 (OG) funktioniert nun endlich... Ich musste jeden Kontakt im ioBorker von Hand anpassen, da die Räume immer Chanel-weise zugeordnet wurden und nicht nur der eigentliche Kontakt - egal sei's drum Script1 = OKNun zum Problemkind Script2
Hier wird immer ein altes CuxD-Gerät gemeldet, welches sich weder auf der CCU3 noch im ioBroker-Adapter von Homematic zu finden lässt.2.6.2020, 14:09:31.389 [info ]: javascript.0 (840) script.js.home.Fensterscript-v2-all: getObject(id=hm-rpc.1.CUX2801002.13, enumName=rooms) => does not exist 2.6.2020, 14:09:31.391 [error]: javascript.0 (840) script.js.home.Fensterscript-v2-all: script.js.home.Fensterscript-v2-all:103 2.6.2020, 14:09:31.391 [error]: javascript.0 (840) at script.js.home.Fensterscript-v2-all:103:57
Wie gesagt es gibt kein CUX2801002.xx-Gerät.
Zu meinem Aufbau:
- Kontakte im OG gehören den Räumen TFK-OG und TFK-Alle an
- Kontakte im EG gehören den Räumen TFK-EK und TFK-Alle an
- ioBroker läuft in ESXi-VM mit 8GB auf nem Intel i3
- Homematic in eine RaspberryMatic auf CCU3-Basis
Frage:
Kann ich überhaupt zwei Script-Instanzen diese Scriptes laufen lassen?
Wieso könnte sich das Script an einem nicht vorhandenen Gerät aufhängen?Grüße al-79
-
@al-79 sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Ich musste jeden Kontakt im ioBorker von Hand anpassen, da die Räume immer Chanel-weise zugeordnet wurden und nicht nur der eigentliche Kontakt - egal sei's drum Script1 = OK
- Die Räume dürfen natürlich channelweise zugeordnet sein, der ganze Kontakt befindet sich ja in einem Raum. Nur die Funktion Verschluss oder Fenster etc. darf nicht dem ganzen channel, sondern nur dem Schalt Datenpunkt zugeordnet sein.
Hier wird immer ein altes CuxD-Gerät gemeldet, welches sich weder auf der CCU3 noch im ioBroker-Adapter von Homematic zu finden lässt.
- Sowas hatte ich auch schon mal. Das passiert scheinbar wenn man ein Gerät löscht ohne vorher dessen Raum und Funktionszuordnung zu löschen. Bei mir war die Lösung, in die Aufzählungen zu gehen, auf den Raum bzw. die Funktion zu gehen welche das Gerät mal hatte und das dort tatsächlich noch aufgeführte Gerät zu löschen.
Kann ich überhaupt zwei Script-Instanzen diese Scriptes laufen lassen?
- Ist eigentlich nicht vorgesehen, sollte aber machbar sein. Wird aber auf jeden Fall Anpassungen im Skript brauchen, anderes Skriptverzeichnis, anderen Namen für die Funktion. Was es mit Deinen seltsamen Raumzuordnungen auf sich hat erschliesst sich mir allerdings nicht und wird zu seltsamen Meldungen führen, wie "Fenster TFK-OG geschlossen" führen, was iwie sinnfrei ist.
Edit:
Wieso könnte sich das Script an einem nicht vorhandenen Gerät aufhängen?
- Siehe .2, aaber ich vermute da evtl. noch eine falsche Raum oder Funktionszuweisung Deinerseits. Das Skript geht die Aufzählung der Funktionen durch, findet es eine passende, sucht es sich dazu den Raum raus und ermittelt dann den Namen. Eine "Leiche" gemäß .2 sollte da kein Problem machen außer es ist iwo ein ganzer Channel der Funktion zugeordnet.
-
Sorr ymeint nicht Räume sondern Gewerke / Funktion ...