FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: juppzupp am 15 Februar 2026, 19:56:05

Titel: blink-mqtt-bridge
Beitrag von: juppzupp am 15 Februar 2026, 19:56:05
ich habe ein wenig mit mit blinkpy https://github.com/fronzbot/blinkpy gespielt.
die neue authentisierungsmethode von blink klappt damit.
da ich keine ahnung habe wie man das in richtung perl übersetzt, habe ich eine blink-mqtt-bridge gebastelt.
status ist "proof of concept", es klappt aber ist ein security-albtraum, da die credentials im klartext in einer json datei gespeichert werden.
man kann einzelne kameras armen/disarmen, das system armen/disarmen, und bekommt ein motion_detected reading pro camera.
keine verarbeitung von snapshots oder videos.
mir reicht das erstmal, da ich hauptsächlich automatisiert nachts die aussenkameras an haben möchte, und wenn keiner zu hause ist auch die im innenbereich.

wer mag, kann es von hier weiter "treiben", ich bin dazu zeitlich nicht in der lage.

das fhem device :

define blink MQTT2_DEVICE blink-bridge
attr blink DbLogExclude .*_timestamp$
attr blink event-on-change-reading .*
attr blink readingList blink/sync/[^/]+/status:.*    { my $t=$TOPIC;; $t=~s#^blink/sync/##;; $t=~s#/status$##;;json2nameValue($EVENT, $t."_");; }\
blink/cameras/[^/]+/status:.* { my $t=$TOPIC;; $t=~s#^blink/cameras/##;; $t=~s#/status$##;;json2nameValue($EVENT, $t."_");; }\

attr blink setList System:arm,disarm blink/sync/[SYSTEM NAME]/cmd $EVTPART1\
terasse:arm,disarm blink/cameras/[CAMERA NAME]/cmd $EVTPART1\
flur_unten:arm,disarm blink/cameras/[CAMERA NAME]/cmd $EVTPART1\
flur_oben:arm,disarm blink/cameras/[CAMERA NAME]/cmd $EVTPART1\
Küche:arm,disarm blink/cameras/[CAMERA NAME]/cmd $EVTPART1\

automatisch generierte installationsanleitung (mileage may vary) :

# Blink MQTT Bridge — clean install (Debian/Ubuntu)

## 1) System packages
sudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip

## 2) Create folder + venv
sudo mkdir -p /opt/blink-bridge
sudo chown $USER:$USER /opt/blink-bridge
cd /opt/blink-bridge

python3 -m venv .venv
source .venv/bin/activate

## 3) Install Python deps
pip install --upgrade pip
pip install blinkpy aiohttp aiomqtt

## 4) Copy files
cp /path/to/blink_bridge.py /opt/blink-bridge/
# Use test_blink_auth.py to create blink_credentials.json

## 5) Set env vars (optional)
export MQTT_ENABLED=true
export MQTT_HOST=127.0.0.1
export MQTT_PORT=1883
export MQTT_USER=youruser
export MQTT_PASS=yourpass
export MQTT_BASE_TOPIC=blink
export MQTT_STATUS_INTERVAL=60

## 6) Test run
python3 blink_bridge.py

# Optional: systemd service
# Create /etc/systemd/system/blink-bridge.service with:
#
# [Unit]
# Description=Blink MQTT Bridge
# After=network-online.target
# Wants=network-online.target
#
# [Service]
# Type=simple
# WorkingDirectory=/opt/blink-bridge
# Environment=MQTT_ENABLED=true
# Environment=MQTT_HOST=127.0.0.1
# Environment=MQTT_PORT=1883
# Environment=MQTT_USER=youruser
# Environment=MQTT_PASS=yourpass
# Environment=MQTT_BASE_TOPIC=blink
# Environment=MQTT_STATUS_INTERVAL=60
# ExecStart=/opt/blink-bridge/.venv/bin/python /opt/blink-bridge/blink_bridge.py
# Restart=always
# RestartSec=5
#
# [Install]
# WantedBy=multi-user.target
#
# Then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now blink-bridge