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

    Vielen dank für deine schnelle Antwort.

    Hab dies wie von dir beschrieben mit dem Typkonverter gelöst.

    Jedoch führt der Wert 0 am Typ Konverter zu einem Ausgang null und dies triggert dann nicht den WebRequest.

    Unbenannt.jpg
    Gibt es hierfür eine Lösung?
    Zuletzt geändert von Kingpin3k; 12.09.2024, 08:52.

    Kommentar


      Hallo Horst hyman

      leider muss ich nach einigen Stunden probieren, Dich doch noch mal um Hilfe bitten:

      Status:
      - Ich habe 10 virtuelle "X1-Schalter" => Geräte-Datenpunkte Binär (welche auch per GA in der ETS zusätzlich verknüpft / erreichbar sind)
      - diese Datenpunkte sind in der Visualisierung über einen "Schalter - tastend, nur einschalten" dargestellt

      Ziel:
      - wenn ich einen der Schalter "taste" sollen alle anderen 9 ausgeschaltet werden

      alte Lösung:
      - mit einem "alten" Logikblatt hat dies alles funktioniert bei 7 "Schaltern" und ohne weiteren Logikbaustein, nur mit manueller Verknüpfung der jeweils X-Ausgänge (Gesamtanzahl -1) an jeweils alle anderen Ausgänge

      Problem:
      - nach Erweiterung von 7 auf 10 "Schalter" spinnt das Logikblatt und trotz mehrfacher Versuche / Neubauen funktionieren nur 8 von 10 Schaltern (der erste und zweite Schalter funktionieren einfach nicht, wie im Logikblatt abgebildet)

      Idee:
      - Ich nutze Deinen Baustein und habe es eigentlich auch ansatzweise hinbekommen.....ABER auch hier spinnt der Schalter 1 und 2
      .... was mache ich falsch? Woran könnte dies liegen?

      Anbei Screenshots alte Version und Screenshots neue Version.

      Die letzten beiden Screenshots sind vom Schalter AUS und STANDBY, welche eben nicht funktionieren.


      Viele Grüsse André



      Screenshot (91).png Screenshot (92).png Screenshot (93).png Screenshot (94).png Screenshot (95).png Screenshot (96).png Screenshot (97).png Screenshot (98).png Screenshot (99).png

      Kommentar


        hyman

        Warum auch immer (mehrfache Inbetriebnahme, neues Erstellen der Eingangsbausteine) geht jetzt alles wunderbar. Werde noch einige Dinge testen und finalisieren und es im eigenen Thread (den ich ja schon mal dafür benutzt hatte zum Thema "Szenensteuerung") dokumentieren. Nochmals an dieser Stelle DANKE FÜR DEINEN LOGIKBAUSTEIN!

        Kommentar


          Liebe KNX-Experten,

          ich möchte gerne den Zustand mehrerer Parameter kombinieren und nutze dazu die Formelberechnung, um die Eingänge zu verknüpfen. Solange an jedem Eingang ein Wert anliegt, funktioniert das wunderbar und die Formelberechnung erzeugt den gewünschten kombinierten Text.

          Das Problem entsteht jedoch, wenn nicht alle Eingänge einen Wert haben. Zum Beispiel: Vier Eingänge haben Werte, aber einer nicht. In diesem Fall gibt die Formelberechnung leider kein Ergebnis aus. Ich möchte jedoch, dass die vorhandenen Werte der vier Eingänge trotzdem verknüpft und angezeigt werden.

          Beispiel mit zwei Parametern - wenn die Restabfalltonne in weniger al 24 Stunden abgeholt wird geht Restabfall_Warnung auf 1. Dann schreibt der Baustein in den Text den ich später von der Alexa vorlesen lassen "Bitte Restabfalltonne heute raus stellen". Das selbe mit der Biotonne oder ähnlichem. Solange ich aber nicht was in beiden stehen habe kommt gar nichts raus.

          ({Restabfall_Warnung:B} ? (", Restabfall " + {Restabfall_Info:S}) + ", Bitte Restabfalltonne heute raus stellen " : "") ({Biotonnel_Warnung:B} ? (", Biotonne " + {Biotonne_Info:S}) + ", Bitte Biotonne heute raus stellen ": "")

          Wie kann ich das erreichen? Vielen Dank für eure Hilfe!
          Zuletzt geändert von Alzi; 06.10.2024, 20:49.

          Kommentar


            Zitat von Alzi Beitrag anzeigen
            ({Restabfall_Warnung:B} ? (", Restabfall " + {Restabfall_Info:S}) + ", Bitte Restabfalltonne heute raus stellen " : "") ({Biotonnel_Warnung:B} ? (", Biotonne " + {Biotonne_Info:S}) + ", Bitte Biotonne heute raus stellen ": "")
            Ist das die komplette Logik? Es wäre vielleicht noch hilfreich einen Screenshot Deines Logikblattes zu zeigen. Ansonsten gebe ich als Antwort auf Deine Frage: "Du kannst in der Formelberechnung auch einen Wert vorbelegen". Ich vermute aber, dass dies genauso wenig hilfreich ist, wie Deine ineinander kopierten Formelinhalte.
            Zuletzt geändert von araeubig; 06.10.2024, 23:07.

            Kommentar


              image.png


              Die Formelberechnung fragt noch mehr Dinge ab. Aber die Logik ist die selbe. Es sind die Mülltonnen, Feuchtigkeit einiger Sensoren im Garten und ob was im Briefkasten ist :-) Wenn die Tonne raus muss, oder es wo zu trocken ist oder wenn Post da ist spricht die Alexa dies sobald ein Benutzer an der Alexa steht. Es klappt auch super solange alle Parameter Werte schreiben. Nach einem Neustart des X1 ist das aber für eine längere Zeit nicht der Fall - dann kommt gar kein Text an.

              ({Restabfall_Warnung:B} ? (", Restabfall " + {Restabfall_Info:S}) + ", Bitte Restabfalltonne heute raus stellen " : ".") ({Biotonnel_Warnung:B} ? (", Biotonne " + {Biotonne_Info:S}) + ", Bitte Biotonne heute raus stellen ": ".") ({Gelbetonne_Warnung:B} ? (", Gelbetonne " + {Gelbetonne_Info:S}) + ", Bitte Gelbetonne heute raus stellen ": ".") ({Papiertonne_Warnung:B} ? (", Papiertonne " + {Papiertonne_Info:S}) + ", Bitte Papiertonne heute raus stellen ": ".") ({Rasen_Warnung:B} ? (", Rasen hat nur " + {Rasen_Mitte_Info:S}) + " Prozent Bodenfeuchte. Ich Bewässere den Rasen heute Nacht" : ".") ({Rasen_Vordach_Warnung:B} ? (", Rasen unter dem Vordach hat nur " + {Rasen_Vordach_Info:S} + " Prozent Bodenfeuchte") : ".") ({Hecke_Warnung:B} ? (", Hecke hat nur " + {Hecke_Info:S} + " Prozent Bodenfeuchte") : ".") ({Feigen_Warnung:B} ? (", Die Feigen haben nur " + {Feigen_Info:S} + " Prozent Bodenfeuchte") : ".") ({Post_Warnung:B} ? "Bitte Post aus Briefkasten holen" : ".") ({Irgendeine_Warnung:B} ? (".") : "Alles OK")

              araeubig Hilft das?

              Kommentar


                Du hast es ja selbst schon geschrieben, nach einem Neustart funktioniert es nicht, bis alle Variablen einen Wert haben. Das ist durch die Formelberechnung bedingt, die erst eine Ergebnis liefert, wenn alle Variablen definiert sind.

                Das sollte einfach zu beheben sein.
                Du solltest für jede der Eingangsvariablen bei der Datenpunktdefinition „Wert vom KNX Bus lesen“ aktivierten. Damit das funktioniert (also der Readrequest vom X1 nach einem Neustart erfolgreich beantwortet wird), muss für jede GA (bei einem Gerät) das L-Flag gesetzt sein. Das kannst Du einfach in der GA Ansicht kontrollieren.

                Solltest Du interne Variable nutzen, gilt das Gleiche. Dann müssen alle Vorstufen für die Erzeugung eines Wertes dieser Variablen erfüllt sein.

                Du kann im Webinterface des X1 bei Logik recht weit nach unten scrollen und mit dem Plus das betreffende Logikblatt öffnen. Dann siehst Du nach einem Neustart des X1 alle Variablen/Eingänge des Formelberechners und kannst die Signale identifizieren, die die Berechnung blockieren, weil sie nicht definiert sind.

                Viel Erfolg!

                Kurze OT Frage, über welchen Baustein steuerst Du Alexa an?
                Gruß Bernhard

                Kommentar


                  Zitat von willisurf Beitrag anzeigen
                  für jede der Eingangsvariablen bei der Datenpunktdefinition „Wert vom KNX Bus lesen“ aktivierten
                  Dann werden zwei GroupValueRead Telegramme gesendet: Für jeden Logik-Eingang eines und das zweite für den Datenpunkt. Mit anderen Worten, die Datenpunktdefinition „Wert vom KNX Bus lesen“ braucht es nur für X1-Funktionen (Kacheln), nicht jedoch für Eingänge auf Logikblättern.

                  Der Rest von # 322 ist zutreffend, bei den Kalenderabfragen wird das L-Flag sinngemäß interpretiert werden müssen

                  Kommentar


                    Zitat von Alzi Beitrag anzeigen
                    Hilft das?
                    Deine ursprüngliche Frage ist ja nun schon beantwortet, das hoffe ich zumindest. Unabhängig davon vielleicht noch ein kleiner Tipp für zukünftige Beiträge in Bezug auf Logikblätter:

                    - 1x Screenshot des gesamten Logikblattes
                    - 1x Screenshot des entsprechenden Bausteins MIT sichtbaren Eigenschaften / Feldern (so breit als möglcih)
                    - die einzelnen Formeln sind als Text zum Analysieren oder Ausprobieren sicherlich hilfreich ABER dann bitte einen Zeilenumbruch nach jeder Formel

                    Gruss André

                    Kommentar


                      Danke für die Hilfe und die Hinweise - es funktioniert jetzt besser. Danke willisurf , knxPaul​, araeubig​.​

                      Zitat von willisurf Beitrag anzeigen
                      Kurze OT Frage, über welchen Baustein steuerst Du Alexa an?
                      Ich Ich nutze zum ansteuern der Alexa den WebRequest Baustein von Daniel Albuschat in Kombination mit dem voicemonkey.io Dienst. Zum feststellen ob jemand vor der Alexa steht nutze ich eine Routine in der Alexa die durch Präsenz gestartet wird.

                      Kommentar


                        Und wie hast Du es gelöst?

                        Kommentar


                          Zitat von Alzi Beitrag anzeigen
                          es funktioniert jetzt besser
                          nur besser oder richtig?

                          Danke für den Alexa Tipp!
                          Gruß Bernhard

                          Kommentar


                            Zitat von willisurf Beitrag anzeigen
                            nur besser oder richtig?
                            Da die meisten Variablen lokal sind und ich sie beim Start nicht direkt einlesen kann, habe ich bei diesen Variablen in den Eigenschaften der GPA einen "Vorgabewert" festgelegt. Diesen Wert habe ich bewusst außerhalb des Alarmbereichs gewählt. Einige Variablen, wie zum Beispiel die Bodenfeuchte im Garten, fragen ihren Status nur alle 60 Minuten per Web-Request ab. Es ist auf jeden Fall besser als vorher. Das die Formelberechnung immer auf Vollständigkeit wartet ist für mich nicht perfekt auch wenn es ein super Baustein ist. Aber, es läuft, und das ist großartig! Daher nochmals vielen Dank!

                            Kommentar


                              Hallo Horst,

                              ich habe mal wieder eine Frage:

                              Aus einem Logikbaustein erhalte ich einen Dimmwert, den ich nicht nur über Deine Formelberechnung "weiterreichen", sondern auf zwei anderen Ausgängen mit einem Offset versehen möchte.

                              Beispiel: Dimmwert = 78%
                              Ausgang 1: 78%
                              Ausgang 2: 68% (Offset von -10)
                              Ausgang 3: 63% (Offset von -15)

                              Das funktioniert auch genauso tadellos. Wenn aber nun der Basis-Dimmwert < 10% respektive < 15% ist, dann erhalte ich ein negatives Ergebnis. Im Umkehrschluss ein Ergebnis > 100%. Gibt es einen Weg dies auf 0% und 100% zu begrenzen? Muss ich überhaupt begrenzen oder ist es dem Aktor egal, was für ein Wert kommt?


                              Danke Dir und Grüsse André

                              Kommentar


                                Überholspur:
                                mit dem Fragezeichen Operator, in der Art
                                • Basis-Dimmwert < 10 ? 0 : Basis-Dimmwert - 10

                                Kommentar

                                Lädt...
                                X