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: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 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

Benutzeravatar
stan23
Beiträge: 2040
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 585 Mal
Danksagung erhalten: 336 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: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 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

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von fanavity » 03.03.2021, 20:46

Ich habe heute folgenden Sensor bekommen:

https://www.ebay.de/itm/AS5600-Non-Magn ... 4398872484

Leider erhalte ich im Monitor immer folgenden Fehler:

Code: Alles auswählen

AskSin++ v5.0.0 (Mar  3 2021 19:50:51)
MAX44009 Sensor Error 2
BME280 sensor OK
AS5600 FAILURE.
Address Space: 32 - 86
CC init1
CC Version: 04
 - ready
Config Freq: 0x2165CA
* Config Changed       : List0
* SENDEINTERVALL       : 10
* Config changed       : List1
WINDDIR angle  : 0
BME280:
-T    : 235
-P    : 10053
-P(NN): 10239
-H    : 45
-DP   : 110
<- 1A 01 A0 70 F1D002 4F6DA4 00 EB 27 FF 2D 00 00 00 00 00 00 00 00 00 00 00 00  - 3586
waitAck: 00
<- 1A 01 A0 70 F1D002 4F6DA4 00 EB 27 FF 2D 00 00 00 00 00 00 00 00 00 00 00 00  - 4235
-> 0A 01 80 02 4F6DA4 F1D002 00  - 4349
waitAck: 01
ignore 0F 96 86 10 613B66 000000 0A A0 D3 0B 0A 00  - 10702
WINDDIR angle  : 0
BME280:
-T    : 235
-P    : 10053
-P(NN): 10239
-H    : 44
-DP   : 108
<- 1A 02 84 70 F1D002 000000 00 EB 27 FF 2C 00 00 00 00 00 00 00 00 00 00 00 00  - 14395
Der I2C Scanner sagt folgendes

Code: Alles auswählen

I2C scanner. Scanning ...
Found address: 54 (0x36)
Done.
Found 1 device(s).
Demnach findet er den Sensor ohne Probleme. Angeschlossen habe ich gerade nur den AS5600 per +,-,SCL,SDA
Laut Sens_As5600.h lautet die Adresse auch 0x36

Hat jemand eine Idee woran das noch liegen könnte? Im WEA Sketch habe ich

Code: Alles auswählen

#define WINDDIRECTION_PIN                    A2    // Pin, an dem der Windrichtungsanzeiger (RESISTORS oder PULSE) angeschlossen ist
//#define WINDDIRECTION_USE_RESISTORS
//#define WINDDIRECTION_USE_PULSE

#define WINDDIRECTION_USE_AS5600
//#define WINDDIRECTION_USE_PCF8574

//#define WINDDIRECTION_USE_VENTUSW132
//#define VENTUSW132_PIN_N                     A0    // Pins für den Anschluss der
//#define VENTUSW132_PIN_O                     A1    // 4 Photodioden
//#define VENTUSW132_PIN_S                     A2    // des Ventus W132
//#define VENTUSW132_PIN_W                     A6    // Ersatz-Windmessers
Da der Platz zum kompilieren nicht ausreichte habe ich die Methode für den AS3935 rausgeschmissen. Somit komme ich nun au 97%

In der Sens_AS5600.h wird im Init auf Status 32 geprüft. Bei mir kommt allerdings status 16an. Habe mir den Wert mal ausgeben lassen.

Code: Alles auswählen

  void init () {
    Wire.begin();

    uint8_t status = _getReg(STATUSADDRESS) & 0b00111000;
    if (status == 32) {
      _present=true;
      DPRINTLN(F("AS5600 OK."));
    } else {
      DPRINTLN(F("AS5600 FAILURE."));
	  DPRINTLN(status);
    }
  }
Wenn ich aus der 32 eine 16 mache wird er Initialisiert und zeigt mir mit einem Magneten auch Werte an. Woran kann das liegen? Ist das so ok?

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von jp112sdl » 03.03.2021, 20:54

Hi,
der AS5600 wird nur korrekt eingebunden, wenn der Magnet korrekt positioniert ist (Status 32 (oder 0x20)).
https://github.com/jp112sdl/HB-UNI-Sen- ... 5600.h#L90

Es gibt da noch andere Fehler-Stati

Code: Alles auswählen

      //0x08 = no Magnet detected, magnet too strong, AGC minimum gain overflow
      //0x10 = no Magnet detected, magnet too weak,  AGC maximum gain overflow
      //0x28 = Magnet detected, magnet too strong
      //0x30 = Magnet detected, magnet too weak
      //0x38 = no sensor
      

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von fanavity » 03.03.2021, 21:11

Danke, das war das Problem!

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von fanavity » 04.03.2021, 20:47

So, Habe den Stator nun angepasst und gedruckt. Einen kleinen Magneten hochkant auf die Welle geklebt und alles verbaut. Klappt auch soweit, allerdings stimmen die Himmelsrichtungen so gar nicht. Beim WINDDIRECTION_USE_AS5600 wird das Array ja nur mit 0 initialisiert. Habe ich dann den Magneten nicht korrekt positioniert oder kann ich das irgendwo einstellen?

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von jp112sdl » 04.03.2021, 20:59

fanavity hat geschrieben:
04.03.2021, 20:47
Klappt auch soweit, allerdings stimmen die Himmelsrichtungen so gar nicht.
Was meinst du mit "so gar nicht" ?
fanavity hat geschrieben:
04.03.2021, 20:47
kann ich das irgendwo einstellen?
Nein, einstellen kann man da nichts.

Es wird der absolute Winkel-Wert gemessen.
https://github.com/jp112sdl/HB-UNI-Sen- ... #L100-L101
und der Winkel sollte auch seriell im Log auftauchen
https://github.com/jp112sdl/HB-UNI-Sen- ... A.ino#L579

Soweit ich weiß, hat "rih" bereits einen Windrichtungsmesser mit dem AS5600 erfolgreich aufgebaut.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

HMSteve
Beiträge: 539
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 13 Mal
Danksagung erhalten: 95 Mal

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von HMSteve » 04.03.2021, 21:10

Ich habe auch ein Projekt mit dem AS5600 vor und bisher folgenden Gedanken (analog Vorgehen mit dem Original-HM-Sensor): Stromlos Windfahne nach Norden ausrichten, dann Versorgungsspannung anlegen, inital den absoluten Winkel auslesen und im EEPROM speichern und anschliessend im Betrieb den gemessenen absoluten Winkel immer relativ zu dem fuer Norden gespeicherten auswerten. Umsetzung steht aus...

Viele Gruesse,
Stephan

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Wetterstation HB-UNI-SEN-WEA

Beitrag von jp112sdl » 04.03.2021, 21:29

HMSteve hat geschrieben:
04.03.2021, 21:10
Stromlos Windfahne nach Norden ausrichten, dann Versorgungsspannung anlegen, inital den absoluten Winkel auslesen und im EEPROM speichern und anschliessend im Betrieb den gemessenen absoluten Winkel immer relativ zu dem fuer Norden gespeicherten auswerten.
Jap. Auch eine gute Möglichkeit.

Wenn ich den AS5600 irgendwann mal selbst bei der Wetterstation einsetze, werde ich da bestimmt auch noch mal was dran machen.

Ansonsten freue ich mich bis dahin natürlich auch über PullRequests :)

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

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