Weewx ConnectionResetError: [Errno 104]

wenn es um andere Software geht
Benutzeravatar
JoachimF
Beiträge: 394
Registriert: 08 Dez 2021 20:29
Wohnort: Carces
Hat sich bedankt: 1 mal
Kontaktdaten:

Weewx ConnectionResetError: [Errno 104]

Beitrag von JoachimF »

In den letzten 24 Stunden ist weewx - new belchertown 3 x ausgestiegen.

Code: Alles auswählen

d[775219]: INFO weewx.restx: Meteoservices: Published record 2026-07-30 11:05:00 CEST (1785402300)                

CRITICAL user.ecowitt_http:     ****  Traceback (most recent call last):                                          
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 7074, in run             
CRITICAL user.ecowitt_http:     ****      self.client.collect()                                                   
CRITICAL user.ecowitt_http:     ****      ~~~~~~~~~~~~~~~~~~~^^                                                   
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 6923, in collect         
CRITICAL user.ecowitt_http:     ****      queue_data = self.get_current_data()                                    
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 6990, in get_current_data
CRITICAL user.ecowitt_http:     ****      curr_data.update(self.device.get_rain_totalspart())                     
CRITICAL user.ecowitt_http:     ****                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^                      
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 13481, in get_rain_totals
CRITICAL user.ecowitt_http:     ****      _unit_data = self.get_device_units()                                    
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 13676, in get_device_unit
CRITICAL user.ecowitt_http:     ****      _units_resp = self.api.get_units_info()                                 
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 7354, in get_units_info  
CRITICAL user.ecowitt_http:     ****      return self.request('get_units_info')                                   
CRITICAL user.ecowitt_http:     ****             ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^                                   
CRITICAL user.ecowitt_http:     ****    File "/etc/weewx/bin/user/ecowitt_http.py", line 7165, in request         
CRITICAL user.ecowitt_http:     ****      with urllib.request.urlopen(req, timeout=self.timeout) as w:            
CRITICAL user.ecowitt_http:     ****           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^                  
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/urllib/request.py", line 189, in urlopen        
CRITICAL user.ecowitt_http:     ****      return opener.open(url, data, timeout)                                  
CRITICAL user.ecowitt_http:     ****             ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^                                  
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/urllib/request.py", line 489, in open           
CRITICAL user.ecowitt_http:     ****      response = self._open(req, data)                                        
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/urllib/request.py", line 506, in _open          
CRITICAL user.ecowitt_http:     ****      result = self._call_chain(self.handle_open, protocol, protocol +        
CRITICAL user.ecowitt_http:     ****                                '_open', req)                                 
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/urllib/request.py", line 466, in _call_chain    
CRITICAL user.ecowitt_http:     ****      result = func(*args)                                                    
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/urllib/request.py", line 1348, in http_open     
CRITICAL user.ecowitt_http:     ****      return self.do_open(http.client.HTTPConnection, req)                    
CRITICAL user.ecowitt_http:     ****             ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                    
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/urllib/request.py", line 1323, in do_open       
CRITICAL user.ecowitt_http:     ****      r = h.getresponse()                                                     
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/http/client.py", line 1459, in getresponse      
CRITICAL user.ecowitt_http:     ****      response.begin()                                                        
CRITICAL user.ecowitt_http:     ****      ~~~~~~~~~~~~~~^^                                                        
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/http/client.py", line 355, in begin             
CRITICAL user.ecowitt_http:     ****      self.headers = self.msg = parse_headers(self.fp)                        
CRITICAL user.ecowitt_http:     ****                                ~~~~~~~~~~~~~^^^^^^^^^                        
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/http/client.py", line 253, in parse_headers     
CRITICAL user.ecowitt_http:     ****      headers = _read_headers(fp)                                             
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/http/client.py", line 226, in _read_headers     
CRITICAL user.ecowitt_http:     ****      line = fp.readline(_MAXLINE + 1)                                        
CRITICAL user.ecowitt_http:     ****    File "/usr/lib/python3.13/socket.py", line 719, in readinto               
CRITICAL user.ecowitt_http:     ****      return self._sock.recv_into(b)                                          
CRITICAL user.ecowitt_http:     ****             ~~~~~~~~~~~~~~~~~~~~^^^                                          
CRITICAL user.ecowitt_http:     ****  ConnectionResetError: [Errno 104] Die Verbindung wurde vom Kommunikationspar
 weewxd[775203]: INFO weewx.manager: Added record 2026-07-30 11:05:20 CEST (1785402320) to database 'cmon_eco.sdb'
Ein Restart von hilft, aber wo liegt der Fehler?
Gruß Joachim

https://puttkammer.de
Benutzeravatar
Werner
Site Admin
Beiträge: 6191
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 153 mal
Kontaktdaten:

Re: Weewx ConnectionResetError: [Errno 104]

Beitrag von Werner »

Das Log sagt aus, das die Regendaten nicht empfangen werden konnten.
Ist aber kein Skin-Fehler (new-belchertown)

Das ist eine Beispiel-Antwort, die empfangen werden sollte, auf diese
Abfrage "get_rain_totals":

Code: Alles auswählen

            {"rainFallPriority": "2",
             "list": [{"gauge": "No rain gauge", "value": "0"},
                      {"gauge": "Traditional rain gauge", "value": "1"},
                      {"gauge": "Piezoelectric rain gauge", "value": "2"}],
             "rainDay": "0.0",
             "rainWeek": "0.0",
             "rainMonth": "0.0",
             "rainYear": "0.0",
             "rainGain": "1.00",
             "rstRainDay": "0",
             "rstRainWeek": "0",
             "rstRainYear": "0",
             "piezo": "1"}
