Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

wenn es um andere Software geht
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

Habe gestern meinen LDS Sensor (Höhenmesser) von Ecowitt erhalten.

Habe jetzt den interceptor.py Treiber entsprechend erweitert, dass auch dieser Sensor
verarbeitet wird.

Diese Variablen wurden hinzugefügt:

thi_ch1 ... thi_ch4 Gesamtabstand zu Boden (wurde bei Kalibrieren eingetragen!)
air_ch1 ... air_ch4 = Gesamtabstand - gemessene Höhe
depth_ch1 ... depth_ch4 gemessene Höhe, wird nur angezeigt wenn Gesamtabstand eingetragen!
wh54_ch1_sig ... wh54_ch4_sig Signalstärke -> Daten von FOSHKplugin
aktuelle Werte
aktuelle Werte
LDS01.png (3.19 KiB) 2698 mal betrachtet
bei mir liegt ein Schnee mit ca 4cm ;)
Grafif von WeeWx
Grafif von WeeWx
daydepth.png (7.63 KiB) 2698 mal betrachtet
Season skin.conf Eintrag dazu:

Code: Alles auswählen

        [[[daydepth]]]
            [[[[depth_ch1]]]]
		color = "#8c8989"
Ergänzung der index.html.tmpl:

Code: Alles auswählen

            #if $current.depth_ch1.has_data
            <img src="daydepth.png"        alt="$obs.label.depth_ch1"/>
            #end if
gezippter Treiber auf Github
https://github.com/WernerKr/Ecowitt-or- ... eason-skin

Wer die Daten auch in WeeWX verarbeitet haben möchte, muss die Datenbank erweitern (hier nur 1 Sensor!):
WeeWx V4.x:

Code: Alles auswählen

sudo echo "y" | wee_database --config=/etc/weewx/weewx.conf --add-column=ldsbatt1 --type=REAL
sudo echo "y" | wee_database --config=/etc/weewx/weewx.conf --add-column=depth_ch1 --type=REAL
sudo echo "y" | wee_database --config=/etc/weewx/weewx.conf --add-column=thi_ch1 --type=REAL
sudo echo "y" | wee_database --config=/etc/weewx/weewx.conf --add-column=air_ch1 --type=REAL
sudo echo "y" | wee_database --config=/etc/weewx/weewx.conf --add-column=wh54_ch1_sig --type=REAL
WeeWx V5.x:

Code: Alles auswählen

weectl database add-column ldsbatt1 --type=REAL -y
weectl database add-column depth_ch1 --type=REAL -y
weectl database add-column thi_ch1 --type=REAL -y
weectl database add-column air_ch1 --type=REAL -y
weectl database add-column wh54_ch1_sig --type=REAL -y
Diese Benutzer haben sich bei Werner für den Beitrag bedankt:
moppedhausi
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

Hallo Werner,

hast du den gw1000.py Treiber zufälligerweise auch schon für den LDS Sensor erweitert?

Viele Grüße
Roland
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

@Roland,
hast du den gw1000.py Treiber zufälligerweise auch schon für den LDS Sensor erweitert?
geht nicht, da Ecowitt die zugehörige API nicht mehr erweitert und diesen Sensor auch nicht mehr einpflegt.
Deshalb ist eigentlich für alle Ecowitt-Stationen die beste Sensor-Unterstützung
die Custom-Server Funktion.
Und wenn man die neue Beta von FOSHKplugin nutzt, hat man die Funktionsfähigkeit des gw1000-Treiber und noch mehr.
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

Lässt sich der LDS dann per API auch nicht mehr aus dem GW3000 auslesen?
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

Lässt sich der LDS dann per API auch nicht mehr aus dem GW3000 auslesen?
Nein.
Nur über Custom-Server oder lokaler http-Abfrage.
Bisher hat aber das GW3000 nach ca. 3 Tagen, wenn man die lokale http-Abfrage nutzte, einen Reboot gemacht.
Ob das jetzt in der 1.0.4 behoben ist, muss ich jetzt eben die 3 Tage abwarten,
den im Änderungstext steht dazu nichts.
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

Schade.
Wie stelle ich am besten vom gw1000 0.6.2kw auf den modifizierten Interceptor Treiber um, ohne mir dabei meine ganze Konfiguration zu zerschießen?
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

Du kannst beide Treiber gleichzeitig nutzen:
Interceptor Treiber bei Station eintragen und den GW1000-Treiber zusätzlich bei Engine, Services
Das komplette Mapping macht der Interceptor Treiber.

Wenn Du nicht FOSHplugin nutzt, ist das dies beste Lösung, da nur der GW1000 auch die Signale
liefert.
Bei Verwendung von der aktuellen Beta von FOSHKplugin kann man das Übermitteln auch der Signale
und anderer Einstellungen bekommen, die sonst nur der GW1000-Treiber liefert.
Hier wird bei der Custom-Server Einstellung der Port 8576 verwendet!
Wenn jetzt FOSHKplugin verwendet wird, muss bei Custom-Server ein anderer Port z.B. 8080 verwendet werden (hier nur die zusätzlichen Eintragungen in der foshkplugin.conf)
Einstellungen in der
foshkplugin.conf:

