Alarmanlage selbst bauen

Hallo zusammen, ich würde gerne selbst eine kleine Alarmanlage implementieren. Hier sind meine Überlegungen, zu denen ich gerne Feedback von euch hätte.

PIR Sensor (Infrarot) in der Wohnkabine und vielleicht in der Fahrerkabine

  • sowas oder sowas (was ist eigentlich der Unterschied)
  • über GPIO an den Core

Sirene

  • 125 db 12V Sirene an einem Relais
  • Gibt es andere Sirenen, die man über GPIO oder UART oder ähnliches steuern kann, um z.B. eine langsame Steigerung der Lautstärke zu erreichen, oder Anfangs nur ein Lichtsignal etc.?
  • Vielleicht über PWM am Dimmy, aber da hab ich eigentlich auch keinen Platz mehr
  • Wird automatisch aktiviert, wenn Bewegung detektiert wurde
  • Ggf mit 30 Sekunden Delay

Bluetooth Presence Scan

  • mit dieser Node alle 30 Sekunden überprüfen, ob eines unserer Handys in der Nähe ist

Push Nachrichten

  • mit Telegram Bot
  • wird gesendet, wenn der Alarm ausgelöst wird
  • eventuell als Erinnerung, wenn der Alarm noch aktiv ist, und ich am Auto bin → unsicher?

Deaktivieren der Alarmanlage

  • Bluetooth Scan?
  • Schalter?
  • Handy mit Passwortabfrage?

Ich bin mir noch unsicher bei der Logik, mit der die Alarmanlage aktiviert oder deaktiviert wird.

Aktivieren kann ich sie z.B. per Schalter - wir haben sowieso einen Schalter, der alle Lichter, Pumpe, Gas, etc auf einmal abschaltet, und gedrückt wird, wenn wir weg gehen. Weiterhin kann sich der Alarm automatisch aktivieren, wenn 30 Minuten keines unserer Handys in der Nähe war.

Allerdings möchte ich gerne vermeiden, ständig selbst versehentlich den Alarm auszulösen. Ich möchte aber eigenltich nicht, dass der Bluetooth Scan alleine den Alarm ausschaltet, da so ein Handy ja schnell mal geklaut werden kann. Das Drücken eines Schalters alleine ist eigentlich auch etwas unsicher, und außerdem muss ich dafür ja schon im Camper drin sein.

Um die Alarmanlage über das Handy zu deaktivieren, möchte ich eigentlich eine Passwort-Abfrage einbauen. Hat jemand schonmal was gebaut, um beim Schalten eines bestimmten Schalters ein Passwort zu verlangen?

Es wäre auch eine Idee, eine weitere LED außerhalb des Campers zu verbauen, die bei aktivierter Alarmanlage immer blinkt. Allerdings gehen mir leider mittlerweile die Relais am Core aus. :smiley:

Ich freue mich über alle Vorschläge!

So könnte eine Passwort Abfrage aussehen, ist mal der erste Entwurf.
der Text im Eingabefeld setzt sich nach 30 sec zurück.
Passwort ist zur Zeit “passwort”

[
    {
        "id": "04303146ce579e49",
        "type": "tab",
        "label": "Passwort Abfrage",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "fbb1ec5e780c95fa",
        "type": "function",
        "z": "04303146ce579e49",
        "name": "Passwort",
        "func": "let passwort = msg.payload\nif (passwort=== \"passwort\"){ //hier das passwort in das richtige ändern\n    msg.payload=true;\n    flow.set(\"Passwort\",true);\n}\nelse {\n    msg.payload = false;\n    flow.set(\"Passwort\",false);\n}\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 200,
        "wires": [
            [
                "7912b5233197a378"
            ]
        ]
    },
    {
        "id": "cc18547467bfaf2e",
        "type": "delay",
        "z": "04303146ce579e49",
        "name": "",
        "pauseType": "delay",
        "timeout": "30",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 310,
        "y": 260,
        "wires": [
            [
                "286ab7104881ad48"
            ]
        ]
    },
    {
        "id": "45869b629804fc6c",
        "type": "ui_text_input",
        "z": "04303146ce579e49",
        "name": "Passwort",
        "label": "Passwort",
        "tooltip": "",
        "group": "f85e4bf163091de9",
        "order": 1,
        "width": 0,
        "height": 0,
        "passthru": true,
        "mode": "text",
        "delay": 300,
        "topic": "topic",
        "sendOnBlur": true,
        "className": "",
        "topicType": "msg",
        "x": 220,
        "y": 200,
        "wires": [
            [
                "cc18547467bfaf2e",
                "fbb1ec5e780c95fa"
            ]
        ]
    },
    {
        "id": "286ab7104881ad48",
        "type": "function",
        "z": "04303146ce579e49",
        "name": "Reset",
        "func": " msg.payload=\"\";\n    \n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 470,
        "y": 260,
        "wires": [
            [
                "45869b629804fc6c",
                "e7012032763875b8"
            ]
        ]
    },
    {
        "id": "0f45d4ee6b7f3070",
        "type": "ui_button",
        "z": "04303146ce579e49",
        "name": "Alarm Aus",
        "group": "f85e4bf163091de9",
        "order": 1,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "Alarm Aus",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "topic",
        "topicType": "msg",
        "x": 230,
        "y": 140,
        "wires": [
            [
                "e7012032763875b8"
            ]
        ]
    },
    {
        "id": "e7012032763875b8",
        "type": "function",
        "z": "04303146ce579e49",
        "name": "Alarm Aus",
        "func": "let passwort = flow.get(\"Passwort\")\nlet check = msg.payload\nif(check==true && passwort==true){\n    msg.payload=true;\n}\nelse\nmsg.payload=false;\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 410,
        "y": 140,
        "wires": [
            [
                "5682a3aced8a2cfb",
                "9ec89130ab151808"
            ]
        ]
    },
    {
        "id": "f52e43decacc2b1d",
        "type": "debug",
        "z": "04303146ce579e49",
        "name": "debug 59",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 880,
        "y": 120,
        "wires": []
    },
    {
        "id": "7912b5233197a378",
        "type": "debug",
        "z": "04303146ce579e49",
        "name": "debug 60",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 680,
        "y": 200,
        "wires": []
    },
    {
        "id": "76f79f175b349486",
        "type": "comment",
        "z": "04303146ce579e49",
        "name": "hier Passwort ändern",
        "info": "",
        "x": 480,
        "y": 180,
        "wires": []
    },
    {
        "id": "9a4abb93544274c5",
        "type": "comment",
        "z": "04303146ce579e49",
        "name": "true = deaktiviert",
        "info": "",
        "x": 880,
        "y": 80,
        "wires": []
    },
    {
        "id": "5682a3aced8a2cfb",
        "type": "switch",
        "z": "04303146ce579e49",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 610,
        "y": 140,
        "wires": [
            [
                "f52e43decacc2b1d"
            ],
            [
                "6bfcb9c60b213a2f"
            ]
        ]
    },
    {
        "id": "6bfcb9c60b213a2f",
        "type": "debug",
        "z": "04303146ce579e49",
        "name": "debug 61",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 880,
        "y": 180,
        "wires": []
    },
    {
        "id": "9ec89130ab151808",
        "type": "debug",
        "z": "04303146ce579e49",
        "name": "debug 62",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 620,
        "y": 80,
        "wires": []
    },
    {
        "id": "f85e4bf163091de9",
        "type": "ui_group",
        "name": "Passwort Abfrage",
        "tab": "384bfa97aff8324a",
        "order": 1,
        "disp": true,
        "width": 6,
        "collapse": false,
        "className": ""
    },
    {
        "id": "384bfa97aff8324a",
        "type": "ui_tab",
        "name": "Passwort userflow",
        "icon": "dashboard",
        "order": 4,
        "disabled": false,
        "hidden": false
    }
]

