Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Blue Iris v5 mit INSTAR MQTT Kameras

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blue Iris v5 mit INSTAR MQTT Kameras

    This topic has been deleted. Only users with topic management privileges can see it.
    • mpolinowski
      mpolinowski last edited by

      Die Version 5 von Blue Iris verfügt jetzt über eine MQTT-Schnittstelle, über die Sie mit einigen Admin Commands die Kontrolle über die Software mit ioBroker übernehmen können.

      Verbinden Sie Blue Iris mit Ihrem Broker

      Ich verwende einen MQTT-Broker/Kamera - aber man kann jeden MQTT-Broker im Netzwerk verwenden, um Blue Iris mit dem ioBroker zu verbinden. Den MQTT Service kann man in den BlueIris Software Einstellungen aktivieren (Registerkarte Digital IO and IoT) :

      BlueIris5_INSTAR_MQTT_02.png

      Konfiguration von Blue Iris auf der linken Seite und INSTAR MQTT Broker-Einstellungen auf der rechten Seite. Die Kamera ist so konfiguriert, dass sie als Broker auf der IP 192.168.2.111 auf Port 1883 arbeitet.

      MQTT Alarm Service

      Ich kann jetzt mit der rechten Maustaste auf das Live-Video meiner Kameras klicken und Kameraeinstellungen aus dem Pop-up-Menü in Blue Iris wählen. Auf der Registerkarte Alarme, im Abschnitt Aktionen findet man den Button On alert.... Hier können wir die Aktion einstellen, die ausgeführt werden soll, wenn von dieser Kamera in Blue Iris ein Alarm ausgelöst wird - klicken Sie auf das Symbol + unten links, um Webanfrage oder MQTT als die Aktion hinzuzufügen:

      BlueIris5_INSTAR_MQTT_05.png

      Hier kann man ein MQTT-Topic und einen Payload für den MQTT Alarm Service einstellen. Das Topic kann man frei wählen. Für den Payload empfehle ich die Verwendung von 1 oder ON. Danach speichern und zurück zur Registerkarte Alarme. Hier kann man jetzt ON reset ... auswählen (rechts neben ON alert...), um ein MQTT-Topic und den Payload beim Beenden des Alarmzustandes festzulegen. Ich empfehle die Verwendung des gleichen MQTT-Topics wie oben - aber diesmal mit dem Payload 0 oder OFF.

      Wenn man ioBroker mit dem MQTT Broker verbunden hat, taucht dieses MQTT Topic jetzt bei Alarm im Objektbaum als Datenpunkt auf.

      Verbindung zwischen Blue Iris und ioBroker

      Wir können jetzt auf diesen Datenpunkt im ioBroker zugreifen und ein kleines Blockly-Script schreiben, um solche Ereignisse zu behandeln. Ich möchte dieses Ereignis nun nutzen, um die Kamera in in Blue Iris in die Vollbildansicht zu schalten, wenn sie einen Alarm ausgelöst wurde. Dies kann ich mit dem BlueIris Admin Befehl Topic BlueIris/admin und den beiden Payload camera=black&fullscreen=1 und camera=black&escape tun.

      black in diesen Payload ist der Kurzname der Kamera, den ich dieser Kamera in Blue Iris zugewiesen habe - bitte ersetzen durch den Kurznamen deiner Kamera.

      BlueIris_MQTT_ioBroker_03.png

      Wenn das MQTT-TopicBlueIris/MotionAlarm/8015black/ mit dem Payload 1 aktualisiert wird, wechselt die Kamera mit dem Kurznamen black in den Vollbildmodus. Sie fällt zurück in die Standard-Multiview-Ansicht, sobald das Topic wieder auf 0 aktualisiert wird.

      Steuerung von BlueIris mit MQTT

      Zusätzlich können wir den Rest der BlueIris Admin Befehl Topics verwenden, um die Kontrolle über BlueIris vom ioBroker Vis zu übernehmen - zum Beispiel können wir die Videoaufzeichnung für eine Kamera mit einem Radiobutton starten und stoppen.

      Beginnen wir mit der Erstellung eines neuen Boolean Datenpunktes im ioBroker, der den Status der manuellen Aufzeichnung als wahr oder falsch kennzeichnen soll:

      BlueIris_MQTT_ioBroker_04.png

      Jetzt brauchen wir ein Skript, um eine Aufnahme zu starten, wenn der Datenpunkt wahr ist - das geht mit dem Admin-Topic-Payload camera=black&manrec=1. Stoppen bei falsch geht dann mit camera=black&manrec=0 (black ist wieder der Kurzname meiner Kamera und muß angepasst werden):

      BlueIris_MQTT_ioBroker_06.png

      Jetzt kann man in der ioBroker Vis einen Radiobutton hinzufügen und diesem den Datenpunkt zuweisen:

      BlueIris_MQTT_ioBroker_07.png

      1 Reply Last reply Reply Quote 0
      • mpolinowski
        mpolinowski last edited by

        Blockly Script

        <xml xmlns="http://www.w3.org/1999/xhtml">
          <block type="on_ext" id="5:E8z%?$kF2:_228=Fsl" x="-937" y="-1112">
            <mutation items="1"></mutation>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="7K},E#*On`zsq^jhPQ9v">
                <field name="oid">mqtt.0.BlueIris.MotionAlarm.8015black</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="controls_if" id="2%z$7WDJUl-dSz+miU(-">
                <value name="IF0">
                  <block type="logic_compare" id="9]pjLD{[W^26TPYM6liS">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="on_source" id="-?/H,NwcYjPh~{p`fc`~">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="text" id="hKDWmg?WzR9@$Wo4RHj5">
                        <field name="TEXT">1</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="g@M?e*b1_8ezO{_(PUcP">
                    <mutation delay_input="false"></mutation>
                    <field name="OID">mqtt.0.BlueIris.admin</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="text" id="u2H{{k$7nO+({(J4,2,C">
                        <field name="TEXT">camera=black&amp;fullscreen=1</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="}uq*%|F/Nt=*`rn`|hV4">
                    <value name="IF0">
                      <block type="logic_compare" id="|x2u0AR*aTmVC=lfROzF">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="on_source" id="In|(S^y0YVoVN#Y^[.5m">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="uC/+7LgdO]A`UdHW*sHC">
                            <field name="TEXT">0</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="K58]j^_|1M4|}D2aF?{u">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">mqtt.0.BlueIris.admin</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="text" id="13|%(`^fM,_w499|gkt-">
                            <field name="TEXT">camera=black&amp;escape</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </statement>
          </block>
          <block type="on_ext" id="Ei}KT7e($1cGLin{;UTm" x="-937" y="-812">
            <mutation items="1"></mutation>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="ln]r4[0V5_L!]U5KPfb@">
                <field name="oid">mqtt.0.Vis.BlueIris_Black_Recording</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="controls_if" id=")cMCX)J;8M59C5H`Rli!">
                <value name="IF0">
                  <block type="logic_compare" id="t53#:CqYz.mr75mrlYA:">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="on_source" id="dltx$H=ML^odTRKTDg_|">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="91YBG0;5yLS/zYmx_;OE">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="PiTjfdeQA.nk^iRB#koj">
                    <mutation delay_input="false"></mutation>
                    <field name="OID">mqtt.0.BlueIris.admin</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="text" id=")$.%lh([i}CH$zN+~]r7">
                        <field name="TEXT">camera=black&amp;manrec=1</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="Im2Hbj,A0f3)]^CiE5]Z">
                    <value name="IF0">
                      <block type="logic_compare" id="WHPuRxbS%P[g|c(?/T)B">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="on_source" id="GqIv8M.dGKe%zW-(CzGz">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="PT)u9X[u)2vObE%^zBR4">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="!{Xp%f@G0yYXd$svb})Z">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">mqtt.0.BlueIris.admin</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="text" id="F[;Bz;NO72gV|)$HN3Fu">
                            <field name="TEXT">camera=black&amp;manrec=0</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </xml>
        
        1 Reply Last reply Reply Quote 0
        • mpolinowski
          mpolinowski last edited by

          Was ich bisher noch nicht geschafft habe ist das Einbinden des Videos/Snapshots in der ioBroker Vis. BlueIris bietet das JPG und MJPEG URLs an:

          http://192.168.2.112:8181/mjpg/cameraname
          http://192.168.2.112:8181/mjpg/Index
          
          
          http://192.168.2.112:8181/image/cameraname
          http://192.168.2.112:8181/image/Index
          

          Womit man entweder das Kamerabild oder ein Indexbild - also eine Übersicht über alle Videoquellen in BlueIris - abgreifen kann. Gerade letzteres ist recht interessant - spart etwas Bandbreite alle Kameras in einem Bild zu beziehen, anstatt alle einzelnd abzugreifen.

          Jedoch muß man hier eine basic authentication durchführen und das hinterlegen des Logins in der URL ist ja nicht mehr gestattet:

          http://benutzer:kennwort@192.168.2.112:8181/image/Index
          

          Man könnte das Bild über ein Skript abfragen - base64 enkodieren und dann als Datenpunkt hinterlegen 🙄

          RoboCop 1 Reply Last reply Reply Quote 1
          • RoboCop
            RoboCop @mpolinowski last edited by

            @mpolinowski Moin,
            wollte eben das 2te Blockly mit der Aufnahmemöglichkeit nachbauen und da meine Kenntnisse nicht so gut sind, finde ich den 79751f1a-2b02-4df5-8087-6a91254d0276-grafik.png Datenpunkt nicht.
            Wo oder wie muss ich den einrichten?

            Im Voraus besten Dank
            VG Robbie

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            816
            Online

            31.9k
            Users

            80.2k
            Topics

            1.3m
            Posts

            2
            4
            760
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo