44_ROLLO: Modul zur präzisen Steuerung von Rollläden

Begonnen von KernSani, 14 Januar 2019, 00:11:37

Vorheriges Thema - Nächstes Thema

flummy1978

Hallo Oli,

vielen Dank dass Du Dir die Zeit dafür genommen hast, Dir das in Ruhe anzuschauen:

Zitat von: KernSani am 15 Juni 2020, 23:45:08
Wäre es für deinen Fall nicht auch möglich, den "drive" Befehl zu verwenden? Der nimmt zwar Sekunden, nicht pct als Parameter, aber für dich sollte das doch ausreichen, oder?
Äöhm.. ja.... warte mal ich such mal ne Ausrede, die mich da halbwegs adäquat rausboxt  ;D
Ne mal im Ernst: wäre wahrscheinlich ohne Problme einsetzbar. Warum ich diese Funktion übersehen hab ist mir ein Rätsel .. sorry :( Wahrscheinlich hab ich gar nicht danach geschaut, weil ich die gleichen Sachen bei HM Geräten hatte. Dort hat das Device selbst die Funktion eben auch pctxx+1 zu fahren und daher deswegen wahrscheinlich übersehen.
ABER zu meiner Ausrede passt auch: Wenn ich zeitlich gesteuert fahre ist es nicht sicher dass ich 1000%ig bei 98 / 99 rauskomme - Meine devstateicon zeigen aber bei 98 99 bestimmte icons an und das Device erlaubt dann eine "flip" Steuerung der Jalousie.

Zitat von: KernSani am 15 Juni 2020, 23:45:08
Egal, ich habe ein neues Attribut eingebaut (rl_stepUpDown) mit dem die Schrittweite für die up- und down-Befehle gesetzt werden kann (default bleibt 10). Passt das für dich?
Zunächst einmal die Änderung: Für diesen einen MEINEN Fall würde die Änderung wohl reichen (sofern sie funktioniert) - Aber ich könnte mir vorstellen, dass der nächste dann wieder +2 -3 oder +4 fahren will. Dann wiederum einmal +1 und dann -2 usw.... Das wäre mit einem einzigen Attribut nicht möglich. Vorschlag von meiner Seite:
Statt dem Attribut rl_stepUpDown lieber

#44 "up"        => "textField",
#45 "down"      => "textField",

nehmen und den Benutzer selbst entscheiden lassen welche Schritte er dort einsetzt. Mache ich nun up1 oder down3 oder up7 oder down15 ist alles abgedeckt und ich habe Spielraum in alle Richtungen.
Meiner Meinung nach bietet diese Lösung lediglich den Nachteil dass:
- up / down für bestehende Installation auf leeres Argument geprüft werden muss. In dem Fall würde dann die "alte" Standard Einstellung '10' greifen
- up / down muss auf ZAHLEN geprüft werden
-> restliche Berechnung erfolgt analog zum bisherigen.
Zitat
Könntet ihr angehängte Version mal testen?
Habe ich gemacht. Leider mit wenig Erfolg:
Habe das Attribut mit 1 belegt und dann up gefahren. (leider noch nicht um Log) Das Device ist dann runter gefahren (falsch herum). Danach hab ich ein paar mal hin und her gedrückt (verbose5 Log)  bin ich dann auf pct 83 gefahren und habe ein paar mal up / down gedrückt. Bis auf einmal 83->80 (was auch nicht 1 sondern 3 entspricht) ist das Device sonst nicht gefahren weil er ja "drive from 80 to 80" anzeigt. Die letzten beiden Einträge sind sogar mit "rl_stepUpDown 2" und es fuhr trotzdem nicht. Irgendwie passt auch die Richtung nach der Berechnung nicht, weil jedes mal im Log steht: set to up ..... direction: down

2020.06.16 15:10:56.051 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:11:03.197 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (up,)
2020.06.16 15:11:03.197 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to up, ()
2020.06.16 15:11:03.197 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 100, up
2020.06.16 15:11:03.199 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:11:03.199 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 100 to 100. command: up. state: closed
2020.06.16 15:11:03.200 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 100 -> 100 / direction: down
2020.06.16 15:11:03.201 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 100 to 100
2020.06.16 15:11:03.201 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:11:03.201 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:11:03.241 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:11:17.450 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (down,)
2020.06.16 15:11:17.450 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to down, ()
2020.06.16 15:11:17.451 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 100, down
2020.06.16 15:11:17.472 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:11:17.473 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 100 to 100. command: down. state: closed
2020.06.16 15:11:17.473 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 100 -> 100 / direction: down
2020.06.16 15:11:17.474 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 100 to 100
2020.06.16 15:11:17.474 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:11:17.474 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:11:17.549 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:11:23.214 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (pct,83)
2020.06.16 15:11:23.214 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to pct, (83)
2020.06.16 15:11:23.219 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 83, 83
2020.06.16 15:11:23.220 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 83, pct-83
2020.06.16 15:11:23.268 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:11:23.268 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 100 to 83. command: pct-83. state: closed
2020.06.16 15:11:23.268 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 100 -> 83 / direction: up
2020.06.16 15:11:23.269 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going up: from 100 to 83
2020.06.16 15:11:23.270 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 7.65
2020.06.16 15:11:23.270 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) calculateDriveTime: oldpos=100,newpos=83,direction=up,time=45,steps=17,drivetime=9.15
2020.06.16 15:11:23.327 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) execute following commands: set dev_terrasse_jalou_tuer open; ;
2020.06.16 15:11:23.382 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) stop in 9.15 seconds.
2020.06.16 15:11:32.001 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Timer
2020.06.16 15:11:32.072 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Stop
2020.06.16 15:11:32.072 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) stops from drive-up at pct 83
2020.06.16 15:11:32.175 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) stopped by excuting the command: set dev_terrasse_jalou_tuer stop
2020.06.16 15:11:32.175 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) updating state to pct-80
2020.06.16 15:11:44.948 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (up,)
2020.06.16 15:11:44.948 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to up, ()
2020.06.16 15:11:44.954 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, up
2020.06.16 15:11:44.989 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:11:44.989 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 83 to 80. command: up. state: pct-80
2020.06.16 15:11:44.990 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 83 -> 80 / direction: up
2020.06.16 15:11:44.991 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going up: from 83 to 80
2020.06.16 15:11:44.991 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 1.35
2020.06.16 15:11:44.992 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) calculateDriveTime: oldpos=83,newpos=80,direction=up,time=45,steps=3,drivetime=1.85
2020.06.16 15:11:45.024 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) execute following commands: set dev_terrasse_jalou_tuer open; ;
2020.06.16 15:11:45.079 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) stop in 1.85 seconds.
2020.06.16 15:11:45.297 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:11:46.001 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Timer
2020.06.16 15:11:46.060 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Stop
2020.06.16 15:11:46.061 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) stops from drive-up at pct 80
2020.06.16 15:11:46.115 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) stopped by excuting the command: set dev_terrasse_jalou_tuer stop
2020.06.16 15:11:46.116 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) updating state to pct-80
2020.06.16 15:11:57.080 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (down,)
2020.06.16 15:11:57.081 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to down, ()
2020.06.16 15:11:57.081 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, down
2020.06.16 15:11:57.103 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:11:57.104 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: down. state: pct-80
2020.06.16 15:11:57.104 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:11:57.105 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:11:57.106 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:11:57.106 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:11:57.150 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:12:02.906 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (down,)
2020.06.16 15:12:02.907 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to down, ()
2020.06.16 15:12:02.911 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, down
2020.06.16 15:12:02.914 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:12:02.914 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: down. state: pct-80
2020.06.16 15:12:02.915 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:12:02.916 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:12:02.917 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:12:02.918 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:12:03.015 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:12:12.923 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (down,)
2020.06.16 15:12:12.924 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to down, ()
2020.06.16 15:12:12.925 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, down
2020.06.16 15:12:12.928 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:12:12.928 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: down. state: pct-80
2020.06.16 15:12:12.929 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:12:12.930 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:12:12.931 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:12:12.932 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:12:13.043 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:12:31.088 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Attr
2020.06.16 15:12:31.311 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:12:34.693 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (down,)
2020.06.16 15:12:34.694 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to down, ()
2020.06.16 15:12:34.696 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, down
2020.06.16 15:12:34.698 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:12:34.700 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: down. state: pct-80
2020.06.16 15:12:34.701 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:12:34.702 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:12:34.703 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:12:34.704 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:12:34.777 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:12:40.936 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (up,)
2020.06.16 15:12:40.938 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to up, ()
2020.06.16 15:12:40.939 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, up
2020.06.16 15:12:41.009 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:12:41.010 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: up. state: pct-80
2020.06.16 15:12:41.011 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:12:41.012 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:12:41.012 4: ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:12:41.013 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:12:41.059 5: ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get



