als Persistens nutze ich influxdb wenn ich in Grafana ein Dashboard mit z.B. SolarWoche erstellen möchte kommt die Meldung "No Data". Kann mir jemand auf die Sprünge helfen ?
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz
Hmm. Also abgesehen davon, dass es sich um fünf Items handelt und da Leerzeichen fehlen, sind die vier unteren Items vom Typ String.
InfluxDB ist durchaus in der Lage, auch Strings zu speichern, aber es sind dann halt Strings.
Wenn Du numerische Werte darstellen willst, musst Du zwingend Items vom Typ Number verwenden (alternativ gehen auch QuantityType Items, also z.B. Number:Energy)
Da die Items ja offensichtlich ungebunden sind: Wie sieht die zugehörige Rule aus, welche die Items mit Daten füllt?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
rule "Solarertrag Tag Woche Monat Jahr"
when
Item Solarertrag_Gesamt changed // changed reicht.
then
val Preis = 0.481
val start_of_day = now.with(LocalTime.MIDNIGHT) // heute, Mitternacht
val start_of_week = start_of_day.minusDays(start_of_day.getDayOfWeek.getValue - 1) // Montag
val start_of_month = start_of_day.withDayOfMonth(1) // Erster Tag des Monats (1)
val start_of_year = start_of_day.withDayOfYear(94) // Beginn am 03.04.2024
val Solar_Heute = if(Solarertrag_Gesamt.deltaSince(start_of_day) as Number != null) (Solarertrag_Gesamt.deltaSince(start_of_day) as Number).doubleValue() else 0.0 // kWh Delta holen
val Solar_Woche = if(Solarertrag_Gesamt.deltaSince(start_of_week) as Number != null) (Solarertrag_Gesamt.deltaSince(start_of_week) as Number).doubleValue() else 0.0
val Solar_Monat = if(Solarertrag_Gesamt.deltaSince(start_of_month) as Number != null) (Solarertrag_Gesamt.deltaSince(start_of_month) as Number).doubleValue() else 0.0
val Solar_Jahr = if(Solarertrag_Gesamt.deltaSince(start_of_year) as Number != null) (Solarertrag_Gesamt.deltaSince(start_of_year) as Number).doubleValue() else 0.0
val Euro_Heute = String::format("%.2f €",(Solar_Heute * Preis)) // Summe in Euro berechnen
val Euro_Woche = String::format("%.2f €",(Solar_Woche * Preis))
val Euro_Monat = String::format("%.2f €",(Solar_Monat * Preis))
val Euro_Jahr = String::format("%.2f €",(Solar_Jahr * Preis))
logInfo("Solarertrag", "Solarertrag heute: " + Solar_Heute.toString + " kWh / " + Euro_Heute)
logInfo("Solarertrag", "Solarertrag diese Woche: " + Solar_Woche.toString + " kWh / " + Euro_Woche)
logInfo("Solarertrag", "Solarertrag diesen Monat: " + Solar_Monat.toString + " kWh / " + Euro_Monat)
logInfo("Solarertrag", "Solarertrag dieses Jahr: " + Solar_Jahr.toString + " kWh / " + Euro_Jahr)
SolarHeute.postUpdate(Solar_Heute.toString + " kWh/" + Euro_Heute)
SolarWoche.postUpdate(Solar_Woche.toString + " kWh/" + Euro_Woche)
SolarMonat.postUpdate(Solar_Monat.toString + " kWh/" + Euro_Monat)
SolarJahr.postUpdate(Solar_Jahr.toString + " kWh/" + Euro_Jahr)
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz
Ja, aber nein, Du musst die Werte zwingend als Zahlen bereitstellen.
Du kannst die Zusammenfassung der Daten an der Stelle ohne Probleme auch in Grafana erledigen, aber die Werte müssen als diskrete Zahlenwerte vorliegen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Ja, aber nein, Du musst die Werte zwingend als Zahlen bereitstellen.
Hallo wie mache ich das ?
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz
Na, zunächst, indem Du Number Items verwendest, statt String Items. Für die Kosten musst Du ein separates Item verwenden.
Je nachdem, mit welchem Addon die Messwerte in openHAB ankommen, kann es sein, dass die Messwerte mit Einheit abgeliefert werden (also z.B. in kWh oder auch Ws oder halt irgendeiner anderen Einheit, in der Energie gemessen wird (kcal wäre eher unüblich, aber auch die kennt openHAB). In dem Fall musst Du den Itemtyp passend wählen (Number:Energy) und in den Metadaten des Items die passende Einheit wählen, in der die Werte persistiert werden sollen.
Die Persistence selbst kann keine Einheiten speichern, weshalb openHAB da etwas schummelt.
In Grafana kannst Du die Daten dann über die dort vorhandenen Funktionen abrufen, wie das geht, kommt auch darauf an, welches Backend Du verwendest. InfluxDB 1 und InfluxDB 2 unterscheiden sich fundamental voneinander, denn InfluxDB 2 verwendet Flux als Abfragesprache, während InfluxDB1 einen SQL-Dialekt spricht.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet