Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
31-03-2023, 22:38
Beitrag: #1
Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Hallo zusammen,

Zunächst einmal möchte ich sagen, ein richtig tolles Forum habt ihr hier :-). Auch wenn sich hier die allermeisten Themen eher weniger um DIY zu drehen scheinen (zumindest nicht auf dem nachfolgend beschriebenen Level Wink ) so habe ich hier doch einiges grundsätzliches über Alarmanlagen bzw. Einbruchmeldeanlagen erfahren, was mir bei der Realisierung meines DIY-Projekt nützlich war.

Genau von diesem DIY-Projekt möchte ich gerne berichten. Denn es ist denke ich einfach mal was völlig anderes, als was ihr hier sonst so gewohnt seid Big Grin.

Alles begann mit einer professionellen Einbruchsmeldeanlage bei meinem Arbeitgeber, die diesem in letzter Zeit viel Geld für Technikerbesuche gekostet hat, nachdem bei einer Sanierung wohl einige nicht ganz unwichtige Leitungen zerstört wurden. Ich selber wohne auf dem Dorf in einem großen Einfamilienhaus und hatte noch einen ungenutzten Raspberry Pi herumliegen. Da hab ich mir gedacht, ich experimentiere mal ein wenig. Und nun, ein paar Monate später. habe ich mir denke ich schon ein recht ansehnliches Alarmsystem in meinem Haus aufgebaut.

Herausgekommen ist ein wahres Unikat. Denn nicht nur mit Hardware und Meldern habe ich experimentiert und integriert, sondern auch auch die Software meines Alarmsystems ist komplett selbst geschrieben.

Warum mache ich mir diesen doch recht gewaltigen Aufwand? Nun, letztlich weil mir sowohl programmieren, als auch den Lötkolben schwingen sehr viel Spaß macht. Ohne diese beiden Voraussetzungen wäre dieses Projekt sicherlich schnell im Sande verlaufen. Dadurch, dass ich mir aber eben auch die Software selber ausdenke und umsetze, liegt es komplett im meiner eigenen Hand zu definieren was mein Alarmsystem können soll und das dies auch letztlich auch funktioniert Smile. Ich habe hier im Forum viele frustrierte Beiträge von Leuten gelesen, weil sie nicht richtig verstehen wie ihre Anlage funktioniert, warum sie was tut, Features fehlen, oder die Software auch einfach mal Bugs enthält. Vor all diesen Problem stehe ich nicht, bzw. kann sie zumindest selber beheben. Ich weiß ganz genau, was meine Anlage kann und wie sie funktioniert. Und wenn mir ein Feature fehlt, dann programmiere ich es mir "einfach" dazu. Natürlich steckt dahinter auch ein gewisser Aufwand, aber wie gesagt, es ist wirklich wichtig, dass man daran auch Spaß hat.

Die Alarmzentrale:
Wie erwähnt dient als Alarmzentrale ein Raspberry Pi - ganz genau ein RPi 4 mit 4GB RAM mit installiertem Rasbian Lite. Die Alarmzentrale auf Softwareseite besteht im wesentlichen aus einem Python-Script und einem Configfile. Im Configfile können Bereiche, Melder und Benachrichtigungen definiert und verknüpft werden. Das Script ließt das Configfile aus und durchläuft dann endlos in Schleife alle zu einem Bereich zugeordneten Melder. Meldet ein Melder einen Alarm, werden die mit dem Bereich verknüpften Benachrichtigungsmittel ausgelöst. Diese können alles mögliche sein. Ich lasse mich aktuell über 2 unabhängige Push-Dienste benachrichtigen, außerdem werden Außen- und Innensignalgeber als weitere Benachrichtigungsmittel aktiviert. Das war jetzt der Ablauf mal ganz grob beschrieben. Tatsächlich ist das Script nicht nur ein einziges Script sondern besteht inzwischen aus diversen Modulen, auch zum Scharfschalten, Unscharfschalten, Alarme verarbeiten, quitieren usw... Alleine die Programmierung hat schon ein paar Wochenenden verschlungen, aber mit dem Resultat bin ich inzwischen sehr zufrieden. Ich möchte an dieser Stelle hier noch nicht zu tief ins Detail gehen, der Beitrag wird ja schon lang genug, aber ich erzähle sehr gerne noch ausführlicher wenn Interesse besteht^^.