2020.06.16 15:27:50.865 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (down,)
2020.06.16 15:27:50.866 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to down, ()
2020.06.16 15:27:50.867 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, down
2020-06-16 15:27:50.908 ROLLO Rollo_EG_WZ_terrasse_tuer command: down
2020.06.16 15:27:50.908 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:27:50.909 4 : ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: down. state: pct-80
2020.06.16 15:27:50.910 4 : ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:27:50.911 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:27:50.912 4 : ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:27:50.912 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020.06.16 15:27:50.953 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get
2020.06.16 15:27:56.473 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Set (up,)
2020.06.16 15:27:56.474 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos set to up, ()
2020.06.16 15:27:56.478 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) DesiredPos now 80, up
2020-06-16 15:27:56.573 ROLLO Rollo_EG_WZ_terrasse_tuer command: up
2020.06.16 15:27:56.573 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Start
2020.06.16 15:27:56.574 4 : ROLLO (Rollo_EG_WZ_terrasse_tuer) drive from 80 to 80. command: up. state: pct-80
2020.06.16 15:27:56.574 4 : ROLLO (Rollo_EG_WZ_terrasse_tuer) pct: 80 -> 80 / direction: down
2020.06.16 15:27:56.576 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> calculateDriveTime | going down: from 80 to 80
2020.06.16 15:27:56.577 4 : ROLLO (Rollo_EG_WZ_terrasse_tuer) already at position!
2020.06.16 15:27:56.577 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) netto drive time = 0
2020-06-16 15:27:56.599 CUL_HM virtual_BAD_OG_Temperatur commState: CMDs_pending
2020-06-16 15:27:56.618 CUL_HM virtual_BAD_OG_Temperatur CMDs_pending
2020-06-16 15:27:56.640 CUL_HM virtual_BAD_OG_Temperatur commState: CMDs_done
2020-06-16 15:27:56.659 CUL_HM virtual_BAD_OG_Temperatur CMDs_done
2020.06.16 15:27:56.692 5 : ROLLO (Rollo_EG_WZ_terrasse_tuer) >> Get

