Ankündigung

Einklappen
Keine Ankündigung bisher.

Rolladen positionieren über Zeit

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Rolladen positionieren über Zeit

    Hallo Zusammen,
    ich habe eine 12 Jahre alte EIB Anlage und die Rolladenaktoren können leider die aktuelle Position nicht liefern. Nun versuche ich seit einiger Zeit auf SH umzusteigen. Leider ist mir nicht bekannt, wie ich damit meine Rolladen positionieren kann. In meinem derzeit in Betrieb befindlichen System (misterhouse) habe ich das über die Laufzeit der Rolladen gemacht, d.h jeder Rollade wird eine bestimmte Zeit zugewiesen, bis diese vollständig runtergefahren ist. Damit kann ich dann über die Zeitanteile eine Positionierung berechnen.

    Hat dafür vielleicht jemand schon Erfahrungen in smarthome.py oder sogar eine Lösung?

    Vielen Dank schonmal & viele Grüße

    Andi

    #2
    Hallo Andi,

    ich arbeite gerade an einem Python-Script, das genau so arbeiten soll, wie Du beschrieben hast. Ich stelle es ins Forum, sobald es fertig ist.

    Gruß
    Peter

    Kommentar


      #3
      Good news

      Super, danke schonmal für die Hilfe!

      Kommentar


        #4
        Super!!

        Wäre auch daran interessiert, leider können meine BJ 6196/43 auch keine Postionsierung....

        Gruß
        Steven

        Kommentar


          #5
          Super,

          ich würde mich auch sehr freuen, wenn es so ein Plugin gäbe. Meine Jung-Aktoren 2204 haben leider auch noch keine Positionierungsfunktion...

          Gruß
          Thoralf

          Kommentar


            #6
            Wollte mal nachfragen wie ungefair das Zeitfenster aussieht zur Veröffentlichung?

            Kommentar


              #7
              Hallo,

              ich habe es komplett ausprogrammiert. Kämpfe derzeit noch mit ein paar Problemen und Problemchen. Dann kommt noch Beispiel und Doku. Wenn ich genug Zeit und die Fehler schnell genug finde, dann bis zum kommenden WE.

              Mein Problem ist, dass es nicht genügt, einen Aktor zu imitieren, der eine Zielposition ansteuern kann, sondern man muss auch alles auswerten, was dieser Rollo so macht, weil er ja auch über Taster oder andere Logiken bewegt werden kann. Und dann muss man wissen, wo das Ding gerade hängt und ob es gerade fährt oder nicht. Das hat die Lösung etwas größer gemacht als ich ursprünglich dachte.

              Gruß
              Peter

              Kommentar


                #8
                Zitat von accelle Beitrag anzeigen
                Hallo,

                ich habe es komplett ausprogrammiert. Kämpfe derzeit noch mit ein paar Problemen und Problemchen. Dann kommt noch Beispiel und Doku. Wenn ich genug Zeit und die Fehler schnell genug finde, dann bis zum kommenden WE.

                Mein Problem ist, dass es nicht genügt, einen Aktor zu imitieren, der eine Zielposition ansteuern kann, sondern man muss auch alles auswerten, was dieser Rollo so macht, weil er ja auch über Taster oder andere Logiken bewegt werden kann. Und dann muss man wissen, wo das Ding gerade hängt und ob es gerade fährt oder nicht. Das hat die Lösung etwas größer gemacht als ich ursprünglich dachte.

                Gruß
                Peter
                Das wäre natürlich das non-plus-ultra wenn die Logik dies sauber abdeckt.

                Dann könnte ich endlich das "Device-Widget - Blind without blade" der SmartVisu verwenden.

                Bisher verwende ich den Basic-Button und hoffe das etwas passiert ;-)

                Gruß
                Steven

                Kommentar


                  #9
                  Zitat von Steven Beitrag anzeigen
                  Das wäre natürlich das non-plus-ultra wenn die Logik dies sauber abdeckt.
                  Anders mach' ich's nicht ;-) Mittlerweile läuft es. Bei nem kleinen Fenster mit viel rumspielen (rauf, runter, immer wieder anhalten), ist es nach einer Weile nicht mehr so genau. Aber wenn ab und zu eine Fahrt bis zum Ende (hoch oder runter, egal) dabei ist, dann wird es immer wieder neu justiert.

                  Habe leider in den nächsten Tagen wenig bis keine Zeit, um alle Variationen durchzutesten und die Doku zu machen. Deshalb wird es in dieser Woche sicher nichts mehr :-(

                  Gruß
                  Peter

                  Kommentar


                    #10
                    Zitat von accelle Beitrag anzeigen
                    Anders mach' ich's nicht ;-) Mittlerweile läuft es. Bei nem kleinen Fenster mit viel rumspielen (rauf, runter, immer wieder anhalten), ist es nach einer Weile nicht mehr so genau. Aber wenn ab und zu eine Fahrt bis zum Ende (hoch oder runter, egal) dabei ist, dann wird es immer wieder neu justiert.

                    Habe leider in den nächsten Tagen wenig bis keine Zeit, um alle Variationen durchzutesten und die Doku zu machen. Deshalb wird es in dieser Woche sicher nichts mehr :-(

                    Gruß
                    Peter
                    Ja nur keinen Stress, wenn du Hilfe benötigst oder einen Vorabtester brauchst kannst dich gerne melden.

                    Die neu Justierung könnte bei mir täglich laufen, fahre abends komplett runter und früh komplett hoch.

                    Kommentar


                      #11
                      Hallo,

                      ich stelle hier mal eine erste Version noch ohne Doku ein. Bin noch nicht zufrieden und werde das Python-Script nochmal redesignen. Aber die Item-Struktur sollte so bleiben, sodass der eine oder andere Interessent schon mal testen kann. Das beiliegende Beispiel sollte als erste Doku zum Starten mal genügen.

                      Die Positionierung müsste funktionieren, sobald der betreffende Rollo zum ersten Mal in der oberen Endposition war (bei jedem Neustart von sH).

                      In den Rollo-Items müssen folgende Daten gepflegt werden:
                      • Laufzeit
                      • Nachlauf
                      • GAs von step, move und zielproz


                      zielproz benötigt nur dann eine GA, wenn es auch über den KNX-Bus angesteuert werden soll.

                      In die smarthome/etc/logic.conf muss folgender Eintrag. Die Rollos müssen alle einen Namen wie Rollo_... haben.
                      Code:
                      [rollo_move]
                          filename = rollo.py
                          watch_item = *.Rollo.Rollo*
                      Falls Ihr für den shutter Bilder verwendet, dann bitte Folgendes beachten:
                      Die Bildhöhe sind 180px. Davon die oberen 20px für den Rollo reservieren. Zudem die Fenster einschließlich Fensterrahmen fotografieren, da der Rollo normalerweise über dem Fensterrahmen startet und unter dem unteren Fensterrahmen stoppt. Sonst passt das Bild nicht zur Realität. Doku des shutter-widgets berücksichtigen.

                      Bitte schreibt Eure Erfahrungen hier in den Thread (was funktioniert, was nicht). Im LOG findet Ihr auch die ganzen Aktionen, die das Skript durchführt und die Input-Signale, die es verarbeitet.

                      Ich bin momentan etwas im Stress und werde in dieser Woche nicht dazu kommen, das angesprochene Redesign zu machen. Aber durch diese erste Version könnt Ihr schon mal sehen, wie das Ganze so funktionieren wird und könnt Anregungen oder Wünsche platzieren. Das hilft dann später, dass es schneller geht.

                      Gruß und viel Spaß
                      Peter
                      Angehängte Dateien

                      Kommentar


                        #12
                        wow, super Danke!

                        Die Anzeige beim Fahren klappt schonmal sehr gut, werde morgen mal genauer testen.

                        Die Buttons hoch und runter funktionieren auch inkl. Anzeige der Position.

                        Nur wenn ich ins Bild klick um z.B 10 % anzufahren passiert nichts.. Grafik geht auch wieder auf obere Position.

                        Hier das Log:

                        Code:
                        2014-01-20 21:23:45,043 DEBUG    Main         192.168.2.176:49566 sent '{"cmd":"item","id":"EG.KUECHE.Rollo.Rollo_Kueche.zielproz","val":20}' -- __init__.py:json_parse:270
                        2014-01-20 21:23:45,050 DEBUG    Main         Item EG.KUECHE.Rollo.Rollo_Kueche.zielproz = 20 via Visu 192.168.2.176:49566 None -- item.py:__update:363
                        2014-01-20 21:23:45,059 DEBUG    Main         Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.zielproz dest: None value: 20 -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,065 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.zielproz/ 20 (True=AB) / Richtung alt: -1 (+1 = AB) / Art alt: 0 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,075 INFO     Main         knx: 0.0.0 set 10/2/6 to 20 -- __init__.py:parse_telegram:190
                        2014-01-20 21:23:45,078 INFO     rollo_move    aktueller Status: Rollo fährt (move) -- rollo.py:<module>:100
                        2014-01-20 21:23:45,087 INFO     rollo_move     Alte Position: 6.1000000000000005 Richtung: -1 Fahrzeit: 18.6 Neue Position: 0 -- rollo.py:compute_position:14
                        2014-01-20 21:23:45,093 INFO     rollo_move     Alte Position: 6.1000000000000005 Richtung: -1 Fahrzeit: 18.6 Neue Position: 0 -- rollo.py:compute_position:14
                        2014-01-20 21:23:45,098 INFO     rollo_move     Neue Position: 0 % -- rollo.py:compute_percentage_position:22
                        2014-01-20 21:23:45,105 DEBUG    rollo_move   Item EG.KUECHE.Rollo.Rollo_Kueche.zielproz = 0 via Logic None None -- item.py:__update:363
                        2014-01-20 21:23:45,117 INFO     Main         knx: 0.0.0 set 10/2/6 to 0 -- __init__.py:parse_telegram:190
                        2014-01-20 21:23:45,121 DEBUG    rollo_move   Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.zielproz dest: None value: 0 -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,132 INFO     rollo_move     Position anfahren: EG.KUECHE.Rollo.Rollo_Kueche Ziel=0 -- rollo.py:move_to_targetpos:52
                        2014-01-20 21:23:45,134 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.zielproz/ 0 (True=AB) / Richtung alt: 0 (+1 = AB) / Art alt: -1 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,144 DEBUG    rollo_move   Item EG.KUECHE.Rollo.Rollo_Kueche.move = True via Logic None None -- item.py:__update:363
                        2014-01-20 21:23:45,147 INFO     rollo_move    Rolladen on hold EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:83
                        2014-01-20 21:23:45,165 INFO     Main         knx: 0.0.0 set 6/0/4 to True -- __init__.py:parse_telegram:190
                        2014-01-20 21:23:45,169 DEBUG    rollo_move   Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.move dest: None value: True -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,175 DEBUG    Main         Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.move dest: None value: True -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,183 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.move/ True (True=AB) / Richtung alt: 1 (+1 = AB) / Art alt: 2 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,196 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.move/ True (True=AB) / Richtung alt: 1 (+1 = AB) / Art alt: 2 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,202 INFO     rollo_move    Rolladen on hold EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:83
                        2014-01-20 21:23:45,206 INFO     rollo_move    Rolladen on hold EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:83
                        2014-01-20 21:23:45,192 INFO     rollo_move     pos Rollo EG.KUECHE.Rollo.Rollo_Kueche: Startposition= 0.0 Ziel= 0 Zielposition= 0.0 rechnerische Dauer= 0.0 rechnerische Richtung= 1 -- rollo.py:move_to_targetpos:73
                        2014-01-20 21:23:45,484 DEBUG    EG.KUECHE.Rollo.Rollo_Kueche.stopp-Timer Item EG.KUECHE.Rollo.Rollo_Kueche.stopp = 2 via Timer None None -- item.py:__update:363
                        2014-01-20 21:23:45,493 DEBUG    EG.KUECHE.Rollo.Rollo_Kueche.stopp-Timer Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.stopp dest: None value: 2 -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,499 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.stopp/ 2 (True=AB) / Richtung alt: 1 (+1 = AB) / Art alt: 2 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,504 INFO     rollo_move    aktueller Status: Rollo auf Zielfahrt (Nr: 2) -- rollo.py:<module>:117
                        2014-01-20 21:23:45,517 INFO     Main         knx: 0.0.0 set 7/0/4 to True -- __init__.py:parse_telegram:190
                        2014-01-20 21:23:45,520 DEBUG    rollo_move   Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.step dest: None value: True -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,532 INFO     rollo_move     Alte Position: 0.0 Richtung: 1 Fahrzeit: 0.4 Neue Position: 0.4 -- rollo.py:compute_position:14
                        2014-01-20 21:23:45,527 DEBUG    Main         Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.step dest: None value: True -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,535 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.step/ True (True=AB) / Richtung alt: 1 (+1 = AB) / Art alt: 2 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,546 INFO     rollo_move     Alte Position: 0.0 Richtung: 1 Fahrzeit: 0.4 Neue Position: 0.4 -- rollo.py:compute_position:14
                        2014-01-20 21:23:45,554 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.step/ True (True=AB) / Richtung alt: 1 (+1 = AB) / Art alt: 2 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,550 INFO     rollo_move    Rolladen on hold EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:83
                        2014-01-20 21:23:45,565 INFO     rollo_move     Neue Position: 1 % -- rollo.py:compute_percentage_position:22
                        2014-01-20 21:23:45,568 INFO     rollo_move    Rolladen on hold EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:83
                        2014-01-20 21:23:45,579 DEBUG    rollo_move   Item EG.KUECHE.Rollo.Rollo_Kueche.zielproz = 1 via Logic None None -- item.py:__update:363
                        2014-01-20 21:23:45,593 INFO     Main         knx: 0.0.0 set 10/2/6 to 1 -- __init__.py:parse_telegram:190
                        2014-01-20 21:23:45,597 DEBUG    rollo_move   Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.zielproz dest: None value: 1 -- scheduler.py:trigger:162
                        2014-01-20 21:23:45,607 INFO     rollo_move     Stopp Rollo EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:133
                        2014-01-20 21:23:45,609 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.zielproz/ 1 (True=AB) / Richtung alt: 0 (+1 = AB) / Art alt: -1 -- rollo.py:<module>:80
                        2014-01-20 21:23:45,618 INFO     rollo_move    Rolladen on hold EG.KUECHE.Rollo.Rollo_Kueche -- rollo.py:<module>:83
                        2014-01-20 21:23:46,497 DEBUG    EG.KUECHE.Rollo.Rollo_Kueche.steppos-Timer Triggering rollo_move - by: Item source: EG.KUECHE.Rollo.Rollo_Kueche.steppos dest: None value: True -- scheduler.py:trigger:162
                        2014-01-20 21:23:46,503 INFO     rollo_move   Input: EG.KUECHE.Rollo.Rollo_Kueche.steppos/ True (True=AB) / Richtung alt: 0 (+1 = AB) / Art alt: -1 -- rollo.py:<module>:80
                        2014-01-20 21:23:46,508 INFO     rollo_move    aktueller Status: Rollo steht -- rollo.py:<module>:87
                        2014-01-20 21:23:46,514 INFO     rollo_move     Steppos Rollo EG.KUECHE.Rollo.Rollo_Kueche: keine Aktion  -- rollo.py:<module>:95
                        Gruß
                        Steven

                        Kommentar


                          #13
                          Hallo Steven,
                          hast Du Laufzeit und Nachlauf gesetzt?

                          Bitte fange beim Positionieren mit Prozentwerten um 35 oder 65 an zu testen.

                          Gruß Peter

                          Kommentar


                            #14
                            Hallo,

                            Ja habe folgende Werte in meine knx-items.conf übernommen. Musst überall nur das "visu_acl = rw" hinzufügen.

                            Code:
                            [EG]
                                [[KUECHE]]
                                    [[[Rollo]]]
                                        [[[[Rollo_Kueche]]]]
                                            laufzeit = 21       # Laufzeit in Sekunden bis der Rollladen eine Fahrt bis zur Ankunft am Boden gemacht hat
                                            nachlauf = 5        # Zeit in Sekunden von Ankunft am Boden bis alle Lamellen geschlossen sind
                                            position = 0        # Initialposition ganz oben. 
                                            start = 1           # Startzeit bei Rollofahrt
                                            richtung = 0        # Richtung = +1: abwärts, -1: aufwärts
                                            on_hold = 0         # wenn on_hold, dann wird keine Zielfahrt gestartet 
                                            art = -1            # 0 = Normalfahrt, 1-9 = Zielfahrt Nr. 1-9
                                            nextnr = 1          # nächste Nr
                                            next_ziel = 1       # nächste Zielfahrtnr
                                            [[[[[step]]]]]
                                                type = bool
                                                knx_dpt = 1
                                                knx_listen = 7/0/4          <== MEIN STOP GA
                                                knx_send = 7/0/4
                                                funktion = rollostep
                                                enforce_updates = on
                                                visu_acl = rw
                                            [[[[[move]]]]]
                                                visu_acl = rw
                                                type = bool
                                                knx_dpt = 1
                                                knx_listen = 6/0/4            <== MEIN FAHREN GA
                                                knx_send = 6/0/4
                                                funktion = rollomove
                                                enforce_updates = on
                                            [[[[[zielproz]]]]]
                                                visu_acl = rw
                                                type = num
                                                knx_dpt = 5
                                                knx_listen = 10/2/6
                                                knx_send = 10/2/6
                                                funktion = rollozielpos
                                            [[[[[steppos]]]]]
                                                type=bool
                                                value=0
                                                funktion=rollosteppos
                                                enforce_updates = on
                                            [[[[[stopp]]]]]
                                                type=num
                                                value=0
                                                funktion=rollostopp
                                                enforce_updates = on
                            Wenn ich per Schalter oder Knöpfe(Visu) fahre zeigt er den Verlauf (Visu) des Rollos in der Grafik ordentlich an.

                            Ist es beabsichtigt das die "visu.js" leer ist?


                            Gruß
                            Steven

                            Kommentar


                              #15
                              Hallo,

                              komischerweise geht es jetzt per Grafik.

                              Um besser testen zu können muss ich die Seite ein bisschen anpassen evtl Ansteuerung mit Angabe der des % Wertes?


                              Interessant ist sich auch die Postion ausgeben zu lassen:

                              Code:
                                Rolladen auf {{ basic.value('ZielProz', 'EG.KUECHE.Rollo.Rollo_Kueche.zielproz') }} Prozent
                              Im Shutter Widget habe ich den Stop-GA ergänzt das man die Fahrt auch stoppen kann.


                              Wie hast du die Laufzeit gemessen, und wie den Nachlauf?

                              Was mir auch aufgefallen ist die Fahrzeit nach unten unterscheiden sich stark mit der Fahrzeit nach oben..

                              Gruß
                              Steven

                              Kommentar

                              Lädt...
                              X