Code: Alles auswählen

[Config]
LBH_PORT = 8080

[Export]
ADD_SIGNAL = True
ADD_MORE = True

[Forward-5]
FWD_ENABLE = True
FWD_CMT = Weewx5 Interceptor
FWD_URL = http://192.168.0.135:8576/data/report/
FWD_OPTION = blacklist=False
FWD_INTERVAL = 
FWD_IGNORE = 
FWD_TYPE = EW
FWD_SID = 
FWD_PWD = 
FWD_STATUS = True
FWD_MQTTCYCLE = 0
FWD_EXEC = 

weewx.conf:

Code: Alles auswählen

[Station]
    #station_type = GW1000
    station_type = Interceptor

[Interceptor]
    # This section is for the network traffic interceptor driver.
    
    # The driver to use:
    driver = user.interceptor
    
    # Specify the hardware device to capture.  Options include:
    #   acurite-bridge - acurite internet bridge, smarthub, or access
    #   observer - fine offset WH2600/HP1000/HP1003, ambient WS2902
    #   lw30x - oregon scientific LW301/LW302
    #   lacrosse-bridge - lacrosse GW1000U/C84612 internet bridge
    #   ecowitt-client - any hardware that uses the ecowitt protocol
    #   wu-client - any hardware that uses the weather underground protocol
    device_type = ecowitt-client
    port = 8576		# Den Port den Du bei Custom-Server gewählt hast
    iface = eth0		# wenn via LAN - hier LAN aktiv
    #iface = wlan0 		# wenn via WLAN 

[Engine]
    # The following section specifies which services should be run and in what order.
    [[Services]]
        data_services = user.gw1000.Gw1000Service
Wenn nur noch der Interceptor-Treiber genutzt werden soll
wie oben und hier den gw1000 - Treiber entfernen:

Code: Alles auswählen

[Engine]
    [[Services]]
        data_services = ,
Auf Github findest Du dazu auch die geänderten Skin-Dateien (Season)
https://github.com/WernerKr/Ecowitt-or- ... /SeasonsMy

Hier ist nur der Interceptor-Treiber in Kombination mit FOSHKplugin im Einsatz:
https://www.pc-wetterstation.de/wetter/weewx1/

Es ist alles vorhanden was der GW1000 liefern würde und eben noch mehr, z.B. Station AutoUpgrade, Station newVersion

Was natürlich dazu auch notwendig ist - die Datenbank zu erweitern:
V5.x

Code: Alles auswählen

weectl database add-column ldsbatt1 --type=REAL -y
weectl database add-column depth_ch1 --type=REAL -y
weectl database add-column thi_ch1 --type=REAL -y
weectl database add-column air_ch1 --type=REAL -y
weectl database add-column wh54_ch1_sig --type=REAL -y
V4.x

Code: Alles auswählen

sudo echo "y" | wee_database --add-column=ldsbatt1 --type=REAL
sudo echo "y" | wee_database --add-column=depth_ch1 --type=REAL
sudo echo "y" | wee_database --add-column=thi_ch1 --type=REAL
sudo echo "y" | wee_database --add-column=air_ch1 --type=REAL
sudo echo "y" | wee_database --add-column=wh54_ch1_sig --type=REAL
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

Vielen Dank für die Erklärung :)
Das heißt, ich müsste nur die interceptor.py in /etc/weewx/bin/user speichern und dann gemäß Deiner Anleitung die weewx.conf umstellen?
Aktuell bekommt WeeWx die Daten über den GW1000 Treiber mit der Ecowitt-Erweiterung und der Seasons-Skin-Änderung (allerdings schon ältere Version) von einem WH2650A.
Ich bin aber gerade am umrüsten, es läuft ein GW3000 mit FOSHKplugin mit aktueller Beta im Probebetrieb, das soll dann zukünftig WeeWx und andere Dienste versorgen.
Ich werde die nächsten Tage mal probieren umzustellen.
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

Das heißt, ich müsste nur die interceptor.py in /etc/weewx/bin/user speichern und dann gemäß Deiner Anleitung die weewx.conf umstellen?
So ist es.
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

weewex.conf ist auf den Interceptor Treiber umgestellt und scheint auf den ersten Blick zu funktionieren.
Muss bei dieser Kombination aus Interceptor und GW1000 Treiber ebenfalls der Eintrag von

Code: Alles auswählen

[Accumulator]
[[lightning_strike_count]]
extractor = sum
auf

Code: Alles auswählen

[Accumulator]
[[lightning_strike_count]]
extractor = last
abgeändert werden, so wie hier erwähnt https://www.pc-wetterstation.de/forum/v ... 26&t=10333?

Nächster Schritt wird dann die Umstellung der Skin-Datei.
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