Wie gesagt, bevor Du da zu viel Arbeit nur für mich da reinstecken müsstest, wäre die o.g. Lösung (up/down+Arg) oder alternativ auch meine Lösungvöllig ausreichend.

Bei Fragen fragen... und danke schon mal für Deinen Einsatz :)
Viele Grüße
Andreas

KernSani

Hi Andreas,
danke für die ausführliche Antwort. Tatsächlich habe ich auch über die Option up & down + Textfeld nachgedacht, das hätte aber ein paar Umstellungen im Coding erfordert. Was ich nicht bedacht habe: Up/Down rundet immer auf die nächste 10er-Stelle (also 83 - 1 wird auf 80 gerundet und 80+1 wird auch auf 80 gerundet). Da muss ich wohl doch noch ein bisschen Gehirnschmalz reinstecken... Das selbe Phänomen hätten wir nämlich auch beim up/down + Textfeld-Ansatz. Ich denke das sinnvollste wäre dann ein "drivePct"-Befehl, der einfach nur x Prozent fährt... Das kann zwar in bestimmten Situationen auch ungenau werden aber damit muss man leben.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

flummy1978

Hey Olli,
Zitat von: KernSani am 16 Juni 2020, 22:57:10
danke für die ausführliche Antwort.

Sehr gern. Wenn ich damit zur Verbesserung eines Moduls beitragen kann, dann mache ich das gern...

