Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

Für allgemeine Software
martin6546724554
Offline
Beiträge: 8
Registriert: 08 Jan 2024, 11:54
Hat sich bedankt: 3 mal

Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#1

Beitrag von martin6546724554 »

Hallo,

ich nutze eine HP1000SE Pro mit dem Kombisensor WS68 und dem Regensensor WH40.
Ich lese die Daten mit weewx 4.10.2 auf einem Raspberry PI3B aus und stelle sie in meinem lokalen Netzwerk mit dem Seasons Skin 4.10.1 bereit.

Ich würde gerne die Batteriedaten (Spannung, Zustand) des WS68 und WH40 anzeigen. Ich habe vieles probiert, aber ohne Erfolg. Ich hatte bei der Ersteinrichtung von weewx bei den Batteriedaten sinngemäß stehen, dass keine Daten verfügbar sind. Irgendwann sind die Daten dann vollkommen verschwunden, es gibt also weder eine Anzeige des Wertes noch ein Diagramm im Skin. In den Rohdaten sind sie anscheinend vorhanden. Auf der Konsole und bei Ecowitt werden sie angezeigt.

Meine Frage ist, welche Einstellungen muss ich in welchen Konfigurationsdateien vornehmen, damit die Daten angezeigt werden:
- aktuelle Daten
- max/min-Werte
- Diagramm

Vielen Dank für Eure Hilfe.

Gruß, Martin
Benutzeravatar
Gyvate
Online
Beiträge: 2524
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#2

Beitrag von Gyvate »

bei einer HP1000SE Pro Konsole muss bei weewx der Interceptor Treiber benutzt werden, und zwar nicht in der Schmalspurausgabe von Matthew Wall sondern besser in @Werner's erweiterten Ausgabe für alle Sensoren und deren Werte, einschließlich Batterie.
--> https://pc-wetterstation.de/weewx/weewx-interceptor.zip für den Interceptor Treiber
und
https://pc-wetterstation.de/weewx/usr/s ... nsions.zip
interceptor.py und extensions.py gehen nach /usr/share/weewx/user
Vorher Kopien der bereits existierenden anlegen ! Zur Sicherheit, falls Du zurück mußt.
Der Pfad gilt für Debian/Ubuntu Installationen.
Wenn Du die weewx Installation my setup.py gemacht hast, lauten die Pfade anders.
Das ist in der weewx Dokumentation beschrieben:
https://www.weewx.com/docs

Beim WH40 gibt es nur bei den neueren Exemplaren einen aussagefähigen Batteriestand.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Benutzeravatar
Gyvate
Online
Beiträge: 2524
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#3

Beitrag von Gyvate »

martin6546724554 hat geschrieben: 08 Jan 2024, 12:21 Meine Frage ist, welche Einstellungen muss ich in welchen Konfigurationsdateien vornehmen, damit die Daten angezeigt werden:
- aktuelle Daten
- max/min-Werte
- Diagramm
Nehmen wir mal an, Du benutzt die Seasons Skin (Webseitendarstellung).
In neueren weewx Installationen werden Sensoren automatisch erkannt bzw. müssen in der skin.conf in der Auflistung der anzuzeigenden Variablen eingetragen werden. Alles andere erfolgt automatisch.
Das ist die Stanza [DisplayOptions] und dort die Einträge hinter
observations_current und observations_stats

In älteren weewx Versionen bzw. skin.conf, index.html.tmpl Ausgaben, müssen entsprechende Einträge in skin.conf (für die Bildchen) und index.html.tmpl (Anzeige der Bildchen und Tabelle der aktuellen sowie max/min Daten) gemacht werden.
Dazu gibt es entsprechend Dateien, die in die index.html.tmpl zur Laufzeit eingebunden werden (Endung .inc für include).
Dabei ist current.inc für die aktuellen Werte und hilo.inc für die max/min Werte zuständig.
Gewisse Standardeinträge gibt es schon - weitere muss man analog hinzufügen (wie gesagt bei älteren Versionen von skin.conf und index.html.tmpl).
Zu dem, was es damit allgemein auf sich hat, haben wir in unserem WiKi unter weewx ein Beispiel, das sich noch auf die ältere Version bezieht und wo sich das Prinzip nachvollziehen läßt.
wiki/doku.php?id=wiki:software:weewx

Die neuen Versionen sind stärker parametrisiert, aber auch schwieriger individuell anzupassen (wo nötig), da man mehr generische Programmlogik verstehen muss, während die alten Versionen expliziter sind.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
martin6546724554
Offline
Beiträge: 8
Registriert: 08 Jan 2024, 11:54
Hat sich bedankt: 3 mal

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#4

Beitrag von martin6546724554 »

