WS90 - GW1100 - WEEWX - und alles neu.

wenn es um andere Software geht
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

Moin liebes Forum aus dem hohen Norden.

Seit einigen Jahren habe ich einen KS300 Wettersensor, dessen Daten ich auf Openhab gesammelt habe. Nachdem die Kommunikation mit einem Cuno immerwieder ausgefallen war, habe ich die Wetterstation "umgebaut", die Hauptplatine durch einen ESP ersetzt und mir die Sensoren auf ESPEasy zusammengetüftelt und per MQTT weitergereicht. Der Bosch BS680 für Temp,Hum,Pressure hat leider nicht lange gehalten und so dümpelte das ganze als Regen und Windsensor vor sich hin.

Vor ein paar Tagen bin ich über den Ecowitt WS90 gestolpert und der gefällt mir richtig gut, zudem viel in Verbindung mit Homeassistant zu finden ist. Daher habe ich diesen mit einem Bodenfeuchtesensor und einem GW1100 Gateway gekauft und heute in Betrieb genommen.

Heute bin ich über WEEWX gefallen - und das ist ja richtig geil. Endlich kann ich die Wetterstation schick machen und vom Smarthome trennen - die Werte dort aber trotzdem anzeigen, zumindest die Wichtigsten und parallel die Daten unabhängig im Detail auswerten und archvieren.

Den GW1000 Standardtreiber habe ich auch zum laufen bekommen - aber da fehlt ja die Hälfte und nun bin ich hier gelandet. Die Githubseite überfordert mich ein wenig, weil ich nicht genau verstehe, was ich machen muss, um eine so tolle Seite mit allen Daten von meinem WS90 zu bekommen. interceptor Treiber oder GW1000 Treiber, welche Anpassungen brauche ich. Was ist mit den erweiterten Datenbankschematas? Die Datenbank ist nicht so das Thema - die kann auch neu geschrieben werden, die läuft er erst ein paar Minuten.

Linux-Neuling bin ich nicht. WeeWX habe ich in einem LXC Container unter Proxmox installiert. DIe Site würde ich ggf. sogar über einen Webproxy rauslegen, dann haben die Nachbarn vielleicht auch was von den Wetterdaten. Vielleicht kann ich j aden KS300 auch in Weewx unterbringen - zum Abgleich für Wind und Regenmenge.

Aber WeeWX ist für mich neu und so ganz habe ich die Notwendigkeiten noch nicht verstanden. Aber das ist das Ziel:

https://www.pc-wetterstation.de/wetter/ ... index.html

Wirklich tolle Arbeit und vielen Dank, dass das geteilt wird.

VG Fossi
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

Hab inzwischen ein bisschen rumprobiert. neowx hab ich aus den Originalquellen installieren können.
Auch den gw1000 Treiber.

Aber wenn ich die gw1000.zip und neowx-material.zip hier runter lade und ver suche die mit wee_extension zu installieren, bekomme ich diesen Fehler:

Code: Alles auswählen

root@NET3-WEEWX1:/tmp# wee_extension --install neowx-material.zip 
Request to install 'neowx-material.zip'
Extracting from zip archive neowx-material.zip
Traceback (most recent call last):
  File "/usr/share/weewx/weecfg/__init__.py", line 1897, in get_extension_installer
    __import__('install')
ModuleNotFoundError: No module named 'install'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/weewx/wee_extension", line 92, in <module>
    main()
  File "/usr/share/weewx/wee_extension", line 84, in main
    ext.install_extension(options.install)
  File "/usr/share/weewx/weecfg/extension.py", line 130, in install_extension
    self.install_from_dir(extension_dir)
  File "/usr/share/weewx/weecfg/extension.py", line 150, in install_from_dir
    installer_path, installer = weecfg.get_extension_installer(extension_dir)
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/weewx/weecfg/__init__.py", line 1899, in get_extension_installer
    raise ExtensionError("Cannot find 'install' module in %s" % extension_installer_dir)
