HM-SEC-WIN - zulässige Werte im "level"-Kommando?

Begonnen von mmattern, 09 Juli 2014, 23:57:29

Vorheriges Thema - Nächstes Thema

mmattern

Zitat von: speedy_gonzales am 20 Juli 2014, 14:07:24
Der Befehl z.B. level 10 0 100 wird interpretiert als "Kippe auf 10%, Fahre dann unverzüglich auf 0%, Verriegel". Entsprechend wird bei Null auf 0% gekippt, was faktisch ein Schliessen ist.

Hallo Norbert,

also hier mal mein Verständnis des "level"-Befehls:
Er hat drei Parameter:
1) Position in %, die anzufahren ist
2) Zeit in Sekunden, bis nach Anfahren der Position aus 1) das Fenster verschlossen und verriegelt wird
3) Geschwindigkeit des Motors in Prozent (0-100) für die Aktionen "Anfahren Position aus 1" und "Schließen des Fensters"

Insofern bedeutet "level 10 0 100": Fahre das Fenster mit voller Geschwindigkeit auf 10%, warte dort 0 Sekunden und schließe/verriegle dann.

Wenn du das Fenster dauerhaft öffnen willst, müsstest du den zweiten Parameter auf "ignore" setzen.

Und wenn für dich "Fenster offen" bedeutet, dass es zu 100% geöffnet ist und du einen Befehl "öffnen" implementieren willst, müsstest du eigentlich nur schreiben: "level 100 ignore 100".

Und ein "schließen"-Befehl ist "level 0 0 100" - und davor sollte man nur abfangen, dass er nicht bei verriegeltem Fenster ausgeführt wird. Sonst würde er nämlich entriegeln, Fenster auf 0% fahren (also bleiben, wo er ist) und dann nach 0 Sekunden schließen und verriegeln... das ganze mit 100% Motorgeschwindigkeit...

Was genau ist gerade für dich das Problem?
2x Raspberry Pi, 2x HM-CFG-LAN, 2x HM-CFG-USB, 2x HM-ES-PMSw1-Pl, 3x HM-LC-BL1-FM, 10x HM-LC-Bl1PBU-FM, 6x HM-LC-Sw1PBU-FM-CustomFW, 2x HM-PB-2-WM55-2, 4x HM-PB-6-WM55, 2x HM-SEC-MDIR-2, 6x HM-SEC-RHS, 2x HM-SEC-WIN, 2x HM-Sys-sRP-Pl

speedy_gonzales

Hallo Michael,

ich hatte die letzten zwei Tage andere Baustellen ....

Zurück zum Thema ...

Deine Interpretation der Syntax entspricht zu 100% meiner, trotzdem Danke für die angebotene Erklärungs-Hilfe an dieser Stelle.

Zitat von: mmattern am 20 Juli 2014, 21:46:57
Was genau ist gerade für dich das Problem?

Es gibt kein echtes Problem. Alles funktioniert.

Dich hat die Verwendung von "ignore" gestört, weil dies im Log zu einer Fehlermeldung führte.
MIch stört die Verwendung von "0" in der Syntax beim Schliessbefehl von der Logik her. Warum?

Vor der Änderung von Martin lautete der Öffnenbefehl

level 100 ignore 100

und der Schliessbefehl

level ignore 0 100

Das ist von der Logik richtig, weil es keinen echten Öffnenbefehl sondern nur einen Schliessbefehl gibt. Die Winmatic fährt aufgrund des ersten Parameter einen Kippwinkel an und schliesst aufgrund des zweiten Parameter nach der angegebenen Zeit.

Der zweite Parameter bedeutet also"Schliesse nach der angegebenen Zeit". Das "ignore" im zweiten Parameter bedeutet "Ignoriere die Zeitangabe und tue  nichts".

Dieselbe Logik hätte ich gerne beim Schliessen. Der erste Parameter bedeutet "Fahre einen bestimmten Kippwinkel an". Wäre "ignore" für den ersten Parameter erlaubt, dann würde das analog zum "ignore" im zweiten Parameter bedeuten "Ignoriere den Kippwinkel und tue nichts, Mach weiter mit dem zweiten Parameter und schliesse nach der angegebenen Zeit".

Eine "0" im ersten Parameter ist nicht das Gleiche wie ein"ignore", sondern bedeutet "Fahre einen Kippwinkel von 0 Prozent an.

Welche Auswirkung hat die Verwendung von "0" im ersten Parameter, wenn das Fenster geschlossen ist. Die Winmatic entriegelt, fährt auf Position 0Prozent (kippt das Fenster also nicht) und verriegelt wieder.

Als noch "ignor" als Eingabe möglich war, passierte dieses Verhalten nicht und es war keine zusätzliche Routine zum Abfangen notwendig. Für jemanden, der zum ersten Mal die Winmatic ansteuert, ist das Entriegeln des Fensters, wenn es geschlossen ist, schwierig zu verstehen und auf die Lösung dieses "Fehlverhalten" abzufangen mit einer Routine muss man erst einmal kommen. Wahrscheinlicher ist, dass man länger an den Parameter rumprobiert, weil man vermutet, hier läge der Fehler.

Zusammenfassung: es gibt kein "Problem", lediglich das Verhalten der "Winmatic" ist unerwartet.

Ich denke, Martin hat mein Anliegen verstanden.

Viele Grüße
Norbert

martinp876

Zitatlevel ignore 0 100
halte ich jetzt einmal für sinnlos. da sollte man schon level 0 0 100 setzen.
Du meinst man sollte den alten level noch einmal senden? Weglassen geht nicht.

