xirixiz/dsmr-reader-docker

Postgresql client Upgrade (pg_dump)

sanderdw opened this issue Β· 47 comments

Request

Hey Bram, kan je in de volgende versie wellicht de Postgresql client versie upgraden? Op het het Home Assistant ecosysteem wordt vaak de Timescale addon gebruikt als de Postgres DB server en die zit op 16.2 waarmee de pg_dump tool in het image er niet meer mee werkt (15.6).

Additional information

https://community.home-assistant.io/t/dsmr-reader-add-on-for-home-assistant/279087/410

Hi Sander, als het beschikbaar is in de laatste Alpine image, dan kan ik dat zeker. Maar wanneer PG16 client nog niet in de 3.19 Alpine image beschikbaar is, dan kan ik het helaas niet aanpassen. Dan zal dat wss in Alpine 3.20 komen.

Ik ga er vandaag even mee aan de slag.

Ik weet het weer, ik moest even mijn geheugen opfrissen :)

Ik ben met een nieuwe release bezig, waarbij een aantal grote wijzigingen zullen worden doorgevoerd,

  • Efficienter build proces
  • Alpine 3.19 met PG16 client ;)
  • Overstappen naar de "nieuwe" S6-overlay.

Alles werkt eingelijk, maar wanneer de container gestart wordt dan gaat het nog mis op S6 overlay. Wss zie ik iets over het hoofd en is het eenvoudig op te lossen. Ik zal er wat tijd aan spenderen. Ik kan zelf geen DSMR reader Docker gebruiken op dit moment.
Kan ik jou vragen om te testen wanneer ik een nieuwe pre_release image gemaakt heb?

Source: https://github.com/xirixiz/dsmr-reader-docker/tree/pre_release

Deze docker image kan je testen @sanderdw or @Alfagek:

ghcr.io/xirixiz/dsmr-reader-docker:development

Mogelijk gaat er nog iets mis met het starten van de processen, dan graag proberen zo goed mogelijk te omschrijven wat er mis gaat, of wat er lijkt mis te gaan. Volgens mij moet het eenvoudig zijn op te lossen, maar mogelijk is het issue al opgelost door een aanpassing die ik nog heb doorgevoerd ;)

image Bouwen ging goed maar kreeg deze fout, is dat ook wat je bedoelde?

Klopt, maar er was eerder een andere error. Ik heb zojuist de code bijgewerkt en de build pipeline gestart.
Je hoeft dus niet zelf te bouwen, maar je kan gewoon de development image testen.

Wachten tot deze pipeline klaar is: https://github.com/xirixiz/dsmr-reader-docker/actions/runs/8633228373
En dan image ghcr.io/xirixiz/dsmr-reader-docker:development gebruiken.

Ik moet altijd een stukje bouwen omdat er specifieke Home Assistant Addon code nodig is.

Thanks, ik ga hem dan nog wel een keer aftrappen.

Helaas nog hetzelfde issue, kan het hier mee te maken hebben? NginxProxyManager/nginx-proxy-manager#2765

Hmm, dat is vreemd. Ik kreef de melding ook, maar nu niet meer. Ik krijg alleen een foutmelding daarna omdat mijn config niet compleet is. Weet je het zeker dat je de pre-release branch gebruikt?

image

IMG_9462
Komt het misschien door dat ik in Bram zijn screenshot S6-RC zie staan en ik bij de β€œoude” versie S6-INIT heb staan @sanderdw ?

Probeer alleen een beetje mee te denken. Jullie zijn beter in het programmeren dan dat ik ben πŸ˜‰

@Alfagek klopt, en het meedenken wordt zeker gewaardeerd πŸ˜„.

S6-overlay v2 is al vrij oud (s6-init) en ben daarom overgestapt op S6-overlay v3 (s6-rc).
De config kent een andere structuur, en wellicht botst dat met HASS. Mogelijk zit HASS nog op S6-overlay v2.

@sanderdw Kan je mss wat meer details geven over de werking icm hassio? Ik kan morgen de boel hier wel even aan elkaar knopen en iig even checken of DSMR Reader Docker in pre_release mode werkt. Wanneer dat werkt, dan weten we iig dat het iets met s6-overlay te maken heeft (ook al is dat al vrij zeker). Maar omdat ik het nu niet standalone kan testen (dus zonder de integratie van sander), weet ik niet of de pre_release image naar behoren werkt.

