Beim durchsehen, welche Plugins vom WG ich bereits Ablösen kann, stoße ich bei sehr vielen Plugins an die fehlende Möglichkeit, die aktuelle Zeit in der Logik auszulesen.
Im perl kann man mit time() die aktuelle Linux-Zeit in ms auslesen, bzw. per
Code: Alles auswählen
my $min = (localtime(time))[1];
my $hour = (localtime(time))[2];
my $mday = (localtime(time))[3];
Damit kann man Integrieren (dx*dt) /Differenzieren (dx/dt), Telegrammrate begrenzen (dt > x), eine einfache Zeitschaltuhr basteln (wenn min_soll == min und hh_soll == hh) oder für die Visu mit auswerten, wie lange der Rasenmäher unterwegs ist oder lädt (t - Startzeit), die Laufzeit der Wärmepumpe, Brunnenpumpe und ZSS berechnen, oder auf ähnliche Art die Position des Schiebetors abschätzen ( (t - t_Start) / Gesamtlaufzeit * 100 ). Aus einem Impulssignal (Regenmengenmesser, Stromzähler) lässt sich damit auch die Regenintensität bzw. aktuelle Leistung ausrechnen.
Auch die Aufgabenstellung kurze / lange Betätigung lässt sich damit leicht lösen, wobei dafür sicher ein eigener Standard-Baustein vorhanden sein sollte.
Ich stelle mir hier einen universellen Zeitbaustein vor, der:
- per Triggereingang (Objekt oder zyklisch) ausgeführt wird (analog Astro Baustein)
- Per Init Eingang sich eine Zeitpunkt merkt (Startzeit)
- und folgende Werte senden kann:
- Aktuelle Linuxzeit in [sec]
- Analog perl localtime() die Wert für $sec,$min,$hour,$mday,$mon,$year,$wday,$yday ausgeben kann
- Die Zeit seit dem letzten Trigger ausgeben kann (in [sec]) => entspricht dt
- Die Zeit seit letztem Init senden kann (in [sec]) => entspricht (t - t_start)
Die Zeiten können intern als Float gerechnet werden und bei der Ausgabe nach KNX in 2bit DPT 9.010 oder 4bit DPT 14.074 gewandelt werden.
Umrechnung für die Visu zB Minuten-Werte, Stunden etc. kann vom Anwender einfach per Ratio-Logik oder Polynom-Logik erfolgen.
Ich denke, damit würde als Standardbaustein viel abgedeckt sein und für die Custom-Logik weitreichende Möglichkeiten geschaffen werden, siehe die genannten Fälle oben. Zählerstände und Verbrauchsdaten habe ich jetzt bewusst nicht genannt, da diese über den Umweg der Zeitreihen (persistent) möglich sind, aber nicht echtzeitfähig.
lg
Robert