Container versie 2.0.0

1
Voor diegenen die de laatste versie als test al willen draaien: image mclaassen/p1mon:rolling is beschikbaar via hub.
Let wel, hij draait bij mij prima, er zitten nog wel wat foutjes in maar hij is, voor mij in ieder geval :), normaal bruikbaar. Upgraden zoals gewoonlijk, gewoon de image vervangen en de container opnieuw creeren. Misschien voor deze keer wel handig om even een export te draaien in het geval er iets mis mocht gaan

Mocht je hem testen, laat even weten als je wat tegenkomt (en ook als je gene problemen hebt is ook fijn)
Running P1Monitor container in a K3S cluster on Linux servers

Re: Container versie 2.0.0 - test

3
Zou het kunnen dat de tijdsynchronisatie niet werkt?

Uit het scherm systeeminformatie:

Code: Selecteer alles

Tijd verstreken sinds de laatste herstart:2 dagen 01:47:15
Besturingssysteem versie:Linux-5.18.0-0.deb11.4-amd64-x86_64-with-glibc2.31
Python versie:3.9.2
Versie:2.0.0
Software patch:0
Versie nummer:20220920
CPU model:Intel(R) Celeron(R) CPU J3455 @ 1.50GHz
CPU hardware:Docker Container
CPU revision:Docker
Raspberry Pi model:Docker
Netwerktijd is actief:uit
Netwerktijd synchronisatie:uit
Laatste tijdsynchronisatie:
Netwerktijd servernaam:
Netwerktijd server IP:
Tijdzone:
Ik krijg in datzelfde scherm de melding "Tijdsverschil slimme meter en het systeem (seconden):50". Dat probeer ik te verhelpen.

systeeminformatie/netwerkinstellingen:

Code: Selecteer alles

Internet bereikbaar op:2022-10-02 12:08:18
Internet bereikbaar:ja
Internet IP adres:84.x.x.x
Internet hostnaam:84-x-x-x.cable.dynamic.v4.ziggo.nl
Internet bereikbaar op:2022-10-02 12:08:18
Netwerk LAN IP adres:onbekend
Netwerk LAN MAC adres:onbekend
Netwerk hostnaam:onbekend
Wifi ESSID:
Netwerk WifI IP adres:onbekend
Netwerk Wifi MAC adres:onbekend
In het configuratiemenu staat onder netwerk:

Code: Selecteer alles

Internet bereikbaar
Internet IP adres 84.x.x.x
Internet DNS naam 84-x-x-x.cable.dynamic.v4.ziggo.nl
Internet timestamp 2022-10-02 12:08:18
LAN IP adres onbekend
LAN host naam onbekend
Ik heb p1monitor via de stack/docker compose een eigen IP-nummer toegewezen en daarop is alles bereikbaar. Het commando timedatectl lijkt in de container via cmd niet mogelijk en apt install lukt mij niet (unable to locate package timedatectl).
beheerder forum

Re: Container versie 2.0.0

9
Ik krijg dit als ik de container start:
Laatste regel blijft eindeloos printen en p1monitor werkt niet. Enig idee?

Code: Selecteer alles

root@homebridge:/docker# docker-compose up
Creating network "docker_default" with the default driver
Creating docker_p1monitor_1 ... done
Attaching to docker_p1monitor_1
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | Modifying scripts..
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | touch: setting times of '/var/tmp/.firstrun': Operation not permitted
p1monitor_1  | Starting cron
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | Starting nginx
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | Starting php-fpm
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | Starting p1mon
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | Setting ramdisk rights
p1monitor_1  | sudo: unable to get time of day: Operation not permitted
p1monitor_1  | sudo: error initializing audit plugin sudoers_audit
p1monitor_1  | Writing cron
p1monitor_1  | Fatal Python error: init_interp_main: can't initialize time
p1monitor_1  | Python runtime state: core initialized
p1monitor_1  | PermissionError: [Errno 1] Operation not permitted
p1monitor_1  | 
p1monitor_1  | Current thread 0xb6f31520 (most recent call first):
p1monitor_1  | <no Python frame>
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted
p1monitor_1  | sleep: cannot read realtime clock: Operation not permitted

Re: Container versie 2.0.0

12
Probleem doet zich alleen voor bij de laatste versie want het revert gedaan en toen werkt het weer.

version: '3.3'
services:

p1monitor:
hostname: p1mon
image: mclaassen/p1mon:1.7.0
ports:
- 80:80
volumes:
- ./p1mon/data:/p1mon/data
- ./p1mon/usbdisk:/p1mon/mnt/usb
- ./p1mon/mnt/ramdisk:/p1mon/mnt/ramdisk
tmpfs:
- /run
- /tmp
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
restart: unless-stopped

