NEWS
[Eigener Adapter] Alten Wert aus State auslesen
-
Hi zusammen,
hab mich mal an einen eigenen Adapter gemacht. Jetzt habe ich eine frage zur onStateChange Funktion.
Wenn ich mir den State ausgeben lasse, kommen ein paar Werte raus. Nur leider kein "oldValue" wie es z.B. bei den Javascript's funktioniert.Könnt ihr mir sagen, ob das überhaupt geht und wenn ja wie?
Hintergrund ist, ich möchte einen Wert editieren und dann die Differenz zwischen altem und neuem Wert ausrechnen.
Danke und Gruß
-
@scripz Kannst du vielleicht einen Teil oder Alles vom Adapter zeigen, damit man sich ein wenig vorstellen, wie Du da programmiert hast?
-
@MCU
Hey,viel Programmiert hab ich in der Hinsicht dann noch nicht. Template erstellt und in der onStateChange Funktion das hier:
onStateChange(id, state) { if (state) { // The state was changed if(id.includes(".fuel.carKilometres")){ this.log.info(JSON.stringify(state)); **if(*oldval* < state.val){ //Mache Sachen }** } } else { // The state was deleted this.log.info(`state ${id} deleted`); } }
Im endeffekt suche ich etwas um oldval zuzuweisen, also den alten Wert vom State zu vergleichen
-
@scripz Also bei Zefau sieht es anders aus:
https://github.com/Zefau/ioBroker.jarvis/blob/master/jarvis.js
Zeile 171
adapter.on('stateChange', function(id, state)
-
Konnte diese Frage jemals geklärt werden?
Der Unterschied oben ist ja lediglich, dass der eine Adapter als ES6 Klasse entwickelt wurde und der andere nicht. Die Grundfrage, woher man korrekterweise den vorigen Wert bekommt, um Logiken analog zu den Möglichkeiten im JavaScript Adapter umzusetzen, stellt sich (mir) nach wie vor.
Kann da jemand helfen?
-
Never mind. Ich schätze jeder Adapter muss seine eigene Historie aller Objekte pflegen