[Modul] KNXSystemZeitgeber - regelmäßig Zeit auf den Bus senden

KNXSystemZeitgeber

Modul zur automatischen Übertragung von Zeit- und Datumswerten an KNX-Gruppenadressen.
Es unterstützt eine Liste von Sendezeiten, die zyklisch abgearbeitet werden, sowie das Aktivieren/Deaktivieren des Sendens über einen Schalter in der Konfiguration.

Inhaltsverzeichnis

  1. Funktionsumfang

  2. Voraussetzungen

  3. Software-Installation

  4. Einrichten der Instanzen in IP-Symcon

  5. Statusvariablen und Profile

  6. Visualisierung und Konfiguration

  7. PHP-Befehlsreferenz

1. Funktionsumfang

  • Automatisches Senden der aktuellen Zeit (DPT 10.001) an eine KNX-Gruppenadresse.

  • Automatisches Senden des aktuellen Datums (DPT 11.001) an eine KNX-Gruppenadresse.

  • Verwaltung mehrerer Sendezeiten, die täglich abgearbeitet werden.

  • Möglichkeit, das Senden und den Timer über einen Schalter (Active) zu aktivieren oder deaktivieren.

  • Debug-Funktionalität zur Anzeige der gesendeten Daten im Symcon-Debug-Fenster.

  • Kompatibel mit KNX-Gateway Interfaces über das KNX-Splitter-Modul.

2. Voraussetzungen

  • IP-Symcon ab Version 8.1

  • KNX-Gateway beziehungsweise kompatibles KNX-Splitter-Interface

3. Software-Installation

4. Einrichten der Instanzen in IP-Symcon

Unter Instanz hinzufügen kann das KNXSystemZeitgeber-Modul mithilfe des Schnellfilters gefunden werden.
Weitere Informationen zum Hinzufügen von Instanzen in der Dokumentation der Instanzen

Konfigurationsseite:

Name Beschreibung
Active Aktiviert/deaktiviert das Senden & Timer
GA_Time KNX-Gruppenadresse für die Zeit (DPT 10.001, Format z.B. 8/0/1)
GA_Date KNX-Gruppenadresse für das Datum (DPT 11.001, Format z.B. 8/0/0)
SendTimes Liste der Sendezeiten (HH:mm:ss)

5. Statusvariablen und Profile

Das Modul legt keine Statusvariablen, Kategorien oder Profile an.

Statusvariablen

Name Typ Beschreibung
Keine

Profile

Name Typ
Keine

6. Visualisierung und Konfiguration

  • In der Instanzkonfiguration des Moduls können die Sendezeiten über die Instanzkonfiguration angepasst werden.

  • Debug-Ausgaben werden im Symcon-Debug-Fenster angezeigt, einschließlich der HEX-Daten für Zeit und Datum.

  • Empfehlung: Die Zeiten nicht zur vollen Stunde, insbesondere nicht um 00:00 Uhr, setzen zu lassen. Zur vollen Stunde, insbesondere zur Mitternachtszeit, laufen gerne andere automatische Funktionen, die das Setzen der Zeit auf den Bus kurzzeitig blockieren könnten. Um Mitternacht läuft beispielsweise von Symcon die Log-Rotation, die kurze Verzögerungen verursachen könnte. Zu empfehlen ist das Setzen der Zeit kurz nach 03:00 Uhr, da dann auch die Zeitumstellung erfasst wird. Darüber hinaus können ein oder zwei weitere Aktionen über den Tag verteilt hilfreich sein, wenn einmal der Strom weg war. Dann ist die Zeit wieder schnell gesetzt.

7. PHP-Befehlsreferenz

KSZT_SendKNXTimeAndDate(int $InstanceID)

Sendet die aktuelle Zeit und das Datum an die konfigurierten KNX-Gruppenadressen und setzt den nächsten Timer.

Beispiel:

Sendet das Datum und die Uhrzeit, die aktuell auf dem System liegen, auf den KNX-Bus. Die Zahl 12345 ist dabei durch die ID dieses Moduls zu ersetzen.

KSZT_SendKNXTimeAndDate(12345);

Screenshots:

Screenshot

Ich fände noch eine Option z.B. „sende jede X Stunde“ ganz gut.

Peter

Habe ich in die ToDo Liste des Moduls aufgenommen.

1 „Gefällt mir“

