Rolladensteuerung

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:

Suche-Rollo.png

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