NEWS
Blink Camera System
-
@dr-bakterius sagte in Blink Camera System:
@gurke258 sagte in Blink Camera System:
Deswegen wollte ich die alte Version mal testen
Die alte blinkpy-Version vor dem breaking change? Die kann man mit
sudo pip install blinkpy==0.21.0
installieren. Musste ich auch machen, weil ich das Skript auf die v0.22.0 nicht angepasst bekommen habe.@Thomas-Braun: Gibt es für die Erstellung einer Bildaufnahme eine funktionierende Vorlage? Dann würde ich es vielleicht noch einmal mit der neuen Version testen.
Meine 'bild.py' für v0.21.0 sieht so aus:
import requests from blinkpy.blinkpy import Blink from blinkpy.auth import Auth from blinkpy.camera import BlinkCamera blink = Blink() auth = Auth({"username": "******", "password": "*******"}, no_prompt=True) blink.auth = auth blink.start() auth.send_auth_key(blink, "******") blink.setup_post_verify() bild = '/opt/iobroker/blink.jpg' for name, camera in blink.cameras.items(): print(name), print(camera.attributes) camera = blink.cameras['Eingangstuere'] camera.snap_picture() blink.refresh() camera.image_to_file(bild)
Moin,
nein - ich hatte dieses script damals zusammengedängelt, mir aber nicht die Mühe gemacht, das auf die neue blinkpy umzusetzen, da es immer noch keinen livestream support geben wird.
-
@pischleuder sagte in Blink Camera System:
nein - ich hatte dieses script damals zusammengedängelt, mir aber nicht die Mühe gemacht, das auf die neue blinkpy umzusetzen, da es immer noch keinen livestream support geben wird.
Verstehe. Allerdings haben alle die die aktuelle v0.22.0 installieren dann das Problem, dass das Skript nicht tut. Ich hatte zwar versucht es nach der Beschreibung auf Git-Hub anzupassen, bin aber gescheitert. Für meinen Zweck würde es schon reichen ein Bild aufzunehmen und am gewünschten Ort zu speichern. Livestream ist mit Batterie ohnehin eine weniger gute Idee und könnte ich ja immer noch mit der Blink-App haben.
-
ja, das Problem ist nur, dass Module benötigt werden, die in der aktuellen Python-Version (3.11) noch nicht enthalten sind und man kann diese nicht so ohne weiteres über pip nachladen. Lediglich als venv Variante. Der Aufwand ist derzeit zum Nutzen einfach zu hoch.
-
Ich grabe diesen Thread aus aktuellem Anlass wieder aus.
Seit irgendwann im April hat Blinkpy nicht mehr funktioniert, weil Amazon bei der Anmeldung etwas geändert hat und dadurch jedes Mal ein neuer 2FA Code gesendet wurde. Das wurde auch auf GitHub behandelt (https://github.com/fronzbot/blinkpy/issues/917). Inzwischen dürfte es eine Lösung geben die ich hier gerne zusammenfassen möchte. Vielleicht nützt es ja jemandem.
Aktuell muss man folgende beiden Skripte von GitHub herunterladen und bei sich im Ordner
/home/<user>/.local/lib/python3.11/site-packages/blinkpy
ersetzen:auth.py
undblinkpy.py
.Man erstellt einmalig ein Skript (z.B.
anmelden.py
) mit folgendem Inhalt: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())
Wenn man dieses von der Console aufruft
python3.11 anmelden.py
, wird man nach seinen Anmeldedaten gefragt und erhält dann den 2FA Code welchen man angibt. Anschließend wird in
/opt/iobroker
die Dateiblink_auth.json
erstellt. Diese enthält die Anmeldedaten für künftige Abfragen. Danach kann man das Skript wenn man möchte wieder löschen.Um jetzt ein Bild abzufragen braucht man folgendes Skript:
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())
Leider ist es mir nicht gelungen das Skript mit exec (JS oder Blockly) wegen fehlender Berechtigung aufzurufen. Ich habe das dann mit dem Linux-Control Adapter gelöst.
-
gibt es mittlerweile eine Möglichkeit auf die Bilder der Cam zuzugreifen??
-
@flowski Geht doch wie oben beschrieben.
-
@dr-bakterius said in Blink Camera System:
@flowski Geht doch wie oben beschrieben.
oh wow das habe ich wohl übersehen, bzw. inhaltlich garnicht wirklich begriffen, befinde mich noch in den Anfängen des ganzen... wie zuverlässig läuft das ganze? Sind die Bilder auch schnell verfügbar dass es auch Sinn macht?
-
@flowski Was ist schnell? Ich lasse mir die Bilder mit Pushover ans Handy schicken. Das dauert etwa 15 Sekunden. Der Verbinungsaufbau meiner Blink Outdoor dauert alleine schon 10-12 Sekunden.
-
@dr-bakterius : 15 sek. empfinde ich als schnell von daher würde das passen.
-
@dr-bakterius gibt es da irgendwo eine Anleitung für Dummies zu? Mit meinem Wissensstand kriege ich das leider nicht gebacken vermute ich
-
Hallo, kann mir jemand sagen, ob sich die Blink Outdoor Kamaras nun in den Iobroker integrieren lassen mit einem Adapter? Also ich will nur in meinem IQontrol das bild von der Kamara sehen. Ist dies nun möglich? Momentan sind Prime Days und preislich interessant.
-
@flowski Einfach probieren. Wenn es wo hakt, beschreiben was nicht geht (Fehlermeldung oder Screenshot). Eine Schritt-für-Schritt Anleitung kenne ich nicht.
-
@dr-bakterius dann entscheide ich mich evt. Doch lieber für eine IP Kamera. Hoffentlich geht das besser, wie die von Blink
-
@line sagte in Blink Camera System:
lieber für eine IP Kamera
Ja, wenn das in deiner Situation möglich ist, ist das sicher die bessere Wahl. Ich würde aber darauf achten nicht von einer Cloud abhängig zu sein. Also lieber ein paar Euro mehr investieren.
-
@dr-bakterius danke für das Angebot.. werde mich morgen dransetzen. Zum Verständnis, das erstellen der Scripte erledige ich alles unter Scripte -> Java Script... und für das Aufrufen dann über den Linux controller?
-
@flowski Nein, du installierst auf der Linux-Konsole erst Python und dann mittels
pip install blinkpy
die eigentliche Software. Ich glaube, dass der Austausch der beiden Dateien inzwischen nicht mehr notwendig sein wird.Danach erstellst du (z.B. mit
nano
) die beiden Skripte die du natürlich auf deine Gegebenheiten anpasst. Das erste Skript musst du nur einmal aufrufen um die Anmeldedaten zu speichern. Das zweite kannst du dann per cron, händisch oder mit dem linux-control Adapter aufrufen wenn du eine Aufnahme speichern möchtest. Dieses Bild kannst du dann wie gewünscht versenden oder archivieren.Also mit der Konsole solltest du nicht auf Kriegsfuß stehen...