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:
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:
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:
also z.B.
Das Widget für die Navigation:
also z.B.
Logik:
In der Logic.conf müssen folgende Einträge hinzugefügt werden:
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?
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
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
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) }}
Code:
{{ myRTR.rcd20xx('UG.Buero.RCD', 'UG.Buero.RCD', 'Heizung', 1) }}
Code:
{{ myRTR.rcd20xx_aside('ID', 'RCD-Adresse', mit_Kühlen) }}
Code:
{{ myRTR.rcd20xx_aside('Nav.UG.Buero.RCD', 'UG.Buero.RCD', 1) }}
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 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
Kommentar