INSTAR Deutschland GmbHINSTAR Deutschland GmbH

Node-RED Ereignis-Zeitleiste für Ihre MQTT-Kamera



Anwendungsfall

Sie sitzen vor dem Bildschirm und müssen mit Ihrer MQTT-Kamera im Auge behalten, was irgendwo vor sich geht. Sie möchten in der Lage sein, das Live-Video Ihrer Kamera zu sehen, einen Schnappschuss zu erhalten, wenn die Bewegungserkennung ausgelöst wird, und eine Ereigniszeitleiste haben, damit Sie einige Ereignisse zurückblättern und sehen können, was Sie beim Kaffeeholen verpasst haben.

Node-RED Alarm Event Timeline

Genutzte Nodes

Node-RED Flow

Node-RED Alarm Event Timeline

Übersicht

  1. Erstellen Sie eine Datenbank in AlaSQL (ich nenne meine AlarmSnapDB). Dieser Knoten wird bei jedem Neustart von Node-RED ausgelöst, um sicherzustellen, dass die Datenbank einsatzbereit ist.
  2. Holen Sie sich das Live-Video (Ich benutze ONVIF Sie können eine auch andere Möglichkeit zum Einbetten des Live-Videos verwenden)
  3. Jetzt brauche ich einen MQTT IN-Knoten, der den Alarmserver meiner Kameras instar/local/status/alarm/triggered überwacht (siehe diesen Artikel für eine Erklärung, wie diese Topic funktionieren)
  4. Der Alarmserver-Knoten veranlasst Node-RED einen Schnappschuss von meiner Kamera zu holen, ihn zu base64 kodieren und in der Datenbank zu speichern. Zusätzlich zeige ich den Schnappschuss auf meinem Dashboard an. Ich habe einen Trigger-Knoten hinzugefügt, der sicherstellt, dass es nur ein Bild pro Alarmereignis gibt - vielleicht möchten Sie diesen entfernen oder die 8-Sekunden Cooldown anpassen, die für meinen Anwendungsfall ausgelegt sind.
  5. Der Alarmserver-Knoten löst auch die Zeitleisten aus, um ein Ereignis zu registrieren.
  6. Node-RED erhält den Zeitstempel eines Ereignisses, wenn Sie im Dashboard auf das Zeitleisten Widget klicken. Ich verwende diesen Zeitstempel, um nach dem entsprechenden Ereignis in meiner Datenbank zu suchen und das zugehörige Bild auf meinem Dashboard anzuzeigen. Beachten Sie, dass das in der Datenbank verwendete Zeitstempelformat und das vom Zeitleisten-Widget verwendete Format unterschiedlich ist. Um sie vergleichen zu können, benutze ich Moment.js - Sie müssen die Einstellungen des Moment Knoten entsprechend Ihrer Systemzeitzone konfigurieren damit es funktioniert!

Node-RED Dashboard

Node-RED Alarm Event Timeline

  1. Oben links ist das Live-Video von meiner Kamera
  2. Oben rechts ist die Momentaufnahme des letzten Alarmereignisses
  3. Unten links - ein Klick auf ein Ereignis innerhalb des Zeitleisten-Widgets lädt den entsprechenden Alarm-Schnappschuss.