Ankündigung

Einklappen
Keine Ankündigung bisher.

Umfrage: Zeitschaltuhr (UZSU) gewünscht?

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

    #16
    Hi Max,

    man sollte hier aber auch nicht viele Features durcheinander werfen.
    Szenen haben seine Berechtigung, sollten aber auch unabhängig von einer USZU funktionieren. Damit man Sie z.B. per Schalter und knx dpt 17 wählen kann.

    Das ganze Feature, und die Diskussion, geht auch stark in Richtung grafischer Editor. Und das diskutiere ich hier nicht mal locker flockig. Dafür benötigt es eine separate Schnittstelle bzw. eine heftige Erweiterung. Es sollte hier nur erst mal um di UZSU gehen.

    Bis bald

    Marcus

    Kommentar


      #17
      Zitat von Sipple Beitrag anzeigen
      Und das alles möglichst schön über Apollo's Visu konfigurierbar
      Naja, da würde mir schon ein bischen was einfallen dazu :-)
      Join smartVISU on facebook. Web: smartvisu.de.
      Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

      Kommentar


        #18
        Zitat von Sipple Beitrag anzeigen
        2. dass man bei einem Ereignis (nahezu) beliebig viele Telegramme auf den Bus senden kann, mit verschiedenen DPT's.
        [...]
        Und das alles möglichst schön über Apollo's Visu konfigurierbar
        Martin hat sehr schön beschrieben, dass er hier Szenen haben will. Er hat sie nur nicht so genannt.
        Und der Wunsch nach dem grafischen Editor war auch nicht von mir.
        Zitat von mknx Beitrag anzeigen
        Szenen haben seine Berechtigung, sollten aber auch unabhängig von einer USZU funktionieren. Damit man Sie z.B. per Schalter und knx dpt 17 wählen kann.
        Was spricht dagegen, dass beides möglich ist? Reagieren auf eine GA und auf die UZSU? Logiken können ja auch auf mehrere Dinge triggern.
        Zitat von mknx Beitrag anzeigen
        Das ganze Feature, und die Diskussion, geht auch stark in Richtung grafischer Editor. Und das diskutiere ich hier nicht mal locker flockig. Dafür benötigt es eine separate Schnittstelle bzw. eine heftige Erweiterung. Es sollte hier nur erst mal um die UZSU gehen.
        Wenn du die Features "Uhrzeit(en) einstellen" und "mehrere Telegramme triggern" in die UZSU einbaust, hast du die Szenenfunktionalität doch schon fertig.

        Max

        Kommentar


          #19
          Hallo Max,

          das was du möchtest würde doch ohne weiteres funktionieren auch wenn UZSU und Szenen getrennt sind. Du definierst die Szene und eine UZSU die die Szene triggert. Durch die Implementierung von Marcus für Szenen würde das ganze so aussehen:

          Code:
          [scene_making_love]
              type = scene
              crontab = sunset+6: 1
          Also jeden Abend 6 Grad nach Sonnenuntergang würde die Szene "Making Love" aktiviert werden, die wiederum beliebig definiert sein kann. Wie man das ganze in der Oberfläche konfiguriert ist ja erstmal egal. Dort kann man immer noch Szenen zusammen mit der UZSU verwalten, wenn man das möchte.

          Diese Vorgehensweise hat aus meiner Sicht zwei Vorteile:
          1. Die Implementierung wäre ziemlich minimal invasiv. Marcus hat die Szenen bereits umgesetzt und crontab für Logiken funktioniert auch schon ewig. Diese auch auf Items anzuwenden ist relativ einfach, da der scheduler bereits alles dafür mit bringt.
          2. Man kann auch eine UZSU für Items definieren, die keine Szene sind. Und das ist mir sehr wichtig, denn wenn ich z.B. abends alle Rollladen zufahren möchte, dann will ich nicht erst eine Szene anlegen wo ich die Zentral GA eintragen muss und dann die UZSU dafür einstellen. Und ich spreche hier nicht von einem komfortablen Editor für die Visu wo ich mir alles zusammenklicken kann sondern davon, wie ich das auch ohne Editor in der Konfiguration direkt einstellen kann. Denn diese Möglichkeit halte ich nach wie vor für sinnvoll. sh.py hat zwar eine Schnittstelle zur Visu, muss aber auch unabhängig davon konfigurierbar sein, denn nicht jeder will eine Visu verwenden bzw. für manche Einsatzzwecke macht eine Visu keinen Sinn.

          Wenn ich dich damit immer noch nicht überzeugen konnte, dann nenne mir doch bitte die konkreten Vorteile, die eine Zusammenlegung von Szenen und UZSU bietet und wie du dir die Konfiguration ohne Visu vorstellst.
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #20
            Zitat von 2ndsky Beitrag anzeigen
            das was du möchtest würde doch ohne weiteres funktionieren auch wenn UZSU und Szenen getrennt sind.
            Hallo Niko,

            also gut. Dann habe ich als Feature-Request einfach nur:
            "Eine UZSU-Aktion soll auch durch eine Item-Änderung (d.h. eine GA) getriggert werden können."

            Dann hast du die Szenen in den conf-Dateien und ich welche über die UZSU. Ich finde es nur unschön, dass die Szenenfunktionalität dann zweimal implementiert ist, wenn Martins Anforderung, mehrere Items ändern zu können, mit umgesetzt wird.
            Das Argument der schnellen Umsetzbarkeit ist natürlich einleuchtend.


            Zitat von 2ndsky Beitrag anzeigen
            Code:
            [scene_making_love]
                type = scene
                crontab = sunset+6: 1
            Wo taucht hier die UZSU auf? sunset+6 ist ja ein ganz normaler Trigger, keine UZSU.

            Gegenvorschlag:
            Code:
            [scene_aufstehen]
                type = scene
                crontab = timer
                timer_value = sunrise+6: 1
            In der Visu kann ich dann scene_aufstehen.timer_value anpassen, fertig ist die UZSU. Ich würde mich auch um das Parsen des timer_value-Strings kümmern (auch wenn regex-Parsen in Python keine Freude ist).
            Nur lässt sich Martins Wunsch, in der Visu die zu setzenden Werte auszuwählen, so nicht umsetzen - die Szene ist ja fix in der conf-Datei festgelegt.

            Max

            P.S.: gibt es den Bedarf an einem Feature, das den crontab wie folgt erweitert?
            Code:
            crontab = sunrise+1h30m
            Das wäre ein Trigger 90 Minuten nach Sonnenuntergang.
            Oder auch als zusätzliche Erweiterung:
            Code:
            crontab = 6.00~sunrise-10m~8.00
            Das wäre ein Trigger 10 Minuten vor Sonnenaufgang, allerdings frühestens um 6.00 und spätestens um 8.00 Uhr.

            Ersteres läuft schon einigermaßen, letzteres würde ich bei Bedarf auch noch umsetzen.

            Kommentar


              #21
              Hallo Max,

              Zitat von l0wside Beitrag anzeigen
              also gut. Dann habe ich als Feature-Request einfach nur:
              "Eine UZSU-Aktion soll auch durch eine Item-Änderung (d.h. eine GA) getriggert werden können."
              Wir reden glaub immer noch ein wenig aneinander vorbei
              Die UZSU triggert eine Szene, genauso kannst du aber auch mittels GA eine Szene triggern. In der Szene sind wiederum die Aktionen definiert, die bei einer Triggerung (egal woher) für einen bestimmten Szenewert ausgeführt werden sollen.

              Zitat von l0wside Beitrag anzeigen
              Dann hast du die Szenen in den conf-Dateien und ich welche über die UZSU. Ich finde es nur unschön, dass die Szenenfunktionalität dann zweimal implementiert ist, wenn Martins Anforderung, mehrere Items ändern zu können, mit umgesetzt wird.
              Okay, dein "Problem" ist also quasi, dass du nicht einfach eine beliebige Szene über die Oberfläche anlegen kannst, weil es dafür ja noch kein sh.py Item gibt, verstehe ich das richtig? Denn eine bestehende Szene zu ändern soll ja genauso möglich sein, wie die unterschiedlichen Schalthandlungen der UZSU zu ändern. Weil zweimal implementiert ist sie ja nicht. Die Szene bleibt die Szene und die UZSU bleibt die UZSU, aber eine UZSU kann eine Szene triggern und in einer Szene können beliebige andere Items getriggert werden.

              Zitat von l0wside Beitrag anzeigen
              Wo taucht hier die UZSU auf? sunset+6 ist ja ein ganz normaler Trigger, keine UZSU.
              crontab ist hier die UZSU. Denn was ist denn eine UZSU, einfach mehrere Einträge, wann ein Item einen bestimmten Wert annehmen soll und das kann ich mit crontab erweitert um einen zu setzenden Wert doch erreichen.

              Zitat von l0wside Beitrag anzeigen
              Gegenvorschlag:
              Code:
              [scene_aufstehen]
                  type = scene
                  crontab = timer
                  timer_value = sunrise+6: 1
              In der Visu kann ich dann scene_aufstehen.timer_value anpassen, fertig ist die UZSU. Ich würde mich auch um das Parsen des timer_value-Strings kümmern (auch wenn regex-Parsen in Python keine Freude ist).
              Den Gegenvorschlag versteh ich nicht. Du kannst doch anstatt timer_value über die Visu zu ändern auch einfach crontab über die Visu ändern und erreichst somit dasselbe.

              Zitat von l0wside Beitrag anzeigen
              Nur lässt sich Martins Wunsch, in der Visu die zu setzenden Werte auszuwählen, so nicht umsetzen - die Szene ist ja fix in der conf-Datei festgelegt.
              Die Szenen ändern könnte man über die Oberfläche ja ebenfalls. Was natürlich so schwer zu konfigurieren ist, wenn sich die Werte einzelner Szenen Teilnehmer ständig ändern sollen. Dann bräuchte man zig unterschiedliche Szenenkonfigurationen für eine Szene um alle Teilnehmer der Szene mit den entsprechenden Werten zu versehen.

              Machen wir es doch mal andersrum... nenne mir bitte mal einen konkreten Anwendungsfall, wo du das brauchen könntest. Denn bei normalen Szenen in KNX kann ich sowas auch nicht machen und mir fällt auch gerade nicht ein, wozu ich das verwenden würde.

              Zitat von l0wside Beitrag anzeigen
              P.S.: gibt es den Bedarf an einem Feature, das den crontab wie folgt erweitert?
              Code:
              crontab = sunrise+1h30m
              Das wäre ein Trigger 90 Minuten nach Sonnenuntergang.
              Oder auch als zusätzliche Erweiterung:
              Code:
              crontab = 6.00~sunrise-10m~8.00
              Das wäre ein Trigger 10 Minuten vor Sonnenaufgang, allerdings frühestens um 6.00 und spätestens um 8.00 Uhr.

              Ersteres läuft schon einigermaßen, letzteres würde ich bei Bedarf auch noch umsetzen.
              Fände ich beides sinnvoll! Beim zweiten Beispiel würde ich allerdings eher '<' nehmen als '~'.
              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar


                #22
                Hi Max,

                hab gerade noch mal einen Post von dir weiter vorne gelesen und eigentlich beschreibst du hier:

                Zitat von l0wside Beitrag anzeigen
                Ich würde eher den Weg gehen:
                • Szene über Visu anlegen/ändern
                • Zeitschaltuhr löst Szene aus (ggf. genügt es dann, jeder Szene eine Zeitschaltuhroption mitzugeben)
                genau das was ich meine, nur eben ohne das Zusammenlegen von Szenen und UZSU. Man legt eine Szene an (egal ob in der Konfig oder über die Visu) und definiert eine UZSU die die Szene triggert (auch hier egal ob über die Konfig oder eine Visu). Jedoch kann eine UZSU immer noch auch Items triggern, die keine Szenen sind.
                Mit freundlichen Grüßen
                Niko Will

                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                Kommentar


                  #23
                  Hallo Kollegen,

                  ich habe jetzt einen ersten Wurf in git gepusht. Damit lassen sich jetzt mal einfache Schaltuhren auf Itemebene realisieren. Für Logiken habe ich es nicht getestet, aber dort sollte es ebenso funktionieren. Gibt man bei cycle oder crontab einen Doppelpunkt gefolgt von einem Wert an wird dieser als value dem scheduler übergeben und der Logik über das Trigger Objekt zugeführt bzw. dem Item gesetzt. Weiter lassen sich beliebig viele Eintäge in crontab wie bisher durch das Pipesymbol '|' angeben. Folgendes ist nun also möglich:

                  Code:
                  [home]
                      [['itemname']]
                          type=num
                          crontab=0 * * * : 0 | 15 * * * : 50 | 30 * * * : 100 | 45 * * * : 150
                  Dadurch wird das Item um xx:00 Uhr auf 0, um xx:15 Uhr auf 50, um xx:30 Uhr auf 100 und um xx:45 Uhr auf 150 gesetzt.

                  Code:
                  [home]
                      [['itemname']]
                          type=num
                          cycle=60 : 0
                  Setzt den Itemwert jede Sekunde zurück auf 0.

                  Die Änderung war recht einfach, daher habe ich das mal so integriert.

                  Das Ändern über die Visu fehlt dabei natürlich noch komplett, hier sollte man dann zunächst überlegen, wie man solche Werte über die Visu ändert so das sie auch persistiert werden und vor allem, wie sie persistiert werden (in eine DB geschrieben, in eine spezielle Konfigurationsdatei in der man Schaltuhren definiert oder in die Konfigurationsdatei selber). Da sollte man noch einiges an Hirnschmalz reinstecken, bevor man hier einen Schnellschuss macht. Evtl. macht hier doch eine ganz andere Implementierung sinn, aber für das einfache Setzen von Werten zu bestimmten Uhrzeiten ist die scheduler Anpassung ausreichend.

                  Wenn Max dann noch seine Erweiterung der crontab Syntax einbaut, kann man damit schon mal recht mächtige Sachen anstellen. Aber klar, Ziel soll es natürlich sein, eine UZSU über die Visu konfigurieren zu können.
                  Mit freundlichen Grüßen
                  Niko Will

                  Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                  - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                  Kommentar


                    #24
                    Hatte gerade eine Idee, wie wir das vielleicht architektonisch elegant lösen könnten. Der Scheduler berechnet ja aus cycle und crontab, wann er das Item das nächste mal Triggern muss und mit welchem Wert. Nun könnten wir den Items zusätzlich eine Methode spendieren, die der Scheduler abfrägt mit next_time und value als Rückgabe. Damit wäre zumindest mal die Möglichkeit geschaffen, das ganze etwas komplexer werden zu lassen und der Scheduler bleibt sauber.

                    Wie die Methode in den Items dann genau aufgebaut wird muss man sich noch überlegen. Ganz interessant wäre hier auch sowas wie "Externe Schaltlisten" beim HS... diese könnte man per Logik z.B. aus iCal generieren. Auch könnte man darin dann über die Visu konfigurierte Zeiten irgendwoher auslesen und dem Scheduler übergeben.

                    Was haltet ihr davon?
                    Mit freundlichen Grüßen
                    Niko Will

                    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                    Kommentar


                      #25
                      Hallo,

                      Nikos Change musste ich leider Rückgängig machen. Die oder eine ähnliche Funktionalität kommt demnächst wieder in github.

                      Bis bald

                      Marcus

                      Kommentar


                        #26
                        ok, die Funktion ist wieder in github.

                        Die Syntax hat sich leicht geändert, da ich die ':' hier gerne unbelegt lassen würde um sie später für Uhrzeiten verwenden zu können.
                        Ich bin aber leidenschaftslos und für andere Vorschläge/Feedback offen.

                        Code:
                        [home]
                            [[itemname]]
                                type=num
                                crontab=0 * * * = 0 | 15 * * * = 50 | 30 * * * = 100 | 45 * * * = 150
                        Man kann nun bei cycle und crontab Werte angeben, die das Item und neu auch Logiken erhalten können.

                        Bis bald

                        Marcus

                        Kommentar


                          #27
                          Umfrage: Zeitschaltuhr (UZSU) gewünscht?

                          Hi Marcus,

                          ein '=' finde ich sogar noch besser, ich dachte nur das es dann Probleme mit der Zuweisung zum Attribut geben könnte.
                          Mit freundlichen Grüßen
                          Niko Will

                          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                          Kommentar


                            #28
                            Hallo,

                            Danke an Max a.k.a. l0wside für einen Patch der den crontab erweitert.
                            Er ist in github zu finden.

                            Crontab kann nun:

                            Code:
                            crontab = sunrise-20m  # 20 Minuten vor Sonnenaufgang
                            crontab = sunrise-6  # 6 Grad "vor" Sonnenaufgang = Start der Morgendämmerung
                            crontab = 17:00<sunset  # Sonnenuntergang, frühestens 17:00 (lokale Zeit)
                            crontab = sunset<20:00  # Sonnenuntergang, spätestens 20:00 (lokale Zeit)
                            crontab = 17:00<sunset<20:00  # Sonnenuntergang, frühestens 17:00 und spätestens 20:00 (lokale Zeit)
                            so long,

                            Marcus

                            Kommentar


                              #29
                              Coole Sache, nur der Vollständigkeit halber, geht auch sowas:

                              Code:
                              crontab = 17:00<sunset-10m<20:00  # 10 Minuten vor Sonnenuntergang, frühestens 17:00 und spätestens 20:00 (lokale Zeit)
                              ???
                              Mit freundlichen Grüßen
                              Niko Will

                              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                              Kommentar


                                #30
                                Zitat von 2ndsky Beitrag anzeigen
                                Coole Sache, nur der Vollständigkeit halber, geht auch sowas:
                                Code:
                                crontab = 17:00<sunset-10m<20:00  # 10 Minuten vor Sonnenuntergang, frühestens 17:00 und spätestens 20:00 (lokale Zeit)
                                ja, und auch sunset+6.

                                Kommentar

                                Lädt...
                                X