Aaahhh stimmt. Das *10 +5 /10 "runden" habe ich auch nicht bedacht. Im Code mehrmals gelesen und doch vergessen :(

Wenn die Umsetzung viel Aufwand erfordert wäre wohl meine Lösung dann doch erstmal die einfachste / schnellste um sicher zu stellen dass man nicht nur +- 10 sondern auch mal +-2 oder in meinem Falle 1 fahren kann..

Rechtschreibfehler sind aufs Mäusekino zurück zu führen
viele Grüße
Andreas

1234chs

#213
Hallo KernSani und alle die mitgearbeitet haben,
zuerst vielen Dank für das sehr gute Modul.
Leider habe ich ein kleines Problem damit. Ich habe Jarolift Funkmotore die ich mit dem Modul aus Bastelbuden über ESP anspreche. (der Grund für diese Lösung ist dass ich damit für jeden Rollladen mehrere Funkfernbedienungen weiter benutzen kann. Mit Signalduino und Keeloq kann ich nur eine Fernbedienung benutzen)
Mein eigentliches Problem:
Wenn ich einen Rollladen über das jarolift modul, mit einer Fernbedienung oder über einen at Befehl fahre und dies dem Rollo Modul über die extern Befehle mitteile wird dies einwandfrei im devStateIcon angezeigt aber nicht bei Pct. Der Befehl stop funktioniert nicht mehr. Die pct Befehle funktionieren nicht mehr. Der Rollladen fährt immer auf closed oder open.
Hier meine define
[/
define AFkl ROLLO
setuuid AFkl 5ed11147-f33f-362a-b34b-0cabfd94a44e2a6e
attr AFkl alias Arbeitszimmer Fenster kl
attr AFkl cmdIcon open:fts_shutter_up closed:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr AFkl devStateIcon open:fts_shutter_10@orange:closed closed:fts_shutter_100@red:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop pct-100:fts_shutter_100:open pct-90:fts_shutter_80:closed pct-80:fts_shutter_80:closed pct-70:fts_shutter_70:closed pct-60:fts_shutter_60:closed pct-50:fts_shutter_50:closed pct-40:fts_shutter_40:open pct-30:fts_shutter_30:open pct-20:fts_shutter_20:open pct-10:fts_shutter_10:open pct-0:fts_shutter_10:closed
attr AFkl rl_autoStop 1
attr AFkl rl_commandDown set Rollo_Arbeitszimmer_kl down
attr AFkl rl_commandStop set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandStopDown set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandStopUp set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandUp set Rollo_Arbeitszimmer_kl up
attr AFkl rl_excessBottom 0
attr AFkl rl_excessTop 0
attr AFkl rl_forceDrive 1
attr AFkl rl_secondsDown 18
attr AFkl rl_secondsUp 24
attr AFkl rl_switchTime 1
attr AFkl rl_type normal
attr AFkl room Rollo,Rolloautomatik
attr AFkl webCmd open:stop:closed:half:pct]

[code][/
define Rollo_Arbeitszimmer_kl jarolift 9 192.168.178.45 4210 4219
setuuid Rollo_Arbeitszimmer_kl 5c77d144-f33f-362a-6d86-29921d0b19f227e8
attr Rollo_Arbeitszimmer_kl alias Arbeitszimmer Fenster kl.
attr Rollo_Arbeitszimmer_kl cmdIcon up:Auf stop:Stop down:Zu shade:Halb learn:learn
attr Rollo_Arbeitszimmer_kl devStateIcon down:fts_shutter_100@red up:fts_shutter_10@orange shade:fts_shutter stop:time_manual_mode
attr Rollo_Arbeitszimmer_kl disc 0000001000000000
attr Rollo_Arbeitszimmer_kl group_serial 0105ea0,0105ea0,07c3000,07c3000
attr Rollo_Arbeitszimmer_kl icon fts_shutter_updown
attr Rollo_Arbeitszimmer_kl remote_serial 0105ea02,0105ea04,07c30000,07c30004
attr Rollo_Arbeitszimmer_kl room Rolloautomatik,Rolläden
attr Rollo_Arbeitszimmer_kl webCmd up:stop:down:shade:learn]

Hier meine notify
[code][/
define Rollo_Arbeitszimmer_kl_notify_1 notify Rollo_Arbeitszimmer_kl:up set AFkl extern open
define Rollo_Arbeitszimmer_kl_notify_2 notify Rollo_Arbeitszimmer_kl:down set AFkl extern closed
define Rollo_Arbeitszimmer_kl_notify_3 notify Rollo_Arbeitszimmer_kl:stop set AFkl extern stop
]

Auszug aus Event monitor
[/
2020-07-04 13:23:25 ROLLO AFkl drive-type: extern                           ## extern auf zu
2020-07-04 13:23:25 ROLLO AFkl command: closed
2020-07-04 13:23:25 ROLLO AFkl desired_pct: 100
2020-07-04 13:23:25 ROLLO AFkl last_drive: drive-down
2020-07-04 13:23:25 ROLLO AFkl drive-down
2020-07-04 13:23:25 ROLLO AFkl drive-type: na
2020-07-04 13:23:25 jarolift Rollo_Arbeitszimmer_kl down
2020-07-04 13:23:26 jarolift Rollo_Arbeitszimmer_kl serial_rx: 00bc6109
2020-07-04 13:23:26 jarolift Rollo_Arbeitszimmer_kl rx_function: 02
2020-07-04 13:23:26 jarolift Rollo_Arbeitszimmer_kl rssi: 82
2020-07-04 13:23:26 jarolift Rollo_Arbeitszimmer_kl Disc_l_h: 0000001000000000
2020-07-04 13:23:29 ROLLO AFkl drive-type: extern                            ## extern stop
2020-07-04 13:23:29 ROLLO AFkl pct: 27.7777777777778
2020-07-04 13:23:29 ROLLO AFkl pct: 27.7777777777778
2020-07-04 13:23:29 ROLLO AFkl desired_pct: 27.7777777777778
2020-07-04 13:23:29 ROLLO AFkl command: stop
2020-07-04 13:23:29 ROLLO AFkl drive-type: na
2020-07-04 13:23:29 ROLLO AFkl pct-30
2020-07-04 13:23:29 jarolift Rollo_Arbeitszimmer_kl stop
2020-07-04 13:23:30 jarolift Rollo_Arbeitszimmer_kl serial_rx: 00bc6109
2020-07-04 13:23:30 jarolift Rollo_Arbeitszimmer_kl rx_function: 04
2020-07-04 13:23:30 jarolift Rollo_Arbeitszimmer_kl rssi: 82
2020-07-04 13:23:30 jarolift Rollo_Arbeitszimmer_kl Disc_l_h: 0000001000000000
2020-07-04 13:23:46 ROLLO AFkl command: pct-50
2020-07-04 13:23:46 ROLLO AFkl desired_pct: 50                               ## über ROLLO auf pct 50
2020-07-04 13:23:46 ROLLO AFkl last_drive: drive-down
2020-07-04 13:23:46 ROLLO AFkl drive-down
2020-07-04 13:23:46 ROLLO AFkl drive-type: modul
2020-07-04 13:23:46 ROLLO AFkl drive-type: extern                            ## wo kommt das her ?
2020-07-04 13:23:46 ROLLO AFkl pct: 99                                       ## fährt auf pct 99 statt pct 50
2020-07-04 13:23:46 ROLLO AFkl pct: 99
2020-07-04 13:23:46 ROLLO AFkl command: closed
2020-07-04 13:23:46 ROLLO AFkl desired_pct: 100
2020-07-04 13:23:46 ROLLO AFkl last_drive: drive-down
2020-07-04 13:23:46 ROLLO AFkl drive-down
2020-07-04 13:23:46 ROLLO AFkl drive-type: na
2020-07-04 13:23:46 jarolift Rollo_Arbeitszimmer_kl down
2020-07-04 13:23:46 ROLLO AFkl pct: 100
2020-07-04 13:23:46 ROLLO AFkl closed
2020-07-04 13:23:46 jarolift Rollo_Arbeitszimmer_kl serial_rx: 00bc6109
2020-07-04 13:23:46 jarolift Rollo_Arbeitszimmer_kl rx_function: 02
2020-07-04 13:23:46 jarolift Rollo_Arbeitszimmer_kl rssi: 82
2020-07-04 13:23:46 jarolift Rollo_Arbeitszimmer_kl Disc_l_h: 0000001000000000]



Was mache ich falsch oder wer kann mir helfen ?

KernSani

Hi,

kannst du mal ein "list AFkl" machen, nachdem externen stop? Ich vermute da gibt es irgendwo einen Bug beim externen fahren...

Danke,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

1234chs

#215
Hi Oli,
vieln Dank für deine Hilfe.

Hier ein List nach extern closed und dann extern stop danach ein List mit ROLLO modul auf pct 60.


defmod AFkl ROLLO
attr AFkl alias Arbeitszimmer Fenster kl
attr AFkl cmdIcon open:fts_shutter_up closed:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr AFkl devStateIcon open:fts_shutter_10@orange:closed closed:fts_shutter_100@red:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop pct-100:fts_shutter_100:open pct-90:fts_shutter_80:closed pct-80:fts_shutter_80:closed pct-70:fts_shutter_70:closed pct-60:fts_shutter_60:closed pct-50:fts_shutter_50:closed pct-40:fts_shutter_40:open pct-30:fts_shutter_30:open pct-20:fts_shutter_20:open pct-10:fts_shutter_10:open pct-0:fts_shutter_10:closed
attr AFkl rl_autoStop 1
attr AFkl rl_commandDown set Rollo_Arbeitszimmer_kl down
attr AFkl rl_commandStop set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandStopDown set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandStopUp set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandUp set Rollo_Arbeitszimmer_kl up
attr AFkl rl_excessBottom 0
attr AFkl rl_excessTop 0
attr AFkl rl_forceDrive 1
attr AFkl rl_secondsDown 18
attr AFkl rl_secondsUp 24
attr AFkl rl_switchTime 1
attr AFkl rl_type normal
attr AFkl room Rollo,Rolloautomatik
attr AFkl webCmd open:stop:closed:half:pct

setstate AFkl pct-30
setstate AFkl 2020-07-07 09:00:12 command stop
setstate AFkl 2020-07-07 09:00:12 desired_pct 27.7777777777778
setstate AFkl 2020-07-07 09:00:12 drive-type na
setstate AFkl 2020-07-07 09:00:08 last_drive drive-down
setstate AFkl 2020-07-07 09:00:12 pct 27.7777777777778
setstate AFkl 2020-07-07 09:00:12 state pct-30
]
[code]