Weet je zeker dat het image bijgewerkt is (tag :development)? Dat zie ik hier namelijk niet terug: https://github.com/xirixiz/dsmr-reader-docker/pkgs/container/dsmr-reader-docker

Verder moet ik dit even testen: https://developers.home-assistant.io/blog/2022/05/12/s6-overlay-base-images/#minimum

Dat is inderdaad ook bijzonder dat de tag niet is bijgewerkt. Check ik meteen even wat daar mis gaat.
Uiteindelijk komen we er samen wel πŸ˜„

Jullie zijn gewoon goed bezig πŸ‘πŸ»

Alleen sorry dat ik jullie alle 2 aan het β€œwerk” zet 🀣

Oh en intussen (dus wel met de 'verouderde' tag) heeft de init optie het probleem oplost:
image
Echter moet ik wel de opzet veranderen zie ik (zie de error)

@sanderdw gelukkig! Ik denk dat ik de pipeline ook gefixt heb. Volgens mij had ik het zo gemaakt dat alleen de development branch ook een development tag maakt.... was ik even vergeten. Een nieuwe release is dus in de maak.

In de source code kan je de opbouw zien van de s6-overlay v3, dan heb je de error zo gefixt denk ik.
https://github.com/xirixiz/dsmr-reader-docker/tree/main/rootfs

Edit: ik heb liggen slapen denk ik. Ik dacht echt dat ik de pre_release branch aan het bouwen was, maar ik heb alleen maar de main branch gebruikt om een nieuwe latest te bouwn πŸ˜–

Any update @sanderdw?

Moest even inlezen in de s6 veranderingen en gelijk maar de legacy variant (cont-init.d) omgezet naar de nieuwe manier (s6-rc). Heb nu een gek probleempje met https://github.com/sanderdw/hassio-addons/blob/reader-1.11.1/dsmr_reader/Dockerfile#L36 want als ik hem met chmod executable maak dan kan hij hem niet vinden en als ik de chmod weglaat dan zegt ie permissions denied.

image

Een linux cat van /etc/s6-overlay/s6-rc.d/set-hassio-vars/run laat wel gewoon zien dat ie er is. Dus dit moet ik nog verder onderzoeken.

@sanderdw ik heb de persmissies correct ingesteld alvorens het bouwen van een image, dat zou moeten werken. Dus dan wordt bij het bouwen van een image de file al met de juiste persmissies in de image gezet. Mss heb je dat al geprobeerd, maar ik weet dat het bij mij toen ik ermee aan de slag ging het issue verholpen heeft.

Weer een stukje verder, met sanderdw/hassio-addons@3193e68

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service set-hassio-vars: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
Home Assistant DSMR Reader Add-on - Release: 1.11.1
Home Assistant DSMR Reader Add-on - Configuring addon settings
Home Assistant DSMR Reader Add-on - Ingress enabled
s6-rc: info: service set-hassio-vars successfully started
s6-rc: info: service docker-entrypoint: starting

[ INFO ] DSMR Reader Reader release: 5.11.0

[ INFO ] DSMR Reader Reader Docker release: 2024.02.03

    ───────────────────────────────────────────────────
     ___  ___ __  __ ___   ___             _
    |   \/ __|  \/  | _ \ | _ \___ __ _ __| |___ _ _
    | |) \__ \ |\/| |   / |   / -_) _` / _` / -_) '_|
    |___/|___/_|  |_|_|_\ |_|_\___\__,_\__,_\___|_|
                 __           _
                |   \ ___  __| |_____ _ _
                | |) / _ \/ _| / / -_) '_|
                |___/\___/\__|_\_\___|_|

    DSMR-protocol reader, telegram data storage and
            energy consumption visualizer.

    ───────────────────────────────────────────────────
    User UID: 0
    User GID: 0
    ───────────────────────────────────────────────────
    

[ INFO ] Ensure permissions...

[ INFO ] Setting architecture requirements...

[ INFO ] ARM Architecture

[ INFO ] Verifying if the DSMR Reader web credential variables have been set...

