Alle ioBroker Tutorials
- ioBroker mit Docker (Aktualisiert 08.04.2024)
- ioBroker auf einem Raspberry Pi (Veralted)
- INSTAR MQTT - ioBroker
Alle ioBroker FAQs
- ioBroker v9.1.2 als MQTTv5 Client für Ihre WQHD INSTAR IP Kamera
- ioBroker als MQTT Broker für Ihre WQHD Kamera
- ioBroker MQTT Alarmserver für Ihre WQHD Kamera
- ioBroker REST API mit Ihrer WQHD Kamera nutzen
- ioBroker mit Ihrer WQHD Kamera nutzen
- ioBroker v7 mit Ihrem WQHD INSTAR MQTTv5 Broker
- Camera Vis mit Node-RED
- Live Video and ioBroker VIS
- INSTAR MQTT Alarmserver ioBroker
- ioBroker und INSTAR Alarmserver
- ioBroker MQTT Broker vs Client
- ioBroker als MQTT Broker für Ihre Kamera
- ioBroker MQTT überschreibt Kamera Einstellungen
- ioBroker und MotionEye Webhooks
- ioBroker ohne MQTT
Verwendung von MQTT, um ioBroker zu informieren, dass ein Alarm ausgelöst wurde
Q: Ich habe Ihren Leitfaden zur Verwendung des INSTAR (HTTP)-Alarmservers gefunden. Wäre es nicht sinnvoller, diese Ereignisse über den MQTT-Dienst zu veröffentlichen, den jede Full-HD-Kamera bietet? Auf diese Weise könnte ich sicher sein, dass jedes Alarmereignis von meinem ioBroker registriert wird.
A: Alle Alarmereignisse, die vom INSTAR HTTP Alarmserver veröffentlicht werden sind jetzt auch über den MQTT-Service erhältlich! Das entsprechende MQTT-Topic ist:
MQTT Alarmserver
Das entsprechende MQTT-Topic ist:
alarm/triggered
Sie müssen lediglich ein Abonnement zum Status-Topic hinzufügen, und Sie erhalten Updates über Alarmereignisse sowie darüber, welcher Dienst den Alarm ausgelöst hat:
- Alarmbereich 1 ausgelöst:
1
- Alarmbereich 2 ausgelöst:
2
- Alarmbereich 3 ausgelöst:
3
- Alarmbereich 4 ausgelöst:
4
- Alarm-In / PIR ausgelöst:
5
- Audio Alarm ausgelöst:
6
- Bewegungserkennung & ausgelöst (Bereich 1):
7
- Bewegungserkennung & ausgelöst (Bereich 2):
8
- Bewegungserkennung & ausgelöst (Bereich 3):
9
- Bewegungserkennung & ausgelöst (Bereich 4):
10
ioBroker einrichten
Wir haben bereits einen Leitfaden zur Verwendung von Node-RED zur Interaktion mit Ihrem MQTT-Alarmserver online gestellt. Sie können dieser Anleitung folgen, wenn Sie den Node-RED-Adapter im ioBroker nutzen möchten.
In diesem Leitfaden wollen wir die Blockly Script Engine anstelle von Node-RED verwenden. Sie können damit beginnen diese über die Registerkarte Adapter zu installieren:
Wechseln Sie nun zur Registerkarte Scripts und wählen Sie Blockly, um ein neues Skript hinzuzufügen:
Wir werden die Blockly UI zur Erstellung des Alarmserver-Skripts zu verwenden:
Im folgenden Beispiel habe ich das Motion Tracking-Beispiel, das wir zuvor in Node-RED gelöst haben auf Blockly übertragen. Bitte lesen Sie in jener Anleitungen nach, wie Sie Ihre Kamera so einrichten müssen, damit dies funktioniert.
Wann immer wir eine Statusaktualisierung für alarm/triggered
erhalten, müssen wir prüfen, ob der Alarm durch Bereich 1 - mit Payload {"val": "1"}
- oder Bereich 4 - mit der Payload {"val": "4"}
ausgelöst wurde. Wenn Bereich 1 ausgelöst wurde - das ist der Bewegungserkennungsbereich, den wir auf der linken Seite hinzugefügt haben - müssen wir unsere Kamera einen Schritt nach links
bewegen. Für Bereich 4 müssen wir nach rechts
gehen, um das bewegte Objekt im Sichtfeld der Kamera zu zentrieren.
Beachten Sie, dass die Kamera, die ich hier benutze, die MQTT-ID
10D1DC21F5DB
hat. Wenn Sie das Blockly-Skript importieren, müssen Sie dies entsprechend Ihrer persönlichen Kamera-ID ändern!
Die MQTT Topics, die hier verwendet werden, sind:
/status/alarm/triggered
: INSTAR MQTT Alarmserver-Status-Topic/features/ptz/movestep/raw
: Befehls-Topic, um Ihre Schwenk-Neige-Kamera einen Schritt nachlinks
oderrechts
zu bewegen.
Und zusätzlich habe ich ein Skript hinzugefügt, das meine Kamera auf die gespeicherte Position 2 bewegt, wenn der Audio-Alarm {"val": "6"}
der Kamera ausgelöst wurde. Dies kann mit den folgenden Topics erreicht werden:
/features/ptz/presets/raw
Befehls-Topics, um Ihre Kamera auf die Positionen0
-7
zu bewegen/alarm/pushalarm
Befehls-Topics zum Auslösen eines Audio-Alarms auf Ihrer Kamera und damit dem Auslösen der Preset Funktion in Blockly - dies kann mit anderen Funktionen im ioBroker verknüpft werden.
JSON Export
Sie können das komplette Skript mit dem folgenden JSON-Code in Blockly importieren. Beachten Sie, dass Sie die MQTT-ID 10D1DC21F5DB
durch Ihre persönliche Kamera-ID ersetzen müssen:
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="on_ext" id="5:E8z%?$kF2:_228=Fsl" x="-62" y="-112">
<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.instar.10D1DC21F5DB.status.alarm.triggered</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">{"val":"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.instar.10D1DC21F5DB.features.ptz.movestep.raw</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="u2H{{k$7nO+({(J4,2,C">
<field name="TEXT">left</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">{"val":"4"}</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.instar.10D1DC21F5DB.features.ptz.movestep.raw</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="13|%(`^fM,_w499|gkt-">
<field name="TEXT">right</field>
</block>
</value>
</block>
</statement>
<next>
<block type="controls_if" id="JhXZ,A)R?fQ}!et!,!/7">
<value name="IF0">
<block type="logic_compare" id="560g5G|oV?rEcXER(oOD">
<field name="OP">EQ</field>
<value name="A">
<block type="on_source" id="9[A80k}o*RpbflDD2h/:">
<field name="ATTR">state.val</field>
</block>
</value>
<value name="B">
<block type="text" id="._5?cn:Mi%DWgz;OL}v4">
<field name="TEXT">{"val":"6"}</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="]KIbdkEE?:DEhmZ`)wE=">
<mutation delay_input="false"></mutation>
<field name="OID">mqtt.0.instar.10D1DC21F5DB.features.ptz.preset.raw</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="1HbkwoM-U/]J2go|iNoe">
<field name="TEXT">2</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</xml>