In manchen Fällen kann es sinnvoll sein, ein aktuelles Bild vom Pi oder seiner Umgebung zu machen. Mit der Pi-Camera, der libcamera und dem Dashboard von Flowfuse funktioniert das ganz einfach – wenn man denn weiß, wie. Alle, die das Original-Dashboard nutzen, werden hier fündig. (Mit einer Anpassung auf libcamera-still, weil das dort genutzte raspistill
nicht mehr in PiOS zu finden ist)
Der ui-Button und der inject-Node sind jeweils zum Auslösen des Fotos da, einer für das Dashboard/die UI und einer für das testen, während man am Flow bastelt. Natürlich kann man mit dem inject-Node eine zeitgesteuerte Automatisierung herbeiführen, oder z.B. das Auslösen eines Bewegungsmelder den Flow starten lassen. Was als Payload in den nächsten Node in unserem Flow reinkommt ist völlig egal. Dieser exec-Node führt den Befehl libcamera-still
mit den „zusätzlichen Übergabeparametern“ --width 320 --height 240 -o - | base64
aus. Die Ausgabe erfolgt „nach dem Befehlsabschluss (exec)“. Hiermit fordern wir von der Kamera ein Foto in der Auflösung 320×240 an und lassen es in Base64 codieren. Das ermöglicht es uns, das Foto in einfachen ASCII-Zeichen im Payload weiterzuverarbeiten.
Am obersten Verbindungspunkt des exec-Nodes (oder jetzt libcamera-still-Nodes) kommt das Foto dann heraus und wir müssen nur noch dafür sorgen, dass es in unserem Dashboard angezeigt wird. Hier unterscheiden sich übrigends das NodeRed-eigene Dashboard und das Dashboard von FlowFuse. Diese Anleitung bezieht sich auf Letzteres. Hier brauchen wir einmal den Template-Node und dann den text-Node aus den Dashboard(2)-Nodes. In den Template-Node schreiben wir <img src="data:image/jpeg;base64,{{payload}}" />
, womit wir unser als Text codiertes Bild in html verpacken und lassen den Node ansonsten unangetastet. Um text-Node müssen wir dann nur noch angeben, wo das ganze mit welchem Label auftauchen soll und schon haben wir eine rudimentäre Überwachungskamera.
Disclaimer: Was für rechtliche Schritte ihr unternehmen müsst, um das auf juristisch korrekte Füße zu stellen, müsst ihr selbst gucken, bei mir wird nur ein für die Öffentlichkeit unzugänglicher Bereich überwacht.
Übrigens sind die Daten wie gesagt nur ASCII-Zeichen und so klein , dass sie sich auch leicht über mqtt übers Internet verschicken lassen, so dass man auch ohne VPN aber mit heimischem Smarthome an das Foto kommt. Einfach einen freien mqtt-Server suchen und beide Smarthomes darüber miteinander verbinden…
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.