npeter / ioBroker.apsystems-ecu

Integrate APSystems inverters via ECU-R
MIT License
17 stars 4 forks source link

Signal Level bitte überprüfen. #12

Closed Menne01 closed 11 months ago

Menne01 commented 1 year ago

Hallo, der Signal Level wir irgendwie komisch angezeigt. Normal sind 0 - 100% , wie z.B. in Home Assistant, oder -db, je kleiner um so besser. -47 db sind um die 100%. -80 ganz schlecht. Hier werden die Werte 3 Stellig angezeigt und je höher um so besser. Wo sind hier die Anfangs und Endwerte . Kann man das anders berechnen? Gegebenfalls mit einem Script. Aber dazu brauch ich die Anfangs und Endwerte. Jetzt wird mir 245 angezeigt , direkt ca. 1 m vom WR entfernt. Vom Office sind es ca. 5 m mit Wänden dazwischen. Da waren es 192. Das sind doch keine dbm !?

Grüße Dirk

npeter commented 1 year ago

SignalLevel wird vom Adapter über den Service GetInverterSignalLevel ermittelt. Der Adapter zeigt die Werte so an, wie er sie vom Inverter erhält, ohne weitere Umrechnung. SignalLevel hat die Länge ein Byte. Das Byte wird zur Zeit vom Adapter als Hexadezimalwert aufgefasst und entsprechend in die Dezimalzahlen 0,..,255 dekodiert.

Wenn man hier allerdings eine Zweierkomplement Kodierung zugrunde legen würde kämen Dezimalzahlen -128,...,127 heraus. damit ergäben sich folgende Werte

245 -> -11 192 -> -64 216 -> -40 (216 meldet mein Inverter; ca 5m durchs Fenster))

Diese Werte könnte man tatsächlich als sinnvolle dBm Werte auffassen.

Menne01 commented 1 year ago

Hallo npeter, erstmal vielen Dank für die ausführliche Erklärung. Würdest du den code auf rssi und den -Werten abändern? Falls nicht, wäre es Nett, wenn du mir die Umrechnungsformel bereit stellen würdest? In meinen Thermostaten und auch in sämtlichen Shelly, Tasmota und ESPEasy Geräten....stehen rssi -Werte dBm. Es macht sich auch so in der VIS besser.....

Viele Grüße Dirk

npeter commented 1 year ago

Das Objekt möchte ich eigentlich nicht umbenennen, da damit der Bezug zum Protokoll verloren geht. Die Darstellung in dBm werde ich bei der nächsten Version berücksichtige. Gibt allerdings zur Zeit noch keine Planung. Die Umrechnung ist einfach: signalLevel - 256 = rssi / [dBm]

Menne01 commented 1 year ago

Ich Danke dir, habs erstmal via script erledigt. grafik

Viele Grüße

btw...ich bin inzwischen auf die ECU-R umgestiegen.....die habe ich für einen bezahlbaren Preis erworben.

npeter commented 11 months ago

Solved with V0.2.10

goeran03 commented 11 months ago

Hallo

Mit der Version 0.2.10 sind auch bei mir die Energielisten ok, danke.

Aber ich bekomme jetzt regelmäßig folgenden Fehler:

2023-10-10 15:27:03.557 - warn: apsystems-ecu.0 (9896) State "apsystems-ecu.0.ds3_702000051997.rssi" has no existing object, this might lead to an error in future versions

2023-10-10 15:27:03.558 - warn: apsystems-ecu.0 (9896) State "apsystems-ecu.0.ds3_702000032473.rssi" has no existing object, this might lead to an error in future versions

Irgendeine Idee? Viele Grüße

goeran03 commented 11 months ago

Ok Ich habe ein Objekt rssi manuell hinzugefügt. damit wird das offensichtlich auch sinnvoll befüllt...