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

[DISKUSSION] Diskussion zu ZSU-Baustein

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

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

#11

Beitrag von Robert_Mini »

Hallo Sven!

Ehrlicherweise hatte ich unter Zeitfenster jetzt nicht wirklich an eine ZSU gedacht und beim Denkanstoß im Thread hier (viewtopic.php?f=24&t=2516) einfach Lust eine ZSU umzusetzen... Dein Posting vorgestern hat den Baustein Zeitfenster wieder "an die Oberfläche" gebracht und da hab ich gesehen, dass das ähnlich umgesetzt ist... Von nicht gefallen kann da keine Rede sein!!!

Mein Tag hat auch nicht mehr Stunden als deiner :confusion-scratchheadyellow:
Aber da im TV ohnehin nichts Brauchbares läuft, was 100% Aufmerksamkeit benötigt, kann man nebenbei ja schön spielen...
Robosoc hat geschrieben: Do Dez 17, 2020 6:55 am Wenn ich einen Trigger1-Eingang definiere, scheint dieser dennoch erst nach dem ersten Auslösen (als dem ersten mal True auf dem Ausgang) aktiv zu sein... das verstehe ich gerade noch nicht.
Hab ich jetzt nicht getestet, aber das war früher mal ein Bug, der aber (eigentlich) schon gelöst wurde...

Das Thema Reboot/Speichern glaub ich ist in diesem Fall automatisch gelöst und ich hab da eine Fleißaufgabe gemacht....
Warum: Ich vermute mal, dass eine Logik sobald ein clocksignal oder wakeup vorkommt, beim speichern automatisch getriggert wird (das müsste @S. Kolbinger bestätigen können). Das wurde mal als Bugfix ergänzt, weil eben ein zyklischer Trigger nach dem Speicher nicht gestartet wurde.

Da eine ZSU dringend als Baustein aufgenommen werden sollte, noch ein paar Gedanken:
- Mir gefällt deine Lösung, da sie das Triggern zu Mitternacht nicht braucht und auch mein Baustein am Ende bei jedem Aufruf alle Schritte durchläuft, wenn auch nicht alles per Latch übernommen wird.
- Es gibt schon Sekunden :-)
- Was mir weniger gefällt ist die Tatsache, dass deine Clocksignals bei jedem Aufruf neu berechnet werden. Ob das im Hintergrund einen Unterschied macht d.h. neue Timer gestartet werden oder ohnehin nur per Referenz ein Wert angepasst wird, keine Ahnung, das muss Stefan bewerten.
- Inhibit vs. enable: beides ok, inhibit ist denke ich besser, da die Logik dann nicht ausführt wird. Hatte da wegen dem initialisieren nach dem Sperren so meine Sorgen. Sollte aber kein Problem sein, wenn man den Inhibit nicht mit "u" belegt.

@Eraser und @gbglace: Nix Duell - nur KVP :laughing-rolling:

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

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#12

Beitrag von Robosoc »

edit: Dieser Beitrag wurde kurz nach Robert's vorherigem Beitrag gepostet, daher sind ein paar überflüssige Elemete enthalten...sorry
Eraser hat geschrieben: Do Dez 17, 2020 8:36 am Das ZSU-Baustein-Duell hat begonnen... :lol:
Ich frage mich schon seit gestern: Wofür steht eigentlich ZSU?

Und um das rauszufinden habe ich gegooglet (ohne sofortigen Treffer) und hier im Forum geschaut...
Dadurch bin ich auf den Threat gestoßen: viewtopic.php?f=24&t=2527

Der erklärt zwar nicht, wofür ZSU steht, aber warum Robert sich mit der Logik beschäftigt hatte.

Robert schreibt dort "Ansonsten bleibt im Prinzip die gleiche Logik wie "Zeitfenster V1.2" [..] mit etwas optimierten Modulen und "einfacher".
Ich blicke immer noch nicht, was daran "optimaler" ist? Also in welchen Fällen die ZSU-Logik eine sauberere Funktion hat, als die Zeitfenster-Logik.
Ich möchte gerne einfach die optimalere verwenden, weil ich diese Logik inzwischen zwei Mal im Einsatz habe und zukünftig sicher noch mindestens 3 Einsatzfälle dazu kommen. Ich will für solche Fälle gerne immer die gleiche Logik einsetzen und da sollte es dann in allen Fällen möglich das optimale Verhalten sein.

