Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Blink Camera System

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Blink Camera System

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Brekkis @Dette last edited by Brekkis

      Howto Blink in IoBroker einbinden

      WICHTIG: Diese Anleitung ist noch ein Entwurf, ich brauche hier vermutlich noch Input von den Profis hier im Forum, aber Ziel ist es, eine für jeden nachvollziehbare Anleitung als Basis für die Einbindung der Blink-Kameras in IoBroker zu erhalten! edit 2025-03-28: es scheint zu funktionieren.

      Basis dieses How-To sind die Informationen zusammengefasst aus diesem Thread und dem GitHub-Projekt: https://github.com/fronzbot/blinkpy

      Ich habe mal hier aus dem Thread die Informationen, Codezeilen und Scripte übernommen, damit ein ordentliches How-To für Neulinge nachvollziehbar dokumentiert ist.... Gerne könnt ihr mir helfen, das How-To zu vervollständigen, zu berichtigen, und lauffähig zu machen, damit alle ihre Blink-Kameras in Iobroker einbinden können)
      Will vorher noch anmerken, dass ich nicht der Coding-Spezialist bin und mit dem "Try and Error-Prizip" arbeite.


      Start des HOWTO (Stand 2025-03-28)
      Ich werde den Stand (nach Korrekturen) dann immer updaten

      Welche Funktionen erwarten euch nach erfolgreicher Durchführung:

      • Blink Kameras sind in IoBroker eingebunden
      • Zugriff auf das letzte gespeicherte Bild der Kameras
      • Zugriff auf das letzte gespeicherte Video der Kameras
      • Anzeige des Bilds in der Visu
      • Anzeige des Videos in der Visu
      • Scharfschalten und Deaktivieren via Datenpunkt

      Grundlagen:
      (bei mir läuft das ganze in einer Proxmox Installation auf Debian 11.3.0 in einem Container, sollte aber auch auf einem PI funktionieren)

      • funktionierende IoBroker-Installation
      • funktionierende Homebridge-Installation (läuft bei mir in der V.1.85, ebenfalls in einer VM auf Proxmox)
      • mindestens eine in der Blink-App funktionierende Kamera
      • NodeJS und NPM (über Konsolenbefehl
      nodejs -v
      

      und

      npm -v
      

      abrufbar)
      edit: (ich habe aktuell die Versionen NodeJS 22.14.0 und NPM10.9.2 installiert)

      zusätzlich installierte Adapter Ioboker:

      • HAM (Homebridge Zubehör-Manager V5.3.1)
        Im Homebridge-Adapter muss ersten Tab unter "zusätzliche NPM Module installieren" noch "homebridge-blink-for-home@3.7.6" eingetragen werden und der Haken "beim nächsten Start die Homebridge Plugins von NPM installieren" gesetzt sein! Im Tab Konfigurationsdatei muss folgender Code eingetragen werden:
      "platforms" : [
        {
          "name"     : "Blink",
          "username" : "<your blink email address>",
          "password" : "<your blink password>",
          "pin"      : "<pin>",
          "platform" : "Blink"
        }
      ]
      
      

      Die Daten in den <> Klammern durch die eigenen Anmeldedaten ersetzen.

      • Javascript Adapter und Grundverständnis für die Anwendung des scripens

      Über die Konsole installiert: (via Putty oder wie bei mir über die Proxmox-eigene Konsole)

      • Python, Ich habe V 3.11.2 installiert. Installation kann man überprüfen mit
      python --version
      Python 3.11.2
      

      Falls Python und Pip nicht installiert sind, geht man wie folgt vor:
      Konsolenbefehle:
      Version abfragen

      python3 --version
      pip3 --version
      sudo apt update
      sudo apt install python3
      sudo apt install python3-pip
      
      
      • Blinkpy:
        Installation als User "iobroker" siehe Beitrag von @Dr-Bakterius
        sudo -H -u iobroker pip install blinkpy
      sudo -H -u iobroker pipx install blinkpy
      

      (edit: 27.03.2025, Hinweis @Thomas-Braun)
      ich habe pip3 installiert und mit folgendem Befehl blinkpy installiert:

      sudo -H -u iobroker pip3 install blinkpy
      

      Danach werden 2 Scripte angelegt
      Script 1: "anmelden.py" (erstellen im Ordner: /home/iobroker)
      erstellt wird das Script mit

      cd /home/iobroker
      
      nano anmelden.py
      

      Inhalt des Scripts:

      import asyncio
      from aiohttp import ClientSession
      from blinkpy.blinkpy import Blink
      from blinkpy.auth import Auth
       
      async def start():
          blink = Blink(session=ClientSession())
          # Can set no_prompt when initializing auth handler
          auth = Auth({"username": <your username>, "password": <your password>}, no_prompt=True)
          blink.auth = auth
          await blink.start()
          await blink.save("/opt/iobroker/blink_auth.json")
          return blink
       
      blink = asyncio.run(start())
      
      

      <your username>
      <your password>

      müssen mit den Anmeldedaten aus der Blink-Anmeldung (in der App) ersetzt werden.

      mit Strg + x beenden, speichern, Name bestätigen
      mit

      python3.11 anmelden.py
      

      das Script ausführen

      (Bei mir kam eine Fehlermeldung bzgl fehlendem aiohttp-Addon, das habe ich dann nochmal nachinstalliert)

      pip3 install aiohttp
      

      Danach sollte man/wird man nach seinen Anmeldedaten gefragt und erhält dann den 2FA Code welchen man angibt. Anschließend wird in /opt/iobroker die Datei blink_auth.json erstellt. Diese enthält die Anmeldedaten für künftige Abfragen. Den Pin auch in der Instanz des Homebridge Zubehör Adapter unter Konfigurationsdatei "PIN" eintragen.
      Danach kann man das Skript wenn man möchte wieder löschen. (ich habe es nicht gelöscht)

      Um jetzt ein Bild abzufragen braucht man folgendes Skript:
      erstellt wird das Script mit

      cd /opt/iobroker/bild.py
      
      nano bild.py
      

      Name kann frei gewählt werden.

      Zugriffsrechte anpassen /opt/iobroker/bild.py
      mit den Rechten 674 (ich habe die Rechte auf 655 gesetzt)

      cd /opt/ibroker
      chmod 755 bild.py
      
      import asyncio
      from aiohttp import ClientSession
      from blinkpy.blinkpy import Blink
      from blinkpy.auth import Auth
      from blinkpy.helpers.util import json_load
       
      async def start():
          blink = Blink()
          auth = Auth(await json_load("/opt/iobroker/blink_auth.json"))   # Anmeldeinformationen laden
          blink.auth = auth   # Anmeldeinformationen senden
          await blink.start()   # Verbindung starten
          camera = blink.cameras['<Kameraname>']   # Kameraname angeben
          await camera.snap_picture()   # Bild aufnehmen
          await blink.refresh()   # Daten vom Blink-Server abfragen
          await camera.image_to_file('/opt/iobroker/blink.jpg')   # Bild speichern
          return blink
       
      blink = asyncio.run(start())
      
      

      <Kameraname>
      muss mit dem Namen der Blink-Kamera in der App übereinstimmen!

      mit Strg + x beenden, speichern, Name bestätigen
      mit

      python3.11 bild.py
      

      das Script ausführen

      Der Aufruf des Bildes wird dann über den Javascript-Adapter gemacht:
      Hierzu ein Blockly erstellen und u.a. diese Zeile (von @Dr-Bakterius ) eingeben:
      (Trigger z.b. Cronjob, Tastendruck eines Button-Widgets fehlt hier noch, oder ggf. Datenpunkt "Bewegung" als Trigger)
      Werde dann hier später noch ein komplettes Blockly-Script einfügen

      1742543677513-screenshot-2025-03-21-085159.png

      Das Bild liegt dann hier ab:
      /opt/iobroker/blink.jpg

      Über ein "Image-Widget" kann dann das Bild in die Visu eingebunden werden:
      Ein Beispiel ergänze ich dann, wenn es bei mir funktioniert! 🙂

      Ergänzung für Abfrage des Videos und Kamera "ARM" und "DISARM" wird später noch ergänzt.


      Ende des HowTos.
      Ich hoffe hier um aktive Hilfestellung, damit wir eine verständliche Anleitung für jedermann hinbekommen.

      Bis demnächst, Gruß Brekkis

      Thomas Braun 1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @Brekkis last edited by

        @brekkis sagte in Blink Camera System:

        sudo -H -u iobroker pip install blinkpy

        Besser:

        sudo -H -u iobroker pipx install blinkpy
        

        pip sollte auf modernen Python-Installationen nicht mehr verwendet werden.

        B 1 Reply Last reply Reply Quote 0
        • B
          Brekkis @Thomas Braun last edited by

          @thomas-braun Ok, habe deinen Hinweis im HowTo eingearbeitet. Danke dir. Ist dir sonst noch was aufgefallen, was falsch oder nicht so schön ist....?

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @Brekkis last edited by Thomas Braun

            @brekkis

            Da ich die Hardware nicht habe kann ich auch nichts aus eigener Erfahrung beitragen.
            Nur bist du sicher, das z. B. mindestens nodejs@22 benötigt wird? Widerspricht der derzeitigen Empfehlung von nodejs@20 für den ioBroker.

            Die python Version wird so geprüft:

            python --version
            Python 3.13.2
            
            B 1 Reply Last reply Reply Quote 0
            • B
              Brekkis @Thomas Braun last edited by

              @thomas-braun Das habe ich doof geschrieben, das ist keine Mindestanforderung, sondern meine aktuell installierte Version. Ich schreibe das mal um. Danke

              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @Brekkis last edited by Thomas Braun

                @brekkis

                Und so als Vorausblick:
                Da wird es wohl 'irgendwann' mal ein Debian-Paket zu geben.
                Liegt momentan im Testing-Zweig und dürfte dann im Sommer zum Release von Debian 13 'Trixie' direkt aus dem Paket-Manager per apt install python3-blinkpy installierbar sein.

                https://packages.debian.org/trixie/python3-blinkpy

                1 Reply Last reply Reply Quote 1
                • B
                  Brekkis last edited by

                  So, jetzt ist schon wieder ein Punkt, wo ich nicht weiterkomme.

                  Ich habe das Script und die Einstellungen soweit, dass ein Bild "Blink.jpg" im Ordner /opt/iobroker/iobroker-data abgelegt wird. Wie kann ich von der Vis auf das Bild zugreifen, bzw. es mir anzeigen lassen? Habe das Bild schon in den Imageordner auf den die Vis zugreift gelegt, aber da erscheint kein Blink.jpg!
                  was mache ich noch falsch?

                  Gruß Brekkis

                  arteck 1 Reply Last reply Reply Quote 0
                  • arteck
                    arteck Developer Most Active @Brekkis last edited by arteck

                    @brekkis

                    /opt/iobroker/iobroker-data

                    da kommst du nicht dran

                    leg dir ein Ordner für die Bilder an da hin

                    /opt/iobroker/pics
                    
                    B 1 Reply Last reply Reply Quote 0
                    • V
                      varg @varg last edited by varg

                      @Thomas-Braun

                      moin, vielleicht weisst Du wie ich das gerade biege. Dieses Problem verfolgt mich schon seit dem ersten Versuch (s.o).

                      pi@iobroker:~ $ sudo -H -u iobroker pip3 install blinkpy
                      error: externally-managed-environment
                      
                      × This environment is externally managed
                      ╰─> To install Python packages system-wide, try apt install
                          python3-xyz, where xyz is the package you are trying to
                          install.
                      
                          If you wish to install a non-Debian-packaged Python package,
                          create a virtual environment using python3 -m venv path/to/venv.
                          Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
                          sure you have python3-full installed.
                      
                          For more information visit http://rptl.io/venv
                      
                      note: If you believe this is a mistake, please contact your Python installation                                                                                                                                                              or OS distribution provider. You can override this, at the risk of breaking your                                                                                                                                                              Python installation or OS, by passing --break-system-packages.
                      hint: See PEP 668 for the detailed specification.
                      
                      
                      pi@iobroker:/home/iobroker $ python3 --version
                      Python 3.11.2
                      pi@iobroker:/home/iobroker $ pip3 --version
                      pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11)
                      pi@iobroker:/home/iobroker $
                      
                      
                      pi@iobroker:/home/iobroker $ nodejs -v
                      v20.19.0
                      pi@iobroker:/home/iobroker $ npm -v
                      10.8.2
                      pi@iobroker:/home/iobroker $
                      
                      

                      Beim letzten mal habe ich dann den "override" Befehl genutzt.

                      pi@iobroker:~ $ pip install blinkpy --break-system-packages
                      Defaulting to user installation because normal site-packages is not writeable
                      Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
                      Collecting blinkpy
                        Downloading https://www.piwheels.org/simple/blinkpy/blinkpy-0.23.0-py3-none-an                                                                                                                                                             y.whl (30 kB)
                      Collecting python-dateutil>=2.8.1
                        Downloading https://www.piwheels.org/simple/python-dateutil/python_dateutil-2.                                                                                                                                                             9.0.post0-py2.py3-none-any.whl (229 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 2.7 MB/s eta 0:00:00
                      Requirement already satisfied: requests>=2.24.0 in /usr/lib/python3/dist-package                                                                                                                                                             s (from blinkpy) (2.28.1)
                      Collecting python-slugify>=4.0.1
                        Downloading https://www.piwheels.org/simple/python-slugify/python_slugify-8.0.                                                                                                                                                             4-py3-none-any.whl (10 kB)
                      Collecting sortedcontainers~=2.4.0
                        Downloading https://www.piwheels.org/simple/sortedcontainers/sortedcontainers-                                                                                                                                                             2.4.0-py2.py3-none-any.whl (29 kB)
                      Collecting aiohttp>=3.8.4
                        Downloading aiohttp-3.11.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_a                                                                                                                                                             arch64.whl (1.7 MB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 5.8 MB/s eta 0:00:00
                      Collecting aiofiles>=23.1.0
                        Downloading https://www.piwheels.org/simple/aiofiles/aiofiles-24.1.0-py3-none-                                                                                                                                                             any.whl (15 kB)
                      Collecting aiohappyeyeballs>=2.3.0
                        Downloading https://www.piwheels.org/simple/aiohappyeyeballs/aiohappyeyeballs-                                                                                                                                                             2.6.1-py3-none-any.whl (15 kB)
                      Collecting aiosignal>=1.1.2
                        Downloading https://www.piwheels.org/simple/aiosignal/aiosignal-1.3.2-py2.py3-                                                                                                                                                             none-any.whl (7.6 kB)
                      Collecting attrs>=17.3.0
                        Downloading https://www.piwheels.org/simple/attrs/attrs-25.3.0-py3-none-any.wh                                                                                                                                                             l (63 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.8/63.8 kB 1.4 MB/s eta 0:00:00
                      Collecting frozenlist>=1.1.1
                        Downloading frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_                                                                                                                                                             aarch64.whl (276 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 276.4/276.4 kB 5.0 MB/s eta 0:00:00
                      Collecting multidict<7.0,>=4.5
                        Downloading multidict-6.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_a                                                                                                                                                             arch64.whl (135 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.7/135.7 kB 4.1 MB/s eta 0:00:00
                      Collecting propcache>=0.2.0
                        Downloading propcache-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_a                                                                                                                                                             arch64.whl (232 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 232.4/232.4 kB 5.0 MB/s eta 0:00:00
                      Collecting yarl<2.0,>=1.17.0
                        Downloading yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch                                                                                                                                                             64.whl (340 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 340.6/340.6 kB 4.6 MB/s eta 0:00:00
                      Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from                                                                                                                                                              python-dateutil>=2.8.1->blinkpy) (1.16.0)
                      Collecting text-unidecode>=1.3
                        Downloading https://www.piwheels.org/simple/text-unidecode/text_unidecode-1.3-                                                                                                                                                             py2.py3-none-any.whl (78 kB)
                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.2/78.2 kB 1.1 MB/s eta 0:00:00
                      Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from                                                                                                                                                              yarl<2.0,>=1.17.0->aiohttp>=3.8.4->blinkpy) (3.3)
                      Installing collected packages: text-unidecode, sortedcontainers, python-slugify,                                                                                                                                                              python-dateutil, propcache, multidict, frozenlist, attrs, aiohappyeyeballs, aio                                                                                                                                                             files, yarl, aiosignal, aiohttp, blinkpy
                        WARNING: The script slugify is installed in '/home/pi/.local/bin' which is not                                                                                                                                                              on PATH.
                        Consider adding this directory to PATH or, if you prefer to suppress this warn                                                                                                                                                             ing, use --no-warn-script-location.
                      Successfully installed aiofiles-24.1.0 aiohappyeyeballs-2.6.1 aiohttp-3.11.14 ai  
                      

                      Das haut dann aber mit den Berechtigungen bestimmt alles nicht hin. Ja evtl. hast Du ja kurz Zeit für nen "kleinen" workarround 😉

                      Thomas Braun 1 Reply Last reply Reply Quote 0
                      • B
                        Brekkis @arteck last edited by Brekkis

                        @arteck Danke für den Tipp, geht leider immer noch nicht.
                        Das Bild liegt im Ordner /opt/iobroker/pics. Von der Visu aus (Image oder HTML Widget, Ordnername und Bildname eingetragen) zeigt es aber nichts an.

                        Wenn ich über WINSCP auf das Dateisystem zugreife und auf den Ordner /opt/iobroker/pics navigiere und das Bild ins Windowssystem herunterlade und öffne sehe ich das Bild von der Kamera.

                        Ich kann es einfach nicht in der Vis anzeigen. Verflucht.
                        Bild-Widget bei Quelle: ../opt/iobroker/pics/blink.jpg
                        Es wird nur ein Frame mit Fragezeichen dargestellt. Oh mann, ich bin auf der Zielgeraden und dann sowas....

                        1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @varg last edited by

                          @varg sagte in Blink Camera System:

                          Ja evtl. hast Du ja kurz Zeit für nen "kleinen" workarround

                          pipx verwenden. Ist auch kein Workaround sondern der vorgesehene Weg.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.1k
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          blink xt camera
                          63
                          406
                          97171
                          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