Dsmr-reader: "This site can’t be reached" na kale Docker installatie & een backlog issue

Created on 10 Aug 2020  ·  80Comments  ·  Source: dsmrreader/dsmr-reader

DSMR-reader is gemaakt om door jezelf te gebruiken en is daarom niet van buitenaf te debuggen. Daarom is het belangrijk dat je eerst deels zelf onderzoek doet en dat hieronder deelt (voor zover nodig). Dit helpt met het oplossen van jouw probleem.

https://dsmr-reader.readthedocs.io/nl/latest/troubleshooting.html

Wat gebruik je?

  • DSMR-reader versie: Stand alone V4.1.1 &
    Docker V4.1.0 (met plug-in naar Stand alone.)
  • Type RaspberryPi or server: Raspberry Pi 3B V7
  • Standaardinstallatie of Docker: Beide
  • DSMR-protocol slimme meter v4/v5: V5

Hallo Dennis,

Naar aanleiding van de upload versie 4.1.0 voor Docker van @ualex73 heb ik een kale install gedaan, met onderstaande yml-bestand.

version: '3'
services:

dsmr-influxdb:
image: influxdb:latest
container_name: dsmr-influxdb
ports:
- '8086:8086'
volumes:
- influxdb-storage:/var/lib/influxdb
environment:
- INFLUXDB_DB=dsmrreader
- INFLUXDB_ADMIN_USER=dsmrreader
- INFLUXDB_ADMIN_PASSWORD=dsmrreader
depends_on:
- dsmr-reader
restart: unless-stopped
networks:
- net-dsmr

dsmr-grafana:
container_name: dsmr-grafana
image: grafana/grafana:latest
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana-provisioning/:/etc/grafana/provisioning
depends_on:
- dsmr-influxdb
environment:
- GF_SECURITY_ADMIN_USER=dsmr
- GF_SECURITY_ADMIN_PASSWORD=dsmr
restart: unless-stopped
networks:
- net-dsmr

dsmr-reader:
container_name: dsmr-reader
image: ualex73/dsmr-reader-docker:arm32v6
restart: unless-stopped
volumes:
- ./dsmr/backups:/home/dsmr/app/backups
- /dev:/dev
environment:
- DB_HOST=dsmr-influxdb
- DSMR_USER=admin
- DSMR_EMAIL=root@localhost
- DSMR_PASSWORD=admin
- VIRTUAL_HOST=localhost
ports:
- 8888:80
- 8889:443
networks:
- net-dsmr

networks:
net-dsmr:
driver: bridge

volumes:
influxdb-storage:
grafana-storage:
grafana-provisioning:
backups:
dev:

Vervolgens heb ik de onderstaande installatie commando uitgevoerd:
sudo docker-compose -f docker-compose.yaml up -d

Tot zo ver geen problemen. Docker PS geeft zelfs aan dat alles werkt
image

Als ik via een webbrowser poort 3000 op de Pi benader, komt keurig Grafana op.
Dit geldt helaas niet voor poort 443 of op poort 8888. Dan krijg ik de mededeling te zien dat de connectie geweigerd is.
Ook via Telnet krijg ik een foutmelding: telnet: Unable to connect to remote host: Connection refused

Zou je mij kunnen helpen met:

  1. Deze fout vinden & oplossen;
  2. Omdat dit een kale installatie betrof, zou ik InfluxDB willen laden met de data van de standalone (of van Dropbox)
    Zou je kunnen uitleggen hoe dat moet? &
  3. (Misschien moet ik hier een andere topic voor aanmaken:)
    De stand-alone draait redelijk probleemloos. Tot het moment dat er weer een nieuwe versie beschikbaar is.:
    Waarom weet ik niet, maar dan worden de telegrammen niet meer verwerkt en de webpagina is ook niet te benaderen (Network Error: Bad Gateway(502)). Als ik dan vervolgens de nieuwe versie heb geïnstalleerd, wordt de backlog weer verwerkt en is de webpagina weer beschikbaar.
    Vanaf dat moment wordt ook de upload naar PVoutput hervat. Hierbij wordt dan niet de backlog geupload. Deze data ben ik dan gewoon kwijt. Zou je iets kunnen verzinnen dat deze backlog dmv. bijvoorbeeld een mass-update toch nog alsnog bij PVoutput terecht komt?

Alvast heel erg bedankt.
Met vriendelijke groet,
Erik

Most helpful comment

https://github.com/xirixiz/dsmr-reader-docker/tree/development is bijgewerkt. Dat houdt dus in dat de development Docker image ingezet kan worden als remote datalogger. De README in de development branch is ook bijgewerkt, en met die info moet het vast goedkomen. Succes! Wanneer het werkt merge ik het uiteraard naar de master branch.

All 80 comments

@Erik050572 In principe moet je poort 80, dus jouw port 8888 gebruiken. De 443 is gekoppeld aan 8889 in jouw voorbeeld?

Goedenmorgen @ualex73 ,
Dat klopt:
Poort 80 is gekoppeld aan poort 8888;
Poort 443 is gekoppeld aan poort 8889;
InfluxDB is gekoppeld aan poort 8086 &
Grafana is gekoppeld aan poort 3000.

Ok, ik heb wel een idee waardoor het komt. Het init script controleert of de PostgreSQL DB online is, als dit niet het geval is, start die niet door.

Ik weet niet of ik het verkeerd gelezen heb, maar de InfluxDB draait naast de PostgreSQL en vervangt het niet? Dus je DSMR setup is mogelijk niet correct.

Ik heb PostgreSQL toegevoegd en volgens docker PS draaien alle processen.
maar helaas is het resultaat, op dit moment hetzelfde,

Het yaml bestand ziet er nu zo uit

version: '3.3'

services:

dsmr-postgreSQL:
container_name: dsmr-postgreSQL
image: arm32v7/postgres:latest
restart: unless-stopped
ports:
- '5432:5432'
volumes:
- ./db/:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dsmrreder
- POSTGRES_PASSWORD=dsmrreader
- POSTGRES_DB=dsmrreader
depends_on:
- dsmr-reader
networks:
- net-dsmr

dsmr-influxdb:
container_name: dsmr-influxdb
image: influxdb:latest
restart: unless-stopped
ports:
- '8086:8086'
volumes:
- influxdb-storage:/var/lib/influxdb
environment:
- INFLUXDB_DB=dsmrreader
- INFLUXDB_ADMIN_USER=dsmrreader
- INFLUXDB_ADMIN_PASSWORD=dsmrreader
depends_on:
- dsmr-postgreSQL
networks:
- net-dsmr

dsmr-grafana:
container_name: dsmr-grafana
image: grafana/grafana:latest
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana-provisioning/:/etc/grafana/provisioning
depends_on:
- dsmr-influxdb
environment:
- GF_SECURITY_ADMIN_USER=dsmr
- GF_SECURITY_ADMIN_PASSWORD=dsmr
networks:
- net-dsmr

dsmr-reader:
container_name: dsmr-reader
image: ualex73/dsmr-reader-docker:arm32v6
restart: unless-stopped
volumes:
- ./dsmr/backups:/home/dsmr/app/backups
- /dev:/dev
environment:
- DB_HOST=dsmr-influxd
- DSMR_USER=admin
- DSMR_EMAIL=root@localhost
- DSMR_PASSWORD=admin
- VIRTUAL_HOST=localhost
ports:
- '8888:80'
- '8889:443'
networks:
- net-dsmr

networks:
net-dsmr:
driver: bridge

volumes:
influxdb-storage:
grafana-storage:
grafana-provisioning:
backups:
dev:
db:

@Erik050572 als de web interface niet opkomt, moet je de docker logfile checken via "docker logs -f dsmr-reader".

Maar in je docker-compose file staat meerder fouten:
1)"DB_HOST=dsmr-influxd" moet de PostgreSQL zijn, dus moet "DB_HOST=dsmr-postgreSQL" worden. dit werkt alleen als je netwerk "net-dsmr" gebruikt, anders moet je je host IP gebruiken.
2) "POSTGRES_USER=dsmrreder" bevat een typo
3) De PostgreSQL heeft "depends_on: - dsmr-reader" ... Da's raar, volgens mij is de dsmr-reader afhankelijk van de SQL DB en niet andersom.

Hoi @ualex73 ,

Ik heb je aanpassingen verwerkt en het docker logfile geeft meerdere foutmelding. Maar het komt hier op neer:
django.db.utils.OperationalError: FATAL: password authentication failed for user "dsmrreader"

Om welke wachtwoord zou dit moeten gaan?

Dat is een foutmelding van DSMR-reader die niet in de database van Postgres kan komen. 

Welk wachtwoord moet ik dan aanpassen?
Die van Postgres neem ik aan. Maar die heb ik, volgens mij, letterlijk uit het voorbeeld script overgenomen en dus niet aangepast.