Ich denke es gibt folgende Bewertungskriterien (jetzt wird es langsam zur Doktorarbeit, so akribisch meine ich es aber gar nicht):
Genauigkeit
Ich glaube in diesem Punkt sind Beide gleich- ich bin der Meinung sie triggern beide auf die Sekunde genau, bei ZSU von Robert aktuell immer auf Sekunde 0, aber das reicht mir bisher ohnehin völlig und die Erweiterung um Sekundenvorgaben wäre ja easy.

Rebootverhalten / Verhalten nach Speichern
hier habe ich beim Testen leicht Vorteile beim Zeitfenster gesehen, weil hier sofort das zyklische Senden beginnt, beim ZSU ht das bei mir aus einem mir nicht klaren Grund zunächst nicht geklappt.

Performancehunger
Das kann ich nicht bewerten und ich glaube auch fast, dass die Logiken beide so klein sind, dass dies nicht weiter ins Gewicht fällt. Auch wenn ein paar float-Operationen enthalten sind.


Gibt es sonst Unterschiede?
Zuletzt geändert von Robosoc am Do Dez 17, 2020 9:27 am, insgesamt 2-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

gbglace
Reactions:
Beiträge: 3585
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1253 Mal
Danksagung erhalten: 1649 Mal

#13

Beitrag von gbglace »

Robosoc hat geschrieben: Do Dez 17, 2020 9:22 am Wofür steht eigentlich ZSU?
ZeitSchaltUhr
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
#3 PBM 3 Kanäle, #4 Modbus-Extension

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

#14

Beitrag von Robert_Mini »

Hallo Sven!

Danke für deine Zusammenfassung. Ein paar Kommentare:
- Entscheidend für die ZSU (=Zeitfenster), dass sie auch nur zu den Schaltzeiten senden kann (ohne zyklisch senden). Sollte aber bei beiden passen.
- Ein Wunsch, den beide nicht erfüllen, wäre das man auch nur EIN oder nur AUS senden kann, vielleicht ist es aber besser, dafür eine getrennten Baustein zu erstellen. Die Lösung mit AND+Cron halte ich nicht für sehr praktisch bzw. kann man ihn nicht in die Visu integrieren.
(Für die Mitleser: Ich wollte das mit 2 Ausgängen lösen, das braucht dann ein SendExplicit und dann wird es aber mit dem zyklisch Senden schwierig...)

Etwas akademisch, aber trotzdem bei kurzen Schaltzeiten interessant:
- Zeitfenster berechnet ab dem letzten Aufruf, das kann nach dem Speichern oder Reboot sein. Das ist nicht exakt die Sekunde, damit sind die Schaltzeiten dann auch sek. +dt
- Bei Verwendung von Wakeup wird die Logik exakt zum Unix-Zeitpunkt getriggert, das ist aus meiner Erfahrung auf wenige ms exakt. Das wäre aus meiner Sicht schon ein Argument, die Logik Zeitfenster / ZSU auf diesem Mechanismus aufzubauen, siehe Anhang +1ms!

lg
Robert
ZSU_Test.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
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

#15

Beitrag von Robert_Mini »

Gerade noch getestet:
ZSU_Zeitfenster.png
Darf ich unsere Diskussion in die ZSU Diskussion rauslösen?

lg
Robert
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

EarlBacid
Reactions:
Beiträge: 371
Registriert: So Aug 26, 2018 5:59 pm
Wohnort: Herborn
Hat sich bedankt: 134 Mal
Danksagung erhalten: 235 Mal

#16

Beitrag von EarlBacid »

Hallo Robert,

einen getrennten Ausgang für Ein und Ausschalten hätte den Vorteil, dass man die ZSU so auch als einen Ausschalter oder reinen Einschalter verwenden könnte.

