Anbindung einer Reolink Kamera als Bewegungsmelder via Webhook mithilfe von ioBroker

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • BitWizzard
    Dumb Home'r
    • 31.07.2023
    • 14

    #1

    Anbindung einer Reolink Kamera als Bewegungsmelder via Webhook mithilfe von ioBroker

    Hallo zusammen,

    ich habe eine Reolink Trackmix Kamera. Die Bewegungserkennung habe ich bis jetzt über das Reolink Plugin im ioBroker abgefragt. Leider funktioniert dies nur im Pull verfahren. Dadruch ist die erkennung immer recht langsam gewesen. Seit kurzem können einige Reolink Kameras POST requests senden wenn eine Bewegung erkannt werden.
    Das habe ich mir zu nutze gemacht und nun klappt die Bewegungserkennung quasi instant wenn die Kamera triggert.

    Hier nun eine kurze Anleitung wie es geht:

    Vorraussetzung: Kamera und ioBroker können miteinander kommunizieren. Das Loxone Plugin ist in ioBroker eingerichtet und kann einen Virtuellen Eingang der Loxone beschreiben. Das simple-api Plugin ist im ioBroker installiert und eingerichtet.
    1. Die aktuelles Software auf der Reolink Website downloaden und auf der Kamera installieren. (Leider werden wohl nicht alle Kameras mit der Webhook erweiterung versehen. Release Notes beachten)
    2. Am Webinterface der Kamera anmelden. Unter Surveillance/Push gibt es nun einen Punkt Webhook (Siehe Screenshot)Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 2293
Größe: 28,6 KB
ID: 430977
    3. Hier nun einen Webhook anlegen. Als Content: Customize auswählen. In das Textfeld einfach ein Stichwort eintragen auf das später in Loxone gematched wird. Als URL folgendes eintragen: http://<ip-ioBroker>:8087/setValueFromBody/<object-id> (Beisspiel: http://192.168.1.10:8087/setValueFro...36498fa45.text) Die object-id bekommt ihr aus dem Objectbaum des ioBroker einfach hier:
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1839
Größe: 12,3 KB
ID: 430979
      Ungefähr so sollte es dann in der Kamera aussehen:​
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1821
Größe: 11,5 KB
ID: 430978
    4. Alles auf der Kamera Speichern und ggf. noch auswählen das die Benachrichtigungen nur bei Personenerkennung gesendet werden.
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1820
Größe: 17,1 KB
ID: 430980
    5. Da die Kamera nun bei jedem Event den Wert setzt müssen wir nur noch der Loxone beibringen auch darauf das Licht zu schalten:Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1855
