FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Canon.Fritz am 04 Juni 2019, 18:38:36

Titel: #gelöst# Schrittkette bauen ?
Beitrag von: Canon.Fritz am 04 Juni 2019, 18:38:36
Moin,

ich habe folgendes Problem.
Ich verwende zum Steuern meiner Markise das Modul ROLLO.

Wenn ich nun aber meine Markise auf 100% ausfahre hängt mein Markisentuch leicht durch.
Um das Tuch zu spannen möchte ich die Markise wieder kurz nach oben fahren.
Nun habe ich vor folgende "Schrittkette" als doif oder ähnliches zu implementieren.

- ist die Markise 100% ausgefahren -> warte 3 Sekunden
--nach Ablauf der Wartezeit -> fahre Markise für 2 Sekunden nach oben
---nach der 2 Sekundenfahrt soll die Markise stoppen
----sobald die Markise komplett eingefahren wurde und irgendwann wieder 100 % erreicht -> starte mit Schritt 1

meine ersten Gehversuche waren aber leider nicht ganz so erfolgreich ...
##1 ## wenn 100.0% ausgefahren, dann 3 Sek. warten und hochfahren
([Markise:pct] == 10) (set Markise open)

##2 ## wenn hochgefahren wird nach 2 Sek. anhalten
DOELSEIF ([Markise:state] eq "drive-up") (set Markise stop)


Um die Wartezeiten abzubilden habe ich folgendes Attribut gesetzt.
attr Markise_spannen wait 3:2

Ich hoffe ihr könnt mir mit meinem Code auf die Sprünge helfen.
Titel: Antw:Schrittkette bauen ?
Beitrag von: Frank_Huber am 04 Juni 2019, 18:42:16
Wäre es nicht einfacher die Fahrzeit um 2 sek zu verkürzen?

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:Schrittkette bauen ?
Beitrag von: Canon.Fritz am 04 Juni 2019, 18:46:20
Hallo Frank,

leider nicht, da das Tuch ab ca. 80 % Prozent leicht durchhängt.
Eine mechanische Nachspannung der Zugfedern ist leider auch nicht mehr möglich.
Titel: Antw:Schrittkette bauen ?
Beitrag von: Byte09 am 04 Juni 2019, 18:46:53
Zitat von: Canon.Fritz am 04 Juni 2019, 18:38:36
Moin,

ich habe folgendes Problem.
Ich verwende zum Steuern meiner Markise das Modul ROLLO.

Wenn ich nun aber meine Markise auf 100% ausfahre hängt mein Markisentuch leicht durch.
Um das Tuch zu spannen möchte ich die Markise wieder kurz nach oben fahren.
Nun habe ich vor folgende "Schrittkette" als doif oder ähnliches zu implementieren.

- ist die Markise 100% ausgefahren -> warte 3 Sekunden
--nach Ablauf der Wartezeit -> fahre Markise für 2 Sekunden nach oben
---nach der 2 Sekundenfahrt soll die Markise stoppen
----sobald die Markise komplett eingefahren wurde und irgendwann wieder 100 % erreicht -> starte mit Schritt 1

meine ersten Gehversuche waren aber leider nicht ganz so erfolgreich ...
##1 ## wenn 100.0% ausgefahren, dann 3 Sek. warten und hochfahren
([Markise:pct] == 10) (set Markise open)

##2 ## wenn hochgefahren wird nach 2 Sek. anhalten
DOELSEIF ([Markise:state] eq "drive-up") (set Markise stop)


Um die Wartezeiten abzubilden habe ich folgendes Attribut gesetzt.
attr Markise_spannen wait 3:2

Ich hoffe ihr könnt mir mit meinem Code auf die Sprünge helfen.

ich bringe hier :
Zitatwenn 100.0% ausgefahren, dann 3 Sek. warten und hochfahren
([Markise:pct] == 10) (set Markise open)

gerade die 100% und pct == 10 nicht unter einen hut . ist das ein tippfehler ?
muss es ein DOIF sein , oder nimmst du auch alternativen ?

gruss Byte09
Titel: Antw:Schrittkette bauen ?
Beitrag von: Frank_Huber am 04 Juni 2019, 18:49:17
Ach so, OK.
dann DOIF (pct = 100) (set hochfahren 2 sek)
Attribut wait 3
Attribut do always

