Seite 1 von 1

[V4.0 IP3] Wert zyklisch senden

Verfasst: Do Jul 27, 2023 10:03 pm
von starwarsfan
Hallo miteinander,

nachdem ich bisher mit dem Logik-Editor nicht warm geworden bin, wollte ich wieder mal einen neuen Versuch starten.

Folgende Problemstellung:

Ich kann mit (fast) allen meinen KNX-Aktoren den Strom der Verbraucher messen. Allerdings kann der Zählerstand nur alle zehn Minuten (oder länger) auf den Bus geschrieben werden. Die Werte sollen via MQTT weiterverarbeitet werden, wo sie jedoch alle 60s refreshed werden müssen. Beim MQTT-Sendefilter steht nun leider, dass diese Funktionalität noch entwickelt wird und daher stellte sich mir die Frage, ob resp. wie ich mit einer Logik den Wert eines (KNX-) Objektes alle 60s nach MQTT publishen kann. :confusion-scratchheadyellow:

Mit Edomi wäre das ein Oszillator und ein Wertauslöser aber ich wollte es endlich mal mit dem Wolf direkt lösen, zumal Edomi an der Stelle überhaupt nicht involviert ist. ;)

Zunächst habe ich mit dem Baustein Taktsignal experimentiert, welcher ja einem Oszillator entspricht. Aber dabei fehlte immer noch ein Filter oder eine Sperre oder etwas in der Art. Dann bin ich eher zufällig über den Baustein Sende Text im Intervall gestolpert. Das sah doch schonmal weit erfolgversprechender aus! Nur leider lässt sich ein String-Input nicht mit einem Float- oder Integer-Objekt verbinden. Hm... :confusion-scratchheadyellow:

Die Lösung war dann allerdings recht einfach: Quelltext dieses Bausteines in eine Custom-Logik kopieren und die String-Eingänge auf Integer ändern. Der Baustein verwendet intern den Multiplexer, welcher seinerseits ja in vier Ausprägungen existiert, eben genau für verschiedene Input-Typen.

Et voila, mein erster Anwendungsfall der TW-Logik-Engine und das auch gleich noch mit Custom-Logik. So kann's gehen. :handgestures-thumbupright:

Wen's interessiert, hier der Code dazu:

Code: Alles auswählen

{
  "Level": [
    [
      "$Run",
      "bool",
      true
    ],
    [
      "$Select",
      "integer",
      0
    ],
    [
      "$Val",
      "integer",
      0
    ],
    [
      "$Clk",
      "bool",
      false
    ],
    [
      "$Clk_Val",
      "integer",
      0
    ],
    [
      "$Period",
      "float",
      600
    ],
    [
      "$VAR<Inhibit?>",
      "bool",
      false
    ]
  ],
  "Module": [
    [
      "Break",
      [
        "$VAR<Inhibit?>"
      ]
    ],
    [
      "Clocksignal",
      "$Run",
      "$Clk",
      "$Period"
    ],
    [
      "Multiplexer",
      [
        "$Val",
        "$Val"
      ],
      "$Clk_Val",
      "$Select"
    ]
  ],
  "Input": [
    [
      "Eingang",
      "Eingangswert",
      "$Val",
      "a"
    ],
    [
      "Intervall in Sekunden",
      "Zeit [s] zwischen Senden (standard 600 Sekunden, 10 Minuten)",
      "$Period",
      "c"
    ],
    [
      "Inhibit",
      "INHIBIT",
      "$VAR<Inhibit?>",
      "u"
    ]
  ],
  "Output": [
    [
      "Ausgang",
      "Per Intervall gesendeter Ausgangswert",
      "$Clk_Val",
      "t"
    ]
  ]
}

Re: [4.0-IP3] Wert zyklisch senden

Verfasst: Do Jul 27, 2023 11:00 pm
von Robert_Mini
Hallo Yves!

Ja so einfach kann‘s gehen.
Ich würde aber (abhängig was damit passieren soll) den Eingang auf „c“ und den Ausgang auf „ct“ stellen.
Damit wird bei Änderung der Wert sofort übernommen und gesendet, dazwischen zyklisch.

Lg
Robert

Re: [4.0-IP3] Wert zyklisch senden

Verfasst: Fr Jul 28, 2023 6:43 am
von gbglace
Hi Yves,
Ja auch der Multiplexer kann dafür verwendet werden.
Ganz ohne Customlogik, ginge auch ein Addition oder Multiplikationsbaustein. Ein Eingang der Zählerstand, eine Konstante mit 0 oder 1 je nach Baustein. Und eben auch einmal den Trigger als Eingang mit der gewünschten Zykluszeit.

Re: [4.0-IP3] Wert zyklisch senden

Verfasst: Sa Aug 03, 2024 6:07 pm
von cheater
Stoße auch gerade wieder mal auf das Problem, dass bei MQTT die Sendefilter noch nicht implementiert sind.

Re: [V4.0 IP3] Wert zyklisch senden

Verfasst: So Aug 04, 2024 8:46 am
von hans4711
Beim MQTT-Sendefilter steht nun leider, dass diese Funktionalität noch entwickelt wird
Gibts da schon Infos wann die Sendefilter und Wertanpassugen analog zu 1Wire auch für die anderen Schnittstellen kommt? Ich finde das eine der besten Funktionen. Aktuell kann man es ja auch mit Logiken nachbauen, aber das finde ich unübersichtlich und schwerer nachzuvollziehen

Re: [V4.0 IP3] Wert zyklisch senden

Verfasst: So Aug 04, 2024 11:13 am
von gbglace
Nein kein Termin.
Es wird derzeit neben der Visu an anderen erhebliche Anpassungen/Verbesserungen im Objektsystem des TWS gearbeitet.

nachfolgend braucht es noch eine andere Anpassungen und dann wird es da sicher auch Entwicklungen geben um Einheitlichkeit in den Technologien zu haben.

Aktuell noch der Umweg via Logik, bevor man alles quasi ungefiltert in eine Timeseries schreibt.