ESP32 zum Melder einsammeln:
Neben dem Raspberry Pi, an dessen GPIO-Ports auch Melder angeschlossen werden können, habe ich im Haus mehrere ESP32 verteilt. Für die jenigen die ESP32 nicht kennen, das ist ein kleiner programmierbarer Mikrocontroller der ähnlich wie der Raspberry Pi über GPIO-Pins verfügt die als Ein- und Ausgang programmiert werden können. ESP32 können sich per WLAN mit einem Netzwerk verbinden und je nach Programmierung die verschiedensten Dinge tun. In meinem Fall läuft auf diesen ESP32 ein kleiner Webserver der eine API für die GPIO-Pins bereitstellt. Der Zustand aller GPIO-Pins an denen Melder angeschlossen sind, können über den Webserver abfragt werden. Genau dies macht dann die Script-Schleife der Alarmzentrale periodisch - mindestens 1x alle 2 Sekunden. Dieses Intervall hat in meinen Versuchen bisher immer gut funktioniert, um die Alarme schnell genug zu registrieren. Sehr wichtig für den Betrieb der ESP32 ist ein gut ausgebautes WLAN-Netz, da die Antennen relativ schwach sind. Ich habe auf jeder Etage und auch im Keller Access-Points, sodass dies bei mir gewährleistet ist.

Webapp:
Um die Alarmzentrale komfortabel bedienen zu können, habe ich neben der Alarmzentrale ein weiteres Python-Script gebastelt, welches einen Webserver mit einer kleinen Webapp ausgibt, über welche die definierten Bereiche Scharf & Unscharf geschaltet werden können. Außerdem können hierüber auch bestehende Alarme quittiert und natürlich der aktuelle Status der Bereiche abgefragt werden.

Bedienteil:
Auch ein Bedienteil habe ich gebastelt. Dieses besteht ebenfalls aus einem ESP32, einem schlichten 2 zeiligen Display und einem 4x4 Keypad über welches Pin-Codes eingegeben werden können. Der ESP32 übermittelt die eingegebene Pin per HTTP an eine API der Webapp, welche dann die zum Code hinterlegte Aktion ausführt (Scharfschalten, Unscharfschalten, Quittieren, Status abfragen).

Die Melder:
Ich habe im Augenblick ausschließlich Reed-Schalter für Türen und Fenster sowie Bewegungsmelder im Einsatz. Diese sind allesamt ziemlich Dumm. An den Reed-Schaltern werden 2 Kabel angeschlossen, auf der einen Seite kommen 3,3v vom RPi oder ESP32 rein, auf der anderen Seite geschlossen oder geöffnet wieder raus auf einen GPIO-Eingang. Die Bewegungsmelder haben einen potentialfreien Schaltrelais. Auch auf diesen gehen 3,3v auf der einen Seite rein und auf der anderen Seite auf ein GPIO-Eingang. Die Bewegungsmelder selber müssen zudem noch mit 12v versorgt werden, die kommen aktuell einfach von einem Netzteil.

