ioBroker / ioBroker.rflink

Support of RFLink
MIT License
11 stars 10 forks source link

Negative Temperaturen #17

Closed forelleblau closed 4 years ago

forelleblau commented 5 years ago

Nutze RFLink mit einer IROX (Cresta) Wetterstation. Funktionierte bisher soweit sehr gut - danke. Seit es draussen manchmal kalt ist, werden die Temperaturen nicht richtig dargestellt. Gemäss Protokollrefrenz http://www.rflink.nl/blog2/protref werden negative Temperaturen besonders dargestellt: TEMP=9999 => Temperature celcius (hexadecimal), high bit contains negative sign, needs division by 10 (0xC0 = 192 decimal = 19.2 degrees) => (example negative temperature value: 0x80DC, high bit indicates negative temperature 0xDC=220 decimal the client side needs to divide by 10 to get -22.0

Wenn ich den empfangenen raw-rx-data wert für die Temperatur nehme, das vorangestellte "80" lösche erhalte ich den richtigen Temperaturwert (als Positivwert).

GermanBluefox commented 5 years ago

Das ist strange, weil genau das was du schreibst wird auch gemacht: https://github.com/ioBroker/ioBroker.rflink/blob/master/admin/parse.js#L25

forelleblau commented 5 years ago

Der Fehler tritt auch nicht bei TEMP sondern bei WINCHL und WINTMP auf, welches auch Temperaturwerte sind.

padrino-x commented 4 years ago

Ich (bzw. die Nachbarn ;-)) haben hier ein Gerät, dass als "InoValley_SM200" erkannt wird. Das macht auch Probleme mit negativen Werten, evtl. wird hier ähnlich "gerechnet"?

Hier mal meine Erkenntnisse, die ich schon in anderen Foren gepostet habe - vielleicht passt es ja hier. =)

You can calculate the correct value from the given.

Here it starts with 83FF for -0.1°C. Ignoring the "8" leaves 3ff hex, or 1023 dec. RFlink decodes it to -102.3°C (= rflink_tmp). So the correct temperatur to use is

rflink_tmp * (-1) - 102.4

BTW, the values are

dec hex 0.2 0002 0.1 0001 0.0 0000 -0.1 83FF -0.2 83FE

forelleblau commented 4 years ago

Danke für den Hinweis. Das oben beschriebene Problem (Temperaturkorrektur wurde nicht bei allen Temperaturwerten angewendet) wurde vor längerem gelöst. Darum schliesse ich hier.

padrino-x commented 2 years ago

Hm, wo wurde das Problem denn gelöst? Im rflink Adapter von ioBroker ist es doch immer noch vorhanden? Also, zumindest hier. =)

forelleblau commented 2 years ago

Hallo padrino-x

Der bei mir aufgetretene Fehler bei den Temperaturwerten wurde damit: https://github.com/ioBroker/ioBroker.rflink/pull/18 korrigiert. Kann sein, dass das erst in die github-Version eigeflossen ist. Es kann auch sein, dass dein Gerät andere Temperaturwerte benutzt als TEMP, WINTEM und WINCHL, dann müsste da die Korrektur analog gemacht werden.

Grüsse forelleblau