Hey guys ... I've started creating a Docker container for Z-Way.
I was previously using the Razberry2 but found it a bit slow on my Raspberry Pi 3. I could upgrade to a Raspberry Pi 4 but since I already run a dedicated Linux server and many Docker containers I thought it might make more sense to run Z-Way on there.
GitHub: https://github.com/sofakng/docker-zway
DockerHub: https://hub.docker.com/repository/docker/sofakng/zway
This container is based on other containers that are no longer updated: (ruimarinho/docker-z-way) and (EugenMayer/docker-image-zway)
I'd love to hear feedback and any improvements that might be needed.
One thing I want to add immediately is to separate the configuration files from the Docker volume but it looks like Z-Way has several user configuration files/directories?
$ZWAY_DIR/config/Configuration.xml $ZWAY_DIR/config/Rules.xml $ZWAY_DIR/config/maps $ZWAY_DIR/config/zddx $ZWAY_DIR/automation/user_syscommands $ZWAY_DIR/automation/storage $ZWAY_DIR/automation/userModules $ZWAY_DIR/htdocs/smarthome/user $ZWAY_DIR/config.xmlNot 100% sure this is the best place, but this seems to be the sticking point.
Background: My NotVera system has been working perfectly now for some years. USB Z wave stick in an old Intel NUC.
The NUC has a bare metal install of Debian buster, and on that we have:
Z-wave Smart Home
OpenLuup
AltUI
MSR
Mosquito server
Home Automation Bridge.
I also have a bare metal Raspian install of Home Assistant running on a Pi
Due to my Buffalo Linkstation doing some odd stuff (like suddenly disconnecting, while maintaining everything was fine) I bit the bullet and bought a Synology DS224+
Now, given the age of my NUC I'm thinking that I should probably start thinking about how to replace / safeguard it. Pretty happy that I can make an image of the existing disk and drop it onto a virtual machine in the Synology, or re-install / restore or do some other things (not decided what yet) but I get stuck on the USB dongle.
Can I connect that to a VM on the NAS, or do I need another solution?
TIA
C
I have a Razberry v2 with firmware v5.04, and Bootloader v8aaa with CRC 35498 (I did manage to upgrade to this version using the "ZMESerialUpdater" tool ). I want to upgrade the firmware to v5.27, which Z-Wave.me Support say is the newest version that my hardware can handle without bricking it. Firmware v5.27 introduces the Analytics tab, according to Poltos, which is what I want.
I have been studying the firmware map (https://service.z-wave.me/expertui/uzb-stats/versions-graph.html?with_hidden) which I sort-of understand. I have also got the "ZMESerialUpdater" tool to do the update, and could use it if I knew which binaries to use.
My question is, what firmware update route do I use to get from v5.04 to v5.27? What exactly are the URLs of the binaries (as in "UPD_FIRMWARE_Razberry500_from_05_04_to_05_07.bin")?
Somewhat confused!
ScotsDon
Hi all, I hope someone could drive me in the right direction.
I was setting up a new zware environment using a UZB stick I bought about 2 yeasr ago and never used.
This stick was using firmware 5.27 that sounded to me a bit old.
So I looked on the process of upgrading the device and I downloaded the ZMESerialUpdater, the I went on the z-wave.me site and look for the firmware and I found (on this awfull map) the firmware UPD_FIRMWARE_UZB_STATIC_2ch_ZME_05_1b_04000001_ZME_05_24_04000001.bin (that AFAIK should upgrade from version 5.27 to 5.36).
I run the update and it never finished....
8899ae1b-c9cc-488b-ba15-870bbf66c044-image.png
After 2 hours waiting for nothing, I finally CTRL-C and removed and reinserted the USB stick that is not recognized anymore.
I really think I won a nice peace of plastic usb shaped, but in case someone has an idea, I would be pleased to read your coment.
Regards
The expertUI of Z-way has a very interesting menu called analytics which I have not seen on any other controller.
My engineering curiosity and OCD tendency to want to optimize everything lead me to dig into it to see if I could get things working even better... even though nothing seem to be broken since my move from the UI firmware to z-way. So the background noise menu was of particular interest.
So here it is: This was my first shot of the starting block on the left side of this graph and you can see that at around 21:00 I did something to reduce the noise. My zwave.me uzb is connected to the vera through a usb extension cable and a usb hub but initially the vera and usb hub were sitting only a 6-7 inches (20cm) away from the uzb. Keep in mind the scale on both channels. What I did was to move the vera away from the uzb stick, to about 80cm but the big step was for me to use some metal leftover amazon gift card boxes I had from christmas and covered the usb hub with them. The step back up was me moving these macgyver shields around.
Screen Shot 2020-03-25 at 07.12.46.png
Next step is still goofing around with the shields to see if I could optimize further and while I initially made it worse, you can see that it got a little better later on. That USB hub is quite noisy.
Screen Shot 2020-03-25 at 13.41.30.png
After sometime, I just thought that the whole thing is just too sensitive any movement around that area could potentially cause problems. So I decided to remove the hub connected to the vera which really was just allowing to extroot the vera. Since I am no longer using the vera as a vera but only as a remote serial bridge, which doesn't write anything on its drive, I took it out. Again look closely at the scales. It did take the noise down another notch.
Screen Shot 2020-04-14 at 08.06.27.png
Now the stick is still sitting 14inch away from a UPS with a bunch of wall warts connected to it, powering a variety of devices like a hue 2 hub. I had the idea of replacing just the wall wart (AC-DC power supply) for the vera with a POE splitter. Since channel 2 is already hovering around the detection limit, I am only showing channel 1 here
Screen Shot 2020-04-15 at 19.03.27.png
This last step alone enable me to flip this other statistics menu:
Screen Shot 2020-04-24 at 07.36.36.png
It not only significantly decreased the CRC error rate but also made the foreign network impact greater that the CRC error bar negating the success on reception for the first time. When I took a zniffer to look into what these CRC error frames were, I discovered that they were all from my neighbor's network which is distant and have obviously poor signal strength. (Yes I can see his HomeId from the zniffer). The fact that I see less error means that my controller's range is greater. It is now able to recognize frames which are from my neighbor's instead of saying they are corrupted... Also The back off frames number decreased indicating less wasted/repeated frames on the network.
I have installed my UZB1 stick on my RP4 and want to megrate my device form my Vera to z-way. Now I want to use my Roller shutter 2 in z-way.mev as a scene controller. This is activated by 2x / 3x clicks on the switch. This works perfectly with vera (verabridge) in openluup and reactor using variable LastSceneID and LastScenetime.
56982a19-5d9a-44cf-9888-bed4e8866877-image.png
Fibaro documentation:
1703e550-dedc-482c-832e-b23ac5206f6e-image.png
When using z-way.me and z-way bridge it works differently. In reactor I see the variable below. I don't know how to use it. Maybe someone else can help me.
Lagging a little here but I just upgraded my z-way-server version and couldn't find much information on their website or even forum.
What is interesting for the ubuntu/debian version is that it is now released as a .deb package making upgrades much easier. I just downloaded the package and ran:
dpkg -i z-way-*.deband nothing else. The previous versions required some manual work since it was just a bunch of files for us to overwrite our installations.
From the release note, there could be interesting things for some folks here. It is a pretty long list compared to the previous incremental release.
For all systems backup is a vital part of the long-term usability.
I thought that I describe my set up with Z-way so far. Hopefully others can fill in with their backup thoughts as well. I am sure that there are much more streamlined ways of doing this and hope to learn from you all.
I run Z-way on a Raspberry Pi 3B+ with a daughter RaZberry card. In order to reduce the risk of getting corrupt SD cards I have it running off an SSD. So far this works very well. Setting it up was really easy just reading a standard Raspbian image onto the SSD. The only minor obstacle was that I had to test a few old 2.5" enclosures to find one that the Pi liked.
The Pi is then also powered via an UPS, hopefully this will avoid problems in the event of power outages.
In order to backup Z-way I have so far done manual backups from the regular Smarthome backup & restore function creating .zab files and from the Expert UI creating .zbk files. As far as I have understood the .zab files which are bigger contain more information than the .zbk files. The strategy so far has been to make backup files after each inclusion/exclusion. Also before updating Z-way. I have yet to test restoring from these files.
From Smarthome it is also possible to set up cloud backup. I have not yet set up this as I need to decide that it is safe enough to do so. On the other hand I had this set up on my two Veras.
It would have been nice to be able to schedule a local backup of Z-way instead of having to put them in the cloud, perhaps from OpenLuup via the Z-way bridge?
In addition to the built in backup function I try to do complete image copies of the SD cards on my Pi's with Win32DiskImager. When I moved to an SSD the image file grew to the size of the SSD since it is a raw copy including all the empty space. Image files of 160GB are not practical to handle so I found a good instruction on how to shrink the .img file with Gparted in Linux: https://steemit.com/raspberrypi/@wizzle/shrink-raspberry-pi-images-using-windows-virtualbox-running-raspberry-pi-desktop
By shrinking the .img file with Gparted it is now a more reasonable 4GB. These file are stored on my NAS for safekeeping. The strategy here so far is to make a new image file before updating Z-way and to use these in combination with more frequent Z-way backups.
I have tested restoring a Gparted shrinked .img file to the SSD when my Z-way for some strange reason became unreachable through the regular UI but remained reachable through the Expert UI. Always good to test the restore function and to see that it works. 🙂
The downside of the .img strategy is that I need to power-off the Pi for a while when making the backup. However if the Z-way backup files work then the complete .img backup need not be done so very often.
//ArcherS
Have found these videos very informative as a zway(ve) novice ....
Have a number of TKB plug switches (TZ68) that are not reporting to the controller. Believe they should be associated to Z-Way in Group 1 but am not able to get the devices to report groups in the interview/call for NIF process and so there are no associations possible. Thermosat is telling them to come on/off (hurrah!) but they don't report their on/off status in the gui.
In Associations tab: Can not configure associations: groups were not reported by the device. Do interview.
Night and day difference for me. I think I was getting a lot of interference in my media closet. Devices were very slow to respond and sometimes not at all. Switched to UZB and used a USB extender to place it a good 5 ft from the location of my pi. Now things are fast and reliable.
(Solved - presume pijuice hat was upset battery wasn't connected. Took out the plastic protector and UZB now showing. Next - upgrade UZB firmware)
Have I missed something? UZB not showing up in Zway ...
Downloaded Raspberry Pi Imager and used to set up os (Buster) on an 8gb SD
https://www.raspberrypi.org/software/
Then installed Zway from Terminal
wget -q -O - https://storage.z-wave.me/RaspbianInstall | sudo bash
Plugged in UZB
Changed port to /dev/ttyACM0 in menu/apps/ZWave network access in basic UI
This arrived today - hope it has enough juice for the uzb.
https://coolcomponents.co.uk/products/pijuice-hat-a-portable-power-platform-for-every-raspberry-pi
Shame the cases are sold out everywhere.
Just upgraded to 3.1.0 and am happy to report that it has not impacted the z-way bridge for openLuup.
I am now seeing the SDK version for firmware 5.39
Hi guys,
Does anyone know if the UZB supports Long Range already? I can't find which chip is in there.
Probably @rafale77 will jump on this question first 😉
I'm using the new model of GE/Jasco switch (they replaced the dead one I got) and the new model is having also S2 security and send instant status update BUT,
And probably @rafale77 will say yes, is it possible that interference can do that I'm missing some instant update status ?
Often, I'm having the wrong status in the zwave.me web interface...and even clicking the icon, the status didn't changed to right one.
I also try to do some "On/Off" using the web interface, and the device itself physically, toggle without a problem, but the web interface is still no correct.
I'm trying to monitor the indicator command class of a 5 button scene controller in Z-Way so openluup can properly create and track it.
seems like Z-Way COMMAND_CLASS_INDICATOR (0x87 or 135) are not being monitored by the ZWave module as I couldn't find anything for this command class in (/z-way-server-path/automation/modules/ZWave/index.js)
When a Get or Set Indicator command class request is sent to the controller. ZSniffer picks up the request and response just fine although this packets are not being monitored by the zwave module
Example:
the answer looks like:
[2020-04-24 19:59:36.261] [I] [zway] Waiting for job reply: Indicator Get [2020-04-24 19:59:36.281] [D] [zway] RECEIVED: ( 01 0B 00 04 00 02 03 87 03 01 B6 00 C2 ) [2020-04-24 19:59:36.281] [D] [zway] SENT ACKI’d like to store the Indicator response “RECEIVED” correctly. I believe by modifying the index.js of the zwave module could do the trick and once the module start tracking the indicator command class values as a metric then openluup's z-way plugin would properly track any changes as well.
I'm wondering if anyone around here could share any thoughts or comments that could make it easier...
Posting here, as the z-wave.me forum seems desolated..
I have two multisensor 6 sensors, and one of them is not sending motion sensor updates?
Looking at the configuration, they are both registered as battery sensors for som reason, even if they are USB powered. They respond quickly to parameter changes, except for parameter 100 and 110, that will not update.
Any clues? How do i convince the controller that they are USB powered?
First Post . . .
Good to "see" y'all here!
Last week, I purchased the Z-Wave.me UZB1 dongle and also purchased the Z-Way license.
Knowing in advance that the combination (Windows 10 and the Z-Way server) was lacking, I wanted to install anyway on a Windows 10 machine, and include a few spare z-wave devices to see how things worked. Pretty well, for the most part.
@rafale77 had written that the UZB stick works well in the RPi compared to the RaZberry card (which I also purchased but is still in it's packaging), I would like to plug this UZB1 into my Pi running openLuup/ALTUI (then hopefully installing the Z-Way plugin)
I'm not confident enough yet to plug the UZB into my Vera3 (UI5) and transfer my existing z-wave devices to the stick.
Without creating a new Buster image downloaded from Z-Way, could I possibly . . .
Plug the UZB1 into the Buster Pi3 From the terminal, run, wget -q -O - razberry.z-wave.me/install | sudo bashthen, if I can reach the :8083 port (as quoted by PoltoS) "go to Settings -> Apps -> Active -> ZWave and change /dev/ttyAMA0 to /dev/ttyACM0"
and expect that my UZB1 will now run on the Pi ?
If it is mostly that simple, would my license transfer?
Should I exclude the (3) z-wave devices I had running on the Windows 10 Z-Way server first?
If I'm oversimplifying, tell me to "shut up" and read some more! 😕
Thanks again,
DCMChrissy
Docker container for Z-Way
-
Hey guys ... I've started creating a Docker container for Z-Way.
I was previously using the Razberry2 but found it a bit slow on my Raspberry Pi 3. I could upgrade to a Raspberry Pi 4 but since I already run a dedicated Linux server and many Docker containers I thought it might make more sense to run Z-Way on there.
GitHub: https://github.com/sofakng/docker-zway
DockerHub: https://hub.docker.com/repository/docker/sofakng/zwayThis container is based on other containers that are no longer updated: (ruimarinho/docker-z-way) and (EugenMayer/docker-image-zway)
I'd love to hear feedback and any improvements that might be needed.
One thing I want to add immediately is to separate the configuration files from the Docker volume but it looks like Z-Way has several user configuration files/directories?
- $ZWAY_DIR/config/Configuration.xml
- $ZWAY_DIR/config/Rules.xml
- $ZWAY_DIR/config/maps
- $ZWAY_DIR/config/zddx
- $ZWAY_DIR/automation/user_syscommands
- $ZWAY_DIR/automation/storage
- $ZWAY_DIR/automation/userModules
- $ZWAY_DIR/htdocs/smarthome/user
- $ZWAY_DIR/config.xml
-
Welcome!
Yeah, I myself am not a big fan of docker and I try to avoid it (have been successful so far) as I see the complications and overhead it brings far outweigh the benefits. Maybe you could explain why you are pursuing this route? I see that you are coming from the home assistant forum as well where there is a raging debate about their supervisor structure. Even there I have been questioning the reason for using containers at all when I already saw no significant benefit of using a python venv. I am very puzzled by this approach.
-
I would be very interested in a docker image for zway server. I have a Synology DS216+ running docker. If there was a working zway sever image i would purchase the UZB stick and try this instead of buying a Raspberry pi and running another piece of hardware. I'm excited to move from my Veraplus to zway and i am exploring options.
@sofakng I did try your image (with out a UZB stick yet) to see if it would load. It loads but does display lots of SSL DEBUG LOCK: 2 > 1 SSL DEBUG LOCK: 2 > 0 messages during install. Ideas? The GUI comes up fine. I do not know how to see what version of the server from the GUI but during install it did show loading v3.0.6. -
So... bit of a hanger-on N00b question here: Have any of you lads managed to get Z-Way (ZWave.me) working in a Docker container, on a Synology NAS, using the UZB dongle? (Wow, that was a mouthful! And I purposely left out any mention of OpenLuup, even.)
-
@librasun
I, being a Noob with docker, used PerH's image with a run command on my Synology. It runs and I can see the UZB dongle from the interface but I haven't added any devices yet. There are a couple of things that I do not think are quite right though. Read the the thread "z-way-server new release" I posted those issues there. Also search the Zwave.me forum for "Docker" and PerH posted a docker file and compose file but the version is not right for the compose file with the Docker version on the Synology, that is why I used a run command. -
@perh The docker version on the Synology is 18.09.8, so looking on the docker documentation i would say v3.7 compose file. Not sure what you are doing with the static IP's either.
Sorry I am not very familiar with docker but willing to learn. Thanks. -
I’m following with interest, with exactly same needs as @SweetGenius – ZWay on Synology Docker will be the final nail in the coffin for my last Vera and a RPi, which will simplify support no end.
So RIP RPi and Vera!
-
looking at the compatibility matrix, it seems like differences are in options I don't use in my file, did you try to change line 1 to
version: "3.7"
?regarding networks:
I have several dockers, and Openluup/InfluxDB/Grafana/etc is all communicating inside this network.
The "networks:" part needs to define this network for each docker-compose file in order to tie them together, so it will show an error if you dodocker-compose down
on one docker while other dockers are connected. and thats OK.Edit: you could skip the "networks:" definitions all together, but then you would have to open ports for intercommunication as well to the host. I found that to be over complicating when you can have internal communication.
Wrt. timezone sync:
I haven't done timezone in z-way, as it hasn't been nessecary as i'm using openLuup for control an logging, but i've added the sync lines like I did in the openluup compose file below.I just tested the code below, and it worked on my testbench.
version: "3.7" services: Z-Way: container_name: Z-Way #or what you want to call it restart: always image: perhu/z-way-server-3-1-3:latest networks: HAnett: #or whatever you internal docker network is called ipv4_address: 192.168.0.2 #this volume gets this IP in the internal network ports: - "8083:8083" #UI port volumes: - type: bind #timezone sync source: /etc/localtime target: /etc/localtime - type: volume source: Z-Way-zddx #Device info storage (i think) target: /opt/z-way-server/config/zddx - type: volume source: Z-Way-storage #application settings target: /opt/z-way-server/automation/storage devices: - "/dev/serial/by-id/usb-0658_0200-if00:/dev/serial/by-id/usb-0658_0200-if00" #your device here environment: - ZWAY_VERSION=3.1.3 logging: driver: "json-file" options: max-file: "5" max-size: 10m networks: #I set up a network for the dockers to communicate, with static IPs HAnett: name: HAnett driver: bridge ipam: config: - subnet: 192.168.0.0/16 #subnet of choice gateway: 192.168.0.254 #gateway ip (this can be used to reach ser2net devices on host) volumes: Z-Way-zddx: name: Z-Way-zddx Z-Way-storage: name: Z-Way-storage
EDIT: added the "logging:" settings in the code above. I've done this to all my dockers, as logs were stored without limit and ended up filling my HD!
-
@perh Thanks for the all the help ! A couple more questions if you don’t mind: PoltoS mentioned the volume should be zddx instead of zddl. I assume that is in the docker file but does that change anything in the compose file?
Im confused with the volumes: sections, With the run command that I used that had data created in the storage folder was:
sudo docker run --restart=always -p 8083:8083 --device=/dev/ttyACM0 --name="zway" -v /volume1/docker/zway/zddl:/opt/z-way-server/config/zddl -v /volume1/docker/zway/storage:/opt/z-way-server/automation/storage perhu/z-way-server-3-1-3:latest
Can you explain how to put these paths in the compose file because when I try i do not get any thing in the directories? So obviously i still don't understand the compose file. -
ah, it should be zddx, yes. I've corrected that in my own dockerfile and docker-compose, but haven't fixed it on the forums. sorry.
The change is both in the dockerfile and compose file. replace "zddl" with "zddx".The docker-compose file uses docker volumes instead of binds. docker has its own system for persistent storage, volumes, that is stored in
/var/lib/docker/volumes
.
In your run command you use binds to host folders, which can also work if you declare it like this:volumes: - type: bind source: /volume1/docker/zway/zddx target: /opt/z-way-server/config/zddx
like i did in the above file with the time zone folder.
I ended up using the docker way instead as that was recommended in the docker documentation, but as long as you keep strict control of the folders you bind to, that will work too.
-
@perh I did try your docker-compose and it does run just like the run command. So I think that part is good but the image still has some issues. I installed zway on a rpi again to see how it works. The remote access error was there until a reboot and then went away. That is without touching the config of remote access. Setting the time zone set and then prompted for a reboot and all was well. I think there is some permission issues or something else because this does not happen on the docker image. On all the other docker images I use (MSR, Homeassistant, Homebridge) i shut the container down, update the image, action clear and the container would update and not lose any settings. I did a action clear on this image and it was like a brand new image. No settings were saved. Sorry to say It Idont think it is totally working. I sure appreciate your help and expertise.
-
Ok. Just checked my installation, and i have removed the remote access app completely, and according to @PoltoS, the error message would stay there if you don't set that app up. It is the one that appears twice when you go into "Settings", right? Did it go away just by rebooting on the non-docker install?
Timezone:
My timezone is working correctly now, as it is defined to Europe/Oslo in the image. that can be overridden by this in docker-compose:environment: - ZWAY_VERSION=3.1.3 - TZ=Europe/Oslo
(adding that last line with your timezone)
I thought that changing it in the Z-way UI would do the same, but mabye not?persistent storage:
How did you do the folders? Did you use the docker-compose as-is, or change to binds to your /folder1/ folders?
I don't have a synology, it might be an issue with binds on that?
you should perhaps go over to volumes in that case, you can still access the volume the same way as a bind folder by going to/var/lib/docker/volumes/*volume name*/_data
.Are you using
docker-compose up -d
anddocker-compose down
to start and stop/remove the container?Definately no expert on dockers yet, but its an interesting thing to learn.
-
On the non-Docker install it just went away. On your docker image, no remote access is installed at first and there is the error. If I install it and make it not active it warns that is not active. If make it active it keeps prompting to make it active... I am using your compose file with the exception of taking out the network stuff and adding my time zone in the environment settings. The time zone will show up after fiddling with it but if you try to change it to something different than what is set in the compose file it errors. Is the update supposed to work? If so, I need to put back in some network settings as it does not work the way it is.
-
One other note on the network, All the other docker containers i use, I do not specify an IP. You access each container by the Synology IP:Port. So, this might be different but I do not know for sure. Just giving you information.
-
Ok. Sounds like some other folder of z-way needs to be persistent too, which holds info on the plugins.. I'll ask @PoltoS.
Not sure about the timezone update, i'll have to try that later. Usually its not nessecary to change after you set it in docker compose though.The reason for the static IP's is to use the internal docker network for all communication between the dockers. I only expose the web UI ports of the applications, as all communication between the docker applications goes internally on the docker network. I.e. InfluxDB, which has no web UI (that i use), have no exposed ports, and it sends and recieves everything on the docker network.
This also exposes less ports on the host, which may be better security-wise?