Das Feld pct ist leer, das icon steht bei pct 30

und hier nach stop mit ROLLO modul auf pct 60 .

Mir ist aufgefallen dass beim Anfahren noch pct 60 steht und unmittelbar danach auf pct 100 springt.




defmod AFkl ROLLO
attr AFkl alias Arbeitszimmer Fenster kl
attr AFkl cmdIcon open:fts_shutter_up closed:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr AFkl devStateIcon open:fts_shutter_10@orange:closed closed:fts_shutter_100@red:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop pct-100:fts_shutter_100:open pct-90:fts_shutter_80:closed pct-80:fts_shutter_80:closed pct-70:fts_shutter_70:closed pct-60:fts_shutter_60:closed pct-50:fts_shutter_50:closed pct-40:fts_shutter_40:open pct-30:fts_shutter_30:open pct-20:fts_shutter_20:open pct-10:fts_shutter_10:open pct-0:fts_shutter_10:closed
attr AFkl rl_autoStop 1
attr AFkl rl_commandDown set Rollo_Arbeitszimmer_kl down
attr AFkl rl_commandStop set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandStopDown set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandStopUp set Rollo_Arbeitszimmer_kl stop
attr AFkl rl_commandUp set Rollo_Arbeitszimmer_kl up
attr AFkl rl_excessBottom 0
attr AFkl rl_excessTop 0
attr AFkl rl_forceDrive 1
attr AFkl rl_secondsDown 18
attr AFkl rl_secondsUp 24
attr AFkl rl_switchTime 1
attr AFkl rl_type normal
attr AFkl room Rollo,Rolloautomatik
attr AFkl webCmd open:stop:closed:half:pct