Gyvate hat geschrieben: 08 Jan 2024, 13:43 [...], und zwar nicht in der Schmalspurausgabe von Matthew Wall sondern besser in @Werner's erweiterten Ausgabe für alle Sensoren und deren Werte, einschließlich Batterie.
Ich wusste nicht, dass es eine spezielle Interceptor-Version gibt. Ich werde diesen Weg ausprobieren, da ich mit den Einträgen in der skin.conf und weewx.conf bisher nicht weiter gekommen bin. Siehe auch Kommentare zur Antwort #3.

]...]
Gyvate hat geschrieben: 08 Jan 2024, 13:43 Interceptor.py und extensions.py gehen nach /usr/share/weewx/user
Reicht es, wenn ich die exisitierende interceptor.py austausche, oder muss ich den alten interceptor deinstallierern und dann den neuen installieren? Brauche ich von den anderen Dateien im Zip-Archiv noch etwas?
martin6546724554
Offline
Beiträge: 8
Registriert: 08 Jan 2024, 11:54
Hat sich bedankt: 3 mal

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#5

Beitrag von martin6546724554 »

Gyvate hat geschrieben: 08 Jan 2024, 13:54 Nehmen wir mal an, Du benutzt die Seasons Skin (Webseitendarstellung).
In neueren weewx Installationen werden Sensoren automatisch erkannt bzw. müssen in der skin.conf in der Auflistung der anzuzeigenden Variablen eingetragen werden. Alles andere erfolgt automatisch.
Soweit ich es verstanden habe, nutze ich die neuere Version, denn ich konnte schon diverse Zusatzsensoren durch Einträge in der skin.conf hinzufügen.
Gyvate hat geschrieben: 08 Jan 2024, 13:54 Das ist die Stanza [DisplayOptions] und dort die Einträge hinter
observations_current und observations_stats
Da ist der Punkt, wo ich gescheitert bin, da ich nicht verstehe, wie die Einträge genau aussehen müssten. Ich weiß nicht genau, welcher Wert zum Status gehört und welcher Wert zur Voltage. Ich habe "tausend" Varianten erfolglos probiert. Vielleicht klappt es ja mit dem modifizierten interceptor. Ansonsten würde ich hier später nochmal Details reinstellen.

Gyvate hat geschrieben: 08 Jan 2024, 13:54 In älteren weewx Versionen bzw. skin.conf, index.html.tmpl Ausgaben, müssen entsprechende Einträge in skin.conf (für die Bildchen) und index.html.tmpl (Anzeige der Bildchen und Tabelle der aktuellen sowie max/min Daten) gemacht werden.
In der index.html.tmpl habe damals ich für die Zusatzsensoren nichts geändert, auch deshalb gehe ich davon aus, dass ich die neuere Version verwende.
Benutzeravatar
Gyvate
Online
Beiträge: 2524
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#6

Beitrag von Gyvate »

martin6546724554 hat geschrieben: 08 Jan 2024, 16:41 Reicht es, wenn ich die exisitierende interceptor.py austausche, oder muss ich den alten interceptor deinstallierern und dann den neuen installieren? Brauche ich von den anderen Dateien im Zip-Archiv noch etwas?
einfach ersetzen (bzw alten umbennen und den neuen reinkopieren) - und weewx neu starten.
Der Interceptor-Treiber kann auch stand-alone laufen gelassen werden und die gelieferten Daten in einer Shell-Konsole anzeigen.
In der exensions.py findest Du die Sensornamen, die weewx intern benutzt - die müssen in der skin.conf unter [DisplayOptions] eingetragen werden.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Benutzeravatar
Gyvate
Online
Beiträge: 2524
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#7

Beitrag von Gyvate »

martin6546724554 hat geschrieben: 08 Jan 2024, 16:55 Soweit ich es verstanden habe, nutze ich die neuere Version, denn ich konnte schon diverse Zusatzsensoren durch Einträge in der skin.conf hinzufügen.
Es wird immer etwas hinzugefügt - die Frage ist nur wo und was - daher ist das kein Unterscheidungskriterium.
Allerdings gibt es die [DisplayOptions] Stanza nur bei der neuen Version.
Was eingetragen werden muss (Variablennamen) siehe vorigen Post
Gyvate hat geschrieben: 08 Jan 2024, 13:54 In der index.html.tmpl habe damals ich für die Zusatzsensoren nichts geändert, auch deshalb gehe ich davon aus, dass ich die neuere Version verwende.
Das muss nichts heissen. Die Einträge haben möglicherweise schon existiert und es wurde nur nichts angezeigt, weil die Sensoren nicht da waren:
z.B.
#if $day.extraTemp1.has_data
....
#end if
- und wenn nix da ist, wird nix angezeigt 8-)
Bzw. sobald es dazu Daten in der Datenbank gab, wurde auch etwas angezeigt.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Benutzeravatar
Gyvate
Online
Beiträge: 2524
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#8

Beitrag von Gyvate »

übrigens muss es natürlich Einträge (Spalten) für den Batteriestatus in der Datenbank (im Datenbank-Schema) geben, sonst kannst Du maximal die aktuellen Daten unter $current anzeigen, für $day etc. gibt es dann nichts.
Ggf. muss ein neues Datenbankfeld angelegt werden oder ein vorhandenes umgewidment werden (repurpose).
Das Datenbankschema wview_extended findet sich auch unter /usr/share/weewx
In der weewx Dokumentation sind beide Verfahren - Umwidmen oder neu anlegen - mit Beispielen beschrieben.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
martin6546724554
Offline
Beiträge: 8
Registriert: 08 Jan 2024, 11:54
Hat sich bedankt: 3 mal

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#9

