Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Szenen Baustein

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

    Probleme mit Szenen Baustein

    Hallo Zusammen,

    ich versuche gerade, meine Installation um die Szenen Funktionalität zu erweitern. Dazu habe ich im EibPC folgendes programmiert:

    scene("Szene Nils-11/1/0", "Dimmwert - Arbeiten Nils-1/1/33",
    "Dimmwert Arbeiten Vera-1/1/35", "Dimmwert - Flur UG1-1/1/32")

    Nach meinem Verständnis sollte das doch ausreichen um die 3 Lampen zu schalten, oder? Wenn ich nun den Szenentaster drücke sendet er auch den Wert 0 beim Szenenaufruf bzw. 128 bei Szene speichern. Allerdings sendet der EibPC keine Leseanforderungen an die Dimmwert GAs und bei anschließendem Aufruf der Szene passiert gar nichts. Leseflags bei den Dimmwert GAs sind gesetzt.

    Hab ich noch etwas übersehen?

    Gruß Nils

    #2
    Zitat von Reason555 Beitrag anzeigen
    scene("Szene Nils-11/1/0", "Dimmwert - Arbeiten Nils-1/1/33",
    "Dimmwert Arbeiten Vera-1/1/35", "Dimmwert - Flur UG1-1/1/32")
    Das ist richtig.

    Wenn Du die Szene einlernst, musst Du aber sicherstellen, dass die GAs auch antworten. Wenn nicht, wird die Szene für die Rest der Programmlaufzeit inaktiv.

    Solltest Du also da zwischenzeitlich mit der ETS gearbeitet haben, so kann ein Programmneustart erforderlich sein.

    Probier ggf. mal mit storescene und callscene direkt vom EibPC die GA anzusprechen-
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Vielen Dank für den Hinweis, ich glaube nun auch dass ich das Problem gefunden habe, ohne jedoch eine Lösung zu haben. Wenn ich den Lesen-Befehl auf die Dimmwert GAs schicke senden diese natürlich auf die Status GAs für den Dimmwert und nicht auf die GAs mit dem der Dimmwert gesetzt wird. Dies müsste vermutlich der jeweilige Taster machen, da ich die Dimmer aber alle relativ dimme geht das vermutlich gar nicht anders. Hat jemand eine Idee wie ich dieses Problem umgehen kann?

      Beste Grüße
      Nils

      Kommentar


        #4
        Zitat von Reason555 Beitrag anzeigen
        Vielen Dank für den Hinweis, ich glaube nun auch dass ich das Problem gefunden habe, ohne jedoch eine Lösung zu haben. Wenn ich den Lesen-Befehl auf die Dimmwert GAs schicke senden diese natürlich auf die Status GAs für den Dimmwert und nicht auf die GAs mit dem der Dimmwert gesetzt wird. Dies müsste vermutlich der jeweilige Taster machen, da ich die Dimmer aber alle relativ dimme geht das vermutlich gar nicht anders. Hat jemand eine Idee wie ich dieses Problem umgehen kann?
        In dem Fall einfach das Szenentelegramm abfangen und die Szene "händisch" erstellen
        So grob
        [highlight=epc]
        // Speichern
        if "1/2/3"==128 then {
        writeflash(STATUS_GA1,P1);
        writeflash(STATUS_GA2,P2);
        GA_W1=STATUS_GA1;
        GA_W2=STATUS_GA2;
        } endif
        // Schreiben
        if "1/2/3"==0 then {
        write(GA1,GA_W1);
        write(GA2,GA_W2);
        } endif

        // Aus dem Flash lesen
        if systemstart() then readflash(GA_W1)... endif
        [/highlight]

        Alternativ etwas eleganter - ungetestet, Außerdem weiss ich nicht, ob ein einfaches write als Antwort auf eine Leseanforderung genügt:
        [highlight=epc]
        // Umsetzen der Leseanforderung
        if eventread(Status_GA1) then write(GA1, Status_GA1) endif
        [/highlight]
        Anmerkung:
        Es wurde in dem Zusammenhang auch ein Bug mit den erweiterten event-Funktionen gemeldet, der hier aber wohl nicht greift. Ich werde das Beispiel aber testen. Das wäre dann was fürs Handbuch bzw. ein Makro:
        LeseanforderungSimulation(GA1,ResponseGA)
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Zitat von Reason555 Beitrag anzeigen
          Wenn ich den Lesen-Befehl auf die Dimmwert GAs schicke senden diese natürlich auf die Status GAs für den Dimmwert und nicht auf die GAs mit dem der Dimmwert gesetzt wird.
          Gibt es dafür nicht einen Befehl, der mehrere GAs so verbindet, das alle immer den selben Wert repräsentieren, egal welche zuletzt geändert wurde? So als Workaround für nicht vorhandene KOs und um genau solche Fälle wie diesen hier abzudecken?
          Oder steht das bislang nur auf der Wunschliste?
          Tessi

          Kommentar


            #6
            comobject(GA1, GA2, ..., GAn) ?

            Kommentar


              #7
              Zitat von bmx Beitrag anzeigen
              comobject(GA1, GA2, ..., GAn) ?
              yep, aber das löst an sich ja nicht das Problem, dass (wohl jeder) Szenenaktor auf die zu speichernde GA eine Antwort braucht.
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                [highlight=epc]
                // Umsetzen der Leseanforderung
                if eventread(Status_GA1) then write(GA1, Status_GA1) endif
                [/highlight]
                Hab ich eben getestet, da wirkt auch der vermutete Bug - leider. Aber wir werden das fixen.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Zitat von enertegus Beitrag anzeigen
                  yep, aber das löst an sich ja nicht das Problem, dass (wohl jeder) Szenenaktor auf die zu speichernde GA eine Antwort braucht.
                  Ich habe das so verstanden:
                  Fragt man auf der Dimmwert-GA an, bekommt man eine Antwort - nur eben auf der Status-GA.
                  Arbeitet ein Gerät mit KOs, dann kann man dem die Status-GA halt als zusätzlich hörende Adresse geben, und schon ist es egal, ob der Dimmer auf der Dimmwert- oder der Status-GA antwortet - er muss nur überhaupt antwortet.

                  Laut Handbuch ist comobject() "nur" eine Funktion die als Ergebnis den zuletzt veränderten Parameter zurück gibt. Eine Verknüpfung der GAs derart, das alle jeweils den Wert der zuletzt veränderten repräsentieren, ist damit nicht zu erreichen.
                  Eine Funktion kann aber nicht als Parameter für einen Szeneaktor verwendet werden. Also funktioniert ein Szenenaktor mit einem derart konfigurierten Dimmaktor nicht wie gewünscht. Das wurde meines Wissens nach aber schon vor längerer Zeit hier im Forum angesprochen.
                  Die vollständige Funktionalität eines KOs kann der EibPC nicht "simulieren". Da beim EibPC normalerweise nur explizit gesendet wird, ist das auch nicht erforderlich, nur der Szeneaktor trennt halt nicht, nutzt zwangsweise die selben GAs zum Lesen und Schreiben - vielleicht sollte man hier erweitern: Statt nur einer GA einfach für jeden Teilnehmer zwei GAs vorsehen, wird die zweite nicht gebraucht, läßt man sie weg:
                  Code:
                  scene(GAszeneaktor, GAaktor1wert,GAaktor1status, GAa2w,GAa2s,GAa3w,GAa3s,GAa4w,,GAa5w,,GAa6w,GAa6s)
                  Falls ",," vom Compiler generell nicht verkraftet wird, kann man dafür ja auch einen Dummybezeichner festlegen.
                  Gut wäre auch, wenn man an Stelle der Status-GA dann auch eine Variable verwenden dürfte, dann könnte man dadurch (an anderer Stelle) auch mehrere GAs zusammenfassen (z.B. per comobject()) oder die Antwort noch vorverarbeiten (wozu auch immer sich das in Zukunft als nützlich erweisen mag...):
                  Code:
                  scene(GAszeneaktor, GA1,Var1,GA2,Var2,GA3,var3,GA4,,GA5,,GA6,Var6)
                  Eine Antwort von der Status-GA einfach auf die Dimmwert-GA zu schreiben ist nicht nur erheblicher Mehraufwand sondern könnte unerwünschte Nebenwirkungen haben, zum einen könnte der Aktor das als Befehl auffassen und erneut ein Update auf der Status-GA senden zum anderen könnte genau das wiederum von anderen als Triggersignal aufgefasst werden, mit dem Erfolg, das man ggf. eine unerwünschte Lawine lostritt und das nicht nur einfach, sondern gleich für viele an der Szene Beteiligter - eben alle die mit Status-GAs arbeiten.
                  Tessi

                  Kommentar


                    #10
                    Zitat von enertegus Beitrag anzeigen
                    Hab ich eben getestet, da wirkt auch der vermutete Bug - leider. Aber wir werden das fixen.
                    Ein Problem hier ist auch, dass ein Antworttelegramm erwartet wird, welches nicht das Gleiche ist, wie ein normales "write".
                    Ich habe daher eben auch ein "writeresponse" auf die Featureliste geschrieben.
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      Zitat von enertegus Beitrag anzeigen
                      Ein Problem hier ist auch, dass ein Antworttelegramm erwartet wird, welches nicht das Gleiche ist, wie ein normales "write".
                      Das ist ist in meinen Augen aber kein Problem sonder vernünftig. Ein Problem ist höchstens, das der EibPC derzeit noch keine Antworten senden kann.

                      Zitat von enertegus Beitrag anzeigen
                      Ich habe daher eben auch ein "writeresponse" auf die Featureliste geschrieben.
                      Ich hatte bislang geglaubt, es stünde schon lange drauf...


                      Ich finde es allerdings wenig sinnvoll, das der EibPC einer Response auf einer GA noch eine Kopie davon auf einer zweiten GA hinterhersenden soll, nur weil sein Szenenaktor nicht mit mehreren hörenden Adressen umgehen kann. Nicht nur, das dies eine höhere Bus- und Gerätelast erzeugt, es kann ja auch durchaus gewollt und ggf. sogar notwendig sein, das die Antwort eben nicht auf der "Komando"-GA gesendet wird. Ggf. triggert dies ungewollte Aktionen (es soll immer noch Geräte geben, die Antworten als Komando interpretieren und bei denen das auch nicht konfiguriert werden kann). Oder kann ich irgendwie verhindern, das diese vom EibPC generierten Telegramme, die ja eigentlich nur intern gebraucht werden, auf den Bus gesendet werden?
                      Aber selbst wenn, unter Umständen ist das, was auf der Status-GA geantwortet wird, nicht das, was zuvor auf der Wert-GA gesendet wurde - der Status könnte zwischenzeitlich auf anderen Wegen verändert worden sein - und ggf. will man den Vorgabezustand in der Wert-GA erhalten und nicht durch den Istzustand der Status-GA ersetzen - auch nicht intern im EibPC.

                      Deswegen auch mein Vorschlag, den Szenenaktor zu erweitern (siehe meinen vorherigen Beitrag), aus meiner Sicht ist das eine wesentlich sauberere Lösung.
                      Der Wunsch nach "writeresponse" bleibt dadurch aber unberührt.
                      Tessi

                      Kommentar


                        #12
                        Zitat von Tessi Beitrag anzeigen
                        Oder kann ich irgendwie verhindern, das diese vom EibPC generierten Telegramme, die ja eigentlich nur intern gebraucht werden, auf den Bus gesendet werden?
                        Nein.
                        Deswegen auch mein Vorschlag, den Szenenaktor zu erweitern (siehe meinen vorherigen Beitrag), aus meiner Sicht ist das eine wesentlich sauberere Lösung.
                        Finde ich nicht, da dies dann mit einem KNX Szenenaktor nichts mehr gemein hat. Wenn man das so will, kann man jederzeit per Makro und den Flashfunktionen das implementieren. M.E. ist das eben eine individuelle Geschmackslösung.
                        Der Wunsch nach "writeresponse" bleibt dadurch aber unberührt.
                        Klar
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          Zitat von enertegus Beitrag anzeigen
                          Nein.
                          D.h. der oben erwähnte Workaround (so er denn bugfrei wäre) würde mir den Bus mit zusätzlichen Echos belasten und ich müsste auch noch sicherstellen, das diese keine unerwünschten Nebenwirkungen hätten...
                          Auch wenn eine Szene eher selten neu gespeichert werden wird, halte ich das für sehr sehr unelegant...
                          Zitat von enertegus Beitrag anzeigen
                          Finde ich nicht, da dies dann mit einem KNX Szenenaktor nichts mehr gemein hat. Wenn man das so will, kann man jederzeit per Makro und den Flashfunktionen das implementieren. M.E. ist das eben eine individuelle Geschmackslösung.
                          M.E. hat das so gar nichts mit Geschmack zu tun, aber sehr viel mit dem Design des EibPCs. Die meisten Geräte arbeiten mit KOs, auch bei Szenen, damit kann man dann das Problem durch zusätzliche hörende GAs lösen. Beim EibPC wurde auf KOs verzichtet, meist geht es hier ja auch ohne, nur beim Szenenaktor rächt sich das jetzt durch offensichtlich praxisrelevante Nutzungseinschränkungen. Und dadurch hat das M.E. sehr viel mit dem Szenenaktor zu tun.
                          Ich würde eine derartige Erweiterung gerne auf der Featureliste sehen, und ich glaube auch nicht, das Reason555 und ich die einzigen sind, die den Szenenaktor in seiner jetzigen Form nicht nutzen können.
                          Wer behauptet, man können beim EibPC auf KOs verzichten weil es immer einfache Lösungen ohne gäbe sollte es auch hier beweisen und - wenn der Senenaktor nicht erweitert werden soll - dann doch mal oben genanntes Makro schreiben, wenn das alles so einfach ist. Ich traue mir das derzeit nämlich (noch) nicht zu. Vor allem deshalb nicht, da der Szenenaktor mit variabel langer Parameterliste arbeiten kann, Makros aber bis heute nicht.
                          Tessi

                          Kommentar


                            #14
                            Zitat von Tessi Beitrag anzeigen
                            D.h. der oben erwähnte Workaround (so er denn bugfrei wäre) würde mir den Bus mit zusätzlichen Echos belasten und ich müsste auch noch sicherstellen, das diese keine unerwünschten Nebenwirkungen hätten...
                            Aber das macht doch jeder Busteilnehmer so: Entweder Du setzt das Leseflag und dann antwortet er oder eben nicht. Die Nebenwirkungen sind dabei immer zu beachten.
                            Auch wenn eine Szene eher selten neu gespeichert werden wird, halte ich das für sehr sehr unelegant...
                            Ja hierzu steht ja einiges auf der Featureliste, was v.a. die Vorbelegung der Szenen betrifft.
                            M.E. hat das so gar nichts mit Geschmack zu tun, aber sehr viel mit dem Design des EibPCs. Die meisten Geräte arbeiten mit KOs, auch bei Szenen, damit kann man dann das Problem durch zusätzliche hörende GAs lösen.
                            Also bei meinem Busch-Jäger Geräten, konnte ich nicht eine Szene angeben, bei der Status und normale GA unterschiedlich sind. Auch bei den Jung-RKs nicht.
                            Wer behauptet, man können beim EibPC auf KOs verzichten weil es immer einfache Lösungen ohne gäbe sollte es auch hier beweisen und - wenn der Senenaktor nicht erweitert werden soll - dann doch mal oben genanntes Makro schreiben, wenn das alles so einfach ist.
                            um das mal klar zu machen: Man kann doch beliebig (genau 65000) Szenen definieren:
                            [highlight=epc]
                            scene(GA_Szene1, GA_1,GA_2,GA_3)
                            scene(GA_Szene2, GA_1,GA_2)
                            scene(GA_Szene3, GA_1,GA_3)
                            [/highlight]
                            Pro Szene kann man nun 64 Szenen abspeichern:Wenn ich nun eine Szene mit nur 2 brauche, kein Problem. Wenn mit 30, auch keins.
                            Was auf der Featureliste steht, ist hier eine Vorbelegung zu machen, also etwas
                            preset_scene(GA_Szene1,SzenenNummer, 10%, EIN, 10.0)
                            und das Ganze noch unterstützt vom EibStudio per Klicki/Klacki.
                            Ich traue mir das derzeit nämlich (noch) nicht zu. Vor allem deshalb nicht, da der Szenenaktor mit variabel langer Parameterliste arbeiten kann
                            Naja, es sind quasi jeweils neue Szenenaktoren.
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #15
                              Zitat von enertegus Beitrag anzeigen
                              Aber das macht doch jeder Busteilnehmer so: Entweder Du setzt das Leseflag und dann antwortet er oder eben nicht. Die Nebenwirkungen sind dabei immer zu beachten.
                              Ich meine ja nicht, das die Aktoren antworten, sondern das der EibPC für alle Antworten, die auf einer anderen als der angefragten GA kommen (weil die Aktoren das halt über ein anderes KO machen welches sonst auch aktiv den Status meldet, was aber nicht als Kommando missverstanden werden soll und deshalb eine eigene GA hat), diese dann noch einmal auf der angefragten GA wiederholt - das hat man normalerweise nicht. Der Status wird ja eben auf einer anderen GA gesendet um Nebenwirkungen zu vermeiden. Das der EibPC das "Echo" als Response sendet, mag helfen, Probleme zu vermeiden solange andere Aktoren das dann nicht als Kommando ansehen - das kann aber bei einigen Geräten nicht verhindert werden. U.a. auch deswegen erlauben modernere Geräte die Antwort auf einer anderen GA zu senden - und daher sollten m.E. Geräte wie der EibPC damit wiederum umgehen können.

                              Zitat von enertegus Beitrag anzeigen
                              Ja hierzu steht ja einiges auf der Featureliste, was v.a. die Vorbelegung der Szenen betrifft.
                              Also Vorbelegung wünsche ich mir ganz unabhängig davon ebenso und es macht den Szenenaktor zumindest grundsätzlich dann auch für mich nutzbar. Wer aber wie Reason555 gerne den aktuellen Status auslesen und speichern möchte, und der Aktoren mit extra Status-GA verwenden will oder gar muss, dem ist damit noch nicht geholfen.

                              Zitat von enertegus Beitrag anzeigen
                              Also bei meinem Busch-Jäger Geräten, konnte ich nicht eine Szene angeben, bei der Status und normale GA unterschiedlich sind. Auch bei den Jung-RKs nicht.
                              Ups. OK, ich kenne längst nicht alle Geräte mit Szenenfunktionalität und es gibt offenbar noch weitere limitierte Geräte.
                              Trotzdem würde ich mich freuen, wenn der EibPC sich nicht gerade an eben diesen Geräten orientieren sondern mehr bieten würde...

                              Zitat von enertegus Beitrag anzeigen
                              um das mal klar zu machen: Man kann doch beliebig (genau 65000) Szenen definieren:
                              [highlight=epc]
                              scene(GA_Szene1, GA_1,GA_2,GA_3)
                              scene(GA_Szene2, GA_1,GA_2)
                              scene(GA_Szene3, GA_1,GA_3)
                              [/highlight]
                              Pro Szene kann man nun 64 Szenen abspeichern:Wenn ich nun eine Szene mit nur 2 brauche, kein Problem. Wenn mit 30, auch keins.
                              Ja, das ist alles klar (und in der Doku ja auch gut beschrieben). Aber all diese Szenen können nicht mit verschiedenen GAs zum Schreiben und Hören arbeiten. Dafür wurde ja die Implementierung per Makro vorgeschlagen, bei der ich befürchte, das sie ganz und gar nicht so trivial ist, als das ich das zum Laufen bekomme...

                              Zitat von enertegus Beitrag anzeigen
                              Was auf der Featureliste steht, ist hier eine Vorbelegung zu machen, also etwas
                              preset_scene(GA_Szene1,SzenenNummer, 10%, EIN, 10.0)
                              und das Ganze noch unterstützt vom EibStudio per Klicki/Klacki.
                              Ja, wird ja auch vielfach gewünscht (auch von mir), aber das "Leseproblem" löst das leider nicht.

                              Zitat von enertegus Beitrag anzeigen
                              Naja, es sind quasi jeweils neue Szenenaktoren.
                              Naja, jede Verwendung eines Makros generiert ja auch jeweils neuen Code. Der Szeneaktor kann aber halt mit unterschiedlich vielen GAs aufgerufen werden, das Schlüsselwort ist immer das selbe und sicher ist auch nicht für alle möglichen Anzahlen eigener Code implementiert. Bei einem Makro aber muss ich mich auf eine Anzahl festlegen, für verschiedene Anzahlen an GAs muß ich entsprechend viele Makros schreiben. Das ist halt ziemlich aufwändig und umständlich.

                              Da wünsche ich mir, das Makros eines Tages mit variablen Parameterlisten umgehen können - aber das ist ein ganz anderer Featurewunsch.

                              Aber letztendlich bleibt meine Frage:
                              Darf ich auf einen Szenenaktor hoffen, der eines Tages zusätzliche hörende GAs zulässt oder ist das absolut unrealistisch?
                              Tessi

                              Kommentar

                              Lädt...
                              X