gemu2015 / Sonoff-Tasmota

Tasmota Fork TCS34725,PN532_i2,ccc1101 Moritz support,m5stack 4,7 epaper, hotplug drivers
GNU General Public License v3.0
24 stars 19 forks source link

Fehler beim Parsen der TL-Felder #6

Closed mruettgers closed 5 years ago

mruettgers commented 5 years ago

Ich hatte beim Versuch meinen Zähler (ED300L) auszulesen das Problem, dass einerseits die Einheit nicht zur Auflösung des Wertes passte und andererseits die Werte nicht mit der Anzeige des Zählers übereinstimmten. Das lag an der Kombination aus dem Bug, der im Commit aab056a7c174d36f02a3865c77d83a92556f28aa gefixt wurde und daran, dass erst nach dem Shiften der Bits gecastet wird. Je nach Länge des TL-Feld-Werts ist die Anzahl der Bits, die verschoben werden sollen dann zu groß für den Datentyp. An einer Stelle war zudem das Offset noch falsch, das habe ich auch korrigiert.

gemu2015 commented 5 years ago

danke für den commit. die bisherige implementation war sowieso viel zu umständlich. habe eine universelle neue programmiert. bitte mal drüber schauen und ausprobieren.

Am 08.03.2019 um 23:18 schrieb Michael Rüttgers <notifications@github.com mailto:notifications@github.com>:

Ich hatte beim Versuch meinen Zähler (ED300L) auszulesen das Problem, dass einerseits die Einheit nicht zur Auflösung des Wertes passte und andererseits die Werte nicht mit der Anzeige des Zählers übereinstimmten. Das lag an der Kombination aus dem Bug, der im Commit aab056a https://github.com/gemu2015/Sonoff-Tasmota/commit/aab056a7c174d36f02a3865c77d83a92556f28aa gefixt wurde und daran, dass erst nach dem Shiften der Bits gecastet wird. Je nach Länge des TL-Feld-Werts ist die Anzahl der Bits, die verschoben werden sollen dann zu groß für den Datentyp. An einer Stelle war zudem das Offset noch falsch, das habe ich auch korrigiert.

You can view, comment on, or merge this pull request online at:

https://github.com/gemu2015/Sonoff-Tasmota/pull/6 https://github.com/gemu2015/Sonoff-Tasmota/pull/6 Commit Summary

The type cast has to be done before shifting, otherwise the shift length could be bigger than the actual length of the type Merge branch 'Universal2' into bugfix/cast-issue-in-str-to-int-conversion File Changes

M sonoff/xsns_95_sml.ino https://github.com/gemu2015/Sonoff-Tasmota/pull/6/files#diff-0 (10) Patch Links:

https://github.com/gemu2015/Sonoff-Tasmota/pull/6.patch https://github.com/gemu2015/Sonoff-Tasmota/pull/6.patch https://github.com/gemu2015/Sonoff-Tasmota/pull/6.diff https://github.com/gemu2015/Sonoff-Tasmota/pull/6.diff — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gemu2015/Sonoff-Tasmota/pull/6, or mute the thread https://github.com/notifications/unsubscribe-auth/ALG4YwAEW3kS3UEv2GT7MU84aJ-jRif8ks5vUuGbgaJpZM4bmOha.

mruettgers commented 5 years ago

Alles klar. Ich habe das Thema jedoch nicht weiter verfolgt, da ich auf Grund von WiFi-Stabilitätsproblemen angefangen habe, den SML-Leser in Form eines virtuellen 1wire Slave-Devices zu implementieren um die Zählerdaten auf dem 1wire-Bus zur Verfügung zu stellen (https://github.com/mruettgers/SMLReader). Läuft soweit auch ganz gut, Doku folgt noch. Ich habe einen Teil Deiner Decode-Logik übernommen.