Edit
Wenn du in der Texteingabe den Modus auf Passwort einstellst, bekommst du nur Punkte angezeigt. Und wenn du die delayzeit in der Texteingabe auf 0 stellst, musst du mit Enter bestätigen.
So könntest du auch ohne den oberen Bereich mit dem Button den Befehl auslösen.
Dann nimm doch soetwas, da hast du ne Versorgungsspannung von 12v

Danke, die Node teste ich mal.

Was hat dieser Bewegungsmelder für einen Vorteil? Der Output von 12V ist eher nervig, da ich den ja als GPIO Input am Core haben möchte. Die Sirene damit direkt zu schalten würde doch die ganze schöne Logik umgehen. Oder wie stellst du dir das vor?

Der Vorteil ist das du 12 V Versorgungsspannung hast, die anderen haben 6 bzw. 3,2 V.
Und welche GPIO´s hast du den am Core?
Die vertagen 12V, das sind die Digitalen Eingänge.
Oder gibt es da noch andere???
Ich persönlich würde mir so eine Alarmanlage mit einem esp oder ähnlichen machen,
da gibts fertige Bausätze, fertige Sketche, und die Aktivierung kannst du immer noch über pekaway realisieren. das ganze über MQTT oder so? dann verballerst du die relativ teuren Relays und IO am Core nicht, die werden eh knapp beim Bau. sondern nimmst ein paar euro fufzig teures Gerät.
Oder du nimmst einen pi zero w2 da kannst du auch node red drauf installieren,
und die Alarmanlage als komplett eigenes Gerät bauen. Dann hast du auch genug Platz für ne Wiederstandüberwachung der Alarm und Sabotageschleife wie das in Alarmanlagen halt so ist :wink: ???
Gruß Arno

Hi Sarah,

Mal ein wenig grundlegender gefragt. Wovor soll dich die Alarmanlage schützen.

  • Einbruch auf dem Campingplatz mit vorhandener Stromversorgung ( Trennen der Stromversorgung wird von der Batterie übernommen)
  • Einbruch auf Winterstellplatz, PKW zieht die deine Batterie leer.
  • Aufladen und mitnehmen des WoMos.

Als Schalter ( on/off ) wäre evtl die ibuttons sinnvoll. Die sind Physik und eindeutig.

Grüße

Chris

Ich glaub ich verstehe den Gedanken mit der Stromversorgung nicht so richtig.

Wir leben eigentlich Vollzeit auf Reisen in dem Camper, und wenn er doch mal länger in Deutschland steht, mache ich mir darum relativ wenig Sorgen.

Sie soll mich schützen, wenn ich ihn mal ein paar Stunden stehen lasse. Das ist dann entweder auf einem Campingplatz, irgendwo in der Landschaft, oder auf einem Parkplatz in einer Stadt.

Stromversorgung haben wir immer, über Solar und eine große Batterie. Landstrom ist nicht geplant.

Wahrscheinlich ist eine Sirene draußen in der Landschaft gar nicht so wirkungsvoll. Aber sobald andere Menschen außen rum sind schon. Daher ist es wohl vor allem der Fall Parkplatz tagsüber.

Sprichst du davon, automatisch die Stromversorgung zu kappen im Alarmfall? Damit könnte ich den Camper ja zB nicht mehr über GPS und Starlink orten…

Nee, das passte. Ging darum, das du nur “kurzzeitig” die Batterie nutzt und nicht 2 Wochen unbeaufsichtigt. Solar lädt zwar im Sommer genug auf, aber im Winter könnte es schwierig werden.