NEWS
Umfassendes Alarmanlagen-Skript
-
@andreaskos
Vielen Dank für das tolle Skript. Meine Alarmanlage läuft derzeit in Homematic und ich werde die Logik durch dein Skript ablösen. Bei mir ist es derzeit so, dass ich die Alarmanlage aktiviere und dann 5 Minuten Zeit habe die Wohnung zu verlassen. Mit dem Schließen der Wohnungstüre wird dann die Alarmanlage scharf geschaltet. Wenn ich innerhalb der 5 Minuten die Wohnung nicht verlassen habe, deaktiviert die Alarmanlage sich wieder von selbst. Ist das eine Funktionalität, welche interessant wäre im Skript umzusetzen? Wenn nicht, würde ich diesen Mechanismus "drum herum" bauen.Grüße
Sascha -
Grüß euch!
@Tirador said in Umfassendes Alarmanlagen-Skript:
@andreaskos said in Umfassendes Alarmanlagen-Skript:
@kilasat
Du kannst auch einfach die Bezeichnung der Aufzählungen im Skript ändern auf: "alarmanlage_aussenhaut" usw. mit Kleinbuchstaben, dann geht's auch.
Ich sollte diese Standard-Einstellungen vielleicht von vornherein in Kleinschreibung im Skript angeben, wenn das eine Stolperfalle ist.Noch genialer wäre es wenn die Aufzählungen durch das Skript generiert werden könnten. Ich habe keine Ahnung ob es dafür eine Funktion gibt.
Die Aufzählungen könnten schon durch das Skript selbst angelegt werden. Befüllen kann man sie dann über die Admin-Oberfläche ganz normal. Aber möglicherweise möchte man schon vorhandene Aufzählungen nutzen? Ich weiß nicht, ob das für alle allgmein so nutzbar wäre. Da weise ich lieber in den Kommentaren noch stärker drauf hin und mache die Bezeichner standardmäßig mit Kleinbuchstaben, denk ich.
Mit dem Schließen der Wohnungstüre wird dann die Alarmanlage scharf geschaltet. Wenn ich innerhalb der 5 Minuten die Wohnung nicht verlassen habe, deaktiviert die Alarmanlage sich wieder von selbst.
Das ist schon eine eher spezielle Funktion - aber zugegeben, eine coole! Ich würde es aber der Einfachheit halber bei der Basisfunktion der Alarmanlage belassen. Solche Dinge kann man ja eh mit den vorhandenen Datenpunkten gut lösen mit "drum herum"-Skripts, Blocklys oder Szenen. Aber vielen Dank für den Input!
LG Andreas
-
Moin moin,
das klingt sehr gut... gibts irgendeine Chance das in Blockly einzufügen? Ich habe die andere Programmierung nicht drauf .
-
@radicalreel
Du brauchst Blockly eh nicht dafür. Leg ein neues Javascript an, wähle aber bei der Auswahl nicht Blockly, sondern eben Javascript.
Dann kopiere einfach das ganze Skript vom ersten Post in diesem Thread hinein in den Editor und scroll ein wenig nach unten.
Alle Zeilen, die mit // beginnen, sind nur Kommentare und erklären ein paar Dinge.
Dort, wo die Einstellungen zu machen sind, besserst du die Einträge einfach auf deine eigenen Anforderungen aus.
Ich meine damit, diese Zeilen, immer nach dem = kannst du deine Änderungen machen:
Irgendwann kommt dann die Zeile mit "DO NOT CHANGE ANYTHING BELOW THIS LINE" oder so ählich. Wenn du die erreicht hast, dann hast du's geschafft. Du brauchst das Script nur noch zu starten. Dann nochmal stoppen, dann beim zweiten Mal kannst du's laufen lassen. (Beim ersten Mal werden nämlich alle Datenpunkte angelegt, da können noch Warnings oder Fehler im Log auftauchen. Die sind beim zweiten Mal weg.)
Die erzeugten Datenpunkte kannst du dann mit Blockly verarbeiten wie du magst.Du muss natürlich auch die Aufzählungen wie ein paar Posts vorher besprochen anlegen und dabei auf die Groß-/Kleinschreibung achten!
LG Andreas
-
Nur zur Info: hab im Skript die Aufzählungs-IDs auf Kleinbuchstaben geändert, um dieses Hindernis auszuschalten:
- alarmanlage_aussenhaut
- alarmanlage_innenraum
- alarmanlage_verzoegert
LG Andreas
-
@andreaskos hi, ich bekomme lauter warn-Einträge in dem Log:
edit: ok jetzt weiß ich warum. Melder waren nicht im Ruhe-Modus.javascript.0 2020-06-24 17:48:24.965 info (25167) script.js.common.1Überwachung.Alarmanlage: registered 21 subscriptions and 0 schedules javascript.0 2020-06-24 17:48:24.965 warn (25167) Object "zigbee.0" does not exist javascript.0 2020-06-24 17:48:24.964 warn (25167) Object "zigbee.0" does not exist javascript.0 2020-06-24 17:48:24.964 warn (25167) Object "zigbee.0" does not exist javascript.0 2020-06-24 17:48:24.905 info (25167) script.js.common.1Überwachung.Alarmanlage: Alarmsystem started. javascript.0 2020-06-24 17:48:24.904 info (25167) Start javascript script.js.common.1Überwachung.Alarmanlage javascript.0 2020-06-24 17:48:24.815 info (25167) Stop script script.js.common.1Überwachung.Alarmanlage
-
@sigi234
Hallo Siggi, bin den ganzen Tag auf der Suche nach einer Lösung einer PIN-Eingabe mir iobroker.alarm zusammen.
Ist eigentlich ja ganz einfach, mann muss ja nur den Zahl/Code in den Datenpunkt alarm.0.use.toggle_passwort schreiben, hierzu die einzelnen Ziffen sammeln und wenn fertig als Zahl in den DP schreiben, aber ich bekomme es nicht hin. Habe auch schon mehrere scripts zur PIN Eingabe getestet, aber immer ohne Erfolg. Sehe vermutlich den Wald vor lauter Bäume nicht.....
Kannst du mir Bitte helfen, und mir den View oder das Widget des Nummenblocks als auch das dazugehörige Script bereitstellen ... damit ich da weiterkomme .......
Ich Bedanke mich schon mal im Voraus und hoffe dass du Zeit hast .
Grüße aus dem Aichtal
Stephan -
-
Hallo, habe mal unten verlinkt zu meinen Beitrag, weis nicht ob du auch in den Adapter integriert bist?
Machst du noch was an deinen Skript?
Pin Code ist ja von Dir. -
@sigi234
Hallo, hab ich gemacht, View geladen. Dann habe ich wie beschrieben das Blockly-Script importieren wollen und bekomm folgenden Fehler beim Importieren:
TypeError: Unknown block type: telegram -
@sruhsam sagte in fUmfassendes Alarmanlagen-Skript:
TypeError: Unknown block type: telegram
Musst du installieren! Dann einfach Instanz deaktivieren.
-
Hi,
brauch jetzt mal hilfe, komme einfach nicht weiter mit (kenne mir leider auch noch beschrankt mit Javascript aus).
Mein probleem is das keine sensoren erkannt werden;
// Arrays für die Melder
var detectorsOuterSkin = [
'hm-rpc.2.xxxxxx.1.STATE'/State/,
'zwave2.0.Node_008.Binary_Sensor.tamper'/Node 008 Binary Sensor tamper/
];
console.log("detectorsOuterSkin: " + detectorsOuterSkin);
Das log gibt:
javascript.0 (2816) script.js.common.Test_alarm: detectors: OuterSkinhm-rpc.2.xxxxxx.1.STATE,zwave2.0.Node_008.Binary_Sensor.tamperAber beim einlesen passiert nichts:
function getAllDetectors(){
detectorsOuterSkin = getDetectorsFromFunction(functionOuterSkin);
console.log("detectorsOuterSkin: " + detectorsOuterSkin);
Das log gibt dann:
javascript.0 (2816) script.js.common.Test_alarm: detectorsOuterSkin:
Ich kann die alarmanlage aktivieren (in objects), aber erkennt auch keine tur offnen obwohl ich hm-rpc.2.xxxxxx.1.STATE auch gelogged hab und gibt eindeutig 0 (geschlossen) und 1 aus. Hab auch uber eine variabele auf true/false versucht, funktioniert auch nicht. -
Weiss nicht welche taste aber bericht wurde schon versand....
Wass mache ich da falsch und wie kann ich die JSON datapoints verwenden?
thx,
-
Hier mal die screenshots:
-
@wykat bei Array kommt nichts rein schau mal in Zeile 77-79 die musst du bei Aufzählungen als Funktion angelegt haben. Und achte auf Groß-und Kleinschreibung.
-
@Homer-J said in Umfassendes Alarmanlagen-Skript:
@wykat bei Array kommt nichts rein schau mal in Zeile 77-79 die musst du bei Aufzählungen als Funktion angelegt haben. Und achte auf Groß-und Kleinschreibung.
Muss da irgendwie auf der leitung stehen. Meinst du zeilen 85 - 87 im original script (hatte das auch mal versucht)? Gibt's irgendwo ein beispiel? Hatte zuerst das hier aus diesem thread verwendet, das sollte aber falsch sein.
Danke.
-
@wykat bei dir sind es die Punkte 85-87 die musst du unter Aufzählung erstellen und deine jeweiligen Sensoren reinpacken.
Hier https://forum.iobroker.net/topic/31657/test-adapter-alarm-1-1-x gibt es aber auch einen leicht zu konfigurierenten Adapter. -
@Homer-J danke, denk hab's verstanden;
Das script wird nicht mehr angepasst, aber sensoren werden unter Aufzahlungen (heist bei mir in English ENUM).
Zuerst war diese option bei mir nicht eingeblendet (ENUM), jetzt ist es da
Konnte auch unter functions das ENUM 'alarmanlage_aussenhat' erstellen, nur fehlt mir das '+' um etwas zu zufugen. Irgend etwas fehlt da noch. Kann's nur loschen oder andern, nicht editieren. -
@wykat ändere mal die Ansicht dann muss ein Button editieren da sein und dort wählst du von deinen Sensoren den State aus.
-
@Homer-J Hat etwas anders funktioniert :-/.
Nach einblenden vom Enum und erstellen vom Enum.function.alarmanlage_aussen, Javascript neu gestartet und dann kann im objecten unter function die Enum alarmanlage ausgewahlt werden. Es muss das ganze modul gewahlt werden, nicht der alarm state. Alarm script neu gestartet und sensoren wurde erkannt. Wenn man es weis eigentlich sehr einfach. Keine problemen mit schreibweise.Jetzt habe ich leider andere problemen bekommen, ein z-wave modul funktioniert nicht mehr. Value steht jetzt auf 'number' wo es fruher nur boolean angezeigt hat. Werde es einmal ausklinken und wieder neu einbinden. so das es neu installiert wird.
Beim Homematic sensor wird wahrscheinlich das falsche open/closed gemeldet "Closed(0)". Noch nicht sicher wie ich das andern kann.
Durch diese 2 fehler kann die alarmanlage dann nicht mehr aktiviert werden, ohne sensoren geht's wieder.