xirixiz/dsmr-reader-docker

DSMR docker is not running anymore since latest version (published Dec 12, 2022 at 8:46 pm)

hoorna opened this issue · 8 comments

Support guidelines

I've found an issue and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

DSMR Docker is not running anymore after updating to the latest image (published on Dec 12, 2022 at 8:46 pm).

Expected behaviour

The latest image is expected to run normally.

Actual behaviour

The latest image stops unexpectedly after the starting and then is starting repeatedly.

Steps to reproduce

Install and start the latest DSMR Docker version ((published on Dec 12, 2022 at 8:46 pm)) on a Synology DS920+.

Docker info

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 10
  Running: 7
  Paused: 0
  Stopped: 3
 Images: 169
 Server Version: 20.10.3
 Storage Driver: aufs
  Root Dir: /volume1/@docker/aufs
  Backing Filesystem: extfs
  Dirs: 1630
  Dirperm1 Supported: true
 Logging Driver: db
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs db fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3fa00912415f3e9c6f82dd72119179d599efd13b
 runc version: 31cc25f16f5eba4d0f53e35374532873744f4b31
 init version: ed96d00 (expected: de40ad0)
 Security Options:
  apparmor
 Kernel Version: 4.4.180+
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 7.61GiB
 Name: 
 ID: 
 Docker Root Dir: /volume1/@docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No kernel memory TCP limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
WARNING: No blkio weight support
WARNING: No blkio weight_device support
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
WARNING: the aufs storage-driver is deprecated, and will be removed in a future release.

Version

  • Docker compose version (type docker-compose --version):
    docker-compose version 1.28.5, build 24fb474e
  • System info (type uname -a):
    Linux XXXXXXXXXX 4.4.180+ #42962 SMP Tue Sep 20 22:35:56 CST 2022 x86_64 GNU/Linux synology_geminilake_920+

Docker compose

I do not have the output because I am running now a previous DSMR Docker version (build amd64-5.9.0-2022.11.04).

Container logs

Because of the problems with the latest version I have installed a previous version now of DSMR Docker. So I do not have actually the error log from the latest build anymore but I remember that it was complaining about a USB TTY or something like that. That error message sound strange to me because I am using "Network socket" for meter readings (not Synology USB ports).

Additional info

I am running DSMR Docker on a Synology DS920+ for about a year and a half without any problem. :-)

Hi, that could be indeed as there are breaking changes. Please check the merge logs. You should be able to fix it easily.

BREAKING

  • Restructured and datalogger modes. STANDALONE is untouched, but API_SERVER and API_CLIENT have been introduced.
  • Receiver and sender datalogger modes have been removed/replaced.

NON BREAKING

  • Only for STANDALONE - SERIAL a device validation is still in place. This removes errors with other setups like API_SERVER or API_CLIENT.
  • Other modes than STANDALONE are now functioning properly. Exactly like the examples provided in the DSMR Reader docs.
  • Dcocumentation has been updated and provides better information .

As far as I understand your post DSMR Docker is changed from now on. Default (without declaring datalogger environment variables) DSMR Docker starts in Serial mode (that is reading the USB port).

In my docker-compose file I now declared datalogger environment variables for a network socket datalogger. Happely DSMR Docker is working again. Thanks for the clarification.

When there is a new DSMR Docker image build then I am always looking for release notes about changes. Sadly I never can find any release note. Is it possible to add such notes anywhere so that users don't get suprised with a none working container after a image update (like me this time).

Good to hear, and good you metion this about the release notes. Maybe I can add a release in the build pipeline so the release notes are visible with the release in GitHub. I`ll make an action point for this.

It would be great if the release notes are visible with the release in GitHub.

I tried to get mine working as an api server ... and took me a while untill i went through the code ...
the values for DSMRREADER_OPERATION_MODE are lowercase as found in

if [[ "${DSMRREADER_OPERATION_MODE}" != @(standalone|api_server|api_client) ]]; then

but the readme shows them as uppercase. It's maybe an idea to update the docs ?

Even better, I could always lowercase the input 😉. Thanks for the input.

would be better yes , but then you have go through all your code. because on line 74 you do the same check again ...

Nah, first lowercase them all, then proceed with the code. I don't want to do the lowercasing every time in multiple parts of the code.

Anyway, for now I just updated the README. I will implement such a function later. Thanks for sharing ideas/thoughts!