Seite 1 von 1
negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 4. Mai 2023 14:23
von Homer-S
Hallo,
ich habe es mittlerweile geschafft auf 3.4.3 umzustellen aber am meisten Probleme macht noch die Daten der PV Anlage.
Ich bekomme über das SMA Smartmeter Binding ab und zu negative oder sehr sehr hohe Werte.
Den Channels des SMA SM Things habe ich nun Items zugewiesen und versucht mittels JS Script die Werte abzufangen.
Die Transformation kann ich im Channel (vordefiniert vom Thing) nicht eintragen.
Leider bekomme ich immer eine Fehlermeldung:
Code: Alles auswählen
Could not transform state '22147.228515625' with function 'sma-kein-negativ.js' and format '%s'
Das ist der Inhalt des JS Scripts.
Kann ich das nur über eine Rule abfangen?
Code: Alles auswählen
(function(inputData) {
if(inputData < 0) return "0";
if(inputData > 90000) break;
return parseFloat(inputData) ;
})(input)
Danke
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 4. Mai 2023 22:48
von udo1toni
Grundsätzlich sollte das schon funktionieren.
Allerdings ist das auch nur Rumgedoktor...
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 5. Mai 2023 06:38
von Homer-S
udo1toni hat geschrieben: ↑4. Mai 2023 22:48
Grundsätzlich sollte das schon funktionieren.
Allerdings ist das auch nur Rumgedoktor...
Ich weiß, dass ich hier nur einen Workaround anstrebe, aber warum da negative oder wahnsinnig hohe Werte geliefert werden, weiß ich nicht.
Das war schon mit dem 2.5 Binding so, als ein Firmwareupdate von SMA auf den WR eingespielt wurde. Liegt sicher schon wieder 2 jahre zurück.
Ich hatte gehofft, dass im aktuellen Binding der fehler ausgemärzt ist.
Wie würdest du es machen?
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 5. Mai 2023 07:47
von udo1toni
Na ja, im Zweifel den Entwickler fragen. Es ist ja nicht zwingend so, dass alle Bindings weiterentwickelt wurden, nur weil sie jetzt unter openHAB3 laufen, die wurden lediglich gegen andere (neuere) Bibliotheken gebaut.
Und wenn das Problem seit einem Firmware Update des SMA auftritt, wäre auch SMA ein guter Ansprechpartner, denn das deutet ja erst mal auf ein Problem im Smartmeter hin.
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 5. Mai 2023 07:51
von Homer-S
Oder kann ich das einfach mit dem Symantic Property Wert für Minimum und Maximum setzen?
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 5. Mai 2023 07:55
von Homer-S
udo1toni hat geschrieben: ↑5. Mai 2023 07:47
Na ja, im Zweifel den Entwickler fragen. Es ist ja nicht zwingend so, dass alle Bindings weiterentwickelt wurden, nur weil sie jetzt unter openHAB3 laufen, die wurden lediglich gegen andere (neuere) Bibliotheken gebaut.
Und wenn das Problem seit einem Firmware Update des SMA auftritt, wäre auch SMA ein guter Ansprechpartner, denn das deutet ja erst mal auf ein Problem im Smartmeter hin.
Zu dem ersteren gibt/gab es einen Githubeintrag mit ganz viel Beiträgen ...
Bei SMA hab ich es versuch, telefonisch sogar. Lass es mich so ausdrücken, wenn ich nicht schon einen SMA WR und Homemanager hätte, ich würde zu einer anderen Firma wechseln ...
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 5. Mai 2023 10:38
von Homer-S
Homer-S hat geschrieben: ↑5. Mai 2023 07:51
Oder kann ich das einfach mit dem Symantic Property Wert für Minimum und Maximum setzen?
OK, das klappt nicht!
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 5. Mai 2023 22:09
von Homer-S
Im JS war ein Fehler drin, aber leider bekomm ich den gleichen Fehler noch in den Logs.
Ich hatte gehofft das so zu realisieren und nicht wieder wie bei OH2.5 rules zu "vergewaltigen" um die falschen Werte ab zu fangen.
Re: negative item Werte mit JS transformieren (SMA Smartmeter Binding)
Verfasst: 6. Mai 2023 07:37
von udo1toni
Na ja, was heißt vergewaltigen... Grundsätzlich ist die Verwendung von Rules für so etwas legitim.
Aber natürlich sollte das auch mit JavaScript funktionieren. Was mir am code auffällt, ist der break. Ich könnte mir vorstellen, dass openHAB nicht begeistert ist, wenn der Aufruf keinen gültigen Rückgabewert liefert. Auf den ersten Blick sehe ich sonst keinen Fehler, aber ich arbeite nicht oft mit JavaScript, das will also nichts heißen.