Seite 1 von 1

#1 Domiq: Hinweise zur Syntax und zur Nomenklatur

Verfasst: Mi 27. Jun 2012, 12:56
von Beleuchtfix
nicht alles intuitiv. Manches in der Syntax ist anfänglich verwirrend, deshalb hier ein paar Hinweise. Wer Ergänzungen hat, kann sich hier gerne anschließen.

Channel:Befehlskanal, z.B. eine Funktion eines LCN Moduls. Alle möglichen Befehle um diese Funktion zu steuern.
Bei den Channels gibt es einmal Kommandos, die Base an das LCN System schickt oder Ereignisse (Events), auf die Base reagiert. Im kompletten Befehl (Channel Dokumentaion) werden Commands mit C.xxxx und Events mit E. gekennzeichnet.

Hier einmal ein Kommando zerlegt, die dem Base zugrundeliegende Programmsprache LUA ist Case sensitivity, es ist also auf genaue Groß- und Kleinschreibung zu achten.

Beispiel 1:
C.LCN.output.0.50.1=50; ramp:3
C. Command
LCN. Kommando ans LCN System (immer Großbuchstaben)
output. Ausgang des Moduls (1,2,3) (klein!)
0.50. Segmentnummer und Modulnummer, Angaben ohne führende 0!
0g50 Segment- und Gruppennummer. Bei der Gruppennummer fehlt der Punkt zwischen Segment und Modul!
1= Nummer des Ausgangs
50; (hinter dem = steht dann der eigentlich zu übergebende Wert) Mehrere mögliche Parameter werden durch ein Semikolon getrennt.
ramp: weiterer Parameter, hier die LCN Rampe. Achtung, hier kommt jetzt ein Doppelpunkt und kein Gleichheitszeichen.
3 Wert der Rampe.

C.LCN.output.0.50.1=50; ramp:3 ist der komplette Befehl, so wie er in der Channel-Dokumentation beschrieben ist. Nur wird der Befehl so nicht überall eingegeben.

Hier das Beispiel für einen Dimmer-Button in Display:
channel: LCN.output.0.50.1 (C. wird nicht angegeben, die Eingabe darf nur bis zum = erfolgen.)
param: hier wird ramp:5 eingegeben. (Das = erscheint nie)

Etwas anders müssen die Befehle für on und off eingegeben werden, hier ist das komplette channel (ohne C) einzugeben.

on: LCN.output.0.62.2=on; ramp:5
off: LCN.output.0.62.2=off; ramp:5

Ein Klicken auf die Taste löst entweder das on oder off Kommando aus, bei langem Drücken wird der Channel und Param Befehl ausgelöst. Beim Loslassen erfolgt ein Rampe Stop Befehl.

Eingabe im Bereich Events bei Aktionen
Im Bereich LCN hinzufügen kann man die gewünschte Funktion problemlos zusammenklicken. Bei Befehl hinzufügen besteht dafür die Möglichkeit universelle Channel Befehle einzugeben.

Beispiel 2:
Es soll der Timer mit dem Namen “one” nach 10 Sekunden das Relay 7 am Modul 62 aussschalten.
Name: TIMER.one.10s.C.LCN.relay.0.62.7
TIMER. TIMER Channel
one. Name des Timers
10s. Nach 10 Sekunden
C. Kommando auslösen
LCN. Für LCN
relay. Relais
0.62. Modul 62 im Segment 0
7 Relais Nr. 7
Wert: off

Anzeigefeld Value/Wert
Hier unterscheiden sich leider die Eingaben in Remote und Display deutlich!
Remote:
Kanal LCN.value.0.85.r1
Base value 1000
Maßeinheit °C
Skalierungsfaktor 10
Display:
channel LCN.value.0.85.r1
prefix XYZ
suffix °C
offset -1000 (!)
gain 0.1 (!)

Events:
Bei den Events muss bei Befehl hinzufügen das C für Command mit eingegeben werden
Name: C.VAR.rueck.links
Wert: 100
Setze die Variable rueck.links auf den Wert 100.

VAR hinzufügen: Hier wird eine dauerhafte Variable vom Typ MEM erzeugt und nicht eine VAR Variable.

set Kommando in Lua:
Es gibt unterschiedliche Wege, im Base Variablen zu setzen, zum Teil auch mit sehr unterschiedlichen Auswirkungen!
someVariable = use 'LCN.output.0.10.1' -- someVariable ist mit dem Ausgang 1 des Moduls 10 verbunden.
Um den Ausgang zu ändern und gleichzeitig die Lua Variabel anzupassen nimmt man:
someVariable:set(100) -- Es wird zuerst der Ausgang auf 100 gesetzt und anschließend die Variable nachgeführt.
set ('someVariable',100) -- hier wird nur die Variable im Base gesetzt! Der Ausgang selbst wird nicht geschaltet.


Viel Erfolg
Florian