Die Karte wirst du wohl ersetzten müssen. Ich habe auch ständig Probleme mit RaspberryPis gehabt und deren Speichermedien: SD-Karten, USB-Sticks, SSDs über USB, alle sind mir eingegangen, teilweise nach weniger als einem Jahr, wobei die externen SSDs noch am längsten hielten und nicht physikalisch zerstört waren, im Gegensatz zu den SD-Karten und USB Sticks. Ich habe mich dann von den RasPis losgesagt und mir eine ZOTAC ZBOX CI337 NANO mit n100 Prozessor gekauft, dazu eine Datacenter grade SSD. 1 Jahr ohne Probleme, aber wer weiß, in 10 Jahren frag mich noch mal :) Wie auch immer, das Ding ist bei nicht mal doppelten Energieverbrauch locker 10x Leistungsfähiger als ein RPi4 und man kann noch alles mögliche andere gleichzeitig drauf laufen lassen und als HTPC taugt das Gerät auch gar nicht so schlecht.. Bei der Stationshardware bin ich bei Ecowitt gelandet, an einen GW3000 kann man Modular so vieles an Sensoren hängen, da bleiben wenig Wünsche offen.
You will probably have to replace the memory card. I also had constant problems with RaspberryPis and their storage media: SD cards, USB sticks, SSDs via USB, all of them died, sometimes after less than a year, whereby the external SSDs lasted the longest and were not physically destroyed, in contrast to the SD cards and USB sticks. I then got rid of the RasPis and bought a ZOTAC ZBOX CI337 NANO with n100 processor, plus a datacenter grade SSD. 1 year without problems, but who knows. Ask me again in 10 years :) Anyway, the thing is easily 10x more powerful than an RPi4 with not even twice the energy consumption and you can run all kinds of other things on it at the same time and as an HTPC the device is not bad at all. For the station hardware I ended up with Ecowitt, you can attach so many sensors to a GW3000 modular, there are few wishes left unfulfilled. https://www.zotac.com/us/product/mini_pcs/zbox-ci337-nano-barebone Günther Wrana schrieb am Freitag, 23. Mai 2025 um 11:25:39 UTC+2: > Danke für die Hilfe es funktioniert wieder. > Eine Frage noch da mein Raspberry ständig die Speicherkarte beleidigt. > Ich dann die Karte erneuern muss oder nur das Backup draufspielen muss. > Wollte ich fragen welche Erfahrungen Ihr hier mit weewx und Raspberry oder > einem anderen Gerät zur installation von weewx habt. > Genau so wollte ich fragen welche Wetterstation würdet Ihr mir empfehlen > wenn ich mir eine neue kaufen sollte. > > Danke sehr und noch einen schönen Tag. > > > Thanks for the help, it's working again. > One more question, since my Raspberry keeps insulting the memory card. > Do I need to replace the card or just copy the backup to it? > I wanted to ask what your experience is with weewx and Raspberry or > another device for installing weewx. > I also wanted to ask which weather station you would recommend if I were > to buy a new one. > > Thank you very much and have a nice day. > > michael.k...@gmx.at schrieb am Dienstag, 20. Mai 2025 um 21:36:09 UTC+2: > >> The database is readonly, you probably net to set the owner/permissions >> for the database file an may be the containing folder. >> >> Hast du die Datenbank manuell bearbeitet/kopiert? Du musst jetzt >> Eigentümer/Rechte für das Datenbankfile und und möglicherweise den Ordner, >> in dem es liegt, richtig setzen. Der user, unter dem das weewx Service >> läuft, hat im moment nicht die notwendigen Rechte. Kaputt ist, so wie sich >> das im Moment darstellt, erst mal noch nix. >> >> Günther Wrana schrieb am Dienstag, 20. Mai 2025 um 21:04:04 UTC+2: >> >>> Hello weewx helpers. >>> >>> Is it possible to make this database still functional? >>> Thanks for your help and have a nice day. >>> Günther >>> >>> Hallo ihr weewx Helfer. >>> >>> Ist es möglich mit diese Datenbank noch funktionsfähig zu machen? >>> Ich danke für die Hilfe und noch einen schönen Tag. >>> >>> Günther >>> >>> >>> Mai 20 20:55:21 32gb weewxd[1847]: ERROR weewx.manager: Unable to add >>> record 2025-05-20 20:55:00 CEST (1747767300) to database 'weewx.sdb': >>> attempt to write a readonly database >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: read_record: write: 02 02 >>> 04 04 (len=4) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: read_record: buf: 01 3b 04 >>> 4a 01 02 7c 02 02 2d 03 01 ec 04 02 2d 05 02 2d 06 30 07 41 08 26 bd 09 26 >>> 9e 0a 00 2d 0b 00 0a 0c 00 0e 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 00 >>> 12 00 00 00 78 13 00 00 (len=61) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: read_record: record_size: >>> 74 >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: read_record: buf: 01 18 01 >>> 86 14 00 00 69 69 15 00 00 00 00 16 00 00 17 00 6c 04 4a 01 02 7c 02 09 26 >>> 9e 0a 00 2d 0b 00 0a 0c 00 0e 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 00 >>> 12 00 00 00 78 13 00 00 (len=61) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: read_record: rbuf: 01 02 >>> 7c 02 02 2d 03 01 ec 04 02 2d 05 02 2d 06 30 07 41 08 26 bd 09 26 9e 0a 00 >>> 2d 0b 00 0a 0c 00 0e 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 00 12 00 00 >>> 00 78 13 00 00 01 86 14 00 00 69 69 15 00 00 00 00 16 00 00 17 00 (len=74) >>> chksum_pkt=6c chksum=0x6c >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: raw data: [1, 2, 124, 2, >>> 2, 45, 3, 1, 236, 4, 2, 45, 5, 2, 45, 6, 48, 7, 65, 8, 38, 189, 9, 38, 158, >>> 10, 0, 45, 11, 0, 10, 12, 0, 14, 14, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 0, 0, >>> 0, 0, 18, 0, 0, 0, 120, 19, 0, 0, 1, 134, 20, 0, 0, 105, 105, 21, 0, 0, 0, >>> 0, 22, 0, 0, 23, 0] >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: in_temp: {'value': 23.6} >>> (0x01 0x01) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: out_temp: {'value': >>> 15.700000000000003} (0x02 0x02) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: dewpoint: {'value': >>> 9.200000000000003} (0x03 0x03) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: windchill: {'value': >>> 15.700000000000003} (0x04 0x04) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: heatindex: {'value': >>> 15.700000000000003} (0x05 0x05) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: in_humidity: {'value': 48} >>> (0x06 0x06) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: out_humidity: {'value': >>> 65} (0x07 0x07) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: abs_baro: {'value': 991.7} >>> (0x08 0x08) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rel_baro: {'value': 988.6} >>> (0x09 0x09) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: wind_dir: {'value': 45} >>> (0x0a 0x0a) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: wind_speed: {'value': 1.0} >>> (0x0b 0x0b) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: gust_speed: {'value': 1.4} >>> (0x0c 0x0c) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rain_rate: {'value': 0.0} >>> (0x0e 0x0e) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rain_day: {'value': 0.0} >>> (0x10 0x10) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rain_week: {'value': 0.0} >>> (0x11 0x11) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rain_month: {'value': >>> 12.0} (0x12 0x12) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rain_year: {'value': 39.0} >>> (0x13 0x13) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: rain_totals: {'value': >>> 2698.5} (0x14 0x14) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: light: {'value': 0.0} >>> (0x15 0x15) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: uv: {'value': 0} (0x16 >>> 0x16) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: uvi: {'value': 0} (0x17 >>> 0x17) >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: decoded data: {'in_temp': >>> {'value': 23.6}, 'out_temp': {'value': 15.700000000000003}, 'dewpoint': >>> {'value': 9.200000000000003}, 'windchill': {'value': 15.700000000000003}, >>> 'heatindex': {'value': 15.700000000000003}, 'in_humidity': {'value': 48}, >>> 'out_humidity': {'value': 65}, 'abs_baro': {'value': 991.7}, 'rel_baro': >>> {'value': 988.6}, 'wind_dir': {'value': 45}, 'wind_speed': {'value': 1.0}, >>> 'gust_speed': {'value': 1.4}, 'rain_rate': {'value': 0.0}, 'rain_day': >>> {'value': 0.0}, 'rain_week': {'value': 0.0}, 'rain_month': {'value': 12.0}, >>> 'rain_year': {'value': 39.0}, 'rain_totals': {'value': 2698.5}, 'light': >>> {'value': 0.0}, 'uv': {'value': 0}, 'uvi': {'value': 0}} >>> Mai 20 20:55:21 32gb weewxd.py[1847]: wh23xx: packet: {'dateTime': >>> 1747767321, 'usUnits': 17, 'windDir': 45, 'windSpeed': 1.0, 'windGust': >>> 1.4, 'inHumidity': 48, 'outHumidity': 65, 'inTemp': 23.6, 'outTemp': >>> 15.700000000000003, 'pressure': 991.7, 'luminosity': 0.0, 'uv_raw': 0, >>> 'UV': 0, 'rain': 0.0, 'radiation': 0.0} >>> Mai 20 20:55:26 32gb weewxd[1847]: INFO weewx.cheetahgenerator: >>> Generated 8 files for report SeasonsReport in 4.56 seconds >>> Mai 20 20:55:27 32gb weewxd[1847]: INFO weewx.imagegenerator: Generated >>> 13 images for report SeasonsReport in 1.29 seconds >>> Mai 20 20:55:27 32gb weewxd[1847]: INFO weewx.reportengine: Copied 5 >>> files to /var/www/html/weewx >>> Mai 20 20:55:33 32gb weewxd[1847]: ERROR weewx.restx: StationRegistry: >>> Failed to publish record 2025-05-20 20:55:00 CEST (1747767300): HTTP Error >>> 429: TOO MANY REQUESTS >>> Mai 20 20:55:36 32gb weewxd.py[1847]: wh23xx: read_record: write: 02 02 >>> 04 04 (len=4) >>> Mai 20 20:55:36 32gb weewxd.py[1847]: wh23xx: read_record: buf: 01 35 02 >>> 2d 03 01 ec 04 02 2d 05 02 2d 06 30 07 41 08 26 bd 09 26 9e 0a 00 2d 0b 00 >>> 0a 0c 00 0e 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 00 12 00 00 00 78 13 >>> 00 00 00 00 78 13 00 00 (len=61) >>> Mai 20 20:55:36 32gb weewxd.py[1847]: wh23xx: get_current: failed >>> attempt 1 of 5: read_record: missing READ_RECORD: 0x02 != 0x04 >>> Mai 20 20:55:46 32gb weewxd.py[1847]: wh23xx: read_record: write: 02 02 >>> 04 04 (len=4) >>> Mai 20 20:55:46 32gb weewxd.py[1847]: wh23xx: read_record: buf: 01 12 01 >>> 86 14 00 00 69 69 15 00 00 00 00 16 00 00 17 00 6c 09 26 9e 0a 00 2d 0b 00 >>> 0a 0c 00 0e 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 00 12 00 00 00 78 13 >>> 00 00 00 00 78 13 00 00 (len=61) >>> Mai 20 20:55:46 32gb weewxd.py[1847]: wh23xx: get_current: failed >>> attempt 2 of 5: read_record: missing READ_RECORD: 0x01 != 0x04 >>> >>> >>> michael.k...@gmx.at schrieb am Freitag, 21. März 2025 um 09:03:16 UTC+1: >>> >>>> The wh23xx error message seems to be from the wh23xx driver. I'd >>>> understand it in a way that there seem to be inconsistencies/errors in the >>>> stations hardware memory. >>>> >>>> >>>> Günther Wrana schrieb am Donnerstag, 20. März 2025 um 21:42:08 UTC+1: >>>> >>>>> Thank you very much, I imported an old database and now it's working >>>>> again. >>>>> >>>>> What can I do to remove the following error messages? >>>>> >>>>> >>>>> Danke schön ich habe eine alte Datenbank eingespielt und nun läuft es >>>>> wieder. >>>>> >>>>> Was kann ich tun um die folgenden Fehlermeldungen zu entfernen? >>>>> >>>>> [image: Bildschirmfoto vom 2025-03-20 21-37-53.png] >>>>> >>>>> Grüße Günther >>>>> >>>>> Best regards, Günther >>>>> michael.k...@gmx.at schrieb am Donnerstag, 20. März 2025 um 05:35:54 >>>>> UTC+1: >>>>> >>>>>> Deine weewx.sdb (oder wie auch immer dein Datenbankfile heißt) ist >>>>>> kaputt. Ersetze es durch die aktuellste Sicherung und gehe der Ursache >>>>>> (SD-Karte kaputt?) auf den Grund. >>>>>> >>>>>> Günther Wrana schrieb am Mittwoch, 19. März 2025 um 21:45:57 UTC+1: >>>>>> >>>>>>> Hello weewx experts, once again weewx isn't working properly on my >>>>>>> Raspberry Pi. >>>>>>> The following error message appears after restarting weewx. >>>>>>> >>>>>>> >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: read_record: write: >>>>>>> 02 02 04 04 (len=4) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: read_record: buf: 01 >>>>>>> 3b 04 4a 01 02 67 02 01 bc 03 01 4f 04 01 a7 05 01 bc 06 27 07 2d 08 27 >>>>>>> 47 >>>>>>> 09 27 28 0a 00 87 0b 00 18 0c 00 1f 0e 00 00 00 00 10 00 00 00 00 11 00 >>>>>>> 00 >>>>>>> 00 00 12 00 00 00 96 13 00 00 (len=61) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: read_record: >>>>>>> record_size: 74 >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: read_record: buf: 01 >>>>>>> 12 00 ae 14 00 00 68 91 15 00 00 00 00 16 00 00 17 00 2d 27 07 2d 08 27 >>>>>>> 47 >>>>>>> 09 27 28 0a 00 87 0b 00 18 0c 00 1f 0e 00 00 00 00 10 00 00 00 00 11 00 >>>>>>> 00 >>>>>>> 00 00 12 00 00 00 96 13 00 00 (len=61) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: read_record: rbuf: >>>>>>> 01 02 67 02 01 bc 03 01 4f 04 01 a7 05 01 bc 06 27 07 2d 08 27 47 09 27 >>>>>>> 28 >>>>>>> 0a 00 87 0b 00 18 0c 00 1f 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 00 >>>>>>> 12 >>>>>>> 00 00 00 96 13 00 00 00 ae 14 00 00 68 91 15 00 00 00 00 16 00 00 17 00 >>>>>>> (len=74) chksum_pkt=2d chksum=0x2d >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: raw data: [1, 2, >>>>>>> 103, 2, 1, 188, 3, 1, 79, 4, 1, 167, 5, 1, 188, 6, 39, 7, 45, 8, 39, >>>>>>> 71, 9, >>>>>>> 39, 40, 10, 0, 135, 11, 0, 24, 12, 0, 31, 14, 0, 0, 0, 0, 16, 0, 0, 0, >>>>>>> 0, >>>>>>> 17, 0, 0, 0, 0, 18, 0, 0, 0, 150, 19, 0, 0, 0, 174, 20, 0, 0, 104, 145, >>>>>>> 21, >>>>>>> 0, 0, 0, 0, 22, 0, 0, 23, 0] >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: in_temp: {'value': >>>>>>> 21.5} (0x01 0x01) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: out_temp: {'value': >>>>>>> 4.399999999999999} (0x02 0x02) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: dewpoint: {'value': >>>>>>> -6.5} (0x03 0x03) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: windchill: {'value': >>>>>>> 2.299999999999997} (0x04 0x04) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: heatindex: {'value': >>>>>>> 4.399999999999999} (0x05 0x05) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: in_humidity: >>>>>>> {'value': 39} (0x06 0x06) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: out_humidity: >>>>>>> {'value': 45} (0x07 0x07) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: abs_baro: {'value': >>>>>>> 1005.5} (0x08 0x08) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rel_baro: {'value': >>>>>>> 1002.4} (0x09 0x09) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: wind_dir: {'value': >>>>>>> 135} (0x0a 0x0a) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: wind_speed: >>>>>>> {'value': 2.4} (0x0b 0x0b) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: gust_speed: >>>>>>> {'value': 3.1} (0x0c 0x0c) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rain_rate: {'value': >>>>>>> 0.0} (0x0e 0x0e) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rain_day: {'value': >>>>>>> 0.0} (0x10 0x10) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rain_week: {'value': >>>>>>> 0.0} (0x11 0x11) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rain_month: >>>>>>> {'value': 15.0} (0x12 0x12) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rain_year: {'value': >>>>>>> 17.4} (0x13 0x13) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: rain_totals: >>>>>>> {'value': 2676.9} (0x14 0x14) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: light: {'value': >>>>>>> 0.0} (0x15 0x15) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: uv: {'value': 0} >>>>>>> (0x16 0x16) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: uvi: {'value': 0} >>>>>>> (0x17 0x17) >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: decoded data: >>>>>>> {'in_temp': {'value': 21.5}, 'out_temp': {'value': 4.399999999999999}, >>>>>>> 'dewpoint': {'value': -6.5}, 'windchill': {'value': 2.299999999999997}, >>>>>>> 'heatindex': {'value': 4.399999999999999}, 'in_humidity': {'value': >>>>>>> 39}, >>>>>>> 'out_humidity': {'value': 45}, 'abs_baro': {'value': 1005.5}, >>>>>>> 'rel_baro': >>>>>>> {'value': 1002.4}, 'wind_dir': {'value': 135}, 'wind_speed': {'value': >>>>>>> 2.4}, 'gust_speed': {'value': 3.1}, 'rain_rate': {'value': 0.0}, >>>>>>> 'rain_day': {'value': 0.0}, 'rain_week': {'value': 0.0}, 'rain_month': >>>>>>> {'value': 15.0}, 'rain_year': {'value': 17.4}, 'rain_totals': {'value': >>>>>>> 2676.9}, 'light': {'value': 0.0}, 'uv': {'value': 0}, 'uvi': {'value': >>>>>>> 0}} >>>>>>> Mär 19 21:25:26 32GB weewxd.py[113134]: wh23xx: packet: {'dateTime': >>>>>>> 1742415926, 'usUnits': 17, 'windDir': 135, 'windSpeed': 2.4, >>>>>>> 'windGust': >>>>>>> 3.1, 'inHumidity': 39, 'outHumidity': 45, 'inTemp': 21.5, 'outTemp': >>>>>>> 4.399999999999999, 'pressure': 1005.5, 'luminosity': 0.0, 'uv_raw': 0, >>>>>>> 'UV': 0, 'rain': 0.0, 'radiation': 0.0} >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: INFO weewx.engine: Main loop >>>>>>> exiting. Shutting engine down. >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: Caught >>>>>>> unrecoverable exception: >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> database disk image is malformed >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Traceback (most recent call last): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 210, in run >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet)) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> callback(event) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 662, in check_loop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> raise BreakLoop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> weewx.engine.BreakLoop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> During handling of the above exception, another exception occurred: >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Traceback (most recent call last): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 678, in post_loop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self._catchup(self.engine.console.genArchiveRecords) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 725, in _catchup >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> for record in generator(lastgood_ts): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> ^^^^^^^^^^^^^^^^^^^^^^ >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/drivers/__init__.py", line 31, in >>>>>>> genArchiveRecords >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> raise NotImplementedError("Method 'genArchiveRecords' not implemented") >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> NotImplementedError: Method 'genArchiveRecords' not implemented >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> During handling of the above exception, another exception occurred: >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Traceback (most recent call last): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewxd.py", line 127, in main >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> engine.run() >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 217, in run >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self.dispatchEvent(weewx.Event(weewx.POST_LOOP)) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> callback(event) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 680, in post_loop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self._software_catchup() >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 743, in _software_catchup >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> callback(event) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/engine.py", line 703, in >>>>>>> new_archive_record >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> dbmanager.addRecord(event.record, >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/manager.py", line 401, in addRecord >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self._updateHiLo(accumulator, cursor) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/manager.py", line 1219, in _updateHiLo >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> self._set_day_summary(_stats_dict, accumulator.timespan.stop, cursor) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weewx/manager.py", line 1640, in >>>>>>> _set_day_summary >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: Traceback (most recent call >>>>>>> last): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 210, in run >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> cursor.execute(_sql_replace_str, _write_tuple) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet)) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: callback(event) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 662, in check_loop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: raise BreakLoop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: weewx.engine.BreakLoop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: During handling of the above >>>>>>> exception, another exception occurred: >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> return fn(*args, **kwargs) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: Traceback (most recent call >>>>>>> last): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 678, in post_loop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> self._catchup(self.engine.console.genArchiveRecords) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 725, in _catchup >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> ^^^^^^^^^^^^^^^^^^^ >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: for record in >>>>>>> generator(lastgood_ts): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> ^^^^^^^^^^^^^^^^^^^^^^ >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/drivers/__init__.py", line 31, in >>>>>>> genArchiveRecords >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: raise >>>>>>> NotImplementedError("Method 'genArchiveRecords' not implemented") >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: NotImplementedError: Method >>>>>>> 'genArchiveRecords' not implemented >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: During handling of the above >>>>>>> exception, another exception occurred: >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: Traceback (most recent call >>>>>>> last): >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewxd.py", line 226, in <module> >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: main() >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewxd.py", line 127, in main >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: engine.run() >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 217, in run >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> self.dispatchEvent(weewx.Event(weewx.POST_LOOP)) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: callback(event) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> return sqlite3.Cursor.execute(self, *args, **kwargs) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 680, in post_loop >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: self._software_catchup() >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 743, in _software_catchup >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: callback(event) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/engine.py", line 703, in new_archive_record >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> dbmanager.addRecord(event.record, >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/manager.py", line 401, in addRecord >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> sqlite3.DatabaseError: database disk image is malformed >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> self._updateHiLo(accumulator, cursor) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/manager.py", line 1219, in _updateHiLo >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: CRITICAL __main__: **** >>>>>>> Exiting. >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> self._set_day_summary(_stats_dict, accumulator.timespan.stop, cursor) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weewx/manager.py", line 1640, in _set_day_summary >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> cursor.execute(_sql_replace_str, _write_tuple) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: return fn(*args, **kwargs) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: ^^^^^^^^^^^^^^^^^^^ >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: File >>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 233, in execute >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: return >>>>>>> sqlite3.Cursor.execute(self, *args, **kwargs) >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: >>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>>>>> Mär 19 21:25:26 32GB weewxd[113134]: sqlite3.DatabaseError: database >>>>>>> disk image is malformed >>>>>>> Mär 19 21:25:26 32GB systemd[1]: weewx.service: Main process exited, >>>>>>> code=exited, status=1/FAILURE >>>>>>> Mär 19 21:25:26 32GB systemd[1]: weewx.service: Failed with result >>>>>>> 'exit-code'. >>>>>>> Mär 19 21:25:26 32GB systemd[1]: weewx.service: Consumed 1.588s CPU >>>>>>> time. >>>>>>> >>>>>>> >>>>>>> What or how can I get it working again? >>>>>>> Or do I have to reinstall the whole thing? >>>>>>> Thanks again for your support and have a nice evening. >>>>>>> Best regards, Günther >>>>>>> >>>>>>> >>>>>>> Hallo weewx Experten, wieder einmal funktioniert weewx auf meinem >>>>>>> Raspberry Pi nicht richtig. >>>>>>> >>>>>>> Folgende Fehlermeldung erscheind nach dem Neustart von weewx. >>>>>>> >>>>>>> [image: Bildschirmfoto vom 2025-03-19 21-41-08.png] >>>>>>> [image: Bildschirmfoto vom 2025-03-19 21-41-27.png] >>>>>>> [image: Bildschirmfoto vom 2025-03-19 21-42-04.png] >>>>>>> Was oder wie kann ich das ganze wieder funktionfähig machen? >>>>>>> Oder muss ich das ganze wieder einmal neu installieren. >>>>>>> >>>>>>> Ich danke wieder einmal für die Unterstützung und wünsche noch einen >>>>>>> schönen Abend. >>>>>>> >>>>>>> Grüße Günther >>>>>>> >>>>>>> I hope you understand my problem and thanks for all. >>>>>>> >>>>>>> Günther >>>>>>> michael.k...@gmx.at schrieb am Samstag, 12. Oktober 2024 um >>>>>>> 13:47:14 UTC+2: >>>>>>> >>>>>>>> Schön zu hören :) Grüße aus Salzburg. >>>>>>>> >>>>>>>> Günther Wrana schrieb am Samstag, 12. Oktober 2024 um 10:29:43 >>>>>>>> UTC+2: >>>>>>>> >>>>>>>>> Hallo ich danke allen die mir wieder einmal geholfen haben. >>>>>>>>> >>>>>>>>> Ich habe die Endungen im Treiber von Wh28xx auf Wh23xx geändert. >>>>>>>>> >>>>>>>>> Dann so wie EdwinZ geschrieben hat die weewx.rules in den Pfad >>>>>>>>> /etc/udev/rules.d/ kopiert und neu gestartet. >>>>>>>>> >>>>>>>>> Ab dann hat schon alles ohne Fehler funktioniert. Ich danke >>>>>>>>> vielmals für die Hilfe. >>>>>>>>> >>>>>>>>> Auf www.guentherwrana.ddns.net könnt ihr meine Werte sehen. >>>>>>>>> >>>>>>>>> VIELEN VIELEN Dank nochals aus Niederösterreich und schöne Grüße >>>>>>>>> Günther >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Hello, I thank everyone who helped me once again. >>>>>>>>> >>>>>>>>> I changed the endings in the driver from Wh28xx to Wh23xx. >>>>>>>>> >>>>>>>>> Then, as EdwinZ wrote, copied the rules.d to the path >>>>>>>>> /etc/udev/rules.d/ and restarted. From then on, everything worked >>>>>>>>> without >>>>>>>>> errors. >>>>>>>>> >>>>>>>>> Thank you very much for your help. >>>>>>>>> >>>>>>>>> On www.guentherwrana.ddns.net you can see my values. >>>>>>>>> >>>>>>>>> THANK YOU again from Lower Austria and best regards Günther >>>>>>>>> >>>>>>>>> >>>>>>>>> EdwinZ schrieb am Montag, 7. Oktober 2024 um 09:54:03 UTC+2: >>>>>>>>> >>>>>>>>>> Hi Guenther, did you also copy the weewx.rules file from >>>>>>>>>> /etc/weewx/udev/ to /etc/udev/rules.d/ ? >>>>>>>>>> And then reboot the system? >>>>>>>>>> >>>>>>>>>> I played around a bit yesterday with USB and access rights, and >>>>>>>>>> if your udev rules work well, the following Python code should show >>>>>>>>>> the >>>>>>>>>> manufacturer and product; when the rules do not work, it complains >>>>>>>>>> about a >>>>>>>>>> langid it can't find (not sure why this error is thrown): >>>>>>>>>> >>>>>>>>>> import usb.core >>>>>>>>>> import usb.util >>>>>>>>>> for xdev in usb.core.find(find_all=True): >>>>>>>>>> print("Raw idVendor = %s, idProduct = %s" % (xdev.idVendor, >>>>>>>>>> xdev.idProduct)) >>>>>>>>>> vidhex_str = "{:04X}".format(xdev.idVendor) >>>>>>>>>> pidhex_str = "{:04X}".format(xdev.idProduct) >>>>>>>>>> try: >>>>>>>>>> langids_str = usb.util.get_langids(xdev) >>>>>>>>>> print("Lang raw %s" % langids_str) >>>>>>>>>> except Exception as e: >>>>>>>>>> langids_str = e >>>>>>>>>> print("Lang exception %s" % langids_str) >>>>>>>>>> try: >>>>>>>>>> mfr_str = usb.util.get_string(xdev, xdev.iManufacturer) >>>>>>>>>> print("Mft raw %s" % mfr_str) >>>>>>>>>> except Exception as e: >>>>>>>>>> mfr_str = e >>>>>>>>>> print("Mft exception %s" % mfr_str) >>>>>>>>>> try: >>>>>>>>>> prod_str = usb.util.get_string(xdev, xdev.iProduct) >>>>>>>>>> print("Prod raw %s" % prod_str) >>>>>>>>>> except Exception as e: >>>>>>>>>> prod_str = e >>>>>>>>>> print("Prod exception %s" % prod_str) >>>>>>>>>> out_str = "VID: 0x{}, PID: 0x{}, Mfr: '{}', Prod: >>>>>>>>>> '{}'".format(vidhex_str, pidhex_str, mfr_str, prod_str) >>>>>>>>>> print(out_str) >>>>>>>>>> >>>>>>>>>> What you can do is just run python, and paste the above in your >>>>>>>>>> shell window and press enter until it executes. If you run python as >>>>>>>>>> root (sudo >>>>>>>>>> python) it always shows the USB devices info. >>>>>>>>>> I did not find another way to check if the udev rules permissions >>>>>>>>>> are working. One thing I did find out is that the udev rules file is >>>>>>>>>> case >>>>>>>>>> sensitive, also on hex values like 10c4 (10C4 did not work...) >>>>>>>>>> >>>>>>>>>> Happy testing! >>>>>>>>>> Edwin >>>>>>>>>> >>>>>>>>>> PS Yesterday I also updated my WH23xx code to have more debugging >>>>>>>>>> and USB info; it will not help you with the above, but I did not >>>>>>>>>> like the >>>>>>>>>> code to show empty strings with the USB device ("bus= device="), so >>>>>>>>>> fixed >>>>>>>>>> that to show Silicon Labs and HIDtoSPI Slave >>>>>>>>>> On Sunday, October 6, 2024 at 11:54:52 AM UTC+2 Günther Wrana >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Es funktioniert auch nicht wenn ich das in die Datei rules >>>>>>>>>>> eintrage. >>>>>>>>>>> >>>>>>>>>>> [image: Bildschirmfoto vom 2024-10-06 11-47-02.png] >>>>>>>>>>> >>>>>>>>>>> Wenn ich dann Neustarte kommt wieder diese Meldung. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> [image: Bildschirmfoto vom 2024-10-06 11-47-22.png] >>>>>>>>>>> >>>>>>>>>>> Vor allem kann ich weewx nicht anhalten auch wenn ich hunderte >>>>>>>>>>> male sudo systemctl stop weewx schreibe. >>>>>>>>>>> >>>>>>>>>>> Ich weiß nicht wo nun das ganze Problem liegt. >>>>>>>>>>> Danke sehr >>>>>>>>>>> >>>>>>>>>> -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/06cce547-acfd-49f4-a54c-a4a715ce5788n%40googlegroups.com.