Bei mir 5min.
Ankündigung
Einklappen
Keine Ankündigung bisher.
OpenKNX Applikation >>Wetterstation WN90LP<<
Einklappen
X
-
Gerüst am Haus kommt bald weg, also muss noch eine Wetterstation ans Dach. Da bleibt ja nur die Ecowitt mit OpenKNX Gateway!Zitat von Ing-Dom Beitrag anzeigenja werd ich machen, dafür hab ich den Sensor ja bestellt
So, unter 2° geht wohl noch immer die Heizung an und es kommt zu Schwankungen.
Die Amplitude ist jedoch geringer und der Mittelwert scheint zu passen.
Wenn ich die jetzt bestelle, sollte ich noch einen dieser extra Sensoren für $19.99 mitbestellen oder hat sich das als überflüssig erwiesen?
Kommentar
-
Das Gerät hat unser OpenKNX-Logikmodul mit 30 Kanälen, jeder Kanal kann eine Hysterese auswerten.Zitat von mxcxpx Beitrag anzeigenwichtig wären 4 oder 5 einstellbare Windwächter Alarme
Unser Jalousie-Modul ist nicht in diesem Gerät integriert, kannst Du aber auf einem weiteren REG1 laufen lassen. Das kann auch Fassadenweise verschatten.Zitat von mxcxpx Beitrag anzeigengibt es eine Fassadensteuerung ?
Nein.Zitat von mxcxpx Beitrag anzeigenGPS für Uhrzeit/Datum und Standort hat die Hardware nicht oder?
Gruß, Waldemar
Kommentar
-
wäre jemand so nett und könnte mir erklären wie das geht. dankeZitat von mumpf Beitrag anzeigenwichtig wären 4 oder 5 einstellbare Windwächter Alarme
Das Gerät hat unser OpenKNX-Logikmodul mit 30 Kanälen, jeder Kanal kann eine Hysterese auswerten.
Gruß, Waldemar
Kommentar
-
Ich habe mal bei den Alltagsproblemen und deren Lösungen mit dem OpenKNX-Logikmodul ein passendes Beispiel hinzugefügt, weil es dort noch nichts mit Hysterese gab.Zitat von mxcxpx Beitrag anzeigenwäre jemand so nett und könnte mir erklären wie das geht. danke
Gruß, Waldemar
- Likes 1
Kommentar
-
Betreff: Windrichtung: Werte 256–359° werden auf 0–103° abgebildet (uint8_t in ReadWindDir/GetWindDir)
Hallo Ing-Dom, hallo zusammen,
erst mal danke für die Applikation. Bei uns läuft die WN90LP am REG1 RS485 Gateway mit der App 0.4.0 seit gestern sauber.
Beim Durchsehen des Quellcodes ist mir bei der Windrichtung etwas aufgefallen. Ich glaube, dass Richtungen über 255° falsch auf den Bus kommen.
Was die Station liefert: Register 0x016B, 0–359° (ungültig = 0xFFFF), laut Ecowitt-Modbus-Doku.
Was die Firmware damit macht (Tag v0.4.0):- HWSensorchannel.cpp, Zeile 322–325, in ReadWindDir():
return 0xff;
uint8_t rawdata = data;
data ist uint16_t mit 0–359. Beim Zuweisen auf uint8_t werden 256–359 modulo 256 abgeschnitten, also zu 0–103.- Der Wert bleibt auf dem ganzen Weg 8 Bit:
- HWSensorchannel.h, Zeile 63/78/93/104: m_winddir, ReadWindDir(), GetWindDir(), SetWindDir() als uint8_t
- Sensorchannel.cpp, Zeile 110: uint8_t winddir = ...
- Zeile 790: loop_winddir(uint8_t winddir)
- 0xFF dient als Kennung für „ungültig“ (Zeile 323, Sensorchannel.cpp Zeile 792). Damit wird ein echter Messwert von 255° ebenfalls verworfen.
- Zeile 818/825: KoW90_SensorWindDir_.value((uint8_t)(winddir + ParamW90_SensorWindDirAlign_), WindDirKODPT). Auch die Kalibrierung wird in 8 Bit addiert. Sie läuft damit modulo 256 statt modulo 360. In der knxprod ist der Parameter ein ValueDpt5 (0–255), eine negative Korrektur ist also nicht möglich.
Die Umrechnung auf den Bus selbst ist in Ordnung: Der KNX-Stack nimmt bei DPT 5.003 Grad von 0–360 entgegen und skaliert auf 0–255 (dptconvert.cpp, valueToBusValueUnsigned8, case 3). Das Problem liegt also nur in der internen 8-Bit-Variablen davor.
Folge: Wind aus etwa WSW über W bis N (256–359°) erscheint als 0–103°, also scheinbar aus N bis O. Bei uns in Norddeutschland mit vorherrschendem Westwind wäre das ziemlich häufig. Nachträglich herausrechnen lässt sich das nicht: 44° kann 44° oder 300° gewesen sein.
Soweit ich sehe, ist das auch in den neueren Ständen (main, v1.1.0-Dev) noch so.
Vorschlag:- Windrichtung durchgehend als uint16_t führen (ReadWindDir, GetWindDir, SetWindDir, m_winddir, loop_winddir, m_winddir_last_send_value), mit 0xFFFF als Kennung für „ungültig“.
- Kalibrierung modulo 360 rechnen, z. B. (winddir + align) % 360. Optional den Parameter auf 0–359 erweitern oder vorzeichenbehaftet machen (z. B. −180…+180).
- Optional: Beim „Senden bei Änderung“ den Sprung über Nord berücksichtigen. 359° → 2° ist eine Änderung um 3° und nicht um 357°.
Nachgeprüft habe ich das bisher nur im Code. Eine Beobachtung bei Westwind reiche ich nach. Erwartet wird dann: nie Werte über 254°, dafür auffällig viele zwischen 0 und 103°.
Viele Grüße
Bastian
In Zusammenarbeit mit Cloud
Kommentar
-
Aus Beobachtersicht kann ich das bestätigen. Meine Wetterstation ist an der Südostecke des Hauses angebracht, weshalb ich immer davon aus ging, dass dies durch den Windschatten verursacht wird.Zitat von Rangrous Beitrag anzeigenNachgeprüft habe ich das bisher nur im Code. Eine Beobachtung bei Westwind reiche ich nach. Erwartet wird dann: nie Werte über 254°, dafür auffällig viele zwischen 0 und 103°.
grafik.pngAngehängte Dateien
Kommentar
-
kann ich so bestätigen. Wenn du mir dazu einen github issue erstellst, würde mir das helfen es nicht zu vergessenZitat von Rangrous Beitrag anzeigenBetreff: Windrichtung: Werte 256–359° werden auf 0–103° abgebildet (uint8_t in ReadWindDir/GetWindDir)
Kommentar


Kommentar