Grundlagen zu Lua und Fibaro

Hallo Zusammen,

ich habe mal ein paar Fragen zum zum grundsätzlichen Ablauf einer Szene bzw. der Lua-Programmierung.
Meinem Verständnis nach, sollte jede Szene in ihrer eigenen Runtime laufen. Daher auch die Szenen-ID.
Ist das richtig? Ich habe mehrere Szenen die sich scheinbar gegenseitig beeinflussen. Kann ja eigentlich nicht sein oder?
Des weiteren habe ich noch nicht richtig verstanden, wann und aus welchem Grund ich Funktionen in Klammern setze oder wann ich sie weglassen kann.
Gibt es eine Faustregel?
Ich bekomme die Funktion if ( tonumber(os.date("%H%M")) >= XXXX or tonumber(os.date("%H%M")) <= XXXX ) nicht in den Griff. Habe es auch mit local-Variablen probiert. Interessiert nicht, dann passiert die Szene den ganzen Tag.

–[[
%% properties
41 value
%% globals
Wz_Licht_WO
–]]

– Lichtsteuerung Wohnzimmer mit Bewegungsmelder –

        -- Szene IDs Variablen --

local scene = 157 – ID dieser Szene
local motion = 41 – ID des Bewegungssensors
local switch1 = 17 – ID der Schaltdose
local switch2 = 19 – ID der Schaltdose
local licht = 43 – ID des Lichtsensors

        -- Szene Ausführungs Variablen --

local helligkeit = 7
local starttimer = 360

local currentDate = os.date("*t") – Variablensteuerung für Szene nach Wochentagen

       -- Lösche doppelte Szene(n) --

if (fibaro:countScenes()>1) then
fibaro:debug(“stop scene”)
fibaro:abort();
end

             -- Script Start --                      

if ( currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 )
– 2=Montag, 3=Dienstag, 4=Mittwoch, 5=Donnerstag, 6=Freitag, 7=Sonnsabend, 1=Sonntag
and ( tonumber(os.date("%H%M")) >= 0500 or tonumber(os.date("%H%M")) <= 0900 )
–and ( fibaro:getGlobalValue(“Wz_Licht_WO”) == “05-09Uhr” )
and ( tonumber(fibaro:getValue(motion, “value”)) > 0
and tonumber(fibaro:getValue(licht, “value”)) < helligkeit
and tonumber(fibaro:getValue(switch1, “value”)) < 1
and tonumber(fibaro:getValue(switch2, “value”)) < 1 ) then
fibaro:call(switch2, “turnOn”);
fibaro:debug(“Schalte Wohnzimmerlicht ein”);
end

Was ist daran Falsch?

Gruß
Jörg

Hallo Jakob,

ich kann Dir zwar “aus dem Stand” nicht bei Deinem Problem helfen,
wäre aber sehr am Gedankenaustausch mit einem “Gleichgesinnten”
interessiert !

Ich selbst habe eine HC2 mit einigen Sensoren / Aktoren und habe
viele offene Fragen, welche ich teilweise auch hier im Forum
gestellt habe.

Leider habe ich - ähnlich wie Du - keine Antworten erhalten.

Schöne Grüße

Kai

Hallo Jörg,

ich habe mal kurz gegoogelt und gebastelt …
Das löst Dein Problem ;-))

Würde trotzdem gerne Erfahrungen mit Dir austauschen …

Schöne Grüße

Kai


local currentDate = os.date("*t", os.time())

fibaro:debug(currentDate.wday)
fibaro:debug(currentDate.day)
fibaro:debug(currentDate.month)
fibaro:debug(currentDate.year)
fibaro:debug(currentDate.hour)
fibaro:debug(currentDate.min)
fibaro:debug(currentDate.sec)


Ja mit Antworten auf Fragen ist hier nicht so, es wird eher geschwiegen oder Wochenlang keine reaktionen sehr schade sowas.

Hi,
das mag auch daran liegen, das die Programmierer eher rar sind…