Was du willst ist hier ein "lock" statt "ignore". Das werde ich einbauen, gibt es jetzt noch nicht.

Aktuell geht
level 10             #fahre nach 10% mit speed 30% und bleibe dort immer
level 10 111600 #fahre nach 10% mit speed 30% und bleibe dort immer
level 10 ignore   #fahre nach 10% mit speed 30% und bleibe dort immer

level 10 20       #fahre nach 10% mit speed 30% und bleibe dort 20 sec
level 10 65535 #fahre nach 10% mit speed 30% und bleibe dort 65535 sec

level 10 65535 100 #fahre nach 10% mit speed 100% und bleibe dort 65535 sec

neu wird sein
level lock             #fahre nach 0%-Locked mit speed 30%, und bleibe dort immer
level lock  20       #fahre nach 0%-Locked mit speed 30%, und bleibe dort 20sec dann lock (wohl sinnlos)

gerade eingecheckt








speedy_gonzales

Hallo Martin,

perfekt, das ist genau das, was ich will: einen eigenständigen Lock Befehl.

Brauchst Du noch

Zitat von: martinp876 am 20 Juli 2014, 17:47:51
kannst du dennoch probieren, dass es klappt? mache 2 Versuche und logge die rohmessages
level 10 1000 100
statusRequest

level 10 111600 100
statusRequest

der statusRequest nachdem das Fenster in der position ist hätte ich gerne gesehen (die messages)


Ich schaffe es nicht die rohmessages zu erzeugen bzw. zu liefern. Frag nicht warum, ich weiss es noch nicht. Ich arbeite nach Anleitung, kann aber keine Rohmessages finden.

Die einzige Meldung, die ich auf Kommandozeilenebene erhalte ist:

fhem> set WZ_Fenster_Win level 100 100 100
fhem> set WZ_Fenster_Win statusRequest
fhem> set WZ_Fenster_Win level 100 111600 100
reloclDelay range 0..65535 or ignore
fhem> set WZ_Fenster_Win statusRequest

aber keine Rohmessages in der Log Datei.

Die Lösung meines Rohmessage Problem verschiebe ich gerne und teste gleich mal den neuen lock Befehl.

Danke und Grüsse

Norbert

Norbert

speedy_gonzales

Hier der Test:

set WZ_Fenster_Win level 100 ignore 100

Fenster kippt auf 100% ohne Verzögerung mit max. Geschwindigkeit.

set WZ_Fenster_Win level lock

Fenster schliesst und verriegelt ohne Verzögerung mit sehr niedriger Geschwindigkeit (lautlos).

set WZ_Fenster_Win level lock

Fenster bleibt verschlossen. Die Winmatic entriegelt und verriegelt nicht.

Der Test ist erfolgreich. Die Winmatic verhält sich, wie ich es erwarten würde. Ein Abfangen des Enriegelns bei geschlossenem Fenster ist nicht mehr notwendig.

Jetzt bin ich mehr als zufrieden und begeistert, dass Martin so schnell Lösungen, auch für kleine "Wünsche", hat.

Martin, vielen Dank

Norbert

P.S.: Ich kenne mich nicht aus mit den Forumsfunktionen und weiss nicht, wie man dieses Thema auf "gelöst" setzt, oder ob das Thema überhaupt als "gelöst" gekennzeichnet werden muss. Schliesslich ist ja eine neue Funktion hinzugekommen.

martinp876

ZitatFenster schliesst und verriegelt ohne Verzögerung mit sehr niedriger Geschwindigkeit (lautlos).
das default in HM wäre 50%. Jemand hat in FHEM speed-default auf 30% gesetzt. Kann ich ändern - aber wenn dann auf 50%. Max-speed ist m.E. meist keine gute default-wahl.

Zitatset WZ_Fenster_Win level lock
Fenster bleibt verschlossen. Die Winmatic entriegelt und verriegelt nicht.
hm - schlecht. oder heisst das  !(entriegelt && verriegelt) oder ( entriegelt && ! verriegelt). Fehlen die Klammern ;)
Muss wohl ersteres sein, sonst könntest du nicht zufrieden sein.

Die Rohmessages stehen übrigens im Systemlogfile - nicht in den Event-logs!


speedy_gonzales

Hallo Martin,

der lautlose Betrieb ist der Normalbetrieb im Automatikmodus. Nur zum Testen oder auf Tastendruck soll die Winmatic mit maximaler Geschwindigkeit arbeiten. Also von mir aus kann das so bleiben, wie es jetzt ist, aber jeder Jeck ist anders, also mach, was Du denkst.

Ich verwende bisher 20% Geschwindigkeit, das ist fast nicht hörbar, nur das Verriegeln/Entriegeln ist als leises Surren hörbar.

Zu Punkt 2 fällt mir nur ein, dass die deutsche Grammatik nicht eins zu eins in mathematische Logik bzw. Deine Klammersyntax übersetzt werden kann.

Damit es verständlicher wird, müsste es heißen "entriegelt nicht und verriegelt nicht", also in Deiner Klammerlogik die erste Version.

Oder noch klarer: Das Ding macht was es soll: nämlich nichts, wenn das Fenster zu ist. :-).

Wegen der Rohmessages muss ich nochmal ran, bin Anfänger, was das Forum bzw. Unterstützung angeht, aber das krieg ich noch hin. Dein Tipp geht jedenfalls in die richtige Richtung. Ich glaube, ich habe die Systemlog abgeschaltet, jedenfalls wird bei mir nur in die Datei fhem-Datum.log geschrieben.

Also bis auf weiteres erstmal Danke.

Viele Grüsse

Norbert