[ INFO ] Verifying database connectivity to host: 77b2833f-timescaledb with port: 5432...
Connection to 77b2833f-timescaledb (172.30.33.3) 5432 port [tcp/postgresql] succeeded!

[ INFO ] Database connectivity successfully verified!

[ INFO ] Enabling IFrame...

[ INFO ] Running post configuration...
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, dsmr_api, dsmr_backend, dsmr_backup, dsmr_consumption, dsmr_datalogger, dsmr_dropbox, dsmr_frontend, dsmr_influxdb, dsmr_mindergas, dsmr_mqtt, dsmr_notification, dsmr_pvoutput, dsmr_stats, dsmr_weather, sessions
Running migrations:
  No migrations to apply.

559 static files copied to '/var/www/dsmrreader/static'.
Updating password of superuser "admin"
Deactivating any other existing superusers

[ INFO ] Checking for CLIENT CERTIFICATE AUTHENTICATION configuration...

[ INFO ] ENABLE_CLIENTCERT_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Checking for NGINX SSL configuration...

[ INFO ] ENABLE_NGINX_SSL is disabled, nothing to see here. Continuing...

[ INFO ] Checking for HTTP AUTHENTICATION configuration...

[ INFO ] ENABLE_HTTP_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Configuring DSMR Reader to run without the datalogger process. A remote datalogger (api_client) is required...

[ INFO ] Adding DSMRREADER_REMOTE_DATALOGGER_SLEEP to the DSMR Reader remote datalogger configuration...

[ INFO ] Adding DSMRREADER_LOGLEVEL to the DSMR Reader configuration...
s6-rc: info: service docker-entrypoint successfully started
s6-rc: info: service svc-dsmr-webinterface: starting
s6-rc: info: service svc-dsmr-remote-datalogger: starting
s6-rc: info: service svc-dsmr-datalogger: starting
s6-rc: info: service svc-dsmr-backend: starting
s6-rc: info: service svc-dsmr-webinterface successfully started
s6-rc: info: service svc-dsmr-remote-datalogger successfully started
s6-rc: info: service svc-dsmr-datalogger successfully started
Starting DSMR Reader - webinterface...
s6-notifyoncheck: fatal: s6-supervise not running.
s6-rc: info: service svc-dsmr-backend successfully started
s6-rc: info: service legacy-services: starting
Starting DSMR Reader - backend...
s6-notifyoncheck: fatal: s6-supervise not running.

Mijn pre Home Assistant code wordt nu dus correct uitgevoerd.
Nu dus kijken waar de "s6-notifyoncheck: fatal: s6-supervise not running." vandaan komt, of is dit nog een bug die jij ook hebt?

Mooi! Ik heb de "s6-notifyoncheck" er even uitgesloopt en een nieuwe build gestart voor development. Wanneer de build klaar is kan je testen met de nieuwe versie.

https://github.com/xirixiz/dsmr-reader-docker/actions/runs/8673537074

[ INFO ] Adding DSMRREADER_REMOTE_DATALOGGER_SLEEP to the DSMR Reader remote datalogger configuration...

[ INFO ] Adding DSMRREADER_LOGLEVEL to the DSMR Reader configuration...
s6-rc: info: service docker-entrypoint successfully started
s6-rc: info: service svc-dsmr-webinterface: starting
s6-rc: info: service svc-dsmr-remote-datalogger: starting
s6-rc: info: service svc-dsmr-datalogger: starting
s6-rc: info: service svc-dsmr-backend: starting
s6-rc: info: service svc-dsmr-webinterface successfully started
s6-rc: info: service svc-dsmr-remote-datalogger successfully started
Starting DSMR Reader - webinterface...
s6-rc: info: service svc-dsmr-backend successfully started
s6-rc: info: service svc-dsmr-datalogger successfully started
s6-rc: info: service legacy-services: starting
Starting DSMR Reader - backend...
s6-rc: info: service legacy-services successfully started
[2024-04-13 16:52:06 +0200] [284] [INFO] Starting gunicorn 20.1.0
[2024-04-13 16:52:06 +0200] [284] [INFO] Listening at: unix:/tmp/gunicorn--dsmr_webinterface.socket (284)
[2024-04-13 16:52:06 +0200] [284] [INFO] Using worker: sync
[2024-04-13 16:52:06 +0200] [310] [INFO] Booting worker with pid: 310
Current logging level set to "ERROR". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html
pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 16.2; pg_dump version: 15.6
2024-04-13 16:52:09,589 ERROR    schedule     execute_scheduled_processes      39 | (AttributeError) dsmr_backup.services.backup.run errored: 'NoneType' object has no attribute 'read' 

