Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

Für Geräte von froggit
Benutzeravatar
Gyvate
Offline
Beiträge: 2529
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 383 mal
Kontaktdaten:

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#11

Beitrag von Gyvate »

ich hoffe, dass nachstehendes Bild, das ich vor einiger Zeit zusammengestellt habe, die Zusammenhänge erklärt (und nicht ggf. zu größerer Verwirrung beiträgt).
Aufgezeigt sind die Datenflüsse von Sensoren über Konsolen zu Verteilprogrammen, Anwendungssoftware (Datenlogger) wie z.B. weewx und Wetter Diensten wie z.B. Weather Underground (WU).
für weewx gilt:
Der Interceptor Treiber liest die Daten, die eine Konsole von sich aus über die Custom Server Funktion verschickt. [im Bild 2)]
Der GW1000 Treiber frägt die GW1000-kompatiblen Konsolen über ihr API ab. [im Bild 4)]
Fine Offset (clone) WiFi Weather Stations  and data loggers_1024.jpg
Fine Offset (clone) WiFi Weather Stations and data loggers_1024.jpg (155.85 KiB) 651 mal betrachtet
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
obstbauer
Offline
Beiträge: 27
Registriert: 11 Dez 2020, 09:31
Danksagung erhalten: 1 mal

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#12

Beitrag von obstbauer »

vielen Dank für die sehr hilfreichen und verständlichen Hinweise.
Ich werde mich die Tage dann mal mit Werners gw1000 Treiber und der Datenbank auseinandersetzen
obstbauer
Offline
Beiträge: 27
Registriert: 11 Dez 2020, 09:31
Danksagung erhalten: 1 mal

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#13

Beitrag von obstbauer »

Hallo,
ich stehe gerade etwas auf dem Schlauch....
Ich habe jetzt für meine package installation die gw1000.py, wview_ecowitt.py und die extensions.py durch die Dateien von Werner ersetzt.

Das müsste doch jetzt alles sein oder? Ich verstehe diesen Teil nicht:

Den Inhalt der Dateien gw1000.conf bzw. interceptor.conf in die vorhandene weewx.conf (vorher sicherheitshalber diese Datei sichern!) integrieren und beim
interceptor diesen Eintrag port = 8573 -
gw1000 diesen Eintrag ip_address = 192.168.0.115
auf seine eigenen Werte ändern:


Das betrifft meine Installation doch eigentlich nicht oder? Die IP steht ja in der weewx.conf schon drin

Bevor ich weiter mache mit der Datenbank würde ich das gerne verstehen.

Für die Datenbank würde ich dann noch folgendes Skript aus der zip Datei ausführen: https://www.pc-wetterstation.de/weewx/a ... t_data.zip

Ich habe an der Datenbank eigentlich bisher nichts verändert weshalb ich davon ausgehe dass es die Standversion ist.
Vielen Dank schon mal!
Benutzeravatar
Gyvate
Offline
Beiträge: 2529
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 383 mal
Kontaktdaten:

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#14

Beitrag von Gyvate »

obstbauer hat geschrieben: 26 Mär 2022, 16:48
Das müsste doch jetzt alles sein oder? Ich verstehe diesen Teil nicht:

Den Inhalt der Dateien gw1000.conf bzw. interceptor.conf in die vorhandene weewx.conf (vorher sicherheitshalber diese Datei sichern!) integrieren und beim
interceptor diesen Eintrag port = 8573 -
gw1000 diesen Eintrag ip_address = 192.168.0.115
auf seine eigenen Werte ändern:


Das betrifft meine Installation doch eigentlich nicht oder? Die IP steht ja in der weewx.conf schon drin

Bevor ich weiter mache mit der Datenbank würde ich das gerne verstehen.
Genau das meint er ja damit, dass Du Deine IP anstelle von seiner IP-Adresse, die sich beispielhaft in der gw1000.conf befindet, einsetzt, benutzt etc. Und wenn die in Deiner weewx.conf bereits richtig drin steht, ist alles gut.

Es gibt ja auch Menschen, die das zum ersten Mal tun und die ganze [GW1000] Sektion ersetzen bzw. einsetzen.
Dann wird erst mal alles kopiert und es sind dann noch Nacharbeiten, z.B. IP-Adresse, erforderlich.
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
obstbauer
Offline
Beiträge: 27
Registriert: 11 Dez 2020, 09:31
Danksagung erhalten: 1 mal

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#15

Beitrag von obstbauer »

Ok danke, bei mir gibt es halt auch nur die weewx.conf und keine gw1000.conf
Benutzeravatar
Gyvate
Offline
Beiträge: 2529
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 383 mal
Kontaktdaten:

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#16

Beitrag von Gyvate »