weecfg.ExtensionError: Cannot find 'install' module in /var/tmp/neowx-material/
Wißt ihr evt. was ich falsch mache? Gibt es eine STichpunktartige ToDo Liste, um mit Ecowitt zum Ziel zu kommen? MQTT habe ich auch hinbekommen, ich könnte den GW also auch auf push umstellen - wenn das von Vorteil ist. Aber so richtig weiß ich noch nicht, was da in welcher Reihenfolge zu tun ist.

VG - Fossi
Benutzeravatar
Werner
Site Admin
Beiträge: 5681
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 59 mal
Kontaktdaten:

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Werner »

gw1000.zip und neowx-material.zip
Beide zip-Dateien sind nur Dateien-Sammlung und nicht vorgesehen zum Installieren, den
sie enthalten meine Anpassungen.
Entpacken und die Dateien, die man auch verwenden möchte, in die entsprechenden weewx- Verzeichnisse kopieren.

Nur was mit weewx-* beginnt ist für Installation vorgesehen.
ich könnte den GW also auch auf push umstellen
Ich verwende die GW's mittlerweile mit gw1000 (als Daten-Service) und Interceptor (als Treiber).
Diese angepassten Treiber unterstützen alle vorhandenden Daten/Sensoren der Ecowitt-Welt.
Deshalb auch ein eigenes Datenbank - Schema, eben mit all diesen Daten.
z.B. nutze ich beim WS90 den hail-Wert für die Regenmenge dieses Sensors und den rain-Wert für den eigentlichen WH40 Regensensor.
Deshalb kann ich auch sagen, dass der WS90 für die Regenmengenerfassung noch nicht ausgereift ist.
Wobei die Firmware 1.3.8 eine Besserung brachte.
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

Super - danke für die Info. Ich hab jetzt gw1000.zip und neowx-material.zip aus den archiven an ihren Zielort kopiert. Nach dem ich die historygenerator.zip ebenfalls ergänzt habe, läuft es auch wieder. Jetzt ist Chronik hinzugekommen, aber sonst kann cih von meiner WS90 keine neuen Sensoren erkennen.

Das mit dem interceptor habe ich noch nicht verstanden. Was genau ist zu tun? Vieleicht kannst du mir hier nochmal den entscheidenen Tipp oder Tuto geben.

Dann wwürde ich gern den alten Regenmesser von meiner KS300 einbinden - den hab ich ja schon im MQTT. Hat da evt. jemand ein Beispiel? Wie müssen Daten an der WeeWX aussehen, damit sie als Regensensor erkannt und verarbeitet werden können. Die Wippenschläge kann ich in ESPEasy umrechnen lassen so dass etwas passendes gemeldet wird. In einem Beispiel mit Davis-Becher habe ich gesehen, das der Zähler immer wieder genullt wird und die Wippenzahl über den Faktor 0,2 in Regenmenge umgerechnet wird. Aber weiter bin ich noch nicht gefunden.

Tatsächlich liegt die Regenmenge vom WS90 etwa 25% unter dem KS300.
Benutzeravatar
Werner
Site Admin
Beiträge: 5681
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 59 mal
Kontaktdaten:

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Werner »

weewx.conf mit Interceptor und GW1000 Treiber:

Code: Alles auswählen

[Station]
    station_type = Interceptor

[Engine]
    [[Services]]
        data_services = user.gw1000.Gw1000Service
Der Interceptor Treiber liefert viel mehr Daten als der GW1000 Treiber.
z.B. auch diese:
runtime=4692510
ws90cap_volt=2.5
ws90_ver=138
pm25_avg_24h_ch1=4.3
soilad1=228
interval=120

Den GW1000 braucht man nur für die Signale (Empfang), wenn man diese auch auswerten möchte.

Einbinden des KS300 Regenmesser: hab dazu keine Erfahrung.
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

