FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Spartacus am 12 November 2015, 20:12:57

Titel: fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 12 November 2015, 20:12:57
Hallo,
ich habe das Problem, dass ich zur Positionierung meiner Rolladen immer die Position und den Winkel als Parameter angeben muss. Das ist in einigen Funktion unpraktisch, z.B. Dropdown.
set Rolladen position 40 0,
wobei "40" die prozentuale Position und "0" der Winkel ist. Der Winkel ist immer "0" und kann eigentlich weggelassen werden.
Wie löst man das am Besten?
Spartacus.




Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: marvin78 am 12 November 2015, 20:19:49
eventMap
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 12 November 2015, 20:36:37
Hallo
das würde bedeuten:
eventmap position 40 0:pos 40
funktioniert dann für "pos 40"
ich möchte jetzt nicht für jeden Prozentwert ein eigenes Kommando definieren, Wie erreiche ich es, dass der Prozentwert variable übergeben werden kann?
Spartacus
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: justme1968 am 12 November 2015, 20:40:32
schau dir mal cmdalias an.
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 12 November 2015, 21:12:12
Hi,
habe ich mir angesehen, aber ich verstehe den Zusammenhang zu meinem Problem nicht!
Sorry, ich benötige weitere Hilfe, um es zu verstehen!
Spartacus



Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: marvin78 am 12 November 2015, 21:17:49
Du kannst mit cmdalias eigene Befehle definieren.

Bsp:

define NAME cmdalias rolpos .* AS {fhem("set Rolladen position $EVENT 0")}


Verwendung

rolpos 40
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 12 November 2015, 21:35:31
Hallo,
vielen Dank für die Unterstützung. Ich habe den Befehl jetzt noch nicht getestet, aber so wie ich es derzeit verstehe, baue ich einen Befehl, der sich nur auf das Gerät "Rolladen" bezieht. Das heisst, wenn ich 15 Rolladen habe, dann muss ich für jeden Rolladen ein neues Kommando definieren.

Das hilft mir m.E. in der ReadingsGroup nicht weiter. Der Hintergrund ist, dass ich neben den Schaltknöpfen "auf" und "ab" ein Dropdown mit Positionen (10,20,30,...100) für alle Rolladen erstellen möchte!

Spartacus
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: marvin78 am 12 November 2015, 21:40:10
Hast du dir cmdalias wirklich in der commandref angesehen? Ich kann es kaum glauben. Analog zu notify kannst du auch hier mit $EVTPART arbeiten. Es geht also auch sowas:

define NAME cmdalias rolpos .* AS {fhem("set $EVTPART0 position $EVTPART1 0")}

Verwendung

rolpos Rolladen1 40

Sorry, aber das hier muss ich nun schreiben: Ein wenig Mitdenken würde helfen.
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 12 November 2015, 21:55:04
Hallo,
ok. Das habe ich jetzt, glaub ich, verstanden! Wie ich das jetzt in die ReadingsGroup kriege, muss ich mal gucken....
Gruß,
Spartacus
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 13 November 2015, 16:50:17
Hallo,
so richtig glücklich bin ich mit cmdalias noch nicht. Ich möchte das doch lieber über eventmap lösen, da ich das als Attribut hinzufügen kann.

Ich habe gesehen, dass man in eventmap auf reguläre Ausdrücke benuzten kann.
Mein Device gibt in den Readings "position x" zurück. Ohne Winkel.
Wenn ich pos x sende, soll beim Device position x 0 ankommen.
Das habe ich versucht, aber irgendwie klappt das hinten und vorne nicht. Muss auch gestehen, das perl immer noch nicht mein Freund ist!

attr eventmap device  eventMap { dev=>{"^position(.*)"=>"pos$1"}, usr=>{"^pos(.*)"=>"position$1 0"}, fw=>{"^pos(.*)"=>"position$1 0"} }

Spartacus
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 19 November 2015, 20:02:56
Hallo,
also irgendwie kriege ich das nicht hin. Sobald ich die o.a. Zeile in fhem eintippe, stürzt fhem ab.Bin ich mit eventmap auf dem falschen Weg? Wo habe ich den Fehler..

Spartacus
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: ph1959de am 20 November 2015, 06:30:56
Zitat von: Spartacus am 19 November 2015, 20:02:56
also irgendwie kriege ich das nicht hin. Sobald ich die o.a. Zeile in fhem eintippe, stürzt fhem ab.Bin ich mit eventmap auf dem falschen Weg? Wo habe ich den Fehler..
Hast Du wirklich ein Device eventmap, bei dem Du das Attribut device auf den Wert "eventMap ..." setzen willst?

Warum gehst Du nicht über die Details des Device. Anderenfalls musst Du Dir die Syntax von eventMap wohl noch mal genauer anschauen.

Peter
Titel: Antw:fhem Befehl umdefinieren, oder welche Lösung ist denkbar?
Beitrag von: Spartacus am 20 November 2015, 09:59:11
Hallo,
danke für den Hinweis. Da hat cut&paste zugeschlagen...

Ich meine natürlich, dass
attr rollade eventMap { dev=>{"^position(.*)"=>"pos$1"}, usr=>{"^pos(.*)"=>"position$1 0"}, fw=>{"^pos(.*)"=>"position$1 0"} }
nicht funktioniert! Der Befehl pos wird nicht angelegt. Es wird ein Befehl "0" angelegt und ich verstehe noch nicht warum! Die Syntax habe ich versucht mit Hilfe der commandref aufzubauen, aber offenbar ist mir das nicht gelungen! Wo muss ich da ansetzen?
Spartacus