Hier hat das soviel ich weiss rein didaktische Gründe: eine weewx.conf für den GW1000 Treiber und eine für den Interceptor Treiber. Aber, wenn man z.B. zwei verschiedene weewx-Instanzen auf dem selben Server betreibt, muss jede Instanz eine eigene "weewx.conf" mit unterschiedlichem Namen haben.
Ich betreibe z.B. zwei Instanzen und deren weewx.conf heissen GW1000.conf und WS2320E.conf.
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
Werner
Offline
Beiträge: 121
Registriert: 07 Dez 2020, 18:23
Wohnort: Lackenhäuser
Danksagung erhalten: 33 mal
Kontaktdaten:

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#17

Beitrag von Werner »

Code: Alles auswählen

Ok danke, bei mir gibt es halt auch nur die weewx.conf und keine gw1000.conf
Es wäre alles ja so einfach wenn man die normalen Wege nutzt:

Code: Alles auswählen

sudo wee_extension --install=weewx-gw1000.zip
Den die Erweiterung weewx-gw1000.zip kann man natürlich auch downloaden und man hat dann alles
schon beisamen.
Hier noch mal der Link dazu ;)
https://www.pc-wetterstation.de/weewx/weewx-gw1000.zip.
Was man noch machen muss, ist die Datenbank-Einstellungen anzupassen.
Das Installation-Script trägt sogar das neue Datenbank-Schema auskommentiert ein.
Wenn man seine vorhandene Datenbank weiter nutzen will, muss man das Erweiterungs-Script
add_ecowitt_to_wview_database.sh oder add_ecowitt_to_wview_extended_databases.sh
für die Datenbank laufen lassen, entsprechend des momentan verwendeten Schemas .
obstbauer
Offline
Beiträge: 27
Registriert: 11 Dez 2020, 09:31
Danksagung erhalten: 1 mal

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#18

Beitrag von obstbauer »

ja ich hätte einfach noch etwas weiter lesen müssen..... :?

ich habe jetzt die weewx-gw1000.zip heruntergeladen und installiert, bei den Datenbanken stehe ich leider noch etwas auf dem Schlauch...

wenn ich in der weewx.conf die Datenbank wie beschrieben ändere von weewx.sdb zu weewx_ecowitt.sdb dann habe ich ja eine neue Datenbank, die dann auch erst nach dem Erstellen Werte speichert, meine bisherigen Werte sind ja in der alten weewx.sdb oder?

Ich verstehe jetzt aber nicht welches Skript ich ausführen muss.
Meine Änderungen bzw. aktuellen Einstellungen sind:

schema = schemas.wview_ecowitt.schema (vohrer schema = schemas.wview_extended.schema)
database_name = weewx.sdb (also die bestehende Datenbank)

