Alarmanlage mit Homebridge und dem ESP

  • So also wie fang ich hier an. Ich hatte die Idee eine Alarmanlage in Homekit selber einzubauen und das ganze über einen ESP.

    Mir war wichtig, dass ich nicht jedem Sensor sagen muss, dass er an die Alarmanlage melden muss, sondern die Alarmanlage sollte sich selbstständig die Daten der Sensoren holen.

    Auch sollten andere Geräte ein oder ausgeschaltet werden, wenn ein Alarm ausgelöst wird.

    Beispiel:

    1. Fenster wird eingeschlagen
    2. Alle Deckenlampen gehen aus
    3. Alle LED Streifen gehen an (Vorzugsweise Rot :evil:)
    4. Ein Lautsprecher oder Piepser wird ausgelöst und macht Lärm
    5. Ich bekomme eine Nachricht aufs Handy, dass ein Depp meine Scheibe eingeworfen hat
    6. Ich schau mir eine Kamera in dem Raum an und mach paar Bilder
    7. Der Einbrecher hat Angst und rennt weg...


    Es ist aber hier nicht das Ziel am Schluss mit einer Trefferwahrscheinlichkeit von 100% dazustehen.

    Ich habe aber trotzdem vor mal eine Zahl zu errechnen und dann zu schauen wie nah ich an große Hersteller komme und was ich im Vergleich spare.



    So also in der Vorbereitungsphase habe ich zunächst nach einem HTTP Alarmanlagen Plugin gesucht.

    Ich habe das hier verwendet.


    Mir war klar, dass in diesem Fall ein Alarmsystem 5 Zustände hat:

    • "0": Ich bin Zuhause und an
    • "1": Ich weg und an
    • "2": Es ist Nacht und an
    • "3": Ich bin keine Ahnung wo aber is eh aus
    • "4": Irgendein Depp hat Alarm ausgelöst


    So weit so gut.

    Das Sytem hat einen Wert, der von dem Handy erwartet wird und einen Wert den es tatsächlich hat.


    Logisch: Wenn der Wert 3 sein sollte, aber 4 ist, dann kann das Gerät Party machen. Wenn aber der Wert 2 ist, aber 1 sein sollte, dann muss das Gerät umschalten, aber keine Party veranstalten.


    Die jeweiligen Staten werden in einem bestimmten Interval abgefragt und demnach wird dann entschieden ob Party ist oder nicht.


    Leider hat mein Code noch einen Fehler und unschöne Stellen. =O


    Ich teile ihn dann demnächst mit euch, je nachdem wann ich Bock habe weiter daran zu arbeiten. ;)


    P.S.: Eure Meinungen interessieren mich, also lasst gerne paar Beiträge da 8o

  • Hallo Gauweiler42,


    voll Cooles Projekt, :thumbup: aber ich raffe zwei Dinge nicht so richtig. :/


    a) Welche Sensoren werden verwendet? (Fenster einschlagen)

    b) Hat es bei jeder Tür und Fenster einen Sensor? Oder werden Räume mittels Bewegunssensoren "abgetastet"?


    Oder habe ich komplett was falsch verstanden über die Funktion.


    Gruss und ich werde das Projekt mit grossem Interesse verfolgen.


    Thomas

  • Hey und Willkommen im Forum! ;)


    Ich kann mich swisssat nur anschließen, werd' dein Projekt mit großem Interesse verfolgen! Mich interessiert ebenfalls, wie du das mit den Sensoren und der Kamera im allgemeinen handhabst... :/


    Vielleicht kann ich deine Alarmanlage hernehmen, um eine flexible Dog-Cam zu bauen. Für verschiedene Räume :D


    Ist echt gut geschrieben btw. Hab richtig Bock auf mehr! =O


    #thema #abonniert


    Pascal

  • Also über die genau Raumabtastung muss ich mir noch Gedanken machen, aber das mit dem Fenstereinschlagen werde ich durch einen „Klatsch“ Sensor realisieren. Keine Ahnung wie der genau heißt hab davon hier schon einige rumfahren. Sind sehr simpel: wenn es einen Peak der Lautstärke gibt geben sie eine 0 statt einer 1 zurück. So und wenn die Alarmanlage scharf geschaltet ist werden die Sensoren überprüft. Wenn ich daheim bin halt nicht.
    Das ganze will ich dann mit weiteren Sensoren verknüpfen, das heißt:

    Ein Sensor reicht nicht um einen Alarm auszulösen, sondern wenn das System denkt das Fenster wurde eingeschlagen, dann muss auch noch der PIR Alarm geben. Oder halt eben ein anderer Sensor (deutlicher Temperatur Abfall, etc.)


    Das gute bei mir ist ich bin derzeit in einer Umzugsphase, also alle Sensoren etc werden bei mir nur auf einen Raum angewendet. Da habe ich schon Tür und Fenstersensoren verbaut.

    Sorry für die blöde Formatierung. Hab’s grad schnell am Handy geschrieben.

  • Mahlzeit,

    klingt nach einem spannenden Projekt! Ich finde , dass das Thema im Bereich "Smarthome" eh sehr wichtig ist.

    Ich habe auch noch eine Frage dazu:
    Wie genau werden die Sensoren abgefragt? Läuft auf jedem ESP ein eigener Webserver, den du von der Homebridge aus abfragst?

    Halt uns auf dem laufenden!

    Gruß
    Nick

  • Wie genau werden die Sensoren abgefragt? Läuft auf jedem ESP ein eigener Webserver, den du von der Homebridge aus abfragst?

    Ja auf jedem ESP soll ein eigener Webserver laufen, da ich ja auch die Daten der Sensoren in der Home App nutzen möchte.

    Zum Beispiel ein Bewegungsmelder kann ja auch dann das Licht anschalten und nicht nur für die Alarmanlage nutzbar sein. :)

  • Inhaltsverzeichnis [Verbergen]

    Update auf Version 2.0

    Ja Version 1.0 habt ihr nie gesehen :D

    Ich hab mir jetzt nochmal Gedanken gemacht. Leider erst nach dem programmieren...;(


    Ich nutze derzeit schon das Homebridge-http-webhooks Plugin. Ich habe gestern gesehen, dass ich da ja auch die Möglichkeit habe eine Alarmanlage zu programmieren :|

    Da liegt es jetzt für mich natürlich nahe dieses Plugin zu verwenden. Ich muss dafür aber den Code ändern :sleeping:


    Ich möchte jetzt aber mit euch mein Programm für das oben beschriebene Plugin mit euch teilen und durchgehen.

    Dann können auch Menschen ohne das webhooks plugin eine Alarmanlage einbauen.

    Und die Funktionsweise ist anhand dieses Plugins einfacher zu erklären weil man direkt für jeden Status eine eigenen Funktion definieren kann.

    Das macht das ganze etwas übersichtlicher ;)



    So hier ist der Code für die Alarmanlage. Ich erkläre erstmal kurz was ihr ändern müsst, wenn ihr einfach per Copy and Paste anfangen wollt.

    Wichtig hierbei zu beachten ist, dass noch einige Dinge durch euch implementiert werden müssen, wenn ihr sie übernehmen wollt.

    Also was ihr ändern müsst:

    • Zeile 8,9: Tragt eure Wifi Daten ein.

    Was ihr neu schreiben müsst:

    • Zeile 99-104: Die Abfrage der Sensoren über http
    • Zeile 108: Die Aktionen, die ihr durch einen Alarm auslösen wollt


    Was wichtig ist zu wissen für euch:

    Derzeit könnt ihr die Alarmanlage nicht über die Homebridge deaktivieren. Dafür solltet ihr als Hardware einen Knopf anbauen, über den dann der currentState wieder auf 3 gesetzt wird.

    Wenn ihr das per Homebridge versucht, wird eure Homebridge abstürzen und sich selbst wieder neu starten. Für mich ist das kein Problem, weil die Aktoren der Alarmanlage eh per http geschaltet werden. Es dauert einfach kurz bis die Homebridge wieder da ist :)


    Also hier dann der Teil mit der Erklärung des Codes Ich gehe dabei nicht auf die Standard Sachen der Tutorials ein:

    Hier werden die verschiedenen Stadien der Alarmanlage erbeten.

    Es ist wichtig zu wissen, dass der targetState der Status ist, der von der Home App erwartet wird. Wenn der aktuelle Status, also currentState davon abweicht wird der currentState auf den Wert des targetState gesetzt, außer der currentState ist 4. In diesem Fall wird Alarm ausgelöst.


    Wie genau die Änderungen oder der Alarm verwaltet wird sehen wir hier:


    In der Funktion handleChanges werden die Werte von currentState und targetState, welchen wir durch die http Anfrage gesetzt haben, verglichen und angepasst oder es wird ausgeführt, was passieren soll wenn der Alarm ausgelöst wurde. In diesem Fall wird bei Alarm nur eine Nachricht per Serial gesendet.



    Gut das wars erstmal mit dem Update :P

    Wenn ihr noch Fragen habt, dann stellt sie einfach hier drunter :saint:

  • Moin Gauweiler42,


    magst du vielleicht nochmal deine config.json vomhomebridge-http-webhooks Plugin hierein Posten?

    Ich blicke leider beim Plugin noch nicht ganz dadurch.

    Ich wollte mir nämlich auch eine Alarmanlage für mein Boot bauen, wo ich einen Bewegungssensor und einen Erschütterungssensor mit einbinde. Dazu möchte ich noch 2 LED Streifen ansteurern. Die Sensoren sowie die LEDs möchte ich an einen ESP anschließen, dieser soll dann die Signale an den Pi schicken, wo ich dann mit Apple HomeKit die Sensoren auslesen und die LEDs steuern kann.

    Ich versteh nun aber noch nicht ganz, wie ich die Sensordaten an HomeKit schicken kann, so dass mir die App bescheid sagt, du da ist gerade einer auf deinem Boot.

    Vielleicht kannst du oder ein anderer mir ja dabei helfen:)


    LG
    Brocki