Hallo, ich möchte bei mir die Roller Shutter 2 installieren. Jetzt würde ich gerne wissen ob es möglich ist per Taster alle Rolläden im ganzen Haus und per weiterer Taster pro Stockwerk zu steuern?
Des weitere würde mich interessieren ob schon eine LUA Szene für die Rollershutter existiert mit der man arbeiten kann?
Hi,
ja, gibt hier diverse Scripte.
ja, du kannst mit einem Taster über Szenen-Steuerung Verschiedene Aktionen durchführen lassen.
Viele Grüße Hoggle
Gibt es hier einen LInk wo ich diese Finde bzw. ein Anleitung.
Je nach dem, was genau du suchst über die Such-Funktion.
In der Datenbank habe ich schon nach LUA Szenen für Rolladensteuerung gesucht, leider ohne erfolg.
Vielleicht kannst du mir hier helfen.
DANKE
siehe hier:
Hallo, ich habe mir jetzt den Z-Weather von Popp zugelegt und dachte ich könnte den Helligkeitssensor bentutzen um mit den Luxwerten die Rolläden und Beschattung zu steuern. Jetzt musste ich feststellen das die Luxwerte ich % angegeben werden. Das ist natürlich nicht Zielführend da 100% bei normalen Tageslicht erreicht werden.
Dann gibt es keine Steigerung mehr.
Kann mir jemand sagen ob man diesen Wert umstellen kann das der Z-Weather LUX-Werte übermittelt.
Oder hat jemand eine andere Lösung von Sensoren die die Außentemperatur Wind Lux und Feuchtigkeit übermitteln?
Danke für eure Hilfe
Gruß Micha
Hi,
Ja, die mich brauchbaren Lux-Werte vom Z-Weather haben mich auch geärgert. Andere Einstellungen habe ich nicht gefunden.
Außentemperatur Messe ich per Netatmo. Wind und Lux nutze ich für Rollosteuerung nicht. Nur Temperatur und Sonnenstand.
Viele Grüße Hoggle
Wie steuerst du dann die Rolladen?
Nur mit denn Sonnenaufgangs und Untergangs Daten?
Auch.
Im Sommer für die Beschattung über Temp und Sonnenstand für Ost, Süd und West.
Für den Norden genügt das.
Hier hat Sonnenschein und Wärme einen direkten Zusammenhang…
Viele Grüße Hoggle
Hallo Hoggle,
ich würde es auch mal so versuchen, hast du hier ein LUA Script das ich umbauen könnte?
Gruß Micha
jaja, aber das ist ziemlich individuell…
--[[
%% properties
144 value
%% events
%% globals
%% weather
Temperature
Sonnenstand
rain_hour
--]]
-- 144 ist die ID der Netatmo-Außetemperatur, siehe local TempID
-- "Sonnenstand" ist die Globale Variable aus dem separaten Sonnenstands-VD
-- Es müssen manuell folgene Globale Variablen (GV) angeelgt werden:
-- Sonnenstand, SonneOstRunter, SonneSuedHoch, SonneSuedRunter, SonneWestRunter, SonneWestHoch...
-- Die GV "Anwesend" steuert bei mir Anwesenheit bzw. die Abwesenheit
local sourceTrigger = fibaro:getSourceTrigger();
local version = '5.0'; --Weg von Netatmo zu HC-Temperatur und in If auf Local Temperatur geändert
if fibaro:countScenes() > 1 then
fibaro:debug("stop scene");
fibaro:abort();
end
--der Stand der Sonne kommt aus einer Globalen Variablen,
--die durch das französiche VD gespeist wird
local Sonnenstand = tonumber(fibaro:getGlobalValue("Sonnenstand"))
local Sonnenhoehe = tonumber(fibaro:getGlobalValue("VDSoleilHauteur"))
-- Angabe des Sonnenwinkels in Grad für Himmelsrichtung
local SonneOstWeg = 176
local SonneSuedDa = 118
local SonneSuedWeg = 277
local SonneWestDa = 210
local SonneWestWeg = 288
--Gibt Wert an VD Rollosteuerung
fibaro:call(316, "setProperty", "ui.Label2.value", "S: "..SonneSuedDa.."° W: "..SonneWestDa.."° ")
fibaro:call(316, "setProperty", "ui.Label3.value", Sonnenstand.."°")
--Temperaur die mindestnes erfüllt sein muss
local GradNord = 20
local GradSued = 20
local RolloWert = 20 --Wert auf den die Rollos geöffnet bleiben sollen
local TempID = 144 --Netatmo-PlugIn
--local Temperatur = tonumber(fibaro:getValue(TempID, "value"))
local Temperatur = tonumber(api.get('/weather')['Temperature']) --weil Netatmo nicht läuft
--Definitin der Rollo-IDs je Himmelsrichtung
local RollosOst = {153, 155, 173, 171};
local RollosSued = {110, 147, 169}; -
local RollosWest = {149, 163}; --
local KuechenTuer = 151
local LSMRollo = 171 -- Wenn dieser Rollo unten ist, soll nicht auf Sonnenschutz gefahren werden
local morning = {08, 12}; -- HH:MM am morgens in der früh
local night = {23, 00}; -- HH:MM für Lichter aus in der Nacht
local Bettzeit = {19, 15}; --Vor der Bettzeit vom Zwerg
local vorher = 20 -- 20 Minuten vor Sonnenuntergang angehen
local nachher = 5 -- 5 Minuten Verzögerung nach Sonnenaufgang zum ausgehen
local Sunset = fibaro:getValue(1, "sunsetHour")
local Sunrise = fibaro:getValue(1, "sunriseHour")
local morning = os.date("%H:%M", -3600+ morning[1]*60*60 + morning[2]*60);
local night = os.date("%H:%M", -3600+ night[1]*60*60 + night[2]*60);
local Bettzeit = os.date("%H:%M", -3600+ Bettzeit[1]*60*60 + Bettzeit[2]*60);
local ostime = os.date("%H:%M", os.time());
local currentTime = os.date("%H:%M");
local currentDate = os.date("*t");
local Regen = tonumber(fibaro:getGlobalValue("rain_hour"))
local AbendRunter = tonumber(fibaro:getGlobalValue("RolloAbendRunter")) --damit Rollos hierdurch Abends nicht wieder hochfahren
local Date = os.date("%d.%m.%Y", os.time())
--if Regen == 0
--then fibaro:debug("Regen Nein")
--else fibaro:debug("Regen Ja: "..Regen)
--end
--fibaro:debug("Sunset-Zeit: "..Sunset)
--#########################################################################
--Damit je Seite das Script nur ein einziges mal läuft; manuelles und dauerhaftes
--hochfahren der Rollos ist somit möglich.
if (currentTime >= "05:35" and currentTime < "05:40") then
fibaro:setGlobal("SonneSuedRunter", "0")
fibaro:setGlobal("SonneSuedHoch", "0")
fibaro:setGlobal("SonneOstRunter", "0")
fibaro:setGlobal("SonneOstHoch", "0")
fibaro:setGlobal("SonneWestRunter", "0")
fibaro:setGlobal("SonneWestHoch", "0")
fibaro:setGlobal("RolloAbendRunter", "0")
fibaro:debug("Check für einmaligen Durchlauf zurückgesetzt - "..Date)
--fibaro:call(223, "sendPush", "RunSonne wurde zurückgesetzt", "RunSunReset");
end
--#########################################################
--Ost
--geht runter ab bestimmter Zeit, bei bestimmter Wärme und bis bestimmten
--Sonnenstand sowie wenn es gerade nicht regnet
if ((currentTime >= morning) and
(Sonnenstand < SonneOstWeg) and
(tonumber(Temperatur) >= GradNord) and
(tonumber(fibaro:getGlobalValue("SonneOstRunter")) == tonumber("0")) and
(tonumber(fibaro:getValue(LSMRollo, "value")) >= 40) and
Regen == 0 )
then
fibaro:debug("Sonne im Osten und Rollo geht runter")
for i = 1,#RollosOst do
fibaro:call(RollosOst[i],"setValue", RolloWert)
--fibaro:debug("Aktuelle Dev ID: "..RollosOst[i])
end
fibaro:setGlobal("SonneOstRunter", "1")
fibaro:call(342, "sendPush", "Rollos wegen Sonne im OSTEN runtergefahren")
end
---- wieder Hoch weil Ost-Sonne weg ODER Regen, wenn Sonne im Osten steht
if ( (Sonnenstand >= SonneOstWeg and Sonnenstand <= SonneOstWeg+6 and
tonumber(fibaro:getGlobalValue("SonneOstHoch")) == tonumber("0") )
or
((currentTime >= morning) and
(Sonnenstand < SonneOstWeg) and
tonumber(fibaro:getGlobalValue("SonneOstRunter")) == tonumber("1") and
Regen > 0 ) ) then
if Regen > 0 then fibaro:debug("Rollo-Ost wegen Regen: "..Regen.." l) hochgefahren. ")
else fibaro:debug("Sonne im Osten weg und Rollos gehen hoch") end
for i = 1,#RollosOst do
fibaro:call(RollosOst[i], "open")
--fibaro:debug("Aktuelle Dev ID: "..RollosOst[i])
end
fibaro:setGlobal("SonneOstHoch", "1")
fibaro:setGlobal("SonneOstRunter", "0")
end
--############################################################################
--Süd
--nur bei bestimmer Wärme, kein Regen und zwischen zwei Sonnenständen gehen Rollos runter
if (Sonnenstand >= SonneSuedDa and Sonnenstand < SonneSuedWeg) and
(tonumber(Temperatur) >= GradSued) and
(tonumber(fibaro:getGlobalValue("SonneSuedRunter")) == tonumber("0") and
Sonnenhoehe > 10 and
Regen == 0)
then
fibaro:debug("Sonne im Süden und Rollo geht runter")
for i = 1,#RollosSued do
fibaro:call(RollosSued[i],"setValue", RolloWert)
--fibaro:debug("Aktuelle Dev ID: "..RollosSued[i])
end
fibaro:call(167, "close") --Feli Garten separat damit es nach Bettzeit nihct durch Sonnen-Script geöffnet wird
fibaro:call(169, "close") --LetiGarten komplet zu (ID oben nicht rausgenommen, damit Öffnen-Szene nicht geändert werden muss)
--Rollo Küchentür geht Runter bei Abwesenheit
if (tonumber(fibaro:getValue(306, "value")) == 0
or fibaro:getGlobalValue("Anwesend") == "Nein" ) then
fibaro:debug("Küchentür ist zu und Rollo geht gleich runter")
--Wenn Terrassentür innerhalb von 120 Sekunden geöffnet und
--wieder geschlossen wird, soll Rollo oben bleiben
local counter = 0
while counter <= 120 do
fibaro:sleep(1000)
counter = counter + 1
if counter == 120 then
fibaro:call(KuechenTuer, "setValue", RolloWert)
fibaro:debug("Rollo-Küchentür ist runter gefahren")
end
if tonumber(fibaro:getValue(306, "value")) == 1 then
fibaro:debug("Tür wurde nach "..counter.." Sekunden geöffnet und Küchentür-Rollo bleibt oben")
break --beendet die while-Schleife
end
end --der while-do-Schleife
else fibaro:debug("Küchentür ist OFFEN und Rollo bleibt oben")
end
fibaro:setGlobal("SonneSuedRunter", "1")
fibaro:call(342, "sendPush", "Rollos wegen Sonne im SÜDEN runtergefahren")
end
-------wieder Hoch weil Sonne weg ODER Regen, wenn Sonne im Süden
-- das "+2" in "SonneSuedWeg+2" soll einen "Sprung" im Sonnenstand abfangen, damit die Bedingung erfüllt ist
--geht wieder hoch wenn:
--1. Sonne im Süden weg oder
--2. Sonne im Süden und geringe Sonnenhöhe (in den Sommerrandmonaten relevant) oder
--3. Sonne im Süden und bei Regen
if (( (Sonnenstand >= SonneSuedWeg and Sonnenstand <= SonneSuedWeg+3) and
tonumber(fibaro:getGlobalValue("SonneSuedHoch")) == tonumber("0") )
or
((Sonnenstand >= SonneSuedDa and Sonnenstand < SonneSuedWeg) and
tonumber(fibaro:getGlobalValue("SonneSuedHoch")) == tonumber("0") and
Sonnenhoehe < 10)
or
((Sonnenstand >= SonneSuedDa and Sonnenstand < SonneSuedWeg) and
(tonumber(fibaro:getGlobalValue("SonneSuedRunter")) == tonumber("1")) and
Regen > 0 ) )
then
if Regen > 0 then fibaro:debug("Rollo-Süd wegen Regen: "..Regen.." l) hochgefahren. Sonnenstand: "..Sonnenstand.." Grad.")
else fibaro:debug("Sonne im Süden weg und Rollos gehen hoch") end
for i = 1,#RollosSued do
fibaro:call(RollosSued[i], "open")
--fibaro:debug("Aktuelle Dev ID: "..RollosSued[i])
end
if currentTime <= Bettzeit then
fibaro:call(167, "open") --Feli Garten
end
fibaro:call(KuechenTuer, "open")
fibaro:setGlobal("SonneSuedHoch", "1")
fibaro:setGlobal("SonneSuedRunter", "0")
end
--############################################################################
--West
--nur bei bestimmer Wärme und zwischen zwei Sonnenstand West und bis Süd
if ((Sonnenstand >= SonneWestDa and Sonnenstand < SonneSuedWeg) and
(tonumber(Temperatur) >= GradSued) and
(tonumber(fibaro:getGlobalValue("SonneWestRunter")) == tonumber("0")) and
Sonnenhoehe > 9 and
Regen == 0)
then
fibaro:debug("Sonne im WESTEN und Rollo geht runter")
for i = 1,#RollosWest do
fibaro:call(RollosWest[i],"setValue", RolloWert)
--fibaro:debug("Aktuelle Dev ID: "..RollosWest[i])
end
fibaro:call(175, "close")
fibaro:call(165, "close")
fibaro:setGlobal("SonneWestRunter", "1")
fibaro:call(342, "sendPush", "Rollos wegen Sonne im WESTEN runtergefahren")
end
-------wieder Hoch weil Sonne weg
--Nur bestimmte Rollos sollen wieder geöffnet werden, nicht alle Rollos im Westen
if ((Sonnenstand >= SonneWestWeg and Sonnenstand <= SonneWestWeg+2) and
(tonumber(fibaro:getGlobalValue("SonneWestHoch")) == tonumber("0")))
then
fibaro:debug("Sonne im Westen weg und Rollos gehen hoch")
if AbendRunter == 0
then
--GV zu AbendRunter wird in RolloRunter-Abenddämmerungs-Szene gesetzt
--wenn Rollos noch nicht durch Abenddämmerungs-Szene runtergefahren sind öffnet wie folgt
fibaro:call(149, "open") --WoZi Fenster
fibaro:call(163, "open") --Gast Fenster
fibaro:call(175, "open") --SchlaZi Fenster
else
--sofern Rollos durch Abenddämmerungs-Szene runtergefahren sind, öffnet nur SchalZi
fibaro:call(175, "open") --SchlaZi Fenster
end
fibaro:setGlobal("SonneWestHoch", "1")
fibaro:setGlobal("SonneWestRunter", "0")
end
------alle West-Rollos wieder Hoch weil Sonne im Westen steht
-- 1. und es regnet oder weil
-- 2. und die Sonne tief steht (geringe Sonnenhöhe herscht)
if (((Sonnenstand >= SonneWestDa and Sonnenstand <= SonneWestWeg) and
Regen > 0 and
currentTime <= Bettzeit and
(tonumber(fibaro:getGlobalValue("SonneWestRunter")) == tonumber("1")))
or
((Sonnenstand >= SonneWestDa and Sonnenstand <= SonneWestWeg) and
tonumber(fibaro:getGlobalValue("SonneWestHoch")) == tonumber("0") and
currentTime <= Bettzeit and
Sonnenhoehe < 9))
then
if Regen > 0 then fibaro:debug("Rollo-West wegen Regen: "..Regen.." l) hochgefahren. ")
else fibaro:debug("Sonne steht tief im Westen und Rollos gehen hoch") end
for i = 1,#RollosWest do
fibaro:call(RollosWest[i], "open")
--fibaro:debug("Aktuelle Dev ID: "..RollosWest[i])
end
fibaro:call(175, "open")
fibaro:call(165, "open")
fibaro:setGlobal("SonneWestRunter", "0")
fibaro:setGlobal("SonneWestHoch", "1")
end
--############################################################################
--für Rollosterungs-VD:
fibaro:call(316, "setProperty", "ui.Label4.value", "O: "..fibaro:getGlobalValue("SonneOstRunter").." S: "..fibaro:getGlobalValue("SonneSuedRunter").." W: "..fibaro:getGlobalValue("SonneWestRunter"))