THEMA HIER IST ÜBERHOLT. LÖSUNG UNTER FOLGENDEN LINK:
https://knx-user-forum.de/forum/playground/xxapi/1005017-zsu-zeitschaltuhr-für-xxapi²-download
HANS - APRIL 2018
--------------------------------------
Zeitsteuerung ist ein lang diskutiertes Thema.
Eine Haussteuerung befaßt sich mit zeit- und ereignisgesteuert en Zuständen und die automatisiert unterstützte Reaktion auf diese.
Das Thema "Zeitsteuerung" ist bei xxAPI2 noch offen. Aber auch die von GIRA angebotene Lösung entspricht nicht den heutigen Anforderungen.
Zeitsteuerung gehört aber zu den elementaren Grundfunktionen einer Hausautomatisierungslösung und ist daher wichtig.
Einfache Aufgaben werden bei den heute zur Verfügung gestellten Lösungen nur mit relativ hohen Programmieraufwand gelöst. Logik-Bausteine werden sehr komplex und sind auf unterschiedliche Anwenderanforderungen nicht vorbereitet (siehe Feiertagsbaustein bzw. Zeitschaltuhren, die im Downloadbereich zur Verfügung stehen).
Aus meiner Sicht stelle ich mir einen Logikbaustein mit einen universellen Eingang und Ausgang mit einer generischen Datenstruktur (zB XML) vor.
Weiters mit den entsprechenden komfortablen Logikbausteinen zur Bearbeitung dieser generischen Struktur.
Die Highlights wären:
- im wesentlichen ein Eingang und ein Ausgang
- Daten sind änderbar, erweiterbar und löschbar, aber auch von extern bespielbar
- folgende Ausgänge sind schaltbar (Jahrestage, Feiertage, Zeiträume und Zeiten)
- daraus folgt, dass auch die Eingänge entsprechend definiert werden können
Beispiel für Feiertag (vereinfacht) bzw. Jahrestag --> yt bzw. yt_age.
Eingabe:
yt.Feiertag:: name.("Neujahr") date.(1.1.)o
yt.Feiertag:: name.("Ostern") date.EASTER
yt.Feiertag:: name.("Ostermontag") date.EASTER+1DAY
yt_age.Geburtstag:: name.("Peter") birthdate.(1.11.1970)
Ausgabe Feld: yt.Feiertag mit Inhalt "Ostern" oder yt_age.Geburtstag mit Inhalt "Peter (46 J)"
Vordefinierte und berechnete Felder könnte man in Blockbuchstaben definieren.
zum Beispiel Wochentage, Ostern, Sonnenaufgang, Jahreszeiten, etc,, siehe in Beispielen.
Beispiel Zeiten, Zeitschaltuhr --> timer.
Eingabe:
timer.Bewässerung:: time_interval.(07:00,07:15) (period.Sommer and not period.Urlaub)
timer.Bewässerung:: time_interval.(17:00,17:15) period.Sommer
timer.Osterdienstagstreffen:: time_interval.(12:00,15:00) date.EASTER+2days
timer.Nachtzeit:: time_interval.(time.SUNRISE,time.SUNSET+1DAY)
timer.on_01:: time_interval.(01:00,) #nur EIN
timer.off_02:: time_interval.(,02:00:00) #nur AUS
Ausgabe:
binäres Feld: timer.Bewässerung, timer.Osterdienstagstreffen, timer.Nachtzeit, timer.on_01
Beispiel Zeiträume --> period.
Eingabe:
period.Urlaub:: date_interval.(1.6.2017,14.6.2017)
period.Urlaub:: date_interval.(21.10.2016,22.10.2016)
period.Sommer:: date_interval.(date.SOMMER,date.HERBST-1DAY)
period.Wochenende:: date_interval.(date.SAT,date.SUN)
Ausgabe:
binäres Feld period.Urlaub, period.Sommer -- ist im definierten Zeitraum "EIN" (oder Verknüpfung - wenn mehrere vordefinierte Zeiträume gleichen Namens
Dieser Ansatz wäre mit den entsprechenden Logikbaustein realisierbar. Innen "komplex" aber außen "einfach".
Die Eingaben könnten extern beschickt werden bzw. mit einer Art "Command Line Editor" mit grafischer Unterstützung der vordefinierten Syntax der "Eingaben" realisierbar sein. Siehe zB GCLI https://github.com/joewalker/gcli/bl.../docs/index.md basierend auf ACE.
Die XML-Ausgaben kōnnten mit den passenden Logikbaustein wieder auf KOs umgesetzt werden.
Eigentlich gar nicht so aufwendig (für den Nutzer dieses Logikbausteins).
Was haltet Ihr von einer solchen Idee?
Hans
https://knx-user-forum.de/forum/playground/xxapi/1005017-zsu-zeitschaltuhr-für-xxapi²-download
HANS - APRIL 2018
--------------------------------------
Zeitsteuerung ist ein lang diskutiertes Thema.
Eine Haussteuerung befaßt sich mit zeit- und ereignisgesteuert en Zuständen und die automatisiert unterstützte Reaktion auf diese.
Das Thema "Zeitsteuerung" ist bei xxAPI2 noch offen. Aber auch die von GIRA angebotene Lösung entspricht nicht den heutigen Anforderungen.
Zeitsteuerung gehört aber zu den elementaren Grundfunktionen einer Hausautomatisierungslösung und ist daher wichtig.
Einfache Aufgaben werden bei den heute zur Verfügung gestellten Lösungen nur mit relativ hohen Programmieraufwand gelöst. Logik-Bausteine werden sehr komplex und sind auf unterschiedliche Anwenderanforderungen nicht vorbereitet (siehe Feiertagsbaustein bzw. Zeitschaltuhren, die im Downloadbereich zur Verfügung stehen).
Aus meiner Sicht stelle ich mir einen Logikbaustein mit einen universellen Eingang und Ausgang mit einer generischen Datenstruktur (zB XML) vor.
Weiters mit den entsprechenden komfortablen Logikbausteinen zur Bearbeitung dieser generischen Struktur.
Die Highlights wären:
- im wesentlichen ein Eingang und ein Ausgang
- Daten sind änderbar, erweiterbar und löschbar, aber auch von extern bespielbar
- folgende Ausgänge sind schaltbar (Jahrestage, Feiertage, Zeiträume und Zeiten)
- daraus folgt, dass auch die Eingänge entsprechend definiert werden können
Beispiel für Feiertag (vereinfacht) bzw. Jahrestag --> yt bzw. yt_age.
Eingabe:
yt.Feiertag:: name.("Neujahr") date.(1.1.)o
yt.Feiertag:: name.("Ostern") date.EASTER
yt.Feiertag:: name.("Ostermontag") date.EASTER+1DAY
yt_age.Geburtstag:: name.("Peter") birthdate.(1.11.1970)
Ausgabe Feld: yt.Feiertag mit Inhalt "Ostern" oder yt_age.Geburtstag mit Inhalt "Peter (46 J)"
Vordefinierte und berechnete Felder könnte man in Blockbuchstaben definieren.
zum Beispiel Wochentage, Ostern, Sonnenaufgang, Jahreszeiten, etc,, siehe in Beispielen.
Beispiel Zeiten, Zeitschaltuhr --> timer.
Eingabe:
timer.Bewässerung:: time_interval.(07:00,07:15) (period.Sommer and not period.Urlaub)
timer.Bewässerung:: time_interval.(17:00,17:15) period.Sommer
timer.Osterdienstagstreffen:: time_interval.(12:00,15:00) date.EASTER+2days
timer.Nachtzeit:: time_interval.(time.SUNRISE,time.SUNSET+1DAY)
timer.on_01:: time_interval.(01:00,) #nur EIN
timer.off_02:: time_interval.(,02:00:00) #nur AUS
Ausgabe:
binäres Feld: timer.Bewässerung, timer.Osterdienstagstreffen, timer.Nachtzeit, timer.on_01
Beispiel Zeiträume --> period.
Eingabe:
period.Urlaub:: date_interval.(1.6.2017,14.6.2017)
period.Urlaub:: date_interval.(21.10.2016,22.10.2016)
period.Sommer:: date_interval.(date.SOMMER,date.HERBST-1DAY)
period.Wochenende:: date_interval.(date.SAT,date.SUN)
Ausgabe:
binäres Feld period.Urlaub, period.Sommer -- ist im definierten Zeitraum "EIN" (oder Verknüpfung - wenn mehrere vordefinierte Zeiträume gleichen Namens
Dieser Ansatz wäre mit den entsprechenden Logikbaustein realisierbar. Innen "komplex" aber außen "einfach".
Die Eingaben könnten extern beschickt werden bzw. mit einer Art "Command Line Editor" mit grafischer Unterstützung der vordefinierten Syntax der "Eingaben" realisierbar sein. Siehe zB GCLI https://github.com/joewalker/gcli/bl.../docs/index.md basierend auf ACE.
Die XML-Ausgaben kōnnten mit den passenden Logikbaustein wieder auf KOs umgesetzt werden.
Eigentlich gar nicht so aufwendig (für den Nutzer dieses Logikbausteins).
Was haltet Ihr von einer solchen Idee?
Hans
Kommentar