Wetterstation HB-UNI-SEN-WEA

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

TomMajor
Beiträge: 1341
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 103 Mal
Danksagung erhalten: 260 Mal
Kontaktdaten:

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von TomMajor » 16.02.2021, 11:33

ich hatte das Problem auch mal beim HB-UNI-Sensor1 und hatte es so gelöst

Code: Alles auswählen

$temperature = ($temperature &0x4000) ? $temperature - 0x8000 : $temperature;
https://github.com/TomMajor/SmartHome/b ... or1.pm#L53
ist aber so lange her dass ich es vergessen hatte. :roll:

Und ich glaube ich habe verstanden wie das Vorzeichen in HM reinkommt:
Das eigentliche Vorzeichen in Bit15 wird ja gelöscht und dieses Bit je nach Gerät für das lowBatt Flag genutzt.
Also "borgt" man sich das Vorzeichen aus Bit14 unter Ausnutzung der Eigenschaft einer Zweierkomplement Zahl, das für die unteren/kleinen negativen Zahlen die hohen Bits alle 1 sind.
https://de.wikipedia.org/wiki/Zweierkomplement
Das geht solange gut bis Bit14 in einer negative Zahl nicht mehr 1 wäre, dann würde das Vorzeichen für HM oder FHEM kaputt gehen.
Da dies erst bei
-16385 / 1011111111111111 passiert was mit 10-Skalierung -1638,5 °C entsprechen würde, ist alles im grünen Bereich da diese Temp. nicht vorkommen kann.
Viele Grüße,
Tom

stan23
Beiträge: 1407
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 318 Mal
Danksagung erhalten: 166 Mal
Kontaktdaten:

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von stan23 » 16.02.2021, 11:49

TomMajor hat geschrieben:
16.02.2021, 11:33
https://de.wikipedia.org/wiki/Zweierkomplement
Das geht solange gut bis Bit14 in einer negative Zahl nicht mehr 1 wäre, dann würde das Vorzeichen für HM oder FHEM kaputt gehen.
Da dies erst bei
-16385 / 1011111111111111 passiert was mit 10-Skalierung -1638,5 °C entsprechen würde, ist alles im grünen Bereich da diese Temp. nicht vorkommen kann.
Das Zweierkomplement ist genau die richtige Erklärung dazu :)

Und ja, wenn nur 15 Bit verwendet werden, geht der Messbereich eben nur von -1638,4 °C (0xC000) bis +1638,3 °C (0x3FFF).
In der FW der AskSinPP-Geräte ist das nicht extra behandelt und es wird einfach das MSB überschrieben, weil man davon ausgeht, dass solche Temperaturen nicht vorkommen.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

TomMajor
Beiträge: 1341
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 103 Mal
Danksagung erhalten: 260 Mal
Kontaktdaten:

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von TomMajor » 16.02.2021, 20:40

stan23 hat geschrieben:
16.02.2021, 11:49
TomMajor hat geschrieben:
16.02.2021, 11:33
https://de.wikipedia.org/wiki/Zweierkomplement
Das geht solange gut bis Bit14 in einer negative Zahl nicht mehr 1 wäre, dann würde das Vorzeichen für HM oder FHEM kaputt gehen.
Da dies erst bei
-16385 / 1011111111111111 passiert was mit 10-Skalierung -1638,5 °C entsprechen würde, ist alles im grünen Bereich da diese Temp. nicht vorkommen kann.
Das Zweierkomplement ist genau die richtige Erklärung dazu :)

Und ja, wenn nur 15 Bit verwendet werden, geht der Messbereich eben nur von -1638,4 °C (0xC000) bis +1638,3 °C (0x3FFF).
In der FW der AskSinPP-Geräte ist das nicht extra behandelt und es wird einfach das MSB überschrieben, weil man davon ausgeht, dass solche Temperaturen nicht vorkommen.
Hey Marco, genau, und man könnte es auch ab Sketch direkt als "int15_t" für die Temperatur betrachten und den Wert so behandeln. Die eq-3 Entwickler wissen das vermutlich, nur im HB Bereich steht da halt int16_t im Sketch was etwas täuscht über die spätere Behandlung beim Senden und in der Zentrale, aber wohl nicht anders zu machen.
Und für die Temperatur hier spielt es es aus den genannten Gründen nicht wirklich eine Rolle.
Viele Grüße,
Tom

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“