Wechselbeziehung FHEM und Perl ?!

Begonnen von PNinBB, 09 Februar 2015, 18:36:50

Vorheriges Thema - Nächstes Thema

PNinBB

Ich arbeite momentan an dem folgenden Problem.
Ziel: Rollladensteuerung in Abhängigkeit von Sonnenauf- und -untergang (sunrise- und sunset-Funktionen).
Mit der Definition:
define WZ_RL_Oeffnen at *{sunrise(600,"05:00","08:00")}
und
define WZ_RL_TS_Schliessen at *{sunset(3600,"17:30","22:00")} set WZ_RL_TS on
erreiche ich auch die gewünschten Funktionen.
Nun möchte ich durch eine "Stellgrösse" KorrekturSA (bzw. KorrekturSU) den ersten Parameter in sunrise() bzw. sunset() ersetzen. Mit anderen Worten keinen konstanten Wert, sondern eine Variable verwenden ! Dazu habe ich entsprechende "Dummy" - Geräte definiert und denen Werte zugewiesen.
Mein Problem (und sicherlich auch das momentane Unverständnis) ist: wie bekomme ich die "FHEM-Werte" für KorrekturSA bzw KorrekturSU in die Perl-Ebene, um sie in den sunrise/sunset-Funktionen als ersten Parameter zu verwenden ?
Sollte ich das alles als Funktion in 99myUtils.pm einbauen ?
In diesem Zusammenhang ein zweites Problem:
Die Werte für die Korrekturen möchte ich über ein Listmenü setzen:
attr KorrekturSA setList state:-60,-50,-40,-30,-20,-10,0,+10,+20,+30,+40,+50,+60
Was mich stört ist, dass ich dann gewissermaßen als Menüname "state" bekomme.
(//)
Wenn ich beispielsweise "Wert" haben möchte und dies in der attr-Anweisung schreibe, dann wird es als erster Wert interpretiert und in die Kette der anderen einbezogen!
Ich hoffe, dass ich mich klar ausgedrückt habe und danke im Voraus
Peter

Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

nesges

Schau dir mal im Einsteigerhandbuch (http://fhem.de/Heimautomatisierung-mit-fhem.pdf) Seite 38 und in der Commandref den Perl-Teil (http://fhem.de/commandref.html#perl) an, das dürfte deine erste Frage beantworten.

Zur zweiten Frage: Ergänze noch

attr KorrekturSA webCmd state

PNinBB

@nesges:
Danke für die schnelle Reaktion.
Die Hinweise zum Problem 1 werde ich lesen und denke, da finde ich genügend Details, um voran zu kommen.
Problem 2: da habe ich mich vermutlich nicht ganz verständlich ausgedrückt. Ich möchte ganz einfach (siehe auch mein angefügtes Bild) nur den Namen des Dropdown-Menüs von "state" in (beispielsweise) "Werte" ändern. Die Funktionalität selbst ist völlig in Ordnung. Die Anweisung:
attr KorrekturSA webCmd state
hat da nichts dazu gebracht.
Besten Dank !
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

nesges

Wenn du das wirklich willst, musst du schon so vorgehen, wie du beschrieben hast, also:

attr KorrekturSA setList Wert:-60,-50,-40,-30,-20,-10,0,+10,+20,+30,+40,+50,+60

Evtl. vertippt? Ich konnte mir nur nicht vorstellen, wozu man das brauchen würde :-)

PNinBB

Je länger ich über mein Vorhaben (Problem 2) nachdenke, desto klarer wird mir, dass es höchstwahrscheinlich am Wesen dieser Anweisung vorbei geht.
"state" ist ja keine "Überschrift" oder "Name" des Dropdown-Menüs, sonder wohl ein Attribut von "setList" und bestimmt sich sicherlich aus den definierten oder "default"-Attributen des Gerätes. Ich vermute mal, wenn ich dem Dummy-Geräte weitere Eigenschaften "verpasse", kann ich sie dann in "setList" referieren.
Mein Anliegen, etwas in Sachen "Überschrift" zu machen, kann ich (vermutlich) mit einer zusätzlichen Zeile darüber programmieren.
Abschließend meine Frage: Gibt es eigentlich eine "saubere" Syntaxdefinition der FHEM-Sprachelemente; ich denke da an Backus-Nauer-Form (BNF, oder EBNF) oder auch an Syntaxdiagramme. So etwas ist mir viel klarer und sympathischer als "lange Texte".
Gruß
Peter


Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;