NEWS
[Vorlage] Generisches Fensteroffenskript + Vis
-
@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 ...
-
@al-79 Siehe Edit im letzen Post.
-
@Pittini
Nabend,
nun habe ich doch nur ein Script erst einmal versucht.
ioBroker, Javascript & VM wurden bereits mehrfach neugestartet aber ich bekommen nun das Script nicht mehr zu laufen. Es werden ein paar Punkte abgearbeitet aber die Tabelle wird nicht mehr erzeugt.Hier ein Auszug aus dem Fehler-Log...
javascript.0 2020-06-03 20:20:46.523 error (25674) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2020-06-03 20:20:46.523 error (25674) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) javascript.0 2020-06-03 20:20:46.523 error (25674) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-06-03 20:20:46.523 error (25674) at (anonymous function).get (/opt/iobroker/node_modules/iobroker.objects-redis/index.js:1:93703) javascript.0 2020-06-03 20:20:46.523 error (25674) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1910:38 javascript.0 2020-06-03 20:20:46.523 error (25674) at Object.<anonymous> (script.js.home.Fensterscript-v2-OG:164:13) javascript.0 2020-06-03 20:20:46.523 error (25674) at main (script.js.home.Fensterscript-v2-OG:201:5) javascript.0 2020-06-03 20:20:46.523 error (25674) at CreateOverviewTable (script.js.home.Fensterscript-v2-OG:312:219) javascript.0 2020-06-03 20:20:46.523 error (25674) at ReplaceChars (script.js.home.Fensterscript-v2-OG:342:32) javascript.0 2020-06-03 20:20:46.523 error (25674) Error in callback: TypeError: Cannot read property 'replace' of undefined
Ich weiß Glaskugeln sind mangelware.... aber wat könnte dies sein?
Javascript ist 4.6.17Grüße
-
@al-79 sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Ich weiß Glaskugeln sind mangelware.... aber wat könnte dies sein?
Iwo kein Raum zugeordnet aber ne Funktion vermut ich mal. Zeig doch mal nen Screenshot von der Objektliste wie Du das gesetzt hast.
-
Klar kein Problem.
-
soo hab's mit deiner Frage bzgl Raum nun nochmal getestet... ich muss dem .STATE direkt den Raum UND die Funktion zuweisen... In der Beschreibung im GIThub steht es reicht den Raum dem Gerät zuzuweisen nicht dem .STATE....
Nun funktionierts....
Ist evtl nur ne Eigenart von Homematic-Sensoren ?Wie aufwendig wäre es das Script für mehrere Etage umzuschreiben?
Grüße
-
@al-79 sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
oo hab's mit deiner Frage bzgl Raum nun nochmal getestet... ich muss dem .STATE direkt den Raum UND die Funktion zuweisen... In der Beschreibung im GIThub steht es reicht den Raum dem Gerät zuzuweisen nicht dem .STATE....
Nun funktionierts....
Ist evtl nur ne Eigenart von Homematic-Sensoren ?Wozu mach ich in der Anleitung extra nen Screenshot dazu? Wozu schreib ich Dir das in der Antwort oben unter .1 extra nochmal?
Ist in Deinem Screenshot immer noch falsch an sich. Der Raum wird dem GANZEN GERÄT zugeordnet, weil das das ganze Gerät sich ja physikalisch in einem Raum befindet. Die Funktion wird nur dem einen bestimmten Datenpunkt zugeordnet weil ein Gerät ja mehrere Funktionen haben kann. Is doch eigentlich logisch oder?Wie aufwendig wäre es das Script für mehrere Etage umzuschreiben?
Hab ich Dir auch schon oben unter .3 beantwortet. Der Aufwand das zu testen is normal 5 Minuten. Zwei Skriptvariablen ändern im Einstellungsbereich und ne Extra Funktion anlegen und zuweisen. Letzteres hast ja glaub ich eh schon gemacht.
-
Sorry mit der Nutzung für mehrer Etagen habe ich gedacht du meintest es müssen im Script function.() angepasst / geändert werden... Du meintest aber die Funktion am Sensor... ja die habe ich schon zugewiesen.
Die zwei scriptvariablen sind ja "nur" der javascript.pfad und die Funktion des Melders....
-
Ich hab auch 2 Versionen des Scriptes laufen, das funktioniert problemlos wenn man die beiden Sachen anpasst. Das erste nutze ich zur Kontrolle und Anzeige welche Fenster im Haus offen/geschlossen sind und das 2te verwende ich für meine Heizungssteuerung. Ich nutze 2 Scripte weil ich bei der Heizungssteuerung einen Fensterkontakt nicht nutzen möchte, diesen aber für meine Kontrolle angezeigt bekommen möchte.
-
soo nachdem ich das Script nun für drei Etagen fertig hatte, musste ich heute feststellen, dass sich ioBroker die Räume nicht gemerkt hat und dann logischerweise das Script nicht mehr funktioniert.
Hat das schon jemand gehabt? - also dass ioBroker die Räume & Funktionen nicht dauerhaft behält.
Ich habe schon folgendes probiert:- Räume & Funktionen angepasst - dann nichts weiter gemacht - Zuweisung bleibt dann einige Zeit.
- Räume & Funktionen angepasst - dann ioBroker neu gestartet - Zuweisung bleibt auch einige Zeit.
- Räume & Funktionen angepasst - dann ESXi-VM neu gestartet - Zuweisung bleibt auch einige Zeit.
Ich habe keinen Hinweis dazu gefunden, wann bzw durch was, genau die Zuweisung wieder Rückgängig gemacht wird.
Grüße
-
@al-79 sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Ich habe keinen Hinweis dazu gefunden, wann bzw durch was, genau die Zuweisung wieder Rückgängig gemacht wird.
Ich glaub der HM Adapter macht das, der legt das so an wie in der CCU gesetzt, macht mans anders wirds wieder geändert. Lösung, dem Ding seinen Willen lassen, Räume kann man ja in HM richtig machen, die Funktionen immer ZUSÄTZLICH zu den von HM gesetzten verwenden. War zumindest bei mir die Lösung, ich hab aber auch nur paar HM Thermostate.
-
@Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Ich glaub der HM Adapter macht das, der legt das so an wie in der CCU gesetzt, macht mans anders wirds wieder geändert.
man muss ja nicht alles synchronisieren. (mache ich schon lange nicht mehr)
Die Räume und Funktionen kann man auch in ioBroker erstellen, dann ist Ruhe und wird nicht mehr überschrieben... -
Mir ist in letzter Zeit aufgefallen, dass mir die offenen Fenster teilweise nicht richtig angezeigt werden. Ich habe manchmal z.B. nur ein Fenster offen, mir werden aber 6 offene angezeigt. Schließe ich dann das eine Fenster wird wieder alles richtig angezeigt mir 0 offenen Fenster. Ich kann das bisher nur nicht reproduzieren da es nicht täglich auftritt. Eventuell hilft dir die Meldung darüber ja trotzdem etwas. Das Phänomen hatten wir ja schon mal gehabt.
-
@Dominik-F sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Mir ist in letzter Zeit aufgefallen, dass mir die offenen Fenster teilweise nicht richtig angezeigt werden. Ich habe manchmal z.B. nur ein Fenster offen, mir werden aber 6 offene angezeigt. Schließe ich dann das eine Fenster wird wieder alles richtig angezeigt mir 0 offenen Fenster. Ich kann das bisher nur nicht reproduzieren da es nicht täglich auftritt. Eventuell hilft dir die Meldung darüber ja trotzdem etwas. Das Phänomen hatten wir ja schon mal gehabt.
Kann ich nicht bestätigen, hier läuft alles absolut rund. Hat auch noch niemand anders was gemeldet. Soll heißen, ohne Logs und Reproduzierbarkeit gibts null Chance da was zu finden.
-
Moj zusammen,
zunmächst vielen Dank für das geniale Script - erleichtert mir eine ganze Menge Arbeit.
Ich habe Version 1.5.3 gezogen und installiert. Alle Datenpunkte usw werden auch angelegt.
Solbald ich aber ein Fenster öffne oder schließe stoppt das Script mit folgender Fehlermeldung:2020-06-06 14:32:38.487 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: Reaching CreateRoomsWithVentWarnings 2020-06-06 14:32:38.488 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: Reaching CreateRoomsWithOpenWindowsList 2020-06-06 14:32:38.489 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: RoomsWithOpenWindows: Alle Fenster sind geschlossen 2020-06-06 14:32:38.489 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: Reaching CreateRoomsWithTiltedWindowsList 2020-06-06 14:32:38.489 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: RoomsWithTiltedWindows: Keine Fenster gekippt 2020-06-06 14:32:38.489 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: Reaching CreateRoomsWithVentWarnings 2020-06-06 14:32:42.772 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: Trigger= 12 Wert= true Alter Wert= false 2020-06-06 14:32:42.773 - [31merror[39m: javascript.0 (14143) Error in callback: TypeError: Cannot read property 'search' of null 2020-06-06 14:32:42.773 - [31merror[39m: javascript.0 (14143) at Object.<anonymous> (script.js.common.Fensterauswertung:725:30) 2020-06-06 14:32:42.773 - [31merror[39m: javascript.0 (14143) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1123:38) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:450:25) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at aliases.(anonymous function).targets.forEach.target (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4819:41) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at Array.forEach (<anonymous>:null:null) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4814:46) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:229:41) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at runCallback (timers.js:705:18) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at tryOnImmediate (timers.js:676:5) 2020-06-06 14:32:42.774 - [31merror[39m: javascript.0 (14143) at processImmediate (timers.js:658:5) 2020-06-06 14:32:44.826 - [32minfo[39m: javascript.0 (14143) script.js.common.Fensterauswertung: Trigger= 12 Wert= false Alter Wert= true 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) Error in callback: TypeError: Cannot read property 'search' of null 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at Object.<anonymous> (script.js.common.Fensterauswertung:725:30) 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1123:38) 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:450:25) 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at aliases.(anonymous function).targets.forEach.target (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4819:41) 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at Array.forEach (<anonymous>:null:null) 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4814:46) 2020-06-06 14:32:44.827 - [31merror[39m: javascript.0 (14143) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:229:41) 2020-06-06 14:32:44.828 - [31merror[39m: javascript.0 (14143) at runCallback (timers.js:705:18) 2020-06-06 14:32:44.828 - [31merror[39m: javascript.0 (14143) at tryOnImmediate (timers.js:676:5) 2020-06-06 14:32:44.828 - [31merror[39m: javascript.0 (14143) at processImmediate (timers.js:658:5)
ich bin leider in JS nicht so sehr bewandert. Könnte daher evtl. jedmand etwas Licht in mein Dunkel bringen?