Gesendet von meinem Doogee S60 mit Tapatalk

Musst nur nochmal schauen welches reading im rollo das Ende der Fahrt zeigt.
Eventuell dann auch (fahrt = Ende and pct = 100)
Titel: Antw:Schrittkette bauen ?
Beitrag von: Ellert am 04 Juni 2019, 18:50:49
Ich kenne Rollo nicht, normalerweise sollte sowas mit Sequenzen funktionieren
([Markise:pct] == 10) (set Markise open) (set Markise stop)
DOELSEIF ([Markise:pct] == <Wert für "sobald die Markise komplett eingefahren wurde">)

wait 3,2
Titel: Antw:Schrittkette bauen ?
Beitrag von: Canon.Fritz am 04 Juni 2019, 18:51:36
Sorry,

mit pct == 10 war ein versuch um die Funktion auszuprobieren, damit die Markise zu Testzwecken immer ganz ausfahren muss.

Natürlich müsste es später dann pct == 100 heißen.
Titel: Antw:Schrittkette bauen ?
Beitrag von: Canon.Fritz am 04 Juni 2019, 19:20:14
Zitat([Markise:pct] == 10) (set Markise open) (set Markise stop)
DOELSEIF ([Markise:pct] == <Wert für "sobald die Markise komplett eingefahren wurde">)

wait 3,2

Ich habe jetzt folgendes im doif stehen
([Markise:pct] == 10) (set Markise open) (set Markise stop)
DOELSEIF ([Markise:pct] == <Wert für "sobald die Markise komplett eingefahren wurde">)



den wait habe ich per attr eingebunden, also nicht direkt im Skript.

Leider rechnet er nur im ROLLO Modul die Prozente rückwärts. An die Ansteuerung zum hochfahren geht kein Befehl raus.
Titel: Antw:Schrittkette bauen ?
Beitrag von: Canon.Fritz am 04 Juni 2019, 19:23:50
Zitatdann DOIF (pct = 100) (set hochfahren 2 sek)
Attribut wait 3
Attribut do always

Gesendet von meinem Doogee S60 mit Tapatalk

Musst nur nochmal schauen welches reading im rollo das Ende der Fahrt zeigt.
Eventuell dann auch (fahrt = Ende and pct = 100)

Nun funktioniert alles wie es soll  :D

Vielen Dank @  Frank_Huber für die passende Lösung.

Anbei die Lösung die nun bei mir im Einsatz sein wird
([Markise:pct] == 100) (set Markise open) ## wenn 100.0% ausgefahren, dann 2 Sek. warten
([Markise:state] eq "drive-up")  (set Markise stop) ## nach Wartezeit hochgefahren und nach 2 Sek. anhalten


attr wait 2,2
Titel: Antw:Schrittkette bauen ?
Beitrag von: Frank_Huber am 04 Juni 2019, 19:47:23
Zitat von: Canon.Fritz am 04 Juni 2019, 19:20:14
Ich habe jetzt folgendes im doif stehen
([Markise:pct] == 10) (set Markise open) (set Markise stop)
DOELSEIF ([Markise:pct] == <Wert für "sobald die Markise komplett eingefahren wurde">)



den wait habe ich per attr eingebunden, also nicht direkt im Skript.

Leider rechnet er nur im ROLLO Modul die Prozente rückwärts. An die Ansteuerung zum hochfahren geht kein Befehl raus.
Prozente rückwärts kannst anpassen. Attribut Modus oder so. --> commandred

Gesendet von meinem Doogee S60 mit Tapatalk
Titel: Antw:Schrittkette bauen ?
Beitrag von: Ellert am 04 Juni 2019, 23:28:27
Zitat von: Canon.Fritz am 04 Juni 2019, 19:20:14
Ich habe jetzt folgendes im doif stehen
([Markise:pct] == 10) (set Markise open) (set Markise stop)
DOELSEIF ([Markise:pct] == <Wert für "sobald die Markise komplett eingefahren wurde">)



den wait habe ich per attr eingebunden, also nicht direkt im Skript.

Leider rechnet er nur im ROLLO Modul die Prozente rückwärts. An die Ansteuerung zum hochfahren geht kein Befehl raus.

<irgendwas> bedeutet, dass der Benutzer die Angabe festlegt.