NEWS
Blink Camera System
-
-
Die Readme hast du gelesen?
BREAKING CHANGE WARNING: As of 0.22.0 the library uses asyncio which will break any user scripts used prior to this version. Please see the updated examples below and the blinkapp.py or blinksync.py examples in the blinkapp/ directory for examples on how to migrate.
-
@thomas-braun sagte in Blink Camera System:
Gib mal die Langfassung von
iob diag
bekannt.
Copy text starting here:
======================= SUMMARY ======================= v.2023-10-10 Static hostname: HomePi Icon name: computer Operating System: Debian GNU/Linux 11 (bullseye) Kernel: Linux 6.1.21-v8+ Architecture: arm64 Installation: native Kernel: aarch64 Userland: arm64 Timezone: Europe/Berlin (CET, +0100) User-ID: 1000 X-Server: true Boot Target: graphical.target Pending OS-Updates: 0 Pending iob updates: 0 Nodejs-Installation: /usr/bin/nodejs v18.18.2 /usr/local/bin/node v18.13.0 /usr/local/bin/npm 8.19.3 /usr/local/bin/npx 8.19.3 /usr/local/bin/corepack 0.15.2 Recommended versions are nodejs 18.18.2 and npm 9.8.1 *** nodejs is NOT correctly installed *** Wrong installation path detected. This needs to be fixed. Please check https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debian for more information on how to fix these errors. MEMORY: total used free shared buff/cache available Mem: 3.8G 2.0G 484M 69M 1.3G 1.6G Swap: 99M 0B 99M Total: 3.9G 2.0G 584M Active iob-Instances: 27 Active repo(s): stable ioBroker Core: js-controller 5.0.12 admin 6.12.0 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : HomePi - enabled, port: 8081, bind: 0.0.0.0, run as: admin + system.adapter.web.0 : web : HomePi - enabled, port: 8082, bind: 0.0.0.0, run as: admin Objects: 15766 States: 13659 Size of iob-Database: 15M /opt/iobroker/iobroker-data/objects.jsonl 18M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
Er sagt immer noch das es nicht korrekt installiert wurde
-
@thomas-braun sagte in Blink Camera System:
Die Readme hast du gelesen?
BREAKING CHANGE WARNING: As of 0.22.0 the library uses asyncio which will break any user scripts used prior to this version. Please see the updated examples below and the blinkapp.py or blinksync.py examples in the blinkapp/ directory for examples on how to migrate.
Hatte ich gelesen und getestet aber auch da nen fehler bekommen. Deswegen wollte ich die alte Version mal testen
-
Schalt den DESKTOP aus.
Und nodejs ist noch falsch installiert.iob nodejs-update
Da dann die Pfade reparieren lassen.
-
Das war auch nicht die Langfassung.
Also nochmal, nachdem nodejs repariert ist. -
Moin,
die Frage ist, was willst Du noch mit dem alten script ? Das wird so nicht mehr funktionieren, da sich die syntax zum einloggen etc. etwas verändert hat.
Nutze doch einfach das homebridge plugin, sofern Du die Anlage scharf oder unscharf schalten möchtest.
Gruss
-
@pischleuder sagte in Blink Camera System:
Moin,
die Frage ist, was willst Du noch mit dem alten script ? Das wird so nicht mehr funktionieren, da sich die syntax zum einloggen etc. etwas verändert hat.
Nutze doch einfach das homebridge plugin, sofern Du die Anlage scharf oder unscharf schalten möchtest.
Gruss
Ja mit dem Homebridge funktioniert es bei mir nicht mehr Keine ahnung warum
-
welches npm Modul hast Du denn in der Homebridge Instanz eingegeben ?
Es sollte homebridge-blink-for-home@3.9.2 dort stehen und die Instanz im Wrapper Modus
starten.in der Konfig dann so:
{
"description": "Add configuration for your accessories or platforms according to the docs of the plugins.",
"accessories": [],
"platforms": [
{
"name": "Blink",
"username": "Email-Adresse",
"password": "Dein Passwort",
"pin": "Deine Pin",
"platform": "Blink"
}
]
} -
@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)
-
@pischleuder sagte in Blink Camera System:
welches npm Modul hast Du denn in der Homebridge Instanz eingegeben ?
Es sollte homebridge-blink-for-home@3.9.2 dort stehen und die Instanz im Wrapper Modus
starten.in der Konfig dann so:
{
"description": "Add configuration for your accessories or platforms according to the docs of the plugins.",
"accessories": [],
"platforms": [
{
"name": "Blink",
"username": "Email-Adresse",
"password": "Dein Passwort",
"pin": "Deine Pin",
"platform": "Blink"
}
]
}So habe ich es jetzt eingestellt aber ich bekomme in der Config folgende Meldung:
Either the "platform" or "accessory" property must be set
EDIT: Okay ich denke ich habe es hinbekommen!.. Ist aber sehr träge im Vergleich zu vorher.
-
@dr-bakterius sagte in Blink Camera System:
Gibt es für die Erstellung einer Bildaufnahme eine funktionierende Vorlage?
Keine Ahnung. Ich hab keine Blink Camera im Einsatz.
-
@thomas-braun sagte in Blink Camera System:
Das war auch nicht die Langfassung.
Also nochmal, nachdem nodejs repariert ist.Sorry. Hier bitte
-
Da habe ich leider nach wie vor den selben Fehler...
from blinkpy.blinkpy import Blink ImportError: No module named blinkpy.blinkpy
Trotz dem 0.21.0
Naja ich habe dank @Pischleuder erstmal ne Lösung und muss denke ich auch mal von bullseye auf Bookworm wechseln mim Pi4
-
@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.