Skip to content
Menu

Knowledge Base

KB050021 | SENDEN DER ZEIT AUF KNX/EIB

KB050021 | SENDEN DER ZEIT AUF KNX/EIB

Produkt: Elvis
Version: ab 1.3
Stand: 2002-07-25

Zusammenfassung

Wenn die PC-Zeit als Telegramme auf den Bus gesendet werden soll (beim EIB: EIS3 und EIS4), kann die Zeit, die über den Systemport zur Verfügung steht, benutzt werden. Diese Zeit ist aber lokalisiert und enthält auch die Sommer-/Winterzeit-Umschaltung. Manchmal muß man aber die Greenwich Mean Time = Universal Time Coordinate (UTC) auf den Bus senden. Die nachfolgenden Funktionen ermitteln die lokale Zeit und die UTC und deren Rückgabewert kann direkt entsprechenden Datenpunkten (Typen: EIB Uhrzeit und EIB Datum) zugewiesen werden.

Einzelheiten

1. Im Globalen Script des Prozessservers werden einige Funktionen deklariert. Download  Skript (3 KB).

Bitte nicht aus dem Web heraus kopieren – hier können Sonderzeichen enthalten sein, die zu Fehlfunktionen führen!

Sub OnLoad()
Database.Datapoint(„datum“).ActualValue = CDate(0)
Database.Datapoint(„zeit“).ActualValue = CDate(0)
End Sub

Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Declare Function SetSystemTime Lib „kernel32“ (ByRef lpSystemTime _
As SYSTEMTIME) As Long
Declare Function VariantTimeToSystemTime Lib „oleaut32″(ByVal vtime As Date, _
ByRef lpSystemTime As SYSTEMTIME) As Long
Declare Function SystemTimeToVariantTime Lib „oleaut32″(ByRef lpSystemTime As SYSTEMTIME, ByRef vtime As Date) As Long
Declare Function GetSystemTime Lib „kernel32“ (ByRef lpSystemTime As SYSTEMTIME) As Long
Declare Function GetLocalTime Lib „kernel32“ (ByRef lpSystemTime As SYSTEMTIME) As Long

Function GetDateTimeUTC() As Date
Dim systime As SYSTEMTIME
Dim vartime As Date

GetSystemTime systime

If SystemTimeToVariantTime(systime, vartime) = 0 Then
Print „SystemTimeToVariantTime failed“
Else
GetDateTimeUTC = vartime
End If
End Function

Function GetDateTimeLocal() As Date
Dim localtime As SYSTEMTIME
Dim vartime As Date

GetLocalTime localtime

If SystemTimeToVariantTime(localtime, vartime) = 0 Then
Print „SystemTimeToVariantTime failed“
Else
GetDateTimeLocal = vartime
End If
End Function

2. Datenpunkten vom Typ EIB Uhrzeit oder EIB Datum die DateTimeLocal oder DateTimeUTC zuweisen. In diesem kleinen Beispiel wird über den Datenpunkt Local_UTC_Time_Switch zwischen der Lokalen und der UTC umgeschaltet. Der Datenpunkt Zeit_jetzt_senden_Befehl dient nur als Ereignis, das die Berechnung auslösen soll. Er kann z.B. über einen Timer ein Zeitprogramm oder einfach über den Bedienen verändert werden.

Bitte nicht aus dem Web heraus kopieren – hier können Sonderzeichen enthalten sein, die zu Fehlfunktionen führen! Es geht schneller und sicherer, wenn Sie die Datenpunkte anlegen und diese dann für Ihre Berechnung aus der im Editor angebotenen Liste auswählen.

‚@(Zeit_jetzt_senden_Befehl).NominalValue

Dim dDateTime As Date
If Database.Datapoint(„Local_UTC_Time_Switch“).NominalValue Then
dDateTime = GetDateTimeUTC()
Else
dDateTime = GetDateTimeLocal()
End If
Database.Datapoint(„datum_UTC“).NominalValue = dDateTime
Database.Datapoint(„zeit_UTC“).NominalValue = dDateTime
Result = dDateTime

Support Area

KB050021 | SENDEN DER ZEIT AUF KNX/EIB

Knowledge Base

Hier finden Sie Antworten, Problemlösungen und Beispiele zu unseren Produkten.
KB050021 | SENDEN DER ZEIT AUF KNX/EIB

Case Studies

Erfolgreich im Einsatz: Praxisbeispiele unserer Produkte und Individualentwicklungen.
KB050021 | SENDEN DER ZEIT AUF KNX/EIB

Support

Beschreiben Sie ihr Anliegen über unser Supportformular.
KB050021 | SENDEN DER ZEIT AUF KNX/EIB

Lizenzregistrierung

Registrieren Sie ihre Elvis-Lizenz!

IT GmbH · An der Kaufleite 12 · D-90562 Kalchreuth

KB050021 | SENDEN DER ZEIT AUF KNX/EIB

BÜRO
Telefon: +49 911 5183490
E-Mail: info@it-gmbh.de

VERTRIEB
Telefon: +49 911 5183490
E-Mail: vertrieb@it-gmbh.de

partner-knx

© Copyright 2024. IT GmbH | designed by Appear Online