Größe: 77,9 KB
ID: 430981
    ​Das war es schon. Ich habe es noch abhängig von der Tageszeit gemacht ob das Locht angeht oder nicht. Dafür habe ich einfach die Systemvariable "Nacht" verwendet wie ihr sehen könnt.​

    Viel Erfolg beim Umsetzen.
    Gruß,
    Bastian
  • FloP
    Azubi
    • 09.03.2023
    • 1

    #2
    Sehr Sehr Cool

    Gibt es auch einen Weg ohne Zwischenstation oder Http-Abfrage das Signal an den MS zu senden?

    Vielen Dank

    Kommentar

    • BitWizzard
      Dumb Home'r
      • 31.07.2023
      • 14

      #3
      Hallo FloP,
      ich habe leider keine Möglichkeit gefunden. Der Miniserver scheint mit den anfragen der Kamera nicht anfangen zu können.
      Wenn das jemand hinbekommt wäre ich für eine Lösung auch sehr dankbar. Mit dem ioBroker dazwischen ist schon etwas unschön.
      Gruß,
      Bastian

      Kommentar

      • marmork33
        Smart Home'r
        • 28.08.2023
        • 41

        #4
        Schade dabei nur, das aktuell die wenigsten Kameras webhook integriert haben... in meinem Portfolio nur die Track&Trace. Nicht die 823, nicht die 810, nicht die 510 und auch nicht die FE-P...


        Würde gerne umsetzen, dass ich bei einem Bewegungsalarm (Reolink PUSH) über den Loxone caller-Service angerufen werde. Die "Kritische Push Mitteilung) über IOS ist mir nämlich zu leise /low.

        Hat jemand eine Idee auch ohne webkook? Habe noch an eine Bastelei über den Email-Versand gedacht à la wenn ich eine Mail von Reolink bekommen --> Loxone --> Caller-Service?

        Und für die webhook-Variante: Hat das wer schon mit loxberry ohne ibrooker umgesetzt?

        Vielen Dank!

        Kommentar

        • BitWizzard
          Dumb Home'r
          • 31.07.2023
          • 14

          #5
          Zitat von marmork33
          Schade dabei nur, das aktuell die wenigsten Kameras webhook integriert haben... in meinem Portfolio nur die Track&Trace. Nicht die 823, nicht die 810, nicht die 510 und auch nicht die FE-P...


          Würde gerne umsetzen, dass ich bei einem Bewegungsalarm (Reolink PUSH) über den Loxone caller-Service angerufen werde. Die "Kritische Push Mitteilung) über IOS ist mir nämlich zu leise /low.

          Hat jemand eine Idee auch ohne webkook? Habe noch an eine Bastelei über den Email-Versand gedacht à la wenn ich eine Mail von Reolink bekommen --> Loxone --> Caller-Service?

          Und für die webhook-Variante: Hat das wer schon mit loxberry ohne ibrooker umgesetzt?

          Vielen Dank!
          Hallo,

          ohne Webhook geht es auch aber nur über den ioBroker. Es gibt ein Plugin für die Reolink Kameras. Das habe ich vorher eingesetzt.
          Klappt auch ganz gut. Ist nur leider nicht so schnell da es die Infos nur per Pull bekommt. Je nach Intervall der abfrage dauert es dann halt ein paar Sekunden länger.
          Da ich die Kamera aber als Bewegungsmelder einsetze war mir das dann etwas zu lange.
          Gruß,
          Bastian

          Kommentar

          • marmork33
            Smart Home'r
            • 28.08.2023
            • 41

            #6
            Vielen Dank für deinen input und sowieso vielen Dank für deinen äusserst hilfreichen initialen Post! Da ich nur sehr ungern noch ibrooker neben einem loxberry laufen lassen will :-| muss ich mal überlegen wie ich das löse... ich will letztlich wirklich nur die AI-Personenerkennung der Reolink nutzen um dann die Alarmkette in Loxone zu triggern. Vllcht löse ich es über die Reolink API, siehe post hier:

            Zitat von Carsten.Power
            Hallo zusammen,

            weiß jemand, bei welchen IP Kameras (Hersteller) man die motion detection per API-Aufruf steuern kann?
            Einfach nur einschalten / ausschalten wäre mir schon ausreichend.


            Da habe ich in einem Dokument gefunden, dass man zumindest den Status der motion detection abfragen kann.
            Code:
            http://192.168.0.206/api.cgi?cmd=GetMdState&channel=0&user=admin&password=xxxx
            Und:
            Heisst das im Umkehrschluss, dass ein webhook ohne ibrooker funktionieren würde? Weil du es oben in deinem Beispiel ja über ibrooker eingebunden hast.
            Zitat von BitWizzard
            ohne Webhook geht es auch aber nur über den ioBroker.
            Zuletzt geändert von marmork33; 10.06.2024, 21:05.

            Kommentar

            • BitWizzard
              Dumb Home'r
              • 31.07.2023
              • 14

              #7
              Zitat von marmork33
              Vielen Dank für deinen input und sowieso vielen Dank für deinen äusserst hilfreichen initialen Post! Da ich nur sehr ungern noch ibrooker neben einem loxberry laufen lassen will :-| muss ich mal überlegen wie ich das löse... ich will letztlich wirklich nur die AI-Personenerkennung der Reolink nutzen um dann die Alarmkette in Loxone zu triggern. Vllcht löse ich es über die Reolink API, siehe post hier:
              Gerne. Mit der API abfrage hast du das Problem was ich vermeiden wollte:

              Zitat von DrS332
              Bei der ReoLink Kamera kann man sogar mithilfe der AI abfragen, ob es sich um ein Tier, ein Auto, eine Person oder ein Gesicht handelt:

              http://192.168.xx.xx/api.cgi?cmd=GetAiState&channel=0&user=xxx&password =xxx

              Achtung: Nicht jedes Kamera Modell kann Tiere, Autos usw. erkennen

              Es gibt nur ein Problem: Wenn man das mit einem virtuellen HTTP Eingang zyklisch abfragen möchte, ist man auf 10s begrenzt. Wenn sich das Objekt nur für kurze Zeit im Blickfeld der Kamera befindet, wird es in der Loxone nicht registriert. Da es sich dabei nur um eine nette Spielerei handelt kann ich damit leben. Vielleicht kommt irgendwann ein Update, und man kann die Zeit auf 5s runter drehen.

              Zitat von marmork33
              Und:
              Heisst das im Umkehrschluss, dass ein webhook ohne ibrooker funktionieren würde? Weil du es oben in deinem Beispiel ja über ibrooker eingebunden hast.
              Leider Nein. Ich nutze ja oben den Webhook. Leider versteht der Miniserver der HTTP Befehl den die Kamera sendet nicht. Ich meine es wäre ein POST request gewesen den die Kamera sendet. Loxone versteht aber nur GET requests. (Ich bin mir gerade aber nicht mehr 100% sicher wie das war)
              Auf jeden fall habe ich es nicht hinbekommen die Kamera direkt den Miniserver anzusprechen und was damit auszulösen. Deswegen gehe ich über die SimpleAPI vom ioBroker. Schön finde ich das so auch nicht. Wenn jemand eine Lösung findet wäre ich auch sehr daran interessiert. Bei mir ist es nicht so schlimm mit dem ioBroker. Den brauche ich sowieso um z.B. meinen Auto damit abzufragen (KM und SoC) für die Abrechnung mit der Wallbox. Das geht direkt vom Miniserver auch nicht.
              Trotzdem wäre es natürlich besser den ioBroker nicht dazwischen zu haben.

              Der Vorteil der Lösung über den Webhook auf die SimpleAPI vom ioBroker (Statt mit dem Reolink PlugIn) ist hier nur die Geschwindigkeit. Das Plugin macht nämlich genau das was DrS332 oben geschrieben hat. Es fragt zyklisch die API der Kamera ab. Das ist aber halt im Zweifel langsamer als der Webhook.

              Gruß,
              Bastian

              Kommentar

              • marmork33
                Smart Home'r
                • 28.08.2023
                • 41

                #8
                Vielen Dank für deine neuerliche Antwort!

                Habe mir jetzt etwas über die Reolink API gebastelt, das funktioniert auch schon super, mit der Verzögerung von 1-10sek wegen der http-Abfrage kann ich aktuell leben. Funktioniert alles tiptop und ich bekomme einen Anruf, wenn eine Person erkannt wird mit der Ansage auf welcher Kamera.

                Würde mich natürlich trotzdem mittelfristig über eine webhook oder gar MQTT-Anbindung freuen :-)

                Kommentar

                • Tico
                  Lox Guru
                  • 31.08.2016
                  • 1035

                  #9
                  Vielleicht möchten Sie Node-Red als Handler für Webhooks verwenden. Die Installation von Node-Red auf Loxberry 3 ist sehr einfach.

                  Es gibt einen vorkonfigurierten Knoten für Node-Red, der Webhooks über einen Dienst namens Webhook Relay verarbeitet. Dieser Dienst bietet eine Möglichkeit, bei der Sie keine öffentliche IP benötigen.

                  Webhook Relay is a simple, flexible and high performance webhook routing system for internal and public destinations. Transform, route and retry webhooks.


                  Der kostenlose Webhook-Relay-Dienst bietet 150 Anrufe pro 30 Tage. Solange Sie nicht mehr als 150 Besucher pro Monat haben, sollte das gut funktionieren?!?

                  edit: Es ist wahrscheinlich noch einfacher, einfach einen einfachen Node Red HTTP In Knoten zu verwenden, der an MQTT weiterleitet. Dann haben Sie keine Beschränkungen für Anrufe. Die gesamte Sequenz findet im internen Netzwerk statt, ohne dass ein Off-Board-System verwendet wird.

                  this is how my flow is designed, how can I replicate the first step ( letting a webhook trigger the flow and accept a payload?? )
                  Zuletzt geändert von Tico; 13.06.2024, 15:44.
                  Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                  Kommentar


                  • marmork33
                    marmork33 kommentierte
                    Kommentar bearbeiten
                    Das ist eine super Idee, vielen Dank! Ich schaue mir das mal an. Aktuell bin ich aber mit der 10sec Einschränkung trotzdem happy, bis jetzt funktioniert alles wie es soll. Ein potentieller Einbrecher braucht ja idR länger als 10sec eine moderne Haustür aufzubrechen. Ausserdem ist 10sec ja das maximum.

                    VG
                • Iluminatus23
                  LoxBus Spammer
                  • 07.08.2016
                  • 230

                  #10
                  Hallo,
                  hat es inzwischen jemand geschafft? Wäre Klasse!

                  Kommentar

                  • mlutz
                    Dumb Home'r
                    • 20.01.2024
                    • 15

                    #11
                    Hallo zusammen,
                    eigentlich sollte das ganze mit der Loxone Rest Api doch auch direkt funktionieren?
                    Der Befehl sieht dann in etwa so aus: http://User:PW@miniserver/dev/sps/io...ichtGarten/Ein
                    Wobei User und PW zu einem Loxone Benutzer gehören muss.
                    TasterLichtGarten wäre in diesem Fall ein Virtueller Input welcher direkt von der Kamera gesendet wird, er muss jedoch auf dem miniserver angelegt sein

                    Kommentar

                    • Iluminatus23
                      LoxBus Spammer
                      • 07.08.2016
                      • 230

                      #12
                      So habe ich es bei meinen Instar Kameras auch gemacht. Aber geht das bei Reolink? Haben die einen Link, den man bei einem Alarm hinterlegen kann?

                      Kommentar


                      • mlutz
                        mlutz kommentierte
                        Kommentar bearbeiten
                        Ist doch in #1 unter 1. und 2. beschrieben 😀

                      • Iluminatus23
                        Iluminatus23 kommentierte
                        Kommentar bearbeiten
                        Stimmt. Kann es auch jemand mit einer Reolink Kamera testen bzw. Bestätigen ?

                      • BitWizzard
                        BitWizzard kommentierte
                        Kommentar bearbeiten
                        Hi zusammen,
                        leider ist das genau das Problem was nicht klappt. Siehe meinen Post #7.
                        Der Miniserver versteht auf seiner API kein HTTP Post. Nur ein HTTP GET aber die Kamera kann leider nur POST.
                        Also bei jedenfalls klappt es nicht.
                        Gruß,
                        Bastian
                    • Noschvie
                      LoxBus Spammer
                      • 24.09.2018
                      • 471

                      #13
                      Habe mal mit der 810A einen Test gemacht: der Request Link aus #7 führt zu diesem Response

                      [ { "cmd" : "GetAiState", "code" : 0, "value" : { "channel" : 0, "dog_cat" : { "alarm_state" : 0, "support" : 1 }, "face" : { "alarm_state" : 0, "support" : 0 }, "people" : { "alarm_state" : 0, "support" : 1 }, "vehicle" : { "alarm_state" : 0, "support" : 1 } } } ]

                      statt IOBroker könnte dies auch mit Node-Red oder als LoxBerry Plugin implementiert werden und über UPD oder MQTT an dem Miniserver gesendet werden.

                      ​​​​​…. Nun mit Alarm
                      [ { "cmd" : "GetAiState", "code" : 0, "value" : { "channel" : 0, "dog_cat" : { "alarm_state" : 0, "support" : 1 }, "face" : { "alarm_state" : 0, "support" : 0 }, "people" : { "alarm_state" : 0, "support" : 1 }, "vehicle" : { "alarm_state" : 1, "support" : 1 } } } ]
                      Zuletzt geändert von Noschvie; 06.01.2025, 11:57.

                      Kommentar


                      • hismastersvoice
                        hismastersvoice kommentierte
                        Kommentar bearbeiten
                        statt IOBroker könnte dies auch mit Node-Red oder als LoxBerry Plugin implementiert werden und über UPD oder MQTT an dem Miniserver gesendet werden.
                        Ich habe schon länger ein Skript für meine Reolink - Kameras die sekündlich die Abfrage machen und per UDP an den MS gebe.
                        Die reine Bewegung kann man vergessen, es muss wirklich Person/Fahrzeug ausgewertet werden, sonst hat zu viele Fehlschaltungen.
                        Nach etwas Optimierungen an der Kamera geht das inzwischen "fast" perfekt. Sehr sehr selten gibt es mal eine Bewegungsmeldung die ich nicht nachvollziehen kann.

                        Ich habe mir am Anfang sorgen gemacht ob die Cams das dauerhaft mitmachen, aber das geht schon seit deutlich mehr als einem Jahr ohne Probleme.
                        NodeRed oder ioBroker machen im Prinzip nichts anders.

                      • Iluminatus23
                        Iluminatus23 kommentierte
                        Kommentar bearbeiten
                        Das klingt doch perfekt. Du hast schon so vielen beim MS4H geholfen....einfach Klasse!
                        Könnten wir das Skript bitte auch testen?
                    • hismastersvoice
                      Supermoderator
                      • 25.08.2015
                      • 7260

                      #14
                      Iluminatus23
                      Ich wollte mit der Aussage nur die technische Machbarkeit unterstreichen, nicht mein Skript anpreisen.

                      Das Plugin ist nur Qucik&Dirty für mich selber geschrieben.
                      Da müsste noch viel Arbeit rein gesteckt werden.

                      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 424
