YESLY Smart Home

Z-Weather im Fibaro HomeCenter 2 nutzen

Geschrieben von boomx
siio-App

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 Popp Z-Weather hat Chris bereits vor einigen Monaten ausführlich getestet. Leider hat der Windmesser damals noch nicht mit dem Fibaro HomeCenter 2 funktioniert, weshalb dieser an einem RaZberry-Gateway getestet wurde. Den Testbericht findet Ihr hier. Käuflich zu erwerben gibt es diesen unter anderem bei 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:

Modul zur Überwachung der Windgeschwindigkeit

Modul zur Überwachung der Windgeschwindigkeit

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.

Fehlermeldung bei nicht erstellter Variable wind_zweather

Fehlermeldung bei nicht erstellter Variable wind_zweather


Hier nun das oben erwähnte Skript für die Integration des Z-Weather in das HomeCenter 2:

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.

Debug im HomeCenter 2

Debug im HomeCenter 2

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.

Z-Weather vs. netatmo Windmesser

Z-Weather vs. netatmo Windmesser


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:

Z-Weather assoziiert mit einem Rollladen

Z-Weather assoziiert mit einem Rollladen

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:

parameter_zweather

Einstellung der Parameter (Zum Test wurde hier 2 m/s eingestellt)

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 :)

Diesen Blogpost hat geschrieben ...

boomx

29 Kommentare

  • 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,

    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

  • 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

  • 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!

  • Ich hab es raus…

    local thisdevice = fibaro:getSelfId()
    fibaro:call(thisdevice, „setProperty“, „ui.Label2.value“, fibaro:getGlobalValue(„wind_zweather“))

    diese kleine value hat gefehlt :)

  • […] 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. […]

  • …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()))

  • 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)

  • 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

  • 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.

  • 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?

Gib deinen Senf dazu!