Hinweis

Die nachfolgend beschriebene Lösung zur Rauchmelder-Alarmierung über Pocsag Südtirol wurde von der Freiwilligen Feuerwehr Auer umgesetzt.
Ein besonderer Dank gilt der FF Auer für die Zusammenarbeit sowie für die Freigabe, diese bewährte Praxislösung als FAQ-Beitrag zur Verfügung zu stellen.

Gemäß AGB Punkt 4.2 wird keine Garantie für die einwandfreie Funktion des Dienstes übernommen und nicht für Ausfälle, Fehlfunktionen oder daraus resultierende Schäden gehaftet.


1. Ziel des Systems

Ziel dieses Systems ist es, den Rauchmelderalarm automatisch über Pocsag Südtirol an die Organisation zu übermitteln, sodass bei Raucherkennung sofort ein Einsatz oder alternativ eine Nachricht in der Einsatz-App ausgelöst wird.

Durch dieses System werden Rauchmelder im Gerätehaus sowie in Fahrzeugen direkt mit der bestehenden Pocsag Südtirol Alarmierungsinfrastruktur verbunden. Dadurch ist eine zentrale, einheitliche und schnelle Alarmierung bei Raucherkennung in allen relevanten Bereichen gewährleistet.

2. Systemübersicht

2.1 Verwendete Komponenten

  • Rauchmelder: Shelly Plus Smoke
  • Logik- und Schnittstellenserver: Node-RED (gehostet auf einem Raspberry Pi)
  • Netzwerk:
    • Router mit Internetzugang
    • WLAN für die Rauchmelder
    • Statische IP-Adresse für den Node-RED-Server
  • Alarmierungsinfrastruktur: Pocsag Südtirol API (Server S1 & S2)

3. Grobe Funktionsübersicht

  1. Der Shelly Plus Smoke erkennt Rauch oder einen Probealarm.
  2. Der Rauchmelder sendet einen Webhook an den Node-RED-Server.
  3. Node-RED verarbeitet die Meldung und erstellt einen API-Call.
  4. Node-RED sendet den API-Call parallel an beide Pocsag Südtirol Alarmierungsserver.
  5. Pocsag Südtirol alarmiert die zugewiesene Einsatzschleife:
    • Bei Alarm → Einsatz
    • Bei Probealarm → Nachricht

4. Detaillierter Ablauf

4.1 Rauchmelder – Shelly Plus Smoke

Funktionsweise

Die Shelly Plus Smoke Rauchmelder sind batteriebetrieben, um Energie zu sparen.

  • Das Gerät wacht alle 24 Stunden auf:
    • Verbindung mit dem WLAN
    • Übermittlung von Statusdaten (Batterie, Erreichbarkeit, Funktion)
  • Sofortiges Aufwachen, wenn:
    • Rauch erkannt wird
    • Der Probealarm manuell ausgelöst wird

Webhook-Konfiguration

Im Shelly Plus Smoke werden zwei Aktionen (Webhooks) konfiguriert.

Webhook – Rauchalarm

http://<IP>:1880/endpoint/rauchmelder-alarm?device=Rauchmelder-XYZ

Webhook – Probealarm

http://<IP>:1880/endpoint/rauchmelder-probe-alarm?device=Rauchmelder-XYZ

Aufbau der URL

Bestandteil Beschreibung
<IP> IP-Adresse des Node-RED-Servers
:1880 Standard-Port von Node-RED
/endpoint/rauchmelder-alarm Endpoint für echten Alarm
/endpoint/rauchmelder-probe-alarm Endpoint für Probealarm
?device=Rauchmelder-XXX Name des auslösenden Rauchmelders

Wichtig: Der device-Name sollte für jeden Rauchmelder eindeutig vergeben werden (z. B. Rauchmelder-TLF, Rauchmelder-HALLE).

4.2 Node-RED Server

Allgemeine Informationen

  • Node-RED läuft auf einem Raspberry Pi
  • Der Server benötigt eine statische IP-Adresse
  • Es sind zwei getrennte Abläufe konfiguriert:
    • Alarm
    • Probealarm

Ablauf in Node-RED

  1. Node-RED lauscht auf die Endpoints /endpoint/rauchmelder-alarm und /endpoint/rauchmelder-probe-alarm.
  2. Bei Eingang einer Nachricht wird diese an eine Function Node weitergeleitet.
  3. Die Function Node prüft die Parameter, erstellt den POST-Body und baut den Meldungstext dynamisch zusammen.