Hallo, das Modul gefällt mir sehr gut.
Leider fehlt mir (auf den ersten Blick natürlich) ein wichtiger Punkt, welcher bei mir immer wieder zu Problemen führt. Es wird die Lokale Systemzeit verwendet, auf dem IPS läuft.
Das führt bei mir manchmal dazu, dass die Zeiten nicht ganz richtig sind. Trotz NTP Server Einstellungen hängt es immer wieder mal bis zu einem Neustart.
Ich habe das bei mir in einem Skript so gelöst, dass er sich die Zeit übers Internet holt.
NTP ging zwar auch aber das war für mich deutlich umständlicher.
Ist vielleicht eine angenehme Ergänzung für das Modul.

Hier mal ein kleiner Auszug:

$dt = (new DateTime(get_headers(„http://www.microsoft.com“, 1)[‚Date‘],new DateTimeZone(‚GMT‘)))->setTimezone(new DateTimeZone(date_default_timezone_get()));
$zeit = $dt->format(‚Y-m-d H:i:s‘);
echo $zeit;

Gruß Stefan

Das ist keine garantierte Systemzeit mit einer Header Abfrage. Da stecken viele Fallstricke drinnen es so zu machen, wie du es gerade machst. Ich kann das Thema in einer Fortentwicklung gerne rein nehmen. Das wird aber erst später kommen, da ich zunächst die Stable in den Store bringen will. Das Thema Turnus habe ich da zu noch aufgenommen. Alle weiteren Erweiterungen kommen erst später. Also: Kommt mit auf der ToDo Liste, wenn es für dich ok ist.

1 „Gefällt mir“

Hallo pjotrweliki, ich habe die “Turnus” Sache noch mit reingenommen. Die Beta ist bereits im Store. Die Stable ist auf dem Weg.

Prima,
jetzt bitte noch die Meldungen deaktivierbar machen.

Bist du dir sicher, dass es sinnvoll ist die Zeit so häuig zu übertragen. Alle Geräte die die Zeit empfangen haben doch eigene Uhren. Ich persönlich verwende das Modul nur dazu tägliches auseinanderlaufen zu verhindern. Und selbst das tägliche Auseinanderlaufen ist noch gering. Ursprünglich hatte ich das mal wegen der Zeitumstellungen eingebaut. Aber jede Minute?!

nein, ich habe nur zum Test im ETS-Gruppenmonitor auf dem Button rumgeklingelt.
Habe halt Tremor im Mausfinger… :wink:

Ah ok. Ich bin sonst auch Gegner vieler Meldung im Log. Bei diesem Modul halte ich es jedoch für sehr wichtig, da das Modul ansonsten komplett im Hintergrund arbeitet und man sonst nichts mitbekommt. Da kann man dann hin wieder schauen ob alles läuft. Im Gegensatz zu anderen Modulen sieht man häufig wenn etwas nicht läuft im Frontend. Bei dem Hintergrundmodul nicht.

Wie häufig willst du den Turnus denn einstellen? Wenn es max 24 Abfragen pro Tag sind, dann hällt das Log das schon aus :wink: Hier gibt es User die schreiben 500MB und mehr ins Log. Das sind mehrere Millonen Logzeilen…

Ich habe das nach dem Fingerzucken wieder auf Standard 60 Minuten gestellt. Deshalb war ja meine ursprüngliche Bitte: "Ich fände noch eine Option z.B. „sende jede X Stunde“ ganz gut.
Trotzdem mag ich nicht, dass, wenn ich die Verwaltungskonsole aufmache im Status alles vollgeschrieben ist. Ich möchte dort nur echte Fehler sehen.

Hmm, naja, so ist das Log-System offensichtlich von Symcon aber nicht angedacht. Dort werden ganz bewusst auch andere Dinge drinnen eingetragen die nicht unter “Error” fallen. Dort sind auch Einträge wie “Messages”, “Notify”, “Custom”, “Succsess” vorgesehen. Im Grunde genau für das was ich da im Log durch mein Modul mitschreibe. Du kannst durch Klick auf die Anzeige-Button die Ergebnisse filtern und dadurch nur Errors anzeigen lassen.

Weitere Infos:

Wenn du mein Modul nutzt, dann kann der Filter im Browser auch länger gehalten werden:

Von daher würde ich gerne die aus meiner Sicht wichtigen Logs weiterhin loggen wollen. Ich nehme es aber gerne in die ToDo Liste auf, dass man die Logs ausschalten kann.

DPT 19.001 fände ich noch sinnvoll.

1 „Gefällt mir“

Kommt auf die ToDo Liste für die nächste Revision.

1 „Gefällt mir“

Das erste Stable ist nun im Store zu finden. Daher nehme ich in der Beschreibung [Beta] raus.

v1.0.0_StableRelease
Erste Stable Release mit Änderungen:
-Turnus zusätzlich als Minuten einstellbar
-kleinere Verbesserungen im Ablauf

Hallo, ich habe eine neue Beta Version erstellt.

v2.1.1_beta4
Neue Funktionen:
-Zusätzliches Modul mit dem NTP Zeitserver abgefragt werden können
-DPT19.001 Sendungen auf dem Bus nun möglich
-Intervallversendung möglich
-Log Messages lassen sich deaktivieren
-Umschaltung zwischen Systemzeit und NTP Zeit

@DerStandart und @pjotrweliki

Die Beta habe ich zunächst noch nicht im Symcon Store. Die Beta kann von Github runtergeladen werden. Gerne einmal Testen. Die DPT19 kann ich nur bedingt testen. Das was im ETS ankommt sieht plausibel aus - sagt ETS zumindestens. Ich habe allerdings keine passenden Geräte im Netz um das zu verifizieren. Alle anderen angeforderten Änderungen sollten nun enthalten sein. Der NTP Dienst läuft über einen Socket, da das sonst nicht oder nur bedingt mit dem UDP Parent aus Symcon funktioniert, da der Dienst Asyncron läuft. Bei NTP Abfragen kann das ein Problem sein. Tests zwischen UDP Parent und Socket zeigen zwar keine großen Unetrschiede auf, aber je nach Umfeld kann das zu einem Problem werden. Wenn das NTP Modul keine Server erreicht, dann wird am Ende immer die Systemzeit verwendet. Das “NTP Modul” sehe ich eigentlich nicht als erforderlich an, aber aus Spaß an der Freude habe ich mich mal >>breitschlagen<< lassen. Man sollte definitiv schauen, dass das Zentralsystem die Zeit passend vorliegen hat.

1 „Gefällt mir“

Nun ist die neue Beta auch im Symcon Store.

Ich möchte gerne den Sinn verstehen, warum ein solches Modul entwickelt wird.

Ich kenne nur sehr wenige KNX Anlagen, in welchen keine IP-Schnittstelle verbaut ist.

Aber mal grundsätzlich: Alle mir bekannten KNX Geräte brauchen die Uhrzeit nicht regelmäßig. Es reicht 1x am Tag. Oder von mir aus auch 1x pro Stunde. Falls die Geräte neu parametriert werden, holen sie sich die Uhrzeit nach dem Download des Applikationsprogramms. Aus welcher Anforderung entsteht der Bedarf, feste Zeiten abzuarbeiten, zu denen die Uhrzeit gesendet wird?

Nicht falsch verstehen. Ich möchte dieses Modul nicht schlechtreden, sondern würde gerne nur die Beweggründe verstehen, warum man so etwas entwickelt.

Ich kann nur für mich sprechen. Mir reicht es auch, wenn die Zeit einmal im Jahr und/oder nach Spannungswiederkehr kommen würde. Denn einige Geräte brauchen die Zeit irgendwo her. Ich habe keine anderen Geräte die die Zeit liefern. Da kam mir Symcon gerade recht, da einfach zu realisieren. Außerdem muss die Zeit bei mir zur Zeitumstellung nachgereicht werden. Um allen Widrigkeiten zu begegnen sende ich die Zeit einmal nachts auf das System. Dann ist in allen Fällen sichergestellt, dass diese hinreichend genau geht und alle anderen Fälle abgedeckt werden.

Warum die Abfrage via NTP erfolgen sollte und nicht via System; hat ein User ja erläutert. Am Ende hat jeder seine eigene Brille auf. Sicher gibt es zig unterschiedliche Wege nach Rom. Der Eine macht es so, der Andere so. Es ist doch schön, wenn man eine Auswahl hat. Man muss es ja nicht nutzen, wenn man es nicht braucht. Hier gibt es viele schöne Module im Store und im Forum, davon brauche ich auch die wenigsten. Es ist aber gut zu wissen, dass es sie gibt, wenn man dann doch mal was braucht… :wink:

1 „Gefällt mir“