setstate AFkl closed
setstate AFkl 2020-07-07 09:43:52 command closed                                      ## befehl pct 60 wurde eingegeben !!!!
setstate AFkl 2020-07-07 09:43:52 desired_pct 100
setstate AFkl 2020-07-07 09:43:52 drive-type na
setstate AFkl 2020-07-07 09:43:52 last_drive drive-down
setstate AFkl 2020-07-07 09:43:52 pct 100
setstate AFkl 2020-07-07 09:43:52 state closed]
[code]


Ich hoffe dass es das List ist das Du wolltest.

Nachtrag 10.7 der gleiche Fehler tritt auch mit Signalduino und dem Modul Keeloq auf.

RpiEinOzean

Hallo zusammen,
ich habe leider irgendwie nicht ganz begriffen wie ich ROLLO in der Praxis umsetzen kann.
Ich würde gerne mein Rollo einfach nur erst einmal komplett runterfahren lassen.
Mein Rollo wird momentan über MQTT WemosD1mini über den Befehl:  set Wohnz_Jalousie_04_121 3 runtergefahren.
Die 3 steht für AB , 1 ist AUF , 2 ist STOPP , 4 ist STOPP.
Das funktioniert auch sehr gut.
Mir fehlt nur der Moment wo ich ROLLO mit meiner Wohnz_Jalousie_04_121 zusammenführen kann.

