UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[Implemented] Zeit-Baustein für Logik

Hier bitte Eure Diskussionen und Feature Requests zu neuen Logikmodulen und Funktionen des Logik-Editors
Antworten

Ersteller
Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

Zeit-Baustein für Logik

#1

Beitrag von Robert_Mini »

Hallo zusammen!

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]; 
die Einzelkomponenten auswerten.

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 Ausgabe von $sec,$min,$hour,$mday,$mon,$year,$wday,$yday könnte eventuell auch ein getrennter Baustein sein.

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
Zuletzt geändert von Robert_Mini am Mo Nov 18, 2019 11:09 am, insgesamt 3-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#2

Beitrag von Robert_Mini »

Hallo zusammen!

Vieles von diesem FR wird durch die Stoppuhr und den Betriebsstundenzähler, an dem Stefan K. gerade tüftelt abgedeckt.

Was bleibt ist der Bedarf an einem Baustein, der $sec,$min,$hour,$mday,$mon,$year,$wday,$yday beim Eintreffen eines Triggers senden kann.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Feature Requests & Diskussionen Timberwolf Logik (Module & Editor)“