KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Erfahrungsbericht] [V4.0 IP3] Wert zyklisch senden

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1395
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 864 Mal
Danksagung erhalten: 1199 Mal

[V4.0 IP3] Wert zyklisch senden

#1

Beitrag 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"
    ]
  ]
}
Zuletzt geändert von Parsley am Sa Aug 03, 2024 10:20 pm, insgesamt 2-mal geändert.
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)

Robert_Mini
Reactions:
Beiträge: 3903
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1264 Mal
Danksagung erhalten: 2213 Mal

#2

Beitrag 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
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

gbglace
Reactions:
Beiträge: 4089
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1416 Mal
Danksagung erhalten: 1901 Mal

#3

Beitrag 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.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

cheater
Reactions:
Beiträge: 695
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 449 Mal
Danksagung erhalten: 309 Mal

#4

Beitrag von cheater »

Stoße auch gerade wieder mal auf das Problem, dass bei MQTT die Sendefilter noch nicht implementiert sind.
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache

hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#5

Beitrag 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
3500 XL ID:1339

gbglace
Reactions:
Beiträge: 4089
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1416 Mal
Danksagung erhalten: 1901 Mal

#6

Beitrag 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.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU
Antworten

Zurück zu „Logikengine & Logik-Editor“