Of is er een andere manier om dit probleem op te lossen?

In principe maakt het niet zoveel uit wat je gebruikt, zolang je maar dezelfde toegangsgegevens in zowel DSMR-reader als PostgreSQL instelt.

Bij een reguliere installatie stel je als een van de eerste dingen de gebruikersnaam en wachtwoord in. Later gebruik je dezelfde gegevens in DSMR-reader, al staan ze daar al in de config template, er vanuitgaande dat men de gebruikersnaam en wachtwoord uit de handleiding gebruikt.

Als ik het zo zie lijk je in je script geen DB-gebruikersnaam en DB-wachtwoord voor DSMR-reader zelf in te stellen, alleen voor de admingebruiker van de webinterface. Mogelijk mis je dus nog variabelen.

ik zou niet weten welke...
ik ben uitgegaan van dit script.
Deze werkte voor die versie en daaraan heb ik de secties Influxdb & Grafana toegevoegd.
De secties dsmr-reader & db-dsmr (hernoemt naar dsmr-postgreSQL) zijn, volgens mij, praktisch gelijk gebleven.

Je kunt hier zien wat je kunt instellen: https://dsmr-reader.readthedocs.io/en/latest/env_settings.html

Zowel daar als in de repo van ualex staan o.a. deze DSMR-reader variabelen die ik niet terugzie in je verhaal:

  • DB_USER
  • DB_PASS
  • DB_NAME

Als je die niet via een andere manier instelt, kan het zo zijn dat je die mist.

Deze newbee heeft een klein succesje:
Ik heb die nu toegevoegd en het docker log zegt nu het volgende:

...........................................................
2020-08-13 06:28:56
Start DSMR Reader - Mode=SERVER

Maar de webpagina komt nog niet op, want volgens mij miste ik er nog een paar:
SECRET_KEY: Hoe genereer ik deze in docker? Of kan ik dit als variabele toevoegen, in het bestand, met een willekeurige waarde?
DB_ENGINE: Wat zou ik hier moeten invullen? 'dsmr-postgreSQL' of 'django.db.backends.postgresql' of totaal wat anders?
DB_PORT: Uitgaande van docker PS is dit poort 5432, denk ik.

@Erik050572

De succesvolle logging zou er zo uit moeten zien:

2020-08-11 02:51:23
Start DSMR Reader - Mode=SERVER
Connected to database successfully
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, dsmr_api, dsmr_backend, dsmr_backup, dsmr_consumption, dsmr_datalogger, dsmr_frontend, dsmr_influxdb, dsmr_mindergas, dsmr_mqtt, dsmr_notification, dsmr_pvoutput, dsmr_stats, dsmr_weather, sessions
Running migrations:
  No migrations to apply.

557 static files copied to '/var/www/dsmrreader/static'.
Updating password of superuser "dsmrreader" (DSMR_USER)
2020-08-11 02:51:26,268 INFO Included extra file "/etc/supervisor.d/supervisord.ini" during parsing
2020-08-11 02:51:26,268 INFO Set uid to user 0 succeeded
2020-08-11 02:51:26,272 INFO RPC interface 'supervisor' initialized
2020-08-11 02:51:26,272 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2020-08-11 02:51:26,273 INFO supervisord started with pid 21
2020-08-11 02:51:27,278 INFO spawned: 'dsmr_backend' with pid 23
2020-08-11 02:51:27,281 INFO spawned: 'dsmr_datalogger' with pid 24
2020-08-11 02:51:27,283 INFO spawned: 'dsmr_webinterface' with pid 25
2020-08-11 02:51:27,284 INFO spawned: 'nginx' with pid 26
2020-08-11 02:51:28,959 INFO success: dsmr_backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-11 02:51:28,960 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-11 02:51:28,960 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-11 02:51:30,963 INFO success: dsmr_webinterface entered RUNNING state, process has stayed up for > than 3 seconds (startsecs)

Indien er database connectie problemen zijn, zou je iets moeten zien als:

2020-08-11 02:51:23
Start DSMR Reader - Mode=SERVER
.............................................................. Could not connect to database server. Aborting...

Dus er lijkt nog een issue te zijn met je DB connectie/credentials.

BTW - had je ook "POSTGRES_USER=dsmrreder" gefixt (mist een "a")? Ik weet alleen niet of je de DB moet droppen om dit te fixen. Het is ook een mogelijk om dat te proberen, want je heb nog geen data erin staan.

Het docker log laat het gedeelte zien van het gedeelte van de issues met database connectie, tot en met de puntjes, zien.
En daarna komt de lunix prompt weer op.

En de typefout had ik er ook uitgehaald.

(zal ik nog eens het YAML-bestand laten zien?)

De onderstaande regels uit de sector dsmr-reader zijn verwijderd, omdat ze nu opmerkingen zijn:
devices:/dev/ttyUSB0:/dev/ttyUSB0;
DB_PORT:5432;
SECRET_KEY:xyz;
DB_ENGINE:dsmr-postgreSQL

version: '3.3'
services:

dsmr-postgreSQL:
container_name: dsmr-postgreSQL
image: arm32v7/postgres:latest
restart: unless-stopped
ports:
- '5432:5432'
volumes:
- ./db/:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dsmrreader
- POSTGRES_PASSWORD=dsmrreader
- POSTGRES_DB=dsmrreader
networks:
- net-dsmr

dsmr-influxdb:
container_name: dsmr-influxdb
image: influxdb:latest
restart: unless-stopped
ports:
- '8086:8086'
volumes:
- influxdb-storage:/var/lib/influxdb
environment:
- INFLUXDB_DB=dsmrreader
- INFLUXDB_ADMIN_USER=dsmrreader
- INFLUXDB_ADMIN_PASSWORD=dsmrreader
depends_on:
- dsmr-postgreSQL
networks:
- net-dsmr

dsmr-grafana:
container_name: dsmr-grafana
image: grafana/grafana:latest
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana-provisioning/:/etc/grafana/provisioning
depends_on:
- dsmr-influxdb
environment:
- GF_SECURITY_ADMIN_USER=dsmrreader
- GF_SECURITY_ADMIN_PASSWORD=dsmrreader
networks:
- net-dsmr
dsmr-reader:
container_name: dsmr-reader
image: ualex73/dsmr-reader-docker:arm32v6
restart: unless-stopped
volumes:
- ./dsmr/backups:/home/dsmr/app/backups
- /dev:/dev
environment:
- DB_NAME:dsmrreader
- DB_USER:dsmrreader
- DB_PASS:dsmrreader
- DB_HOST:dsmr-postgreSQL
- DSMR_USER=admin
- DSMR_PASSWORD:admin
- DSMR_EMAIL=root@localhost
- DSMR_PASSWORD=admin
- VIRTUAL_HOST=localhost
- TZ=Europe/amsterdam
depends_on:
- dsmr-postgreSQL
ports:
- '8888:80'
- '8889:443'
networks:
- net-dsmr

networks:
net-dsmr:
driver: bridge

volumes:
influxdb-storage:
grafana-storage:
grafana-provisioning:
backups:
dev:
db

Zie je iets anders in de "docker logs dsmr-reader" output?

BTW - De "SECRET_KEY" is optioneel, als je die niet opgeeft, genereert de Docker container hiervoor een random value ;-)

Dit is alles wat ik zie:

...........................................................
2020-08-13 11:10:53
Start DSMR Reader - Mode=SERVER
...........................................................
2020-08-13 11:11:58
Start DSMR Reader - Mode=SERVER
...........................................................
2020-08-13 11:13:03
Start DSMR Reader - Mode=SERVER
...........................................................
2020-08-13 11:14:10
Start DSMR Reader - Mode=SERVER
...........................................................
2020-08-13 11:15:16
Start DSMR Reader - Mode=SERVER
...........................................................
2020-08-13 11:16:20
Start DSMR Reader - Mode=SERVER

Er is nog steeds een probleem met je connectie naar je PostgreSQL server.

Probeer het volgende, om je in je container te komen (je zou na <60 seconden eruit worden gegooid, bij een herstart van de container):

docker exec -it dsmr-reader /bin/bash

En dan uitvoeren:

pg_isready -h dsmr-postgreSQL -p 5432

Dan hoort de output te zijn:

dsmr-postgreSQL:5432 - accepting connections

BTW, je environment lijkt fout:

environment:
- DB_NAME:dsmrreader
- DB_USER:dsmrreader
- DB_PASS:dsmrreader
- DB_HOST:dsmr-postgreSQL

Dit hoort volgens mij te zijn:

environment:
- DB_NAME=dsmrreader
- DB_USER=dsmrreader
- DB_PASS=dsmrreader
- DB_HOST=dsmr-postgreSQL

