Nieuw base image container versie

1
Ik heb een updated versie van de container versie gepubliceerd onder tag 2.4.0d. Alhoewel er qua functionaliteit niets is veranderd zijn er wel flink wat base image wijzigingen die lijken allemaal goed te gaan mbt de amd64 versie. Enige wat ik niet goed kan testen is het juiste gebruik van de GPIO poorten.

Mocht er iemand zijn die de container versie draait én gebruik maakt van GPIO dan zou het mooi zijn als diegene kan testen of deze image ook met deze poorten goed omgaat! Als je het niet gebruikt kun je hem uiteraard ook testen/gebruiken

Om de laatste image te testen gebruik tag: mclaassen/p1mon:rolling of mclaassen/p1mon:2.4.0d
Running P1Monitor container in a K3S kubernetes cluster

Re: Nieuw base image container versie

3
Hoi,

Mijn P1 docker draait op raspberry pi 3b. Ik heb een watermeter gekoppeld aan GPIO20. Sinds de update naar versie 2.4.0d leest P1 Monitor de pulsen niet meer uit. Door terug te gaan naar versie 2.4.0c kon het probleem worden opgelost.

@Intelwolf, ik zal je voorstel proberen te implementeren, maar het kan een dag of wat duren.

Re: Nieuw base image container versie

5
@ruudm , kijk eens naar de instelling van je socat configuratie? Als je die nooit veranderd hebt zou het kunnen dat het niet meer werkt met jouw instellingen en de laatste socat versie (er zijn een paar versies terug wijzigingen geweest in socat). Bij mij werkt het prima met deze instellingen:

Code: Selecteer alles

-T60 pty,link=/dev/ttyUSB1,rawer,group-late=dialout,mode=660 tcp:192.168.1.150:5523,forever,interval=30
@Kees , ik heb een build gemaakt met wijzigingen aan de RPIO libs. Probeer eens of het met versie

Code: Selecteer alles

mclaassen/p1mon:rolling
nu werkt
Running P1Monitor container in a K3S kubernetes cluster

Re: Nieuw base image container versie

6
Kees schreef: 23 mar 2024 20:10 Hoi,

Mijn P1 docker draait op raspberry pi 3b. Ik heb een watermeter gekoppeld aan GPIO20. Sinds de update naar versie 2.4.0d leest P1 Monitor de pulsen niet meer uit. Door terug te gaan naar versie 2.4.0c kon het probleem worden opgelost.

@Intelwolf, ik zal je voorstel proberen te implementeren, maar het kan een dag of wat duren.
@Intelwolf

Op basis van versie 2.4.0f een container aangemaakt en vervolgens:

Code: Selecteer alles

docker exec -ti ed86772b2b36 sh

sudo pip3 uninstall --break-system-packages rpi-lgpio
met dit als respons:

Code: Selecteer alles

