NEWS
[Vorlage] Generisches Fensteroffenskript + Vis
-
Hallo zusammen,
Vielen Dank für das super Script. leider erhalte ich folgende Fehlermeldung und komme da nicht weiter. -
@treff-and-nix Poste erstmal ein anständiges Log, dann kann ich mehr sagen. Aber ich denk mal Du hast UseSay oder UseEventlog nicht auf false gesetzt. Lesen hilft.
-
@pittini Supi, herzlichsten Dank für die schnelle Antwort
-
@Pittini
Wetterstation einbinden wäre toll.
Regen und Wind als Trigger für Nachricht zum schließen -
@lolax sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
@Pittini
Wetterstation einbinden wäre toll.
Regen und Wind als Trigger für Nachricht zum schließenIch denk mal drüber nach, aber mach bitte nen Issue auf Git damits nicht vergessen wird.
-
Das Script läuft jetzt bei mir 1 Jahr ohne Probleme
@Pittini vielen Dank, dass Du das so toll supportest.Eine Schönheitsfrage hätte ich doch noch:
Die Tabelle wird in vis langsam ein bisschen lang. Ist es möglich, nur die geöffneten Fenster/Türen anzuzeigen und die geschlossenen bleiben ausgeblendet? -
Wie viele Räume hast du denn? Ich dachte ich habe schon viel mit meinen 9^^ Also bei 9 Räumen nimmt die Tabelle 2/3 des Bildschirmes an meinem Handy ein, was ich noch nicht als viel oder lang empfinde.
Alternativ könntest du auch das Skript mehrmals laufen lassen, jeweils für eine Etage. Dann hast du für jede Etage eine Tabelle.
-
@dominik-f
Naja - soviel Räume sind es eigentlich nicht....
Meine Tabelle blende ich in der Haupt-View nur ein, wenn etwas auf ist. Zur besseren Übersicht wäre es mir lieber, wenn ich nur die geöffneten Fenster/Türen eingeblendet hätte. Da ja nie alles auf einmal auf ist, könnte ich den Platz unter der Tabelle besser nutzen.Ist aber jammern auf hohen Niveau - geht natürlich so auch
-
Vielleicht wäre meine Lösung mit einem Pop Up ja interessant für dich:
Hauptview:
Pop Up wenn man drauf klickt:
-
@turbo Mach bitte ein Issue auf Git. Kann ich bei der nächsten Überarbeitung evtl. mit rein bauen, wird aber dauern, jetzt is Gartenzeit
-
@pittini danke, mach ich
@Dominik-F würde evtl. auch gehen...
-
Hallo,
ich kenne mich nicht so gut aus und versuche das Skript zum laufen zu bringen. Ich habe HmIP Drehgriffsensoren und die Datenpunkte werden ja vom ioBroker automatisch angelegt. Alle Drehgriffsensoren habe ich in einem Gewerk "Fenster" zusammengefasst und sie auch noch in Verschluss und Sicherheit.
Ich lese zwar, dass für den gesamten Channel Räume und nur für den Datenpunkt der Typ Fenster zugewiesen sein soll, aber wie genau soll das gehen? Er legt das doch automatisch an, wenn ich die entsprechende rpc Instanz installiere.Bei mir sieht das also bspw. so aus:
Ist das jetzt korrekt so?
Er wirft mir massenweise Fehler aus, wenn ich das Skript starte. Bei mir heisst die Instanz rpc5 und er findet kein Fenster, sondern es erscheint bei jedem Fenster
code_text javascript.0 2021-05-01 23:33:37.622 warn (576) script.js.Fenster_zählen_2: Unknown Windowstate undefined detected at hm-rpc.5.000xxxxxxxxxxx.1, please check your configuration javascript.0 2021-05-01 23:33:37.621 warn (576) at processImmediate (internal/timers.js:463:21) javascript.0 2021-05-01 23:33:37.621 warn (576) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1976:38) javascript.0 2021-05-01 23:33:37.620 warn (576) at Object.<anonymous> (script.js.Fenster_zählen_2:272:13) javascript.0 2021-05-01 23:33:37.620 warn (576) at InitialSort (script.js.Fenster_zählen_2:308:5) javascript.0 2021-05-01 23:33:37.620 warn (576) at main (script.js.Fenster_zählen_2:341:5) javascript.0 2021-05-01 23:33:37.620 warn (576) at init (script.js.Fenster_zählen_2:326:45) javascript.0 2021-05-01 23:33:37.617 warn (576) getState "hm-rpc.5.xxxxxxxxxxx.1" not found (3)
Was muss ich tun?
-
@joergh sagte in [Vorlage] Generisches Fensteroffenskript + Vis:
Ist das jetzt korrekt so?
Nein, natürlich nicht, deswegen auch die Fehler im Log. Es MUß so sein wie in der Anleitung beschrieben sonst klappts nicht, der Raum wird dem ganzen Gerät zugewiesen, die Funktion Fenster oder Tuer nur dem entsprechenden Datenpunkt. Das geht auch bei HM Geräten, iwo im HM Adapter kann man das automatische Synchronisieren der Gewerke deaktivieren, dann klappts auch.
-
@pittini
Danke für die Antwort.OK, also muss ich die, entgegen dem was der ioBroker übernommen hat, manuell ändern..?
Die Synchronisierung der "Gewerke" habe ich jetzt deaktiviert.Welches ist denn der "entsprechende Datenpunkt"?
Das ist mir nicht klar. Bei mir legt er das Device an, darunter dann einen Channel 0 für den Drehgriff unter dem selbst zugewiesenen Namen und dann noch einmal einen Channel 1 mit dem gleichen Griff, nur unter der Serienbezeichnung des Gerätes. Unter diesem ist dann auch der STATE zu finden der den Zustand angibt. Ist das der "entsprechende Datenpunkt"?
Muss ich also bei letzterem Channel das "Fenster, Sicherheit, Verschluss" löschen während der Raum bei allen anderen korrekt ist und bleiben muss?
Das Device hat als einziges keinen Raum zugewiesen. So wie ich Dich verstehe muss ich nun hier den Raum manuell nachtragen, aber muss ich auch den Raum bei allen anderen Datenpunkten manuell löschen?
Sorry, aber ich kapiere es einfach nicht, was ich genau wo einstellen muss. Die "Anleitung" mit den drei Zeilen ist imho nicht so eindeutig oder ich bin halt einfach zu doof.
-
@joergh Ja, der State dürfte hier der richtige sein. Wie es aussehen muß, siehste doch an den Screenshots in der Anleitung, dafür hab ich se doch gemacht. Und wenn Du nen kleinen Screen hast, mußte die Bilder halt evtl. nach rechts scrollen um alles zu sehen. Anleitung mit 3 Zeilen? Tatsächlich besteht die Anleitung aus 158 Zeilen, weis ja nich wo Du da hinguggst.
-
@pittini
Der Screenshot ist halt nicht so eindeutig, weil die Struktur bei Dir für einen Kontakt anders ist. Da geht es über Magnetkontakt Channel/ Raum Channel/ Fenster Channel schliesslich zum State. Bei meiner Struktur geht es direkt zu einem Drehgriff Device, das sich dann in zwei Channel aufsplittet. Wenn hier also steht " Den Geräten müssen Räume (für den gesamten Channel) zugewiesen sein.....Hier aber nur für den Datenpunkt, nicht den gesamten Channel!!!", dann frage ich mich denn für welchen der beiden Channel 0 oder 1 oder für beide?Außerdem hat mich halt verwirrt, dass ich im ioBroker aktiv Daten, die er eigentlich so durch den rega Adapter anlegt, verändern muss, sowie das synchronisieren deaktivieren. Das steht da nicht. Bei den drei Zeilen geht es nur um den relevanten Teil, die meisten Zeilen haben ja nichts mit dem Thema zu tun. Ich bezog mich dabei auf "Vorraussetzungen: Den Geräten müssen Räume (für den gesamten Channel) zugewiesen sein, sowie eine Funktion, z.B. "Fenster", bzw. "Tuer" für jeden entsprechenden Datenpunkt.
Hier aber nur für den Datenpunkt, nicht den gesamten Channel!!!"
Versteh das bitte nicht als Vorwurf, sondern einfach als Feedback von einem Nutzer. Ein Hinweis z.B., dass man die vom Adapter angelegten Daten verändern und das Synchronisieren der Gewerke im rega Adapter deaktivieren muss, würde sicherlich einigen helfen die eine piVCCU installiert haben. Vielleicht bin ich aber auch der Einzige der da Schwierigkeiten hat.Danke jedenfalls für die Antwort. Ich werde gleich mal probieren die Daten zu überschreiben und sehen, ob es funktioniert. Grundsätzlich finde ich das Skript ja klasse und würde es deswegen ja auch gerne zum Laufen bringen.
-
@pittini
So, habe jetzt alle Daten korrigiert und es scheint auch etwas Bewegung zu geben, allerdings wirft er mir folgende Fehlermeldungen aus:Im Skript der neusten Version färbt er auch was ab Zeile 265 rot ein. Weiss nicht, ob das eine Bedeutung hat, aber immerhin versucht er ja hier ins Log zu schreiben und da die Fehlermeldungen wohl auch mit dem Log zu tun haben, poste ich das mal
//Alle States anlegen, Main aufrufen wenn fertig let numStates = States.length; States.forEach(function (state) { createState(state.id, state.initial, state.forceCreation, state.common, function () { numStates--; if (numStates === 0) { if (logging) log("CreateStates fertig!"); InitialSort(); }; }); });
-
@joergh Nein, das im Skript rot gefärbte hat nix damit zu tun, bei manchen Sachen kommt der Syntaxcheck ausm Tritt, kannste ignorieren. Der Fehler liegt bei Dir in Zeile 42 würd ich sagen, das muß auf false.
-
@pittini Ja, danke! Das war's. Es geht!!
-
Moin.moin, zuerst einmal vielen Dank für das interessante Script.
Leider bin ich verzweifeln! Habe nun die 514 Beiträge hier im Thread durchgelesen, doch so richtig hilft es mir nicht weiter.
Alle Fenster und Tueren sind gemäß deiner Anleitung zugeorndet und beschrieben.Im Fehlerlog des Scripts werde ich aus den Fehlerzeilen nicht schlau:
11:14:47.348 info javascript.0 (4473) Stop script script.js.common.FENSTER_TUEREN 11:14:47.464 info javascript.0 (4473) Start javascript script.js.common.FENSTER_TUEREN 11:14:47.499 info javascript.0 (4473) script.js.common.FENSTER_TUEREN: starting Fensterskript, Version 1.6.11 11:14:47.501 info javascript.0 (4473) script.js.common.FENSTER_TUEREN: registered 0 subscriptions and 0 schedules 11:14:47.517 warn javascript.0 (4473) at init (script.js.common.FENSTER_TUEREN:317:26) 11:14:47.517 warn javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:341:5) 11:14:47.518 warn javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.518 warn javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13) 11:14:47.520 warn javascript.0 (4473) at init (script.js.common.FENSTER_TUEREN:318:35) 11:14:47.521 warn javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:341:5) 11:14:47.521 warn javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.521 warn javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13) 11:14:47.523 warn javascript.0 (4473) at init (script.js.common.FENSTER_TUEREN:319:37) 11:14:47.523 warn javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:341:5) 11:14:47.523 warn javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.524 warn javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13) 11:14:47.525 warn javascript.0 (4473) at init (script.js.common.FENSTER_TUEREN:320:32) 11:14:47.525 warn javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:341:5) 11:14:47.526 warn javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.526 warn javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13) 11:14:47.527 warn javascript.0 (4473) at init (script.js.common.FENSTER_TUEREN:321:30) 11:14:47.528 warn javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:341:5) 11:14:47.528 warn javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.528 warn javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13) 11:14:47.529 warn javascript.0 (4473) at init (script.js.common.FENSTER_TUEREN:333:27) 11:14:47.530 warn javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:341:5) 11:14:47.530 warn javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.530 warn javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13) 11:14:47.536 error javascript.0 (4473) at CreateRoomsWithOpenDoorsList (script.js.common.FENSTER_TUEREN:839:45) 11:14:47.537 error javascript.0 (4473) at main (script.js.common.FENSTER_TUEREN:343:5) 11:14:47.537 error javascript.0 (4473) at InitialSort (script.js.common.FENSTER_TUEREN:308:5) 11:14:47.537 error javascript.0 (4473) at Object.<anonymous> (script.js.common.FENSTER_TUEREN:272:13)
Die Warnungen sind erst enmal sekundär, doch die Errormeldungen bekomme ich nicht gedeutet.
Auch wird in den Objekten nicht wirklich "viel" generiert:
Wo muss / soll ich ansetzen?
Danke bereit im Voraus!