Net getest ... <variable:value" werkt NIET. Het MOET "variable=value" zijn.

Dit is de output als ik de ":" vervang door "=":

ERROR: The Compose file '././docker-compose/DSMR-reader.yaml' is invalid because:
services.dsmr-reader.environment contains non-unique items, please remove duplicates from ['DB_NAME=dsmrreader', 'DB_USER=dsmrreader', 'DB_PASS=dsmrreader', 'DB_HOST=dsmr-postgreSQL', 'DSMR_USER=admin', 'DSMR_PASSWORD=admin', 'DSMR_EMAIL=root@localhost', 'DSMR_PASSWORD=admin', 'VIRTUAL_HOST=localhost', 'TZ=Europe/amsterdam']

Je hebt een typo gemaakt :-)

'DB_NAME=dsmrreader',
'DB_USER=dsmrreader',
'DB_PASS=dsmrreader',
'DB_HOST=dsmr-postgreSQL',
'DSMR_USER=admin',
'DSMR_PASSWORD=admin',
'DSMR_EMAIL=root@localhost', 
'DSMR_PASSWORD=admin', <<<----- dubbel
'VIRTUAL_HOST=localhost',
'TZ=Europe/amsterdam'

Docker heeft jammer genoeg gelijk.

Volgens mij ben ik nu in een cirkeltje gegaan.....

psycopg2.OperationalError: FATAL: password authentication failed for user "dsmrreader"
django.db.utils.OperationalError: FATAL: password authentication failed for user "dsmrreader"

kan je je PostgreSQL database nieuw aanmaken?

net gedaan (al 3 keer) :)

Ik denk dat ik nog een foutje van mezelf heb hersteld:

  • DB_ENGINE=django.db.backends.postgresql