ok - was genau macht ein Treiber und was genau ein Service?

Bildschirmfoto vom 2023-11-20 21-11-46.png
Bildschirmfoto vom 2023-11-20 21-11-46.png (68.37 KiB) 1010 mal betrachtet
Das ist die Auswertung vom MQTT Explorer und dort sind bereits viele Werte der WeeWX zu sehen. Vermutlich sind diese Werte also schon im System und Treiber/Service extrahieren diese in die Gui oder wie muss ich mir das Vorstellen? Da hab ich noch nicht umrissen, wie das genau geht.

Bezüglich des KS300 - das ist ja kein geschlossenes System mehr. Letztlich auch nur eine Wippe, die über einen Reedkontakt an einem ESP8266 die Auslösungen zählt, in mm umrechnet und das Ergibnis per MQTT pushed. Das habe ich tatsächlich auch schon irgendwie in die logfiles bekommen:

Code: Alles auswählen

ov 20 21:20:59 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming topic: /MAR-ESP-06/rainfall/total, QOS: 0, retain: 0, payload: b'1500.66'
Nov 20 21:20:59 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> incoming /MAR-ESP-06/rainfall/total: 'esp_rain': '0.0'
Nov 20 21:21:06 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.gw1000: Next update in 20 seconds
Nov 20 21:21:06 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> outgoing /MAR-ESP-06/rainfall/total: 'dateTime': '1700511659.0651348', 'esp_rain': '0.0', 'usUnits': '16'
Nov 20 21:21:06 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> outgoing accumulated /MAR-ESP-06/rainfall/total: 'dateTime': '1700511666.0', 'esp_rain': '0.0', 'usUnits': '17'
Nov 20 21:21:06 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 2023-11-20 21:21:06 CET (1700511666): 'barometer': '1002.0', 'dateTime': '1700511666.0', 'daymaxwind': '2.6', 'dayRain': '16.5', 'esp_rain': '0.0', 'inHumidity': '60', 'inTemp': '20.4', 'luminosity': '0.0', 'monthRain': '34.9', 'outHumidity': '95', 'outTemp': '7.7', 'pressure': '1002.0', 'radcompensation': '1', 'rain_piezo': '0.0', 'rainRate': '0.0', 'stormRain': '31.6', 'usUnits': '17', 'UV': '0', 'uvradiation': '0.0', 'weekRain': '16.5', 'windDir': '89', 'windGust': '0.5', 'windSpeed': '0.0', 'ws90_batt': '3.04', 'ws90_sig': '4', 'yearRain': '34.9'
Nov 20 21:21:07 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.gw1000: Next update in 20 seconds
Nov 20 21:21:07 NET3-WEEWX1 python3[3619]: weewx[3619] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 2023-11-20 21:21:06 CET (1700511666): 'barometer': '1002.0', 'dateTime': '1700511666', 'daymaxwind': '2.6', 'dayRain': '16.5', 'inHumidity': '60', 'inTemp': '20.4', 'luminosity': '0.0', 'monthRain': '34.9', 'outHumidity': '95', 'outTemp': '7.7', 'pressure': '1002.0', 'radcompensation': '1', 'rain_piezo': '0.0', 'rainRate': '0.0', 'stormRain': '31.6', 'usUnits': '17', 'UV': '0', 'uvradiation': '0.0', 'weekRain': '16.5', 'windDir': '89', 'windGust': '0.5', 'windSpeed': '0.0', 'ws90_batt': '3.04', 'ws90_sig': '4', 'yearRain': '34.9'
Leider weiß ich nicht, wie ich eine solche Ausgabe weiter verarbeiten kann. esp_rain wird als saldierender Zähler wiedergegeben. Wenn ich nun Wasser eingieße, erhöht sich der payload und es wird die neue Differenz erzeugt und wiedergegeben, somit kann ich die mm-Zahl schon in den Logs finden. Soweit so gut, aber noch nicht am Ziel.

