Zeitsteuerung einer Szene

Ich habe die Suchfunktion genutzt, komme aber scheinbar über ein grundlegendes Verstädnisproblem einfach nicht hinaus. Ich will eine Szene triggern. Der Motionsensor löst ab 05:00 Uhr während der Woche Licht anschalten aus und spielt einen Radiosender über den im Bad befindlichen Sonoslautsprecher. Den Sonoslautsprecher habe ich mit einem virtuellen Modul (Tipp aus dem Inet) zum Abspielen des Wunschsenders gebracht.
Die Timerfunktion macht mich aber mürbe. Die Szene soll ab 05:00 aktiviert werden, dann aber ab 07:00 inaktiv sein. Im Blockmodell habe ich hierzu keine Lösung gefunden. Die Szene startet zwar genau um 05:00, ich bekomme aber kein Intervall hin. Was mache ich hier falsch?

Hi,

machst Du das mit einer Block-Szene oder LUA?
Poste doch mal einen Screenshot.

VG Hoggle

…hallo Hoggle, das ganze sieht als Blockszene so aus:

guten_morgen.png

Sorry, muss ja Blockszene sein, da Du es ja unter HCL gepostet hast…

Dein Script wird durch jede neue Bewegungserkennung des Bewegungsmelders neu getriggrt (durch den Haken, der bei “Getriggerte Geräte” gesetzt ist) und damit das Ausschaltintervall neu gestartet.

Soll das Radio immer zum angegebenen Zeitpunkt angehen oder nur bei dem Zeitpunkt und einer Bewegung?

Genau so ist es, ab 5:00 Uhr und nach erkennen einer Bewegung ist die Idee.

Dann nutze eine Globale Variable statt der Zeit in der Szene.

Die Globale Variable setzt Du zB um 5:00 Uhr auf “1” und nach zwei Stunden wieder auf “0” (oder eine zweite Szene, die die Variable um 7:00 Uhr auf “0” setzt). Bei dieser Szene muss “Starten mi HC…” aktiviert sein.
In deinem Script baust Du statt der Zeit diese Variable ein.
Wenn BEWEGUNG erkannt UND die Variable = 1 Dann…
Die Variable würde ich nicht als Trigger oben anhaken, damit die Musik erst nach Bewegung in dem Zeitraum (von 5-7 Uhr) angeht und nicht ohne Bewegung zu dem Zeitpunkt.

Für das Ausschalten des Sonos:

  • entweder wie Du es hast nach x Sekunden ohne Bewegung
  • oder zusammen um 7:00 Uhr mit dem zurücksetzen der Variable auf “0”

Ok, ich habe eine globale Variable erstellt und in einer Szene eingebunden (Siehe Bild). Ich kann zwar ein Häckchen bei Starten, wenn HC2 starte setzen, es ist aber nach dem Abspeichern weg. Gibt es hierfür einen erkennbaren Grund?

Globale_Variable.jpg

Hi,

die Szene ist so nicht fertig und macht nichts. Deshalb kannst du nicht speichern.

Gruß

Mach mal da AN und AUS in zwei Block-Szenen.

Eure Tipps haben zum Erfolg geführt. Ich habe dann gleich mit einem Szenario weiter gemacht, welches Einbrechern das Mitbringen einer Taschenlampe erspart. Bei Bewegung im Garten werden diverse Philipps Huelampen eingeschaltet und nach definierter Zeit wieder aus. Ich habe in eine Blockszene als Grundlage genommen und dann in Lua die ID der Hues eingesetzt. Ab dem Punkt wird nicht mehr “Starten, wenn HC2 startet” angeboten. Das Kästchen ist weg :frowning:
Die Szene läuft mit den Variablen nun genau so wie sie sollte. Ist aber ggf. in der Syntax doch noch ein Fehler, der die Ausführung beim Starten behindert?
Das ganze sieht so aus:

–[[
%% properties
115 value
128 value
%% events
%% globals
Sonnenstand
–]]