Vielleicht kann mir jemand dort etwas auf die Sprünge helfen.

Gruß an die Gemeinde  :)
3 Raspi2 und 7 Raspi3 ca. 35 FAM14, ca. 300 FSR14-2

flummy1978

Hey,

hast Du denn schon ein Device angelegt dass dann dieses Modul nutzt ? Wenn ja, zeig mal bitte ein List davon, wenn nein dann bitte erstmal https://wiki.fhem.de/wiki/ROLLO und dort lesen was alles gebraucht wird bzw wie Du es anlegen kannst. Wenn es dann wieder scheitert, dann gern nochmal melden :)

Viele Grüße
Andreas

D3ltorohd

Folgendes Problem. Ab und an, fährt mal ein Rollo nicht. So im Rollo Modul ist der Rollo nun z.b. geschlossen, in Wahrheit ist er geöffnet, erneutes drücken auf runter, löst das Problem nicht, da das Rollo Modul ja schon meint, ist ja schon unten, brauch ich nichts senden. Kann man das irgendwie dennoch ändern ? Unabhängig was das Rollo Modul weiß. Gut wäre es, wenn ich auf runter drücke und dennoch der Fahrbefehl runter gesendet wird. Wenn das Rollo schon unten ist, gibts kein Problem, wenn es noch oben ist fährt es runter. Und alles passt wieder.

Ist sowas irgendwie möglich ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

Stütti

Zitat von: D3ltorohd am 14 Juli 2020, 14:27:19
Folgendes Problem. Ab und an, fährt mal ein Rollo nicht. So im Rollo Modul ist der Rollo nun z.b. geschlossen, in Wahrheit ist er geöffnet, erneutes drücken auf runter, löst das Problem nicht, da das Rollo Modul ja schon meint, ist ja schon unten, brauch ich nichts senden. Kann man das irgendwie dennoch ändern ? Unabhängig was das Rollo Modul weiß. Gut wäre es, wenn ich auf runter drücke und dennoch der Fahrbefehl runter gesendet wird. Wenn das Rollo schon unten ist, gibts kein Problem, wenn es noch oben ist fährt es runter. Und alles passt wieder.

Ist sowas irgendwie möglich ?

Das geht mit dem Befehl
set <Rollo-Device> reset <value>

Wobei <value> open oder closed annehmen kann. Damit kannst du dem Rollo sagen, dass es eingentlich schon oben bzw. unten ist und danach kannst du wieder in die entsprechend andere Richtung fahren.
FHEM auf Pi 4 + FTUI auf Pi 3, Eltako 14, SignalESP, JeeLink, EasyESP, ArduCounter, eBus-Koppler, openDTU

D3ltorohd

Zitat von: Stütti am 14 Juli 2020, 14:48:43
Das geht mit dem Befehl
set <Rollo-Device> reset <value>

