Seite 1 von 2

#1 Lua Syntax?

Verfasst: Mo 1. Apr 2013, 22:38
von Beleuchtfix
Ich stehe momentan vor einem Problem:
Ich will Relais steuern und habe Variablen in Strings definiert (up_1 und down_1) Jetzt übergebe ich der Funktion den Wert task mit z.B. 'up_1'. Wie bekomme ich jetzt den String der Variablen up_1 zu weiteren Auswertung?
Ich möchte also up_1 übergeben und '11------' benutzen. Ich hoffe, dass ich die Frage halbwegs verständlich stellen konnte.

Code: Alles auswählen

function roll_rel_run(mod,motor,task,pos) --
   local up_1 = '11------'
   local down_1 = '10------'
        myresult = .... (task)....
        command ('C.LCN.relays.0.'..mod..'='..myresult)
end

Gruß
Florian

#2 RE: Lua Syntax?

Verfasst: Mo 1. Apr 2013, 23:49
von norden
Hallo Florian,

wenn ich Dich richtg verstanden habe vielleicht so:

Code: Alles auswählen


roll_rel_run(x,x,'down_1',x)


function roll_rel_run(mod,motor,task,pos) --
    if
          task == 'up_1' then  task = '11------'
    elseif
     task == 'down_1' then task ='10------'
    end
        command ('C.LCN.relays.0.'..mod..'='..task)
end


Gruß
Dieter

#3 RE: Lua Syntax?

Verfasst: Di 2. Apr 2013, 11:53
von Beleuchtfix
Hallo Dieter,

Danke,so würde es gehen, ich habe nur 12 mögliche Werte, da dachte ich, dass es eleganter geht.
Gruß
Florian

#4 RE: Lua Syntax?

Verfasst: Di 2. Apr 2013, 13:49
von norden
Hallo Florian,

Du könntest auch zwei Tabellen erstellen und dann den Aufruf der Funktion etwas anders machen.

task müsste dann z.B. down[1] statt down_1 sein

Gruß
Dieter

Code: Alles auswählen

roll_rel_run(x,x,down[2],x)

function roll_rel_run(mod,motor,myresult,pos)
  local up = {"11------","--11----","----11--"}
  local down = {"10------","--10----","----10--"}

  command ('C.LCN.relays.0.'..mod..'='..myresult)

end

#5 RE: Lua Syntax?

Verfasst: Di 2. Apr 2013, 18:01
von Beleuchtfix
Das gefällt mir schon besser :) werde ich testen. Normalerweise komme ich auch gut zurecht, mir dir Variablennamen "zusammenzusetzen" aber irgendwas ist hier anders.

Gruß
Florian, der sich vielleicht doch noch ein Lua Buch kaufen solle.

#6 RE: Lua Syntax?

Verfasst: Mi 3. Apr 2013, 21:56
von Beleuchtfix
Jetzt habe ich es gefunden, das Wesentliche ist, dass ich die Variablen nicht als local deklariere. Wenn ich das nicht tue, kann ich nur einen String 'up[3]' übergeben, und damit bekomme ich nicht die Variable ausgelesen-

der Aufruf:
[code= php]
LOGIC=roll_rel_run(121,3,up[3],0)
up = {'11------';'--11----';'----11--';'------11'}
down = { '10------';'--10----';'----10--';'------10'}

function roll_rel_run(mod,motor,_task,pos) --
print('Task '.._task) --> Task up[3]
print('Motor '..motor) --> Motor 3
value = (_task)
print('Value '..value) --> ----11--
print (up[3]) --> ----11--
test = _task
print(test)
end[/code]

Auch wenn es geht, eine Frage bleibt, wie kann ich den Wert einer Variablen (String) als Variablenname zur Abfrage verwenden.
Gruß
Florian

#7 RE: Lua Syntax?

Verfasst: Sa 1. Jun 2013, 00:42
von coleman
Hallo Leute,

habe ein kleines Problem in LUA.
Ich möchte gerne den Befehl bei einem bestimmten Sensor oder Relais Status auslösen also LCN.relay.x.x.1=1 oder LCN.sensor.x.x.1=0.
Zur Zeit funktioniert das nur bei Änderung.
Kann mir einer weiter helfen.

uhrzeit = use 'VAR.UHR'
sensor = use 'LCN.sensor.0.5.7'
function notify()
local t1 = 0
t1=uhrzeit.value
-- command ("C.REMOTE.notify=Klingel " .. t1)
print (t1)
end
sensor.onchange = notify

mfg Marcel

#8 RE: Lua Syntax?

Verfasst: Mi 5. Jun 2013, 11:45
von Beleuchtfix
Hallo Marcel,

nach meinem Gefühl müsste es eigentlich heißen

Code: Alles auswählen

sensor.onchange = notify()

Aber ich verstehe deine Fragestellung nicht genau, die Aktion wird bei einer Änderung des Sensors ausgeführt. Ansonsten musst du den Sensor regelmäßig abfragen bzw die Funktion notify() über einen Timer aufrufen.

Viel Erfolg
Florian

#9 RE: Lua Syntax?

Verfasst: Mi 5. Jun 2013, 22:07
von Thomas
[zitat]sensor.onchange = notify[/zitat]
So nutze ich das auch, es geht.

Aber auch ich verstehe nicht wirklich, was du machen möchtest.
Im Moment sollte die Funktion, immer beim "Statuswechsel" von Modull5 B7 tun.

gruss thomas

#10 RE: Lua Syntax?

Verfasst: Sa 8. Jun 2013, 02:32
von coleman
Hallo Leute,
Also was ich meine. Ich möchte das Script nur dann ausführen wenn der Sensor = 1 ist.
In diesem fall bekomme ich immer zwei Meldungen und zwar wenn der Sensor auf 1 wechselt und dann wieder wenn er zurück setzt auf 0.
Das selbe gilt natürlich bei der Abfrage eines Relais.
Ich möchte jedoch nur bei einem bestimmten Status wie 0 oder 1 das Script ausführen und nicht allgemein bei jedem Wechsel.
Ich würde mich echt freuen wenn ihr mir bei der Lösung helfen könntet.

Danke im voraus.

MfG Marcel.