Found existing installation: rpi-lgpio 0.4
Uninstalling rpi-lgpio-0.4:
  Would remove:
    /usr/local/lib/python3.11/dist-packages/RPi/*
    /usr/local/lib/python3.11/dist-packages/rpi_lgpio-0.4.dist-info/*
  Would not remove (might be manually added):
    /usr/local/lib/python3.11/dist-packages/RPi/_GPIO.cpython-311-arm-linux-gnueabihf.so
Proceed (Y/n)? y
  Successfully uninstalled rpi-lgpio-0.4
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Daarna de kraan even laten lopen.
Helaas geen registratie van de pulsen van mijn watermeter, dus maar weer terug naar versie 2.4.0c
En die werkte meteen.

Re: Nieuw base image container versie

15
Intelwolf schreef: 29 apr 2024 11:19 @Kees, mocht je nog eens tijd hebben: In de laatste container test versie heb ik een wijziging aangebracht op wat gpio libraries. versie rolling of 2.4.0g. Dus als je die wilt testen hoor ik graag wat het resultaat is
@Intelwolf

Versie 2.4.0g werkt. Pulsjes worden correct geteld.
Hartelijk dank voor je gewaardeerde werk.

Re: Nieuw base image container versie

17
Vandaag een uurtje of 4 aan het stoeien geweest met P1 monitor icm socat.
Zelf kom ik er niet uit, hopelijk kunnen jullie mij verder helpen :-)

Mijn setup is als volgt:
SlimmeLezer, telnet staat geactiveerd op poort 23. Met Putty komt er data binnen
P1 monitor in een docker container (op mijn Windows 11 laptop).

Wat is het probleem?
Het dashboard geeft geen verbruik aan, er lijkt helemaal geen communicatie te zijn met de slimme meter.

Op de info.php pagina krijg ik geen data te zien. Voorbeeld:

Code: Selecteer alles

laatste verwerkte bericht uit de slimme meter:
laatste verwerkte minuten gegevens:
laatste verwerkte uur gegevens:
laatste verwerkte dag gegevens:
laatste verwerkte maand gegevens:
en

Code: Selecteer alles

start van P1 interface(elektrisch):
database start:
watchdog start:
UDP daemon start:
start Dropbox daemon:
start UDP broadcast daemon:
MQTT client start:
watermeter start:
GPIO daemon start:
KWh meter productie(S0) start:
notificatie start:
Het vreemde is dat er wel data lijkt binnen te komen, volgens de P1SerReader logfile

Code: Selecteer alles

2024-05-01 23:52:23,844
INFO
kWupdateStatusDb: min_verbr_KW_170 aangepast naar 0.17 kW. Voor tijdstip 2024-05-01 23:52:23
2024-05-01 23:50:26,813
INFO
kWupdateStatusDb: min_verbr_KW_170 aangepast naar 0.171 kW. Voor tijdstip 2024-05-01 23:50:26
2024-05-01 23:50:17,839
INFO
kWupdateStatusDb: min_verbr_KW_170 aangepast naar 0.172 kW. Voor tijdstip 2024-05-01 23:50:17
2024-05-01 23:47:26,757
INFO
kWupdateStatusDb: min_verbr_KW_170 aangepast naar 0.173 kW. Voor tijdstip 2024-05-01 23:47:26
2024-05-01 23:46:50,916
INFO
kWupdateStatusDb: min_verbr_KW_170 aangepast naar 0.175 kW. Voor tijdstip 2024-05-01 23:46:50
2024-05-01 23:46:41,825
INFO
kWupdateStatusDb: min_gelvr_KW_270 aangepast.naar 0.0 kW. Voor tijdstip 2024-05-01 23:39:12
2024-05-01 23:46:41,804
INFO
kWupdateStatusDb: max_gelvr_KW_270 aangepast naar 0.0 kW. Voor tijdstip 2024-05-01 23:39:12
2024-05-01 23:46:41,781
INFO
kWupdateStatusDb: min_verbr_KW_170 aangepast naar 0.176 kW. Voor tijdstip 2024-05-01 23:45:58
2024-05-01 23:46:41,761
INFO
kWupdateStatusDb: max_verbr_KW_170 aangepast naar 0.19 kW. Voor tijdstip 2024-05-01 23:39:12
Als ik de docker output bekijk, dan komt er iedere seconde een error bij. Zie hieronder

Code: Selecteer alles

docker compose up
[+] Running 1/0
 ✔ Container p1monitor-p1monitor-1  Created                                                                        0.0s
Attaching to p1monitor-1
p1monitor-1  | Restore file privileges
p1monitor-1  | Starting cron
p1monitor-1  | Starting periodic command scheduler: cron.
p1monitor-1  | Starting nginx
p1monitor-1  | Starting nginx: nginx.
p1monitor-1  | Starting php-fpm
p1monitor-1  | Starting multipurpose relay: socat.
p1monitor-1  | Starting p1mon
p1monitor-1  | [*] PHP folder /run/php/sessions wordt aangemaakt.
p1monitor-1  | 2024-05-01 23:55:03 Info: Start van programma met process id 149 en als user -> root
p1monitor-1  | 2024-05-01 23:55:03 Info: restore: Herstellen van gegevens gestart.
p1monitor-1  | 2024-05-01 23:55:03 Info: Controle op eerder gebruikt drive /dev/sda1 gestart.
p1monitor-1  | 2024-05-01 23:55:03 Info: Controle op eerder gebruikt drive /dev/sdb1 gestart.
p1monitor-1  | 2024-05-01 23:55:03 Info: Controle op eerder gebruikt drive /dev/sdc1 gestart.
p1monitor-1  | 2024-05-01 23:55:03 Info: Controle op eerder gebruikt drive /dev/sdd1 gestart.
p1monitor-1  | 2024-05-01 23:55:03 Info: restore geen folder gevonden op de drive. gestopt
p1monitor-1  | [*] P1UpgradeAide gestart.
p1monitor-1  | [*] Wifi power save wordt uitgezet.
p1monitor-1  | [*] Wifi power save is uitgezet.
p1monitor-1  | [*] failsave stop voor dat de processen weer worden gestart.
p1monitor-1  | [*] Processen worden gestopt, even geduld aub.
p1monitor-1  | [*] Geen pid gevonden voor proces P1Notifier, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1SerReader, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1GPIO, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1UdpBroadcaster, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1DropBoxDeamon, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1UdpDaemon, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1Db, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1Watchdog, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1PowerProductionS0, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1WatermeterV2, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1SolarEdgeReader, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces P1MQTT, proces is niet actief.
p1monitor-1  | [*] Geen pid gevonden voor proces /p1mon/p1monenv/bin/gunicorn, proces is niet actief.
p1monitor-1  | [*] Ram naar disk copy starten.
p1monitor-1  | [*] P1DbCopy Ram naar disk copy gereed.
p1monitor-1  | [*] 10 seconden wachttijd, zodat data veilig naar disk wordt gekopierd.
p1monitor-1  | [*] stop gereed.
p1monitor-1  | [*] 2 seconden wachttijd
p1monitor-1  | [*] P1SerReader process prioriteit verhoogd.
p1monitor-1  | [*] P1SerReader gestart.
p1monitor-1  | [*] 3 seconden wachttijd
p1monitor-1  | [*] P1Db gestart.
p1monitor-1  | [*] 3 seconden wachttijd
p1monitor-1  | [*] P1DropBoxDeamon gestart.
p1monitor-1  | [*] P1Watchdog gestart.
p1monitor-1  | [*] P1Weather -getweather gestart.
p1monitor-1  | [*] 2 seconden wachttijd
p1monitor-1  | [*] P1Weather --recover gestart.
p1monitor-1  | [*] P1UdpDaemon gestart.
p1monitor-1  | [*] P1UdpBroadcaster gestart.
p1monitor-1  | [*] P1Api.py gestart.
p1monitor-1  | [*] P1GPIO gestart.
p1monitor-1  | [*] P1Notifier gestart.
p1monitor-1  | [*] file rechten database bestanden aanpassen.
p1monitor-1  | [*] file rechten database bestanden correct gezet.
p1monitor-1  | [*] start gereed.
p1monitor-1  | Setting ramdisk rights
p1monitor-1  | Writing cron
p1monitor-1  | [2024-05-01 23:55:40 +0200] [523] [ERROR] Exception in worker process
p1monitor-1  | Traceback (most recent call last):
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/arbiter.py", line 609, in spawn_worker
p1monitor-1  |     worker.init_process()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/base.py", line 142, in init_process
p1monitor-1  |     self.run()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 126, in run
p1monitor-1  |     self.run_for_one(timeout)
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 63, in run_for_one
p1monitor-1  |     self.notify()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/base.py", line 75, in notify
p1monitor-1  |     self.tmp.notify()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/workertmp.py", line 45, in notify
p1monitor-1  |     os.utime(self._tmp.fileno(), (new_time, new_time))
p1monitor-1  | FileNotFoundError: [Errno 2] No such file or directory
p1monitor-1  | [2024-05-01 23:55:41 +0200] [503] [ERROR] Worker (pid:523) exited with code 255
p1monitor-1  | [2024-05-01 23:55:41 +0200] [503] [ERROR] Worker (pid:523) exited with code 255.
p1monitor-1  | [2024-05-01 23:55:42 +0200] [524] [ERROR] Exception in worker process
p1monitor-1  | Traceback (most recent call last):
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/arbiter.py", line 609, in spawn_worker
p1monitor-1  |     worker.init_process()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/base.py", line 142, in init_process
p1monitor-1  |     self.run()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 126, in run
p1monitor-1  |     self.run_for_one(timeout)
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 63, in run_for_one
p1monitor-1  |     self.notify()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/base.py", line 75, in notify
p1monitor-1  |     self.tmp.notify()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/workertmp.py", line 45, in notify
p1monitor-1  |     os.utime(self._tmp.fileno(), (new_time, new_time))
p1monitor-1  | FileNotFoundError: [Errno 2] No such file or directory
p1monitor-1  | [2024-05-01 23:55:42 +0200] [503] [ERROR] Worker (pid:524) exited with code 255
p1monitor-1  | [2024-05-01 23:55:42 +0200] [503] [ERROR] Worker (pid:524) exited with code 255.
p1monitor-1  | 2024-05-01 23:55:32 Info: Start van programma.
p1monitor-1  | 2024-05-01 23:55:32 Info: Main: wordt uitgevoerd als user -> p1mon
p1monitor-1  | 2024-05-01 23:55:42 Info: Main: FTP backup staat uit, crontab wordt gewist
p1monitor-1  | 2024-05-01 23:55:42 Info: Programma is succesvol gestopt.
p1monitor-1  | [2024-05-01 23:55:42 +0200] [525] [ERROR] Exception in worker process
p1monitor-1  | Traceback (most recent call last):
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/arbiter.py", line 609, in spawn_worker
p1monitor-1  |     worker.init_process()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/base.py", line 142, in init_process
p1monitor-1  |     self.run()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 126, in run
p1monitor-1  |     self.run_for_one(timeout)
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 63, in run_for_one
p1monitor-1  |     self.notify()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/base.py", line 75, in notify
p1monitor-1  |     self.tmp.notify()
p1monitor-1  |   File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/workertmp.py", line 45, in notify
p1monitor-1  |     os.utime(self._tmp.fileno(), (new_time, new_time))
p1monitor-1  | FileNotFoundError: [Errno 2] No such file or directory
Ik gebruik de volgende docker compose yaml

Code: Selecteer alles

# Source: https://marcel.duketown.com/p1-monitor-docker-versie/
version: '3.8'
services:
  p1monitor:
    hostname: p1mon
    image: mclaassen/p1mon
    stop_grace_period: 1m # Setting this too short can cause db to get corrupted, source: https://marcel.duketown.com/p1-monitor-docker-versie/
    ports:
      - 30080:80
    volumes:
      - C:\Users\Jan\AppData\Local\Docker\data\p1monitor\data:/p1mon/data
      - C:\Users\Jan\AppData\Local\Docker\data\p1monitor\usbdisk:/p1mon/mnt/usb
      - C:\Users\Jan\AppData\Local\Docker\data\p1monitor\ramdisk:/p1mon/mnt/ramdisk
      - C:\Users\Jan\AppData\Local\Docker\data\p1monitor\log:/var/log/p1monitor
    tmpfs:
       - /run
       - /tmp
    environment:
       - SOCAT_CONF="-T60 pty,link=/dev/ttyUSB1,rawer,group-late=dialout,mode=660 tcp:192.168.8.215:23,forever,interval=30"
    restart: unless-stopped
Mij valt op dat de file 03_xx lijkt te missen:

Code: Selecteer alles

C:\Users\Jan\AppData\Local\Docker\data\p1monitor\data>dir
 Volume in drive C is OS
 Volume Serial Number is 4A02-583C

 Directory of C:\Users\Jan\AppData\Local\Docker\data\p1monitor\data

01/05/2024  23:46    <DIR>          .
01/05/2024  18:12    <DIR>          ..
01/05/2024  23:39            36.864 01_weer_historie.db
01/05/2024  23:46            12.288 02_temperatuur.db
01/05/2024  23:55            20.480 04_faseinformatie.db
01/05/2024  23:39            12.288 05_powerproduction.db
01/05/2024  23:39            12.288 06_watermeter.db
01/05/2024  23:55            20.480 config.db
01/05/2024  23:55            45.056 e_historie.db
01/05/2024  23:55            20.480 e_serial.db
01/05/2024  23:55            36.864 financieel.db
01/05/2024  23:40                32 session.txt
01/05/2024  23:55            16.384 status.db
01/05/2024  23:39            12.288 weer.db
              12 File(s)        245.792 bytes
               2 Dir(s)  595.365.224.448 bytes free
en

Code: Selecteer alles

C:\Users\Jan\AppData\Local\Docker\data\p1monitor\ramdisk>dir
 Volume in drive C is OS
 Volume Serial Number is 4A02-583C

 Directory of C:\Users\Jan\AppData\Local\Docker\data\p1monitor\ramdisk

01/05/2024  23:58    <DIR>          .
01/05/2024  18:12    <DIR>          ..
01/05/2024  23:39            36.864 01_weer_historie.db
01/05/2024  23:55            12.288 02_temperatuur.db
01/05/2024  23:58            20.480 04_faseinformatie.db
01/05/2024  23:39            12.288 05_powerproduction.db
01/05/2024  23:39            12.288 06_watermeter.db
01/05/2024  23:57               552 basic.CB64-F0F3-7455-1428-F6C2.json
01/05/2024  23:58            20.480 config.db
01/05/2024  23:58                 0 config.db-journal
01/05/2024  23:39    <DIR>          dbx
01/05/2024  23:55                 2 duckdns.status
01/05/2024  23:57            45.056 e_historie.db
01/05/2024  23:57            24.576 e_serial.db
01/05/2024  23:57            36.864 financieel.db
01/05/2024  23:57               879 p1msg.txt
01/05/2024  23:43               501 patch.status
01/05/2024  23:40                32 session.txt
01/05/2024  23:58            16.384 status.db
01/05/2024  23:55               371 upgrade-aide.status
01/05/2024  23:39            12.288 weer.db
              18 File(s)        252.193 bytes
               3 Dir(s)  595.370.504.192 bytes free
Heb zelf van alles al geprobeerd, versie 2.0.0 gebruikt, andere socat connectiestrings, ander apparaatnummers (ttyUSB0 ipv USB1, etc).

Alvast bedankt! :-)

Re: Nieuw base image container versie

19
Gezien je volumes instellingen denk ik dat ik het antwoord al weet maar draai je op Windows begrijp ik? Ik heb dat nooit getest eigenlijk en ik weet niet ook niet precies wat er nu misgaat. Lijkt iets met tijd ophalen van de host te zijn. Ik heb daar eerlijk gezegd ook nooit naar gekeken en draaio ook geen docker op Windows. Als er iemand iets verder nuttigs op kan antwoorden zou ik wat aanpassingen kunnen maken

03 database heb je overigens alleen als je een watermeter hebt
Running P1Monitor container in a K3S kubernetes cluster