Bei mir steht es auf "sum"
Allerdings habe ich zusätzlich in der weewx.conf

Code: Alles auswählen

[StdCalibrate]
    
 [[Corrections]]
  lightning_distance_save = lightning_distance if lightning_distance is not None else None
  lightning_distance = lightning_distance if lightning_strike_count > 0 else None

Damit wird die letzte Entfernung angezeigt.
Bei keinem neuen Blitz aber in der Enfernungs-Grafik "nichts"

Und in der Grafik mit der Entfernung, wird diese Grafik immer angezeigt,
da jetzt in der index.html.tmpl die Abfrage auf neue Daten auskommentiert ist.

Code: Alles auswählen

            ##if $day.lightning_distance.has_data
            <img src="daylightningdistance.png"        alt="$obs.label.lightning_distance"/>
            ##end if
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

Hallo Werner,

heute bin ich endlich dazu gekommen weiter zu probieren, der Garten hatte erst mal vorrang.

Ich habe heute auf einem Testsystem Weewx komplett neu installiert und dann gemäß Deiner Anleitung https://github.com/WernerKr/Ecowitt-or- ... /tree/main den Interceptor Treiber installiert.

Weewx lief aber erst dann, als ich

Code: Alles auswählen

schema = schemas.wview_ecowitt.schema
zu

Code: Alles auswählen

schema = schemas.wview_extendend.schema
geändert habe.


Jetzt habe ich aber noch ein anderes Problem:
Die SeasonsMy Skin bring eine Fehlermeldung wegen fehlender

Code: Alles auswählen

ModuleNotFoundError: No module named 'user.historygenerator3'
Die historygenerator3.py existiert in weewx/bin/user/ aber nicht, nur historygenerator.py, historygenerator4.py, historygenerator42.py, historygenerator_color.py und historygenerator_colour.py
Ändert man die skin.conf auf eine dieser Dateien ab, kommt die Fehlermeldung:

Code: Alles auswählen

KeyError: 'colours'
bzw.

Code: Alles auswählen

KeyError: 'HistoryColors'
Was muss denn hier verwendet werden?
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

Du verwendest anscheinend nicht den neuesten Installations-Satz des Interceptor-Treibers.
Da jetzt das Skin-Verzeichnis SeasonsEcowitt benutzt wird.
https://github.com/WernerKr/Ecowitt-or- ... eason-skin
Weewx lief aber erst dann, als ich

Code: Alles auswählen
schema = schemas.wview_ecowitt.schema
zu
Dann ist die Datei "wview_ecowitt.py" bei Dir nicht im Verzeichnis /etc/weewx/bin/schemas
vorhanden!
Ohne dem richtigen Schema werden Dir viele Grafiken nicht angezeigt, da ein notwendiger Datenbank-Eintrag dazu fehlt.

... benenne historygenerator_color.py zu historygenerator3.py um

Besser Du holst Dir von Github die aktuelle Installations-Datei und installierst noch einmal.
Wichtig! Da in der weewx.conf vorhandene Einträge nicht ersetzt werden können, schreibt die Installation die neuen Einträge mit z.B. schema_new = schemas.wview_ecowitt.schema
Zur Nutzung muss das "_new" entfernt werden - und den vorhanden Eintrag umbenennen z.B. zu _old
rsgaf
Beiträge: 25
Registriert: 04 Feb 2023 13:55
Hat sich bedankt: 1 mal

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von rsgaf »

Du verwendest anscheinend nicht den neuesten Installations-Satz des Interceptor-Treibers.
Da jetzt das Skin-Verzeichnis SeasonsEcowitt benutzt wird.
https://github.com/WernerKr/Ecowitt-or- ... eason-skin
Genau diesen Link habe ich für die Installation verwendet, dort die weewx-interceptor.zip.

Die Datei "wview_ecowitt.py" bei mir im Verzeichnis /etc/weewx/bin/schemas auch vorhanden.

Das umbennenen in historygenerator3.py hat funktioniert, dafür kommt jetzt:

Code: Alles auswählen

AttributeError: sunshineDur
obwohl in die sunrainduration.py in /etc/weewx/bin/user vorhanden ist.

Ich glaub ich lass es für heute.... :?

Ich sehen gerade, Du hast die weewx-interceptor.zip geändert.
Was ist da jetzt anders?
Benutzeravatar
Werner
Site Admin
Beiträge: 6040
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 137 mal
Kontaktdaten:

Re: Mein modifizierter Interceptor Treiber unterstützt jetzt auch den Ecowitt LDS Sensor

Beitrag von Werner »

sunshineDur ist ein Datenbank Feld des weewx_ecowitt schema
und wird mit der Erweiterung sunrainduration.py,
befüllt, wenn diese Erweiterung auch aktiviert ist.

Code: Alles auswählen

[Engine]
    [[Services]]
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate, user.sunrainduration.SunshineDuration
Geändert habe ich bzw. hinzugefügt die historygenerator3.py
da in der skin.conf darauf verwiesen wird.
Antworten