Hallo und Guten Morgen, Sehr gute Arbeit, Danke. Die Status-Anzeige für die AirQ's finde ich sehr gelungen, einfach KLASSE Ich muss noch ein Eingeständnis machen, ich habe die airQ_corant.py etwas geändert. Mein aktuelles Schema in der Datei cmon.py Die Änderungen in airQ_corant.py betreffen den prefix für alle Werte z.B. "cnt1" wurde zu "airqcnt1" Sorry Ebenso die Anpassungen in der airq_conf.py auch hier habe ich durchgängig den prefiy "airq" verwendet Auch enthalten sind die Werte dCO2dt, HumAbsDelta und Battery Ich bitte um Nachsicht. Die Werte für Status und DeviceID sind nicht Bestandteil der Datenbank? Zu meinen Änderungen kann ich nur sagen, ich verwende 4 Raspi für die Ermittlung von Luftwerten, Blitzen und Air-SDS001, 1x outdoor und einmal im Büro und da tauchen die Werte für pm1, pm25 und pm10 mehrfach auf. Aus diesem Grund hatte ich die Angaben in airQ von Anfang an mit dem prefix "airq" bezeichnent. Ausserdem läuft neben dem Weewx-Wetter-Rechner noch ein Weewx-Haus-Rechner, in Hausrechner werden die Werte aus dem Haus dargestellt währende der Wetter-Rechner öffentlich ist. Hilfsweise hatte ich eine airQ_corantDB.py geschrieben nach der Vorgabe von airQ_corent, wann jedoch die AirQ's kalibrieren gibt es noch zahlreiche Fehler. Danke Hartmut kk44...@gmail.com schrieb am Samstag, 4. September 2021 um 19:52:10 UTC+2: > Ich habe mir weewx-com angesehen. Dort wird das Datenbankschema ganz > anders beschrieben als in der Standard-Installation. Ich habe mal etwas in > airq_conf.py ergänzt und hoffe, daß es damit funktioniert. Einige andere > Korrekturen standen auch noch an: > > - Der Hersteller hat die Umrechnung zwischen Massenkonzentration und > Volumenkonzentration mit der Firmwareversion 1.75 geändert. weewx-airQ > folgt dem jetzt. > - Es gab noch einen Fehler, der dazu führte, daß die Geräte-ID und der > Geräte-Status nicht übertragen wurden. Dieser Fehler ist jetzt beseitigt. > Mit einer neu erzeugten Skin werden beide Werte oben rechts angezeigt. > - Und ja, den Fehler in install.py habe ich korrigiert. Nochmals > vielen Dank für den Hinweis. > > English Summary: > > This thread is about the weewx-airQ extension. The thread opener > experienced a problem adding the columns for the device to the database. > The reason was a bug that only gets into effect if the database schema is > defined in weewx.conf directly instead of a file in the schema > sub-directory. I hope to have fixed that bug. > > Additionally, the following changes were made to the extension: > > - The manufacturer of the airQ device changed the algorithm to convert > from volume to mass (ppm to mg/m^3 or ppb to µg/m^3). The new algorithm is > now included in weewx-airQ, too. > - There was a bug that caused DeviceID and Status to be always None. > This bug is fixed. > - DeviceID and Status are displayed in the skin created by airq_conf. > - There was a bug in install.py that caused installation to fail. It > is fixed. Thanks to Hartmut, who pointed to the bug. > > > Karen K schrieb am Samstag, 4. September 2021 um 18:54:48 UTC+2: > >> Darf ich noch den [DataBindings]-Abschnitt aus der weewx.conf sehen? Ich >> würde das Problem aus airq_conf.py gern noch beseitigen. >> >> Karen K schrieb am Samstag, 4. September 2021 um 18:42:45 UTC+2: >> >>> Vielen Dank erst einmal für den Fehlerhinweis in install.py. >>> >>> hesf...@gmail.com schrieb am Samstag, 4. September 2021 um 16:07:17 >>> UTC+2: >>> >>>> Nach Umstellung auf Mysql >>>> Sep 4 15:40:59 ba001 weewx[24174]: Starting weewx weather system: >>>> weewx. >>>> Sep 4 15:40:59 ba001 systemd[1]: Started LSB: weewx weather system. >>>> Sep 4 15:41:00 ba001 weewx[24187] INFO user.airQ: air-Q 0.7 initialize >>>> units >>>> Sep 4 15:41:00 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device': observation group dict {'og_Temp': 'group_temperature', >>>> 'og_Humidity': 'group_percent', 'og_HumAbs': 'group_concentration', >>>> 'og_Dewpoint': 'group_temperature', 'og_Pressure': 'group_pressure', >>>> 'og_Altimeter': 'group_pressure', 'og_Barometer': 'group_pressure', >>>> 'og_co_m': 'group_concentration', 'og_co': 'group_fraction', 'og_co2': >>>> 'group_fraction', 'og_h2s': 'group_concentration', 'og_no2_m': >>>> 'group_concentration', 'og_no2': 'group_fraction', 'og_pm1_0': >>>> 'group_concentration', 'og_pm2_5': 'group_concentration', 'og_pm10_0': >>>> 'group_concentration', 'og_o3_m': 'group_concentration', 'og_o3': >>>> 'group_fraction', 'og_so2_m': 'group_concentration', 'og_so2': >>>> 'group_fraction', 'og_TVOC': 'group_fraction', 'og_o2': 'group_percent', >>>> 'og_noise': 'group_db', 'og_PerfIdx': 'group_percent', 'og_HealthIdx': >>>> 'group_percent', 'og_cnt0_3': 'group_count', 'og_cnt0_5': 'group_count', >>>> 'og_cnt1_0': 'group_count', 'og_cnt2_5': 'group_count', 'og_cnt5_0': >>>> 'group_count', 'og_cnt10_0': 'group_count', 'og_Temp_e': 'group_percent'} >>>> Sep 4 15:41:00 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device': observation group dict {'eg_Temp': 'group_temperature', >>>> 'eg_Humidity': 'group_percent', 'eg_HumAbs': 'group_concentration', >>>> 'eg_Dewpoint': 'group_temperature', 'eg_Pressure': 'group_pressure', >>>> 'eg_Altimeter': 'group_pressure', 'eg_Barometer': 'group_pressure', >>>> 'eg_co_m': 'group_concentration', 'eg_co': 'group_fraction', 'eg_co2': >>>> 'group_fraction', 'eg_h2s': 'group_concentration', 'eg_no2_m': >>>> 'group_concentration', 'eg_no2': 'group_fraction', 'eg_pm1_0': >>>> 'group_concentration', 'eg_pm2_5': 'group_concentration', 'eg_pm10_0': >>>> 'group_concentration', 'eg_o3_m': 'group_concentration', 'eg_o3': >>>> 'group_fraction', 'eg_so2_m': 'group_concentration', 'eg_so2': >>>> 'group_fraction', 'eg_TVOC': 'group_fraction', 'eg_o2': 'group_percent', >>>> 'eg_noise': 'group_db', 'eg_PerfIdx': 'group_percent', 'eg_HealthIdx': >>>> 'group_percent', 'eg_cnt0_3': 'group_count', 'eg_cnt0_5': 'group_count', >>>> 'eg_cnt1_0': 'group_count', 'eg_cnt2_5': 'group_count', 'eg_cnt5_0': >>>> 'group_count', 'eg_cnt10_0': 'group_count', 'eg_Temp_e': 'group_percent'} >>>> Sep 4 15:41:00 ba001 weewx[24187] INFO user.airQ: air-Q 0.7 service >>>> Sep 4 15:41:00 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device' host address '192.168.38.18' prefix 'og' query interval 5.0 >>>> s altitude 54 m >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device' device id: 99...02a >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device' firmware version: 1.20.2.r4_D_1.75 >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device' sensors: ['co', 'co2', 'no2', 'o3', 'oxygen', >>>> 'particulates', 'pressure', 'so2', 'sound', 'temperature', 'tvoc', >>>> 'humidity', 'humidity_abs', 'dewpt'] >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device' concentration units config: µg/m^3 >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: thread >>>> 'first_device', host '192.168.38.18': initialized >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: device >>>> 'first_device' QFF calculation temperature source: outTemp >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: thread >>>> 'first_device', host '192.168.38.18': starting >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device' host address '192.168.38.19' prefix 'eg' query interval 5.0 >>>> s altitude 54 m >>>> Sep 4 15:41:01 ba001 weewx[24187] INFO user.airQ: thread >>>> 'first_device', host '192.168.38.18': 200 - OK >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device' device id: 21...063 >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device' firmware version: 1.20.2.r4_D_1.75 >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device' sensors: ['co', 'co2', 'no2', 'particulates', 'pressure', >>>> 'sound', 'temperature', 'tvoc', 'humidity', 'humidity_abs', 'dewpt'] >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device' concentration units config: µg/m^3 >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: thread >>>> 'second_device', host '192.168.38.19': initialized >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: device >>>> 'second_device' QFF calculation temperature source: outTemp >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: thread >>>> 'second_device', host '192.168.38.19': starting >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO user.airQ: 2 air-Q devices found >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.engine: StdConvert target >>>> unit is 0x10 >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.wxservices: >>>> StdWXCalculate will use data binding wx_binding >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.engine: Archive will use >>>> data binding wx_binding >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.engine: Record generation >>>> will be attempted in 'hardware' >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.engine: Using archive >>>> interval of 300 seconds (specified in weewx configuration) >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO __main__: Starting up weewx >>>> version 4.6.0b1 >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.engine: Using binding >>>> 'wx_binding' to database 'weeAirQxHaus' >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.manager: Starting >>>> backfill of daily summaries >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.manager: Daily summaries >>>> up to date >>>> Sep 4 15:41:02 ba001 weewx[24187] INFO weewx.engine: Starting main >>>> packet loop. >>>> Sep 4 15:41:03 ba001 weewx[24187] INFO user.airQ: thread >>>> 'second_device', host '192.168.38.19': 200 - OK >>>> Sep 4 15:45:38 ba001 weewx[24187] INFO weewx.manager: Added record >>>> 2021-09-04 15:45:00 CEST (1630763100) to database 'weeAirQxHaus' >>>> Sep 4 15:45:38 ba001 weewx[24187] INFO weewx.manager: Added record >>>> 2021-09-04 15:45:00 CEST (1630763100) to daily summary in 'weeAirQxHaus' >>>> >>>> Sep 4 15:45:50 ba001 weewx[24187] INFO weewx.reportengine: Using >>>> localization file /home/weewx/skins/airQ/lang/de.conf for report >>>> 'airqReport' >>>> Sep 4 15:45:51 ba001 weewx[24187] INFO weewx.cheetahgenerator: >>>> Generated 3 files for report airqReport in 1.27 seconds >>>> Sep 4 15:45:55 ba001 weewx[24187] INFO weewx.imagegenerator: Generated >>>> 27 images for report airqReport in 3.43 seconds >>>> Sep 4 15:45:55 ba001 weewx[24187] INFO weewx.reportengine: Copied 5 >>>> files to /home/weewx/public_html/airQ >>>> >>>> Danke es läuft fast vollständig. >>>> >>>> Eine Anmerkung "Luftdruck" Barometer wird nicht berechnent, ich habe >>>> keine Daten für "outTemp" in der Datenbank habe. >>>> >>>> Schön wenn auch die Fehlerwerte mit gespeichert werden könnten >>>> "oxygen": [20.123, 0.87], val[0] = Wert, val[1] = Fehler in % >>>> "dewpt": [13.825, 0.8], val[0] = Wert, val[1] = Fehler in % >>>> "pm10": [14, 11], val[0] = Wert, val[1] = Fehler in % >>>> >>>> Vielen Dank >>>> Hartmut >>>> >>>> hesf...@gmail.com schrieb am Samstag, 4. September 2021 um 15:36:55 >>>> UTC+2: >>>> >>>>> Hallo, >>>>> nach DB-Löschung und Neustart alles IO bis auf db-Generierung durch >>>>> airq_conf.py >>>>> Ich habe einfach per Hand eine neue SCHEMA Vorlage erstellt >>>>> ('og_Temp', 'REAL'), >>>>> ('og_Humidity', 'REAL'), >>>>> ('og_HumAbs', 'REAL'), >>>>> ('og_Dewpoint', 'REAL'), >>>>> ('og_Pressure', 'REAL'), >>>>> ('og_Altimeter', 'REAL'), >>>>> ('og_Barometer', 'REAL'), >>>>> ('og_co_m', 'REAL'), >>>>> ('og_co', 'REAL'), >>>>> ('og_co2', 'REAL'), >>>>> ('og_h2s', 'REAL'), >>>>> ('og_no2', 'REAL'), >>>>> ('og_pm1_0', 'REAL'), >>>>> ('og_pm2_5', 'REAL'), >>>>> .... >>>>> ('eg_PerfIdx', 'REAL'), >>>>> ('eg_HealthIdx', 'REAL'), >>>>> ('eg_cnt0_3', 'REAL'), >>>>> ('eg_cnt0_5', 'REAL'), >>>>> ('eg_cnt1_0', 'REAL'), >>>>> ('eg_cnt2_5', 'REAL'), >>>>> ('eg_cnt5_0', 'REAL'), >>>>> ('eg_cnt10_0', 'REAL'), >>>>> ('eg_TypPS', 'REAL'), >>>>> ('eg_Battery', 'REAL'), >>>>> ('eg_DoorEvent', 'REAL'), >>>>> ('eg_HumAbsDelta', 'REAL'), >>>>> ('eg_CO2delta', 'REAL'), >>>>> mit eine SQLITE-Datenbank läuft es mit zwei airQ's einer im >>>>> Obergeschoss und einer im Erdgeschoss. >>>>> Ich muss eine kleine Änderung eingestehen >>>>> in install.py >>>>> >>>>> files=[('bin/user', ['bin/user/airQ_corant.py','bin/user/airq_conf.py'] >>>>> ) , >>>>> ('bin', ['bin/airq_conf'])] >>>>> >>>>> ein ")" eingefügt. >>>>> >>>>> Hartmut >>>>> hesf...@gmail.com schrieb am Samstag, 4. September 2021 um 15:12:46 >>>>> UTC+2: >>>>> >>>>>> Ja gibt es! >>>>>> >>>>>> kk44...@gmail.com schrieb am Samstag, 4. September 2021 um 15:10:11 >>>>>> UTC+2: >>>>>> >>>>>>> Gibt es den Eintrag user.airQ_corant.AirqUnits in der Zeile >>>>>>> prep_services? >>>>>>> >>>>>>> hesf...@gmail.com schrieb am Samstag, 4. September 2021 um 12:32:26 >>>>>>> UTC+2: >>>>>>> >>>>>>>> Hallo, >>>>>>>> der Hinweis mit /lang in /Seasons war Gold wert. >>>>>>>> Und hier der Auszug aus weewx.conf >>>>>>>> [airQ] >>>>>>>> >>>>>>>> [[first_device]] >>>>>>>> host = 192.168.38.18 >>>>>>>> password = passwd >>>>>>>> prefix = og >>>>>>>> #altitude = set_if_not_station_altitude >>>>>>>> >>>>>>>> [[second_device]] >>>>>>>> host = 192.168.38.19 >>>>>>>> password = passwd >>>>>>>> prefix = eg >>>>>>>> #altitude = set_if_not_station_altitude >>>>>>>> >>>>>>>> Jetzt kommt: >>>>>>>> Sep 4 12:25:44 ba001 weewx[11803] INFO weewx.reportengine: Using >>>>>>>> localization file /home/weewx/skins/airQ/lang/de.conf for report >>>>>>>> 'airqReport' >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> Generate failed with exception '' >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** Ignoring template /home/weewx/skins/airQ/first_device.html.tmpl >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** Reason: cannot find 'milligram_per_meter_cubed' while searching for >>>>>>>> 'current.og_co.milligram_per_meter_cubed' >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** Traceback (most recent call last): >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** File "/home/weewx/bin/weewx/cheetahgenerator.py", line 332, in >>>>>>>> generate >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** unicode_string = compiled_template.respond() >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** File "_home_weewx_skins_airQ_first_device_html_tmpl.py", line 328, >>>>>>>> in respond >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** NameMapper.NotFound: cannot find 'milligram_per_meter_cubed' while >>>>>>>> searching for 'current.og_co.milligram_per_meter_cubed' >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> Generate failed with exception '' >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** Ignoring template /home/weewx/skins/airQ/second_device.html.tmpl >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** Reason: cannot find 'milligram_per_meter_cubed' while searching for >>>>>>>> 'current.eg_co.milligram_per_meter_cubed' >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** Traceback (most recent call last): >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** File "/home/weewx/bin/weewx/cheetahgenerator.py", line 332, in >>>>>>>> generate >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** unicode_string = compiled_template.respond() >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** File "_home_weewx_skins_airQ_second_device_html_tmpl.py", line 328, >>>>>>>> in respond >>>>>>>> Sep 4 12:25:45 ba001 weewx[11803] ERROR weewx.cheetahgenerator: >>>>>>>> **** NameMapper.NotFound: cannot find 'milligram_per_meter_cubed' while >>>>>>>> searching for 'current.eg_co.milligram_per_meter_cubed' >>>>>>>> >>>>>>>> Nach Neustart >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.cmon: cpuinfo: CPU >>>>>>>> variant: 0x0 >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.cmon: cpuinfo: CPU >>>>>>>> part: 0xc07 >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.cmon: cpuinfo: CPU >>>>>>>> revision: 4 >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.cmon: cpuinfo: >>>>>>>> Hardware: Allwinner sun7i (A20) Family >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.cmon: cpuinfo: >>>>>>>> Revision: 0000 >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.cmon: cpuinfo: Serial: >>>>>>>> 1651660f08c142bc >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.airQ: air-Q 0.7 >>>>>>>> initialize units >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device': observation group dict {'og_Temp': 'group_temperature', >>>>>>>> 'og_Humidity': 'group_percent', 'og_HumAbs': 'group_concentration', >>>>>>>> 'og_Dewpoint': 'group_temperature', 'og_Pressure': 'group_pressure', >>>>>>>> 'og_Altimeter': 'group_pressure', 'og_Barometer': 'group_pressure', >>>>>>>> 'og_co_m': 'group_concentration', 'og_co': 'group_fraction', 'og_co2': >>>>>>>> 'group_fraction', 'og_h2s': 'group_concentration', 'og_no2_m': >>>>>>>> 'group_concentration', 'og_no2': 'group_fraction', 'og_pm1_0': >>>>>>>> 'group_concentration', 'og_pm2_5': 'group_concentration', 'og_pm10_0': >>>>>>>> 'group_concentration', 'og_o3_m': 'group_concentration', 'og_o3': >>>>>>>> 'group_fraction', 'og_so2_m': 'group_concentration', 'og_so2': >>>>>>>> 'group_fraction', 'og_TVOC': 'group_fraction', 'og_o2': 'group_percent', >>>>>>>> 'og_noise': 'group_db', 'og_PerfIdx': 'group_percent', 'og_HealthIdx': >>>>>>>> 'group_percent', 'og_cnt0_3': 'group_count', 'og_cnt0_5': 'group_count', >>>>>>>> 'og_cnt1_0': 'group_count', 'og_cnt2_5': 'group_count', 'og_cnt5_0': >>>>>>>> 'group_count', 'og_cnt10_0': 'group_count'} >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device': observation group dict {'eg_Temp': 'group_temperature', >>>>>>>> 'eg_Humidity': 'group_percent', 'eg_HumAbs': 'group_concentration', >>>>>>>> 'eg_Dewpoint': 'group_temperature', 'eg_Pressure': 'group_pressure', >>>>>>>> 'eg_Altimeter': 'group_pressure', 'eg_Barometer': 'group_pressure', >>>>>>>> 'eg_co_m': 'group_concentration', 'eg_co': 'group_fraction', 'eg_co2': >>>>>>>> 'group_fraction', 'eg_h2s': 'group_concentration', 'eg_no2_m': >>>>>>>> 'group_concentration', 'eg_no2': 'group_fraction', 'eg_pm1_0': >>>>>>>> 'group_concentration', 'eg_pm2_5': 'group_concentration', 'eg_pm10_0': >>>>>>>> 'group_concentration', 'eg_o3_m': 'group_concentration', 'eg_o3': >>>>>>>> 'group_fraction', 'eg_so2_m': 'group_concentration', 'eg_so2': >>>>>>>> 'group_fraction', 'eg_TVOC': 'group_fraction', 'eg_o2': 'group_percent', >>>>>>>> 'eg_noise': 'group_db', 'eg_PerfIdx': 'group_percent', 'eg_HealthIdx': >>>>>>>> 'group_percent', 'eg_cnt0_3': 'group_count', 'eg_cnt0_5': 'group_count', >>>>>>>> 'eg_cnt1_0': 'group_count', 'eg_cnt2_5': 'group_count', 'eg_cnt5_0': >>>>>>>> 'group_count', 'eg_cnt10_0': 'group_count'} >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.airQ: air-Q 0.7 service >>>>>>>> Sep 4 12:29:53 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device' host address '192.168.38.18' prefix 'og' query interval 5.0 >>>>>>>> s altitude 54 m >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device' device id: 99...2a >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device' firmware version: 1.20.2.r4_D_1.75 >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device' sensors: ['co', 'co2', 'no2', 'o3', 'oxygen', >>>>>>>> 'particulates', 'pressure', 'so2', 'sound', 'temperature', 'tvoc', >>>>>>>> 'humidity', 'humidity_abs', 'dewpt'] >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device' concentration units config: µg/m^3 >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: thread >>>>>>>> 'first_device', host '192.168.38.18': initialized >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'first_device' QFF calculation temperature source: outTemp >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: thread >>>>>>>> 'first_device', host '192.168.38.18': starting >>>>>>>> Sep 4 12:29:54 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device' host address '192.168.38.19' prefix 'eg' query interval 5.0 >>>>>>>> s altitude 54 m >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: thread >>>>>>>> 'first_device', host '192.168.38.18': 200 - OK >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device' device id: 21...63 >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device' firmware version: 1.20.2.r4_D_1.75 >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device' sensors: ['co', 'co2', 'no2', 'particulates', 'pressure', >>>>>>>> 'sound', 'temperature', 'tvoc', 'humidity', 'humidity_abs', 'dewpt'] >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device' concentration units config: µg/m^3 >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: thread >>>>>>>> 'second_device', host '192.168.38.19': initialized >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: device >>>>>>>> 'second_device' QFF calculation temperature source: outTemp >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: thread >>>>>>>> 'second_device', host '192.168.38.19': starting >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO user.airQ: 2 air-Q devices >>>>>>>> found >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.engine: StdConvert >>>>>>>> target unit is 0x10 >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.wxservices: >>>>>>>> StdWXCalculate will use data binding wx_binding >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.engine: Archive will >>>>>>>> use data binding wx_binding >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.engine: Record >>>>>>>> generation will be attempted in 'hardware' >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.engine: Using archive >>>>>>>> interval of 300 seconds (specified in weewx configuration) >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO __main__: Starting up weewx >>>>>>>> version 4.6.0b1 >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.engine: Using binding >>>>>>>> 'wx_binding' to database 'weeAirQxHaus' >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.manager: Starting >>>>>>>> backfill of daily summaries >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.manager: Daily >>>>>>>> summaries up to date >>>>>>>> Sep 4 12:29:55 ba001 weewx[12149] INFO weewx.engine: Starting main >>>>>>>> packet loop. >>>>>>>> Sep 4 12:29:56 ba001 weewx[12149] INFO user.airQ: thread >>>>>>>> 'second_device', host '192.168.38.19': 200 - OK >>>>>>>> >>>>>>>> Danke >>>>>>>> Hartmut >>>>>>>> kk44...@gmail.com schrieb am Samstag, 4. September 2021 um >>>>>>>> 10:41:08 UTC+2: >>>>>>>> >>>>>>>>> Ich sehe es mir an, bitte aber noch um etwas Geduld. >>>>>>>>> >>>>>>>>> Folgende Punkte vorab: >>>>>>>>> >>>>>>>>> - Bei WeeWX 4.6 (im Gegensatz zu 4.5) sollte es ein >>>>>>>>> Verzeichnis /home/weewx/skins/Seasons/lang geben, das mehrere >>>>>>>>> Dateien mit .conf am Ende (darunter de.conf) enthält. Wenn >>>>>>>>> nicht, bitte von Github herunterladen und dahin kopieren. >>>>>>>>> - In /home/weewx/weewx.conf muß es im Abschnitt [[Seasons]] >>>>>>>>> einen Eintrag "lang = de" geben. Den gab es früher nicht, also >>>>>>>>> muß er ergänzt werden. Dann bitte prüfen, ob die Seasons-Skin noch richtig >>>>>>>>> erzeugt wird. >>>>>>>>> - Die Abschnitte für die einzelnen airQs können sprechende >>>>>>>>> Namen haben. Das muß nicht "first_device" usw. sein. Das kann der >>>>>>>>> Aufstellort des Gerätes sein. >>>>>>>>> >>>>>>>>> Hilfreich wäre noch der Abschnitt [airQ] aus >>>>>>>>> /home/weewx/weewx.conf. >>>>>>>>> >>>>>>>>> hesf...@gmail.com schrieb am Samstag, 4. September 2021 um >>>>>>>>> 08:32:24 UTC+2: >>>>>>>>> >>>>>>>>>> Guten Morgen, >>>>>>>>>> ich habe versucht zwei airQ's hinzuzufügen. >>>>>>>>>> Ich verwende weewx 4.6.0.b1 >>>>>>>>>> mit Pythin 3.9 >>>>>>>>>> Debian Bullseye auf einem BananaPi >>>>>>>>>> >>>>>>>>>> als Driver habe ich "cmon" eingesetzt sonst wird die Datenbank >>>>>>>>>> einfach zu groß >>>>>>>>>> cmon.sdb ist eingerichtet dann der Versuch >>>>>>>>>> 1. >>>>>>>>>> root@ba001:/home/weewx/bin# ./airq_conf --device=first_device >>>>>>>>>> --add-columns >>>>>>>>>> Using configuration file /home/weewx/weewx.conf >>>>>>>>>> Adding columns for device 'first_device', prefix 'og' >>>>>>>>>> Traceback (most recent call last): >>>>>>>>>> File "/home/weewx/bin/./airq_conf", line 6, in >>>>>>>>>> user.airq_conf.main() >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 154, in main >>>>>>>>>> addDropColumns(config_dict, db_binding, device, action_add, >>>>>>>>>> action_drop) >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 214, in >>>>>>>>>> addDropColumns >>>>>>>>>> schema = manager_dict.get('schema',{}).get('table',{}) >>>>>>>>>> AttributeError: 'list' object has no attribute 'get' >>>>>>>>>> >>>>>>>>>> root@ba001:/home/weewx/bin# ./airq_conf --device=second_device >>>>>>>>>> --add-columns >>>>>>>>>> Using configuration file /home/weewx/weewx.conf >>>>>>>>>> Adding columns for device 'second_device', prefix 'eg' >>>>>>>>>> Traceback (most recent call last): >>>>>>>>>> File "/home/weewx/bin/./airq_conf", line 6, in >>>>>>>>>> user.airq_conf.main() >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 154, in main >>>>>>>>>> addDropColumns(config_dict, db_binding, device, action_add, >>>>>>>>>> action_drop) >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 214, in >>>>>>>>>> addDropColumns >>>>>>>>>> schema = manager_dict.get('schema',{}).get('table',{}) >>>>>>>>>> AttributeError: 'list' object has no attribute 'get' >>>>>>>>>> >>>>>>>>>> 2. >>>>>>>>>> root@ba001:/home/weewx/bin# ./airq_conf --create-skin >>>>>>>>>> Using configuration file /home/weewx/weewx.conf >>>>>>>>>> device 'first_device': >>>>>>>>>> sensors ['co', 'co2', 'no2', 'o3', 'oxygen', 'particulates', >>>>>>>>>> 'pressure', 'so2', 'sound', 'temperature', 'tvoc', 'humidity', >>>>>>>>>> 'humidity_abs', 'dewpt'] >>>>>>>>>> obstypes in database [] >>>>>>>>>> device 'second_device': >>>>>>>>>> sensors ['co', 'co2', 'no2', 'particulates', 'pressure', >>>>>>>>>> 'sound', 'temperature', 'tvoc', 'humidity', 'humidity_abs', 'dewpt'] >>>>>>>>>> obstypes in database [] >>>>>>>>>> Seasons skin path: /home/weewx/skins/Seasons >>>>>>>>>> airQ skin path: /home/weewx/skins/airQ >>>>>>>>>> Seasons skin lang: None >>>>>>>>>> '/home/weewx/skins/airQ' already exists, contents will be >>>>>>>>>> overwritten >>>>>>>>>> copy seasons.css >>>>>>>>>> copy seasons.js >>>>>>>>>> copy favicon.ico >>>>>>>>>> font directory already exists >>>>>>>>>> copy OpenSans-Regular.ttf >>>>>>>>>> copy OpenSans.woff >>>>>>>>>> copy OpenSans-Bold.ttf >>>>>>>>>> copy OpenSans.woff2 >>>>>>>>>> copy Kanit-Bold.ttf >>>>>>>>>> copy license.txt >>>>>>>>>> copy OFL.txt >>>>>>>>>> copy Kanit-Regular.ttf >>>>>>>>>> language directory already exists >>>>>>>>>> creating skin file '/home/weewx/skins/airQ/skin.conf' >>>>>>>>>> writing section [CheetahGenerator] >>>>>>>>>> writing section [CopyGenerator] >>>>>>>>>> writing section [ImageGenerator] >>>>>>>>>> writing section [Generators] >>>>>>>>>> done. >>>>>>>>>> no language defined >>>>>>>>>> Traceback (most recent call last): >>>>>>>>>> File "/home/weewx/bin/./airq_conf", line 6, in >>>>>>>>>> user.airq_conf.main() >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 152, in main >>>>>>>>>> createSkin(config_path,config_dict, db_binding) >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 664, in >>>>>>>>>> createSkin >>>>>>>>>> airqlang = >>>>>>>>>> SkinLanguage(seasons_skin_path,airq_skin_path,seasons_lang) >>>>>>>>>> File "/home/weewx/bin/user/airq_conf.py", line 805, in __init__ >>>>>>>>>> if os.path.isfile(self.seasons_lang_path): >>>>>>>>>> File "/usr/lib/python3.9/genericpath.py", line 30, in isfile >>>>>>>>>> st = os.stat(path) >>>>>>>>>> TypeError: stat: path should be string, bytes, os.PathLike or >>>>>>>>>> integer, not NoneType >>>>>>>>>> >>>>>>>>>> 3. jedoch >>>>>>>>>> root@ba001:/home/weewx/bin# ./airq_conf --device=second_device >>>>>>>>>> --set-location=53.605963,11.341407 >>>>>>>>>> Using configuration file /home/weewx/weewx.conf >>>>>>>>>> device 'second_device' host '192.168.38.19' set {'geopos': >>>>>>>>>> {'lat': 53.605963, 'long': 11.341407}} >>>>>>>>>> Are you sure you want to proceed (y/n)?y >>>>>>>>>> id: 21...63 >>>>>>>>>> content: Success: new setting saved for key 'geopos': {'lat': >>>>>>>>>> 53.60597, 'long': 11.34141} >>>>>>>>>> und >>>>>>>>>> root@ba001:/home/weewx/bin# ./airq_conf --device=second_device >>>>>>>>>> --set-ntp=de >>>>>>>>>> Using configuration file /home/weewx/weewx.conf >>>>>>>>>> device 'second_device' host '192.168.38.19' set {'TimeServer': ' >>>>>>>>>> ptbtime3.ptb.de'} >>>>>>>>>> Are you sure you want to proceed (y/n)?y >>>>>>>>>> id: 21..63 >>>>>>>>>> content: Success: new setting saved for key 'TimeServer': >>>>>>>>>> ptbtime3.ptb.de >>>>>>>>>> erfolgreich >>>>>>>>>> >>>>>>>>>> Ich bitte um Hilfe >>>>>>>>>> >>>>>>>>>> Hartmut >>>>>>>>>> >>>>>>>>>