Ankündigung

Einklappen
Keine Ankündigung bisher.

Bestpractice "Szenen"

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

    Bestpractice "Szenen"

    Hallo Zusammen,

    ich komme nochmal auf das Thema "Szenen" zurück. Nachdem ich nun die ersten am Rennen habe und die Wünsche der Gemahlin stetig erneuert werden, stehe ich so ein bißchen vor dem Praxis-Problem:

    In einem Szenenaktor deklariere ich alle Teilnehmer der Szene. Beim "storescene" werden die Werte aller Teilnehmer abgefragt und unter der Szenennummer abgespeichert und daraufhin beim "callscene" abgegerufen.

    Was ist aber, wenn sich nicht alle Teilnehmer (wie z.B. der Rolladen) in allen Szenen beteiligen sollen. Muss ich für jede mögliche Kombination der mitspielenden Teilnehmer einen Szenenaktor anlegen?
    Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

    #2
    Zitat von teichsta Beitrag anzeigen
    Was ist aber, wenn sich nicht alle Teilnehmer (wie z.B. der Rolladen) in allen Szenen beteiligen sollen. Muss ich für jede mögliche Kombination der mitspielenden Teilnehmer einen Szenenaktor anlegen?
    Kurz gesagt: Ja.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Alternativ könnte man auch ein Programm schreiben, das als zusätzlichen Wert "IGNORIEREN" vorsieht. Dann könnte man z.B. im Wohnzimmer je nach Bedarf über den gleichen Szenen-Aktor z.B. Rolladen, Fernsehlicht, Deckenbeleuchtung, Indirekte Beleuchtung, Suchbeleuchtung, Leselicht und Stehlampe in beliebigen Kombinationen schalten/dimmen und zwar auch in Untergruppen.

      Die Daten kann man dann auch mit der Visu bearbeiten und im Remanentspreicher als String ablegen.
      BR
      Marc

      Kommentar


        #4
        mit "Programm" meinst Du "Makro" ich kann Dir noch nicht ganz folgen. Könntest Du den Ansatz etwas genauer erläutern?
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #5
          Vom Prinzip her ist ein Szene-Aktor ja nur ein Speicher für Werte verschiedenster Aktoren. Die Aktoren werden über GAs bzw. KOs definiert und die gespeicherten Szenen-Werte an die Aktoren geschickt.

          Wenn man verschiedene Aktoren (wie in deinem Anwendungsfall) bei manchen Szenen nicht verwenden will, muss man in einem normalen Szene-Aktor leider eine neue Gruppe erstellen, die dann die entsprechende Szene aufnehmen kann.

          -> Um keine solche expliziten Untergruppen bilden zu müssen, sondern quasi implizit die Untergruppen in der normalen Gruppe bilden zu können, bräuchte man eine Möglichkeit, einzelne Aktoren von Aktionen auszuschließen. Ich würde hierfür den Wert "IGNORIEREN" vorsehen.

          Beispiel:
          Problem normalerweise:

          Szenen-Aktor-Gruppe:
          Szene____Licht1__Licht2__Licht3__Licht4_schalten__ Licht4_dimmen__Rollo1_position
          Szene 1___EIN_____EIN_____AUS__________AUS____________???__________ZU
          Szene 2___AUS_____EIN_____???__________EIN____________50%__________ZU
          Szene 3___AUS_____AUS_____AUS__________AUS____________???__________AUF


          Die ??? stellen die Aktoren dar, die nicht benutzt werden sollen. Für diese Kombination müsste ich also neue Aktorgruppen mit entsprechenden Szenen erstellen.

          Für die Umsetzung bietet der eibPC nun fast alles, was man benötigt:
          - Auf Tastendruck die gewünschte Szene selektieren
          - im Remanentspeicher könnte man die Daten 'nichtflüchtig' speichern, z.B. in Strings (max 1400 Bytes).
          - String-Befehle, um den String zu zerlegen und den Wert an den Aktor zu senden (oder zu Ignorieren)
          - Langes drücken der Szene-Taste zum speichern ist einlesbar
          - Auslesen der Aktoren über Read() (Antwort ist nicht als solche erkennbar)
          - verwendete Aktoren sind hart kodiert (ist bisher auch so)
          - man könnte entweder alle Szenen in einem String verwalten oder pro Aktor einen String verwenden

          Evtl. finde ich etwas Zeit, um mal ein Programm zu erstellen, dann kann ich es anhand des Programmen zeigen.
          BR
          Marc

          Kommentar


            #6
            Zitat von saft6luck Beitrag anzeigen

            Szenen-Aktor-Gruppe:
            Szene____Licht1__Licht2__Licht3__Licht4_schalten__ Licht4_dimmen__Rollo1_position
            Szene 1___EIN_____EIN_____AUS__________AUS____________???__________ZU
            Szene 2___AUS_____EIN_____???__________EIN____________50%__________ZU
            Szene 3___AUS_____AUS_____AUS__________AUS____________???__________AUF


            Die ??? stellen die Aktoren dar, die nicht benutzt werden sollen. Für diese Kombination müsste ich also neue Aktorgruppen mit entsprechenden Szenen erstellen.
            Der Ansatz ist zwar möglich und interessant, ich selbst finde aber es einfacher, mehrere "Szenenaktoren" (Funktion scene im EibPC) zu nutzen. Man hat ja unbegrenzt zur Verfügung.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              aha verstanden ... vielen Dank für die Erläuterung!

              und was Michael sagt ist, dass man die Gruppierung der Teilnehmer eher über einzelne Szenenaktoren lösen sollte? Ich lege also eine BeleuchtungsSzenenAktor, SteckdosenSzenenAktor und einen RolladenSzenenaktor an und definiere darin meine Szenen. Und obendrüber stülpe ich dann einen SzenenSzenenAktor, der die GAs aller Szenenaktoren hält?

              Sonst müßte ich ja in allen Szenen"gebern" alle GAs aller beteilgten Aktoren hinterlegen, oder?
              Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                Der Ansatz ist zwar möglich und interessant, ich selbst finde aber es einfacher, mehrere "Szenenaktoren" (Funktion scene im EibPC) zu nutzen. Man hat ja unbegrenzt zur Verfügung.
                Ich sehe es zwar etwas kritischer, da ich die Szenenaktoren im eibPC nur schwer kontrollieren kann, d.h. Löschen, Werte Vorgeben, Teilnehmer Ändern und Inhalte Anzeigen, ist nicht trivial bis unmöglich (war ja klar, dass das kommt ). Aber natürlich hast du Recht, wer einen externen Szenenaktor verwendet, kann genauso den internen verwenden, mit dem Vorzug, beliebig viele davon zur Verfügung zu haben.

                Zitat von teichsta Beitrag anzeigen
                und was Michael sagt ist, dass man die Gruppierung der Teilnehmer eher über einzelne Szenenaktoren lösen sollte? Ich lege also eine BeleuchtungsSzenenAktor, SteckdosenSzenenAktor und einen RolladenSzenenaktor an und definiere darin meine Szenen. Und obendrüber stülpe ich dann einen SzenenSzenenAktor, der die GAs aller Szenenaktoren hält?
                Michael meint eher, für jede Gruppierung von (aktiven) Aktoren soll man einen SzenenAktor verwenden, bzw. inaktive Aktoren kommen in dem Szenenaktor dann nicht vor. D.h. es gibt mehrer Szenenaktoren und je nach benötigter Kombination an Aktoren (GAs) verwendet man den entsprechenden Szenenaktor.

                Im ungünstigsten Fall würde man also für jede möglich Kombination der Aktoren einen eigenen Szenenaktor kreieren, kommt aber sicherlich nie vor.

                Deine Überlegung schließt ja immer alle GAs ein.

                Sonst müßte ich ja in allen Szenen"gebern" alle GAs aller beteilgten Aktoren hinterlegen, oder?
                "aller" an dieser Szene "beteilgten Aktoren hinterlegen" ...
                So ist es dann aber 'nach der reinen Lehre' vorgesehen.
                BR
                Marc

                Kommentar


                  #9
                  Zitat von teichsta Beitrag anzeigen
                  Sonst müßte ich ja in allen Szenen"gebern" alle GAs aller beteilgten Aktoren hinterlegen, oder?
                  Ja, so würde ich das Lösen. Also für jede Szene komplett. Ob "Szene in Szene" geht, weiss ich nicht, aber wäre zu testen.
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    Zitat von enertegus Beitrag anzeigen
                    Ob "Szene in Szene" geht, weiss ich nicht, aber wäre zu testen.
                    Szene in Szene würde aber nichts bringen, da ich dann auch nur wieder einen kompletten Baum aller GAs bekomme und nicht einzelne GAs ausschließen kann.
                    BR
                    Marc

                    Kommentar


                      #11
                      Zitat von saft6luck Beitrag anzeigen
                      . Löschen, Werte Vorgeben, Teilnehmer Ändern und Inhalte Anzeigen, ist nicht trivial bis unmöglich
                      Es wird wohl mal eine Funktion "initscene" geben, so dass man Vorbelegen kann. Löschen versteh ich nicht und Teilnehmer ändern auch nicht. Was soll denn das letztere überhaupt sein? Dynamische Szenenverwaltung oder wie? Das geht sicher nicht, es sei denn Du machst das mit dem Makro (und dann mit einer Art "simulierten" Szene.
                      Wir warten schon gespannt auf Dein Makro
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        #12
                        Zitat von enertegus Beitrag anzeigen
                        Löschen versteh ich nicht und Teilnehmer ändern auch nicht. Was soll denn das letztere überhaupt sein?
                        nein, ich denke es geht darum, dass man alle Szenen löschen soll, wenn man einen Szenenaktor erweitert. So hatte ich jedenfalls das Manual (oder war es ein Beitrag von Dir) verstanden.
                        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                        Kommentar


                          #13
                          Zitat von enertegus Beitrag anzeigen
                          Löschen versteh ich nicht und Teilnehmer ändern auch nicht. Was soll denn das letztere überhaupt sein? Dynamische Szenenverwaltung oder wie? Das geht sicher nicht, es sei denn Du machst das mit dem Makro (und dann mit einer Art "simulierten" Szene.
                          Wir warten schon gespannt auf Dein Makro
                          Es geht da eher um das dynamische Haus:
                          - Wenn ich momentan eine Szene ändern will, weil ich den Rolladen nun in einen anderen Szenenaktor auslagere, kann ich den alten Aktor nicht aus dem alten Szenenaktor entfernen
                          - Wenn ich einen Wert einer Szene über die Visu neu einstellen will, darf ich die Szene aufrufen (zum Aufrufen der Werte), dann erst den neuen Wert einstellen, den neuen Wert senden und dann die Szene wieder abspeichern.
                          - Wenn ich Teilnehmer eines Szenenaktors ändern will, d.h. Adresse, GA, Typ, darf ich einen neuen Szenenaktor anlegen.

                          Und immer wenn ich einen alten Szenenaktor nach Änderung nicht mehr 'benötige' (und das gilt sofort, wenn die Szenen-GA weiter verwendet wird), darf ich alle Szenen löschen und die Werte neu einstellen.

                          Wenn ich Zeit habe, werde ich wohl eine Szenenaktor-Simulation erstellen.
                          BR
                          Marc

                          Kommentar


                            #14
                            Eine Szene im EPC ist nun einmal nicht so flexibel, wie beim Gira ITT oder Berker MC. Bei diesen kann man die Werte am Gerät editieren und auch auf "unverändert" setzen. Geht beim EPC alles nicht. Dafür kann er beliebig viele Szenenaktoren haben, ITT/MC nur einen. Schade das die bei Änderungen immer komplett gelöscht werden müssen.

                            Zitat von enertegus Beitrag anzeigen
                            Ja, so würde ich das Lösen. Also für jede Szene komplett. Ob "Szene in Szene" geht, weiss ich nicht, aber wäre zu testen.
                            Da würde mich vor allem die Reihenfolge der GAs interessieren, wird die Szene eingefügt oder angehängt?

                            Zitat von enertegus Beitrag anzeigen
                            Es wird wohl mal eine Funktion "initscene" geben, so dass man Vorbelegen kann...
                            So etwas wünschen wir uns ja schon länger. Aber um Szenen richtig handhabbar zu machen wünsche ich mir:
                            Die Werte einer Szene können per Programm jederzeit auch einzeln (z.B. über Index) ausgelesen werden.
                            Die Werte einer Szene können per Programm jederzeit auch einzeln (z.B. über Index) verändert werden.
                            Man kann so einzelne Teilnehmern auch auf "unverändert/ignorieren" setzen, d.h. sie werden beim Speichern nicht gelesen und beim Aufruf der Szene übergangen.
                            Es gibt für den Webserver ein Objekt zur Editierung der Szenen. Für den Anfang könnte ich damit leben, das ich für jeden Aktor ein eigenes Objekt nutzen muß, Kür wäre, ich könnte mit einem Objekt alle Szenen ändern. Dazu sollte man diesen dann wohl Namen geben können.

                            Zitat von enertegus Beitrag anzeigen
                            Dynamische Szenenverwaltung oder wie?
                            Im Sinne von: wenn ich einen neuen Szenenaktor anlege oder einen bestehenden ändere oder lösche, muß ich nicht alle anderen neu initialisieren? Das wäre in der Tat sehr wünschenswert, da das Neueinstellen aller Szenen ggf. sehr viel Zeit kosten kann.

                            Zitat von enertegus Beitrag anzeigen
                            Das geht sicher nicht,
                            Es geht nicht, das ist sicher. Aber muß das denn auch so bleiben?

                            Zitat von enertegus Beitrag anzeigen
                            es sei denn Du machst das mit dem Makro (und dann mit einer Art "simulierten" Szene.
                            Wir warten schon gespannt auf Dein Makro
                            Ja, ich auch. Aber auch wenn man viel mit Makros wieder glattbügeln kann, so fände ich es doch besser, der Szenenaktor des EPCs könnte das von sich aus.
                            Es geht ja nicht darum, zur Laufzeit Teilnehmer auszutauschen, zu entfernen oder hinzuzufügen, es soll lediglich möglich sein, deren Werte per Programm abfragen/ändern zu können und einzelne Positionen auszublenden. Und das Ganze auch mal per Weboberfläche erledigen zu können.

                            Und bitte jetzt nicht protestieren, das Szenen nichts mit dem Webserver zu tun hätten! Das ist genau so richtig wie falsch! Richtig, die Weboberfläche hat mit der Steuerungslogik im EPC (einschließlich Szenen) erst einmal gar nichts zu tun. Sie ist nur eine Visualisierung. Aber falsch wäre die Schlußfolgerung, das sie deshalb nicht als Editor für Einstellungen des EPCs im Betrieb benutzt werden könnte/dürfte/sollte. Natürlich könnte und sollte sie meiner Meinung nach für so etwas herangezogen werden, erst so werden Szenen, Schaltuhren o.ä. überhaupt benutzerfreundlich.
                            Tessi

                            Kommentar


                              #15
                              Zitat von Tessi Beitrag anzeigen
                              Eine Szene im EPC ist nun einmal nicht so flexibel, wie beim Gira ITT oder Berker MC. Bei diesen kann man die Werte am Gerät editieren und auch auf "unverändert" setzen.
                              Was ich hier so habe (z.B. BJ) muss dazu aber über die ETS3 parametriert werden.
                              Schade das die bei Änderungen immer komplett gelöscht werden müssen.
                              Das ist so nicht richtig bzw. ist die einfach Regel, damit es in jedem Fall geht. Grundsätzlich betrifft nur die eine Szene, die verändert wird. Man muss die Szene dann aber unbedingt einmal per "storescene" speichern lassen, bevor man diese aufruft. Sonst würde der EibPC an die GA falsche Telegramme schicken.

                              Da würde mich vor allem die Reihenfolge der GAs interessieren, wird die Szene eingefügt oder angehängt?
                              Wie meinst Du?
                              Die Werte einer Szene können per Programm jederzeit auch einzeln (z.B. über Index) ausgelesen werden.
                              Die Werte einer Szene können per Programm jederzeit auch einzeln (z.B. über Index) verändert werden.
                              ok.
                              Man kann so einzelne Teilnehmern auch auf "unverändert/ignorieren" setzen, d.h. sie werden beim Speichern nicht gelesen und beim Aufruf der Szene übergangen.
                              Du meinst bei der Szenennumer zugehörig zu einem "Baustein" (scene) soll inaktiv geschalten werden können?
                              [highlight=epc]
                              scene(SzGA,GA1,GA2)
                              [/highlight]
                              definiert ja 64 Szenen. Nun möchtest Du quasi:
                              sceneInactive(SzGA,SzNummer,SzTeilnehmer)
                              wobei die SzNummer die Szennnummer und SzTeilnehmer 1 für GA1 inaktiv bzw. 2 für GA2 inaktiv?
                              bestehenden ändere oder lösche, muß ich nicht alle anderen neu initialisieren?
                              Wie gesagt, das ist gar nicht notwendig.
                              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                              Enertex Produkte kaufen

                              Kommentar

                              Lädt...
                              X