Von LUA habe ich auch keinen Plan, aber ggf helfen Euch folgende Quellen (sofern ihr sie nicht schon habt):
http://www.activevb.de/tutorials/tut_lua/tut_lua.html
http://lua.coders-online.net/
http://lua-users.org/wiki/TutorialDirectory
http://www.lua.org/manual/5.1/
http://www.lua.org/pil/

VG Hoggle

das mag auch daran liegen, das die Programmierer eher rar sind……
Dazu kommt das viele nicht mal Programmierer sind, sondern sich das ganz selbst beigebracht haben und auch nicht allwissend sind :wink:
Da schließe ich mich mit ein, kann bei weiten nicht alles und nicht jedes Problem lösen.

Ja mit Antworten auf Fragen ist hier nicht so, es wird eher geschwiegen oder Wochenlang keine reaktionen sehr schade sowas.
Mag daran liegen das wir alle noch einen Beruf haben mit den wir unsere Brötchen verdienen.

Das Forum ist das größte Deutschsprachige Fibaro Forum und das sah vor einen Jahr noch ganz anders aus und sowas passiert nicht über Nacht einfach so…schwups…toll…und…da. Es sind schon reichlich User dabei die anderen Usern helfen und das ist auch gut so und hoffentlich wächst die Anzahl derer noch.

Also bitte weniger Pessimismus, man tut was man kann… so :wink:

Hi Jaoko,

Szenen beinflußen sich eigentlich nicht, wäre mir neu.
Was passieren kann das zuviel Szenen auf ein Modul geschaltet werden und dadurch die zustände des Moduls durch die Szenen scheinbar wirlkürlich geändert werden. Ist dann aber ein Hausgemachtes Problem.

Hab dein Script überarbeitet, mußt mal testen ob es jetzt läuft.
Habe die Globale Variable gelöscht, wozu sollte die gut sein ??

–[[
%% properties
41 value
%% globals
–]]
---------------------------
-- Lichtsteuerung Wohnzimmer mit Bewegungsmelder--
------------------------
-- Szene IDs Variablen —
------------------------
local scene = 157 — ID dieser Szene
local motion = 41 — ID des Bewegungssensors
local switch1 = 17 — ID der Schaltdose
local switch2 = 19 — ID der Schaltdose
local licht = 43 — ID des Lichtsensors
---------------------------------
-- Szene Ausführungs Variablen---
---------------------------------
local helligkeit = 7
local starttimer = 360
—
local currentDate = os.date(“*t”) — Variablensteuerung für Szene nach Wochentagen
-----------------------------
-- Lösche doppelte Szene(n)--
-----------------------------
if (fibaro:countScenes()>1) then
fibaro:debug(“stop scene”)
fibaro:abort();
end
-------------------
-- Script Start --
-------------------

if ( currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 )
    and (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "05", "00")) 
    and  tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "09", "00")))
    and ( tonumber(fibaro:getValue(motion, “value”)) > 0
    and tonumber(fibaro:getValue(licht, “value”)) < helligkeit
    and tonumber(fibaro:getValue(switch1, “value”)) < 1
    and tonumber(fibaro:getValue(switch2, “value”)) < 1 ) 
      
      then
      fibaro:call(switch2, “turnOn”);
      fibaro:debug(“Schalte Wohnzimmerlicht ein”);
end

Hallo zusammen,

nutze einfach mal den Thread.

Kennt jemand den einfachen Curl Befehl in LUA für Fibaro?

Hab viel gefunden alles probiert und nichts klappt so richtig.

Im Moment hab ich folgendes gefunden:
os.execute = 'curl "http://www.url.com/"'

Ich hab mir ein “SMS Gateway” gebastelt welches ich so triggern möchte, sprich die URL muss nur aufgerufen werden.
Danke für die Hilfe.

Bezüglich der Zeit von…bis habe ich folgendes am laufen:


--[[
%% properties
175 sceneActivation
%% globals
--]]

local currentTime = os.date("%H:%M");
local startSource = fibaro:getSourceTrigger();

if ( currentTime >= "21:00"  and currentTime < "23:59" and
   ( tonumber(fibaro:getValue(175, "sceneActivation")) == 20 ) ) 
    
then
  ....
end