VG - Markus
Benutzeravatar
Werner
Site Admin
Beiträge: 5681
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 59 mal
Kontaktdaten:

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Werner »

Code: Alles auswählen

was genau macht ein Treiber und was genau ein Service?
Das haben wir ja schon telefonisch geklärt.

Deine Regendaten kommen in mqtt in cm an, um sie in mm zu bekommen gibt es dazu diese Möglichkeiten.
in weewx.conf:

Code: Alles auswählen

[StdReport]
  [[Defaults]]
      [[[Units]]]
           [[[[Groups]]]]
               group_rain = mm    # Options are 'inch', 'cm', or 'mm'
oder in der de.conf (wenn deutsche Sprache gewählt):

Code: Alles auswählen

[Units]
    [[Groups]]
        group_rain = mm    # Options are 'inch', 'cm', or 'mm'
Wenn die K300 Regendaten in weewx schon ankommen
gibt es diese Möglichkeiten, ich weiß aber jetzt nicht, wie der K300 in weewx eingebunden ist, jedenfalls wird esp_rain in den mqtt-Daten schon aufgeführt:

Code: Alles auswählen

[StdRESTful]
    [[MQTT]]
        unit_system = METRICWX
        [[[inputs]]]
            [[[[esp_rain]]]]
                name = rain    # use label rain not esp_rain
oder so in der weewx.conf:

Code: Alles auswählen

[StdCalibrate]
 [[Corrections]]
   rain = esp_rain if esp_rain is not None else None
Wenn jetzt: esp_rain wird als saldierender Zähler wiedergegeben,

Code: Alles auswählen

[Accumulator]
    [[esp_rain]]
        extractor = sum
Wobei [[esp_rain]] auch [[rain]] sein könnte,
Mir fehlen dazu in weewx noch manche Zusammenhänge.
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

Code: Alles auswählen

https://files2.elv.com/public/07/0730/073095/Internet/73095_ks300_um.pdf
Das ist übrigens der Wettersensor - nur das die Hauptplatine inzw. ein ESP 12 ist.

Umrechnungsfaktor ist 0.295. Der Homematis-Sensor ist vermutlich identisch, nur mit ganz anderer Elektronik.
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

Ich habe Regen gemacht :D !

Hmm was nicht passt, ist die Menge:
Bildschirmfoto vom 2023-11-22 19-47-33.png
Bildschirmfoto vom 2023-11-22 19-47-33.png (151.35 KiB) 993 mal betrachtet
21 Wippenschläge - er meldet ein höheres Total und berechnet die Differenz - soweit, so gut.

wenn ich die 1.769 und die 4.42 zusammen addiere, komme ich auch auf die etwa 6,2 mm, die die 21 Wippenschläge ergeben müssen.

Aber auf der Seite sehe ich nur 2.7 mm in der Anzeige. Wo rechnet der denn das um und warum falsch?

Das sin ddie beiden Loops dazu:
Bildschirmfoto vom 2023-11-22 19-57-23.png
Bildschirmfoto vom 2023-11-22 19-57-23.png (176.45 KiB) 993 mal betrachtet
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

Wenn ich mm in inch umrechne, würde auch die Loopangabe stimmen. aber was macht die Seite da? Muss ich warten, bis eine stunde rum ist? - Hab etwa eine Stunde davor schon mal probiert - da hatte ich aber keine Logs an.
Fossi
Beiträge: 8
Registriert: 18 Nov 2023 23:25

Re: WS90 - GW1100 - WEEWX - und alles neu.

Beitrag von Fossi »

dayrain.png
dayrain.png (6.05 KiB) 993 mal betrachtet
Einfach mal warten ... mit geduld gehts besser. Das rechnet schon alles richtig - aber ich komm so langsam rein, welche Prozesse da wie mit Daten rumschmeißen.
Antworten