Unterschiedlicher Befehlsyntax in einer Struktur

Begonnen von Sirel, 26 Mai 2016, 15:18:12

Vorheriges Thema - Nächstes Thema

Sirel

Hallo zusammen,
ich habe in einer Struktur Aktoren mit unterschiedlichen Befehlssyntax zusammengefasst.
Für die eine Gruppe der Aktoren erfolgt die Ansteuerung bspw. über den Befehl set xyz dim 25, für die anderen set xyz position 25.
Komplizierte wird es noch, dass bei den Aktoren mit Dim-Syntax "25" fast ganz unten (Rollladen), bei den Aktoren mit Position-Syntax "25" fast ganz oben bedeutet.

Frage: Wie bekomme ich es hin, das die Geräte in der Struktur die Positionswerte selber mappe/interpretieren?

Beispiel:
Der Befehl an die Struktur würde nach meiner Vorstellung dann nur lauten set structur_xyz 25 
die Geräte mit Dim-Syntax in der Struktur mappen dann set <device> dim 25
die Geräte mit Postion-Syntax mappen dann set <device> postion (100-25=75) (also noch eine Berechnung dazu, damit die Rollläden die gleiche Position haben)

Wie kann ich das realisieren?

Stehe etwas auf dem Schlauch...

Vielen Dank vorab,

Max


betateilchen

Zitat von: Sirel am 26 Mai 2016, 15:18:12
1-25=75

Mein Mathelehrer würde sich im Grab umdrehen...

Zur Sache: Mit einer structure bekommst Du das nicht gelöst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sirel

Hallo Betateilchen,

sollte natürlich 100-25 heißen.

Hast Du eine Idee für einen alternativen Ansatz?

Viele Grüße,

Max

CoolTux

Unterschiedliche Strukturen. Einmal Licht und Geräte. Und als zweites Rolladen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Sirel

Hi CoolTux,

ja, habe ich auch schon überlegt. Werde ich wohl auch so umsetzen.

Danke fürs mitdenken :)

Max

rudolfkoenig

ZitatZur Sache: Mit einer structure bekommst Du das nicht gelöst.

Aber mit der Hilfe von cmdalias sollte das doch funktionieren:
define p1 cmdalias set dimDevice.* \d+ AS set $EVTPART0 dim $EVTPART1
define p2 cmdalias set posDevice.* \d+ AS set $EVTPART0 position {(100-$EVTPART1)}