Ist die Spannungsversorgung deines GW3000 vielleicht zu schwach oder nicht stabil ?
Oder Netzwerk-Schwankungen.

Hast Du diese Option in der weewx.conf gesetzt?

Code: Alles auswählen

# Whether to try indefinitely to load the driver
loop_on_init = 1
Benutzeravatar
JoachimF
Beiträge: 394
Registriert: 08 Dez 2021 20:29
Wohnort: Carces
Hat sich bedankt: 1 mal
Kontaktdaten:

Re: Weewx ConnectionResetError: [Errno 104]

Beitrag von JoachimF »

@Werner,
Werner hat geschrieben: 30 Jul 2026 19:42
Das ist eine Beispiel-Antwort, die empfangen werden sollte, auf diese
Abfrage "get_rain_totals":
Wie stoße ich diese Abfrage an?

Ist die Spannungsversorgung deines GW3000 vielleicht zu schwach oder nicht stabil ?
Oder Netzwerk-Schwankungen.
Der Raspi läuft mit 4 Instanzen, die alle auf den GW3000 zugreifen.
Nur die new-belchertown Instanz "steigt aus".Die anderen 3 laufen problemlos weiter.

Hast Du diese Option in der weewx.conf gesetzt?

Code: Alles auswählen

# Whether to try indefinitely to load the driver
loop_on_init = 1
JA
Gruß Joachim

https://puttkammer.de
Benutzeravatar
Werner
Site Admin
Beiträge: 6191
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 153 mal
Kontaktdaten:

Re: Weewx ConnectionResetError: [Errno 104]

Beitrag von Werner »

Ich hänge Dir mein php-Script an, welches über die http-Api
die Daten abfrägt.
die ".txt" muss entfernt werden.
Du musst die IP-Adresse Deines GW3000 eintragen/abändern.
die geänderte Datei legt Du dann auf deinem Web-Server ab und
startest dann das Script:

Code: Alles auswählen

http://ip-webserver/%pfad wo die get_gw.php Datei liegt%/get_gw.php
Du bekommt damit alle verfügbaren Daten - im Prinzip das was auch der ecowtt_http Treiber erhält.

Code: Alles auswählen

*************************************************************************
response for url http://192.168.0.152/get_version?
--> {"version":"Version: GW3000A_V1.2.2","newVersion":"0","platform":"ecowitt","all_sensors":true,"sensorid_page":"4"}

*************************************************************************
response for url http://192.168.0.152/get_livedata_info?
...
Der Raspi läuft mit 4 Instanzen, die alle auf den GW3000 zugreifen.
Nur die new-belchertown Instanz "steigt aus".Die anderen 3 laufen problemlos weiter.
Dann dürfte damit das GW3000 an seine Grenzen gekommen sein.
Warum eine eigene Instanz für new-belchertown?
Du kannst doch in einer Instanz auch Belchertown und new-belchertown gleichzeitig laufen lassen, ist ja nur ein zusätzlicher Skin-Eintrag und dem entsprechenden Skin-Verzeichnis (new-belchertown)
Dateianhänge
get_gw.php.txt
(3.65 KiB) 9-mal heruntergeladen
Benutzeravatar
JoachimF
Beiträge: 394
Registriert: 08 Dez 2021 20:29
Wohnort: Carces
Hat sich bedankt: 1 mal
Kontaktdaten:

Re: Weewx ConnectionResetError: [Errno 104]

Beitrag von JoachimF »

Dann dürfte damit das GW3000 an seine Grenzen gekommen sein.
Warum eine eigene Instanz für new-belchertown?
Du kannst doch in einer Instanz auch Belchertown und new-belchertown gleichzeitig laufen lassen, ist ja nur ein zusätzlicher Skin-Eintrag und dem entsprechenden Skin-Verzeichnis (new-belchertown)
Das werde ich morgen als erstes ausprobieren.
Gruß Joachim

https://puttkammer.de
Benutzeravatar
JoachimF
Beiträge: 394
Registriert: 08 Dez 2021 20:29
Wohnort: Carces
Hat sich bedankt: 1 mal
Kontaktdaten:

Re: Weewx ConnectionResetError: [Errno 104]

Beitrag von JoachimF »

@Werner,

habe den New-Belchertown Ordner in die Belchertown Instanz kopiert.
Funktioniert. :D
Angemosert wurde der earthquake Eintrag in den weewx.conf, den ich entfernt habe.
Die Belchertown Skin mag nich den EMSC earthquake_server.

Wie stoppe ich am besten die nicht mehr benötigten Instanzen?
Aus disable setzen, denn löschen will ich sie nicht.
Gruß Joachim

https://puttkammer.de
Benutzeravatar
Werner
Site Admin
Beiträge: 6191
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 153 mal
Kontaktdaten:

Re: Weewx ConnectionResetError: [Errno 104]

Beitrag von Werner »

Wie stoppe ich am besten die nicht mehr benötigten Instanzen?
So z.B.:

Code: Alles auswählen

    [[Belchertown]]
        skin = new-belchertown21
        HTML_ROOT = /var/www/html/weewx4/belchertown
        enable = True
        lang = de

    [[Belchertown180]]
        skin = Belchertown180
        HTML_ROOT = /var/www/html/weewx4/belchertown
        enable = False
        lang = de
Entscheidend ist dieser Eintrag "enable = False"
Antworten