Howto: IPCAM Alarmserver mit JSONMOD

Begonnen von Adimarantis, 13 Januar 2025, 20:26:34

Vorheriges Thema - Nächstes Thema

Adimarantis

Ich wollte an dieser Stelle nochmal meine Lösung teilen, die schon unterm anderem Betreff hier gepostet wurde: https://forum.fhem.de/index.php?topic=139885.0

Es geht hierbei um die Möglichkeit FHEM als AlarmServer für einige günstige China IPCAMs einzurichten.
Ich verwendet es dazu um die Personenerkennung (Human Detect) als verbesserten Bewegungsmelder für meinen Hauseingang zu triggern.

Bei vielen dieser Kameras kann man unter den Netzwerkdiensten einen Alarmserver einrichten. Dieser sendet einfach ein JSON (mit einem binären Header) an einen TCP Port sobald ein Event (eben z.B. Human Detected) auftritt.

Mit dem leicht angepassten JsonMod aus obigen Thread (Ergänzung um einen Servermode und ignorieren des binären Mülls am Anfang), definiert man einfach
defmod HumanDetect JsonMod 15002 global
attr HumanDetect readingList complete()

In der Kamera definiert man FHEM mit Port 15002 als AlarmServer.

Man bekommt dann folgende Readings:
  READINGS:
     2025-01-13 19:56:09   Address         0xA701A8C0
     2025-01-13 19:56:09   Channel         0
     2025-01-13 19:56:09   Descrip         
     2025-01-13 19:56:09   Event           HumanDetect
     2025-01-13 19:56:09   SerialID        62d0233832c19556
     2025-01-13 19:56:09   StartTime       2025-01-13 19:56:18
     2025-01-13 19:56:09   Status          Stop
     2025-01-13 19:56:09   Type            Alarm
     2025-01-13 18:07:05   state           Initialized

Ich habe mir da einfach ein DOIF definiert:

([HumanDetect:Event] eq "HumanDetect" and [HumanDetect:Status] eq "Start")
und schalte dann mit einem "wait" (und resetwait) die Lampe für ein paar Minuten an.

Endlich geht meine Lampe nicht mehr bei jedem vorbefahrenden Auto oder Fussgänger auf der Strasse an, sondern nur wenn ein Mensch in den Erfassungsbereich der Kameras (auf dem Grundstück) kommt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)