ja, ich steuere das tor über ein 1-fach relais.
0 sollte der zustand für geschlossen sein. bei dem Kontakt oben könnte es aber auch umgekehrt sein, da ich das da umgestellt habe, damit in der ansicht das tor auch offen erscheint, wenn der kontakt geschlossen ist.
habe das grade mal geändert…
if (tonumber(fibaro:getValue(garagentorunten, "value")) > 0) -- Tor in Bewegung bzw. nicht geschlossen und nicht offen
and (tonumber(fibaro:getValue(garagentoroben, "value")) < 1)
then
hab mal versucht das Relais als Trigger zu nutzen und hatte den torkontakt oben zustand als geöffnet = 0 gesetzt…
--[[
%% autostart
%% properties
251 value
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
local sonnenaufgang = fibaro:getValue(1, "sunriseHour")
local sonnenuntergang = fibaro:getValue(1, "sunsetHour")
local garagentorunten = 332
local garagentoroben = 341
local LEDstripe = 321
local lichtgarage = 257
-- function torbewegung()
if (tonumber(fibaro:getValue(garagentorunten, "value")) > 0) -- Tor in Bewegung bzw. nicht geschlossen und nicht offen
and (tonumber(fibaro:getValue(garagentoroben, "value")) < 1)
then
fibaro:call(LEDstripe, "startProgram", "286") --Rot blinken
fibaro:call(lichtgarage, "turnOn")
fibaro:debug('Tor wird geöffnet')
fibaro:sleep(5*60*1000)
fibaro:call(lichtgarage, "turnOff")
fibaro:debug('Licht aus')
end
if (tonumber(fibaro:getValue(garagentoroben, "value")) == 0) -- Tor offen
then fibaro:call(LEDstripe, "startProgram", "287") --Grün leuchten
fibaro:sleep(15*1000) -- 15 Sekunden warten
fibaro:call(LEDstripe, "turnOff") -- wenn nein, dann LED ausschalten
fibaro:debug('Tor geöffnet')
end
if (tonumber(fibaro:getValue(garagentorunten, "value")) == 0) -- Tor geschlossen
then fibaro:call(LEDstripe, "startProgram", "287")
fibaro:sleep(15*1000)
fibaro:call(LEDstripe, "turnOff")
fibaro:debug('Tor geschlossen')
end
-- end
-- if (sourceTrigger["type"] == "property") then
-- torbewegung()
-- end
function nachtbeleuchtung()
if (tonumber(fibaro:getValue(garagentoroben, "value")) == 0 ) and ((sonnenaufgang > os.date("%H:%M", os.time())) or (os.date("%H:%M", os.time()) > sonnenuntergang))
or (tonumber(fibaro:getValue(garagentorunten, "value")) == 0 ) and ((sonnenaufgang > os.date("%H:%M", os.time())) or (os.date("%H:%M", os.time()) > sonnenuntergang))
then fibaro:sleep (15*1000) --15 Sek warten damit es erst grün leuchtet nach öffnen
fibaro:call(LEDstripe, "setValue", {R="255",G="255",B="255",W="255"})
end
setTimeout(nachtbeleuchtung, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
nachtbeleuchtung()
end
es hat nichts genützt, ausser das die szene sofort wohl startet und folgender Debug kommt
[DEBUG] 16:34:16: Tor geöffnet
[DEBUG] 16:34:31: Tor geschlossen
obwohl nichts gedrückt wurde. das Tor hat sich nicht bewegt…
d.h. die szene startet automatisch, ok, und prüft aber schaltet kein licht und kein LED programm…
meine ToD Variable wird nach uhrzeit durch blockszenen gesetzt.
die würde nicht zur steuerung einer beleuchtung funktionieren. sonst ist das licht im winter noch aus oder im sommer schon an…
Ich checke mein Tor, ob es Abends ncoh offen ist und geben mir dann eine TTS Ansage aus:
--[[
%% properties
405 value
%% events
%% globals
TimeOfDay
--]]
--Szene prüft, ob nach Evening das Tor noch offen ist und macht ggf TTS Ansage.
if fibaro:countScenes() > 1 then
fibaro:abort()
fibaro:debug("Szene abgebrochen")
end
local FensterID = 405 --und im Header anpasen - Garagentor Hinten
local TTSID = 279 --ID der TTSSayAll-Szene
local Temperatur = tonumber(fibaro:getValue(144, "value")) --ID von Netatmoprint
local temp = tostring(fibaro:getValue(144, "value"))
local tempcurr = string.gsub(temp, "%.", ",", 1); --wegen TTS
local room = fibaro:getRoomNameByDeviceID(FensterID)
local countID = 500
------------------------------------------------------------------
if tonumber(fibaro:getValue(FensterID, "value")) == 0 then
fibaro:debug(room.."-Tor Hinten ist GANZ Auf und ToD ist: "..fibaro:getGlobalValue("TimeOfDay"))
elseif tonumber(fibaro:getValue(FensterID, "value")) == 1 then
fibaro:debug(room.."-Tor Hinten ist NICHT ganz auf und ToD ist: "..fibaro:getGlobalValue("TimeOfDay"))
end
------------eigentliches Script
if (tonumber(fibaro:getValue(FensterID, "value")) == 0 and
fibaro:getGlobalValue("TimeOfDay") == "Evening") then
fibaro:debug("Tor ist ganz offen und Sonne ist untergegangen")
local counter = 0
local counterRollo = 0
local Intervall = 600 --10 Minuten
while counter <= Intervall do
fibaro:sleep(1000)
counter = counter + 1
counterRollo = counterRollo + 1 --zählt Gesamt SChleifen und nach einem Min-Wert wird beim Fensterschließen das Rollo geschlossen
--print("counter: "..counter)
--print("counterRollo: "..counterRollo)
if counter == Intervall then
min = tonumber(string.format("%.0f", (counterRollo/60)))
fibaro:setGlobal("TTSSayAll", "Das "..room.."-Tor ist seit "..min.." Minuten auf.")
fibaro:debug("Das "..room.."-Tor ist seit "..min.." Minuten auf.")
fibaro:startScene(TTSID)
fibaro:debug("TTS-Szene gestartet")
fibaro:setGlobal("PopUpText", "Garagentor ist seit "..min.." Minuten auf.");
fibaro:startScene(240);
counter = 0 --damit Intervall erneut läuft und neien weitere Ansage kommt
end
if tonumber(fibaro:getValue(FensterID, "value")) == 1 then
min = tonumber(string.format("%.0f", (counterRollo/60)))
fibaro:debug("Tor wurde nach "..counterRollo.." Sekunden ("..min..") Minuten geschlossen. ")
break
end
end --der while-do-Schleife
end
nein, bei mir nicht. hab ne standard hörmann sender im auto. der funkt direkt das hörmann tor an.
ich glaube das skript hatte ich mal ausprobiert, aber bin da auf schwierigkeiten gestossen es an meine bedürfnisse anzupassen und habs dann über blockszenen gelöst.
also das LED blinken etc funktioniert jetzt hiermit
--[[
%% properties
332 value
341 value
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
local sonnenaufgang = fibaro:getValue(1, "sunriseHour")
local sonnenuntergang = fibaro:getValue(1, "sunsetHour")
local garagentorunten = 332
local garagentoroben = 341
local LEDstripe = 321
local lichtgarage = 257
-- function torbewegung()
if (tonumber(fibaro:getValue(garagentorunten, "value")) == 1) -- Tor in Bewegung bzw. nicht geschlossen und nicht offen
and (tonumber(fibaro:getValue(garagentoroben, "value")) == 0)
then
fibaro:call(LEDstripe, "startProgram", "286") --Rot blinken
fibaro:call(lichtgarage, "turnOn")
fibaro:debug('Tor in Bewegung')
fibaro:sleep(5*60*1000)
fibaro:call(lichtgarage, "turnOff")
fibaro:debug('Licht aus')
end
if (tonumber(fibaro:getValue(garagentoroben, "value")) == 1) -- Tor offen
then fibaro:call(LEDstripe, "startProgram", "287") --Grün leuchten
fibaro:sleep(15*1000) -- 15 Sekunden warten
fibaro:call(LEDstripe, "turnOff") -- wenn nein, dann LED ausschalten
fibaro:debug('Tor geöffnet')
end
if (tonumber(fibaro:getValue(garagentorunten, "value")) == 0) -- Tor geschlossen
then fibaro:call(LEDstripe, "startProgram", "287")
fibaro:sleep(15*1000)
fibaro:call(LEDstripe, "turnOff")
fibaro:debug('Tor geschlossen')
end
-- end
-- if (sourceTrigger["type"] == "property") then
-- torbewegung()
-- end
function nachtbeleuchtung()
if ((tonumber(fibaro:getValue(garagentoroben, "value")) == 1 ) and ((sonnenaufgang > os.date("%H:%M", os.time())) or (os.date("%H:%M", os.time()) > sonnenuntergang)))
or ((tonumber(fibaro:getValue(garagentorunten, "value")) == 0 ) and ((sonnenaufgang > os.date("%H:%M", os.time())) or (os.date("%H:%M", os.time()) > sonnenuntergang)))
then fibaro:sleep (15*1000) --15 Sek warten damit es erst grün leuchtet nach öffnen
fibaro:call(LEDstripe, "setValue", {R="255",G="255",B="255",W="255"})
end
setTimeout(nachtbeleuchtung, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
nachtbeleuchtung()
end
da bin ich mal gespannt auf heute abend wenn die sonne untergeht…
ich hatte boomx auf der ersten seite so verstanden, dass ich diese beiden aktionen (LED Streifen bei Bewegung und Nachtbeleuchtung) in einer Szene kombinieren kann.
wenn ich nach Sonnenuntergang das Tor betätige möchte ich ja auch den Effekt bei Bewegung haben und danach soll es wieder in die Nachtbeleuchtung übergehen.
deswegen hatte ich das mit 2 Funktionen getrennt.
würde bei meinem letzten skript denn die nachtbeleuchtung funktionieren obwohl ich jetzt nicht mehr “autostart” im header habe?
ist klar, dass die nicht funktioniert. Du hast ja auch die Autostart-Funktion entfernt. Das musst du schon definieren und trennen. Ohne dein Skript jetzt Punkt für Punkt durchzugehen, müsste das ungefähr so aussehen:
--[[
%% autostart
%% properties
332 value
341 value
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger()
function bewegung()
end
function nacht()
end
if (sourceTrigger["type"] == "autostart") then
nachtbeleuchtung()
elseif (sourceTrigger["type"] == "property") then
bewegung()
else
fibaro:debug('Manuell ausgelöst. Keine Aktion wird ausgeführt.')
end
Beachte dabei bitte, dass die Instanzen immer auf mindestens 2 stehen müssen. Ansonsten läuft nur die autostart-Szene und die andere wird geblockt.
hi,
habs mal versucht umzusetzen, leider ohne erfolg. die nachtbeleuchtung bleibt aus…
--[[
%% autostart
%% properties
332 value
341 value
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
local sonnenaufgang = fibaro:getValue(1, "sunriseHour")
local sonnenuntergang = fibaro:getValue(1, "sunsetHour")
local garagentorunten = 332
local garagentoroben = 341
local LEDstripe = 321
local lichtgarage = 257
function torbewegung()
if (tonumber(fibaro:getValue(garagentorunten, "value")) == 1) -- Tor in Bewegung bzw. nicht geschlossen und nicht offen
and (tonumber(fibaro:getValue(garagentoroben, "value")) == 0)
then
fibaro:call(LEDstripe, "startProgram", "286") --Rot blinken
fibaro:call(lichtgarage, "turnOn")
fibaro:debug('Tor in Bewegung')
fibaro:sleep(5*60*1000)
fibaro:call(lichtgarage, "turnOff")
fibaro:debug('Licht aus')
end
if (tonumber(fibaro:getValue(garagentoroben, "value")) == 1) -- Tor offen
then fibaro:call(LEDstripe, "startProgram", "287") --Grün leuchten
fibaro:sleep(15*1000) -- 15 Sekunden warten
fibaro:call(LEDstripe, "turnOff") -- LED ausschalten
fibaro:debug('Tor geöffnet')
end
if (tonumber(fibaro:getValue(garagentorunten, "value")) == 0) -- Tor geschlossen
then fibaro:call(LEDstripe, "startProgram", "287")
fibaro:sleep(15*1000)
fibaro:call(LEDstripe, "turnOff")
fibaro:debug('Tor geschlossen')
end
end
function nachtbeleuchtung()
if ((tonumber(fibaro:getValue(garagentoroben, "value")) == 1 ) and ((sonnenaufgang > os.date("%H:%M", os.time())) or (os.date("%H:%M", os.time()) > sonnenuntergang)))
or ((tonumber(fibaro:getValue(garagentorunten, "value")) == 0 ) and ((sonnenaufgang > os.date("%H:%M", os.time())) or (os.date("%H:%M", os.time()) > sonnenuntergang)))
then fibaro:sleep (15*1000) --15 Sek warten damit es erst grün leuchtet nach öffnen
fibaro:call(LEDstripe, "setValue", {R="255",G="255",B="255",W="255"})
end
setTimeout(nachtbeleuchtung, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
nachtbeleuchtung()
elseif (sourceTrigger["type"] == "property") then
torbewegung()
else
fibaro:debug('Manuell ausgelöst. Keine Aktion wird ausgeführt.')
end