Signalgeber:
Ich habe insgesamt 4 Signalgeber im Einsatz. Der Wichtigste ist ein ABUS SG1650, den ich in Kürze bei den anstehenden Arbeiten an der Fassadendämmung dann außen installieren werde. Er soll die Nachbarschaft informieren und natürlich abschrecken. Er wird deshalb als Einziger über ein Relais von einem GPIO-Out des RPi aktiviert. Die 12v die er braucht kommen von einem Netzteil welches ebenfalls an der USV angeschlossen ist. Ansonsten befinden sich auf jeder Etage je eine 120dB laute China-Sirene als Innensignalgeber für ein paar Euro das Stück. Diese brauchen ebenfalls 12v und werden über ein Relais aktiviert, welches von einem einem der ESP32 geschaltet wird. Ich bin echt erstaunt, was aus diesen kleinen Dingern heraus kommt, mit 120dB versprechen sie echt nicht zu wenig Big Grin.


Dinge die ich noch verbessern wollen würde:
Im Augenblick kann das Alarmsystem Stromausfälle nicht wirklich abfangen, die ESP32 und die BWMs hängen direkt mit einem Netzteil am Stromnetz. Die Access Points bleiben tatsächlich an, die werden mit PoE von einem Switch versorgt, der USV gepuffert ist. Die hält mindestens 2 Stunden. Der RPi selber und auch der Router und das Internetmodem hängen ebenfalls daran. Prinzipiell ist Stromausfall aber erstmal ein Risiko welches ich bereit bin einzugehen. Immerhin bekomme ich eine Störungs-Push-Nachricht, wenn die ESP32 aus welchen Gründen auch immer nicht erreicht werden können. Auch eine Lösung um ein Jamming-Angriff auf das WLAN-Signal zu detektieren fände ich noch toll. Da der Außensignalgeber ja funklos angesteuert wird, ließe dieser sich ja aktivieren, wenn der RPi da eine zuverlässige Information über ein Jamming-Angriff erhält.

Für Ideen zur Verbesserung des Systems bin ich gerne offen. Mir juckt es trotz der vielen Stunden immer noch in den Fingern Big Grin . Wenn sich also noch interessante Aspekte ergeben die ich bisher nicht berücksichtigt habe, baue ich gerne noch weiter.

Sobald ich etwas Zeit finde den Code ein bisschen noch aufzuräumen und komplett auf English zu übersetzen, veröffentliche ich ihn mal. Das System funktioniert tatsächlich viel vieeeel besser als ich anfangs erwartet hätte. Da lasse ich gerne jeden der auch Bock auf so richtig DIY hat, gerne teil dran haben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 07:15
Beitrag: #2
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Hallo DYIler,
das klingt spannend. Kannst du deinen Code zur Verfügung stellen?
Aus deinem Beitrag entnehmen ich, dass du jedes Gerät deiner Alarmanlage mit einem Puffer mit Strom versorgen musst oder Kabel zu jedem Teil legen musst, dass von der USV gespeist wird.
Viele Grüße
Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 13:36
Beitrag: #3
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Moin,