Meldungstext – Beispiele

  • Alarm: GERÄTEHAUS – Rauchmelder TLF
  • Probealarm: PROBEALARM – GERÄTEHAUS – Rauchmelder TLF

Unterschied Alarm / Probealarm

Merkmal Alarm Probealarm
API-Typ A C
Liste Alarmliste Nachrichtenliste
Text Normal „PROBEALARM – …“

4.3 Pocsag Südtirol API

API-Endpunkte

  • https://s1.pocsagsuedtirol.it/api/new
  • https://s2.pocsagsuedtirol.it/api/new

POST-Body (Beispiel)

{
  "accesskey": "XXX",
  "ric": "XXX",
  "type": "A",
  "message": "GERÄTEHAUS - Rauchmelder TLF"
}
Feld Beschreibung
accesskey Authentifizierung bei der POCSAG-API
ric Ziel-RIC
type A = Alarm, C = Nachricht
message Meldungstext

Wichtig:

  • Derselbe Text mit derselben RIC darf nur alle 6 Minuten gesendet werden.
  • RIC und Access-Key werden über den Pocsag Südtirol Support vergeben. (support@pocsagsuedtirol.it)

5. Ausfallsicherheit

Stromversorgung

  • Installation einer USV empfohlen
  • Router und Node-RED-Server an die USV anschließen
  • Betrieb auch bei Stromausfall möglich

Monitoring

  • Überwachung der Erreichbarkeit von Node-RED
  • Überwachung der Internetverbindung
  • Benachrichtigung des Administrators bei Ausfällen

Rauchmelder-Überwachung

  • Offline-Meldung, wenn sich ein Rauchmelder länger als 24 Stunden nicht meldet
  • Meldung bei Batteriestand unter 20 %

Rauchmelder in Fahrzeugen

Befindet sich ein Fahrzeug außerhalb der WLAN-Reichweite, kann keine Verbindung zu Node-RED hergestellt werden. In diesem Fall erfolgt kein Meldung über Pocsag Südtirol App, sondern ausschließlich ein lokaler Alarm am Rauchmelder.

6. Code Node-RED

Der folgende Code kann direkt in Node-RED importiert und angepasst werden.

