Die Zeitsschaltuhrlösung "xxAPI².ZSU" ist fertig.
------------------------------------------------------
19.11.2019: Es gibt ein Update auf 32 bzw. 48 ZSUs
Die neue beiliegende ZSU-Lösung muß eingespielt werden.
Die alte Lösung muß vorher gelöscht werden.
Die Logik bleibt gleich.
Das neue Download befindet sich hier.
Hans
------------------------------------------------------
Anleitung zum Installieren und generelle INFOs:
Die ZSU+ sehe ich als meinen Beitrag, um für xxAPI² eine breite Nutzung zu ermöglichen.
Hans
------------------------------------------------------
19.11.2019: Es gibt ein Update auf 32 bzw. 48 ZSUs
Die neue beiliegende ZSU-Lösung muß eingespielt werden.
Die alte Lösung muß vorher gelöscht werden.
Die Logik bleibt gleich.
Das neue Download befindet sich hier.
Hans
------------------------------------------------------
#####
Update vom 13.12.2016, 22:30 Uhr
Grundsätzliches: Konzept der Implementierung
Wie die meisten von Euch nach kurzer Zeit feststellen werden schaut die Lösung "auf den ersten Blick" recht komplex aus. Lassen Sie sich nicht abschrecken.
Die ganze Lösung von mir basiert auf "Index'e". Die sollten das Leben mit xxAPI².ZSU ziemlich vereinfachen.
Bei dieser Lösung gibt es genau 16 ZSUen, Die meisten Logikbausteine dienen nur dazu einen Index (von 1..16) nachzubilden.
Ich schreibe nämlich nicht gerne "redundanten" Code. Nach den Startaufwand im Experten "Indexlogik" abzubilden die er ja gar nicht unterstützt, kann ich und natürlich Ihr mit relativ einfachen Aufwand einen "Index" setzen, und wie von "Zauberhand" werden im Hintergrund Aktionen durchgeführt die das Leben des "Programmierers" ziemlich vereinfachen.
Der Aufruf einer ZSU mit einem PopUp erfolgt im wesentlichen mit dem Setzen eines Indexes. Die Visu gibt es als PopUp nur einmal. Der Rest wird ausgelöst durch das Setzen des Indexes. Die Parameter für die ZSU werden in XML abgespeichert und dient auch zur Unterstützung des "Index"-Konzeptes.
Übrigens ist meine gesamte Lösung so aufgebaut. Jeder Schirm hat eine Nummer. Ich setze einen neuen Schirm durch Eingabe einer Nummer aktiv. Das geht auch bei allen PopUps, wie Dimmer, Heizung, Multimedia, Lüftungssteuerung, Lautstärke, usw. Und natürlich auch mit der ZSU.
Im Prinzip dient das ganze Rundherum nur dazu, das Programmieren (es ist dann eigentlich "konfigurieren") einfacher zu machen. Wenn Ihr das "durchschaut" habt, wißt Ihr das zu schätzen.
Also nicht "abschrecken" lassen. Die eigentliche Komplexität ist gut versteckt und braucht Ihr nicht anzugreifen.
Vielleicht kann man Gira dazu motivieren auch für die freie VISU PlugINs zur Verfügung stellen, wobei die "internen Logikmodule" und "lokalen" KO vom Rest isoliert werden. So wie in jeder modernen Programmierumgebung üblich.
Im Quad-Client gibt es zumindest Ansätze, bei der freien ViSU fast nichts. Wäre schade wenn es keine Lösung gibt.
,-)) Hans
Update vom 11.12.2016, 12:00 Uhr
Allgemeine Beschreibung
Die in der Gira Homeserver Standardlösung vorhandene Universal-Zeitschaltuhr (uZSU) wird mit den unter xxAPI² vorhandenen „moderneren“ Schnittstellen (auf Basis HTML 5) nicht unterstützt, da die bestehende Benutzerschnittstelle technisch veraltet ist.
Dadurch besteht die Gefahr, dass die "technisch zukunftsorientierte" Initiative zur Weiterentwicklung von xxAPI zu xxAPI² gefährdet ist.
Diese Ergänzung der xxAPI² Lösung durch xxAPI².ZSU soll eine positive Weiterentwicklung unterstützen.
Die Hauptbestandteile dieser Lösung sind 3 Zeitschaltuhren (Logikbausteine) mit dem Ziel folgende unterschiedliche Funktionsbereiche abzudecken:
Weiters werden die obigen ZSU‘en durch folgende Logikbausteine direkt unterstützt:
Eine einfache Einbindung in die eigene xxAPI²-Lösung ist dadurch möglich. Diese PopUp’s unterstützen den Endanwender durch eine einfache und fehlerfreie Eingabe der Schaltzeit-Parameter.
Für eine einfache Umstellung der bestehenden Lösung in diese "neue" Lösung wird ein spezielles Logik-Arbeitsblatt "ZSU.Schaltmatrix" bereitgestellt. Dieses unterstützt eine Umschaltung zwischen alter und neuer Lösung. Auch eine stufenweise Umstellung ist damit möglich.
Die ZSU-Logik ist vollständig und umfangreich implementiert (entspricht einiger 1.000 "Lines-of-Code" im Vergleich zu konventionellen Programmier-Lösungen).
Eine möglichst einfache Installation (unter Berücksichtigung der umfassenden Lösung) wird unterstützt.
Folgende Eigenschaften im Vergleich zu anderen Lösungen sind hervorzuheben:
Ist auch in der neuesten Version 4.5.0 des Gira HS Experte ohne Probleme unter xxAPI² lauffähig.
Alle bekannten Fehler bzw. Problempunkte sind behoben.
Update vom 9.12.2016, 21:00 Uhr
Eine Konfigurationsanleitung ist im Posting #30
ttps://knx-user-forum.de/forum/playground/xxapi/1005017-zsu-zeitschaltuhr-für-xxapi²-download?p=1023114#post1023114
zu finden.
Hier untenstehend folgende INFOs:
- Installationsanleitung
- Bedienungsanleitung
Update 24.3.2017:
Die "NEUESTEN" DATEIEN stehen zum Download im Posting #43 zur Verfügung:
https://knx-user-forum.de/forum/playground/xxapi/1005017-zsu-zeitschaltuhr-für-xxapi²-download?p=1075132#post1075132
Es muß alles neu installiert werden, auch alle beiliegenden Logikbausteine sind neu zu importieren
BITTE NACH FOLGENDER ANLEITUNG vorgehen:
#####
Update vom 13.12.2016, 22:30 Uhr
Grundsätzliches: Konzept der Implementierung
Wie die meisten von Euch nach kurzer Zeit feststellen werden schaut die Lösung "auf den ersten Blick" recht komplex aus. Lassen Sie sich nicht abschrecken.
Die ganze Lösung von mir basiert auf "Index'e". Die sollten das Leben mit xxAPI².ZSU ziemlich vereinfachen.
Bei dieser Lösung gibt es genau 16 ZSUen, Die meisten Logikbausteine dienen nur dazu einen Index (von 1..16) nachzubilden.
Ich schreibe nämlich nicht gerne "redundanten" Code. Nach den Startaufwand im Experten "Indexlogik" abzubilden die er ja gar nicht unterstützt, kann ich und natürlich Ihr mit relativ einfachen Aufwand einen "Index" setzen, und wie von "Zauberhand" werden im Hintergrund Aktionen durchgeführt die das Leben des "Programmierers" ziemlich vereinfachen.
Der Aufruf einer ZSU mit einem PopUp erfolgt im wesentlichen mit dem Setzen eines Indexes. Die Visu gibt es als PopUp nur einmal. Der Rest wird ausgelöst durch das Setzen des Indexes. Die Parameter für die ZSU werden in XML abgespeichert und dient auch zur Unterstützung des "Index"-Konzeptes.
Übrigens ist meine gesamte Lösung so aufgebaut. Jeder Schirm hat eine Nummer. Ich setze einen neuen Schirm durch Eingabe einer Nummer aktiv. Das geht auch bei allen PopUps, wie Dimmer, Heizung, Multimedia, Lüftungssteuerung, Lautstärke, usw. Und natürlich auch mit der ZSU.
Im Prinzip dient das ganze Rundherum nur dazu, das Programmieren (es ist dann eigentlich "konfigurieren") einfacher zu machen. Wenn Ihr das "durchschaut" habt, wißt Ihr das zu schätzen.
Also nicht "abschrecken" lassen. Die eigentliche Komplexität ist gut versteckt und braucht Ihr nicht anzugreifen.
Vielleicht kann man Gira dazu motivieren auch für die freie VISU PlugINs zur Verfügung stellen, wobei die "internen Logikmodule" und "lokalen" KO vom Rest isoliert werden. So wie in jeder modernen Programmierumgebung üblich.
Im Quad-Client gibt es zumindest Ansätze, bei der freien ViSU fast nichts. Wäre schade wenn es keine Lösung gibt.
,-)) Hans
Update vom 11.12.2016, 12:00 Uhr
Allgemeine Beschreibung
Die in der Gira Homeserver Standardlösung vorhandene Universal-Zeitschaltuhr (uZSU) wird mit den unter xxAPI² vorhandenen „moderneren“ Schnittstellen (auf Basis HTML 5) nicht unterstützt, da die bestehende Benutzerschnittstelle technisch veraltet ist.
Dadurch besteht die Gefahr, dass die "technisch zukunftsorientierte" Initiative zur Weiterentwicklung von xxAPI zu xxAPI² gefährdet ist.
Diese Ergänzung der xxAPI² Lösung durch xxAPI².ZSU soll eine positive Weiterentwicklung unterstützen.
Die Hauptbestandteile dieser Lösung sind 3 Zeitschaltuhren (Logikbausteine) mit dem Ziel folgende unterschiedliche Funktionsbereiche abzudecken:
- ZSU – einfache ZSU mit Zeitraumlogik (z.B. von 05:30 bis 07:00 Uhr)
- ZSU+ – komplexe ZSU mit ausgefeilter Zeitraum-Logik¸ zusätzlich ist eine Datums-Logik, Wochentags-Logik, Feiertags-Logik, Urlaubs-Logik und zusätzlich eine frei definierbare Ereignis-Logik (zB. Anwesend/Abwesend) implementiert.
Zusätzlich ist ZSU+ Basis für weitere ZSU Varianten, wie ZSU.Urlaub und ZSU.SU_SA (Berücksichtigung des Sonnenstands via Sonnenaufgang und Sonnenuntergang). - ZSU.AnwSIMU – Anwesenheits-Simulation. Simulation der Anwesenheit in der Dunkelheit. Es wird der Sonnenuntergang und der Sonnenaufgang berücksichtigt. Zusätzlich können die Parameter – für 2 parallel je max. 17 generierbare Schaltzeiträume – für den Zufallsgenerator definiert werden.
Weiters werden die obigen ZSU‘en durch folgende Logikbausteine direkt unterstützt:
- ZSU.FeiertageAT – Berechnung aller „beweglichen“ und „festen“ Feiertage. Welche Feiertage pro Land bzw. Region berücksichtigt werden sollen, kann vom Entwickler auf flexible und einfache Weise definiert werden.
- ZSU.Sonnenstand – Berechnung der Sonnenaufgangs- und Sonnenuntergangszeiten basierend auf Datum unter Berücksichtigung jeweiligen Längen- und Breitengrades. Die Berechnung ist für Polarregionen (ist über 65°ten Breitengrad) nicht geeignet. Für die Berechnung wurde „neuer“ Algorithmus ausgewählt. Die Ergebnisse sind im Vergleich zu der im „Gira Experten“ vorhandenen Standardlösung sensationell genau. Die Abweichung beträgt im Vergleich zu hochkomplexen Berechnungen professioneller Wetterstationen auf mitteleuropäischen Breitengraden max. 1-2 Minuten, gerechnet über das gesamte Jahr kleiner 1 Minute.
- ZSU.INFO – eine Funktion die aus dem „Blickwinkel“ des Endbenutzers die nächste Schaltzeit bei Doppel-ZSU aus den zwei INFO-Zeiten der einzelnen ZSU auswählt. Ist in der Praxis gar nicht so einfach und daher entstand ein „hoch komplexer“ Baustein. Die INFO hat Gültigkeit für den laufenden Tag und für den Urlaubskalender für das laufende Jahr.
Eine einfache Einbindung in die eigene xxAPI²-Lösung ist dadurch möglich. Diese PopUp’s unterstützen den Endanwender durch eine einfache und fehlerfreie Eingabe der Schaltzeit-Parameter.
Für eine einfache Umstellung der bestehenden Lösung in diese "neue" Lösung wird ein spezielles Logik-Arbeitsblatt "ZSU.Schaltmatrix" bereitgestellt. Dieses unterstützt eine Umschaltung zwischen alter und neuer Lösung. Auch eine stufenweise Umstellung ist damit möglich.
Die ZSU-Logik ist vollständig und umfangreich implementiert (entspricht einiger 1.000 "Lines-of-Code" im Vergleich zu konventionellen Programmier-Lösungen).
Eine möglichst einfache Installation (unter Berücksichtigung der umfassenden Lösung) wird unterstützt.
Folgende Eigenschaften im Vergleich zu anderen Lösungen sind hervorzuheben:
- Zeitraumlogik (von-bis) statt Zeitpunktlogik
- Debugging ist umfassend und einheitlich über alle wesentlichen Komponenten der Lösung implementiert, inklusive Zeitreise (Vergangenheit und Zukunft).
- Minimale Nutzung der Ressourcen durch Berechnung der nächsten Schaltzeit via Timer.
Im Standardfall 3 Aufrufe pro Tag, statt 86400 Aufrufen (=jede Sekunde) bei sonstigen im Homeserver-Umfeld verfügbaren Lösungsansätzen. - Vollständige Implementierung der Zeitumstellungslogik (Sommerzeit/Winterzeit). Bis dato ist keine andere Lösung mit funktionierender Zeitumstellungs-Logik im Homeserver-Umfeld bekannt.
- Nächste Schaltzeit (ZSU.INFO) des laufenden Tages wird für die Einbindung in die individuelle Visualisierung von allen ZSU‘en zur Verfügung gestellt. Für Doppel-ZSU’en wird zusätzlich eine sehr ausgeklügelte Logik bereitgestellt.
Ist auch in der neuesten Version 4.5.0 des Gira HS Experte ohne Probleme unter xxAPI² lauffähig.
Alle bekannten Fehler bzw. Problempunkte sind behoben.
Update vom 9.12.2016, 21:00 Uhr
Eine Konfigurationsanleitung ist im Posting #30
ttps://knx-user-forum.de/forum/playground/xxapi/1005017-zsu-zeitschaltuhr-für-xxapi²-download?p=1023114#post1023114
zu finden.
Hier untenstehend folgende INFOs:
- Installationsanleitung
- Bedienungsanleitung
Update 24.3.2017:
Die "NEUESTEN" DATEIEN stehen zum Download im Posting #43 zur Verfügung:
https://knx-user-forum.de/forum/playground/xxapi/1005017-zsu-zeitschaltuhr-für-xxapi²-download?p=1075132#post1075132
Es muß alles neu installiert werden, auch alle beiliegenden Logikbausteine sind neu zu importieren
BITTE NACH FOLGENDER ANLEITUNG vorgehen:
#####
- Voraussetzung ist ein xxAPI² Projekt.
- Für den Notfall eine Sicherungskopie anlegen. Im Experten unter "Datei/Archivieren/Projekt+Quadclient (mit Benutzer-Passwörtern).
Wenn Du einen groben Fehler machst, am besten "beenden" ohne speichern und nochmals starten, Die Logikbausteine sind aber auch "ohne speichern" importiert, - Alle bestehenden "alte" Dateien (der alten Beta von ZSU) in VISU, Logikeditor und Kommunikationsobjekte löschen. In der angeführten Reihenfolge. In der VISU zuerst die Dateien mit "2 Zeiten" oder "2 Zeiträumen" löschen. Die restlichen danach löschen. Weitere vorhandene Dateien (z..B,: Images) werden von der neuen Version überschrieben.
- ZSU.logik entzippen
Bildschirmfoto 2016-12-06 um 15.08.54.png - Alle hsl bzw. hslz Dateien in den Experten importieren (Menu-Punkt: "Logikbausteine"). Markiere alle - dann werden alle gemeinsam auf einmal importiert.
- Starte den Experten neu
- Importiere die zsu.hsllb in den Experten unter den Menüpunkt "Globale Bibliothek".
- Als Name gib zB "ZSU.1" statt des vorgeschlagenen Verzeichnisnamen ein (2 mal). Kreuze die untere Checkbox zum Überschreiben an. Noch nicht "ENTER"-Taste drücken.
- Karteireiter "Verweise" wählen: Zeichensatz "Courier" neu anlegen. Durchklicken. Nur statt "Courier" "Courier 10" eingeben.
- ENTER drücken. Jetzt wird alles importiert und angelegt.
- Gehe zu Kommunikationsobjekte (im Experten). Wähle Karteireiter "intern". Unter Extras "Gruppenadressen löschen" und dann "Gruppenadressen neu vergeben" wählen.
- Wenn DU jetzt "nur probeweise" "Übertragen" auswählst, sollte "keine" Fehlermeldung auftreten. Wenn es so ist, dann ist alles ordnungsgemäß gelaufen und die Installation OK.
******************************************* - Kontrolliere die Versionsnummer von
- 15026 ZSU+
- 15030 ZSU
- 15053 AnwSIMU
- 15048 ...
Sie müßte immer V1.1 lauten.
******************************************* - Es gibt im Experten unter "VISU" importierte Objekte, im Subverzeichnis "ZSU" den Popup-Schirm "ZSU Test".
Verbinde diesen mit einem ICON und aktiviere die Funktion "Seite aufrufen", wähle dort "ZSU Test" aus. - Dann sollte das ganze LIVE laufen. Natürlich mußt du vorher das Projekt "Übertragen"
******************************************* - Für den Logikbaustein 15048 (Sonnenaufgang/-untergang) und 15053 (AnwSIMU) bitte die richtigen Koordinaten eintragen. Für Tests genügen auch die voreingestellten Koordinaten (=Wien).
******************************************* - Wenn ihr das ganze wirklich "live" verwenden möchtet, braucht Ihr nur im Logikeditor im Verzeichnis ZSU in der Datei "Schaltmatrix" statt den "Dummy ICO" Euren richtigen Ausgang eintragen. Dann lauft es wirklich.
- Wenn Ihr das Verändern der Schaltzeiten irgendwo in Eurer VISU einbauen wollt, kopiert einfach aus dem PopUp "ZSU Test" das entsprechende ICON. Dort ist schon alles richtig eingestellt.
- Bei den PopUps für die ZSU Bezeichnungen, gibt es noch eine einzige Datei mit "dynamischen Text" "zsu name". Hier werden Eure individuellen Überschriften für "alle" PopUp's definiert. Doppel-Klick auf die Überschrift in einer der PopUp's und ändert den Text.
Parallels Picture.png
******************************************** - An-/Abwesend müsst Ihr von der eigenen Anwendungslogik bereitstellen. Die AnwSIMU funktioniert nur bei "Abwesenheit".
Die ZSU Radiowecker und Kaffee nur bei Anwesenheit. Diese setzen ein Kommunikationsobjekt (KO) "binär mit "1" bei Anwesenheit und "0" bei Abwesenheit voraus.
Der Logikbaustein "AnwSIMU" funktioniert im Debug-Modus auch bei "Anwesend".
Es gibt eine eigenes Logikarbeitsblatt "ZSU.anwesend.abwesend" wo der entsprechende "Dummy"-Wert getauscht werden muß.
******************************************** - In der VISU "ZSU Test" (= PopUp) gibt es noch einen Knopf "Debug".
Hier kann man folgendes einstellen: 0=aus, 1=ein und eine 10-stellige Zahl mit TTMMJJhhmm oder eine 6-stellige Zahl mit hhmmss. Mit diesen Einstellungen können individuelle Tests gemacht werden. Funktioniert übergreifend mit ZSU+, ZSU, Feiertagsmodul, AnwesendSIMU und Sonnenaufgang/-untergangsmodul. ZSU ist vereinfachte Version von ZSU+.
Weiters werden in den PopUps zusätzlich (in grün) zusätzliche Debug-Infos eingeblendet, wie Sekunden zur nächsten von-Schaltzeit, bis-Schaltzeit und zum globalen Tag-/Stunden- und Minutenwechsel.
Dabei kann auch die richtige Zeitdauer bei der Zeitumstellung geprüft werden (zB +3600 Sekunden beim Wechsel von Sommer- auf Winterzeit, Einstellung 3010160000 Einschaltzeit 05:00 sind 21600 Sekunden - statt normalerweise 18000 Sekunden.
fullsizeoutput_1029.jpegfullsizeoutput_1028.jpeg - Beim Datum können auch Leerwerte eingegeben werden (=0); das geht auch bei der Zeit (=-1). Damit können sehr trickreich Schaltzeiten generiert werden. zB bei Zeit nur Sekunden eingeben 55 bis 56 schaltet die ZSU nur 1 Sekunde - das aber jede Minute. Es gehen auch Schaltzeiten von 45 bis 10.
fullsizeoutput_1033.jpeg - Beachte mit klein "e/a" wird die Uhr ausgeschaltet, mit gross "E/A" schaltet die Uhr - sie muß aber mit "e/a" eingeschaltet sein,
fullsizeoutput_102e.jpeg - Beachte: im Debug-Modus (Debug > 1) wird eine Zeit bzw. Datum+Zeit eingestellt. Es wird ein Zeitpunkt eingeschaltet. Die Uhr steht aber. Bei Debug-Modus == 1 läuft die Uhr in der aktuellen Zeit. Die Uhr steht nicht.
Debug funktioniert nur, wenn auch klein e/a == EIN.
********************************************** - Der Debug-Modus zeigt bei allen VISU PopUp's zusätzliche Info's in grüner Schrift an.
ZSU+,ZSU:
fullsizeoutput_1021.jpeg
- Z: x/y x=letzte Schaltzeit y=sek bis zur nächsten Schaltzeit (von Zeit x)
- G: nächste globale Schaltzeit (zB Mitternacht), ==>v: nächste EIN-Zeit, ==>b: nächste AUS-Zeit
AnwSIMU:
fullsizeoutput_1022.jpeg
- Z: x/y x=letzte Schaltzeit, y=nächste Schaltzeit
- Wh: x:y/z x=n-te Wiederholung Ausgang1, y=das gleiche für Ausgang2, z=Gesamtanzahl der Wiederholungen
- G: nächste globale Schaltzeit: zB Mitternacht, Sonnenaufgang (dort erfolgt die Berechnung für die Folgenacht)
- E: x/y x=letzte bzw. nächste EIN-Zeit für Ausgang1, y=das gleiche für Ausgang2
- A: x/y x=nächste AUS- Zeit für Ausgang1, y=das gleiche für Ausgang2
Die Zeitparametrierung erfolgt bei der AnwSIMU erfolgt in "Minuten". Die Berechnung der zufälligen Zeiten erfolgt in 1/10 Minuten. Daher die Anzeige der Schaltzeiten in 1/10 Minuten.
********************************************** - Urlaubs- und Feiertagskalender haben 3 Schaltpositionen und laufen immer mit "und" Verknüpfung. "-" = "kein Urlaub/kein Feiertag, " " ist Ne utral, "+" ist Urlaub bzw. Feiertag. Der Feiertagskalender ist so eingestellt, dass ein Sonntag auch die Feiertags-Info liefert. "+" heisst daher Sonn-& Feiertags. "-" verknüpft mit mo&di&mi&do&fr&sa heißt werktags.
- Der Logikbaustein "Feiertage AT" kann sehr individuell angepaßt werden und ist zusätzlich auch für österreichische Verhältnisse adaptiert.
- m Logikbaustein "Feiertage AT" die Feiertage richtig auswählen, standardmäßig sind die gesetzlichen Feiertage von Österreich konfiguriert. Den Feiertags-Logikbaustein 16760 (dieser war eigentlich für DEUTSCHLAND gedacht) bitte nicht verwenden, da fehlerhaft. Auch die Zeitumstellungslogik war fehlerhaft und auch die ist in der Version 0.4 (Logikbaustein 15025) von mir behoben worden. Der Logikbaustein 15025 ist auch für andere Länder geeignet - es lassen sich noch 5 zusätzliche Feiertage (mit Fixdatum) konfigurieren. Speziell für Deutschland ist alles vorhanden.
- In den Einstellungs-PopUps sind aktivierte Werte generell grün umrahmt oder mit grünlichen (LCD-farbenen) Hintergrund hinterlegt.
fullsizeoutput_1019.jpeg - Es gibt eine Update-Taste. Ist Taste links vom OK-Button. Veränderte Werte werden direkt in ZSU aktiviert (= scharf geschaltet) mit "OK", "UPDATE" und "e/a".
fullsizeoutput_1034.jpeg - Sub-PopUps sind SubAuswahlschirme für mehrere Schaltzeiten. Hier werden durch berühren der LCD-farbenen Oberfläche weitere PopUps aktiviert.
fullsizeoutput_1037.jpeg - Verkettung-Symbol kopiert bei Eingabe von "von-Werten" diese auf die "bis-Werte"
fullsizeoutput_1039.jpeg - Bei leeren Werten (-1 bei Zeit, 0 bei Datum) sind diese nur paarweise bei von/bis möglich. Eine -1 bei bisSekunde wird automatisch in von-Sekunde kopiert, ein Jahr 2016 eingegeben in von-Jahr wird in bis-Jahr kopiert, aber nur wenn bis-Jahr leer.
Das hört sich zwar kompliziert an, ist aber sehr intuitiv und hilfreich. Probiert es nur aus.
Null-Werte werden in der VISU mit TT:MM.JJJJ und hh:mm:ss angezeigt. War meine Design-Entscheidung und ist nach meiner -sicht lesbarer.
fullsizeoutput_1033.jpeg - Der Urlaubskalender ist auch gleich integriert. Es sind genau 2 Zeiträume definierbar. Nach längeren Überlegungen argumentiere ich, das in den meisten Fällen gar nicht mehr als zwei vordefinierte Urlaubszeiträume wünschenswert sind.
Ist übersichtlich und einfach zu administrieren.
fullsizeoutput_103c.jpeg - An-Abwesend Schalter ist zusätzlich pro ZSU integrierbar. Gewisse Schaltungen sind nur bei An-/Abwesenheiten notwendig.
Wird auch in PopUps durchgeschaltet. Einstellung via "dynamisches Symbol" 'anwesendZSU'. - Zeitraum-Logik: ist generell implementiert. Ich sehe nur Vorteile. Nachteile sind mir keine bekannt.
Es gibt keine Zwangsschaltungen. Ich kann jederzeit ein mit einer ZSU eingeschaltetes Licht ausschalten und es wird nicht wieder automatisch eingeschaltet - außer bei einen Restart des Systems. - Die Ausgänge der ZSU sind mit (sbc) = "send by change" konfiguriert.
Die Eingänge "triggern" nur, wenn das bei den Eingängen explizit angegeben ist. Bei der Beschickung einer eingeschaltenen ZSU (e/a==1) mit Zeitwerten per XML muß danach immer noch mit e/a getriggert (nur wenn 1). e/a==1 wird systemintern um 1 Sekunde verzögert, damit ist sichergestellt, dass die Zeitwerte intern vorher gesetzt werden bevor die ZSU neu initialisiert (Restart) wird. Bei Debug <> 0 wird auch ein Reset durchgeführt, aber nur wenn Eingang e/a==1. - Feiertagskalender (15025) und Sonnenaufgang und -untergangsmodul (15048) starten automatisch (bei Init).
ZSU (15030), ZSU+ (15026) und AnwSIMU (15053) starten bei Setzen von Eingang "e/a" auf Wert "1", also nicht automatisch. Es ist aber ein Logikarbeitsblatt inkludiert (=ZSU.Startup) das nach Systemstart - in Abhängigkeit des Wertes eines "remanenten" KOs die ZSUen automatisch einschaltet. - Generell ist das Design auf 16 ZSU optimiert. Theoretisch sind natürlich mehr möglich, aber mit Zusatzaufwand. Dafür wird auch zusätzlich der Logikbaustein ZSU bereitgestellt. Für die meisten dürfte die Lösung ausreichend sein.
- Weiters sind die vordefinierten Vorlagen auf 2 Schaltzeiträume beschränkt, Erweiterungen sind - mit Zusatzaufwand - möglich.
************************************************** - Eine weitere Ergänzung ist der Baustein 15053 (Anwesenheits-Simulation), kurz AnwSIMU. Es werden auf 2 Ausgängen parallel bis zu je max. (1+16) unterschiedliche Schaltzeiten nach einem "parametrierbaren" Zufallsprinzip generiert. Wenn die generierten Schaltzeiten länger wären als bis zum nächsten Sonnenaufgang (SA), dann wird zum SA abgebrochen.
Die Oberfläche ist komplex, sollte aber selbsterklärend sein. SO hoffe ich.
fullsizeoutput_1022.jpeg
************************************************** - Weiters wurde in alle ZSU ein INFO-Feld eingebaut. Hier sollte der derzeitige bzw. nächste Schaltzeitraum stehen.
Dieser ist pro ZSU parametrierbar. 0: hh:mm.m- hh:mm.m (1/10 Minute), 1: hh:mm-hh:mm, 2: hh:mm:ss-hh:mm:ss, 3: TT.MM-TT:MM. Bei der AnwSIMU ist vorangestellt eine Zahl, die die 0..n'te Schaltfolge wiedergibt. zB 4: 19:03.3-20:09.2 die 4. Wiederholung.
fullsizeoutput_103f.png - Diese können natürlich in die VISU übernommen werden.
Zeiträume und Schaltzeiten sind ein wesentliches Unterscheidungsmerkmal zur Gira-UZSU. Dort sind beide Merkmale nicht vorgesehen.
fullsizeoutput_1017.jpegfullsizeoutput_101b.jpeg
************************************************** - Die ZSU funktioniert auch "uneingeschränkt" bei der Zeitumstellung
- Der interne Timer wird bei meiner Lösung wirklich auf die nächste Schaltzeit gestellt und nicht - wie meistens - im Sekundentakt die Schaltzeit abgefragt. Das wäre dann im Vergleich 86.400 mal pro Tag zu genau 3 mal am Tag bei meiner Lösung.
- Designkriterien sind: einfachste Wiederverwendung, optimale und intuitive Bedienung aus Endbenutzersicht, State-of-the-art Technologie (Performance, Funktionalität, Test, minimalste Benutzung von Systemressourcen).
Die ZSU+ sehe ich als meinen Beitrag, um für xxAPI² eine breite Nutzung zu ermöglichen.
Hans
Kommentar