This page is also available in the other languages: English Deutsch

InfluxDB


Mit dem “influxdb” Package können Daten an einen InfluxDB v2 Server gesendet werden. Das Package ist seit hkknx v2.8.0 verfügbar.

In folgenden Beispiel werden Temperaturwerte von Gruppenadressen im Bereich von 1/0/0 bis 1/0/255 empfangen und an den InfluxDB Server gesendet.

Die Authentifizierung gegenüber den Server erfolgt über einen Token.

 1var influxdb, hkknx = import("influxdb"), import("hkknx")
 2
 3// Create an influxdb client
 4var client = influxdb.NewClient("http://localhost:8086", "secret-token")
 5var bucket = client.Bucket("my org", "knx")
 6
 7// Create a channel to receive telegrams for group addresses
 8// in the range of "1/0/0-255".
 9var ch = hkknx.GroupWriteTelegramNotify("1/0/*")
10for {
11	// Wait for a telegram to arrive
12	var telegram = <-ch
13	// Decode the telegram bytes as 9.001
14	var temp = hkknx.ParseDPT9001(telegram.Bytes)
15
16	// Create a new influxdb datapoint for the measurement "temperature"
17	// and set the group address and temperature value.
18	var point = influxdb.NewPointWithMeasurement("temperature")
19	point.AddTag("address", telegram.Addr)
20	point.AddField("value", temp)
21
22	// Send the data to the server.
23	var err = bucket.Write(point)
24	if err != nil {
25		println(err)
26	}
27}

Die Daten werden im Bucket knx und als Messwert temperature gespeichert. Der Temperaturwert wird dem Feld value zugewiesen. Die Gruppenaddresse wirds als Tag address gespeichert.

Im Line-Protokoll würde das folgenden Text ergeben:

temperature,address=<group address> value=<temp value> <timestamp>

zB temperature,address=1/0/125 value=19.5 1704892410000000000


Auf dieser Seite
© Matthias Hochgatterer – MastodonGithubRésumé