[{“id”:”3ab27731aae0b859″,”type”:”tab”,”label”:”Rauchmelder Pocsag Südtirol”,”disabled”:false,”info”:””,”env”:[]},{“id”:”dfdd44b450975b84″,”type”:”http in”,”z”:”3ab27731aae0b859″,”name”:””,”url”:”/rauchmelder-alarm”,”method”:”get”,”upload”:false,”skipBodyParsing”:false,”swaggerDoc”:””,”x”:190,”y”:240,”wires”:[[“d840dcaff0df9100”]]},{“id”:”13fae70aab56c6d4″,”type”:”http in”,”z”:”3ab27731aae0b859″,”name”:””,”url”:”/rauchmelder-probe-alarm”,”method”:”get”,”upload”:false,”skipBodyParsing”:false,”swaggerDoc”:””,”x”:220,”y”:380,”wires”:[[“54c136dea8aa14ef”]]},{“id”:”51abcdfbc2bcd94a”,”type”:”http request”,”z”:”3ab27731aae0b859″,”name”:”API Pocsag Südtirol Server 1″,”method”:”POST”,”ret”:”obj”,”paytoqs”:”body”,”url”:”https://s1.pocsagsuedtirol.it/api/new”,”tls”:””,”persist”:false,”proxy”:””,”insecureHTTPParser”:false,”authType”:””,”senderr”:false,”headers”:[],”x”:1100,”y”:280,”wires”:[[]]},{“id”:”d840dcaff0df9100″,”type”:”function”,”z”:”3ab27731aae0b859″,”name”:”Prepare API Payload – ALARM”,”func”:”msg.headers = {\n\”Content-Type\”: \”application/json\”\n};\n\n// Sicherheitscheck\nif (!msg.payload || !msg.payload.device) {\n node.error(\”Kein Alarm im Payload vorhanden\”, msg);\n return null;\n}\n\nmsg.payload = {\n accesskey: \”XXX\”,\n ric: \”XXX\”,\n type: \”A\”,\n message: \”GERÄTEHAUS – \” + msg.payload.device\n};\n\nreturn msg;”,”outputs”:1,”timeout”:0,”noerr”:0,”initialize”:””,”finalize”:””,”libs”:[],”x”:730,”y”:240,”wires”:[[“51abcdfbc2bcd94a”,”2922ddbb5e752431″]]},{“id”:”2922ddbb5e752431″,”type”:”http request”,”z”:”3ab27731aae0b859″,”name”:”API Pocsag Südtirol Server 2″,”method”:”POST”,”ret”:”obj”,”paytoqs”:”body”,”url”:”https://s2.pocsagsuedtirol.it/api/new”,”tls”:””,”persist”:false,”proxy”:””,”insecureHTTPParser”:false,”authType”:””,”senderr”:false,”headers”:[],”x”:1100,”y”:360,”wires”:[[]]},{“id”:”54c136dea8aa14ef”,”type”:”function”,”z”:”3ab27731aae0b859″,”name”:”Prepare API Payload – PROBE”,”func”:”msg.headers = {\n \”Content-Type\”: \”application/json\”\n};\n\n// Sicherheitscheck\nif (!msg.payload || !msg.payload.device) {\n node.error(\”Kein Alarm im Payload vorhanden\”, msg);\n return null;\n}\n\nmsg.payload = {\n accesskey: \”XXX\”,\n ric: \”XXX\”,\n type: \”C\”,\n message: \”PROBEALARM – GERÄTEHAUS – \” + msg.payload.device\n};\n\nreturn msg;”,”outputs”:1,”timeout”:0,”noerr”:0,”initialize”:””,”finalize”:””,”libs”:[],”x”:730,”y”:380,”wires”:[[“51abcdfbc2bcd94a”,”2922ddbb5e752431″]]},{“id”:”3157fd4281c10667″,”type”:”comment”,”z”:”3ab27731aae0b859″,”name”:”Webhook mit Wert wird empfangen z.B. -> Rauchmelder-TLF ->”,”info”:””,”x”:410,”y”:280,”wires”:[],”icon”:”font-awesome/fa-info”},{“id”:”a4b02e161e5eec96″,”type”:”comment”,”z”:”3ab27731aae0b859″,”name”:”API und Einsatztext wird erstellt -> z.B. GERÄTEHAUS – Rauchmelder TLF ->”,”info”:””,”x”:1000,”y”:200,”wires”:[],”icon”:”font-awesome/fa-info”},{“id”:”2fea283e18060f07″,”type”:”comment”,”z”:”3ab27731aae0b859″,”name”:”API und Einsatztext wird erstellt -> z.B. PROBEALARM – GERÄTEHAUS – Rauchmelder TLF ->”,”info”:””,”x”:1050,”y”:440,”wires”:[],”icon”:”font-awesome/fa-info”},{“id”:”cef9f06ac00358e4″,”type”:”comment”,”z”:”3ab27731aae0b859″,”name”:”Pocsag Südtirol Server wird kontaktiert”,”info”:””,”x”:1110,”y”:320,”wires”:[],”icon”:”font-awesome/fa-info”},{“id”:”a69aa17d9288d7b2″,”type”:”comment”,”z”:”3ab27731aae0b859″,”name”:”Webhook mit Wert wird empfangen z.B. -> Rauchmelder-TLF ->”,”info”:””,”x”:410,”y”:440,”wires”:[],”icon”:”font-awesome/fa-info”},{“id”:”89da7f94c6814dd2″,”type”:”inject”,”z”:”3ab27731aae0b859″,”name”:”TEST ALARM”,”props”:[{“p”:”payload.device”,”v”:”Testlauf”,”vt”:”str”}],”repeat”:””,”crontab”:””,”once”:false,”onceDelay”:0.1,”topic”:””,”x”:130,”y”:200,”wires”:[[“d840dcaff0df9100”]]},{“id”:”48ca69a440ac9af2″,”type”:”inject”,”z”:”3ab27731aae0b859″,”name”:”TEST PROBEALARM”,”props”:[{“p”:”payload.device”,”v”:”Testlauf”,”vt”:”str”}],”repeat”:””,”crontab”:””,”once”:false,”onceDelay”:0.1,”topic”:””,”x”:160,”y”:340,”wires”:[[“54c136dea8aa14ef”]]}]

Ist der Artikel hilfreich?

Comments are closed.