ich bin neu hier im Forum und habe seit kurzer Zeit ein Fibaro HC2. Ich Versuche seit Tagen eine Art Intervallsteuerung hinzubekommen aber scheitere leider daran.
Ich möchte einen Wallplug als Pumpensteuerung nutzen. Die Steuerung soll folgendermaßen aussehen. Wenn ich den Plug einschalte soll dieser aller 5Minuten an sein, dann für 10Minuten ausgehen. Das soll sich solange wiederholen bis ich due Szene wieder abschalte. Mit den Magicszenen bekomme ich das nicht hin, Blockszenen geht nur bedingt. Wenn ich die Timersteuerung in der Blockszene einsetze wartet der Plug nach Aktivierung 10Minuten bevor er das erste Mal angeht. Ich habe sicher irgendwo einen Denkfehler.
Gibt es da irgendwo Beispiele, ich habe schon diverse Sachen gelesen aber leider war das nicht zielführend.
Mit Lua Programmierung kenne ich mich nicht aus, bin auch auf dem Gebiet blutiger Anfänger. Ich habe mittlerweile soviel probiert das ich sämtliche Szenen wieder gelöscht habe da nichts zum gewünschten Ergebnis geführt hat.
Hat einer schon etwas in der Art umgesetzt? Ich brauche keine Bedingungen abhängig von Tages oder Wochenzeiten, da die Szene immer nur manuell gestartet werden soll.
am einfachsten geht sowas mit LUA: hier mal ein Vorschlag meinerseits (ungetestet aber sollte so funktionieren )
Erstelle eine Scene mit unten stehendem Lua Code dann lege dann eine Globale Variable an. IN meinem Lua Code heißt die: “pool_auto_on”. Wenn diese den Status 1 hat wird die Scene ausgeführt dein Filer (1234, durch eine Device ID ersetzen) für 5 Minuten an gemacht. Dann ausgeschaltet 10 Minuten gewartet und falls dir variable pool_auto_on dann noch 1 ist wird die scene erneut gestartet. (Id der Scene noch ersetzten im Lua Code).
AM besten bauest du dir dann noch ein Virtuelles Device womit du das dann einfach über die App oder das Fibaro Interface an und ausmachen kannst: Wie man sowas baut kann man auf meinem Youtube Kanal sehen:
Ist zwar für Rolladen aber die Logik -> 0 = aus 1 = An ist genau die gleiche
--[[
%% properties
%% events
%% globals
pool_auto_on
--]]
-- Script von Nico Bode (http://www.intelligentes-haus.de)
if (fibaro:countScenes()>1)
then
fibaro:abort()
end
is_on = tonumber(fibaro:getGlobalValue('pool_auto_on'));
if(is_on == 1)
then
fibaro:debug(1234,'turnOn');
fibaro:sleep(1000*5);
fibaro:debug(1234,'turnOff');
fibaro:sleep(1000*10);
if(tonumber(fibaro:getGlobalValue('pool_auto_on')) == 1)
then
-- Falls noch aktiv dann -> szene wieder starten
fibaro:startScene(12); -- 12 durch die ID dieser Scene ersetzen!
end
else
fibaro:debug('Scene nicht aktiv');
-- ggf:
fibaro:debug(1234,'turnOff');
end
zunächst vielen Dank für Deine rasche ausführliche Antwort. Ich habe die Szene wie von Dir beschrieben erstellt und die Werte entsprechend abgeändert. Auch die globale Variable habe ich erstellt. Allerdings bekomme ich beim debuggen immer nur diese Meldung.
[DEBUG] 23:03:43: 35 (–> ID des Gerätes)
[DEBUG] 23:03:48: 35
Passieren tut nichts
Wenn ich erneut starte zählt es immer nur 5 Sekunden mit der Device ID, passieren tut nichts.
sorry irrgentwie stand ich neben mir habe es umgebaut jetzt passt es // habe statt fibaro:call fibaro:debug geschrieben was natürlich quatsch ist
Habe noch ein Paar debug Meldungen reingepackt damit du siehst was passiert:
device_id = 1234; das 1234 durch deine wall plug ID ersetzten
fibaro:startScene(12); – 12 durch die ID dieser Scene ersetzen!
Das die Szene nichts macht beim 2. mal Start klicken ist normal das ist ja oben explizit so definiert -> Grund ist einfach: was würde denn passieren wenn die Scene mehrmals läuft: die erste Instanz macht an und die zweite ggf. direkt wieder aus da die 5 min rum sind so eine Scene darf immer nur einmal laufen.
--[[
%% properties
%% weather
%% events
%% globals
pool_auto_on
--]]
if (fibaro:countScenes()>1)
then
fibaro:abort()
end
device_id = 1234;
is_on = tonumber(fibaro:getGlobalValue('pool_auto_on'));
if(is_on == 1)
then
fibaro:debug('Gerät wird angegeschaltet');
fibaro:call(device_id,'turnOn');
fibaro:debug('Warte 5 min');
fibaro:sleep(1000*60*5);
fibaro:debug('Gerät wird ausgeschaltet');
fibaro:call(device_id,'turnOff');
fibaro:debug('Warte´10 min');
fibaro:sleep(1000*60*10);
if(tonumber(fibaro:getGlobalValue('pool_auto_on')) == 1)
then
fibaro:debug('Scene noch aktiv Starte erneut');
-- Falls noch aktiv dann -> szene wieder starten
fibaro:startScene(12); -- 12 durch die ID dieser Scene ersetzen!
end
else
fibaro:debug('Scene nicht aktiv');
-- ggf:
fibaro:call(device_id,'turnOff');
end
na Deinem letzten Luacode Update läuft alles… Ich musste nur oben den Szenenzähler auf 2 setzen, da es sonst nachdem es einmal durchgelaufen ist, nicht wieder erneut startete.
Ich habe mir auch gleich noch, wie empfohlen ein Virtual Device mit Hilfe Deiner Anleitung erstellt. Läuft alles tadellos.