2020-08-13 19:13:02
Start DSMR Reader - Mode=SERVER
Connected to database successfully
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection
self.connect()
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
return func(args, kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 197, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
return func(
args, *kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 185, in get_new_connection
connection = Database.connect(
conn_params)
File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, *
kwasync)
psycopg2.OperationalError: FATAL: password authentication failed for user "dsmrreader"

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv
self.execute(args, cmd_options)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute
output = self.handle(
args, *options)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(
args, *kwargs)
File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 86, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/loader.py", line 49, in __init__
self.build_graph()
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/loader.py", line 212, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 76, in applied_migrations
if self.has_table():
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 56, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
return func(
args, *kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 260, in cursor
return self._cursor()
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 236, in _cursor
self.ensure_connection()
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
return func(
args, *kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection
self.connect()
File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection
self.connect()
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
return func(
args, *kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 197, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
return func(
args, *kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 185, in get_new_connection
connection = Database.connect(
conn_params)
File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, *
kwasync)
django.db.utils.OperationalError: FATAL: password authentication failed for user "dsmrreader"

@ualex73 klopt het dat je je eigen repo inhoudelijk niet bijwerkt? V4 heeft wel wat wijzigingen namelijk. Zie ook deze PR voor een beeld van de verschillen, al is die nog niet klaar.

En ook het datalogger-script is flink op de schop gegaan in de recente releases.

@Erik050572 ik weet eerlijk gezegd niet of je er op deze manier uit gaat komen. Ter info:

  • De standaardinstellingen staan hier: https://github.com/dennissiemensma/dsmr-reader/blob/v4/.env.template.
  • Houd er rekening mee dat een eventuele oude config voor DSMR-reader v3.x niet zomaar te gebruiken is voor v4.x. Er is daar een upgrade guide voor.
  • Wellicht zou je je situatie beter op bijvoorbeeld Tweakers forum kunnen voorleggen. Want hier op Github lezen maar een beperkt aantal mensen mee en zelf gebruik ik docker niet actief genoeg om je inhoudelijk te helpen.

De github is niet bijgewerkt, dat klopt. Ik moet die nog pushen. De
datalogger is uit de image, zoals je al zegt, veel veranderd (hierdoor heb
ik het maar verwijderd, want ik gebruik het niet). De v4 wijzigen zijn
doorgevoerd, kostte wel even wat moeite ✌️

Op do 13 aug. 2020 om 22:16 schreef Dennis Siemensma <
[email protected]>

@ualex73 https://github.com/ualex73 klopt het dat je je eigen repo
inhoudelijk niet bijwerkt? V4 heeft wel wat wijzigingen namelijk. Zie ook deze
PR voor een beeld van de verschillen
https://github.com/xirixiz/dsmr-reader-docker/pull/118/files, al is die
nog niet klaar.

En ook het datalogger-script is flink op de schop gegaan in de recente
releases.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dennissiemensma/dsmr-reader/issues/1076#issuecomment-673688824,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQASXBQCSIIZUEA6XRTPG3SARC3HANCNFSM4P2KU3FA
.

Werkt wel, was een foutje in mijn docker-compose.

@Erik050572

Ik keek nog naar je docker-compose en het viel me op dat er meer fouten inzitten.

Volgende is een directory, niet een docker volume:

volumes:
  - ./db/:/var/lib/postgresql/data

Volgende is wel een docker volume:

volumes:
  - db:/var/lib/postgresql/data

Dankjewel.
we komen er wel wel 👍

Ik zit nu in de loop dat de container "dsmr-reader" om de zoveel seconden opnieuw opstart

@Erik050572 ben je hier nog uiteindelijk uit gekomen?

Nee, maar met de Development versie van @xirixiz komt ik wel verder.
Helaas stopt hij bij de volgende foutmelding:
Successfully installed psycopg2-2.8.5
[ INFO ] Verifying if Postgres in running...
[ FAIL ] Could not connect to database server. Aborting...

Als ik hem nog een keer draai, is dit de uitkomst
[ INFO ] Verifying if the DSMR web credential variables have been set...
[ INFO ] Verifying if DSMR_RELEASE has been set correctly!
[ INFO ] Fixing /dev/ttyUSB* security...
[ INFO ] Removing existing PID files...
[ INFO ] Creating log directory...
[ INFO ] Using the latest release.
[ INFO ] DSMR already installed with the desired release. Continuing...
[ INFO ] Verifying if Postgres in running...
[ FAIL ] Could not connect to database server. Aborting...
**

Weer een foutje gevonden:
DB_HOST heb ik veranderd van LOCALHOST naar dsmr-postgreSQL

Beide images laden nu verder en komen volgens mij nu bij hetzelfde punt tot stilstand
Bij zowel de image van @ualex73 als van @xirixiz krijg ik deze loop:
2020-08-19 22:21:59,557 INFO spawned: 'dsmr_datalogger' with pid 98
2020-08-19 22:22:00,563 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-19 22:22:09,893 INFO exited: dsmr_datalogger (exit status 0; expected)

@Erik050572

Kan je inloggen en kijken wat voor meldingen er in de logfiles staat?
docker exec -ti <container_name> bash

Logfiles staan in: /var/log/supervisor/*.log en /tmp/supervisord.log

Ik kijk nog even naar de compose file die je gedeeld hebt...

@Erik050572

Ik keek nog naar je docker-compose en het viel me op dat er meer fouten inzitten.

Volgende is een directory, niet een docker volume:

volumes:
  - ./db/:/var/lib/postgresql/data

Volgende is wel een docker volume:

volumes:
  - db:/var/lib/postgresql/data

Dat zou niet uit moeten maken, dat gaat meer om persoonlijke voorkeur. Sommigen prefereren het niet om Docker volumes te gebruiken en houden de data liever op een locatie naar keuze, zolang het pad maar bestaat en de Docker container voldoende rechten heeft.

Dit zou naar behoren moeten werken. Ik denk dat je vergeten was DSMR_RELEASE=latest_tag als environment variabele te zetten. De development image werkt alleen met versie 4 en hoger, maar ben nog bezig het ook compatible te maken/houden met v3.

DSRM-Reader:

dsmr-reader:
  container_name: dsmr-reader
  image: xirixiz/dsmr-reader-docker:DEVELOPMENT-arm32v7
  restart: unless-stopped
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - ./dsmr/backups:/dsmr/backups
    - /dev:/dev
  environment:
    - DB_HOST=dsmr-postgreSQL
    - DB_USER=dsmrreader
    - DB_PASS=dsmrreader
    - DB_PORT=5432
    - SD_LOGLEVEL=info
    - SD_AUTOSTART_MQTT=false
    - SD_AUTORESTART_MQTT=false
    - DSMRREADER_LOGLEVEL=WARNING
    - DSMR_USER=admin
    - DSMR_EMAIL=root@localhost
    - DSMR_RELEASE=latest_tag
    - DSMR_PASSWORD=admin
  ports:
    - '8888:80'
    - '8889:443'
  depends_on:
    - dsmr-postgreSQL
  cap_add:
    - NET_ADMIN        
  networks:
    - net-dsmr

DSMR-DB

dsmr-postgreSQL:
  container_name: dsmr-postgreSQL
  image: arm32v7/postgres:latest
  restart: unless-stopped
  ports:
    - '5432:5432'
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - ./db/:/var/lib/postgresql/data
  environment:
    - POSTGRES_USER=dsmrreader
    - POSTGRES_PASSWORD=dsmrreader
    - POSTGRES_DB=dsmrreader
  networks:
    - net-dsmr

Nog steeds dezelfde foutmelding

/var/log/supervisor/dsmr_webinterface.log

[2020-08-20 19:00:50 +0200] [215] [INFO] Starting gunicorn 20.0.4
[2020-08-20 19:00:50 +0200] [215] [INFO] Listening at: unix:/var/tmp/gunicorn--dsmr_webinterface.socket (215)
[2020-08-20 19:00:50 +0200] [215] [INFO] Using worker: sync
[2020-08-20 19:00:50 +0200] [224] [INFO] Booting worker with pid: 224

/tmp/supervisord.log

2020-08-20 18:35:44,199 INFO Included extra file "/etc/supervisor.d/supervisord.ini" during parsing
2020-08-20 18:35:44,199 INFO Set uid to user 0 succeeded
2020-08-20 18:35:44,243 INFO RPC interface 'supervisor' initialized
2020-08-20 18:35:44,244 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2020-08-20 18:35:44,247 INFO supervisord started with pid 211
2020-08-20 18:35:45,258 INFO spawned: 'dsmr_backend' with pid 213
2020-08-20 18:35:45,271 INFO spawned: 'dsmr_datalogger' with pid 214
2020-08-20 18:35:45,289 INFO spawned: 'dsmr_webinterface' with pid 215
2020-08-20 18:35:45,302 INFO spawned: 'nginx' with pid 216
2020-08-20 18:35:46,308 INFO success: dsmr_backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:35:46,310 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:35:46,312 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:35:48,696 INFO success: dsmr_webinterface entered RUNNING state, process has stayed up for > than 3 seconds (startsecs)
2020-08-20 18:35:56,447 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:35:57,456 INFO spawned: 'dsmr_datalogger' with pid 225
2020-08-20 18:35:58,461 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:36:07,931 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:36:08,943 INFO spawned: 'dsmr_datalogger' with pid 227
2020-08-20 18:36:09,949 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:36:19,431 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:36:20,441 INFO spawned: 'dsmr_datalogger' with pid 229
2020-08-20 18:36:21,493 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:36:31,927 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:36:32,935 INFO spawned: 'dsmr_datalogger' with pid 231
2020-08-20 18:36:33,938 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:36:43,325 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:36:44,338 INFO spawned: 'dsmr_datalogger' with pid 233
2020-08-20 18:36:45,344 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:36:54,767 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:36:55,778 INFO spawned: 'dsmr_datalogger' with pid 235
2020-08-20 18:36:56,784 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:37:06,248 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:37:07,260 INFO spawned: 'dsmr_datalogger' with pid 237
2020-08-20 18:37:08,265 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:37:17,889 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:37:18,899 INFO spawned: 'dsmr_datalogger' with pid 244
2020-08-20 18:37:19,904 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-20 18:37:29,347 INFO exited: dsmr_datalogger (exit status 0; expected)
2020-08-20 18:37:30,355 INFO spawned: 'dsmr_datalogger' with pid 246
2020-08-20 18:37:31,359 INFO success: dsmr_datalogger entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

Mijn docker-compose.yaml bestand op dit moment

version: '3.6'

services:

   dsmr-postgreSQL:
     container_name: dsmr-postgreSQL
     image: arm32v7/postgres:latest
     restart: unless-stopped
     ports:
        - '5432:5432'
     volumes:
        - /etc/localtime:/etc/localtime:ro
        - /db/:/var/lib/postgresql/data
     environment:
        - POSTGRES_USER=dsmrreader
        - POSTGRES_PASSWORD=dsmrreader
        - POSTGRES_DB=dsmrreader
     networks:
        - net-dsmr

   dsmr-influxdb:
     container_name: dsmr-influxdb
     image: influxdb:latest
     restart: unless-stopped
     ports:
        - '8086:8086'
     volumes:
        - influxdb-storage:/var/lib/influxdb
     environment:
        - INFLUXDB_DB= dsmrreader
        - INFLUXDB_ADMIN_USER= dsmrreader
        - INFLUXDB_ADMIN_PASSWORD= dsmrreader
     depends_on:
        - dsmr-postgreSQL
     networks:
        - net-dsmr

   dsmr-grafana:
     container_name: dsmr-grafana
     image: grafana/grafana:latest
     restart: unless-stopped
     ports:
        - '3000:3000'
     volumes:
        - grafana-storage:/var/lib/grafana
        - /grafana-provisioning/:/etc/grafana/provisioning
     depends_on:
        - dsmr-influxdb
     environment:
        - GF_SECURITY_ADMIN_USER=dsmrreader
        - GF_SECURITY_ADMIN_PASSWORD=dsmrreader
     networks:
        - net-dsmr

   dsmr-reader:
    container_name: dsmr-reader
#    image: ualex73/dsmr-reader-docker:arm32v6
    image: xirixiz/dsmr-reader-docker:DEVELOPMENT-arm32v7 
    restart: unless-stopped
    volumes:
        - /etc/localtime:/etc/localtime:ro
        - /dsmr/backups:/home/dsmr/app/backups
        - /dev:/dev
    environment:
        - DB_ENGINE=django.db.backends.postgresql
        - DB_NAME=dsmrreader
        - DB_USER=dsmrreader 
        - DB_PASS=dsmrreader
        - DB_HOST=dsmr-postgreSQL
        - DB_PORT=5432
        - SD_LOGLEVEL=info
        - SD_AUTOSTART_MQTT=false
        - SD_AUTORESTART_MQTT=false
        - DSMRREADER_LOGLEVEL=WARNING
        - CONN_MAX_AGE=60
        - DSMR_USER=admin
        - DSMR_PASSWORD=admin
        - DSMR_EMAIL=root@localhost 
        - DSMR_RELEASE=latest_tag
        - VIRTUAL_HOST=localhost
        - TZ=Europe/Amsterdam
    depends_on:
        - dsmr-postgreSQL
    cap_add:
        - NET_ADMIN   
    ports:
        - '8888:80'
        - '8889:443'
#    devices:
#        - /dev/ttyUSB0:/dev/ttyUSB0
    networks:
        - net-dsmr

networks:
  net-dsmr:
    driver: bridge

volumes:
  influxdb-storage:
  grafana-storage:
  grafana-provisioning:
  backups:
  dev:
  db:
  localtime:

@Erik050572 Kan je code tussen quotes zetten, dan krijg je de code in blokken te zien die goed leesbaar zijn, maar dat terzijde :): https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax

Kan je wel inloggen op de webinterface, want dat lijkt allemaal netjes te zijn gestart. Mogelijk dat de datalogger instellingen niet goed staan. http://<ip address>:8888/admin/dsmr_datalogger/dataloggersettings/. Ik moet bijvoorbeeld een oudere DSMR versie selecteren, maar het kan ook zijn dat jouw device een ander pad heeft...

image

Wanneer je met Docker de container in gaat docker exec -ti dsmr-reader bash zie je dan wel data voorbij komen met het commando tail -f < /dev/<device>. Het kan een tijdje duren voordat je data voorbij ziet komen.

Wat je zou verder kunnen doen is het loglevel op DEBUG zetten, dat geeft wellicht meer inzicht in het issue. DSMRREADER_LOGLEVEL=DEBUG

Nog ter aanvulling, DSMR-reader v4.2 maakt debugging van de datalogger wat extra verbose.

Met bovenstaande DSMRREADER_LOGLEVEL-suggestie van xirixiz zou je zoiets in de logs van de datalogger moeten zien, dus ook als er geen data is:

[2020-08-20 21:09:34,278] INFO     [2020-08-20 21:09:34.278412] Opening serial connection "/dev/ttyUSB0" using options: 
{'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1, 'xonxoff': 1, 'rtscts': 0}
[2020-08-20 21:09:34,534] DEBUG    [2020-08-20 21:09:34.534800] Read 1 Byte(s)
[2020-08-20 21:09:34,785] DEBUG    [2020-08-20 21:09:34.785841] Read 0 Byte(s)
[2020-08-20 21:09:35,036] DEBUG    [2020-08-20 21:09:35.036403] Read 0 Byte(s)
[2020-08-20 21:09:35,287] DEBUG    [2020-08-20 21:09:35.286955] Read 0 Byte(s)
[2020-08-20 21:09:35,537] DEBUG    [2020-08-20 21:09:35.537550] Read 0 Byte(s)
[2020-08-20 21:09:35,788] DEBUG    [2020-08-20 21:09:35.788419] Read 0 Byte(s)
[2020-08-20 21:09:36,039] DEBUG    [2020-08-20 21:09:36.039251] Read 0 Byte(s)
[2020-08-20 21:09:36,290] DEBUG    [2020-08-20 21:09:36.290112] Read 0 Byte(s)
[2020-08-20 21:09:36,541] DEBUG    [2020-08-20 21:09:36.540986] Read 0 Byte(s)
[2020-08-20 21:09:36,792] DEBUG    [2020-08-20 21:09:36.792011] Read 0 Byte(s)
[2020-08-20 21:09:37,043] DEBUG    [2020-08-20 21:09:37.042987] Read 0 Byte(s)
[2020-08-20 21:09:37,294] DEBUG    [2020-08-20 21:09:37.294075] Read 0 Byte(s)
[2020-08-20 21:09:37,545] DEBUG    [2020-08-20 21:09:37.545497] Read 0 Byte(s)
[2020-08-20 21:09:37,797] DEBUG    [2020-08-20 21:09:37.797189] Read 0 Byte(s)
[2020-08-20 21:09:38,049] DEBUG    [2020-08-20 21:09:38.048943] Read 0 Byte(s)
[2020-08-20 21:09:38,300] DEBUG    [2020-08-20 21:09:38.300732] Read 0 Byte(s)
[2020-08-20 21:09:38,552] DEBUG    [2020-08-20 21:09:38.552426] Read 0 Byte(s)
[2020-08-20 21:09:38,804] DEBUG    [2020-08-20 21:09:38.804098] Read 0 Byte(s)
[2020-08-20 21:09:39,055] DEBUG    [2020-08-20 21:09:39.055738] Read 0 Byte(s)
[2020-08-20 21:09:39,307] DEBUG    [2020-08-20 21:09:39.307405] Read 0 Byte(s)
[2020-08-20 21:09:39,559] DEBUG    [2020-08-20 21:09:39.559028] Read 0 Byte(s)
[2020-08-20 21:09:39,810] DEBUG    [2020-08-20 21:09:39.810724] Read 0 Byte(s)
[2020-08-20 21:09:40,062] DEBUG    [2020-08-20 21:09:40.062452] Read 0 Byte(s)
[2020-08-20 21:09:40,314] DEBUG    [2020-08-20 21:09:40.314168] Read 0 Byte(s)
[2020-08-20 21:09:40,565] DEBUG    [2020-08-20 21:09:40.565844] Read 0 Byte(s)
[2020-08-20 21:09:40,817] DEBUG    [2020-08-20 21:09:40.817536] Read 0 Byte(s)
[2020-08-20 21:09:41,069] DEBUG    [2020-08-20 21:09:41.069199] Read 0 Byte(s)
[2020-08-20 21:09:41,320] DEBUG    [2020-08-20 21:09:41.320898] Read 0 Byte(s)
[2020-08-20 21:09:41,572] DEBUG    [2020-08-20 21:09:41.572563] Read 0 Byte(s)
[2020-08-20 21:09:41,823] DEBUG    [2020-08-20 21:09:41.823847] Read 0 Byte(s)
[2020-08-20 21:09:42,075] DEBUG    [2020-08-20 21:09:42.075534] Read 0 Byte(s)
[2020-08-20 21:09:42,327] DEBUG    [2020-08-20 21:09:42.327188] Read 0 Byte(s)
[2020-08-20 21:09:42,578] DEBUG    [2020-08-20 21:09:42.578846] Read 0 Byte(s)
[2020-08-20 21:09:42,830] DEBUG    [2020-08-20 21:09:42.830779] Read 0 Byte(s)
[2020-08-20 21:09:43,082] DEBUG    [2020-08-20 21:09:43.082088] Read 66 Byte(s)
[2020-08-20 21:09:43,334] DEBUG    [2020-08-20 21:09:43.334030] Read 480 Byte(s)
[2020-08-20 21:09:43,586] DEBUG    [2020-08-20 21:09:43.586017] Read 316 Byte(s)
[2020-08-20 21:09:43,838] DEBUG    [2020-08-20 21:09:43.838059] Read 7 Byte(s)
[2020-08-20 21:09:43,845] DEBUG    Received telegram:
/XMX5LGBBFFB231117727

... telegram ...

!C6F2

Op de eerste regel staan de opties die gebruikt worden, die kun je dubbelchecken. Voor de rest zie je dus telkens pogingen tot uitlezen. In mijn geval duurt het met DSMRv4-meter tot 10 seconden voordat er iets te lezen is.

Als je ook een DSMRv4-meter hebt plus DSMR-reader < v4.2, dan kan het ook zijn dat het proces bewust na elke uitlezing zichzelf exit. Dat zie je ook aan de log: exited: dsmr_datalogger (exit status 0; expected).

Overigens heb ik zojuist de image officieel released. De image naam is nu, al is DEVELOPMENT op dit moment nog exact hetzelfde.

xirixiz/dsmr-reader-docker:latest-<arch>

Bedankt voor de link, ik was al aan het zoeken hoe ik een remark niet hals header weergegeven krijg.

http://192.168.1.41:8888/admin/dsmr_datalogger/dataloggersettings/ geeft ook This site can’t be reached

Ik weet niet of ''''tail -f < /dev/'''' voor mij gaat werken omdat deze computer niet direct met de meterkast is verbonden maar via een API de data krijgt

Ik heb het "development" gedeelte verwijderd uit de image en heb de debug optie toegevoegd.
De hierboven genoemde bestanden zien er niet anders uit.
Of wordt dat ergens anders in opgeslagen.

Helaas heb ik vandaag geen tijd, maar waarschijnlijk kan Dennis jou wel verder helpen met de logfiles. Ik wist ook niet dat het om remote data ging, dan werkt het idd net iets anders, maar heb dat zelf eigenlijk niet eerder geconfigureerd.

Je moet overigens net de andere quotes gebruiken, dus niet ''' maar "```" (maar dan zonder de dubbele quotes uiteraard).

@Erik050572 ik denk dat je het beste sowieso even de remote datalogger kunt herinstalleren: https://dsmr-reader.readthedocs.io/en/latest/installation/datalogger.html
Deze is flink op de schop gegaan in v4.2, maar vereist handmatige herinstallatie.

Verder is mijn advies als je even je eigen docker-compose bewaart en aan de kant zet en even een schone poging doet op basis van de defaults van xirixiz, zonder toevoegingen qua grafana of influx: https://github.com/xirixiz/dsmr-reader-docker/blob/master/docker-compose.example.yaml

Zodra dat werkt kun je gaan stoeien met InfluxDB of wat je ook anders wilt. Dat maakt het ook veel makkelijker om je te helpen, want voor mijn gevoel probeer je nu drie dingen tegelijkertijd te doen en dat helpt niet echt.

Goedenavond @dennissiemensma (@ualex73 & @xirixiz) ,

Het zou inderdaad goed mogelijk kunnen zijn dat het in de interface zit.
Ik ga eerst proberen om die weer aan de praat te krijgen.

Maar zou jij willen kijken naar de 3e vraag uit mijn initiële vraagstelling?

Heel erg bedankt tot zover voor jullie tot input: ik heb weer heel veel bijgeleerd.
Greetz,
Erik

Maar zou jij willen kijken naar de 3e vraag uit mijn initiële vraagstelling?

Ik heb daar geen goede oplossing voor. Het (minor) updaten van de software gaat doorgaans vrij vlot en zonder downtime en doet het systeem pas een herstart na afloop van de update.
Voor grote (major) updates zul je altijd downtime hebben, want de applicatie moet vaak even uit en ontvangt dan eenmaal niets en dat is ook niet op te slaan.

Je zou het wat pragmatischer kunnen aanvliegen:

  • Kijken of je niet aan hardware-limieten zit door tijdens een minor update htop en top in de gaten te houden.
  • Niet meer updaten wanneer je op een versie zit die goed genoeg voor je werkt. DSMR-reader verandert in de basis-functionaliteit namelijk vrij beperkt.
  • Alleen updaten buiten de zonuren wanneer je de PVOutput-data even kunt missen.

Als ik het overigens goed lees dat je op een Pi 3 zowel een stand-alone als Docker-DSMR-reader draait, dan kan ik me voorstellen dat dat veel te zwaar is, maar dat kun je zelf het beste inzien en evt oplossen. Wederom in te zien met top / htop.

Goedenavond @dennissiemensma ,

Misschien heb ik me niet goed uitgedrukt:
Vanaf het moment dat de nieuwe versie beschikbaar is, krijg ik de foutmelding in de huidige versie.
Op het moment dat ik de update gedraaid heb, is de foutmelding weg.
Mijn verzoek was dus voor de data (de telegrammen), die wel verzameld is, maar niet geüpload naar PVoutput, om die via een Mass-update alsnog up te loaden.

Ik hou juist mijn hardware-limieten in de gaten en vind het juist een enorm compliment waard dat je het voor mekaar hebt gekregen om de mijn RPi3 (meterkast) op halve kracht te laten draaien . Terwijl ik bij de vorige keer dat ik jou hulp nodig had dat dezelfde Pi op volle kracht aan het draaien was en zelfs aan het throttellen was.

Tevens de docker versie die ik nu aan de praat probeer te krijgen, draait op een andere RPI3 (in hetzelfde netwerk).
Zodoende wil ik de workload verdelen over een Pi die de data vastlegt en de andere voor het zwaardere rekenwerk laten doen: in eerste instantie dienen als back-up en met behulp van de data van deze back-up rapporten maken via Grafana.

Ik hoop dat ik hiermee mijn verzoek heb verduidelijkt.

Bedankt voor de opheldering. We hadden het dan inderdaad deels over verschillende dingen.

Zojuist heb ik mijn 4.2-installatie gefaked op 4.1 en zowel de handmatige update-checker en de automatische werken zonder issues en gevolgen. Ik kan het dus helaas niet reproduceren.
De juiste oplossing lijkt me dan ook om de oorzaak (downtime) op te lossen ipv van een workaround van het gevolg (upload achteraf). Ook omdat (voor zover ik weet) niemand anders hetzelfde issue heeft gemeld m.b.t. downtime bij detectie van nieuwere releases. Het is namelijk ongetwijfeld iets kleins wat dit bij je veroorzaakt.

Als het weer gebeurt zul je denk ik in de logfiles moeten kijken wat er mis gaat: https://dsmr-reader.readthedocs.io/nl/v4/troubleshooting.html#log-files.
Als de applicatie niet reageert, en de hardware niet de oorzaak is, dan moeten er foutmeldingen gelogd worden. Zie overigens ook de "Let op"-sectie in bovenstaande link.

Mocht het weer gebeuren, zal ik een issue inschieten.

Tussentijdse update:
De container "dsmr-reader" werkt intussen.
Ik ga nu proberen om de remote datalogger in het yaml-bestand te verwerken.

@Erik050572 dan ben ik toch benieuwd waar het "probleem" zat en wat de oplossing was? :-)

Dat is nu het stomme.... Ik weet het niet....
Ik heb via portainer de vastgelopen container geherstart en toen bleef hij draaien.

Ik denk dat je het beste hier een apart issue voor kan maken, gezien Github het beste werkt met opsplitsing van verschillende problemen.

Verder kun je proberen om de logfiles in /var/log/supervisor/ weg te gooien, want er lijken wat oude meldingen tussen te zitten. En tot slot debug logging aanzetten zodat je in de log van backend kan zien wat er gebeurt qua PVOutput uploads.

Ik zal dat doen, mocht het nog een keer voorkomen, maar voor de hoofdvraag heb Ik toch nog wel hulp nodig.

Ik heb de stappen uitgevoerd, van de werkinstructie in RPi3 (meterkast) om de data door te sturen naar RPIi (docker: de "datalogger")

Hoe roep ik het home/dsmr/dsmr_datalogger_api_client.py script aan vanuit het Yaml-bestand?
Ik heb wel een uitleg gevonden, maar ik denk dat op die manier onnodig ingewikkeld wordt gemaakt.

Ik denk dat je vragen over hoe de remote datalogger te draaien via Docker het beste bij xirixiz (of ualex) kunt leggen.

Als je op de meterkast-Pi geen Docker gebruikt, kun je de standaard-instructies volgen: https://dsmr-reader.readthedocs.io/en/latest/installation/datalogger.html

Ik kan daar wel bij helpen, ik kom er morgen op terug. ....ik heb al even gekeken, en ik ben de Docker image aan het bijwerken met de zaken die door Dennis zijn aangegeven, dan kan je op basis van een aantal variabelen aangeven voor welk doel de Docker container ingezet gaat worden. Morgen klaar!

Dit kan je doen, maar volgens mij kan het ook eenvoudig met een tweede Docker instance, maar ik moet even kijken of alles matcht met de documentatie van @dennissiemensma

https://maxxie85.tweakblogs.net/

Inmiddels heb ik de development images bijgewerkt met de functionaliteit om de Docker container in te zetten als remote datalogger via een seriele verbinding of via ipv4. Morgen kan ik het testen, of je kan het zelf testen met de development image als de docu helder genoeg is.. de development image heb je alleen nodig op de locatie waar je de meter gaat uitlezen, aan de andere kant veranderd er niets maar moet je wel de "local" datalogger uitzetten uiteraard.

https://github.com/xirixiz/dsmr-reader-docker/tree/development is bijgewerkt. Dat houdt dus in dat de development Docker image ingezet kan worden als remote datalogger. De README in de development branch is ook bijgewerkt, en met die info moet het vast goedkomen. Succes! Wanneer het werkt merge ik het uiteraard naar de master branch.

We must be nearly there.....
Hier was ik dus never... nooit niet.... opgekomen!
Wat een heldere uitleg. 👍

Ik krijg nu een ander foutmelding op webpagina van de "Docker versie"
`Geen gegevens gevonden. Zorg ervoor dat het dsmr_datalogger-proces draait of dat je gegevens aanlevert via die API.
Op het moment dat ik "REMOTE_DATALOGGER" op false zet komt de website wel op maar schiet de container weer in de "dsmr_datalogger loop". Zet ik het op true komt de webpagina helemaal niet op.

Voor de zekerheid:
Op de dataverzendende RPi (de stand-alone versie in de meterkast) heb ik de API aangezet en de daar vermelde code overgenomen in het YAML-bestand. In het dataloggerconfiguratie scherm heb ik niets veranderd, want hier komt de data binnen.
(ook heb ik het dataloggen (nog) niet uit gezet omdat dit tot nu toe enige werkende versie is in versie 4.)

Het beest van een YAML-bestand van de dataontvangende RPi ziet er nu inmiddels zo uit

version: '3.3'

services:

   dsmr-postgreSQL:
     container_name: dsmr-postgreSQL
     image: arm32v7/postgres:latest
     restart: always
     ports:
        - '5432:5432'
     volumes:
        - /etc/localtime:/etc/localtime:ro
        - /db/:/var/lib/postgresql/data
     environment:
        - TZ=Europe/Amsterdam
        - PG_TZ=Europe/Amsterdam
        - POSTGRES_USER=dsmrreader
        - POSTGRES_PASSWORD=dsmrreader
        - POSTGRES_DB=dsmrreader
     networks:
        - net-dsmr

   dsmr-influxdb:
     container_name: dsmr-influxdb
     image: influxdb:latest
     restart: unless-stopped
     ports:
        - '8086:8086'
     volumes:
        - /influxdb-storage:/var/lib/influxdb
     environment:
        - INFLUXDB_DB= dsmrreader
        - INFLUXDB_ADMIN_USER= dsmrreader
        - INFLUXDB_ADMIN_PASSWORD= dsmrreader
     depends_on:
        - dsmr-postgreSQL
     networks:
        - net-dsmr

   dsmr-grafana:
     container_name: dsmr-grafana
     image: grafana/grafana:latest
     restart: always
     ports:
        - '3000:3000'
     volumes:
        - ./grafana-provisioning/:/etc/grafana/provisioning
     depends_on:
        - dsmr-influxdb
     environment:
        - GF_SECURITY_ADMIN_USER=dsmrreader
        - GF_SECURITY_ADMIN_PASSWORD=dsmrreader
     networks:
        - net-dsmr

   dsmr-reader:
    container_name: dsmr-reader
#    image: ualex73/dsmr-reader-docker:arm32v6
    image: xirixiz/dsmr-reader-docker:development-arm32v7
    restart: always
    volumes:
        - /etc/localtime:/etc/localtime:ro
        - ./dsmr/backups:/home/dsmr/app/backups
        - /dev:/dev
    environment:
#        DB related
        - DB_ENGINE=django.db.backends.postgresql
        - DB_NAME=dsmrreader
        - DB_USER=dsmrreader
        - DB_PASS=dsmrreader
        - DB_HOST=dsmr-postgreSQL
        - DB_PORT=5432
        - CONN_MAX_AGE=60
#        DSMR related
        - DSMR_USER=admin
        - DSMR_PASSWORD=admin
        - DSMRREADER_LOGLEVEL=DEBUG # Valid values are WARNING, INFO, DEBUG
#        - DSMRREADER_PLUGINS=dsmr_plugins.modules.plugin_name1,dsmr_plugins.modules.plugin_name2
        - SECRET_KEY=dsmrreader
        - DSMR_RELEASE=latest       # Can be 'latest', 'latest_tag' or specific version like '4.1.1'
        - VIRTUAL_HOST=localhost
        - TZ=Europe/Amsterdam
#        Nginx related
        - ENABLE_HTTP_AUTH=false
        - HTTP_AUTH_USERNAME=
        - HTTP_AUTH_PASSWORD=
#        Supervisord related
        - SD_LOGLEVEL=info
        - SD_USER=root
        - SD_GROUP=root
        - SD_AUTOSTART_DATALOGGER=true
        - SD_AUTORESTART_DATALOGGER=true
        - SD_AUTOSTART_REMOTE_DATALOGGER=false
        - SD_AUTORESTART_REMOTE_DATALOGGER=false
        - SD_AUTOSTART_BACKEND=true
        - SD_AUTORESTART_BACKEND=true
        - SD_AUTOSTART_WEBINTERFACE=true
        - SD_AUTORESTART_WEBINTERFACE=true
#        Remote DSMR datalogger related (more info: https://dsmr-reader.readthedocs.io/nl/v4/installation/datalogger.html)
        - REMOTE_DATALOGGER=false             # Set to true if datalogger is running on another container
        - DATALOGGER_API_HOSTS=1              # Required. Destination(s) of the DSMR Reader (Docker) host(s)
        - DATALOGGER_API_KEYS=CNM3BS0XEU086TSIX2CGWAFR3F3RCT9M6ALEURKT4SK4AOSN8ZQCLEWCF8WW44CX               # Required. Add the API keys of the DSMR Reader (Docker) destination host(s)
        - DATALOGGER_INPUT_METHOD=ipv4         # Required. Only serial or ipv4 (network) are valid values
#        - DATALOGGER_SERIAL_PORT=/dev/ttyUSB0 # Required if the input method is set to serial
#        - DATALOGGER_SERIAL_BAUDRATE=115200   # Required if the input method is set to serial
        - DATALOGGER_NETWORK_HOST=192.168.1.47 # Required if the input method is set to ipv4
        - DATALOGGER_NETWORK_PORT=80           # Required if the input method is set to ipv4 (Docker port)
#       - DATALOGGER_TIMEOUT=x                # Optional. In seconds
#       - DATALOGGER_SLEEP=x                  # Optional. In seconds
#       - DATALOGGER_DEBUG_LOGGING=false      # Optional.
     depends_on:
        - dsmr-postgreSQL
    cap_add:
        - NET_ADMIN
    links:
        - dsmr-postgreSQL
    ports:
        - '8888:80'
        - '8889:443'
#    devices:
#        - /dev/ttyUSB0:/dev/ttyUSB0
    networks:
        - net-dsmr

networks:
  net-dsmr:
    driver: bridge

volumes:
  influxdb-storage:
  grafana-storage:
  grafana-provisioning:
  backups:
  dev:
  db:
  localtime:

Je bent er bijna 👍.

Deze waarden kunnen op de ontvangende container gezet worden (pas ik nog aan, kleine denkfout van mij inderdaad).
Alles mag draain met uitzondering van de local datalogger.

        - SD_AUTOSTART_DATALOGGER=false
        - SD_AUTORESTART_DATALOGGER=false
        # - REMOTE_DATALOGGER=false
        # - DATALOGGER_API_HOSTS=1
        # - DATALOGGER_API_KEYS=xxxx
        # - DATALOGGER_INPUT_METHOD=ipv4 
        # - DATALOGGER_NETWORK_HOST=192.168.1.47
        # - DATALOGGER_NETWORK_PORT=80

Deze waarden moet je op de datalogger container zetten:

        - REMOTE_DATALOGGER=true
        - DATALOGGER_API_HOSTS=x.x.x.x
        - DATALOGGER_API_KEYS=xxxxxxxxxxxxx
        - DATALOGGER_INPUT_METHOD=ipv4 
        - DATALOGGER_NETWORK_HOST=192.168.1.47
        - DATALOGGER_NETWORK_PORT=80
  • Kijk even in de documentatie was de waarde moet zijn voor DATALOGGER_API_HOSTS, daar moet een IP staan: https://dsmr-reader.readthedocs.io/en/latest/installation/datalogger.html
  • Draait de Docker daemon van de datalogger host op dit IP adres DATALOGGER_NETWORK_HOST=192.168.1.47?
  • Draait de Docker container op poort DATALOGGER_NETWORK_PORT=80, of is die voor de datalogger ook gemapped op poort 8888:80 dus dat de poort 8888 moet zijn?.

@dennissiemensma weet overigens meer over de configuratie zelf hiervan, wellicht dat hij de waarden kan beoordelen.

Succes nog! Je bent er bijna volgens mij!

De devlopement branch heb ik bijgewerkt (code en docs). De eerdere comments die ik heb verzonden vandaag kunnen dus genegeerd worden bij gebruik van de laatste development image

  • Removed REMOTE_DATALOGGER
  • Added DATALOGGER_MODE

De datalogger mode setting kent drie opties:

  • standalone (default, eigenlijk een single setup)
  • sender (split setup, een container die alleen als verdender dient, dus de datalogger verzender gekoppeld aan P1)
  • receiver (split setup, een contaer die de data ontvangt van de sender container, maar waarbij de local datalogger in de container is uitgeschakeld, die krijgt immers geen data omdat de sender dat verzorgt)

Volgens mij moet je er op deze manier wel uitkomen.

Aangezien de DATALOGGER_MODE nu alle opstellingen coveren heb ik de volgende opties verwijderd:

  • SD_AUTOSTART_.*
  • SD_AUTORESTART.*

Goedemorgen @xirixiz ,

Als ik jouw antwoord lees, krijg ik de indruk dat je er van uitgaat dat mijn setup uit 2 docker opstellingen bestaat.
Op de Rpi3 in de meterkast draait geen docker en is een standalone en daarom heb ik deze stappen niet uitgevoerd.

Ik zal vanavond even nog eens controleren of ik niet een fout heb gemaakt in dit gedeelte van de werkinstructie.

Zit er eigenlijk een verschil de werking van datavelden omgeven met of zonder ""?

Bijvoorbeeld

# Example with non standard port, e.g. Docker:
DATALOGGER_API_HOSTS=http://12.34.56.78:7777
DATALOGGER_API_KEYS=0987654321HGFEDCBA

Tegenover

# Example with non standard port, e.g. Docker:
DATALOGGER_API_HOSTS="http://12.34.56.78:7777"
DATALOGGER_API_KEYS="0987654321HGFEDCBA"

Ah ok, dan moet je de Docker variant, dus instellen als ``receiver``` voor de DATALOGGER_MODE, dan schakel je de datalogger uit op de Docker container.

De andere waarden zoals DATLOGGER_API_HOSTS en dergelijke worden alleen door de sender docker container gebruikt, of bij een handmatige configuratie zoals die in de handleiding van @dennissiemensma beschreven staan: https://dsmr-reader.readthedocs.io/en/latest/installation/datalogger.html, maar aangezien je deze stappen hebt gevolgd: https://maxxie85.tweakblogs.net/ is het voor jou niet van toepassing

Het enige dat je dus hoeft in te stellen is DATLOGGER_MODE, alle overige DATLOGGER.* config kan je uit je compose file verwijderen. Je compose file in de environment sectie zou er dan als volgt uit zien (default waarden zou ik nooit opnemen in de compose file):

    environment:
        - DATALOGGER_MODE="receiver"
        - DB_HOST="dsmr-postgreSQL"
        - VIRTUAL_HOST="localhost"
        - TZ="Europe/Amsterdam"

Je kan overigens het beste de waarden tussen dubbele quotes zetten in dit geval om issues te voorkomen.

Vanuit de bash handleiding:

3.1.2.2 Single Quotes

Enclosing characters in single quotes (') preserves the literal value of each character within the quotes. A single quote may not occur between single quotes, even when preceded by a backslash.

3.1.2.3 Double Quotes

Enclosing characters in double quotes (") preserves the literal value of all characters within the quotes, with the exception of $, `, \, and, when history expansion is enabled, !. The characters $ and ` retain their special meaning within double quotes (see Shell Expansions). The backslash retains its special meaning only when followed by one of the following characters: $, `, ", \, or newline. Within double quotes, backslashes that are followed by one of these characters are removed. Backslashes preceding characters without a special meaning are left unmodified. A double quote may be quoted within double quotes by preceding it with a backslash. If enabled, history expansion will be performed unless an ! appearing in double quotes is escaped using a backslash. The backslash preceding the ! is not removed.

The special parameters * and @ have special meaning when in double quotes (see Shell Parameter Expansion).

Goedenavond @xirixiz ,

Begrijp ik je goed dat ik voor de container dsmr-reader alles aan environment kan wel laten en het onderstaande kan laten staan?

environment:
- DATALOGGER_MODE="receiver"
- DB_HOST="dsmr-postgreSQL"
- VIRTUAL_HOST="localhost"
- TZ="Europe/Amsterdam"

Correct! Je hebt alle variabelen overgenomen met de default waarden, dus wanneer je die niet specificeert, dan krijg je toch dezelfde waarden, dat maakt het wat leesbaarder en overzichtelijker op deze manier.

Het ruimt wel op.... :)
Dit is dan het log:
```
[ INFO ] Verifying if the DSMR web credential variables have been set...
[ INFO ] Verifying if DSMR_RELEASE has been set correctly!
[ INFO ] Fixing /dev/ttyUSB* security...
[ INFO ] Removing existing PID files..
[ INFO ] Creating log directory...
[ INFO ] Verifying if Postgres in running...
...........................................................
[ FAIL ] Could not connect to database server. Exiting...,

````

Ik heb toch maar wat regels terug gezet.

Het enviroment gedeelte staat er nu zo uit:

#        DB related
        - DB_ENGINE=django.db.backends.postgresql
        - DB_NAME=dsmrreader
        - DB_USER=dsmrreader
        - DB_PASS=dsmrreader
        - DB_HOST=dsmr-postgreSQL
        - DB_PORT=5432
        - CONN_MAX_AGE=60
#        DSMR related
        - DSMR_USER=admin
        - DSMR_PASSWORD=admin
        - DSMRREADER_LOGLEVEL=DEBUG # Valid values are WARNING, INFO, DEBUG
        - SECRET_KEY=dsmrreader
        - DSMR_RELEASE=latest       # Can be 'latest', 'latest_tag' or specific version like '4.1.1'
        - DATALOGGER_MODE="receiver"
        - VIRTUAL_HOST="localhost"
        - TZ="Europe/Amsterdam"

In de development versie krijg ik dit te zien in het logboek:

[ INFO ] Verifying if the DSMR web credential variables have been set...
[ INFO ] Verifying if DSMR_RELEASE has been set correctly!
[ INFO ] Fixing /dev/ttyUSB* security...
[ INFO ] Removing existing PID files...
[ INFO ] Creating log directory...
[ INFO ] Verifying if Postgres in running...
[ INFO ] Using the latest release.
[ INFO ] DSMR already installed with the desired release. Continuing...
[ FAIL ] Invalid value of the DATALOGGER_MODE has been set. Exiting...

En in de "lastest" versie zie je dit in het logboek

2020-09-02 19:46:14,875 INFO spawned: 'dsmr_webinterface' with pid 227
2020-09-02 19:46:15,884 INFO spawned: 'dsmr_backend' with pid 228
2020-09-02 19:46:15,892 INFO spawned: 'dsmr_datalogger' with pid 229
2020-09-02 19:46:16,734 INFO exited: dsmr_backend (exit status 1; not expected)
2020-09-02 19:46:16,756 INFO exited: dsmr_datalogger (exit status 1; not expected)
2020-09-02 19:46:17,390 INFO exited: dsmr_webinterface (exit status 3; not expected)

Ik weet niet wat er mis gaat, maar er lijkt iets mis te zijn met jouw setup. Wanneer ik de waarden invoer (dat beperkte setje) zoals ik initieel heb doorgegeven dan werkt het bij mij meteen, geen database connectie problemen oid. Tevens wanneer ik jouw huidige set aan waarden gebruik, dan werkt het bij mij ook gewoon. Het enige dat ik kan bedenken is de quotes verwijderen. Ik gebruik zelf geen compose, maar wellicht dat die quotes dan toch niet gaan in dit geval. Het proberen waard iig, maar het blijft hoe dan ook vreemd dat je meer moet meegeven dan nodig is om alleen al de verbinding met de database op te zetten:

- DATALOGGER_MODE=receiver

Bij mij ziet het er zo uit:

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

563 static files copied to '/var/www/dsmrreader/static'.
Updating password of superuser "admin" (DSMR_USER)
[ INFO ] Checking for HTTP AUTHENTICATION configuration...
[ INFO ] ENABLE_HTTP_AUTH is disabled, nothing to see here. Continuing...
[ INFO ] Starting supervisord...
[ INFO ] Logfiles can be found at: /var/log/supervisor/*.log and /tmp/supervisord.log
/usr/lib/python3.8/site-packages/supervisor/options.py:473: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  self.warnings.warn(
2020-09-03 07:56:11,520 INFO Included extra file "/etc/supervisor.d/supervisord.ini" during parsing
2020-09-03 07:56:11,520 INFO Set uid to user 0 succeeded
2020-09-03 07:56:11,532 INFO RPC interface 'supervisor' initialized
2020-09-03 07:56:11,533 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2020-09-03 07:56:11,533 INFO supervisord started with pid 214
2020-09-03 07:56:12,536 INFO spawned: 'dsmr_backend' with pid 216
2020-09-03 07:56:12,540 INFO spawned: 'dsmr_webinterface' with pid 217
2020-09-03 07:56:12,543 INFO spawned: 'nginx' with pid 218
2020-09-03 07:56:13,975 INFO success: dsmr_backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-09-03 07:56:13,976 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-09-03 07:56:16,290 INFO success: dsmr_webinterface entered RUNNING state, process has stayed up for > than 3 seconds (startsecs)

Netjes gestart dus zonder datalogger(s).

@Erik050572 Ik denk dat je weer tegen je origineel probleem aanloopt, en dat dezelfde settings bij ons wel gewoon werken. Ik kon het ook niet zien/vinden in de configuratie/logging die je toen aanleverde, want het zou moeten werken.

@Erik050572 Welk onderliggend OS gebruik je eigenlijk voor Docker? Wat je nog kan doen voor de zekerheid is dos2unix <docker-compose filename> (convert line breaks). Al denk ik niet dat het issue is...

Ik geloof inderdaad dat ik "fullcircle" ben gegaan.

hostnamectl geeft:

Static hostname: raspManager
         Icon name: computer
        Machine ID: 39cde16384d6402c8789aa79f5fab2bd
           Boot ID: b7a7f54452444f51b5f557e23fcdc7a0
  Operating System: Raspbian GNU/Linux 10 (buster)
            Kernel: Linux 5.4.51-v7+
      Architecture: arm

dos2unix wordt niet herkent.

Ik ga zo de SD-kaart van de docker Pi formateren en opnieuw beginnen (wel met het laatste Yaml-bestand)

helaas hetzelfde resultaat.

Ik vermoed dat er een fout in de container DSMR-postgreSQL zit.
Die start niet door en daardoor DSMR-reader ook niet.

Het cirkeltje wordt weer kleiner...
Ik heb een andere versie van postgres gepakt en daardoor komt webpagina weer op.

Alleen komt onderstaande foutmelding ook weer terug:

Geen gegevens gevonden. Zorg ervoor dat het dsmr_datalogger-proces draait of dat je gegevens aanlevert via die API. Daarnaast hoort het dsmr_backend-proces eveneens te draaien.

Nu weet ik niet waar ik verder moet gaan zoeken...
De interface misschien? Hoe kan ik controleren of de interface, tussen de 2 Rpi's, werkt?

Hoi @ualex73 & @dennissiemensma ,

Het laatste stukje van de puzzel is de interface....
Vanuit de meterkast (IP:192.168.1.47) stuur ik onderstaande curl opdracht:
```
curl http://192.168.1.41:8888/api/v1/datalogger/dsmrreading -d 'telegram=xxxxx' -H 'X-AUTHKEY: CNM3BS0XEU086TSIX2CGWAFR3F3RCT9M6ALEURKT4SK4AOSN8ZQCLEWCF8WW44CX'
````
De uitkomst is:"Failed to parse telegram"

Hoe is dit op te lossen?

De telegram die je stuurt bestaat uit "xxxxx" en dat is puur een voorbeeld.

Kan je een voorbeeld geven van wat ik er wel in zou moeten vullen?

Ik loop ook een beetje vast met hoe ik de plug-in moet installeren en instellen in de docker-installatie.

Er moet een telegram in en die zijn vrij lastig te sturen via curl omdat er dingen zoals linefeeds en carriage returns in staan.

Je hebt er geen plugin voor nodig, alleen de remote datalogger zoals hier beschreven: https://dsmr-reader.readthedocs.io/en/latest/installation/datalogger.html
Dat is wel gebaseerd op buiten Docker, maar voor de remote datalogger voegt Docker sowieso weinig toe.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

joep2000 picture joep2000  ·  11Comments

dennissiemensma picture dennissiemensma  ·  4Comments

ilionxsjambor picture ilionxsjambor  ·  3Comments

dennissiemensma picture dennissiemensma  ·  5Comments

Nenodema picture Nenodema  ·  5Comments