Beitrag von martin6546724554 »

Hallo,

damit hat es jetzt teilweise funktioniert. Vielen Dank.
Gyvate hat geschrieben: 08 Jan 2024, 17:25 einfach ersetzen (bzw alten umbennen und den neuen reinkopieren) - und weewx neu starten.
Damit wurden erstmal ohne weiteres Zutun mehrere Batteriezustände in den Sensoren angezeigt.
Ich habe es auch hinbekommen, unter den aktuellen Werten und unter den Statistik-Werten die Spannung des WH40 anzuzeigen, indem ich in der skin.conf noch "rainBatteryStatus" eingefügt habe.

Mit den Werten für den WS68 hatte ich keinen Erfolg. Ich habe mal versuchshalber "windBatteryStatus" eingefügt, das war erfolglos.
Gyvate hat geschrieben: 08 Jan 2024, 17:25 In der exensions.py findest Du die Sensornamen, die weewx intern benutzt - die müssen in der skin.conf unter [DisplayOptions] eingetragen werden.
Hiermit bin ich nicht weitergekommen. Wenn ich das richtig verstehe, werden in der "extensions.py" Signale in irgendwelche Gruppen einsortiert. Zu den verschiedenen Batterien steht da z.B.

Code: Alles auswählen

import weewx.units
weewx.units.obs_group_dict['rainBatteryStatus'] = 'group_volt'
weewx.units.obs_group_dict['hailBatteryStatus'] = 'group_volt'
weewx.units.obs_group_dict['windBatteryStatus'] = 'group_volt'
weewx.units.obs_group_dict['ws80_batt'] = 'group_volt'
weewx.units.obs_group_dict['ws90_batt'] = 'group_volt'
weewx.units.obs_group_dict['ws1900batt'] = 'group_volt'
"rainBatteryStatus" und "windBatteryStatus" werden hier schon erwähnt, deshalb vermute ich, dass ich die Zuordnung für den WS68 an anderer Stelle vornehmen muss.

Aus dem journalctl habe ich folgende Daten-Bezeichnungen gefunden, von welchen ich vermute, dass es die Spannungen der WS68 und WH40 sind.:

Code: Alles auswählen

weewx[51261] DEBUG user.interceptor: raw data: 
&wh68batt=1.82
&wh40batt=1.7
Ich habe mich auf die Suche gemacht, wo diese Daten gemappt werden. Ich habe in der "weewx.conf", in der "interceptor.py" und in der "weewx.py" verschiedene mappings gefunden. Die o.g. Bezeichnungen kommen dort verschiedentlich vor, auch mit unterschiedlichen Schreibweisen wie z.B. wh68_batt, wh68battery usw. Leider durchschaue ich nicht, wo ich hier was ändern oder einfügen muss.
Gyvate hat geschrieben: 08 Jan 2024, 17:38 übrigens muss es natürlich Einträge (Spalten) für den Batteriestatus in der Datenbank (im Datenbank-Schema) geben,
Ich weiß nicht, ob in der Datenbank Felder vorhanden sind. Ich habe irgendein tool installiert, das mir die Datenbank-Inhalte usw. anzeigt, aber wie bekomme ich denn heraus, welche Daten in welches Datenbank-Feld geschrieben werden?

Was muss ich tun, damit die Spannung für den WS68 angezeigt wird? (Später hätte ich auch gerne eine Diagramm, aber eins nach dem anderen.)
Benutzeravatar
Gyvate
Online
Beiträge: 2524
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: Eccowitt WS68 und WH40 Batteriestand mit weewx anzeigen

#10

Beitrag von Gyvate »

die Dokumentation lesen ... 8-)
http://weewx.com/docs/4.10/
hast Du Dir mal die Mühe gemacht, das wview_extended.py Datenbankschema zu lesen ?
/usr/share/weewx/schemas
Dort sind alle möglichen Datenfelder, die in einem Datensatz enthalten sind, aufgeführt.
interceptor.py zeigt die field_map (die Liste der Felder, in die das Programm die Daten, die von der Konsole kommen, einliest).
Kurz vorm Abspeichern werden diese Daten in die Felder des Datenbankschemas übertragen und dann abgespeichert.
Wenn es für gewünschte (vorhandene) Werte noch keine Übertragung gibt, muss man diese veranlassen.
Dazu gibt es mehrere Wege, die alle in der Doku mit Beispielen beschrieben sind.

Einfach nur auf gut Glück irgendetwas zu versuchen, von dem man nicht weiss, was es bedeutet, ist wenig hilfreich.

Vielleicht sollte ich, wenn ich mal Zeit dazu habe, die Architektur von weewx in unserem WiKi beschreiben ...
Übrigens, einiges, was Deine Fragen beantworten würde, ist dort bereits beschrieben,
Aber ohne die Doku zu lesen, wüßte ich heute auch nicht, was wie geht. :geek:
Wenn ich an einem neuen Auto einen Reifen wechseln muss, muss ich dazu auch i.d.R. das Handbuch lesen.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Antworten