Ankündigung

Einklappen
Keine Ankündigung bisher.

Rolladen - automatisch, manuell getrennt oder manuell gemeinsam fahren

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

    Rolladen - automatisch, manuell getrennt oder manuell gemeinsam fahren

    Liebe Smartvisu'ler,

    ich bin in unserem Haus daran, Smartvisu-Oberfläche und -Controls für die (neuen) Wünsche der Familie etwas komfortabler zu machen. Insbesondere sind es die Rolladen-Controls, die zwar meist automatisch von der Wetterstation her laufen, aber Familie wünscht doch manuelle Eingriffsmöglichkeiten (zeitlich begrenzt). Soweit so gut, alles machbar ...

    Wo ich mir momentan allerdings die Zähne ausbeiße und wahrscheinlich "den Wald vor lauter Bäumen nicht sehe" ist die Möglichkeit bei uns im "Kaminzimmer" die 6 Rolladen über 2 Etagen komfortabel manuell steuern zu können und das sowohl einzeln, als auch gemeinsam. Unser Kaminzimmer ist ein "Luftraum" über zwei Etagen, auf jeder "Etage" gibt es 3 nebeneinanderliegende 2,2m hohe Fenster, damit insgesamt 6 Fenster mit jeweiliger Rollade.

    Rolladenmotoren bei uns im Haus sind die Rademacher Rollotube KNX, die direkt KNX fähig sind. Die unterstützen mit ihrer integrierter Umschaltlogik manuelle und automatische Kommunikationsobjekte und entweder schaltet "Manuell auf Automatisch" nach einer Zeit oder mit einem Kommunikationsobjekt zurück. Ich habe deshalb mir ein eigenes Control (mit Fehlersignalisierung des Antriebs) erstellt, was auch (für jede Rollade einzeln) gut läuft.

    ETS-Kaminzimmer-Beispielrollade.jpg

    Die Seite für das "Kaminzimmer" sieht damit so aus, sie hat "zwei Teile", die mit dem Buttom rechts neben "Rolladen" umschaltbar sind. Dies ist mit 'status.callaps()' und 'class="hide" data-bind=..." gemacht.

    Smartvisu-Kaminzimmer-Rolladen-Einzeln.jpg

    Smartvisu-Kaminzimmer-Rolladen-Alle.jpg

    Die HTML-Seite dazu sieht so aus:

    Smartvisu-Kaminzimmer-Rolladen-HTML.jpg

    Momentan ist die SmarthomeNG-Struktur sehr einfach gehalten:

    Smarthome-Items.jpg

    Nun die Herausforderungen:
    Ich möchte gerne, wenn man den Buttom von der Einzelsicht auf das Gesamtcontrol wechselt, die Rolladen auf den Mittelwert der 6 Einzelpositionen einmalig fahren, um hier kontrolliert anzufangen. Wo mache ich das am besten? Auf SmarthomeNG- oder Smartvisu-Ebene? Und wie geht es dann zu triggern?

    Irgendwie denke ich, das Problem hat schon jemand ähnlich gehabt. Wie macht Ihr das?

    Viele Grüße und vielen Dank im Voraus!

    Ralf
    Zuletzt geändert von ralf9000; 06.09.2022, 15:20.

    #2
    .... zur besseren Vorstellung wie es aussieht und was ich gerne erreichen möchte, hier ein Photo:

    Bild.jpg

    Das für Rademacher Rollotube KNX angepasste Widget sieht zur Info so aus (aber nichts mit dem Problem zu tun, funktioniert super):

    Smartvisu-Kaminzimmer-Rolladen-HTML-Library.jpg
    Angehängte Dateien

    Kommentar


      #3
      Hi Ralf,

      da es echt mühsam ist, Code aus Bildschirmfotos abzulesen, habe ich mir Deine Item-Konstellation nicht genauer angesehen und kann nur allgemeine Hinweise geben:
      • die Buttons für auf, ab und stop würde ich im gemeinsamen Modus als Szenen realisieren.
      • auf die Mittelwert-Fahrt würde ich verzichten. Ich fände es total irritierend, wenn die Rolladen schon beim Öffnen des Widgets für die gemeinsame Steuerung loslaufen würden.
      • den basic.slider im Widget für die gemeinsame Steuerung würde ich im Modus live=0 laufen lassen. Dann schickt er nur beim Loslassen des Sliders einen Wert und nicht mehrere während er noch betätigt wird, Den Wert schreibt man dann am besten in ein Hilfsitem, aus dem sich die einzelnen items den Sollwert per eval holen.
      Gruß
      Wolfram

      Kommentar


        #4
        Hallo Wolfram,

        vielen Dank für Deine Antwort. Ich habe mal weitere Fragen in Deine Teile reingeschrieben, ich hoffe das ist ok so:

        Zitat von wvhn Beitrag anzeigen
        da es echt mühsam ist, Code aus Bildschirmfotos abzulesen, habe ich mir Deine Item-Konstellation nicht genauer angesehen und kann nur allgemeine Hinweise geben...
        Tut mir leid, das habe ich versucht mit <CODE>, aber dann hat er Einrückungen ignoriert, oder wild eingerückt. Wahrscheinlich liegt das daran, dass ich machmal Tabs und manchmal Leerzeichen genommen habe. So wie ich das am Bildschirm hatte, dachte ich es wäre besser, da lag ich falsch dann. Ich kann morgen gerne den Code als Text-Anhänge hier reinpacken.

        Zitat von wvhn Beitrag anzeigen
        • die Buttons für auf, ab und stop würde ich im gemeinsamen Modus als Szenen realisieren.
        Da die Rollotube KNX auf mehrere konfigurierte GAs reagieren können, habe ich für die gemeinsame Regelung extra GA's für das gemeinsame Fahren genommen, das reduziert die Befehle auf dem Bus, so mein Gedanke. Kann aber auf Szenen umstellen, was hat das für Vorteile?

        Zitat von wvhn Beitrag anzeigen
        • auf die Mittelwert-Fahrt würde ich verzichten. Ich fände es total irritierend, wenn die Rolladen schon beim Öffnen des Widgets für die gemeinsame Steuerung loslaufen würden.
        Das war der Wunsch meiner Frau, bei Automatik werden die ja von der Wetterstation verschieden gefahren (3 Einstellungen: W, NW, N), die Nordseite ist immer weit oben, die W-Seite nachmittags weit unten. Drückt man dann den Button für gemeinsame Fahren im manuellen Modus, soll es synchron losgehen, so der Wunsch "meiner besseren Hälfte" nach 2 Jahren einzeln verstellen. Nur über Mittelwert oder Max-Unten waren wir uns noch nicht einig, das soll sich im "User Acceptance Test" ergeben ....

        Zitat von wvhn Beitrag anzeigen
        • den basic.slider im Widget für die gemeinsame Steuerung würde ich im Modus live=0 laufen lassen. Dann schickt er nur beim Loslassen des Sliders einen Wert und nicht mehrere während er noch betätigt wird, Den Wert schreibt man dann am besten in ein Hilfsitem, aus dem sich die einzelnen items den Sollwert per eval holen.
        Das ist jetzt auch schon der Fall, obwohl ich nichts mit "live=0" gemacht habe. Mit den "einzelnen Items" habe ich nicht verstanden. Bei der gemeinsamen Fahrt geht es heute über die extra GA's für das gemeinsame Fahren. Hat das den Vorteile es mit eval an die Einzel-GAs zu verteilen?

        Grüße und nochmal Danke,

        Ralf
        Zuletzt geändert von ralf9000; 07.09.2022, 22:52.

        Kommentar


          #5
          Das Einfügen von Code mit Einrückungen ist tatsächlich ein Ärgernis. Einen Hinweis, wie man das richtig hinbekommt, gibt es hier.

          Die Info zu den mehrfachen GAs, auf die die Aktoren hören können, hat gefehlt oder ich habe sie übersehen. Damit erübrigt sich natürlich die Verwendung von Szenen und die Verteilung des Sollwerts aus einem Hilfsitem.

          D.h. es geht ausschließlich um das Anfahren einer einheitlichen Position beim Aufrufen des Modus „gemeinsam“? Dazu müsstest Du entweder eine JavaScript Routine erstellen und an das Öffnen des status.collapse binden, oder Du machst das in einer Logik in shNG. Das ist aus meiner Sicht die bessere Lösung, weil das mit Bordmitteln realisierbar ist. Statt des basic.stateswitch für das Umschalten des status.collapse nimmst Du dann ein basic.trigger für die Logik. Die Logik hat dann folgende Aufgaben:
          1. toggeln des Umschalt-Items für status.collapse
          2. Wenn Umschalt-Item = 1: gewünschten Wert (min / avg / max ) auf das gemeinsame Positions-Item (Sollwert) schreiben.
          Gruß
          Wolfram
          Zuletzt geändert von wvhn; 08.09.2022, 09:08.

          Kommentar


            #6
            Hallo Wolfram,

            vielen Dank für die Hinweise, ich hatte vorher noch nichts mit den Logiken in SmarthomeNG gemacht. Ich habe jetzt mal die für mich bisher abschreckenden komplexen Beispiele auf das wesentliche für meinen Fall reduziert (hab mich endlich rangetraut 🙂), es funktioniert nun:

            /usr/local/smarthome/logics/KNX_UG_Kaminzimmer_Rolladen_Abgleichen.py
            Code:
            #!/usr/bin/env python3
            
            if sh.UG.Kaminzimmer.Fenster.Rolladen.Modus() == 1:
                minpos = sh.UG.Kaminzimmer.Fenster.Rolladen.Gemeinsam.Position.Min()
                maxpos = sh.UG.Kaminzimmer.Fenster.Rolladen.Gemeinsam.Position.Max()
                if minpos != maxpos:
                    targetpos = sh.UG.Kaminzimmer.Fenster.Rolladen.Gemeinsam.Position.Avg()
                    sh.UG.Kaminzimmer.Fenster.Rolladen.Gemeinsam.Position(targetpos)
            und

            /usr/local/smarthome/etc/logic.yaml
            Code:
            KNX_UG_Kaminzimmer_Rolladen_Abgleichen:
                filename: KNX_UG_Kaminzimmer_Rolladen_Abgleichen.py
                watch_item: UG.Kaminzimmer.Fenster.Rolladen.Modus
            Allerdings habe ich nicht basic.trigger genommen, weil das Kommunikationsobjekt zum Umschalten auf "gemeinsam" auch mit KNX-Tastern im Haus verwendet wird, da sollen die gleichen "Funktionen" angewendet werden. Funktioniert sehr gut so.

            Jetzt steht noch an, auch die Errorcodes der Antriebe (Eis, Hindernis und Fehler) zu berücksichtigen, was ich aber Dank Deiner Hilfe nun machen kann.

            Vielen Dank nochmal und viele Grüße,

            Ralf
            Zuletzt geändert von ralf9000; 12.09.2022, 14:52.

            Kommentar

            Lädt...
            X