Hij komt iets verder, denk een probleem aan jou kant?

Klopt, ik zie dit:

pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 16.2; pg_dump version: 15.6

De client versie is nog 15.6. Ik kijk er even naar.

postgresql16-client \

Build pipeline loopt weer πŸ˜„

Loopt nu idd door.

[ INFO ] Adding DSMRREADER_LOGLEVEL to the DSMR Reader configuration...
s6-rc: info: service docker-entrypoint successfully started
s6-rc: info: service svc-dsmr-webinterface: starting
s6-rc: info: service svc-dsmr-remote-datalogger: starting
s6-rc: info: service svc-dsmr-datalogger: starting
s6-rc: info: service svc-dsmr-backend: starting
s6-rc: info: service svc-dsmr-webinterface successfully started
s6-rc: info: service svc-dsmr-remote-datalogger successfully started
s6-rc: info: service svc-dsmr-datalogger successfully started
s6-rc: info: service svc-dsmr-backend successfully started
s6-rc: info: service legacy-services: starting
Starting DSMR Reader - webinterface...
Starting DSMR Reader - backend...
s6-rc: info: service legacy-services successfully started
[2024-04-13 17:31:36 +0200] [285] [INFO] Starting gunicorn 20.1.0
[2024-04-13 17:31:36 +0200] [285] [INFO] Listening at: unix:/tmp/gunicorn--dsmr_webinterface.socket (285)
[2024-04-13 17:31:36 +0200] [285] [INFO] Using worker: sync
[2024-04-13 17:31:36 +0200] [310] [INFO] Booting worker with pid: 310
Current logging level set to "ERROR". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html

Werkt nog niet icm met Home Assistant maar moet daarvoor weer ff wat dieper graven. Of heb jij de DMSR code nog gewijzigd / op een andere plek gezet?

@sanderdw DSMR Reader lijkt niet te starten. Ik heb even een dummy setup gemaakt en de "latest" laat wel gewoon de webinsterface van DSMR zien, maar de development image niet, ondank ik geen fouten zie. Ik moet er dus even verder induiken wat S6-overlay betreft. Er lijkt in die hoek nog iets niet goed te starten.

Gefixt! https://github.com/xirixiz/dsmr-reader-docker/actions/runs/8675341679 ... is in de maak.
Ik was onder andere vergeten nginx mee te starten.

Image ready for testing! ghcr.io/xirixiz/dsmr-reader-docker:development

Lekker bezig Bram en Sander!!! Hopelijk lukt het Sander daarmee om hem weer draaiend te krijgen in HA.

Top @xirixiz, hij werkt!

@Alfagek, kan jij eens testen? Gewoon de officiΓ«le addon via mijn repo even verwijderen en handmatig het mapje dsmr_reader uit deze branch https://github.com/sanderdw/hassio-addons/tree/reader-1.11.1 in de addons map zetten van je ha.

Na een refresh in ha moet hij zo verschijnen:
Screenshot_20240413-210024

Ps, je kan altijd terug naar de stable release door die addon weer te verwijderen en weer de officiΓ«le via mijn HA repo te installeren, de dmsr reader versie is namelijk hetzelfde.

Draai het even een aantal dagen. Als er geen issues worden ontdekt, dan zal ik dinsdag a.s. alles naar de main branch mergen en een nieuwe stable release uitbrengen.

Goed gefixt Sander en Bram zoals het nu lijkt ;-)

image

Laat hem zo hier ook draaien hier in mijn hoofd HA systeem ;-).
En eens kijken als er niks gebeurd aankomende dagen.

En de backups in DSMRREADER worden ook weer gevuld. Kijk er anders nooit naar, maar dit was wel het punt waar hij dus fout ging (ondekte de fout in de melding van DSMRREADER en de log van de addon). Maar lijkt dus te werken. En voor de rest draait hij hier nog steeds prima.