Größe: 117,8 KB
ID: 451510


                      Aktuell habe ich nur die Bewegungserkennung und das anfahren von Presents eingebaut.
                      Es würde natürlich alles was die Reolink API hergibt gehen.

                      Das Problem ist das ich nicht sagen kann mit welchen Cams es geht und mit welchen nicht.
                      Ich sehe das wieder ein Haufen Support-Arbeit auf mich zukommen.
                      Eigentlich will ich nicht noch ein Plugin releasen, deswegen habe die letzten Plugins nur noch für mich selber geschrieben.




                      Kein Support per PN!

                      Kommentar

                      • hismastersvoice
                        Supermoderator
                        • 25.08.2015
                        • 7260

                        #15
                        Iluminatus23
                        Ich habe mal auf die schnelle das Plugin fertig geschrieben und hier in den angehängt.

                        Es gibt noch keinen Debug/Log!
                        Es ist eine früher Version, aber es sollte so funktionieren.

                        Funktion
                        Es können 5 Kameras eingetragen werden.
                        Für jede kann ein Bewegungsservice aktiviert werden.
                        Die Services werden beim speichern angelegt bzw. wieder gelöscht, somit dauert das speichern immer 5-15 Sek. je nach dem wie schnell euer System ist.
                        Jeder Service kann danach einzeln mit start/stop/neustart bedient werden.

                        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 167,2 KB ID: 451652

                        Beim start eines Servicewerden alle Bewegungen erst mal auf 0 gesetzt.
                        Die UDP Message sieht dann so aus...
                        reolink:1 people:0
                        reolink:1 vehicle:0
                        reolink:1 dog_cat:0

                        Wobei die 1 für die Kamera Nummer steht (1-5)


                        Die Befehlserkennung sieht wie folgt aus...
                        reolink:1 people:\v
                        reolink:1 vehicle:\v
                        reolink:1 dog_cat:\v​

                        UDP-Messages kommen nur wenn sich der Status auch wirklich geändert hat.

                        Was geht noch per virtuellem Ausgang...

                        Aufnahme ein/aus
                        Code:
                        http://LOXBERRY_IP/plugins/reolink/reo.php?cam=1&cmd=SetRecV20&set=0
                        &set (0/1)​
                        Sirene manuell ein/aus
                        Code:
                        http://LOXBERRY_IP/plugins/reolink/reo.php?cam=1&cmd=AudioAlarmPlay&set=0
                        &set (0/1)
                        Spotlight LED ein/aus
                        Code:
                        http://LOXBERRY_IP/plugins/reolink/reo.php?cam=1&cmd=SetWhiteLed&set=0&bri=50
                        &set (0/1)
                        &bri (Helligkeit 0-100)

                        Ir-LEDs ein/aus/auto
                        Code:
                        http://LOXBERRY_IP/plugins/reolink/reo.php?cam=1&cmd=SetIrLights&set=Auto
                        & set(Off/On/Auto)

                        Reboot
                        Code:
                        http://LOXBERRY_IP/plugins/reolink/reo.php?cam=1&cmd=Reboot

                        Viel Spaß beim testen

                        Sollten noch Funktionen fehlen die ihr gerne haben wollte, einfach melden.
                        Wenn ihr das Plugin positiv getestet habt, dann werde ich es öffentlich ins Wiki stellen.


                        PS:
                        Ich habe absichtlich nicht die normale Motion-Detection sondern nur die AI-Detection verwendet, die Fehlalarme waren einfach zu viel.
                        Es wäre auch möglich die GetMdState zu nutzen, das macht aber nur Sinn wenn die Cam keine AI hat.
                        Kein Support per PN!

                        Kommentar

                        Lädt...