Wobei <value> open oder closed annehmen kann. Damit kannst du dem Rollo sagen, dass es eingentlich schon oben bzw. unten ist und danach kannst du wieder in die entsprechend andere Richtung fahren.

Hm wie kann ich das in meine Automation mit einbauen ? Wenn ich z.b. am Tablet runterfahren möchte, dann müsste ich zwei Befehle absetzten ? Einmal für das zurücksetzten und einmal für den Fahrbefehl ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

Frank_Huber

Ich würde eher das eigentliche Problem lösen und nicht Workarounds zum Standart machen.

Warum hat der Rollo den falschen Status? das sollte die eigentliche Frage sein.

D3ltorohd

Zitat von: Frank_Huber am 14 Juli 2020, 15:08:17
Ich würde eher das eigentliche Problem lösen und nicht Workarounds zum Standart machen.

Warum hat der Rollo den falschen Status? das sollte die eigentliche Frage sein.

Weil er nicht gefahren ist. Ab und an kommt das Signal wohl nicht an. Er hätte fahren sollen, tat es aber nicht. Da der Rollo selber keinen Status sendet, sondern nur Befehle erhalten kann, wüsste ich nicht, wie ich das lösen soll. Ich nutze ja diesen Signalduino und steuere damit meine Jarolift Motoren.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

Frank_Huber

Dann würde ich die Antennen optimieren oder den Sender umsetzen.

RpiEinOzean

@flummy1978

Meintest Du dieses list?

Internals:
   FUUID      5eedea98-f33f-1ac6-c6b6-f97dea53d06c9a79
   NAME       Whz_Jalousie_04
   NR         1508
   STATE      open
   TYPE       ROLLO
   READINGS:
     2020-07-08 17:56:06   command         open
     2020-07-08 17:56:06   desired_pct     0
     2020-07-08 17:56:06   drive-type      modul
     2020-07-08 17:56:06   last_drive      drive-up
     2020-07-08 17:56:14   pct             0
     2020-07-08 17:56:14   state           open
Attributes:
   cmdIcon    open:fts_shutter_up closed:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
   devStateIcon open:fts_shutter_10:closed closed:fts_shutter_100:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop pct-100:fts_shutter_100:open pct-90:fts_shutter_80:closed pct-80:fts_shutter_80:closed pct-70:fts_shutter_70:closed pct-60:fts_shutter_60:closed pct-50:fts_shutter_50:closed pct-40:fts_shutter_40:open pct-30:fts_shutter_30:open pct-20:fts_shutter_20:open pct-10:fts_shutter_10:open pct-0:fts_shutter_10:closed
   group      Jalousie_04
   rl_autoStop 0
   rl_excessBottom 2
   rl_excessTop 4
   rl_secondsDown 23
   rl_secondsUp 24
   rl_switchTime 2
   rl_type    normal
   room       Whz
   webCmd     open:closed:half:stop:pct


Mir fehlt wohl das Verständnis wie ich das nun mit meiner tatsächlichen Ansteuerung zusammen bringe.
Momentan funktioniert es einigermassen über:
di_Jalousie_4_automatisch DOIF ([FAH60_Terasse:brightness]>9000 and [08:05:00-21:00:00] and ([Terasse_Aussen_Temp_Feucht:temperature] > 26)) (set Wohnz_Jalousie_04_121 3; sleep 16; set Wohnz_Jalousie_04_121 4) DOELSEIF ([FAH60_Terasse:brightness]>50 and [07:01:00-08:02:00]) (set Wohnz_Jalousie_04_121 1) DOELSEIF ([FAH60_Terasse:brightness]<600 and [18:00:00-22:30:00]) (set Wohnz_Jalousie_04_121 3)
Wobei set Wohnz_Jalousie_04_121 mit 4 Befehlen gesteuert wird.
1 = AUF   2 = AUF-STOPP  3 = AB  4 = AB-STOPP   , es sind 2 Relais verbaut, das eine für AUF, das andere für AB

Aber erst einmal vielen Dank fürs melden.
Vielleicht kannst Du ja hiermit schon etwas anfangen und mir den richtigen Schubs geben.

Schönen Gruß
3 Raspi2 und 7 Raspi3 ca. 35 FAM14, ca. 300 FSR14-2