schön das sich mal jemand die Mühe und den Spaß macht da selbst was zu kreieren. EMZ ist ja normal nur ein Relais in Selbsthaltung mit Steckernetzteil und Akku. Melder gibt es in jeder Qualität fertig. Die EMZ kann man natürlich auch etwas aufwändiger (siehe #1) konstruieren ;-)

Viel Erfolg

Andreas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 13:49
Beitrag: #4
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
(01-04-2023 13:36)angos_ schrieb:  EMZ ist ja normal nur ein Relais in Selbsthaltung mit Steckernetzteil und Akku.

Viel Erfolg

Andreas

Das meinst du jetzt aber nicht wirklich ernst, oder? Cool

Viele Fehler sind RTFM Fehler - Read The Fucking Manual
Telenot, Daitem, UTC, Hikvision AxPro, Lupus, AVS
www.peteralarm.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 13:52
Beitrag: #5
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Hi,

Alle BWMs und Türkontakte sind verkabelt und zwar entweder bis zum RPi aka Alarmzentrale oder bis zu einem der ESP32. Die ESP32 befinden sich in Abzweigdosen. In diese führe ich ein 5v- oder 12v-Netzteil ein, je nachdem ob BWMs oder eine Sirene mitversorgt werden müssen, oder nur Türkontakte am ESP32 hängen. Bei 12v-Netzteilen muss ich ein Step-Down Converter vor dem ESP32 setzen, der die Spannung auf 5v herunterregelt.

Den RPi versorge ich mit USV-Strom einer APC Back-UPS 900, die ESP32 hängen momentan direkt am Netz und sind nicht direkt gegen Stromausfall geschützt.

Das Konzept ist stets so, dass das Python-Script auf dem RPi die Zustände der GPIO-Pins der ESP32 per HTTP abfragt. Sollten die ESP32 wegen Stromausfall oder anderen Gründen (z.B. Jammer auf 2,4GHz etc.) ausfallen, führt dies zu einer Exception. Dies wird dann als Störung gewertet und ich erhalte eine Push-Nachricht für jeden Melder, der nicht mehr abgefragt werden kann. Sobald der ESP32 wieder antwortet, erfolgt dann ebenfalls wieder eine Push-Nachricht, dass die Störung beendet ist.

Es wäre ein leichtes das nicht-erreichen der ESP32 auch als Alarm zu bewerten. Dies hätte aber zur Folge, dass bei einem Stromausfall dann eben auch immer Alarm ausgelöst werden würde.

Theoretisch lassen sich ESP32 auch per Batterie betreiben. Das geht aber in meinem Konzept so nicht auf, da die ESP32 permanent mit dem WLAN verbunden sein müssen, damit der RPi sie abfragen kann. Die Batterien wären Ruckzuck leer gesogen. Eine Art 12v Mini-USV mit der ESP32, BWMs und Sirenen bei Netzausfall weiter versorgt werden würden, wäre cool. Wenn jemand eine Idee hat, wie man sowas kompakt umsetzen könnte, gerne schreiben Big Grin

Den Code gibt es in Kürze :-).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 15:39
Beitrag: #6
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Also kurzum geht die halbe EMA bei Stromausfall nicht mehr...?

Ehemals Inhaber von KM Sicherheitstechnik

Aktuell: Technik und Planung bei www.plusalarm.de
- Hier privat unterwegs. -
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 18:09
Beitrag: #7
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Im Augenblick kann man das so sehen, ja Wink. Ist eben ein DIY-Projekt welches im Rahmen dessen was umgesetzt ist, schon ziemlich gut funktioniert. Aber ausbaufähig ist es definitiv an diversen Stellen auch noch, um richtig cool zu werden Cool

Vorschläge wie ich einen kompakten Puffer realisieren könnte, der idealerweise 12v Ausgangsspannung und 5W liefert (da ist schon Reserve mit eingerechnet), den ich zwischen Netzteil und ESP32/BWM/Sirene setzen kann, sind sehr gerne willkommen Smile.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 19:41
Beitrag: #8
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Schau mal nach Mean Well Netzteilen mit Akkupufferung. Sind Preisgünstig und funktionieren sehr gut.

Viele Fehler sind RTFM Fehler - Read The Fucking Manual
Telenot, Daitem, UTC, Hikvision AxPro, Lupus, AVS
www.peteralarm.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 20:17
Beitrag: #9
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
So, hier ist der Code des Python-Projekts:
https://github.com/DIYler/alarmzentrale-rpi-esp32

Eigentlich wollte ich es noch auf Englisch übersetzen, war mir aber jetzt auf die Schnelle doch etwas viel Aufwand und ich denke mal zumindest hier beherrschen alle die Deutsche Sprache Smile.

Ein ausführliches Readme fehlt noch. Am wichtigsten sind jedoch die beiden Dateien alarmzentrale.py und alarmzentrale-webserver.py .

alarmzentrale.py ist das Herzstück des Systems, hier ist die beschriebene Schleife zu finden, welche die Bereiche und Melder aus dem configfile abfragt, welche unter config/config.json zu finden ist.

alarmzentrale-webserver.py stellt eine Webseite auf http://RPI_IP:5000 bereit, mit der das System gesteuert werden kann.

