Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenKNX-Logikmodul release

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

    Zitat von stonie2oo4 Beitrag anzeigen
    Das rechnen scheint soweit zu funktionieren, aber ich bin immer ein bisschen daneben beim Ergebnis der ersten Logik. Das variiert von 0 Komma bis zu ein paar Watt.
    Ja, das ist erwartungskonform. Hängt vom DPT ab, wie genau eine Zahl dargestellt werden kann. DPT9 ist z.B. wesentlich ungenauer als DPT14. Aber selbst bei DPT14 ist, gibt es keine Möglichkeit, eine exakte Fließkomma-Repräsentation zu bekommen.
    Versuch mal, DPT14.056 im Gruppenmonitor zu senden, z.B. den Wert 34544566. Gesendet wird dann in Wirklichkeit 34544570.
    Allerdings wirst Du nicht mit so großen Zahlen arbeiten, oder?

    Schick doch mal ein Gruppenmonitor-Mitschnitt...
    OpenKNX www.openknx.de

    Kommentar


      Die Leistungen bewegen sich so im hunderter bis tausender Bereich. Wenn Herd oder so an gehts mal bissel hoch, aber die Leistungen sind alle unter 10k.
      Einzig die PV geht mal Richtung 20k.
      Hier mal der Mitschnitt vom Gruppenmonitor. Das Ergebnis passt oft richtig gut, aber manchmal ist es einfach daneben. Echt komisch, ich hätte es verstanden wenn die Abweichung hinterm Komma wäre, das mal vom Runden ein bisschen auseinander läuft aber zum Teil ist die Ungenauigkeit ja im Watt Bereich.
      Hab da aber ehrlich gesagt auch nicht wirklich Ahnung davon um das beurteilen zu können, eher ein Bauchgefühl.


      Ich hab mal die Ergebnisse die nicht passen rot markiert.

      Gruppenmonitormitschnitt.jpg
      Gruß Ben

      Kommentar


        Hallo,

        ich habe heute auch mal eine Logik gebaut und wolle die hier kurz vorstellen. Vielleicht braucht das jemand oder es gibt bessere Lösungen für das Thema.

        Aufgabe:
        Aus einem DPT1 (Schalten) mit "EIN" (Trigger) ein Umschalten einer zweiten GA zu erreichen.

        Ausgangslage:
        Ich habe einen (älteren) 230V Binäreingang, nur "EIN" und "AUS" je nach Objektwert senden kann. Man kann noch festlegen, ob das "EIN" oder "AUS" auch gesendet wird. Der Kanal des BE ist so konfiguriert:
        image.png
        ​Somit bekomme ich beim Schließen des Tasters immer ein "EIN" auf dem Bus.

        Die Logik habe ich folgendermaßen gebaut:

        Eingang 1: Triggersignal des BE
        Eingang 2: Status-GA des Kanals des Schaltaktors
        Logikoperation: UND (Trigger und invertierter Status des Schaltaktorausgangs)
        Logik-Trigger: nur bei Eingang 1

        image.png

        Eingang 1:
        image.png

        Eingang 2:
        image.png

        Ausgang:
        image.png

        Gern kommentieren.

        Beste Grüße​​

        Kommentar


          Zitat von mumpf Beitrag anzeigen
          Nachtrag: Ich habe nochmal nachgeschaut, die Logik-Eingänge können auch DPT232, das ist 3 Byte. Damit könntest Du also auch die Uhrzeit empfangen und über Bitoperationen die Zeit auf ein KO mit DPT7 schicken.
          Darf ich hier nochmal nachfragen wie das ganze im Detail funktionieren würde?
          Gruß Ben

          Kommentar


            Ich hab mich jetzt dem Thema mit der Zeit noch mal angenommen.
            Also Datum zerlegen hat eigentlich (nach paar anfänglichen Verständnisproblemen) problemlos funktioniert, nur beim Jahr hab ich mich verhauen, da will meine BWWP 2023 anstatt 23 . Aber noch fix ne Addition fürs Millennium eingefügt, dann hat das gepasst . Ansonsten muss man halt bissel hin und her schieben für den Wert vom mittleren Byte .

            Bei der Uhrzeit sind auch die Minuten kein Problem (Sekunden theoretisch auch, aber die brauch ich nicht) . Bloß bei der Stunde komm ich nicht dahinter was in dem Byte drin ist.
            Die Uhrzeit sowie das Datum sind ja jeweils 3 Byte. Beim Datum ist jedes Byte jeweils Monat, Jahr und Tag.
            Bei der Uhrzeit dachte ich es genauso (bzw. Minuten und Sekunden passen auch), aber ich bekomme beim Byte für Stunden jetzt z.B. für 23 Uhr = b7 (Hex).
            Das währen Dezimal 183. Also wären das 160 zu viel.
            Ich versteh einfach nicht wo die herkommen, oder was die zu bedeuten haben. Wenn es konstant 160 wären, könnte ichs ja einfach raus rechnen.

            Weiß das zufällig jemand?
            Gruß Ben

            Kommentar


              Hier müsste das im Detail beschrieben sein.
              Gruß Bernhard

              Kommentar


                Das hab ich auch grad gefunden, aber trotzdem vielen herzlichen Dank.
                Die letzten 3 Bits von dem Byte für die Stunde sind der Wochentag .
                Bin grad am ändern, sollte dann lüppen .
                Gruß Ben

                Kommentar


                  Ich wollte mal nachfragen ob es mit dem Logikmodul möglich wäre eine relative Luftfeuchte in eine Absolute Luftfeuchte umzurechnen?

                  Die Formel dazu würde wie folgt lauten:

                  10^5 * 18.016/8314.3 * relLuftfeuchte/100 * 6.1078 * 10^((7.5*raumTemperatur) / (237.3+raumTemperatur)) / (raumTemperatur + 273.15)

                  Ich habe leider keine Lösung dazu gefunden und wollte nachfragen ob es überhaupt möglich wäre?
                  Ebenso stellt sich die Frage ob man zwei Eingangswerte (DPT9) mit "Kleiner/Gleich" vergleichen könnte?


                  Gruß Lex
                  Zuletzt geändert von Lexxs; 21.08.2023, 18:23.

                  Kommentar


                    Hi Lex,

                    machen kann man das schon, ist eher aufwändig. Der einfachste Weg wäre eine Benutzerfunktion, aber dann müsstest Du die Firmware selber bauen, das ist zu Zeit eher aufwändig. Oder man macht es mit einzelnen Formelkanälen.

                    Dazu erstmal die Formel etwas aufbereiten:

                    13.234803266661 * rH * 10^(7.5 * T / (237.3 + T)) / (273.15 + T)

                    Dann würde man folgendes rechnen:
                    K1 = 237.3 + T
                    K2 = 273.15 + T
                    K3 = 7.5 * T
                    K4 = K3 / K1
                    K5 = 10 ^ K4
                    K6 = K5 / K2
                    K7 = 13.234803266661 * rH
                    K8 = K7 * K6

                    Gruß, Waldemar

                    OpenKNX www.openknx.de

                    Kommentar


                      mumpf
                      Hi Waldemar,

                      das heißt dann ich bräuchte 8 Logikkanäle die ich jeweils als UND (intern, Kanalausgänge verbinden) verknüpfe?
                      Der "Ausgang" der Logik 1 wird wie im Bild eingestellt? Der "AUS-Zustand", Blau umrandet, ist in diesem Fall für alle Formeln uninteressant oder? Dieser kann auch Ausgeschaltet werden?


                      Gruß Lex
                      Angehängte Dateien

                      Kommentar


                        Hallo,

                        ich suche gerade eine möglichkeit einen Zeittrigger zu generieren, sprich zu jeder vollen Zeiteinheit (z.B. 10min, Stunde, Tage, Woche) soll für z.B. 1sec "Ein" gesendet werden, anschließend wieder einen "Aus"

                        Grüße

                        Kommentar


                          Hi,

                          es gibt verschiedene Möglichkeiten, Ausgangspunkt ist eine Zeitschaltuhr. Wenn nach 1 Sec. ausgeschaltet werden soll, machst Du in der Ausgangspipeline immer ein Treppenlicht mit 1 Sec, die Zeitschaltuhren müssen dann nur ein EIN senden.
                          • Jede Woche: Tagesschaltuhr; den gewünschten Wochentag auswählen, die Einschaltzeit eingeben, Wert EIN.
                          • Jeden Tag: Wie Woche, Wochentag bleibt auf "jeder" stehen.
                          • Jede Stunde: Wie Tag, Stunde bleibt auf "jede" stehen.
                          10 Minuten gibt es so nicht, kann man aber mit 2 Kanälen einfach machen: Du nimmst das Stundensignal (also eine Zeitschaltuhr, die jede Stunde einschaltet) und vervielfachst das mittels blinken:
                          • In der Ausgangspipeline nimmst Du ein Treppenlicht ohne verlängern und ohne ausschalten, Zeit 51 Minuten (kann auch 55 Min sein, nur >50 und <60, damit ganz sicher die letzte Schaltzeit ausgeführt wird)
                          • Du lässt es im Rythmus 5 Min blinken (5 Min EIN, 5 Min AUS).
                          • Den 2. Kanal nutzt Du, um über ein normales Treppenlicht nach 1 Sek. auszuschalten. Da das 2. Treppenlicht nur von einem EIN getriggert wird, wird es nach 1 Sek. ausschalten, das folgende AUS vom blinken wird nicht stören und erst das darauffolgende EIN wird es wieder auslösen.
                          • Dadurch hast Du alle 10 Minuten eine 1 Sek. Flanke und kannst über die Zeitschaltuhr bestimmen, zu welcher Minute (innerhalb der Stunde) der Trigger passieren soll.
                          Mit einem kleinen Trick kann man auch um den 2. Kanal für 10 Minuten herumkommen:
                          Du machst in der Ausgangspipeline der Zeitschaltuhr nach dem Treppenlicht mit blinken auch noch die Ein-/Ausschaltverzögerung aktiv. Du verzögerst das Einschalten um 4 Minuten und 59 Sekunden (also um 299 Sekunden) und das Ausschalten gar nicht. Damit bekommst Du auch alle 10 Minuten eine 1 Sekunden-Flanke, allerdings um 4:59 verschoben (später) zur Minute, die Du in der Zeitschaltuhr vorgibst.

                          Hier nochmal der Screenshot mit Ein-/Ausschaltverzögerung:
                          Flanke alle 10 Minuten.png
                          Grundsätzlich kann man immer mit Schaltzeit + Vervielfältigung arbeiten, das klappt ganz gut.
                          Warum nicht nur Treppenlicht und blinken: Die Zeitschaltuhr synchronisiert irgendwelche drifts. Wenn Du 12:07 alle 10 Min ein Signal haben willst, kann es schon sein, dass der 5. Impuls um 12:57:01 kommt. Dann bist Du aber sicher, dass der nächste um 13:07 kommt.

                          Gruß, Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            Vielen Dank!

                            Eigentlich ganz einfach... Ich brauche unbedingt mehr Zeit um mich mit dem Logikmodul zu beschäftigen.
                            Ganz genau muss das ganze nicht sein, die Pulse dienen zur Ausgabe der Regenmenge in der letzten Zeiteinheit, als direkten Wert auf den Bus.

                            Kommentar


                              Hi Leute,

                              es gibt eine neue Version vom Logikmodul 1.5.3. verfügbar. Ab sofort gibt es hier nur einen Verweis auf die Produktinfo in unserem Wiki:

                              https://github.com/OpenKNX/OpenKNX/w...nfo-Logikmodul

                              Ich werde auch entsprechend den ersten Post anpassen.

                              Gruß, Waldemar
                              Zuletzt geändert von mumpf; 06.09.2023, 23:02.
                              OpenKNX www.openknx.de

                              Kommentar


                                Ich traue mich ja schon gar nicht mehr zu fragen, bei der Vielzahl in den letzten Tagen im VPM Thread 🙄

                                Aber dennoch hoffe ich, dass ich nochmal einen Gedankenanstoß bzgl. Zeitschaltuhr-Funktionalität bekomme

                                Ich möchte die für den VPM sinnvollen Tagesphasen mit dem Logikbaustein darin darstellen.

                                Ich hätte die 4 Tagesphasen über 4 Logikkanäle dargestellt mit 4 Zeitschaltuhren, die durch ihre Schaltzeiten eine gemeinsame beschreiben.
                                Der Auswertung wird allerdings nicht gesendet.

                                Hier einmal die Screenshots des ersten Kanals

                                Bildschirmfoto 2023-10-19 um 22.00.05.png

                                Bildschirmfoto 2023-10-19 um 22.00.16.png

                                Bildschirmfoto 2023-10-19 um 22.00.36.png

                                Bildschirmfoto 2023-10-19 um 22.03.50.png

                                Also Ausgang habe ich DPT Szene gewählt, da beim VPM der Eingang für Tagesphase DPT 17.001 ist.

                                Logik 1 hat als Ausgabewert "1", L2 = 2, L3 = 3, L4 = 4

                                Problem ist nun, dass keine der Tagesphasen ausgegeben wird. Sunrise und SunSet werden lt. Diagnoseobjekt korrekt ermittelt.
                                Der Status für L1 gibt aus Ax B0 Cx Dx Q0.
                                Für L2-L4 gibt es als Diagnose Ax Bx Cx Dx Qx

                                Alle Kanäle sind aktiviert.

                                Das Problem sitzt sicher wieder vor dem Bildschirm, aber ich habe keine Idee wo das Problem in meiner "Logik" drin ist?!
                                Angehängte Dateien
                                Gruß David

                                Kommentar

                                Lädt...
                                X