Using Z-Weather in the Fibaro HomeCenter 2
With the Popp Z-Weather one can measure more than only the velocity of wind. But exactly this measurement did not work with the Fibaro HomeCenter 2 until now. That is actually rather bad for an anemometer. In this article you will find out how after all, it is working now.
Chris already extensively tested the Popp Z-Weather a few months ago. Sadly, the anemometer did not work with the Fibaro HomeCenter 2 at that time, which is why it was tested on a RaZberry-Gateway. You can find the test report on here. Among others, it is available for purchase on Amazon.
Ever since the Beta-Firmware-Version 4.081, the Z-Weather is officially supported by Fibaro as well. For your information: the value of wind velocity in m/s that was broadcasted to the HomeCenter by Z-Weather is the maximum value since the last wake-up.
To be able to use Z-Weather in earlier stable-versions as well, we took a look at that one, again. To train, the Gateway has to be set into the including-mode. Afterwards the button on the Z-Weather has to be pressed three times within 1,5 seconds. The LED on the Z-Weather will start blinking and it will be recognized on the Fibaro HC. Further steps are not necessary. The brightness (transferred in %, HC is showing LUX as the unit, though), humidity, temperature, saturation temperature, and the Pulse Count should now show up in the HomeCenter.
Z-Weather in the HomeCenter 2
After the anemometer was trained at the HomeCenter, you can find the just described measured values as a symbol in the not-assigned modules-area. Hereby, the following icon, respectively the ID of this module:
The above mentioned ID has to be entered into the following script, respectively changed. The ID has to be entered into the header of the script and additionally into the local variable “z_weather”, as well. Next to that, the global variables “time_past” and “wind-zweather” arranged over the variables panel, have to be created. Otherwise you will receive an error message in the script.
Now the script for the integration of the Z-Weather into the HomeCenter 2 mentioned above:
local z_weather = 299
-- AB HIER NICHTS MEHR ÄNDERN
if (tonumber(fibaro:getGlobalValue('time_past')) == nil) then
fibaro:debug('Variable time_past nicht eingerichtet. Szene wird abgebrochen')
if (tonumber(fibaro:getGlobalValue('wind_zweather')) == nil) then
fibaro:debug('Variable wind_zweather nicht eingerichtet. Szene wird abgebrochen')
if (tonumber(fibaro:getValue(z_weather, "value")) > 0) then
fibaro:debug('Z-Weather-Szene gestartet - ' ..os.date("%c"))
if (tonumber(fibaro:getGlobalValue('time_past')) == 0) then
fibaro:debug('Noch kein Wert in die Variable geschrieben - Wird automatisch angelegt.')
local time_past = fibaro:getGlobal('time_past')
local last_run = (os.time() - time_past)/60
fibaro:debug('Letzter Lauf der Szene vor ' ..math.floor(last_run).. ' min.')
fibaro:debug('Pulsecount Z-Weather: ' ..fibaro:getValue(z_weather, "value"))
multi = 1
if (last_run < 60) then
while last_run < 60 do
multi = multi + 1
last_run = last_run + last_run
local speed = math.floor((fibaro:getValue(z_weather, "value")*7.53984)*multi)
fibaro:debug('Z-Weather ist im Stromsparmodus; Daten werden nicht mehr zeitnah übermittelt...')
local speed = math.floor((fibaro:getValue(z_weather, "value")*7.53984)/(last_run/60))
fibaro:debug('Berechnete Windgeschwindigkeit: ' ..(fibaro:getGlobal('wind_zweather')/100).. ' km/h')
--fibaro:debug('Erzeugter Strom: ' ..fibaro:getValue(z_weather, "energy").. ' kw/h')
As far as everything has been arranged correctly, the scene will be triggered through the anemometer in periodical intervals and the velocity of wind will then be calculated by the script. Hereby, please note that the used information are only approximate, and the velocity of wind is the average velocity of wind. This means that in contrast to the maximum value of the wind velocity since the last wake-up, which was broadcasted to the HomeCenter (starting from version 4.081) by the Z-Weather, this script is calculating the average-velocity of wind since the last wake-up.
Functionality of the Z-Weather
With the Pulse Count mentioned above, the anemometer counts the rotations. At every eighth rotation, the value is increased by 1 and at the next wake-up, the data will be transferred to the HomeCenter by the anemometer. Based on this Pulse Count and the traveled distance of the rotary unit, the wind force can then be calculated. Though, there is a feature that has to be paid attention to. Due to the fact, that the Z-Weather is equipped with neither a battery, nor an accumulator, but instead an intern transistor is charged via the solar panel, the data can only be transmitted within a certain interval. To spare the capacity of the transistor and due to the fact that there is usually no sunshine at night, this interval (WakeUp-Interval, more detailed information on this topic can be found in this article) can vary dynamically. Due to this, the script had to be adjusted, so that the average within an hour can always be received. The Pulse Count will then be reset through the scene, in order to always receive the latest value.
Controlling of modules via associations
The Z-Weather is designed to always last a certain residual voltage in the transistor/accumulator. As a result, it is ensured that it is able to control connected devices in the case of a wind alarm. This way, for instance in the case of a storm or a squally wind, awnings and roller blinds can be retracted or run up. Therefore, the devices have to be associated with Z-Weather. This means, the devices are directly connected to each other. The Z-Weather will then send the order directly to the device (blinds, awnings, etc.). A direct connection would even work, if the central – in this example the Fibaro HC2, broke down.
Therefore, the modules (for example RollerShutter2, etc.) have to be connected with Z-Weather in the Association group 2. On that account, simply go to the advanced settings of the Z-Weather on the web surface of the HC2 and then go to “Setting Association”. Enter the modules that you want to react in the case of a storm, under this point. Up to 5 modules can directly be associated. This will look like the following in the HomeCenter 2:
In the example mentioned above, the shutter would go down starting at a certain velocity of wind, in order to protect the windows. Another example would be to retract the awning, when the wind gets to strong. For this matter, the velocity of wind, at which the Z-Weather is supposed to wake up – and send the order, can be set up in the Paramter 1 in the Z-Weather-Module. By default, this function starts to become active at 6 m/s (22 km/h), which is a too small value after our estimation. Wind forces starting at 7 could be set up in this case. This would be about 17 m/s, which would be approximately 50 km/h. Hereby, simply deposit the respective value in Parameter 1. On here, a value between 1-30 m/s can be set up. Afterwards save it and wake up the Z-Weather for transmission (press the button at the bottom 1x). A value between 1-30 m/s can be set up on here:
We do not provide an icon for the module this time, because the Pulse Count on the surface of the HC2 theoretically always shows 0 and you can therefore move it to the hidden area without problems.
In the next article we are going to show you, how to let these values incorporate with the weather prompt of the Fibaro HomeCenter 2. You then do not have to use an extern provider for the weather prompt (is still needed for the image representation). Have much fun installing :)