Seite 1 von 1

Rule schreibt keine Werte in influxDB

Verfasst: 8. Nov 2020 08:35
von julianpe
Hallo zusammen,

ich habe bei mir einen Stromzähler, der nur den aktuellen Zählerstand ausgibt. Die Anbindung und das Auslesen funktioniert sehr zuverlässig.
Nun möchte ich den aktuellen Stromverbrauch und die Verbräuche der letzten Tage auswerten.

Hierzu habe ich mich am folgenden Beispiel gehalten.
https://zukunftathome.de/stromzaehler-u ... arstellen/

Das Beispiel nutzt jedoch rrd4j Datenbank anstatt einer InfluxDB.
Ich habe bei mir das entsprechend angepasst, jedoch werden keine Werte in die entsprechende Datenbank geschrieben.

Hier einige Parameter Dateien:

influxdb.cfg

Code: Alles auswählen

url=http://localhost:8086
user=openhab
password=password
db=openhab
retentionPolicy=autogen
influxdb.persist

Code: Alles auswählen

Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
every2Minutes : "0 */2 * ? * *"
default=everyChange
}
 
Items {
Stromzaehler_Verbrauch_Aktuell : strategy = everyMinute, restoreOnStartup
Stromzaehler_Speicher_Tag : strategy = everyMinute, restoreOnStartup
}
EnergyActual.rules

Code: Alles auswählen

rule "Stromzähler Verbrauch Aktuell"
 
when
Item HouseSumConsumption received update
then
Stromzaehler_Verbrauch_Aktuell.
postUpdate(HouseSumConsumption.deltaSince(now.minusMinutes(6))*10*1000)
end
EnergyToday.rules

Code: Alles auswählen

rule "Stromzaehler Verbrauch Tag"
 
when
Item HouseSumConsumption received update
then
Stromzaehler_Verbrauch_Tag.
postUpdate(HouseSumConsumption.deltaSince(now.withTimeAtStartOfDay))
end
Geprüft habe ich die Inhalte mit putty auf dem Raspberry PI:

Code: Alles auswählen

[08:21:36] openhabian@openHABianDevice:~$ influx -username openhab -password password
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3
> show databases
name: databases
name
----
openhab
> use openhab
Using database openhab
> show
> show measurement
ERR: error parsing query: found EOF, expected EXACT, CARDINALITY at line 1, char 18
Wo habe ich in meinen Einstellungen einen groben Schnitzer drin?
P.S. Mich wundert es, dass ich in influx nur mit den Startparametern -username und -password einloggen kann.
In den ganzen Examples wurde das nicht behandelt. Logge ich mich ohne user und password ein, so kann ich das Programm zwar starten, aber ich kann die Datenbank openhab nicht auswählen.

Vielen Dank im Voraus

Re: Rule schreibt keine Werte in influxDB

Verfasst: 8. Nov 2020 11:52
von udo1toni
Das Problem könnte die retention policy sein. Auch die kannst Du Dir über influxd ausgeben lassen.

Re: Rule schreibt keine Werte in influxDB

Verfasst: 9. Nov 2020 07:20
von julianpe
Und woran liegt es, dass ich beim Programmaufruf immer mit die Logindaten übertragen muss?
Ich schaue mir mal das Thema retention policy an. Beim ersten Überfliegen des Themas klingt das eher nach einer Abspeicherungsstrategie um Datensätze speichermäßig klein zu halten. Aber bei mir wird ja erst gar nichts in die Datenbank reingeschrieben.

Ich habe die Datenbank über den Funktionsaufruf aus openhabian-config erstellen lassen. Hieraus sind Username, Password und Datenankname entstanden. Muss ich der Datenbank auch manuell eine Struktur (also Spalten für die unterschiedlichen Datensätze) an die Hand geben, oder wird dies automatisch über die .persist Datei erzeugt?

Re: Rule schreibt keine Werte in influxDB

Verfasst: 9. Nov 2020 09:39
von udo1toni
Die Retention policy muss existieren, damit sie von openHAB genutzt werden kann.
In der openHAB Konfiguration steht ja autogen als Retention policy, und da bin ich mir halt nicht sicher, ob das wirklich so funktioniert. Ich habe da immer default eingetragen, weil default von influxDB automatisch erzeugt wird.
In der Retention policy steht drin, wie lange die Daten aufbewahrt werden, wie sie auf die shards aufgeteilt werden usw. Letztlich steuert es die aufzubewahrende Datenmenge :)


Gesendet von iPad mit Tapatalk

Re: Rule schreibt keine Werte in influxDB

Verfasst: 9. Nov 2020 11:30
von julianpe
Laut openhab Wiki ist seit V1.0 die retentionPoliy automatisch auf autogen.
Habe es mal auf default umgeändert und bekomme nun folgende Meldungen

Code: Alles auswählen

2020-11-09 11:27:48.943 [ERROR] [.internal.InfluxDBPersistenceService] - retention policy not found: default

2020-11-09 11:27:48.957 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Stromzaehler Verbrauch Tag': The argument 'state' must not be null.

2020-11-09 11:27:48.957 [ERROR] [.internal.InfluxDBPersistenceService] - retention policy not found: default