NEWS
Wasserzähler - Selfmade
-
Guten Morgen
@pfried du hattest recht. Habe habe mal Testweise den Speicherplatz des Containers von 8 GB auf 20GB erweitert. Nun klappt der Dowload über docker pull jomjol/wasserzaehler: latest des Containers.Bin dabei etwas erschrocken. Kann es sein, dass der Download des Containers ca 13 GB groß ist????
Der Aufruf klappt nun.
stephan@Test:~$ docker run -p 3000:3000 --mount type=bind,source=/jomjolconfig,target=/config --mount type=bind,source=/jomjollog,target=/log --memory-swap -1 jomjol/wasserzaehler:latest 2020-01-01 07:27:52.798622: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
-
@ecki945 Der Container ist 590MB groß. Leider hat Tensorflow noch ein intrinsisches Speicherleck, daher wächst der Speicherbedarf mit der Zeit bei einigen Systemen an. Problem ist bei der Raspberry-Variante aber anscheinend größer.
-
Hallo zusammen,
ich überlege als nächste Erweiterung ein Tool zu schreiben, was bei der Erstellung der Config.ini unterstützt. Dies ist eine Hürde, da die manuelle Bearbeitung einer Textdatei für viele User eine erhebliche Hürde darstellt.
Wenn das in einer WYSIWYG-Web Anwendung möglich wäre, die entweder die Config.ini oder idealerweise sogar einen customized Docker Container ausspuckt, könnte ich mit dem Projekt noch viel mehr User erreichen.
Hat jemand Erfahrung damit und Lust das gemeinsam zu machen? Ich überlege gerade mit welchem Framework man so etwas aufsetzt und in welchem Tool ich es entwicklen würde.
Wer Lust / Zeit / Know-How hat, gerne bei mir melden
Beste Grüße,
jomjol -
@jomjol Prosit Neujahr!
Habe eine Bitte: kannst Du mir vielleicht mit einem Script am Raspberry Debian aushelfen, welches den Docker Container regelmäßig stoppt und wieder startet, um das Speicherleak zu umgehen.... Vielen Dank im Voraus! -
@pfried Hallo Paul,
ich würde den Befehl "docker restart CONTAINTERNAME" als cron-job alle xx Stunden einfügen. Hilft dir das? -
@jomjol Sicher danke, bitte sag mir noch wo ich den Befehl einfügen soll. Als Script im IOBroker?
Bei mir muss es also lauten: sudo docker restart 0cb549..... Correct? Wenn ich als Containername jomjol/wasserzaehler:raspi-rolling eingebe bekommen ich die Fehlermeldung: No such container ..... -
@pfried Ich kann es bei mir gerade nicht ausprobieren - Remote kein Zugriff auf den Raspi. Aber ich würde den Befehl erstmal in der Konsole probieren (so wie du es schon gemacht hast) und dann mit dem passenden Timining in die /etc/crontab einfügen. Eine Übersicht findest du hier:
http://raspberry.tips/raspberrypi-einsteiger/cronjob-auf-dem-raspberry-pi-einrichten
Gruß,
jomjol -
@jomjol Danke für den Tipp! Ich lerne jeden Tag dazu .... mittels Cron habe ich jetzt den Reset hinbekommen.
-
@pfried Schickst du mir den Cron-Eintrag, dann füge ich es der Raspi-Anleitung hinzu.
Hat der interne Restart bei dir nicht funktioniert? -
Hallo,
anbei nochmal ein Tipp für die Visualisierung in Grafana:
Ich habe den Verbrauch und den aktuellen Verbrauch pro Stunde in ein Diagramm gepackt:
SELECT floor(n.ts/1000) as time_sec, (max(n.val)-min(n.val))*1000 as value, "Wasser/h" as metric FROM ts_string n WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 2372 and n.id group by date_format(from_unixtime(ts/1000),"%Y-%m-%d-%H") ORDER BY n.ts ASC
Ja, das ist nicht 100% genau (also es wird nicht der Wert um exakt der vollen Stunde genommen, sondern der nächst größere, aber für mich reicht es)
-
@jomjol sagte in Wasserzähler - Selfmade:
Hallo zusammen,
ich überlege als nächste Erweiterung ein Tool zu schreiben, was bei der Erstellung der Config.ini unterstützt. Dies ist eine Hürde, da die manuelle Bearbeitung einer Textdatei für viele User eine erhebliche Hürde darstellt.
Wenn das in einer WYSIWYG-Web Anwendung möglich wäre, die entweder die Config.ini oder idealerweise sogar einen customized Docker Container ausspuckt, könnte ich mit dem Projekt noch viel mehr User erreichen.
Hat jemand Erfahrung damit und Lust das gemeinsam zu machen? Ich überlege gerade mit welchem Framework man so etwas aufsetzt und in welchem Tool ich es entwicklen würde.
Wer Lust / Zeit / Know-How hat, gerne bei mir melden
Beste Grüße,
jomjolHallo,
gute Idee, das hat mir am Anfang auch am meisten Probleme gemacht.
Noch besser wäre es, wenn man die Komplette Erkennung auf den ESP32 machen könnte. Es gibt doch Lösungen mit Gesichtserkennung, meinst du so etwas geht hier auch? -
@jomjol Der interne Restart hat nicht funktioniert, Ich habe in Crontab nun folgendes hinzugefügt:
"* */6 * * * root /root/scripts/FILENAME.sh"
Also restart alle 6 Stunden. Zeile aber ohne die Anführungszeichen
Inhalt von FILENAME.sh:#!/bin/bash
docker restart 3d83......Hier tritt das Problem zu Tage, dass man die ContainerID angeben muss, mit dem ContainerName habe ich es nicht geschafft.....
Die ContainerID habe ich mir mit:sudo docker container ls
ausgelesen. Nicht gerade eine nachhaltige Lösung, aber bis zur Behebung des Speicherleaks eine gangbare. Den Docker Container habe ich mit der Option -d für Service und --restart unless-stopped wie von @sissiwup beschrieben gestartet.
-
@sissiwup Hallo, vielleicht könntest Du bitte ein Dokument erstellen wie man mit Grafana die Visualisierung machen kann. Da ich, und wie ich mitbekommen habe andere auch Anfänger sind, wäre eine Doku vom Scratch sehr hilfreich....
-
@pfried sagte in Wasserzähler - Selfmade:
@sissiwup Hallo, vielleicht könntest Du bitte ein Dokument erstellen wie man mit Grafana die Visualisierung machen kann. Da ich, und wie ich mitbekommen habe andere auch Anfänger sind, wäre eine Doku vom Scratch sehr hilfreich....
Hallo pfried,
diese Doku habe ich bereits erstellt für grafana und iobroker.
Such einfach mal nach meinen Posts und grafana. Hier deshalb nur die Erweiterung für dieses tolle Projekt. -
@sissiwup Wow, coole Sache! Wo nehme ich nur die Zeit dafür her ...
-
@pfried sagte in Wasserzähler - Selfmade:
@jomjol Der interne Restart hat nicht funktioniert, Ich habe in Crontab nun folgendes hinzugefügt:
"* */6 * * * root /root/scripts/FILENAME.sh"
Also restart alle 6 Stunden. Zeile aber ohne die Anführungszeichen
Inhalt von FILENAME.sh:#!/bin/bash
docker restart 3d83......Hier tritt das Problem zu Tage, dass man die ContainerID angeben muss, mit dem ContainerName habe ich es nicht geschafft.....
Den ContainerName habe ich mir mit:sudo docker container ls
ausgelesen. Nicht gerade eine nachhaltige Lösung, aber bis zur Behebung des Speicherleaks eine gangbare. Den Docker Container habe ich mit der Option -d für Service und --restart unless-stopped wie von @sissiwup beschrieben gestartet.
Hallo,
wenn du nicht die ID verwenden möchtest, gib den Kind einen Namen:docker run -d --name wasser --restart unless-stopped -p 3300:3000 --mount type=bind,source=/var/docker/wasser,target=/config --mount type=bind,source=/var/docker/wasser,target=/log jomjol/wasserzaehler:latest
--name meinnamedescontainers
Meiner ist z.B. wasser
Der contab Eintrag (/etc/crontab) ist bei mir dann:
30 5 * * * root /usr/bin/docker restart wasser
oder für alle 6h:
30 */6 * * * root /usr/bin/docker restart wasser
-
@sissiwup Man lernt niemals aus, danke!
-
Hallo,
sorry komme mir in dem Thread wie ein Dau vor, aber nachdem mir der Wasserversorger einen neuen Typ Wasseruhr verbaut hat, passt mein Impulsmodul nicht mehr und die ESP 32 Cam war schnell da.
IOBroker läuft bei mir auf einem NUC unter Debian. Bekomme ich das System da auch zum Laufen oder muss ich mich erstmal mit Docker beschäftigen? Ich verstehe leider nicht wie ich was im Linux installieren muss (die Cam bekomme ich hin).
Grüße
Brati
-
Guten Morgen @Brati,
bin aktuell auch am gleichen Projekt drann. Auf meinem NUC läuft Proxmox. In einem Container IoBroker und in einem 2ten will ich das Wasseruhrprojekt von jomjol laufen lassen. Den Container dafür habe ich schon am laufen mit folgenden Parametern: 1 Core, 4MByte Hauptspeicher und 30GB Speicher. Ich habe noch Nesting und keyctl aktiviert. Dies geht bei Proxmox 6 nur durch editieren von Configdateien Nach diesem Video link
Aktuell habe ich es geschafft dass der Dockercontainer local gestartet werden kann. Die Konfiguration steht noch aus.
-
@sissiwup sagte in Wasserzähler - Selfmade:
Hallo,
gute Idee, das hat mir am Anfang auch am meisten Probleme gemacht.
Noch besser wäre es, wenn man die Komplette Erkennung auf den ESP32 machen könnte. Es gibt doch Lösungen mit Gesichtserkennung, meinst du so etwas geht hier auch?Die Rechenpower könnte für so etwas einfaches wie Ziffernerkennung vielleicht reichen. ABER: ich bräuchte die Tensorflow-Umgebung auf einem Python für den ESP32, soetwas habe ich aktuell noch nicht gesehen. Selbst für mein Synology NAS mit einem Intelprozessor musste ich sie selbst komplieren, da der schon den Befehlssatz AVX2 nicht unterstützt. Dazu bräuchte es echt einen Experten in ESP32 und Tensorflow Kompilierung.