Wenn ich das Skript add_ecowitt_to_wview_database.sh ausführe erhalte ich verschiedene errors:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/share/weewx/wee_database", line 1170, in <module>
main()
File "/usr/share/weewx/wee_database", line 222, in main
addColumn(config_dict, db_binding, options.add_column, options.type)
File "/usr/share/weewx/wee_database", line 634, in addColumn
dbm.add_column(column_name, column_type)
File "/usr/share/weewx/weewx/manager.py", line 497, in add_column
self._add_column(column_name, column_type, cursor)
File "/usr/share/weewx/weewx/manager.py", line 971, in _add_column
Manager._add_column(self, column_name, column_type, cursor)
File "/usr/share/weewx/weewx/manager.py", line 501, in _add_column
cursor.execute("ALTER TABLE %s ADD COLUMN `%s` %s"
File "/usr/share/weewx/weedb/sqlite.py", line 44, in guarded_fn
raise weedb.OperationalError(e)
weedb.OperationalError: attempt to write a readonly database
Using configuration file /etc/weewx/weewx.conf
Using database binding 'wx_binding', which is bound to database 'archive_sqlite'
Add new column 'soilTemp6' of type 'REAL' to database (y/n)? Traceback (most recent call last):
File "/usr/share/weewx/weedb/sqlite.py", line 30, in guarded_fn
return fn(*args, **kwargs)
File "/usr/share/weewx/weedb/sqlite.py", line 219, in execute
return sqlite3.Cursor.execute(self, *args, **kwargs)
sqlite3.OperationalError: attempt to write a readonly database

fehlen mir vllt Berechtigungen wegen "readonly database" oder habe ich etwas falsch eingestellt bzw. ausgeführt?
Muss ich stattdessen das andere Skript ausführen?
add_ecowitt_to_wview_extended_databases.sh
obstbauer
Offline
Beiträge: 27
Registriert: 11 Dez 2020, 09:31
Danksagung erhalten: 1 mal

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#19

Beitrag von obstbauer »

mit der weewx.sdb läuft weewx auch nicht und es wird nichts erstellt wie gerade feststelle, nur mit der neuen weewx_ecowitt.sdb

Grundproblem: wie kann ich die alten Werte weiter nutzen
Benutzeravatar
Gyvate
Offline
Beiträge: 2529
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 383 mal
Kontaktdaten:

Re: Kein Batteriestatus in weewx bei gw1000 / Zeitformat Uhr in Header

#20

Beitrag von Gyvate »

ja ich hätte einfach noch etwas weiter lesen müssen..... :?
...
wenn ich in der weewx.conf die Datenbank wie beschrieben ändere von weewx.sdb zu weewx_ecowitt.sdb dann habe ich ja eine neue Datenbank, die dann auch erst nach dem Erstellen Werte speichert, meine bisherigen Werte sind ja in der alten weewx.sdb oder?
Jein. Vor der Erweiterung des Datenbank-Schemas der neuen DB einfach die alte DB von weewx.sdb in (z.B.) weewx_ecowitt.sdb sicherheitshalber kopieren bzw. kopieren und umbenennen.
Die Datenbankerweiterung dann mit der bestehenden Datenbank (weewx.sdb) durchführen.
Ich verstehe jetzt aber nicht welches Skript ich ausführen muss.
Meine Änderungen bzw. aktuellen Einstellungen sind:

schema = schemas.wview_ecowitt.schema (vohrer schema = schemas.wview_extended.schema)
database_name = weewx.sdb (also die bestehende Datenbank)

Wenn ich das Skript add_ecowitt_to_wview_database.sh ausführe erhalte ich verschiedene errors:
das dürfte das falsche Skript sein. Du brauchst, nach eigenen Angaben, extended.
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/share/weewx/wee_database", line 1170, in <module>
main()
File "/usr/share/weewx/wee_database", line 222, in main
addColumn(config_dict, db_binding, options.add_column, options.type)
File "/usr/share/weewx/wee_database", line 634, in addColumn
dbm.add_column(column_name, column_type)
File "/usr/share/weewx/weewx/manager.py", line 497, in add_column
self._add_column(column_name, column_type, cursor)
File "/usr/share/weewx/weewx/manager.py", line 971, in _add_column
Manager._add_column(self, column_name, column_type, cursor)
File "/usr/share/weewx/weewx/manager.py", line 501, in _add_column
cursor.execute("ALTER TABLE %s ADD COLUMN `%s` %s"
File "/usr/share/weewx/weedb/sqlite.py", line 44, in guarded_fn
raise weedb.OperationalError(e)
weedb.OperationalError: attempt to write a readonly database
Using configuration file /etc/weewx/weewx.conf
Using database binding 'wx_binding', which is bound to database 'archive_sqlite'
Add new column 'soilTemp6' of type 'REAL' to database (y/n)? Traceback (most recent call last):
File "/usr/share/weewx/weedb/sqlite.py", line 30, in guarded_fn
return fn(*args, **kwargs)
File "/usr/share/weewx/weedb/sqlite.py", line 219, in execute
return sqlite3.Cursor.execute(self, *args, **kwargs)
sqlite3.OperationalError: attempt to write a readonly database

fehlen mir vllt Berechtigungen wegen "readonly database" oder habe ich etwas falsch eingestellt bzw. ausgeführt?
Muss ich stattdessen das andere Skript ausführen?
add_ecowitt_to_wview_extended_databases.sh
Die Fehlermeldung sieht ja erst mal so aus, dass ein anderer Prozess die Datenbank im Zugriff hat und sie daher für andere Programme für Änderung oder Löschung gesperrt ist. Nur Lesen möglich (=read-only).

Läuft denn etwa noch eine weewx Instanz ? Dann geht das Ganze natürlich nicht.
wee_database muss die Datenbank exklusiv im Zugriff haben können.

1. weewx runterfahren
2. Kopie der Datenbank anlegen (dabei die Kopie umbenennen)
3. Skript zur DB-Schema-Erweiterung ausführen. (add_ecowitt_to_wview_extended_databases.sh !!)
Deine "alte" weewx.sdb ist jetzt (bei erfolgreicher Durchführung) um die entsprechenden Spalten erweitert
4. weewx mit neuer weewx.conf (die zum neuen Schema passt) starten
da Du ja jetzt eine erweiterte DB mit dem Namen weewx.sdb hast, muss auch in der neuen weewx.conf dieser Name auch unter database_name = stehen.

Wenn in der weewx.conf, die das wee_database Tool benutzt, database_name = weewx_ecowitt.sdb drinsteht, wird eine neue, leere Datenbank mit dem Namen weewx_ecowitt.sdb und dem Schema erzeugt, das unter schema = steht.

Wenn dort database_name = weewx.sdb steht, sollte Deine existierende Datenbank mit allen bisher angesammelten Daten um die entsprechenden Spalten erweitert 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
Antworten