Ich habe in der config.json exemplarisch 2 Bereiche "HausIntern" und "HausExtern", ein paar Melder - sowohl direkt mit GPIOs des RPi, als auch mit ESP32 verbundene und in den Benachrichtigungen 2 Signalgeber sowie 2 Push-Dienste definiert.

Wenn ihr direkt ./alarmzentrale.py ausführt, könnte das Script sogar ohne Anpassungen schon laufen. Spätestens beim Versuch die Bereiche scharfzuschalten macht diese exemplar-config dann sicherlich Probleme, da die Melder, ESP32, Signalgeber ja nicht wirklich bei euch angeschlossen/erreichbar sind. Da müsstet ihr dann eine config mit existierenden Meldern in die config.json schreiben.

Werft als erstes einen Blick in alarmzentrale.py, dann seht ihr welche anderen Module das Script aufruft. Ich habe versucht die Scripte ausführlich zu kommentieren, damit der Code nachvollziehbarer wird. Es ist aber denke ich trotzdem eine Menge Holz, es steckt schon einiges an Hirnschmalz drin Smile. Fragen und Anmerkungen, gerne hier im Thread Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01-04-2023, 21:03
Beitrag: #10
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Moin,

nur weil ja noch der 1. April ist...

das besagte Netzteil und diese Universalrelais https://www.eltako.com/fileadmin/downloa..._dtsch.pdf machen fast das gleiche. :-)

Viel Erfolg

Andreas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09-06-2024, 11:00
Beitrag: #11
RE: Ein DIY Alarmsystem mit Raspberry Pi und ESP32 :)
Hallo,

eine interessante Arbeit. Bisher steuere ich die Aufnahmen meine Kameras per Lichtschranke. Ich musste in die NAS, eine Synology, eine neue Festplatte einbauen und seither funktioniert das nicht mehr. Ein blöder Fehler "Caused by SSLError(CertificateError)", den der Service nicht in der Lage ist abzustellen. Ich möchte das nun direkt speichern, doch fehlt mir das Wissen wie ich den Stream abgreifen und Speichern kann. Du hast das offensichtlich gelöst. Kannst Du mir mit einem Startup helfen?

Jetzt gibt es Alarm über einen ESP8266 mit Laser-Lichtschranke, die an einen MQTT Broker eine message sendet. Ein Python Script wertet das aus und ergreift weitere Maßnahmen, wie Licht einschalten, Sprachalarm ausgeben und letztlich schickte es dann den Befehl zum starten einer Aufnahme an die Surveillance Station. Anschließend wird über ein Telegram Bot der Alarm ausgegeben. Ich hatte den Umweg über MQTT und Python gewählt weil der ESP selbst nicht in der Lage war den langen https Befehl abzusetzen. Jetzt stehe ich wieder am Anfang und suche eine bessere Lösung. Also entweder durch den ESP bei Alarm über ein PHP Script die Aufnahme direkt starten, oder eben weiter über Python mit MQTT. Wichtig wäre halt zunächst das speichern einer Aufnahme durch eine der beiden Sprachen.


Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kennt jemand das GIRA Alarmsystem ssb-security 0 1.175 15-01-2022 13:59
Letzter Beitrag: ssb-security
  Wer kennt das Alarmsystem Sp310 von Safe2home? Toledon 20 21.014 07-09-2020 16:23
Letzter Beitrag: Ja_ich
  Reparatur antikes Alarmsystem "System Elektronik Z 075-1-8" DenisB. 17 11.957 26-12-2019 09:06
Letzter Beitrag: peteralarm
  Wer kenn das Alarmsystem Ajax ? pure_y2k 43 51.373 01-12-2019 22:25
Letzter Beitrag: wolli1964
  HA-871 Alarmsystem Hardy60 3 7.886 19-04-2011 19:44
Letzter Beitrag: Ollik



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste