Hmmm, jemand hat geschrieben, dass es noch keine Python-Bibliothek für libcamera gibt. Mit subprocess muss es sein.
Da muß ich mich erstmal einlesen, hab ich noch gar nicht gemacht.
Hmmm, jemand hat geschrieben, dass es noch keine Python-Bibliothek für libcamera gibt. Mit subprocess muss es sein.
Da muß ich mich erstmal einlesen, hab ich noch gar nicht gemacht.
Ich hatte das Problem mit allen Daten und Softwareständen dem Lieferanten gemeldet. Er hat ohne große Nachfrage einen Ersatz auf den Weg gebracht.
Wenn die Kamera klappt funktioniert, war die alte defekt.
Die neue Kamera hab ich an den Raspberry gesteckt und läuft, einfach so
Erstmal mit Raspistill um ein Bild zu haben. Jetzt fehlten mir noch Python-Bibliotheken, um auch mein skript zu starten. Aber da picamera ja veraltet sein soll, gehe ich den vorgeschlagenen neuen Weg mit libcamera.
Wird schon klappen.
Ich hatte das Problem mit allen Daten und Softwareständen dem Lieferanten gemeldet. Er hat ohne große Nachfrage einen Ersatz auf den Weg gebracht.
Wenn die Kamera klappt funktioniert, war die alte defekt.
Habe nochmal "Bullseye-lite" neu aufgespielt, nur die notwendigsten Einstelluungen/Änderungen gemacht. Bild bleibt schwarz.
Eine Info hatte ich unterschlagen, hab kein Display und keine Tastatur dran, gehe über Terminal und Filezilla auf den Rpi.
Test mit libcamera-jpeg gemacht, eine Datei wird geliefert, schwarzes Bild.
pi@rpi3aplus:~ $ libcamera-jpeg -o test.jpg
Preview window unavailable
[0:17:28.806756443] [1004] INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3424-e68e0f1e
[0:17:28.830135075] [1005] ERROR CameraSensor camera_sensor.cpp:551 'ov5647 10-0036': Camera sensor does not support test pattern modes.
[0:17:28.865135030] [1005] INFO RPI raspberrypi.cpp:1317 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media3 and ISP device /dev/media0
[0:17:28.866056001] [1004] INFO Camera camera.cpp:1028 configuring streams: (0) 1296x972-YUV420
[0:17:28.866468440] [1005] INFO RPI raspberrypi.cpp:747 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 1296x972-SGBRG10_1X10 - Selected unicam format: 1296x972-pGAA
[0:17:28.888709335] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Saturation = 1.000000
[0:17:28.888883759] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Contrast = 1.000000
[0:17:28.888961934] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Brightness = 0.000000
[0:17:28.889036151] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: AwbMode = 0
[0:17:28.889107816] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Sharpness = 1.000000
[0:17:28.889181930] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: ExposureValue = 0.000000
[0:17:28.889253438] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: AeExposureMode = 0
[0:17:28.889322187] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: FrameDurationLimits = [ 33333, 33333 ]
[0:17:28.889400519] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: AeMeteringMode = 0
[0:17:28.889468694] [1009] INFO IPARPI raspberrypi.cpp:631 Request ctrl: NoiseReductionMode = 3
[0:17:34.067026635] [1004] INFO Camera camera.cpp:1028 configuring streams: (0) 2592x1944-YUV420 (1) 2592x1944-SGBRG10_CSI2P
[0:17:34.067681309] [1005] INFO RPI raspberrypi.cpp:747 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 2592x1944-SGBRG10_1X10 - Selected unicam format: 2592x1944-pGAA
[0:17:34.148019047] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Saturation = 1.000000
[0:17:34.148242323] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Contrast = 1.000000
[0:17:34.148335186] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Brightness = 0.000000
[0:17:34.148417372] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: AwbMode = 0
[0:17:34.148493933] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: Sharpness = 1.000000
[0:17:34.149023401] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: ExposureValue = 0.000000
[0:17:34.149117045] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: AeExposureMode = 0
[0:17:34.149563026] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: FrameDurationLimits = [ 100, 1000000000 ]
[0:17:34.149649274] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: AeMeteringMode = 0
[0:17:34.150139889] [1014] INFO IPARPI raspberrypi.cpp:631 Request ctrl: NoiseReductionMode = 2
Still capture image received
Alles anzeigen
Anschließend hab ich noch den Test mit Ausgabe eines RAW-Bildes gemacht um den Bildprozessor als Fehlerquelle auszuschließen. In Gimp mit Rawtherapee angesehen - viele vertikale dunkelblaue Striche, mehr nicht.
Für mein Verständnis ist der Sensor defekt, oder?
ok, mach ich mal in Ruhe,
danke dir.
jetzt läuft das Prog als sudo im Terminal gestartet durch 52 Bilder im 5sec. Abstand, aber alle schwarz
als Pi gestartet auch schwarze Bilder
und mit sudo:
pi@rpi3aplus:~ $ sudo python3 bildermachen.py
Traceback (most recent call last):
File "/home/pi/bildermachen.py", line 1, in <module>
from picamera import PiCamera
ModuleNotFoundError: No module named 'picamera'
hmmm - weil ich das Modul als pi installiert habe ??
installiere es gerade nochmal mit sudo.....
hab's versucht
pi@rpi3aplus:~ $ raspistill -tl 1000 -t 10000 -o bild_%04d.jpg
mmal: Skipping frame 7 to restart at frame 12
pi@rpi3aplus:~ $
sollte ca 10 Bilder machen 7 sind mit Inhalt, danach kam nur das 12te und das ist wieder schwarz.
Hatte auch mal ins Home-Verzeichis schreiben lassen, waren auch schwarz.
müsste denn nicht eines der folgenden Bilder hell erscheinen?
Bei den Tests war das erste Bild immer flau, das zweite war dann gut.
ich füge mal ein sleep(2) vor der Schleife ein....
... 10min später: leider keine Verbesserung...
Hallo zusammen,
befasse mich z.Zt. mit der Timelapse Funktion auf folgender Basis:
RPi 3aplus, schon über ein Jahr einwandfrei mit anderem Programm 24/7 gelaufen.
OS (ohne Desktop) seit heute neu PiOS lite bullseye 2022 04 04,
Kamera original RPi 5M (rev 1.3) von AZ-Delivery von Mai 2022.
SD-Karte schon getauscht, USB Stick auch getauscht.
Sollte beim Start automatisch aufzeichnen mit:
from picamera import PiCamera
from time import sleep
import datetime
camera = PiCamera()
camera.resolution = (1920, 1080)
for i in range(30):
date = datetime.datetime.now().strftime('%d-%m-%Y_%H.%M.%S')
camera.capture('/media/usbmedia/pic/img_' + date + '.jpg')
sleep(5)
Alles anzeigen
in der rc.local ist eingefügt:
USB-Stick in der fstab angelegt und nach media/usbmedia gemountet (beim Hochfahren).
5V Stabil aus einem Meanwell - Netzteil.
Kamera funktionierte am Anfang einwandfrei.
Statische Aufladungen können es nicht sein, die Gefahr kenn ich und behandle Platinen entsprechend vorsichtig.
Es funktioniert 1A super mit den Einstellungen und dem Script, bekomme die Bilder auf den Stick geliefert - nur leider sind alle schwarz.
Jetzt bin ich ratlos. Kann die Kamera durch die mehrstündigen Tests hin sein?
Habt ihr so etwas schon mal gehabt? Dann würde ich die Kamera reklamieren.
Danke für jeden Tipp.
Der Modbus ist ein Master/Slave-Bus.
Der RPi ist der Master und fragt in den Bus mit Adresse des Slave hinein.
Der angesprochene Slave (Zähler) antwortet dann.
Hab den Ablauf im Programm nicht mehr so genau im Kopf, aber eine Idee:
Mit der Abfrage eines Status an alle Adressen, vermutlich 0 bis 255 , bekommt der RPi jeweils Antwort von einem vorhandenen Slave.
Die vorhandenen Adressen speichern und Daten anschließend von den vorhandenen Slave-Adressen abfragen.
Die Daten dann getrennt nach Slave-Adressen speichern.
Ist leicht gesagt, aber sicher für viele hilfreich, die mehrere Zähler haben - PV-Anlagenbetreiber z.B.
Hier kommt eine Information zum Dauertest:
Die Abfrage aller Werte des SDM630 im 5sec-Takt hat 6 Wochen durchgehalten. Ich habe 701000 Datensätze in den 6 Wochen gespeichert. Meines Erachtens geht das nur durch eine Weiterleitung der Daten auf einen Server.
Einmal war mein MySQL-Server nicht erreichbar, da blieb das Programm stehen, klar. Wenn ich mehr Zeit habe, sehe ich mal nach einer Lösung, dass das Programm nicht hängen bleibt....
Nachtrag: Der modbus läuft seit Tagen mit 38KBaud und seit gestern frage ich alle Daten des SDM630 im 5 Sekunden-Takt ab und schicke sie an den Server.
Der Raspberry hält durch
Hallo,
hatte auch einen SDM 630 mit Hofei s Hilfe in Betrieb gesetzt. War das Thema:
Welche Werte benutzt du aus dem SDM 630 und welchen Vorteil hast du damit? Ich brauchte ihn für die Leistung einer Pumpe in unserer Heizung.
Mit dem alten modbustreiber hatte ich Probleme und habe die Baudrate heruntergesetzt. Wenn die Erfassung jetzt stabil läuft, erhöhe ich sie wieder und setze das Messintervall hoch.
Nachtrag:
Sorry hofei, sehe gerade, dass dies dein Projekt- Thread ist und kein Neuer von schmae
Nachdem der Rpi nur lange durchgehalten hat und keine Aussetzer mehr hatte, habe ich mir Zeit für den nächsten Schritt genommen.
Hab ihn komplett neu aufgesetzt, aktuelles OS, das neue Readme fürs smartmeter hergenommen und genau nach Anleitung installiert.
Was soll ich euch sagen..... lief sofort
Wenn er wieder durchhält, werde ich die Geschwindigkeit des modbus hochsetzen und mal die Abfrageintervalle intensivieren.
Danke euch für die Unterstützung, freue mich sehr, dass es fertig geworden ist
Danke, so ist es verständlich. Werde ich ausprobieren.
danke für deine Erläuterungen. Hatte folgenden Satz in der Readme falsch interpretiert:
Hatte es so gelesen, dass es sich auf die folgenden Befehle bezieht. Du meinst damit wahrscheinlich die zuvor aufgelisteten.
Ist das so richtig beschrieben ?
### Benötigte Python Module
######### BEISPIEL: pi@raspberry:~/smartmeter-master $ sudo apt install Toml
* Toml
* Peewee
* serial
* minimalmodbus
Installation dieser:
Apt Installation erfordert ggf. root Rechte! Paketquellen zuvor updaten. (apt update)
```console
########## folgende Befehle ohne sudo
########## Beispiel pi@raspberry:~/smartmeter-master $ apt install build-essential
apt install build-essential libssl-dev libffi-dev python3-dev libpq5 git
pip3 install --user -r requirements.txt
git clone https://github.com/Hofei90/smartmeter.git /home/pi/smartmeter
cd /home/pi/smartmeter
git submodule init && git submodule update
```
Alles anzeigen
Damit kann selbst ich es richtig machen
Unabhängig davon hab ich den Eindruck, dass dein überarbeitetes Programm viel stabiler läuft, danke dafür.
Natürlich! Für das sind Fehlermeldungen da, dass sie gelesen und behoben werden.
stimmt schon
Habe nochmal von vorn angefangen, genau nach readme.
Start im Verzeichnis smartmeter-master
pi@rpi3aplus:~/smartmeter-master $ ls -la
insgesamt 112
drwxr-xr-x 3 pi pi 4096 Apr 14 14:13 .
drwxr-xr-x 8 pi pi 4096 Apr 14 14:14 ..
-rw-r--r-- 1 pi pi 10998 Apr 12 12:50 db_model.py
-rw-r--r-- 1 pi pi 826 Apr 12 12:50 db_postgrest_model.py
-rw-r--r-- 1 pi pi 33561 Apr 12 12:50 electric_meter.py
-rw-r--r-- 1 pi pi 1852 Apr 12 12:50 .gitignore
-rw-r--r-- 1 pi pi 99 Apr 12 12:50 .gitmodules
-rw-r--r-- 1 pi pi 1064 Apr 12 12:50 LICENSE
-rw-r--r-- 1 pi pi 4113 Apr 12 12:50 README.md
-rw-r--r-- 1 pi pi 87 Apr 12 12:50 requirements.txt
-rw-r--r-- 1 pi pi 2693 Apr 12 12:50 setup_logging.py
-rw-r--r-- 1 pi pi 1002 Apr 12 12:50 smartmeter_cfg_vorlage.toml
-rw-r--r-- 1 pi pi 10039 Apr 12 12:50 smartmeter.py
-rw-r--r-- 1 pi pi 2505 Apr 12 12:50 smartmeter_telegrambot.py
drwxr-xr-x 2 pi pi 4096 Apr 14 14:13 telegram_api
1.Befehl aus dem Readme , alles ok
pi@rpi3aplus:~/smartmeter-master $ sudo apt install build-essential libssl-dev libffi-dev python3-dev libpq5 git
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
build-essential ist schon die neueste Version (12.6).
git ist schon die neueste Version (1:2.20.1-2+deb10u3).
libffi-dev ist schon die neueste Version (3.2.1-9).
libpq5 ist schon die neueste Version (11.11-0+deb10u1).
python3-dev ist schon die neueste Version (3.7.3-1).
libssl-dev ist schon die neueste Version (1.1.1d-0+deb10u6+rpt1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
2.Befehl aus dem Readme , alles ok
pi@rpi3aplus:~/smartmeter-master $ sudo pip3 install --user -r requirements.txt
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (2018.8.24)
Requirement already satisfied: chardet in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (3.0.4)
Requirement already satisfied: idna in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (2.6)
Collecting minimalmodbus (from -r requirements.txt (line 4))
Using cached https://files.pythonhosted.org/packages/6c/d5/77d42e8a0b73da2b5f97acd91900ac50e303b4cb959f76350cfbb38e05a0/minimalmodbus-1.0.2-py2.py3-none-any.whl
Collecting peewee (from -r requirements.txt (line 5))
Using cached https://www.piwheels.org/simple/peewee/peewee-3.14.4-py3-none-any.whl
Requirement already satisfied: pyserial in /root/.local/lib/python3.7/site-packages (from -r requirements.txt (line 6)) (3.5)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from -r requirements.txt (line 7)) (2.21.0)
Collecting toml (from -r requirements.txt (line 8))
Using cached https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl
Requirement already satisfied: urllib3 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 9)) (1.24.1)
Requirement already satisfied: systemd-python in /root/.local/lib/python3.7/site-packages (from -r requirements.txt (line 10)) (234)
Installing collected packages: minimalmodbus, peewee, toml
Successfully installed minimalmodbus-1.0.2 peewee-3.14.4 toml-0.10.2
3.Befehl aus dem Readme , alles ok
pi@rpi3aplus:~/smartmeter-master $ sudo git clone https://github.com/Hofei90/smartmeter.git /home/pi/smartmeter
Klone nach '/home/pi/smartmeter' ...
remote: Enumerating objects: 138, done.
remote: Counting objects: 100% (138/138), done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 138 (delta 79), reused 124 (delta 71), pack-reused 0
Empfange Objekte: 100% (138/138), 42.64 KiB | 1.58 MiB/s, Fertig.
Löse Unterschiede auf: 100% (79/79), Fertig.
4.Befehl aus dem Readme , alles ok
pi@rpi3aplus:~/smartmeter-master $ cd /home/pi/smartmeter
5.Befehl aus dem Readme , sudo vergessen
pi@rpi3aplus:~/smartmeter $ git submodule init && git submodule update
error: Konnte Konfigurationsdatei '.git/config' nicht sperren.: Keine Berechtigung
error: Konnte Konfigurationsdatei '.git/config' nicht sperren.: Keine Berechtigung
fatal: Fehler beim Eintragen der URL für Submodul-Pfad 'telegram_api' in die Konfiguration.
5.Befehl aus dem Readme , mit sudo -> Fehler
pi@rpi3aplus:~/smartmeter $ sudo git submodule init && git submodule update
Submodul 'telegram_api' (https://github.com/Hofei90/telegram_api.git) für Pfad 'telegram_api' in die Konfiguration eingetragen.
fatal: Konnte Verzeichnis '/home/pi/smartmeter/.git/modules/telegram_api' nicht erstellen.
Fehler beim Klonen von 'telegram_api'. Weiterer Versuch geplant
fatal: Konnte Verzeichnis '/home/pi/smartmeter/.git/modules/telegram_api' nicht erstellen.
Zweiter Versuch 'telegram_api' zu klonen fehlgeschlagen, breche ab.
pi@rpi3aplus:~/smartmeter $
Alles anzeigen
Hier stoppe ich erst mal bei dem Befehl mit git .....
Was ist jetzt falsch gelaufen?
Hofei reichen die Infos oder soll ich noch was nachschieben?
EDIT 1 Stunde später....
Fehler lag an den Rechten, das Verzeichnis smartmeter wurde für root angelegt obwohl es im pi-Verzeichnis liegt
Habe das Verzeichnis dem pi gegeben - und Programm läuft wieder
Nur der Service will noch nicht:
● smartmeter.service - ServiceUnit zum starten des Smartmeters
Loaded: loaded (/etc/systemd/system/smartmeter.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2021-04-14 15:20:38 CEST; 45s ago
Process: 545 ExecStart=/usr/bin/python3 /home/pi/smartmeter/smartmeter.py (code=exited, status=1/FAILURE)
Main PID: 545 (code=exited, status=1/FAILURE)
Apr 14 15:20:38 rpi3aplus python3[545]: Traceback (most recent call last):
Apr 14 15:20:38 rpi3aplus python3[545]: File "/home/pi/smartmeter/smartmeter.py", line 30, in <module>
Apr 14 15:20:38 rpi3aplus python3[545]: LOGGER = setup_logging.create_logger("smartmeter", 20)
Apr 14 15:20:38 rpi3aplus python3[545]: File "/home/pi/smartmeter/setup_logging.py", line 77, in create_logger
Apr 14 15:20:38 rpi3aplus python3[545]: return __setup_logging(loglevel, frm, startmethode, unitname)
Apr 14 15:20:38 rpi3aplus python3[545]: File "/home/pi/smartmeter/setup_logging.py", line 29, in __setup_logging
Apr 14 15:20:38 rpi3aplus python3[545]: log_handler = journal.JournalHandler(SYSLOG_IDENTIFIER=unitname)
Apr 14 15:20:38 rpi3aplus python3[545]: AttributeError: module 'systemd.journal' has no attribute 'JournalHandler'
Apr 14 15:20:38 rpi3aplus systemd[1]: smartmeter.service: Main process exited, code=exited, status=1/FAILURE
Apr 14 15:20:38 rpi3aplus systemd[1]: smartmeter.service: Failed with result 'exit-code'.
Alles anzeigen
Will der Service irgendwo noch Rechte haben?
Habe jetzt versucht, den service ziu reparieren...
pi@rpi3aplus:~ $ systemctl restart smartmeter.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Legitimierung ist zum Neustarten von »smartmeter.service« notwendig.
Authenticating as: ,,, (pi)
Liegt es an der Authentifikation, die jetzt im Terminal erscheint?? Kann das am neuen RaspiOS liegen?
Bekomme nicht mal mehr den Start im Terminal hin, ohne dass smartmeter.py beim Abmelden stoppt.
Auch micht mit nohub oder >&< am Ende des Befehls
Auch bei dieser Fehlermeldung habe ich die Vermutung, dass du nicht alle Schritte der Readme ausgeführt hast?
Ich erinnere mich an eine Fehlermeldung bei der git - Geschichte... hab sie aber nicht soo ernst genommen. Ds rächt sich jetzt