NEWS
Umfassendes Alarmanlagen-Skript
-
OK, die nächste Version ist da:
- Die Melder werden aus den ENUMs geholt, by default von diesen:
"Alarmanlage_Aussenhaut"
"Alarmanlage_Innenraum"
"Alarmanlage_Verzoegert" - Direktes Wechseln von einem Scharf-Zustand zu einem andern wird verhindert.
- Instanz muss nicht eingegeben werden, sondern kommt von der Variable instance
Nächstest ToDo: Ausgabe der ausgelösten Melder in 3 JSON-Strings, einmal alle Melder, einmal nur Außenhaut und einmal nur Innenraum-Melder.
- Die Melder werden aus den ENUMs geholt, by default von diesen:
-
@andreaskos Hallo Andreas kannst du mal bitte ein Beispiel Arrays für die Melder mit ins Script packen, hab jetzt schon einiges Probiert bekomme es aber nicht ans laufen. Danke
Grüße
-
Hi! Du brauchst keine Arrays mehr anlegen im Skript, das wurde mit der letzten Version geändert.
Einfach drei Aufzählungen anlegen. Dazu gehst du im ioBroker-Admin auf Aufzählungen. Falls die in der Auswahl links nicht angezeigt werden, dann kannst du sie einblenden.
Dort dann die drei neuen Aufzählungen unter "Functions" (Funktionen) anlegen und die States einfügen deiner Sensoren.
Achtung auf die Groß/Kleinschreibung bei der id!
Hast du das gemeint? -
@andreaskos
Hab es musste nur die Funktion neu anlegen.Kleiner Fehler in deinem Script ist mir noch aufgefallen. Soll sicher Innenraum heißen.
const functionIndoor = "Alarmanlage_Inneraum";
Beim Bewegungsmeldern sollte doch eigentlich nur Motion Triggern oder. ?
man muss die Funktion per Hand anlegen und nicht über die CCU dann geht es.
Wieder Klasse Arbeit von dir.
-
Danke für dein Feedback @Homer-J !
Ja - klassischer Copy-Paste-Fehler, sorry. Innenraum sollte es heißen, genau. -
Hi @Tirador hab jetzt meine Vis auf das Script angepasst nochmal Vielen Dank an Andreas für die Umsetzung.
Funktioniert hervorragend.
Hab noch meine Pineingabe mit integriert.
Hier mal 2 Screenshots wie meine Vis jetzt Aussieht.
Sag Bescheid ob du es haben willst dann stelle ich alles hier ein.Grüße
Hier meine Alarmanlage als Vorlage.
Bitte die einzelnen View genau so anlegen wie die Textdatei heißen dann sollte es sofort funktionieren ansonsten alles an die eigene Struktur anpassen.
Voraussetzung ist das [Projekt] MDCSS v2: Material Design CSS Version 2 von Uhula.
Für die Pineingabe das Blocklyscript ist auch dabei und angepasst, es muss nur der vierstellige Pin im Datenpunkt PW_Auswertung eingegeben werden.Viel Spaß.
-
-
@Homer-J sagte in Umfassendes Alarmanlagen-Skript:
Viel Spaß.
Alarmanlage.rarDanke, wollte es auch mal testen, aber da fehlen einige Pages im Rar?
-
Morgen @sigi234 war mir was durchgerutscht, hab ich ergänzt sollte jetzt alles da sein.
-
@Homer-J sagte in Umfassendes Alarmanlagen-Skript:
Morgen @sigi234 war mir was durchgerutscht, hab ich ergänzt sollte jetzt alles da sein.
Ok, da gibt es noch einen Fehler bei der cardAlarmanlageFenster:
-
@Homer-J sagte in Umfassendes Alarmanlagen-Skript:
es muss nur der vierstellige Pin im Datenpunkt PW_Auswertung eingegeben werden.
Wo?
-
@sigi234 wo die 2054 steht dort deinen gewünschten Pin eintragen.
Es kann sein das ich die Fenster gruppiert habe löse diese mal auf, dann sollte es gehen.
Hab die Gruppierung jetzt raus genommen. -
@Homer-J sagte in Umfassendes Alarmanlagen-Skript:
@sigi234 wo die 2054 steht dort deinen gewünschten Pin eintragen.
Es kann sein das ich die Fenster gruppiert habe löse diese mal auf, dann sollte es gehen.
Hab die Gruppierung jetzt raus genommen.wo die 2054
?Irgendwas stimmt nicht:
-
@sigi234 im Timeoutblock Pineingabe den du offen hast, hab es bei mir gerade nochmal eingefügt und läuft.
-
@Homer-J sagte in Umfassendes Alarmanlagen-Skript:
ast, hab es bei mir gerade nochmal eingefügt und läuft.
Aha, gecheckt
-
@pix said in Umfassendes Alarmanlagen-Skript:
die Ausgabe des Sensor Namens hast du über common.name schon realisiert ("Die Namen der Melder sollten gut gepflegt sein"). Es gibt aber sehr viel mehr Infos im Objekt, die man ausgeben könnte;
Frage dazu: Für das feststellen der offenen Melder mit der Funktion checkDetectors wird das Array der Melder durchgearbeitet. Jedes Element des Arrays ist eine id (als String). Jede id wird geprüft mit getState(id).val, ob der Melder ausgelöst ist oder nicht.
Über diese id kann ich mir das Objekt dazu holen mit getObject(id) und dort properties wie common.name etc. auslesen. Was aber sind das für properties, die du oben angegeben hast? Das sieht so HomeMatic-spezifisch aus (channelID, deviceID, etc.)? Ich bekomme hier nur Objekte, die den folgenden Aufbau haben, als Beispiel:
Komme ich von der State-id, wie sie im Array drin ist, überhaupt auf das von dir gezeigte Objekt über irgendwelche parent-Beziehungen o.ä.? Dafür bin ich zu sehr node.js-noob...
Bitte um Hilfe.
LG Andreas -
@andreaskos said in Umfassendes Alarmanlagen-Skript:
Komme ich von der State-id, wie sie im Array drin ist, überhaupt auf das von dir gezeigte Objekt über irgendwelche parent-Beziehungen o.ä.?
OK - moment mal, ich glaube, ich hab schon eine Lösung. Ich kann ja über die id-Struktur selbst eine oder zwei Ebenen hochsteigen und mir dann von dort über getObject properties wie den Device-Namen holen etc.
-
Hi zusammen,
ich habe jetzt drei weitere Datenpunkte hinzugefügt (die jetzt auch alle eine Rolle zugeordnet bekomen) für die Ausgabe der offenen Melder (jeweils für alle / nur Außenhaut / nur Innenraum) und für den alarmierenden Melder als String im JSON-Format.
Ich habe dafür die kompletten Objekte reingeschmissen, die von ioBroker zur Verfügung gestellt werden. Siehe Beschreibung im ersten Thread bzw. das aktualisierte Skript.Ich würde - sofern es keine Fehlerbehebungen gibt - die Arbeit an diesem Skript einmal vorläufig abschließen. Ich danke euch sehr für eure Hilfe, die Inputs und die Beschäftigung mit dem Skript, auch in Verbindung mit den anderen Projekten wie der coolen Ereignisliste!
Liebe Grüße,
Andreas -
Hallo, bei mir bekomme ich keine Daten der Sensoren.
-
Hi @sigi234 schau mal bei Innenraum da ist Alarmanlage falsch geschrieben, oder hast du es so ins Script übernommen. Und achte auf groß und Kleinschreibung, bei dir ist alles klein.
Ich habe es bei mir Leer über die CCU angelegt, und dann die Datenpunkte im iobroker reingepackt.