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
logrotate for z-way-server
-
Not too well documented elsewhere if you did not install the z-way-server from a prebuilt image like it is the case for the rPi, this is how to add the z-way-server logs to the linux log rotation process for ubuntu/debian installations:
open the logrotate config file:
sudo nano /etc/logrotate.conf
insert the z-way logs to be rotated at the end of the file. In my example below, I keep 9 compressed logs and I rotate daily.
/var/log/z-way-server.log { missingok daily rotate 9 postrotate killall -HUP z-way-server endscript delaycompress }
-
No it does not kill the server, it signals to the z-way-server that it needs to start a new log file.
The vera runs an equivalent command with its log rotation by the way.@prophead said in logrotate for z-way-server:
OT, could I use this make automated backups of my openluup user_data file?
Hmm for this I would use a crontab. Can start another thread if you want or need.
These are some examples:
-
I researched this quite a bit as well. The process actually does not reload. The HUP is a signal to restart a process yes, which in this case is the logging. I have used it for quite some time. Unlike a "luup reload" for the vera it doesn't kill the program and reload it. You can see that from the program load date. The vera's log rotate uses the similar function to log rotate as I said, without reloading the memory or the program. It is also what the embedded razberry image does. This all depends on how the binary is programmed.
-
I had to go and check this. It rather depends on the server it's directed at. Apache will re-read, for example, but not restart. I have no idea what the z-wave-server will do but it should be really easy to tel by running it and seeing the process details in ps
C
-
killall -HUP z-way-server, this command will ask the process z-way-server to "reload" and doing that, it will release the "lock" on the log file IF the application if locking the file OR just "appending" data at the end without locking!
The HUP parameter in KILL is not reloading the application ITSELF like a stop/start. The kill signal, is send to the process and ask the application IF he want to reload!
If the program/application/daemon/whatever have NO function on how to "reload", it will do nothing at all, but in case it can handle the reload, it's always like a restarting the process.
If I'm doing a KILL -HUP to a webserver like Apache or nGinx, it will reload the configuration for changes.
All I'm saying, it's that killing -HUP a process for log rotation is not required if the application didn't lock the file. You can try that by doing the command
> logfilename
This will empty the file, if the filesize is the same even after that, the file is lock at the filesystem level and if the file is back to 0, that mean the file is empty with no lock and you don't need to kill HUP the process!
-
To illustrate this, I took a screenshot of my VM ps aux: I reloaded openLuup 2 days ago.
I have been doing daily log rotate on z-way-server but have booted it since April 10th, date at which I upgraded to 3.0.6
@DesT, I tried without the kill HUP process... It does not work. The log file is actually "moved" by the logrotate and it just stops logging. This is also well documented by @PoltoS on the zwave.me forum and follows their recommendations there.
-
I am just now getting to understand what you are trying to do...
You can use the same script above and change the file to the openLuup user-data.json file and change the number "9" to "5".
Also remove the "killall" line. -
@prophead said in logrotate for z-way-server:
could I use this make automated backups of my openluup user_data file?
Just to say that openLuup has a built-in CGI to accomplish this (files backed up to the cmh-ludl/backups/ folder in LZAP compressed form by default.) These may be used to directly restore an openLuup configuration. You could trigger the backup with a timed scene.
The openLuup console Backup page shows the available backups...
-
@prophead said in logrotate for z-way-server:
I want automated with rotation.
The openLuup plugin has a
SendToTrash
action which internally uses a file retention manager which can limit the number of files in a folder to:- the most recent N
- files younger than a certain number of days old
- only certain file types
Again, this can be run from a regularly scheduled scene. Files are temporarily moved to the Trash folder but may be permanently deleted by the
EmptyTrash
action of the openLuup plugin.The same procedure can be used to manage image files.
I don't call this 'hacking Lua'
-
Can't seem to get the SendToTrash action to work either, heres my attempt:
luup.call_action ("openLuup","SendToTrash",{Folder="/etc/cmh-ludl/backup",MaxDays="",MaxFiles="10",FileTypes="lzap"},2)
I really wish you would put examples in your documentation.
the log files showluup_log:2: applying file retention policy... luup_log:2: ...finished applying file retention policy
but the files are still there.
Any help?
|-<:)