local startSource = fibaro:getSourceTrigger();
if (
( fibaro:getGlobalValue(“Sonnenstand”) == “Sonnenuntergang” )
and
( tonumber(fibaro:getValue(115, “value”)) > 0 or tonumber(fibaro:getValue(128, “value”)) > 0 )
or
startSource[“type”] == “other”
)
then
setTimeout(function()
fibaro:call(60, “turnOn”);
fibaro:call(59, “turnOn”);
fibaro:call(57, “turnOn”);
fibaro:call(58, “turnOn”);
fibaro:call(48, “turnOn”);
end, 50)
setTimeout(function()
fibaro:call(60, “turnOff”);
fibaro:call(59, “turnOff”);
fibaro:call(57, “turnOff”);
fibaro:call(58, “turnOff”);
fibaro:call(48, “turnOff”);
end, 90000)
end

Hi,

die Szene soll doch nicht beim Start ausgeführt werden, sondern nur, wenn der MS auslöst.

Von daher brauchst du keine Autostart-Szene. Lies dir mal folgenden Artikel durch.

http://www.siio.de/szenen-im-fibaro-homecenter-einsteigerguide-teil-1/

Gruß

Danke Daniel,

das Tutorial beleuchtet das Thema sehr gut. Nun wird es mir klarer…
Das Thema Rollade habe ich nun erledigt :slight_smile:
Gruß

Dieter

Kann man das so einstellen, daß diese Variable nach 2 Stunden automatisch wieder den Wert zurück ändert, oder muß man für jede Änderung der Variablen eine neue Szene schreiben?

Ich habe eine ähnliche Anwendung, die aber nur von 04 bis 06 Uhr und von 21 bis 23 Uhr laufen soll.
Kann man Szenen auf diese Art auch aktivieren und deaktivieren?

Hi,

automatisch kann solch eine Änderung nicht durchgeführt werden. Hier musst du eine Szene schreiben, welche die Variable nach der gewünschten Zeit wieder ändert.

Gruß

Hi tic3366,

ich bin absoluter Fibaro-Neuling und habe meine Bestellung (HC2, zig Aktoren und Sensoren) erst gestern bekommen. Nächsten Montag ziehen wir in unser Haus und nun geht es los mit der ganzen Konfig. :wink: Ich bin also absolut noch unerfahren. ABER: Ich habe mir gestern die selbe Frage gestellt und zwar, wie ich eine Variable automatisch nach Zeit X wieder zurücksetze.

In meinem konkreten Fall ging es darum, dass ich in unserer Alarmüberwachung (leider kann ich hier nicht auf den Fibaro-Standard setzen, weil deren Alarm-Funktion viel zu rudimentär ist (ich brauche eine Unterscheidung “nur Gebäudehülle” (für Nachts bzw. wenn der Hund zuhause ist), “alles komplett”, etc.

Für diese Alarmfunktion habe ich eine Variable “BEIM_VERLASSEN” gesetzt. Aktiviere ich die Alarmanlage, dann wird die auf “JA” gesetzt. Ist die Variable “JA”, dann soll der Alarm nicht auslösen. Hintergrund ist, dass ich uns mit dieser Funktion Zeit einräume, das Haus zu verlassen, ohne das die Sensoren auslösen.
Damit das alles klappt, muss dann natürlich die “BEIM_VERLASSEN” Variable nach 60 Sekunden auf “NEIN” gesetzt werden, damit ab dann der Alarm scharf ist.

Das habe ich wie folgt gemacht:
Ich habe eine Szene “Beim Verlassen” erstellt. Die wird automatisch aktiviert, wenn meine Alarm-Szenen laufen. Und die macht dann folgendes:

fibaro:setGlobal("BEIM_VERLASSEN", "JA");
setTimeout(function()
	fibaro:setGlobal("BEIM_VERLASSEN", "NEIN");
	end, 60000);

Das war es schon. Die Variable “BEIM_VERLASSEN” wird sofort auf JA gesetzt und dann, automatisch und nach 60 Sekunden, wieder auf NEIN.

Das funktioniert scheinbar wunderbar. :slight_smile:

Herzliche Grüße
Niclas

@Niclas

Vielen Dank. Das ist natürlich ein guter Ansatz. Das kann ich bei mir auch so umsetzten.