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.
Machen Sie Ihrer Kamera zum Herzstück Ihres Smarthomes

Mithilfe der MQTT Schnittstelle Ihrer INSTAR Full HD Kameras können Sie diese zu einem bestehenden Smarthome-System (Home Assistant, OpenHAB, Node-RED, Athom Homey, Homematic, ioBroker, Loxone, homee) hinzufügen kann. Oder auch zum Haupt-Broker für Ihre MQTT Sensoren machen. MQTT ermöglicht es Ihnen ALLE Funktionen Ihrer Kamera zu automatisieren und mit anderen Diensten in Ihrem Smarthome zu verknüpfen.
Kontrollieren Sie Ihre Kamera über den IFTTT Online Dienst
Auf der IFTTT-Plattform stellten wir einen Dienst namens INSTAR zur Verfügung. Die INSTAR Applets bieten Ihnen die Möglichkeit, einige Einstellungen Ihrer INSTAR Kamera oder INSTAR Cloud mit IFTTT zu steuern. Sie können INSTAR mit Auslösern für Ort (Geo Location) und Datum & Zeit verbinden, Benachrichtigungen versenden und vieles mehr. Zum Beispiel können Sie die INSTAR Applets mit dem IFTTT-Ortungsdienst verbinden und automatisch den Alarm deaktivieren lassen, wenn Sie zu Hause ankommen. Sie können die INSTAR-Applets auch verwenden, um Ihre eigene Automatisierung zu erstellen und sie mit anderen Applets von Drittanbietern zu verbinden.
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>