{"id":762,"date":"2016-08-27T22:51:33","date_gmt":"2016-08-27T21:51:33","guid":{"rendered":"http:\/\/www.nilsschneider.de\/wp\/?p=762"},"modified":"2017-02-17T13:04:58","modified_gmt":"2017-02-17T12:04:58","slug":"openhab-z-wave-und-fibaro-motion-sensor-jalousiesteuerung","status":"publish","type":"post","link":"https:\/\/www.nilsschneider.de\/wp\/2016\/08\/27\/openhab-z-wave-und-fibaro-motion-sensor-jalousiesteuerung\/","title":{"rendered":"OpenHAB, Z-Wave und Fibaro Motion Sensor + Jalousiesteuerung"},"content":{"rendered":"<p style=\"text-align: justify;\">Es war so weit,\u00a0die ersten beiden Fibaro-Ger\u00e4te erhielten Einzug:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Eine Fibaro Jalousie-Steuerung\u00a0<a href=\"http:\/\/www.fibaro.com\/manuals\/de\/FGRM-222\/FGRM-222-DE-A-v1.00.pdf\">FGRM-222<\/a><\/li>\n<li>Einen Fibaro\u00a0<a href=\"http:\/\/www.fibaro.com\/de\/the-fibaro-system\/motion-sensor\">Motion Sensor<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Nat\u00fcrlich brauchte der Server noch einen USB-Stick um auch Z-Wave f\u00e4hig zu werden, hier habe ich mich f\u00fcr den <a href=\"https:\/\/www.amazon.de\/gp\/product\/B00QJEY6OC\/\">Z-Wave ZME_UZB1<\/a>\u00a0entschieden, da dieser nach Recherchen auf jeden Fall auch mit OpenHAB funktionsf\u00e4hig sein sollte.<\/p>\n<p style=\"text-align: justify;\">Die Einrichtung des\u00a0USB-Sticks verlief problemlos. Treiber installiert, in der OpenHAB-Konfiguration den COM-Port eingetragen, neu gestartet und das wars.<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<p style=\"text-align: justify;\">Zun\u00e4chst nahm ich den Multisensor in Betrieb. \u00dcber HABmin den Inklude-Modus aktiviert, Sensor inkludiert und dann die entsprechenden Items angelegt und erstmal einfach ausgegeben. Temperatur, Bewegung und Helligkeit waren tolle Parameter, um sp\u00e4ter so einiges damit zu machen.<\/p>\n<p style=\"text-align: justify;\">OpenHAB Item-Konfiguration:<\/p>\n<pre class=\"tab-convert:true lang:default decode:true \">Number\t\t\tFibEye1_Lux\t\t\t\t\"Helligkeit WZ [%.2f Lux]\"\t\t&lt;sun&gt;\t\t\t(gWZ)\t\t\t\t{ zwave=\"4:command=SENSOR_MULTILEVEL,sensor_type=3\" }\r\nNumber\t\t\tFibEye1_Battery\t\t\t\"Batterie [%d %%]\"\t\t\t\t&lt;energy&gt;\t\t(gBattery)\t\t\t{ zwave=\"4:command=BATTERY\" }\r\nNumber\t\t\tFibEye1_Temp\t\t\t\"Temp Eye WZ [%.2f \u00b0C]\"\t\t\t&lt;temperature&gt;\t(gTemperatureEG)\t{ zwave=\"4:command=SENSOR_MULTILEVEL,sensor_type=1\" }\r\nContact\t\t\tFibEye1_Motion\t\t\t\"Bewegung\"\t\t\t\t\t\t&lt;shield&gt;\t    (gMotion)  \t\t\t{ zwave=\"4:command=SENSOR_BINARY\" }\r\nContact\t\t\tFibEye1_Tamper\t\t\t\"Sabotage\"\t\t\t\t\t\t&lt;shield&gt;\t\t(gAlarmTamper)\t\t{ zwave=\"4:command=SENSOR_ALARM\" }\r\n<\/pre>\n<p style=\"text-align: justify;\">Platziert habe ich den Sensor dann im Wohnzimmer, dort wo auch die elektrische Jalousie noch mit Hilfe des\u00a0Fibaro Roller Shutter 2 &#8222;smart gemacht&#8220; wurde.<\/p>\n<p style=\"text-align: justify;\">Die OpenHAB Item-Konfiguration f\u00fcr die Jalousie-Steuerung:<\/p>\n<pre class=\"lang:default decode:true\">Rollershutter\tRolladeWZ\t\t\t\t\"Rollade Wohnzimmer [%.0f %%]\"\t\t\t&lt;terrace&gt;\t(gBlind)\t{ zwave=\"8:command=SWITCH_MULTILEVEL\" }\r\nNumber\t\t\tShutterWatts\t\t\t\"Rollade Momentanverbrauch [%.1f W]\"\t&lt;energy&gt; \t(gWatts)\t{ zwave=\"8:command=SENSOR_MULTILEVEL\"}\r\nNumber\t\t\tShutterTotalEnergy\t\t\"Rollade Gesamtverbrauch [%.2f KWh]\"\t&lt;energy&gt; \t(gEnergy)\t{ zwave=\"8:command=METER\" }\r\n<\/pre>\n<p style=\"text-align: justify;\">Da der Roller Shutter 2 auch den Gesamt- und Momentanverbrauch \u00fcbertragen kann, habe ich hierf\u00fcr nat\u00fcrlich auch direkt die entsprechenden Items angelegt.<\/p>\n<p style=\"text-align: justify;\">Zum ersten Mal die Rolladen \u00fcber das Handy zu steuern war\u00a0unglaublich. Doch mit Regeln\u00a0konnte der Spa\u00df nun so richtig los gehen.<\/p>\n<p style=\"text-align: justify;\">Zun\u00e4chst mal stand die Sicherheit auf dem Plan. Nachts sollte der Rolladen komplett schlie\u00dfen und morgens wieder \u00f6ffnen. Die Regel erschien zun\u00e4chst recht einfach, hatte aber das Problem, dass man, wenn man noch wach war und in den Garten wollte, zun\u00e4chst die Rolladen wieder \u00f6ffnen musste bevor man in den Garten gelangen konnte.<\/p>\n<p style=\"text-align: justify;\">Die Idee war also, dass der Rolladen erst schlie\u00dft, wenn keiner mehr raus m\u00f6chte. Hier trat dann\u00a0der Fibaro Multisensor in Aktion. Da dieser auch \u00fcber einen Bewegungsmelder\u00a0verf\u00fcgt.<\/p>\n<p style=\"text-align: justify;\">Die Regel ist nun etwas komplexer und funktioniert so:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Zwischen 22h und 6h wird der Rolladen komplett heruntergelassen, wenn 90 Minuten keine Bewegung mehr im Wohnzimmer stattgefunden hat<\/li>\n<li style=\"text-align: justify;\">Zwischen 6h und 9h wird bei Bewegung der Rolladen auf 75% ge\u00f6ffnet<\/li>\n<\/ul>\n<p>Die Regel in OpenHAB erfolgt wie \u00fcblich \u00fcber ein Script, es sieht folgenderma\u00dfen aus:<\/p>\n<pre class=\"lang:default decode:true\">import org.openhab.core.library.types.*\r\nimport org.openhab.model.script.actions.Timer\r\nimport org.joda.time.*\r\n\r\nvar Timer closeAtNightTimer\r\n\r\nvar int blindHalfOpened = 75\r\nvar int blindOpen = 99\r\nvar int blindClosed = 0\r\n\r\n\/\/ Zwischen 22 Uhr und 6 Uhr Rolladen ganz runterfahren wenn 90 Minuten keine Bewegung im Wohnzimmer war\r\n\/\/ Zwischen 6 und 12 Uhr bei Bewegung im Wohnzimmer Rolladen auf 75% fahren\r\nrule \"Rolladen runter in der Nacht\"\r\nwhen\r\n\tSystem started or\r\n\tItem FibEye1_Motion changed\r\nthen\r\n\tif(FibEye1_Motion.state == CLOSED)\r\n\t{\r\n\t\tvar int hour = now.getHourOfDay()\r\n\r\n\t\tif( hour &lt; 6 || hour &gt;= 22 )\r\n\t\t{\r\n\t\t\tcloseAtNightTimer = createTimer(now.plusMinutes(90))\r\n\t\t\t[|\r\n\t\t\t\tsendTelegram(\"bot\", \"Rolladen runter, 90 Minuten keine Bewegung\")\r\n\t\t\t\tsendCommand(RolladeWZ, blindClosed)\r\n\t\t\t]\t\t\t\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\tif(closeAtNightTimer != null)\r\n\t\t{\r\n\t\t\tcloseAtNightTimer.cancel()\r\n\t\t\tcloseAtNightTimer = null;\r\n\t\t}\r\n\r\n\t\tif( gPresence.state == ON &amp;&amp; movementDetected == 0 )\r\n\t\t{\r\n\t\t\tvar int hour = now.getHourOfDay()\r\n\t\t\t\r\n\t\t\tif( hour &gt;= 6 &amp;&amp; hour &lt;= 12 &amp;&amp; RolladeWZ.state &lt;= 1 )\r\n\t\t\t{\r\n\t\t\t\tsendTelegram(\"bot\", \"Rolladen auf 75%, Zwischen 6h und 12h und Bewegung erkannt\")\r\n\t\t\t\tsendCommand(RolladeWZ, blindHalfOpened)\r\n\t\t\t\tmovementDetected = 1\r\n\t\t\t}\t\r\n\t\t}\r\n\t}\r\nend\r\n\r\n\r\nrule \"ResetMovementDetected\"\r\nwhen\r\n\tTime cron \"0 0 5 * * ?\"\r\nthen\r\n\tmovementDetected = 0\r\nend\r\n<\/pre>\n<h1><\/h1>\n<h1>Der Fehler mit dem Sonnenschutz<\/h1>\n<p style=\"text-align: justify;\">Wenn man manche Regeln nicht sauber durchdenkt, k\u00f6nnen auch mal richtig lustige Dinge passieren. Ich wollte eine Sonnenschutzfunktion programmieren. Dank des Motion Sensors von Fibaro, der ja auch die Helligkeit misst, sollte das relativ einfach sein. Die Regel sollte in etwa so aussehen:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Wenn Helligkeitssensor \u00fcber XXX Lux, dann senke Rolladen auf 50% ab<\/li>\n<li style=\"text-align: justify;\">Wenn Helligkeitssensor unter YYY Lux, dann fahre Rolladen wieder hoch<\/li>\n<\/ul>\n<p>Als OpenHAB-Regel war dies auch schnell implementiert und sah dann folgenderma\u00dfen aus:<\/p>\n<pre class=\"lang:default decode:true\">rule \"Rolladen Sonnenschutz\"\r\nwhen\r\n\tSystem started or\r\n\tItem FibEye1_Lux changed\r\nthen\r\n\tif( FibEye1_Lux.state &gt; 2000 &amp;&amp; RolladeWZ.state &gt; blindSun)\r\n\t{\r\n\t\tsendCommand(RolladeWZ, blindSun)\r\n\t\tsendTelegram(\"bot\", \"Rolladen Sonnenschutz\")\r\n\t}\r\n\telse if( FibEye1_Lux.state &lt; 500 &amp;&amp; RolladeWZ.state == blindSun)\r\n\t{\r\n\t\tsendCommand(RolladeWZ, blindOpen)\r\n\t\tsendTelegram(\"bot\", \"Rolladen Sonnenschutz ENDE\")\r\n\t}\r\nend<\/pre>\n<p style=\"text-align: justify;\"><em>Was war hier das Problem? <\/em><\/p>\n<p style=\"text-align: justify;\">Die Regel f\u00fchrte zu einer Endlosschleife, so dass dauerhaft der Rolladen runter- und wieder hochgefahren wurde.<br \/>\nDenn aufgrund der Tatsache, dass der geschlossene Rolladen das Wohnzimmer verdunkelte, wurden die 500 Lux unterschritten, so dass der Rolladen wieder hochgefahren wurde. Dann war es nat\u00fcrlich wieder hell, die 2000 Lux wurden \u00fcberschritten und der Rolladen wurde wieder herabgelassen usw.<\/p>\n<p style=\"text-align: justify;\">Einige Monate sp\u00e4ter gab es dann\u00a0einen zweiten Motion Sensor im Garten, der inzwischen anstelle des Motion Sensors im Wohnzimmer\u00a0f\u00fcr die Helligkeitsmessung benutzt wird,\u00a0damit tritt\u00a0das Problem dann nicht mehr auf.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es war so weit,\u00a0die ersten beiden Fibaro-Ger\u00e4te erhielten Einzug: Eine Fibaro Jalousie-Steuerung\u00a0FGRM-222 Einen Fibaro\u00a0Motion Sensor Nat\u00fcrlich brauchte der Server noch einen USB-Stick um auch Z-Wave f\u00e4hig zu werden, hier habe ich mich f\u00fcr den Z-Wave ZME_UZB1\u00a0entschieden, da dieser nach Recherchen auf jeden Fall auch mit OpenHAB funktionsf\u00e4hig sein sollte. Die Einrichtung des\u00a0USB-Sticks verlief problemlos. Treiber &hellip; <a href=\"https:\/\/www.nilsschneider.de\/wp\/2016\/08\/27\/openhab-z-wave-und-fibaro-motion-sensor-jalousiesteuerung\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eOpenHAB, Z-Wave und Fibaro Motion Sensor + Jalousiesteuerung\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[153],"tags":[],"_links":{"self":[{"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/posts\/762"}],"collection":[{"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/comments?post=762"}],"version-history":[{"count":6,"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/posts\/762\/revisions"}],"predecessor-version":[{"id":792,"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/posts\/762\/revisions\/792"}],"wp:attachment":[{"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/media?parent=762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/categories?post=762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nilsschneider.de\/wp\/wp-json\/wp\/v2\/tags?post=762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}