RRd4J speichert einstellige Zahlen mit .0

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Sascha.K
Beiträge: 35
Registriert: 2. Feb 2019 16:58
Answers: 1

RRd4J speichert einstellige Zahlen mit .0

Beitrag von Sascha.K »

Hallo zusammen,

ich habe mehrere Temperaturwerte und Items, die ich mittels RRD4j-Service speichere. Die letzten Werte der Items werden bei Neustart wiedereingespielt.

Die Temperaturwerte werden normal gespeichert und können mit meinen Charts dargestellt werden.

Leider werden die Zahlen für die Items ( eine Zahl für ein Selection-Item ) nicht korrekt mit z.B. "4" sondern mit "4.0" gespeichert. Dadurch funktionieren alle abhängigen Regeln etc. natürlich nicht. Wähle ich über die Basic-UI den entsprechenden Eintrag, ist im Item die Zahl wieder korrekt mit "4" hinterlegt.

Es macht keinen Unterschied, ob ich "strategy = everyMinute" oder "strategy = everyChange" oder "strategy = everyUpdate" eintrage.

Mehrere Service-Neustarts und Reboots haben leider nichts gebracht.

Hat jemand vielleicht schon mal ein ähnliches Problem ..?

Vielen Dank im voraus ... Sascha...


UPDATE:

Habe gerade alle rrd.Dateien gelöscht. Leider ohne Besserung. Im Gegenteil: jetzt werden nur noch die Temperaturen gespeichert.

Hier meine rr4dj.persist:

Code: Alles auswählen

Strategies {
     everyMinute : "0 * * * * ?"
     everyHour : "0 0 * * * ?"
     everyDay : "0 0 0 * * ?"
     default = everyChange
}

Items
     {
     Langerwehe_Aktuelle_Temperatur     : strategy = everyMinute
     Sensor_CPUTemp                     : strategy = everyMinute
     EG_WZ_Lichtsensor                  : strategy = everyMinute
     EG_WZ_Multisensor_Temperatur       : strategy = everyMinute
     OG_GZ_Multisensor_Temperatur       : strategy = everyMinute
     OG_SZ_Multisensor_Temperatur       : strategy = everyMinute

     EG_WZ_Leuchte_Fernseher_Automatik_SP_Ein_WT  : strategy = everyChange, everyUpdate, restoreOnStartup

     gPersistence*                      : strategy = everyChange, restoreOnStartup
     

     }
und ein Beispiel eines Selection-Items aus meiner Sitemap:

Code: Alles auswählen

Selection item=EG_WZ_Leuchte_Fernseher_Automatik_SP_Ein_WT mappings=[1="Aus", 2="Sonnenaufgang", 3="Sonnenuntergang", 4="Sonnenuntergang mit Zufallszeit", 5="Lichtmessung", 6="Feste Zeit"]
Der Wert des Items muss man doch auch ablegen können... ist ja als Zahl hinterlegt.

ich weiss wirklich nicht mehr weiter...
von PeterA » 13. Mai 2020 20:55
Hi,
die gleiche Problematik habe ich auch.
Vermutlich hilft nur eine andere Persistence Datenbank zu verwenden.
Siehe auch den Post im Verschattungs Thread:
viewtopic.php?p=10460#p10460

Und auch hier:

https://community.openhab.org/t/after-u ... int/62122
Gehe zur vollständigen Antwort

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: RRd4J speichert Zahlen mit .0

Beitrag von PeterA »

Hi,
die gleiche Problematik habe ich auch.
Vermutlich hilft nur eine andere Persistence Datenbank zu verwenden.
Siehe auch den Post im Verschattungs Thread:
viewtopic.php?p=10460#p10460

Und auch hier:

https://community.openhab.org/t/after-u ... int/62122
- OpenHab 2.4
#PWRUP

Sascha.K
Beiträge: 35
Registriert: 2. Feb 2019 16:58
Answers: 1

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von Sascha.K »

