Mit dem Popp Z-Weather kann man mehr als nur die Windgeschwindigkeit messen. Doch genau dieser Messwert funktionierte bisher nicht mit dem Fibaro HomeCenter 2. Eigentlich eher schlecht für einen Windmesser. Wie es jetzt doch funktioniert erfahrt Ihr in diesem Artikel.
Den Amazon.
Seit der Beta-Firmware-Version 4.081 wird der Z-Weather auch offiziell seitens Fibaro unterstützt. Zur Info: der vom Z-Weather zum Homecenter übertragene Wert der Windgeschwindigkeit in m/s, ist der Max Wert, seit dem letzten Wackeup.
Um den Z-Weather auch in früheren Stable-Versionen nutzen zu können, haben wir uns diesen nochmals angeschaut. Zum Anlernen muss das Gateway in den Inkludier-Modus versetzt werden. Daraufhin wird der Button am Z-Weather dreimal innerhalb von 1,5 Sekunden gedrückt. Die LED am Z-Weather blinkt auf und dieser wird am Fibaro HC erkannt. Weitere Schritte sind hier nicht notwendig. Im Homecenter sollte nun die Helligkeit (übertragen in %, HC zeigt aber LUX als Einheit an) , Luftfeuchtigkeit, Temperatur, Taupunkt und der Pulse Count erscheinen.
Z-Weather im HomeCenter 2
Nachdem der Windmesser an dem HomeCenter angelernt wurde, findet Ihr die eben beschriebenen Messwerte als Symbol in dem Bereich der nicht-zugeordneten Module. Wichtig ist hierbei folgendes Icon, beziehungsweise die ID dieses Moduls:
Die oben angesprochene ID muss in dem folgenden Skript eingetragen, bzw. geändert werden. Die ID müsst ihr zum einen im Header des Skripts und zusätzlich bei der lokalen Variablen "z_weather" eintragen. Außerdem müssen die globalen Variablen "time_past" und "wind_zweather" angelegt über das Variablenpanel erstellt werden. Ansonsten erhaltet Ihr im Skript eine Fehlermeldung.
Hier nun das oben erwähnte Skript für die Integration des Z-Weather in das HomeCenter 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
--[[ %% properties 299 value %% globals --]] 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') fibaro:abort() end if (tonumber(fibaro:getGlobalValue('wind_zweather')) == nil) then fibaro:debug('Variable wind_zweather nicht eingerichtet. Szene wird abgebrochen') fibaro:abort() end 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.') fibaro:setGlobal('time_past', os.time()-900) end 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 end local speed = math.floor((fibaro:getValue(z_weather, "value")*7.53984)*multi) fibaro:setGlobal('wind_zweather', speed/100) else 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:setGlobal('wind_zweather', speed/100) end fibaro:call(z_weather, "reset") fibaro:debug('Berechnete Windgeschwindigkeit: ' ..fibaro:getGlobal('wind_zweather').. ' km/h') --fibaro:debug('Erzeugter Strom: ' ..fibaro:getValue(z_weather, "energy").. ' kw/h') fibaro:debug('Pulsecount resettet.') end fibaro:setGlobal('time_past', tostring(os.time())) |
Sofern alles ordnungsgemäß eingerichtet ist, wird die Szene in regelmäßigen Abständen durch den Windmesser getriggert und die Windstärke wird dann durch das Skript berechnet. Beachtet hierbei bitte, dass es sich um ungefähre Angaben und die Durchschnitts-Windgeschwindigkeit handelt. Bedeutet - im Gegensatz zu dem vom Z-Weather an das HomeCenter (ab Version 4.081) übertragene Wert der Maximalen Windgeschwindigkeit seit dem letzten Wakeup, berechnet dieses Skript die Durchschnitts- Windgeschwindigkeit seit dem letzten Wakeup.
Funktionsweise des Z-Weather
Mit dem oben angesprochenen Pulsecount zählt der Windmesser die Umdrehungen. Bei jeder achten Umdrehung wird der Wert um 1 erhöht und bei dem nächsten WakeUp werden die Daten von dem Windmesser an das HomeCenter übertragen. Anhand dieses Pulsecount und der zurückgelegten Strecke der Dreheinheit kann dann die Windstärke berechnet werden. Allerdings gibt es hier eine Besonderheit zu beachten. Da der Z-Weather nicht mit einer Batterie oder einem Akku ausgestattet ist, sondern ein interner Transistor über das Solarpanels aufgeladen wird, können die Daten nur in einem bestimmten Intervall übermittelt werden. Um die Kapazität des Transistors zu schonen und Nachts ja bekanntermaßen keine Sonne scheint, kann dieses Intervall (WakeUp-Intervall, genauere Infos über dieses Thema könnt Ihr in diesem Artikel erhalten) dynamisch variieren. Dadurch musste das Skript auch so angepasst werden, dass immer der Durchschnitt in einer Stunde erhalten wird. Der Pulsecount wird dann durch die Szene wieder zurückgesetzt (resettet), so dass immer der aktuelle Wert enthalten ist.
Steuerung von Modulen über Assoziationen
Der Z-Weather ist darauf ausgelegt, immer eine bestimmte Restspannung im Transistor / Akku vorzuhalten. Dadurch wird sichergestellt, dass dieser im Falle eines Windalarms, verknüpfte Geräte steuern kann. So können zum Beispiel bei einem Sturm oder bei böhigem Wind, Markisen ein- und Rollos hochfahren werden. Dafür müssen die Geräte mit dem Z-Weather assoziiert werden. Das bedeutet, die Geräte sind direkt miteinander verknüpft. Der Z-Weather sendet dann den Befehl direkt an das Gerät (Jalousie, Markise ect.). Eine direkte Verknüpfung funktioniert selbst dann, wenn die Zentrale - in diesem Beispiel das Fibaro HC2, ausfällt.
Dazu müssen dies Module (zum Beispiel RollerShutter2 ect) in der Assoziationsgruppe 2 mit dem Z-Weather verknüpft werden. Rufe dafür die erweiterten Einstellungen des Z-Weathers in der Weboberfläche des HC2 auf und gehe dort unter den Punkt "Setting Association". Trage dort die Module ein, welche im Falle eines Sturms reagieren sollen. Bis zu 5 Module können direkt assoziiert werden. Im HomeCenter 2 sieht das dann folgendermaßen aus:
In dem oben genannten Beispiel würde der Rollladen ab einer bestimmten Windgeschwindigkeit heruntergefahren, um die Fenster zu schützen. Ein anderes Beispiel wäre die Markise einzufahren, wenn der Wind zu stark wird. Hierfür kann im Z-Weather-Modul im Parameter 1 die Windgeschwindigkeit gesetzt werden, ab welcher der Z-Weather aufwachen - und den Befehl senden soll. Standardmäßig ist diese Funktion ab 6 m/s (22 km/h) akitv, was unserer Einschätzung nach einen zu geringen Wert darstellt. Hier könnten Windstärken ab 7 eingestellt werden. Dies wären circa 17 m/s, was circa 50 km/h entspricht. Hierbei einfach den entsprechenden Wert im Parameter 1 hinterlegen. Hier kann ein Wert von 1-30 m/s eingestellt werden. Danach speichern und zum Übertragen den Z-Weather aufwecken (Knopf an der Unterseite 1x drücken). Hier kann ein Wert von 1-30 m/s eingestellt werden:
Ein Icon für das Modul stellen wir euch diesmal nicht zur Verfügung, da theoretisch der Pulsecount in der Oberfläche des HC2 immer 0 anzeigt und Ihr diesen deshalb ohne Probleme in den Hidden-Bereich verschieben könnt.
In dem nächsten Artikel zeigen wir euch, wie Ihr diese Werte in die Wetter-Anzeige des Fibaro HomeCenter 2 einfließen lassen könnt. Ihr müsst dann keinen externen Anbieter für die Wetteranzeige (wird noch für die Bilddarstellung benötigt) nutzen. Viel Spass beim Installieren :)
Hallo,
wie kann man denn ohne die Verdrahtung der Hardware und und der 10 Symbole (0% - 100%) die umzukehren erreichen, dass die Markise bei Wind nach oben fährt (einfährt) und nicht ausfährt?
Ich habe die Markise in der Assoziationsgruppe 2 eingetragen (und die Markise fährt bei Wind aus).
Die Markise ist an einem FGRM222 angeschlossen.
Hi,
glaube da geht kein Weg dran vorbei :( Hier wurde leider der Fokus auf Rollläden gesetzt, weshalb diese dann zugehen.
Gruß
Hi,
kurze Anmerkung:
z-weather funktioniert ab Version 4.081 mit dem Producer POPP, sollte z-weather jedoch als Producer zwave.me beinhalten meldet das System aktuell noch ein fehlendes Template!
Aktuell läuft ein Test für den Producer zwave.me, das entsprechende Template soll in das kommende Fibaro release.
mario
Danke für die Info :)
Hallo, kann man eigentlich den Z-Weather auch mit einem virtuellen Modul assoziieren? Dann könnte man ja das virtuelle Modul als Trigger für eine Markisensteuerung nehmen.
VG Jens
Nein...
Assoziationen funktionieren nur zwischen Z-Wave-Modulen, da diese auch ohne Gateway funktionieren müssen...
Gruß
Hallo,
kann mir jemand sagen wie ich diesen Wert („wind_zweather“) in einem VD darstellen kann?
Ich habe schon bissl was probiert aber leider ohne Erfolg :(
Vielen Dank im Voraus...
Hi,
klar... Dafür benötigst du ein Label im VD. Dort kannst du dann mit folgendem Code das Label refreshen:
local thisdevice = fibaro:getSelfId()
fibaro:call(thisdevice, "setProperty", "ui.Label1.value", fibaro:getGlobal('wind_zweather')
Dazu kommt auch noch ein Artikel :)
Gruß
Hi,
vielen Dank für die Rückmeldung...ich hab auch alles so eingestellt...nur leider bekomm ich nichts angezeigt.
Der Debug ist leer und die fehlende Klammer am Ende hab ich ergänzt...
Hast du noch ne Idee ?
Danke im Voraus!
Weck den Sensor mal manuell auf. Dann sollte auch ein Debug erscheinen. Oder wo kommt kein Debug?
Den Sensor hab ich aufgeweckt...und ich mein den Debug im VD selbst...soll ich dir mal in Foto schicken?
Ich hab es raus...
local thisdevice = fibaro:getSelfId()
fibaro:call(thisdevice, "setProperty", "ui.Label2.value", fibaro:getGlobalValue("wind_zweather"))
diese kleine value hat gefehlt :)
Ok, super :)
[…] Das bedeutet auch, falls Sie noch nicht auf die Home Center Version 4.081 oder höher geupdatet haben, können Sie trozdem den Z-Weather in Ihr Netzwerk inkludieren und Geräte über die Assoziationsgruppe 2 bei böhigem Wind oder gar Sturm schützen. Einizg die Windgeschwindigkeit wird nicht als Wert auf der Weboberfläche des Home Center angezeigt – aber auch hierfür gibt es eine Lösung für Nutzer des Home Center 2 via LUA, siehe hier. […]
Hallo,
ich bekomme Windgeschwindigkeiten zw. 301-640km/h!!! angezeigt.
Woran kann es liegen?
...und höher z.B. 1402km/h je nach Drehgeschwindigkeit.
Hi,
so wird der Wert angezeigt? Im Debug oder in der Variablen? Poste doch mal bitte deine Szene.
Gruß
...im Debug
Count: 43
Gesch: 1621
Variablen:
time-past: 1465
wind_zweather: 1621
--[[
%% properties
201 value
%% globals
--]]
local z_weather = 201
-- AB HIER NICHTS MEHR ÄNDERN
if (tonumber(fibaro:getGlobalValue('time_past')) == nil) then
fibaro:debug('Variable time_past nicht eingerichtet. Szene wird abgebrochen')
fibaro:abort()
end
if (tonumber(fibaro:getGlobalValue('wind_zweather')) == nil) then
fibaro:debug('Variable wind_zweather nicht eingerichtet. Szene wird abgebrochen')
fibaro:abort()
end
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.')
fibaro:setGlobal('time_past', os.time()-900)
end
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
end
local speed = math.floor((fibaro:getValue(z_weather, "value")*7.53984)*multi)
fibaro:setGlobal('wind_zweather', speed)
else
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:setGlobal('wind_zweather', speed/100)
end
fibaro:call(z_weather, "reset")
fibaro:debug('Berechnete Windgeschwindigkeit: ' ..fibaro:getGlobal('wind_zweather').. ' km/h')
fibaro:debug('Erzeugter Strom: ' ..fibaro:getValue(z_weather, "energy").. ' kw/h')
fibaro:debug('Pulsecount resettet.')
end
fibaro:setGlobal('time_past', tostring(os.time()))
...kann das Problem an der Variablen "time_past" liegen? Der Wert hier ist immer 1465
Nein, das ist eine Zeitangabe. Daran kann es nicht liegen. Ist die 201 auch die ID von dem Pulsecount?
ja, ID201 ist vom Pulsecount.
Warum wird in der Zeile 42 "speed" durch 100 geteilt und in der Zeile 38 nicht?
Sind das vielleicht nur zwei Kommastellen, die nicht stimmen?
...ist das OK wenn der Pulsecount manchmal kWh und manchmal pulse anzeigt?
Und die kleine blaue Anzeige ist immer 0,00kWh (seit dem die Szene läuft)
...meine Szene wird alle 4 min gestartet, bei Dir im Debug steht "19 min"
Von was hängt diese Zeit ab?
Shit, du hast Recht. Hab was übersehen. Hab ich grad geändert. Sorry für die Umstände.
Das ist das Standart-Aufwachintervall von dem Z-Weather.
Gruß
Danke!
Gemeinsam sind wir stark :))
Habe auch das Problem das es eigenartige Windgeschwindigkeiten anzeigt.
[DEBUG] 07:35:43: Z-Weather-Szene gestartet - Sun Sep 25 07:35:43 2016
[DEBUG] 07:35:43: Letzter Lauf der Szene vor 1 min.
[DEBUG] 07:35:43: Pulsecount Z-Weather: 81257
[DEBUG] 07:35:43: Berechnete Windgeschwindigkeit: 42886.53 km/h
Hi,
Welche Firmwareversion hast du im Einsatz? Sofern der Z-Weather offiziell unterstütz wird, funktioniert das Skript nicht mehr.
Gruß
Hallo,
wie kann man erreichen, dass die Markise bei Wind nach oben fährt (einfährt) und nicht ausfährt?
Ich habe die Markise in der Assoziationsgruppe 2 eingetragen (und die Markise fährt bei Wind aus).
Die Markise ist an einem Fibaro Rollo Shotter 2 angeschlossen.
Variante 1: Die Kabel am Shutter tauschen. Dann ist es aber auch in der Bedienoberfläche immer falsch.
Variante 2: Eine Szene dafür erstellen und es nicht über die Assoziation machen
Hallo Zusammen,
der Artikel ist schon etwas älter, aber vielleicht kann mir die Fragen trotzdem jemand beantworten:
1. Ich habe mehr als 5 RollerShutter / Jalousien und würde die Windsteuerung dafür gern über ein LUA Szene bauen. Ist es möglich über den "Windalarm" eine Szene zu starten? Oder gehen wirklich nur Geräte Assoziationen?
2. Gibt es eine Lösung, wenn ich meine Markise bei niedriger Windstärke als bei den Jalousien schließen lassen möchte?