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 versuche, eine Hue-Farbleuchte – angeschlossen über die Hue Bridge an den X1 – über KNX zu steuern. Alles funktioniert einwandfrei: Ein/Aus, Dimmen, Weißtemperatur, aber keine Farbsteuerung.

    Ich weiß, dass der X1 den Datenpunkt 251.600 nicht unterstützt. Daher sende ich vier R/G/S/W-Werte, die ich mit der Funktion Light.RGBW(r, g, b, w) kombiniere. Den Ausgang verbinde ich mit der internen RGB-Farbsteuerung (32-Bit-Wert) des X1-Hue-Objekts. Anschließend teile ich die Statusrückmeldung des Objekts in R/G/S/W-Werte auf. Ich wende eine Zahlenkonvertierung zwischen den Bausteinen an.

    /* [Out] RGBW */ Light.RGBW({Rood:I}, {Groen:I}, {Blauw:I}, {Wit:I})
    /* [Out] Rood */ Light.RGBWToR({RGBW:N})
    /* [Out] Groen */ Light.RGBWToG({RGBW:N})
    /* [Out] Blauw */ Light.RGBWToB({RGBW:N})
    /* [Out] Wit */ Light.RGBWToW({RGBW:N})

    Allerdings funktioniert das nicht. Der X1 gibt Fehlermeldungen aus, unter anderem, dass die Konvertierung von Double in Long nicht möglich ist.
    Was mache ich falsch?​

    Kommentar


      Du hast 5 Formeln in der Formelberechnung stehen. Und Du bekommst eine oder mehrere detaillierte Fehlermeldungen, die auch genaue Angaben über den Fehlerort enthalten. Trotzdem sollen wir jetzt Kaffesatzlesen, wo genau der Fehler auftritt, weil Du uns diese Informationen nur sehr lückenhaft weiter gibst? Nicht Dein Ernst ... kein Wunder bekommst Du keine Antworten ...

      Kommentar


        Hi,

        eine Frage zu Deinem XML/JSON Parser. Folgende Json Struktur kriege ich ncht encodiert...
        Hier nur der Anfang...

        {"result":{"01B8-xxxxxFDD":{"6800_08822000":{"9":[{"validVals":[19048,19049,19050,19051],"val":[{"tag":19051}]}]}, ... "6100_00418000":{"9":[{"val":0}]},...

        Habe es mit /root/result Problert das geht, sobald ich aber /root/result/01B8-xxxxxFDD eintrage kriege ich diesen Fehler:
        "Der Ausdruck muss in einem Knotensatz resultieren"


        Grüße
        Thomas

        Kommentar


          Hallo Thomas,

          Könnte sein, dass 01B8... kein gültiger Key ist. Leider setzt der Baustein aufgrund des verwendeten Parsers gültige XML-Keys auch für JSON voraus ...

          Tausch den mal durch eine Textersetzung aus ...

          Grüße von Horst

          Kommentar


            Hi Horst,

            danke Dir.

            Habe auch gedacht und auch mit Deinem "Formel-Bausen" versucht {input:s}.Replace("01B8-xxxxxFDD","WR").
            Da bekomme ich einen Fehler der Text wäre zu groß... Noch eine Idee?


            Grüße
            Thomas

            Kommentar


              Hast Du den genauen Fehlertext? Oder den schon mal gegoogelt? Normalerweise gehen recht lange Texte. Wo stammt den der JSON-Text her?

              Kommentar


                Danke Dir. Der JSON Text stammt von dem SMA Smartenergy Wechselrichter.

                MIttlerweile bin ich weiter, (Musste 2 Werte "replacen") wie kriege ich aber den value von diesem Pfad

                {"result":{"01B8-xxxxxFDD":{"6100_00418000":{"9":[{"val":0}]},...

                Habe Verscheienes probiert unter anderem? (WR habe ich replaced) "9" ist anscheindend ein Array hier mit einem Wert...
                /root/result/WR/6100_00418000/9[0]/val

                Grüße
                Thomas

                Kommentar


                  Wie JSON-Arrays zugegriffen werden steht in der Anleitung zum Baustein.

                  Kommentar


                    Hallo Horst,
                    ich verwende schon des längeren deine Bausteine, welche die X1-Logik enorm aufgewertet haben. An dieser Stelle ein GROSSES DANKESCHÖN!
                    Kannst du uns bitte verraten, welche GPA Version du nutzt? 5.2 oder älter? Oder hast gar schon mit Version 6.0 getestet?
                    Danke und Gruß​

                    UPDATE:
                    Nach rund einem Monat kann ich sagen, dass deine Bausteine auch mit den neueren Versionen von GIRA einwandfrei funktionieren.
                    Bei mir in Verwendung: GPA (6.0) und X1 (3.0.52)
                    Zuletzt geändert von thojoh; 17.11.2025, 15:16.

                    Kommentar


                      Bin grad im Urlaub und kann deshalb nicht nachschauen. Ist aber jedenfalls nicht eine der neuesten -- never change a running system.

                      Kommentar


                        Hallo Zusammen hat jemand von euch schon mal den Formelberechungsbaustein überlastet..
                        Ich hätte mir gerade einen Baustein erstellt in dem Strings zusammengesetzt werden .
                        in der Simulation am PC alles Bestens aber im X1 wurde jeder Befehl dieser Logikseite mit ca. 5-10sec Verzögerung ausgeführt.
                        Nach löschen des Bausteins läuft alles wieder.

                        Hier ein Auszug der Formeln die der X1 garnicht gut wegsteckte.. ( Das ist schon die Abgespeckte Variante ich hatte noch einige funktionen mehr drinnen zu beginn wie plus minus zum durchschalten der Funktionen und Tag/Nacht Modus )

                        _isSchalterValueSet_ && !_previousOut1_ && {Schalter:B} ? 1 : _isWertValueSet_ ? _out3_ : _isSchalterValueSet_ && _out2_ == true ? Math.Min(_previousOut4_ + 1, {Max:N}) : _previousOut4_

                        _isSchalterValueSet_ && !{Schalter:B} ? {IPAdresse:S} + "win&T=0" : _isSchalterValueSet_ && !_previousOut1_ && {Schalter:B} ? {IPAdresse:S} + "win&PL=1" : _isSchalterValueSet_ && _out2_ == true ? {IPAdresse:S} + "win&PL=" + _out4_ : _isWertValueSet_ ? {IPAdresse:S} + "win&PL=" + _out4_ : _previousOut5_

                        Der Baustein hat einen Schalteingang, Werteingang zur direkten Scenenwahl, einen Max eingang zur Festlegung wieviele Scenen er ansprechen soll ,und eine String Eingang für die IP des Controllers ..

                        Am Ausgang bekomme ich dann einen String mit dem HTTP Get befehl und gleich danach bekomme ich noch den trigger zum senden raus.
                        Die Restlichen befehle hab ich weggelassen die sind alles Standard. Das ganze ging dann direkt auf den HTTP Request Baustein von Splendid Minds.

                        Ich hab das Ganze Ding jetzt wieder gelöscht weil sonst mein Licht nicht mehr geht.

                        Hat jemand eine Idee was dem X1 Performance Technisch hier nicht schmeckt ?

                        mit freundlichen Grüßen
                        Georg​

                        Kommentar


                          Ich würde im Gruppenmonitor beobachten, wie viele Telegramme der Formelberechungsbaustein pro Sekunde sendet. Um auszuschliessen, dass da eine Telegrammlawine losgetreten wird.

                          Kommentar


                            Hallo Georg,

                            Die Formeln die Du verwendest machen mir keine Angst -- da verwende ich selbst problemlos Umfangreicheres. Natürlich kann ich einen Bug nie aussschließen, der mit einer ganz bestimmten Formel Ärger macht. Wahrscheinlicher ist aber, dass knxPaul mit seiner Vermutung einer Telegrammlawine richtig liegt. Oder dass der Web-Request-Baustein blockiert, weil die Antwort dauert ...

                            Letzteres kannst Du einfach testen: Den Web-Request mal mit einem festen Text ohne Formelberechnung triggern ...

                            Zitat von eibster Beitrag anzeigen
                            Ich hab das Ganze Ding jetzt wieder gelöscht weil sonst mein Licht nicht mehr geht.
                            Wenn ohne X1 Dein Licht nicht geht, hast Du was Grundlegendes falsch gemacht ...

                            Grüße von Horst
                            Zuletzt geändert von hyman; 29.12.2025, 10:23.

                            Kommentar


                              Hallo Horst danke für die Einschätzung.
                              Ich werde das nochmal in einfacher Form testen wie vorgeschlagen.

                              Telegramflut ist nichts der X1 Reagiert einfach erst nach x Sekunden erst auf den Befehl wenn ich die Logik fürs Wled mit drinnen hab.

                              Das in dem Raum alles über den X1 läuft ist kalkuliertes Risiko zugunsten Komfort. Ich habe einen 1fach Schalter in diesem Raum (WC), mit dem ich alles bediene. [1schalt,2xDimm,1xWled,Lüfter,Netzteil Standby-Abschaltung]. Einmal Ein = Licht Ein in Grundstimmung . Weitere Ein Befehle schalten dann die Verschiedenen Stimmungen durch. Nach 22:00 wird bei ein die Nacht Stimmung aktiv .
                              Bei Aus geht das Licht Aus , Bei Nochmaligem Aus geht auch noch der Lüfter sofort aus ohne Nachlauf.
                              Mit dem Schalter kann ich Parallel dazu auch die kompletten Leuchten Dimmen sprich alle Kreise Parallel.

                              Ich hab mir das Ganze überlegt wie ich den Komfort erhalte und trotzdem Grundschaltungen direkt über KNX Only mache. Habe da aber keine Lösung gefunden die alle Scenarios abdeckt.

                              beste grüße und schöne Feiertage
                              Georg

                              Kommentar


                                Zitat von eibster Beitrag anzeigen
                                der X1 Reagiert einfach erst nach x Sekunden erst auf den Befehl wenn ich die Logik fürs Wled mit drinnen hab
                                Was mir noch einfällt: Wie viele andere Bausteine liefert auch dieser erst dann Output, wenn alle Inputs Daten haben. Haben alle Eingänge einen Default oder wartet der Baustein möglicherweise auf Input, der erst nach einigen Sekunden erstmals kommt?

                                Aber erstmal prüfen, ob nicht der Web Request so lange dauert ...

                                Zitat von eibster Beitrag anzeigen
                                überlegt wie ich den Komfort erhalte und trotzdem Grundschaltungen direkt über KNX Only mache
                                Mit nur einem "Schalter" (ich nehme an ein Tastsensor mit einer Wippe) und so vielen Dingen, die der manuell bedient würde ich das nicht komfortabel finden. Der Lüfter sollte z. B. gar nicht manuell bedient werden müssen, sondern aufgrund der gemessenen Luftqualität wissen wann er laufen soll. Aber selbst wenn man das so will (und für Zusatzfunktionen kein zweites Bedienelement spendieren will), könnte man wenigstens das Grundlicht direkt mit dem Tastsensor schalten:
                                • Nur wenn das Licht an ist (Statusrückmeldung), werden weitere "Ein"-Tastendrücke (die dem Schaltaktor auch bei direkter Steuerung vom Tastsensor egal sind) vom X1 verarbeitet.
                                • Nur wenn das Licht gerade eben aus geschaltet wurde, werden weitere "Aus"-Tastendrücke (die dem Schaltaktor auch bei direkter Steuerung vom Tastsensor egal sind) vom X1 verarbeitet.
                                Mit einem geeigneten Aktor bekommt man sogar hin, dass nachts das simple Einschalten eine andere Helligkeit wählt als tagsüber.

                                Kommentar

                                Lädt...
                                X