root@homebridge:/docker# cat /etc/debian_version
10.13
root@homebridge:/docker# uname -a
Linux homebridge 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
root@homebridge:/docker# docker info
Containers: 3
Running: 1
Paused: 0
Stopped: 2
Images: 7
Server Version: 18.09.1
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 1.0.0~rc6+dfsg1-3
init version: v0.18.0 (expected: fec3683b971d9c3ef73f284f176672c44b448662)
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.103-v7l+
Operating System: Raspbian GNU/Linux 10 (buster)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 3.574GiB
Name: homebridge
ID: KC6F:UWNV:T5GD:W4HF:YE4T:WFNT:EH7Z:BDFP:XVJR:DZSK:UTHD:R6AW
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support

Re: Container versie 2.0.0

14
Vreemd, ik heb net op eenzelfde Pi met dezelfde image (mclaassen/p1mon de armv7 versie) getest en dat geeft geen enkel probleem. Ik heb echter wel een latere kernel (5.15.45-v7l+) en later docker versie (20.10)
vanaf image versie 1.7.0d wordt ook een andere base image gebruikt. Het enige wat ik me kan voorstellen dat daar incompatibiliteit in zit met jouw docker/kernel. Kijk eens of die specifieke versie ook problemen geeft.
De enige oplossing die ik je zo kan geven is update je docker versie en daarna eventueel je kernel
Running P1Monitor container in a K3S cluster on Linux servers

Re: Container versie 2.0.0

15
Mijn systeem is onlangs ook bijgewerkt naar 2.0.0 en ik ervaar volgens mij geen problemen. 🙂 Wel zijn er foutmeldingen bij opstarten, maar ik durf niet te zeggen of dat in de voorgaande versie ook al zo was. Kom ik op terug.

Ik maak gebruik van een x64 systeem (afgedankte "thin client"), met daarop Ubuntu Server 22.04.1 (up-to-date met kernel 5.15.0-48-generic). Docker is geïnstalleerd volgens de reguliere aanwijzingen. Mijn Docker Compose-file bevat:

Code: Selecteer alles

  p1monitor:
    hostname: p1mon
    container_name: p1mon
    image: mclaassen/p1mon
    restart: always
    ports:
      - 80:80
    volumes:
      - /opt/docker/volumes/p1mon/data:/p1mon/data
      - /opt/docker/volumes/p1mon/usbdisk:/p1mon/mnt/usb
      - /opt/docker/volumes/p1mon/ramdisk:/p1mon/mnt/ramdisk
      - /opt/docker/volumes/p1mon/log/:/var/log/p1monitor/
      - /opt/docker/volumes/p1mon/log-nginx:/var/log/nginx/
      - /etc/localtime:/etc/localtime:ro
    tmpfs:
      - /run
      - /tmp
    devices:
      - "/dev/ttyUSB0:/dev/ttyUSB0"
    environment:
      - TZ=Europe/Amsterdam
Wanneer ik ingeef:

Code: Selecteer alles

docker logs p1mon
, dan krijg ik dit:

Code: Selecteer alles

