Jalousie winkel einstellen

Begonnen von martinp876, 29 Juli 2014, 20:45:29

Vorheriges Thema - Nächstes Thema

martinp876

hi,

was mich stört in dem System war schon lange, dass man keinen definierten Winkel von Jalousien einstellen kann.
Vielleicht hat einer eine bessere Lösung, hier meine:

ein normales kommando ist nicht hinreichend, da es prozentual arbeitet. Da kommt bei jedem Rollo unterschiedlicher Länge etwas anderes raus. Fahrzeiten kann man in Kommandos m.W. nicht eingeben. Nur in den Registern zu einem Peer.

Daher hier mein Ansatz - high level.
Definieren 2 templates:
templ A) fährt das Rollo in definierte Stellung down. Dazu fährt es etwa 2 sec "zu"
templ B) fährt kurze steps auf

Jedes Rollo ist mit dem gleiche virtuellen Channel (an besten einem der vccu) gepeert. Hier Channel 2, Name ccu_Btn2.

Die beiden Templates werden in HMInfo definiert
{fhem "set hm templateDef blindTurnBtn driveTime \"button to rotate Blind\" \
MaxTimeF:p0 \
BlJtDlyOff:dlyOn BlJtRefOff:dlyOn BlJtRampOff:dlyOn BlJtOff:dlyOn \
BlJtDlyOn:refOn  BlJtRefOn:rampOn BlJtRampOn:rampOn BlJtOn:dlyOn"}
{fhem "set hm templateDef blindCloseBtn closeTime \"button to rotate Blind Up\" \
MaxTimeF:p0 \
BlJtDlyOff:refOff BlJtRefOff:rampOff BlJtRampOff:rampOff BlJtOff:dlyOff \
BlJtDlyOn:dlyOff  BlJtRefOn:dlyOff BlJtRampOn:dlyOff BlJtOn:dlyOff"}

nun kann man jedes Rollo peeren und einrichten
set ccu_Btn2 peerChan 0 RolloW single
set hm templateSet RolloFH blindTurnBtn ccu_Btn2:long 0.3
set hm templateSet RolloFH blindCloseBtn ccu_Btn2:short 1.8


0.3 ist die fahrzeit, die der Rollo bei einer message macht, eben so 1.8.
1.8 ist die Zeit, die ein Rollo zum kompletten wenden braucht - um sicher "Lamellen geschlossen" zu erreichen.
Minimale fahrzeit ist 100ms, also 0.1

mit
set RolloW press short ccu_Btn2
bringt man das Rollo in "zu nach Unten"
set RolloW press long ccu_Btn2 10
sendet ein long mit 10 messages nach oben. das sind theoretisch 0.3*10, also 3 sec insgesamt
set RolloW press long ccu_Btn2 10 0.3
setzt die Wartezeit  zwischen den Messages auf 300ms.

Zu beachten und zu testen ist das zusammenspiel fahrzeit und wartezeit. Man muss min 250ms zwischen den messages haben, sonst gibt es protokoll-probleme. Stellt man 0.1sec als step ein wird es ruckeln, der Motor schaltet immer an/aus. Nicht schön, evtl nicht gut für den Motor - auf dauer.

Die passende zusammenstellung der beiden Zeiten muss man für seinen Rollotyp austesten.

Das template kann man in einem "user-config" einstellen, welches nach dem Init ausgeführt wird.

Noch einmal: Man kann alle Rollos mit dem gleichen Button peeren. Ein
set ccu_Btn2 press
würde alle Rollos fahren, das löst man aber nicht aus (macht jedenfalls keinen sinn)

falls es andere Vorschläge oder vorschläge zur verbesserung gibt, gerne.

Ach ja, will man es nutzen, den Rollo definiert schräg stellen macht man dann ein
set RolloW press short ccu_Btn2
set RolloW press long ccu_Btn2 3

eldrik

Hallo Martin,

danke für das Beispiel, funktioniert wie gewünscht :)

Ich wollte jetzt bei einem HM-LC-Bl1PBU-FM meine webcmd Definition erweitern und das Event viertel absetzen, auf welches ich mit einem notify über "viertelschraeg" den Befehl set $NAME press long vccu_Btn2 1 reagier.

Leider klappt es nicht wie von mir gedacht.

Unknown argument viertel, choose one of clear:readings,trigger,register,rssi,msgEvents,all down fwUpdate getConfig getRegRaw getSerial getVersion inhibit:on,off off on pair pct:slider,0,1,100 peerBulk peerIODev press raw regBulk regSet reset sign:on,off statusRequest stop toggle unpair up

mein eventMap
/on:Auf/ /viertel:viertelschraeg/ /off:Zu/ /stop:Stop/ /pct 70:70/ /pct 50:50/ /pct 30:30/

mein webCmd
Auf:Zu:70:50:30:viertel:Stop

Gibt es eine elegantere Variante?

Das webCmd und eventMap auf 1/4:1/2:3/4 zu kürzen geht leider auch nicht :/

Greetz
Eldrik

martinp876

Zitatmein eventMap
/on:Auf/ /viertel:viertelschraeg/ /off:Zu/ /stop:Stop/ /pct 70:70/ /pct 50:50/ /pct 30:30/

mein webCmd
Auf:Zu:70:50:30:viertel:Stop

Du gibst immer den 2. Wert im webCmd an, nur bei viertel nicht.

eventMap /on:Auf/ /press long vccu_Btn2:viertelschraeg/ /off:Zu/ /stop:Stop/
webCmd Auf:Zu:70:50:30:viertelschraeg:Stop

ist das besser? Habe es nicht getestet.
pct 50:50
brauchst du nicht, da pct eh nicht notwendig ist. Kostet nur performance

eldrik

ja Perfect klappt merci :)

ist es auch möglich gleich beide Befehle im eventmap unter zu bringen? press short ccu_Btn2 und press long vccu_Btn2 1

Greetz
Eldrik

martinp876

wohl nicht - du musst ein Delay einbauen damit die schaltungen nacheinander ausgeführt werden