VG
Earl
Wiregate#1504 + PBM -
Timberwolf 950Q #233 / VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, PV und Strom über MQTT
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu

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

#17

Beitrag von Robert_Mini »

Hallo Sven!

Hab mir deinen Code noch ein wenig genauer angesehen.

Ich denke das schreit nach einem klassischen Best of Both.
- Basis gerne vom Zeitfenster, d.h. Berechnung der Weckzeit ausgehend vom letzten Aufruf
- Zyklischer Trigger (dieser sorgt nämlich für das initiale Aufrufen der Logik nach zB Speichern/Reboot), damit entfällt die Reboot Logik von mir.
- Das Auswerten der Zeit zur Weckzeit per Wakeup (ich habe einen Hang zur Perfektion, daher ms-genau). Die Weckzeit wird wie folgt berechnet:
Utime_midnight=Utime_now-h_act*3600-min_act*60-sec
Utime_alarm_on=Utime_midnight+h_on*3600+min_on*60+sec_on

- Ein zusätzlicher inhibit Eingang

Zusätzlich eine abgespeckte Version für nur einen Schaltausgang, einstellbar am Eingang, ob EIN oder AUS gesendet wird.
Was sagst du dazu?

Edit: Was ich nicht in deinem Baustein nicht verstehe:
["Polynomial", "$Const60", "$TimeFrom", ["$s_from","$m_from","$h_from"]],

du rechnest die Stunden nur x60 sollte aber x3600, damit man die Tageszeit in sec bekommt, oder?

lg
Robert
Zuletzt geändert von Robert_Mini am Do Dez 17, 2020 8:50 pm, insgesamt 2-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Hammer
Reactions:
Beiträge: 171
Registriert: Mo Sep 10, 2018 9:17 am
Hat sich bedankt: 81 Mal
Danksagung erhalten: 69 Mal

#18

Beitrag von Hammer »

Hallo Robert,

Deine bedenken kann ich so nicht nachvollziehen.
Robert_Mini hat geschrieben: Do Dez 17, 2020 8:39 pm Edit: Was ich nicht in deinem Baustein nicht verstehe:
["Polynomial", "$Const60", "$TimeFrom", ["$s_from","$m_from","$h_from"]],

du rechnest die Stunden nur x60 sollte aber x3600, damit man die Tageszeit in sec bekommt, oder?
Denn wie ich die Polynomial Formel verstehe würde sie wie folgt aussehen:

$TimeFrom = $s_from + $m_from *60 + $h_from * 60²

Quelle app.php/kb/viewarticle?a=96

Oder habe ich da einen Denkfehler?

Grüße Stefan
Timberwolf Server 2500 ID:210 +PBM; VPN offen & Reboot nach Rücksprache .

Wiregate von 2011, ab 2024 in Rente

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

#19

Beitrag von Robert_Mini »

Perfekt! Hatte grad ein Brett vorm Kopf...
Danke
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#20

Beitrag von Robosoc »

Die Logik "Zeitfenster" kommt nicht von mir, es war die Leistung von Markus (Ide71). Ich habe damals lediglich ein wenig dran gearbeitet als ich genausowas brauchte. Und ich habe dann die Versionen 1.2 und 1.3 ergänzt.

Auf ZSU = ZeitSchaltUhr hätte ich ja ruhig mal selber kommen können, mein Hirn hat bei ZeitSteuerUnit aufgehört zu denken... :angry-banghead:

Ich würde aber dennoch vorschlagen, in allen dazu gehörenden Diskussionen im Betreff den vollständigen Namen zu ergänzen, also Zeitschaltuhr (ZSU). Ich glaube ich hatte mir den Beitrag nicht angeschaut, weil ich keine Ahnung hatte, was es war und dachte es tangiert mich nicht...Vielleicht sucht ja sogar mal jemand nach Zeitschaltuhr und findet es nicht, weil er nicht auch nach ZSU sucht...

Von mir aus kannst Du, Robert, gerne Themen von hier in die andere Diskussion rauslösen.
Zuletzt geändert von Robosoc am Do Dez 17, 2020 10:08 pm, insgesamt 2-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Logikengine & Logik-Editor“