Ankündigung

Einklappen
Keine Ankündigung bisher.

Neue Logikbausteine für den L1/X1: Formelberechnung, Statistik und mehr...

Einklappen
Dieser Beitrag wurde beantwortet.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Ich vermute ich telle mich mal wieder "blöd" an, aber mein Problem mit der Formelberechnung ist:

    Möchte einen Minutenwert in Sekunden umrechnen - also simpler Eingang "in Min." X "60" = Sekunden auf den Ausgangsbaustein.

    Formel: {m:I}*{s:I}

    Auf m kommt der interne X1 Datenpunkt 8-Bit ohne Vorzeichen im Beispiel 5

    s ist definiert als 60 ohne Eingang

    Als Fehlermeldung erhalte ich: Expression 1: (1,2): error CS0246: The type or namespace name `m' could not be found. Are you missing an assembly reference?

    ?? Ich verstehe es gerade absolut nicht.


    ELYS B.E1.101 - Gira Project Assistant 4.5 15.06.2021 12_16_14.png
    Zuletzt geändert von araeubig; 15.06.2021, 11:20.

    Kommentar


      Kann man auch nicht verstehen. Workaround: Klammern um den Ausdruck. Mit der nächsten Version macht der Baustein das dann selber...
      Zuletzt geändert von hyman; 16.06.2021, 22:05.

      Kommentar


        Nachdem ich die LBS für den X1 sehr schätzen gelernt habe und diese mir diverse Möglichkeiten offenbaren, stehe ich nun vor einem "speziellen" Problem:

        Ich möchte die orginale X1-Kachel "Audiosteuerung" missbrauchen, um einen DigitalSignage Player anzusteuern. Dazu möchte ich dem Player über die Kachel sagen "welche Playlist" er anzeigen soll. In meiner Theorie wäre es also so, dass ich mit 2 virtuellen GPA's durch die möglichen Playlists zappe...

        also in meinem Fall die Playlists 1 bis 8

        Auslöser "PREVIOUS" schaltet die Zahl runter

        Auslöser "NEXT" schaltet die Zahl hoch

        wenn 8 erreicht ist und der nächste Auslöser NEXT kommt, ist das Ergebnis wieder 1 und umgekehrt wenn 1 erreicht ist und der nächste Auslöser "PREVIOUS" kommt ist das Ergebnis wieder 8.

        Das Ergebnis dieser obigen Formelberechnung möchte ich an den Baustein Textformatierer weitergeben, der dann die Nummer durch den Namen der Playlist ergänzt und auf die entsprechende GPA sendet.

        Somit hätte ich in der orginalen X1 Kachel die Möglichkeit zwischen diesen 8 Playlists hin- und her zuschalten und den entsprechenden Text zu sehen in der Anzeige des Namens.

        Die ausgewählte Playlist Nummer soll dann beim START Kommando per UDP (auch zugewiesen/generiert über den Texterzeuger) an den Player weitergeleitet werden. Dies ist allerdings noch ein anderes Problem, dass der X1-UDP-Baustein noch nicht senden kann, aber das ist ein paralleler Punkt, den ich erstmal anders lösen muss.

        Mir geht es in erster Linie erstmal um den Ansatz der Formel, da ich irgendwie "feststecke".


        Gruss und schönes WE an alle.

        Kommentar


          Stecke an der Stelle fest, dass das Runterzählen mit Rücksetzen nicht sauber funktioniert:

          Formel 1: {PlaylistNext:B} ? 1:0
          Formel 2: {PlaylistPrevious:B} ? 1:0

          Formel 3: _previousOut3_ >= 1 & _previousOut3_ < 8 ? (_previousOut3_ + _out1_ - _out2_) : 1


          Screenshot (2).png

          Kommentar


            Zitat von araeubig Beitrag anzeigen
            Stecke an der Stelle fest, dass das Runterzählen mit Rücksetzen nicht sauber funktioniert:

            Formel 1: {PlaylistNext:B} ? 1:0
            Formel 2: {PlaylistPrevious:B} ? 1:0

            Formel 3: _previousOut3_ >= 1 & _previousOut3_ < 8 ? (_previousOut3_ + _out1_ - _out2_) : 1


            Screenshot (2).png
            Und es funktioniert nun einwandfrei, habe es hier dokumentiert.

            Kommentar


              Hallo,
              mal eine Frage: Welcher Sortierung folgt die Reihenfolge der Eingänge?
              Der Übersicht wegen würde ich die Reihenfolge gern sortieren .

              Kommentar


                Du hast keinen Einfluss auf die Sortierung. Erstes Kriterium sind die Datentypen, zweites die Reihenfolge der Verwendung in den Formeln. Und ja, ich finde das auch nicht immer optimal übersichtlich … aber ich kenne keinen Weg das zu ändern.

                Kommentar


                  Danke für die Info, hatte ich mir schon fast gedacht...

                  Kommentar


                    Hallo zusammen,
                    ich suche nach einer Möglichkeit die Temperaturwerte mehrerer Räume in einer Kachel darzustellen, hat das schon mal jemand umgesetzt?
                    Danke für Rückinfo!

                    Kommentar


                      Zitat von agk Beitrag anzeigen
                      die Temperaturwerte mehrerer Räume in einer Kachel darzustellen
                      ja klar 😀 genau dafür wurde der LBS https://knx-user-forum.de/forum/%C3%B6ffentlicher-bereich/knx-eib-forum/1358159-erster-drittentwickler-logikbaustein-f%C3%BCr-den-gira-l1-und-x1-textformatierer] Textformatierer [/url] entwickelt

                      Kommentar


                        Danke, werde ich mir ansehen :-)

                        Kommentar


                          Wie kann ich in der Formelberechnung den "Wert" einfach um einen angehängten Text ergänzen? Möchte gerne aus dem eingegangenen Wert 0,0345 -> 35mA machen.

                          Das ist meine Formel 4: ({Busstrom:N} * 1000) aber ich bekomme es einfach nicht hin den Text anzuhängen. Möchte nicht extra noch den Textformatierer nutzen.

                          Vielleicht hat jemand einen Tip für mich. Das einfache Anhängen von "mA" funktioniert eben leider nicht.

                          PS: Grund warum ich den Textformtierer eigentlich nicht nutzen möchte ist, dass die Formelberechnung erst beim Eintreffen aller Daten auslöst - der Textformatierer aber schon vorher. Beide Bausteine zu nutzen wäre für mich natürlich machbar, aber ich möchte es so überschaubar und einfach wie möglich halten. Auch um die Performance des X1 nicht unnötig zu belasten, da es diverse Logiken mit "mehrfachen" Bausteinen gibt.
                          Zuletzt geändert von araeubig; 24.08.2021, 11:52.

                          Kommentar


                            Ungetestet: ({Busstrom:N} * 1000).ToString() + "mA"

                            Und den Typ des Ausgangs natürlich auf STRING setzen

                            Kommentar


                              hyman : Vielen Dank. Es funktioniert einwandfrei....

                              Die ersten beiden Status-Logiken habe ich nun auf die Formelberechnung umgebaut.

                              Screenshot (59).png

                              Screenshot (60).png

                              Screenshot (61).png

                              Screenshot (63).png

                              Screenshot (62).png

                              Kommentar


                                Und die Logik zur Statusanzeige des Raumklimas für den ersten Raum ist nun auch schon umgebaut gerade:


                                Die Daten kommen von einem Steinel True Presence Aerosol - vielleicht nutzen die Screenshots ja für ähnliche Statuswünsche dem einen oder anderen.

                                Screenshot (68).png

                                Screenshot (65).png

                                Screenshot (66).png

                                Screenshot (67).png

                                Kommentar

                                Lädt...
                                X