Startseite Foren Fibaro Forum (Z-Wave) Fibaro LUA Scripts für HC2 LUA Script: Bei Bewegung indirektes und anschließend Haupt-Licht

Dieses Thema enthält 0 Antworten und 1 Teilnehmer. Es wurde zuletzt aktualisiert von AlexM AlexM vor 4 Jahre, 2 Monate.

Ansicht von 7 Beiträgen - 1 bis 7 (von insgesamt 7)
  • Autor
    Beiträge
  • #6797
    AlexM
    AlexM
    Moderator

    Hey Ho,

    habe vor kurzen ein Script geschrieben was erst das Indirekte-Licht und anschließend das Haupt-Licht anschaltet.
    Wir benutzen es z.b. für die Küche wo erst die Küchenzeile per LED beleuchtet wird und wenn man sich länger im Raum aufhält auf das Hautlicht angeschaltet wird.
    Eignet sich auch für diverse andere Räume wo man sich nicht lange aufhält, bzw. nur durchgeht und dann erstmal nur die Indirekte-Beleuchtung ansteuern möchte.
    <pre class=“brush: applescript; gutter: true; first-line: 1; highlight: []; html-script: false“>–[[
    %% properties
    58 value
    %% globals
    –]]

    — Lichtsteuerung—

    local sensorId = 58 –ID of Sensor
    local lightId = 61 –ID of Light
    local lightled = 74 — ID of Led
    local lux = 60 — ID of Luxsensor
    local bewegung = 1;

    local zeit = os.time()

    if fibaro:countScenes() > 1 or tonumber(fibaro:getValue(sensorId, "value")) == 0
    then
    fibaro:abort()
    end

    if (tonumber(fibaro:getValue(lux, "value")) < 30)
    then
    fibaro:call(lightled, "turnOn");
    fibaro:debug('LED an');

    repeat
    local Sensor = (tonumber(fibaro:getValue(sensorId, "value")) > 0);

    if (Sensor)
    then
    bewegung = bewegung + 1;
    fibaro:debug('Bewegung' ..bewegung);
    elseif os.time() – zeit > 60
    then
    fibaro:call(lightled, "turnOff");
    fibaro:debug('Keine Bewegung' ..bewegung);
    fibaro:killScenes(9);
    end
    fibaro:sleep(10000);
    until (bewegung >= 7)

    fibaro:call(lightId, "turnOn")
    fibaro:debug('Licht an');
    fibaro:sleep(10000)
    fibaro:call(lightled, "turnOff");

    while true do
    fibaro:debug('Schleife gestartet');
    if os.time() – zeit > 180
    then
    fibaro:call(lightId, "turnOff");
    fibaro:debug('Licht aus');
    fibaro:abort()
    break
    end

    if tonumber(fibaro:getValue(sensorId, "value")) > 0 then
    zeit = os.time()
    end
    fibaro:sleep(2000)
    end
    end
    Wie immer freue ich mich über Feedbacks :)

    • Dieses Thema wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    • Dieses Thema wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    • Dieses Thema wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    • Dieses Thema wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    • Dieses Thema wurde geändert vor 4 Jahre, 4 Monate von crissxcross crissxcross.
    • Dieses Thema wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    #6837
    crissxcross
    crissxcross
    Moderator

    läuft top!
    An welcher Stelle definiere:
    – wann das Hauptlicht eingeschalten wird?
    – wie lange das indirekte Licht anbleibt?


    Gründer & Blogger von siio.de / siio.com
    #6849
    AlexM
    AlexM
    Moderator

    Hey Chris,

    die Zeit der indirekten Beleuchtung kannst du hier bestimmen
    ..
    until (bewegung >= 7)
    ..
    Bewegungsmelder muss als ausgelöst erkannt werden und das 7 mal, dann schaltet das Hauptlicht an.
    Sollte das nicht der Fall sein und 60 sek vergehen wir die indirekte Beleuchtung ausgeschaltet und das Hauptlicht nicht aktiviert.
    Mit den Werten kannst du die Umschaltung anpassen, verzögern oder verkürzen, je nach bedarf.

    Ist das der Fall, wird das Hauptlicht angeschaltet und die indirekte Beleuchtung aus, den Wert für die Abschaltung wenn keine Bewegung
    kannst du hier ändern.
    ..
    if os.time() – zeit > 180
    ..

    in Sekunden.

    Gruß Alex

    • Diese Antwort wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    • Diese Antwort wurde geändert vor 4 Jahre, 4 Monate von AlexM AlexM.
    #6867
    crissxcross
    crissxcross
    Moderator

    oh danke!
    Ich hatte Mist eingebaut, deswegen hat es bei mir nicht funktioniert.
    Bei folgender Variable:

    dachte ich, das wäre die ID der Szene und habe es geändert. Dabei ist es der Zählwert.

    Allerdings steht in Zeile 39:

    Ist 9 die ID deiner Szene?

    Könnte man doch ersetzen mit der allgemein:

    Daniel hat mir das Script mal so zusammengeschraubt :-D Danke Daniel


    Gründer & Blogger von siio.de / siio.com
    #6868
    danielboe
    danielboe
    Teilnehmer

    Hey, ich habe noch einmal alle Einstellungen in den Kopf gerückt und etwas angepasst. Bitte testen und meckern ;-)
    Die Idee ist übrigens super, danke Alex!


    Ich besitze selbst eine HC2 und kann gern bei Fragen rund um LUA Helfen.

    Geschäftsführer bei Smarthome Agentur UG / Autor bei siio.de / leidenschaftlicher "Smart-Homie"

    #6882
    AlexM
    AlexM
    Moderator

    Hey Daniel,

    danke für das Feintunning :)

    #8407
    AlexM
    AlexM
    Moderator

    Hi Daniel,

    erstmal vielen Dank für das Script, läuft super…bis auf eins.
    Habe im Übergang von Indirekt auf Direktes Licht noch das ausschalten des Indirekten hinzugefügt.

    THX :)

    <pre class=“brush: applescript; gutter: true; first-line: 1; highlight: []; html-script: false“>

Ansicht von 7 Beiträgen - 1 bis 7 (von insgesamt 7)

Du musst angemeldet sein, um auf dieses Thema antworten zu können.