NEWS
Wasserzähler - Selfmade
-
oh da hast du natürlich recht.
Dann müsste jemand auf einem pi das zeug erst einmal manuell installieren und danach ein Container abbild erzeugen.
so wie ich das aber bisher verfolgt habe scheint man für die manuelle Installation schon etwas fortgeschrittene Linux Skills zu benötigen. -
Jetzt wisst Ihr von was ich rede! ... alles nicht so einfach für einen Anfänger.
Vielleicht kann man ja das am Raspberry 4 auch ohne Docker lösen, aber wie schon gesagt, halt Schritt für Schritt beschrieben .....Habe mal schon das pip3 Ding von oben gemacht, das lief durch
-
@pfried Erstmal super, dass deine ESP32-CAM schon läuft. Der Container muss halt für einen Raspberry installiert sein. Ich überlege gerade, ob ich meinen einzigen Raspi mal kurz mit einem anderen System bespiele und es dann einfach mal probiere. Suche mir mal eine freie SD-Karte ...
-
@pfried Raspberry 3 läuft, Docker ist installiert - jetzt muss ich aber erstmal auf ein Konzert, also geht später weiter ...
-
@jomjol Docker am Raspi ist kein Problem. Nur der Dockercontainer von dir wurde mit einer amd64 Architektur erstellt. Der Raspi hat aber arm Architektur.
Bin gerade dabei, das Tensorflow für den rpi mit python 3.7 zu compilieren. Dauert aber ziemlich lange..Danach wollte ich mir dein Github clonen und das dockerfile anpassen und die neue Tensorflow Datei ins Github Verzeichnis holen - Anschließend das Docker Image generieren.
Mit Tensorflow und python 3.4 wäre das ganze schneller, weiß aber nicht, ob das mit deinen restlichen Files funktioniert, daher das neue compilieren mit python 3.7
-
@daniel_iobroker Machst du ein crosscompile oder compilierst du direkt auf Raspy?
-
@jomjol Habe ein crosscompile versucht. Den ganzen Nachmittag und Abend lang habe ich versucht, das zu compilieren. In einer virtuellen Maschine. Habe im letzten Versuch schon 10GB RAM zugewiesen und selbst da klappte es nicht. Der RAM wurde immer wieder voll inkl. Auslagerungsdatei.
Hab jetzt ein fertiges Ternsorflow mit python 3.4 geholt und baue gerade das docker image für den pi. Bin gespannt ob das funktioniert. Ist mein erster Versuch mit Docker
-
Eure Fotos von der ESP32Cam sind so scharf. Bei mir sieht noch etwas trübe aus. Hat da jemand ne Idee?
Habe bisher alles nach Anleitung gemacht. Also die mechanischen Teile mit dem 3D-Drucker erstellt, ESP32 mit Cam geflasht.
Mit dem Befehl http://192.168.178.54/capture_with_flashlight erstellt er auch ein Bild.
-
@ecki945 Wie das mit dem fokussieren geht, steht hier mehrfach im Thread
-
Danke mal. Les den thread nochmal durch
-
Nun ist das Bild scharf nach verdrehen der linse.
-
@jomjol
hab endlich das docker image für den pi fertig bauen können.
Beim start davon gibt es jedoch noch eine Fehlermeldung.root@orangepione:/home/pi# docker run -p 3000:3000 daniel2212/test-wasserzaehler Using TensorFlow backend. Traceback (most recent call last): File "./wasseruhr.py", line 3, in <module> import lib.ZaehlerstandClass File "/lib/ZaehlerstandClass.py", line 2, in <module> import lib.ReadAnalogNeedleClass File "/lib/ReadAnalogNeedleClass.py", line 1, in <module> import keras File "/usr/local/lib/python3.4/site-packages/keras/__init__.py", line 3, in <module> from . import utils File "/usr/local/lib/python3.4/site-packages/keras/utils/__init__.py", line 27, in <module> from .multi_gpu_utils import multi_gpu_model File "/usr/local/lib/python3.4/site-packages/keras/utils/multi_gpu_utils.py", line 7, in <module> from ..layers.merge import concatenate File "/usr/local/lib/python3.4/site-packages/keras/layers/__init__.py", line 4, in <module> from ..engine.base_layer import Layer File "/usr/local/lib/python3.4/site-packages/keras/engine/__init__.py", line 8, in <module> from .training import Model File "/usr/local/lib/python3.4/site-packages/keras/engine/training.py", line 21, in <module> from . import training_arrays File "/usr/local/lib/python3.4/site-packages/keras/engine/training_arrays.py", line 8, in <module> from scipy.sparse import issparse File "/usr/local/lib/python3.4/site-packages/scipy/__init__.py", line 77, in <module> from . import _distributor_init ImportError: cannot import name '_distributor_init'
Musste noch ein paar packages auf eine ältere Version ändern, da es für den pi keine neueren Versionen gab.
Hilft dir das weiter?
Vor allem der letzte Eintrag ist komisch und hier wird es auch hängen denke ich.Bin gespannt was du dazu schreibst.
-
@daniel_iobroker Da bist du deutlich weiter gekommen wie ich. Ich habe es bisher noch nicht geschafft, Tensorflow für Raspi zu kompilieren und die Version für Python 3.4 funktioniert auch nicht.
Die letzte Fehlermeldung scheint eine interne Bibliothek in Tensorflow zu sein. Damit bin ich auch ziemlich ratlos.
Ich überlege gerade, ob ich alles auf Tensorflow 1.9 oder 2.0 übertrage, denn dass sollte auf dem Raspi laufen. Ich habe aber noch keine Ahnung wieviel Aufwand das ist.
Was hast du den als Basisimage für das Docker vewendet? -
@jomjol
Danke.
Tensorflow zu kompilieren klappte bei mir auch nicht. Wie gesagt, wollte es in einer virtuellen Maschine kompilieren, aber selbst mit 10gb RAM klappte es nicht.
Aber mit der Tensorflow für python 3.4 klappte es.Hmm Tensorflow 1.9 bzw 2 konnte ich nicht für den pi finden. Hab daher die gleiche version genommen, die auch du hast. Nur halt in der arm v7 version mit python 3.4
In deinem docker file sind ja noch 4 weitere packages in das docker Image eingebunden. Die habe ich auch eingebunden und bei 2 gab es nur niedrigere Versionen. Das scipy musste ich komischerweise auch von Hand einbinden. Hab glaub ich 2 packages zusätzlich als wheel geladen und eingebunden, da beim bauen vom Image hier immer ein Problem war. Kann morgen noch mal nachsehen welche es genau waren.Zur Fehlermeldung : für mich klingt das so, als hätte da das scipy package ein Problem oder?
Basisimage war python 3.4
Du hattest ja als Basisimage python 3.7 genommen, das ginge bei mir jedoch nicht, da das fertig kompilierte Tensorflow für den raspi python 3.4 voraussetzt. Hab es zuerst trotzdem versucht, dann kam aber beim bauen gleich eine Fehlermeldung.Kann man eigentlich in ein laufendes bzw installiertes docker Image schauen? Eventuell müssten wir bei meinem fertigen Image nur schauen, ob die fehlende Datei eventuell eh vorhanden ist - jedoch in einem anderen Verzeichnis liegt?
-
@jomjol Ich bekomme dein Dockerimage nicht ans Laufen. Habe in einer Debian VM unter Proxmox Docker installiert. Pull funktioniert auch. Aber dann komme ich nicht weiter:
admp@dockertest:~$ sudo docker run -p 3000:3000 jomjol/wasserzaehler [sudo] Passwort für admp: Using TensorFlow backend. WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:97: calling Zeros.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:97: calling Ones.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:97: calling GlorotUniform.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor
Habe die Nacht so stehen lassen, ohne Veränderung. Dann mit CTR-C abgebrochen, folgende Ausgabe:
^CStart Init Zaehlerstand Analog Model Init Done Digital Model Init Done Digital Model Init Done Wasserzaehler is serving at port 3000 Traceback (most recent call last): File "./wasseruhr.py", line 88, in <module> httpd.serve_forever() File "/usr/local/lib/python3.7/socketserver.py", line 232, in serve_forever ready = selector.select(poll_interval) File "/usr/local/lib/python3.7/selectors.py", line 415, in select fd_event_list = self._selector.poll(timeout) KeyboardInterrupt
-
@watcherkb Welches Images verwendest du den? Die Version jomjol/wasserzaehler:rolling läuft bei mir ohne Probleme.
Was für eine Hardware hast du den? Das Dockerimage ist für eine Intel-CPU kompiliert. Daher läuft es auch auf einen Raspi so nicht.
-
Hallo nur zur Info läuft bei mir rolling auf ner syno emulation unter doker mit der intel xenon Cpu ok !
wobei eigentlich der server mal startet und unter port 3000 erreichbar istMit freundlichen Grüßen
-
@jomjol sagte in Wasserzähler - Selfmade:
jomjol/wasserzaehler
es wird wohl das latest sein. Also der Standard wenn nichts anderes angegeben wird. Ich habe einen NUC i7. Ich schau mal ob ich auch was Richtung CPU einstellen kann.
Jedoch scheint es so als ob das Docker doch fertig lädt, bekomme aber aktuell eine falsche IP aus anderem IP-Bereich. Muss mich noch damit auseinandersetzen. Docker ist neu für mich -
@watcherkb Kurzer Zwischenstand: ich schaffe es gerade nicht, das ganze auf Raspi zum Laufen zu bringen. Scheitere aktuell schon an OpenCV
Bin die nächste Woche aber komplett verplant und habe daher keine Zeit, daran zu arbeiten.
Wenn ihr es auf dem Raspi hinbekommt, wäre ich mehr als gespannt, wie es geht. -
@jomjol keine Eile. Ist klar dass alles in der Freizeit passiert
Frage mich aber ob es auch ohne Docker geht, einfach auf einem Debian System z.B. ?