Hallo Peter,

Danke für die schnelle Antwort. Ist schon merkwürdig, das anscheinend nicht jeder Probleme mit der RRD4J-Datenbank beim speichern von Items hat.

Leider kann man mit MapDB ja keine Charts anzeigen lassen, weil ja nur ein Wert gespeichert wird. Hast Du dafür eine Lösung gefunden ..?

Mfg

Sascha

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von PeterA »

Nein habe keine Lösung.
Wenn (und das ist hier selten) OpenHab neugestartet werden sollte ändere ich kurz die Sollwerte an den entsprechenden Stellen.
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von udo1toni »

Doch, dieses Problem ist bekannt. Du kannst versuchen, ob das mapping mit der Angabe von 1.0 statt 1 (und entsprechend für die anderen Werte) funktioniert. Zumindest im Zusammenspiel mit der MAP Transformation hilft das. In Rules kann man sich damit behelfen, den Wert vorher nach Integer zu wandeln.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

bastler
Beiträge: 121
Registriert: 7. Jan 2020 19:36
Answers: 2

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von bastler »

ich hatte dieses problem auch, hab mir dadurch beholfen dass ich eine rule erstellt hab die immer nur beim systemstart aktiviert wird:

Code: Alles auswählen

 var systemStarted = new Boolean(false)
 
 rule "Systemstart-initialisierung"
    when
        System started
    then
        if (systemStarted) return;
        systemStarted = true

        createTimer(now.plusMinutes(15), [|
                iViEWoK_Abzug_MotorStufeSoll.postUpdate(if (iViEWoK_Abzug_MotorStufeIst.state == NULL) 0 else (iViEWoK_Abzug_MotorStufeIst.state as Number).intValue)
        ])
    end
die regel läuft bei mir 15 minuten nach systemstart ab, um sicher zu sein dass sonst alles fertig geladen ist.

mein item wird wenn es NULL ist (also z.b. wenn es nach neuanlage noch nie einen wert hatte) mit einem vorgabewert (hier "0") belegt, und sonst wird der wert mit dem gleichen wert als integer überschrieben (also ".0" entfällt dann). den ersten teil mit dem vorgabewert kann man natürlich entfallen lassen wenn man das nicht braucht/möchte.

so kann man sich einfach alle items "korrigieren" lassen

Sascha.K
Beiträge: 35
Registriert: 2. Feb 2019 16:58
Answers: 1

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von Sascha.K »

Habe MapDB installiert ... und die Item-Werte werden gespeichert. :D

Meine Charts lasse ich trotzdem über die parallel laufende RRD4J-Datenbank anzeigen und das funktioniert wie gewohnt.


Danke für die schnelle Hilfe und allen noch ein schönes Wochenende...

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von PeterA »

Sascha.K hat geschrieben: 14. Mai 2020 20:33 Habe MapDB installiert ... und die Item-Werte werden gespeichert. :D

Meine Charts lasse ich trotzdem über die parallel laufende RRD4J-Datenbank anzeigen und das funktioniert wie gewohnt.


Danke für die schnelle Hilfe und allen noch ein schönes Wochenende...
Hi Sascha,

schon ein bissle her aber könntest Du mal bitte Deine MapDB config posten ?
So wie Du es gelöst hast habe ich das auch vor.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von PeterA »

Noch mal genauer meine Frage:

Bisher nutze ich nur rrd4j als Persistence und möchte nun die betreffenden Items in der MapDB persistieren.
Wo wird denn das konfiguriert ? So wie bei rrd4j in der .persist Datei ?
- OpenHab 2.4
#PWRUP

Benutzeravatar
peter-pan
Beiträge: 2768
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: RRd4J speichert einstellige Zahlen mit .0

Beitrag von peter-pan »

PeterA hat geschrieben: 17. Okt 2020 13:09 So wie bei rrd4j in der .persist Datei ?
..genau. Aber MapDB speichert nur den aktuellen(letzten) Wert !!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten