Ankündigung

Einklappen
Keine Ankündigung bisher.

smartVISU-Widget für JUNG RCD20xx mit Kühlfunktion

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

    smartVISU-Widget für JUNG RCD20xx mit Kühlfunktion

    Hallo,

    ich bin zwar noch nicht rundum zufrieden, aber ich stelle jetzt meinen aktuellen Arbeitsstand zum RCD-Plugin für die smartVISU hier zur Verfügung. Hoffe darauf, dass Euer Feedback mir hilft, noch den Feinschliff hinzukriegen, z.B. css betreffend.

    Ich habe auf dem rtr-Widget aufgebaut und die Funktionen entsprechend modifiziert.

    Zunächst zum Appetit machen die Optik. Jeweils mit und ohne Kühlfunktion.

    Das Widget zur Steuerung:


    Das Widget für die Navigationsleiste:



    Grobe Funktionsbeschreibung:
    • Die Widgets dienen der Kontrolle und Anzeige eines Jung RCD20xx Raumcontrollers (RTR).
    • Der Status des RCD wird mit 3 x 1bit gesteuert. Das Widget ermöglicht es, den Status direkt anzuwählen. Die Umrechnung in die entsprechenden Bus-Signale erfolgt durch ein Python-Script.
    • Ebenso werden die Signale vom KNX-Bus durch ein weiteres Python-Script analysiert und es wird das entsprechende Signal gesetzt.
    • Ist die Kühlfunktion des RCD aktiviert (Programmierung mittels ETS), so kann man auch die Umschaltung Heizen/Kühlen mit dem Widget steuern und den aktuellen Betriebszustand anzeigen.
    • Angezeigt werden jeweils Ist-Temperatur (Soll-Temperatur).
    • Im Steuerelement kann man die Komfort-Temperatur 1-Grad-weise verändern.
    • Im Steuerelement kann man die Betriebsart und ggf. den Heizen/Kühlen-Modus verändern (rot/blau).
    • Das Element für die Anzeige in der Navigation zeigt die aktuelle Betriebsart und ggf. den Heizen/Kühlen-Modus.


    Grundsätzlich müsste das Widget für alle RTR funktionieren, die mit der 3 x 1bit-Methode arbeiten. Und wenn sie Kühlen können, sollte das auch gehen. Bei RTRs mit der 1 byte-Methode sollte es mit kleinen Anpassungen funktionieren. Insbesondere braucht man da die Python-Skripte nicht.

    Datenstruktur:
    Um das Widget möglichst flexibel zu machen, setzt es eine feste Datenstruktur in der *.conf voraus:

    Code:
    [UG]
        [[Buero]]
            [[[RCD]]]
                name = Raumcontroller
                visu = yes
                [[[[komfort_Tmp]]]]
                    type = num
                    knx_dpt = 9
                    visu = yes
                    knx_listen = 10/7/15
                    knx_send = 10/7/15
                    knx_cache = 10/7/15
                [[[[soll_Tmp]]]]
                    type = num
                    knx_dpt = 9
                    visu = yes
                    knx_listen = 10/7/8
                    knx_send = 10/7/8
                    knx_cache = 10/7/8
                [[[[ist_Tmp]]]]
                    type = num
                    history = yes
                    visu = yes
                    knx_dpt = 9
                    knx_listen = 10/7/9
                    knx_send = 10/7/9
                    knx_cache = 10/7/9
                [[[[Komfortbetrieb]]]]
                    type = bool
                    knx_dpt = 1
                    visu = yes
                    knx_listen = 10/7/3
                    knx_send = 10/7/3
                    knx_cache = 10/7/3
                [[[[Nacht_Standby]]]]
                    type = bool
                    knx_dpt = 1
                    visu = yes
                    knx_listen = 10/7/4
                    knx_send = 10/7/4
                    knx_cache = 10/7/4
                [[[[Frost_HitzeSchutz]]]]
                    type = bool
                    knx_dpt = 1
                    visu = yes
                    knx_listen = 10/7/5
                    knx_send = 10/7/5
                    knx_cache = 10/7/5
                [[[[Status_Regler]]]]
                    type = num
                    knx_dpt = 5
                    visu = yes
                    knx_listen = 10/7/13
                    knx_send = 10/7/13
                [[[[Heizen_Kuehlen]]]]
                    type = bool
                    knx_dpt = 1
                    visu = yes
                    knx_listen = 10/7/20
                    knx_send = 10/7/20
                    knx_cache = 10/7/20
                [[[[Status_Anzeige]]]]
                    type = num
                    value = 1
                    knx_dpt = 9
                    visu = yes
                [[[[StoppChanges]]]]
                    type = bool
                    value = 0
                    knx_dpt = 1
                    visu = yes
                [[[[mitKuehlen]]]]
                    type = bool
                    value = 1
                    knx_dpt = 1
                    visu = yes
    Die Objekte unterhalb von RCD müssen mit dieser Bezeichnung vorhanden sein. Das RCD selbst kann anders benannt sein. Wer seine SmartHome-Struktur nicht nach Räumen, sondern nach Funktionen vornimmt, kann auch alle RCDs dem gleichen Knoten zuordnen und jedes anders benennen.

    Das Objekt Status_Anzeige steuert die Umschaltung zwischen den vier verschiedenen Betriebsarten:
    1 = Komfortbetrieb
    2 = Nacht
    3 = Standby
    4 = Frost/Hitzeschutz

    Das Objekt StoppChanges bewirkt, dass die beiden Python-Skripte nicht gleichzeitig laufen. Sonst könnte es passieren, dass die Umschaltung einer Betriebsart dazu führt, dass die 3 Bits gesendet werden. Bei Bit 1 würde das zweite Python-Script anlaufen und den Zustand wieder ändern, was dazu führen würde, dass das erste Script ein zweites Mal startet. So würden die beiden Scripte den Raspi alleine beschäftigen.

    Das Objekt mitKuehlen gibt an, ob der Kühlmodus aktiviert ist. Ich hatte vor (und hoffe, dass das noch gelingt), dass hierdurch im Widget gesteuert wird, ob das Heizen/Kühlen-Icon angezeigt wird oder nicht.

    Aufruf:
    Das Steuer-Widget:
    Code:
    {{ myRTR.rcd20xx('ID', 'RCD-Adresse', 'Überschrift', mit_Kühlen) }}
    also z.B.
    Code:
    {{ myRTR.rcd20xx('UG.Buero.RCD', 'UG.Buero.RCD', 'Heizung', 1) }}
    Das Widget für die Navigation:
    Code:
    {{ myRTR.rcd20xx_aside('ID', 'RCD-Adresse', mit_Kühlen) }}
    also z.B.
    Code:
    {{ myRTR.rcd20xx_aside('Nav.UG.Buero.RCD', 'UG.Buero.RCD', 1) }}
    Logik:
    In der Logic.conf müssen folgende Einträge hinzugefügt werden:

    Code:
    [rcd_status_set]
        filename = rcd_status_set.py
        watch_item = UG.Buero.RCD.Status_Anzeige
    
    [rcd_status_get]
        filename = rcd_status_get.py
        watch_item = UG.Buero.RCD.Komfortbetrieb, UG.Buero.RCD.Nacht_Standby, UG.Buero.RCD.Frost_HitzeSchutz
    Die watch-item Einträge müssen analog für jeden RCD ergänzt werden. Sind hier Wildcards möglich, z.B. *.xxx? hab ich gar nicht probiert.

    Die beiden Dateien rcd_status_set.py und rcd_status_get.py müssen in usr/smarthome/logics abgelegt werden. rcd_status_set.py überträgt die Status-Änderungen auf den Bus, rcd_status_get.py analysiert Bus-Signale und setzt sie in den entsprechenden Status für die Anzeige um.

    Sonstiges:
    Die Datei sani_heating.png (angehängte Grafik) muss in das Verzeichnis /var/www/smartvisu/icons/rd/.

    Was muss noch verbessert werden?
    • Die Anzeige des Steuerelements sollte horizontal und vertikal zentriert sein. Ich nehme an, dass man dies durch die richtigen Parameter in der visu.css hinkriegt. Kenne mich aber zu wenig damit aus und hoffe auf Eure Mithilfe.
    • Die Steuerung, ob die Umschaltung Heizen/Kühlen angezeigt wird, sollte mit dem RCD-Objekt mitKuehlen erfolgen können.
    • Falls smartHome die Daten speichert, sollten sie beim Start aus dem Speicher und nicht vom Bus gelesen werden, insbesondere auch das Objekt Status_Anzeige.


    So das wars. Ich freue mich über Hinweise zum genannten Verbesserungsbedarf und über sonstige Anregungen.

    Die Dateien befinden sich in der Anlage. Die Widgets können auf eigene Gefahr genutzt werden. Ob sie es in eines der nächsten SmartHome/smartVISU-Releases schaffen, entscheiden deren Macher.

    Gruß und viel Spaß
    Peter
    Angehängte Dateien

    #2
    Mal eben aus der Versenkung geholt, da iuch den Beitrag gerade zufällig gefunden habe.
    Kein Kommentar bis jetzt?
    Ich finde, das sieht gut aus und sofort fällt mitr auf, das der RTR mit Kühlfunktion tatsächlich fehlt.
    ich finds gut.
    Hast du inzwischen weitergemacht? noch verbessert?
    Gruß
    Georg

    Kommentar


      #3
      Hallo,

      der RTR mit Kühlfunktion kommt wohl in eine der nächsten offiziellen Versionen. Ob 2.6 oder später weiß ich nicht, müssen die "Macher" entscheiden.

      Am Widget für die Navigationsleiste bastle ich noch. Das wird noch etwas vielseitiger als nur für RTR.

      Gruß
      Peter

      Kommentar


        #4
        Hallo Peter,

        sieht echt gut aus, aber ich benutze die SmartVisu nicht.
        Das nächste mal solltest du so was im SmartVisu Forum posten, dann fällt es den Anwendern der SmartVisu auch gleich ins Auge.
        Dann bekommst du auch sicher viel mehr Feedback.

        Gruß
        Michi

        Kommentar


          #5
          Hi,

          wenn ich die verlinkten Dateien runterladen will, kommt nur eine weiße Seite. Kannst du das mal prüfen? Danke!

          Kommentar


            #6
            Sorry für die späte Antwort, ich bekomme keine Benachrichtigungen mehr, wenn in einem Thread von mir etwas gepostet wird.

            Ich hab es eben probiert, der Download der angehängten Dateien funktioniert einwandfrei.

            Kommentar

            Lädt...
            X