Modifying scripts..
Disable CPU temperature check
Starting cron
Starting periodic command scheduler: cron.
Starting nginx
Starting nginx: nginx.
Starting php-fpm
Starting p1mon
/bin/chown: cannot access '*.log': No such file or directory
/bin/chmod: cannot access '*.log': No such file or directory
2022-10-08 01:00:47 Info: Start van programma met process id 85 en als user -> root
2022-10-08 01:00:47 Info: restore: Herstellen van gegevens gestart.
2022-10-08 01:00:47 Info: Controle op eerder gebruikt drive /dev/sda1 gestart.
2022-10-08 01:00:48 Info: Controle op eerder gebruikt drive /dev/sdb1 gestart.
2022-10-08 01:00:48 Info: Controle op eerder gebruikt drive /dev/sdc1 gestart.
2022-10-08 01:00:48 Info: Controle op eerder gebruikt drive /dev/sdd1 gestart.
2022-10-08 01:00:48 Info: restore geen folder gevonden op de drive. gestopt
[*] P1UpgradeAide.py gestart.
[*] Wifi power save wordt uitgezet.
[*] Wifi power save is uitgezet.
Upgrade assist wordt gestart.
2022-10-08 01:00:49 Info: Start van programma.
2022-10-08 01:00:49 Info: Herstellen van gegevens gestart.
2022-10-08 01:00:49 Info: Controle op eerder gebruikt drive sda1 gestart.
2022-10-08 01:00:49 Info: Controle op eerder gebruikt drive sdb1 gestart.
2022-10-08 01:00:49 Info: Controle op eerder gebruikt drive sdc1 gestart.
2022-10-08 01:00:49 Info: Controle op eerder gebruikt drive sdd1 gestart.
2022-10-08 01:00:49 Info: Geen data gevonden op de USB drive(s) niets uitgevoerd.
[*] P1UpgradeAssist.py gestart.
[*] failsave stop voor dat de processen weer worden gestart.
[*] Processen worden gestopt, even geduld aub.
[*] Geen pid gevonden voor proces P1Notifier.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1SerReader.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1GPIO.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1UdpBroadcaster.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1DropBoxDeamon.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1UdpDaemon.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1Db.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1Watchdog.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1PowerProductionS0.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1WatermeterV2.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1SolarEdgeReader.py, proces is niet actief.
[*] Geen pid gevonden voor proces P1MQTT.py, proces is niet actief.
[*] Geen pid gevonden voor proces /p1mon/p1monenv/bin/gunicorn, proces is niet actief.
[*] 2 seconden wachttijd
renice: failed to set priority for 267 (process ID): Permission denied
[*] P1SerReader.py process prioriteit verhoogd.
[*] P1SerReader.py gestart.
[*] 3 seconden wachttijd
[*] P1Db.py gestart.
[*] 3 seconden wachttijd
[*] P1DropBoxDeamon.py gestart.
[*] P1Watchdog.py gestart.
[*] P1Weather.py gestart.
[*] P1UdpDaemon.py gestart.
[*] P1UdpBroadcaster.py gestart.
[*] P1Api.py gestart.
[*] P1GPIO.py gestart.
[*] P1Notifier.py gestart.
Setting ramdisk rights
Writing cron
2022-10-08 01:01:06 Info: Start van programma.
2022-10-08 01:01:06 Info: Main: wordt uitgevoerd als user -> p1mon
2022-10-08 01:01:15 Info: Main: cron parameters uit config database=0:*:*:*:*
2022-10-08 01:01:15 Info: Programma is succesvol gestopt.
Aangaande de foutmeldingen; als ik de startup-scripts volg, dan zie ik op een bepaald moment dit staan:

Code: Selecteer alles

cd $LOG_PATH
sudo /bin/chown p1mon:p1mon *.log
sudo /bin/chomd 644 *.log
Waarschijnlijk zouden de foutmeldingen hierop slaan. Ik zag dat op een zeker moment de bestanden P1DbCopy.log en pythonlaunch.log er stonden, maar een (kort) moment later zag ik die niet meer staan in die directory.

De renice-instructie in hetzelfde startup-script gaat dus ook mis, maar dat is wellicht inherent aan het draaien in de Docker-container. Dat kan ik niet zo goed beoordelen.

Re: Container versie 2.0.0

16
Die komen inderdaad uit het originele p1mon script. Er bestaan (soms) nog geen logbestanden voor de aangegeven locatie en vandaar die melding. renice werkt idd niet in een container dus vandaar die melding. Het doet verder ook niks.
Een aantal wijzigingen wordt al doorgevoerd in dat script voordat het gestart wordt maar die van de logbestanden zat er altijd al in en die renice ben ik nog vergeten eruit te halen. Er gaat inderdaad dus niets mis zo te zien
Running P1Monitor container in a K3S cluster on Linux servers

Re: Container versie 2.0.0

17
Intelwolf schreef: 06 okt 2022 17:11 Vreemd, ik heb net op eenzelfde Pi met dezelfde image (mclaassen/p1mon de armv7 versie) getest en dat geeft geen enkel probleem. Ik heb echter wel een latere kernel (5.15.45-v7l+) en later docker versie (20.10)
vanaf image versie 1.7.0d wordt ook een andere base image gebruikt. Het enige wat ik me kan voorstellen dat daar incompatibiliteit in zit met jouw docker/kernel. Kijk eens of die specifieke versie ook problemen geeft.
De enige oplossing die ik je zo kan geven is update je docker versie en daarna eventueel je kernel
Ter info: Heb een oplossing gevonden: https://docs.linuxserver.io/faq
Docker naar de laatste bleek niet de oplossing te zijn...

Re: Container versie 2.0.0

20
Het enige wat ik kan bedenken wat de oorzaak hier van was is dat docker ooit geinstalleerd is geweest (of getracht te installeren) met de verkeerde architectuur. Dan wordt een verkeerde libsec geinstalleerd. Maar goed, het is in ieder geval opgelost!
Running P1Monitor container in a K3S cluster on Linux servers