NEWS
Frage zum History Adapter (geänderte Werte)
-
Wie muss ich meinen Datenpunkt parametrieren damit nur die tatsächlich veränderte Werte aufgezeichnet werden.
Scheinbar ist es bei mir so wenn der Timestamp sich geändert hat wird der Wert auch gespeichert obwohl der Wert sich nicht geändert hat.
Somit ist die Funktion nicht richtig.
Oder sehe ich das falsch.Wenn das so ist dann muss ich die Funktion "zu Fuss" realisieren.
-
@franzda bitte mehr Informationen
was hast du denn überhaupt?https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
-
@homoran Hallo ; natürlich kann ich weitere Infos liefern.
on({ id: [].concat(['tankerkoenig.0.stations.0.e10.feed']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; console.error(('0 0 ' + String(('' + getState('tankerkoenig.0.stations.0.e10.feed').val)))); });
diese Script liefert folgende Einträge
javascript.0 23.10.2023 13:08 error script.js.common.iobroker1.Tankstelle.König.diffnur00: 0 0 1.849 0
javascript.0 23.10.2023 12:36 error script.js.common.iobroker1.Tankstelle.König.diffnur00: 0 0 1.839 0
javascript.0 23.10.2023 12:15 error script.js.common.iobroker1.Tankstelle.König.diffnur00: 0 0 1.799 0Hier die Werte in History mit --->> gekennzeichnete Werte werden von Skrikt nicht gemeldet (weil Wert sich nicht geändert hat)
14:13 1.82
14:02 1.84
13:08 1.84
--->>12:58 1.83
12:36 1.83
--->>12:25 1.79
12:15 1.79
12:04 1.8
11:42 1.8
11:32 1.81Bitte Fragen wenn weitere Infos benötigt werden.
-
@franzda???
Konfiguration?
Liste der geloggten Werte (vollständig, nichts abschneiden)?keine Nacherzählungen!
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1 -
@homoran Lass uns die Diskussion abkürzen
Die einzige Frage ist: wie ist die Abfrage im Adapter wo entschieden wird "Änderung ja oder nein".
Wird nur der Wert tatsächlich verglichen oder Bitvergleich für die Ganze Struktur also auch der ZeitstempelFür den Entwickler des Adapters ist das ein Aufwand von Minuten. Vermutlich muss er nicht einmal im Code nachschauen.
-
@franzda sagte in Frage zum History Adepter (geänderte Werte):
Lass uns die Diskussion abkürzen
richtig!
zeig einfach die beiden Screenshots -
@franzda sagte: wo entschieden wird "Änderung ja oder nein".
In den History-Einstellungen zum Datenpunkt: "Nur Änderungen aufzeichnen"
-
@paul53 Hallo Paul Danke für den gutgemeinten Rat.
Wie ich bereits beschrieben habe scheint die Änderungsüberwachung im History Adapter anders zu funktionieren wie im Skript.!
diese Skript liefert keine "Veränderung" aber im History wird ein Wert mit dem alten also unveränderten Wert gespeichert.
Da es um Werte von Typ Text geht kann an sich kein Rundungsfehler o.ä. sein. Deswegen fragte ich wie die "Veränderung" abgefragt wird.
Meine Vermutung ist das beim Vergleich noch ein Anteil mit geprüft wird und nicht nur der Wert.on({ id: [].concat(['tankerkoenig.0.stations.0.e10.short']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; console.error(('0 0 ' + String(('' + getState('tankerkoenig.0.stations.0.e10.short').val)))); });
-
@franzda sagte in Frage zum History Adepter (geänderte Werte):
aber im History wird ein Wert mit dem alten also unveränderten Wert gespeichert.
ist das verifiziert?
Warum zeigst du due dafür notwendigen Screenshots nicht???
-
@franzda sagte: Da es um Werte von Typ Text geht
Wozu historisiert man String-Werte? Auf die Idee bin ich noch nicht gekommen, kann also dazu nichts beitragen.
-
@paul53 Die Antwort ist sehr einfach: es geht um EURO Preise die als Text übertragen werden.
-
@franzda sagte: es geht um EURO Preise die als Text übertragen werden.
Ich würde sie in einem Alias in Zahlen wandeln und die Zahlen historisieren.
-
@paul53 sagte in Frage zum History Adepter (geänderte Werte):
Wozu historisiert man String-Werte? Auf die Idee bin ich noch nicht gekommen,
in Verbindung mit dem eventlist Widget ist das durchaus sinnvoll
-
-
@franzda Danke!
Konfiguration sieht gut aus, in den Listen fehlt rechts noch was.
das wird gerne übersehenwenn da system.... steht ist das ein unbewerteter Rohwert, auf den die Bedingungen noch nicht angewandt wurden und nicht in der history abgespeichert ist
-
@homoran Danke für die Beiträge aber irgendwie ist noch der Wurm drin!
wenn ich im Bild (View) die Werte anzeige bekomme ich die nicht geänderte Werte auch angezeigt
Und bei mir ist die Spalte wo System stehen könnte/ sollte leer. Das Bild ist original Hardcopy.
-
@franzda sagte in Frage zum History Adepter (geänderte Werte):
bei mir ist die Spalte wo System stehen könnte/ sollte leer.
dann musst du in der Konfiguration der Instanz speichern Quelle aktivieren.
@franzda sagte in Frage zum History Adepter (geänderte Werte):
aber irgendwie ist noch der Wurm drin!
dann mach mal in der Konfig der Datenpunkte den Haken bei optimierte protokollierung....deaktivieren
-
@homoran Ich gebe auf. An sich habe ich bis jetzt nie kapituliert.
So viel Zeit ohne einen Millimeter Fortschritt ...
Bin sicher der/die Entwickler würden schnell die Erklärung für meinen Fall finden.
Vermutlich liefert Tankerkönig Daten die nicht korrekt verarbeitet werden. Die Diagnosedaten sind so Umfangreich dass die Inhalte nur für Entwickler deutbar sind.Ohne code bzw. Infos über die Schnittstelle ist die debug Info nicht nutzbar.
-
@franzda sagte in Frage zum History Adepter (geänderte Werte):
Vermutlich liefert Tankerkönig Daten die nicht korrekt verarbeitet werden
Hast du dort Nullen vor Neuladen o.ä. aktiv?
@homoran sagte in Frage zum History Adepter (geänderte Werte):
mach mal in der Konfig der Datenpunkte den Haken bei optimierte protokollierung....deaktivieren
das hat nicht geholfen?
@franzda sagte in Frage zum History Adepter (geänderte Werte):
Die Diagnosedaten sind so Umfangreich
ich hab noch keine gesehen.
@franzda sagte in Frage zum History Adepter (geänderte Werte):
Ohne code bzw. Infos über die Schnittstelle ist die debug Info nicht nutzbar.
code liegt offen auf github
-
@homoran
ich werde den Code anschauen. (weil ich echt neugierig bin zu verstehen was los ist)
"Zu Fuss! mit der Überwachung mit dem Skript war ich in weniger als 15 Minuten fertig.
Ich nutze aber soweit es geht vorzugsweise die Systemfunktionen.