OpenZWave / qt-openzwave

QT5 Wrapper for OpenZWave
GNU Lesser General Public License v3.0
105 stars 30 forks source link

Config files not being installed on first run #97

Closed kpine closed 4 years ago

kpine commented 4 years ago

I noticed that recent versions of the docker images no longer install the config files when the container is run for the first time (reported here). It basically dies before starting the network, MQTT shows the status offline.

build-112 is working, build-126 and allinone-build-14 are not. Is this possible fallout from #75? I hadn't noticed any trouble because I've been upgrading so I have config files from previous builds, but I tried with completely empty volumes and noticed the issue.

Fishwaldo commented 4 years ago

Should be fixed now.

kpine commented 4 years ago

Is it fixed in the latest build? I tried image openzwave/ozwdaemon:build-134 and the result is the same.

Fishwaldo commented 4 years ago

I’ll check. I did some testing and it worked but I didn’t exercise the “custom path” side again.

kpine commented 4 years ago

In this case I was not using any custom paths, just running the most basic container with no existing files.

Docker setup:

$ pwd
/tmp/foo

$ ls

$ docker run -d --security-opt seccomp=unconfined --device=/dev/ttyACM0:/dev/ttyUSB0 -v $PWD/config:/opt/ozw/config -e MQTT_SERVER="mqtt" openzwave/ozwdaemon:build-134
541a0cf66fe787eb081c86f42b36df4b5844851de12a55c48833bb72179de070

$ sleep 60

$ ls config
 crashes   ozwdaemon.ini

$ docker ps | grep ozwdaemon
541a0cf66fe7        openzwave/ozwdaemon:build-134   "/startozwdaemon.sh"     About a minute ago   Up About a minute   1983/tcp                 elegant_dhawan

ozwdaemon logs:

[keith@dev:/tmp/foo] 2020.06.09..08.53
$ docker logs 541a0cf66fe7 &> d.log

[keith@dev:/tmp/foo] 2020.06.09..08.53
$ head -50 d.log
Executing: /usr/local/bin/ozwdaemon -s /dev/ttyUSB0 --config-dir /opt/ozw/config --user-dir /opt/ozw/config --mqtt-server mqtt --mqtt-port 1883 --stop-on-failure --mqtt-instance 1
ozw.daemon: Checking  "/opt/ozw/config"  for manufacturer_specific.xml
Configuration Database Does Not Exist - Copying Database to Location  "/opt/ozw/config/"
ozw.database: Testing  "./qt-openzwavedatabase.rcc"
ozw.database: Testing Standard Paths "/root/.local/share/OpenZWave/qt-openzwavedatabase.rcc"
ozw.database: Testing Standard Paths "/usr/local/share/OpenZWave/qt-openzwavedatabase.rcc"
ozw.database: Testing Standard Paths "/usr/share/OpenZWave/qt-openzwavedatabase.rcc"
Cant find qt-openzwavedatabase.rcc
ozw.daemon: Checking  "/opt/ozw/config"  for options.xml
User Configuration Path Does Not Exist - Copying Config Files to Location  "/opt/ozw/config/"
ozw.database: Testing  "./qt-openzwavedatabase.rcc"
ozw.database: Testing Standard Paths "/root/.local/share/OpenZWave/qt-openzwavedatabase.rcc"
ozw.database: Testing Standard Paths "/usr/local/share/OpenZWave/qt-openzwavedatabase.rcc"
ozw.database: Testing Standard Paths "/usr/share/OpenZWave/qt-openzwavedatabase.rcc"
Cant find qt-openzwavedatabase.rcc
ozw.daemon: DBPath:  "/opt/ozw/config/"
ozw.daemon: userPath:  "/opt/ozw/config/"
ozw.daemon: Network Key Specified in Enviroment is Invalid
ozw.daemon: Didn't Find Network Key File. Skipping
ozw.daemon: Didn't Find Auth Key File. Skipping
[20200609 15:50:42.787 UTC] [ozw.manager] [debug]: Database Path:  "/opt/ozw/config/"  User Path "/opt/ozw/config/"
[20200609 15:50:42.788 UTC] [ozw.manager] [debug]: OpenZWave Options Class Creating
[20200609 15:50:42.793 UTC] [ozw.manager] [debug]: OpenZWave Options Class Set
[20200609 15:50:42.793 UTC] [ozw.manager] [debug]: Models Created
[20200609 15:50:42.794 UTC] [qt.remoteobjects] [warning]:  Tried to register QRemoteObjectRootSource twice "QTOZWLog"
[20200609 15:50:42.794 UTC] [ozw.manager] [debug]: QTOZWManager Ready!
[20200609 15:50:42.794 UTC] [ozw.daemon] [debug]: Ready
[20200609 15:50:42.794 UTC] [ozw.manager] [debug]: QTOZWLog Ready!
[20200609 15:50:42.794 UTC] [ozw.manager] [debug]: QTOZWOptions Ready!
[20200609 15:50:42.794 UTC] [ozw.daemon] [info]: Staring  "ozwdaemon"  Version:  "0.1.134"
[20200609 15:50:42.795 UTC] [ozw.daemon] [info]: OpenZWave Version:  "1.6.1137"
[20200609 15:50:42.795 UTC] [ozw.daemon] [info]: QT-OpenZWave Version:  "1.2.0"
[20200609 15:50:42.795 UTC] [ozw.daemon] [info]: QT Version:  5.12.5
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "ping"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "open"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "close"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "refreshnodeinfo"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "requestnodestate"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "requestnodedynamic"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "requestconfigparam"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "requestallconfigparam"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "softresetcontroller"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "hardresetcontroller"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "cancelcontrollercommand"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "testnetworknode"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "testnetwork"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "healnetworknode"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "healnetwork"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "addnode"
[20200609 15:50:42.795 UTC] [ozw.mqtt.commands] [debug]: Registering Command  "removenode"
kpine commented 4 years ago

Is it possible the latest standalone image has not been built with the latest code? The openzwave/ozwdaemon:allinone-build-18 image is working fine.

It might be a good idea to add some Docker labels to the containers, such as the git commit SHA and other version and build info.

Fishwaldo commented 4 years ago

Serves me right for assuming the paths in both images were the same.... Tested on my side and fixed.

kpine commented 4 years ago

Didn't even notice that... I just tried image amd64-135 and it looks good.

Fishwaldo commented 4 years ago

Thanks for testing!