Top werk Bram/Sander

image

Thanks @Alfagek!

Morgen of dinsdag dan een nieuwe release voor de rest van de wereld!

Nieuwe release komt eraan!
Heb ook nog Docker secrets toegevoegd.

Nieuwe latest tag is over 20 minuten beschikbaar.

Ga je ook nog een specifieke tag publiceren?

latest en development zijn nu gelijk.
2024.04.01 is de laatste tag.

image

Oh zag pas later dat je nog een wijziging had op een mapje, daardoor werkte de code dus niet meer. Anyway alles ziet er goed uit nu dus ook aan mijn kant zal de release morgen volgen.

Ah ja, excuses.... docker-entrypoint bedoel je zeker? Heb het wat meer in lijn gebracht met de structuur die linuxserver.io hanteert.

Release done!

https://community.home-assistant.io/t/dsmr-reader-add-on-for-home-assistant/279087/424?u=sanderdw

Mooie samenwerking weer @xirixiz !

Hello Sander,
Even after all updates, re-install again ... after updating everything, the backup is broken again, same as last year... worked like a charm until latest updates again.

024-04-19 09:35:35,592 ERROR schedule execute_scheduled_processes 39 | (OSError) dsmr_backup.services.email.run errored: b'pg_dump: error: aborting because of server version mismatch\npg_dump: detail: server version: 16.2; pg_dump version: 15.6\n'
pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 16.2; pg_dump version: 15.6
2024-04-19 09:35:46,042 ERROR schedule execute_scheduled_processes 39 | (AttributeError) dsmr_backup.services.backup.run errored: 'NoneType' object has no attribute 'read'

Any idea where to look? HA is allways on latest versions ...

Release done!
https://community.home-assistant.io/t/dsmr-reader-add-on-for-home-assistant/279087/424?u=sanderdw
Mooie samenwerking weer @xirixiz !

Hello Sander, Even after all updates, re-install again ... after updating everything, the backup is broken again, same as last year... worked like a charm until latest updates again.

024-04-19 09:35:35,592 ERROR schedule execute_scheduled_processes 39 | (OSError) dsmr_backup.services.email.run errored: b'pg_dump: error: aborting because of server version mismatch\npg_dump: detail: server version: 16.2; pg_dump version: 15.6\n' pg_dump: error: aborting because of server version mismatch pg_dump: detail: server version: 16.2; pg_dump version: 15.6 2024-04-19 09:35:46,042 ERROR schedule execute_scheduled_processes 39 | (AttributeError) dsmr_backup.services.backup.run errored: 'NoneType' object has no attribute 'read'

Any idea where to look? HA is allways on latest versions ...

I believe you are using an old release. I just checked, but the latest development (and latest) release are using the postgres 16 client tools.

image

@xirixiz , maybe it’s because @sanderdw put the old version back this week because of the other problems (connection problems) that people had. And i didnt see a newer version pushed by Sander.

Pgdump good (version 1.11.1)
Pgdump not good (version 1.11.2)

but its a guess from my side, because i ignored version 1.11.2 🫣

I run the latest version and just use the update mechanism within the HA environment. Is there any change to fallback again to the 1.11.1 version? I can't find an option which make a selection of version install possible so I can opt for installing version 1.11.1 to try.

I run the latest version and just use the update mechanism within the HA environment. Is there any change to fallback again to the 1.11.1 version? I can't find an option which make a selection of version install possible so I can opt for installing version 1.11.1 to try.

Or just wait. @xirixiz released a new version. And if @sanderdw adapt it, there will be very quick a version 11.1.3.

it’s only a error in your logs and no backup right now in dsmr reader. But you have your backups in HA. So the data would be save ;-)

You can find a backup in HA if you have enabled the check box β€œmake backup” if you installed the addon.

I can confirm that it seems to be an issue in the 1.11.2 version. I just removed that version and restored the 1.11.1 specific version back again from the add-on backup function within the HA backup part. After restore and a test no error is raising on version incompatibillity. The logs keep clean and the scheduled email distribution is also working again. I will wait on the new upcoming versions and read the notes carefully.

Thank you for your quick responses all of you! Thats making this platform so beautiful.
Kind regards, Carlo.