airQ_corant and weewx

184 views
Skip to first unread message

hesf...@gmail.com

unread,
Sep 4, 2021, 2:32:24 AM9/4/21
to weewx-user
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 <module>
    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 <module>
    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 <module>
    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

Karen K

unread,
Sep 4, 2021, 4:41:08 AM9/4/21
to weewx-user
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

unread,
Sep 4, 2021, 6:32:26 AM9/4/21
to weewx-user
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 '<class 'NameMapper.NotFound'>'
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 '<class 'NameMapper.NotFound'>'
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

Karen K

unread,
Sep 4, 2021, 9:10:11 AM9/4/21
to weewx-user
Gibt es den Eintrag user.airQ_corant.AirqUnits in der Zeile prep_services?

hesf...@gmail.com

unread,
Sep 4, 2021, 9:12:46 AM9/4/21
to weewx-user
Ja gibt es!

hesf...@gmail.com

unread,
Sep 4, 2021, 9:36:55 AM9/4/21
to weewx-user
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

unread,
Sep 4, 2021, 10:07:17 AM9/4/21
to weewx-user
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

Karen K

unread,
Sep 4, 2021, 12:42:45 PM9/4/21
to weewx-user
Vielen Dank erst einmal für den Fehlerhinweis in install.py.

Karen K

unread,
Sep 4, 2021, 12:54:48 PM9/4/21
to weewx-user
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

unread,
Sep 4, 2021, 1:52:10 PM9/4/21
to weewx-user
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.

hesf...@gmail.com

unread,
Sep 5, 2021, 3:58:27 AM9/5/21
to weewx-user
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
cmon.py
airq_conf.py
airQ_corantDB.py
airQ_corant.py

Karen K

unread,
Sep 5, 2021, 4:57:28 AM9/5/21
to weewx-user
Der Sinn von Open Source ist, daß jeder auch etwas ändern kann. So werden gute Ideen zusammengeführt.

Wenn das Schema Status und DeviceID als Zeichenkettenspalte enthält, sollte der Wert auch gespeichert werden. WeeWX selbst sieht nur Zahlenfelder vor, aber es kann auch mit Zeichenketten umgehen. Ich zum Beispiele lese die Wasserstände des Sächsischen Hochwasserzentrums aus und speichere sie in einer Datenbank, die Zeichenkettenfelder für den Status-Wert enthält. Ich befülle die Datenbank zwar außerhalb von WeeWX, aber WeeWX liest sie und hat kein Problem mit den Zeichenketten.

Der Grund, warum manche Werte kein 'airq' vorangestellt haben, ist, daß ich mir ein draußen im Freien stehendes AirQ vorgestellt habe, das die Werte in die entsprechenden Datenfelder des originalen Schemas von WeeWX (wview_extended.py) speichert. Deshalb fehlt das 'airq' bei allen Feldern, die in diesem Schema enthalten sind. Wenn man ein Prefix festlegt, wird es ja trotzdem für alle Werte benutzt.

hesf...@gmail.com

unread,
Sep 5, 2021, 9:21:04 AM9/5/21
to weewx-user
Hallo,
ich war noch die data_binding schuldig
[DataBindings]

    [[wx_binding]]
        # The database must match one of the sections in [Databases].
        # This is likely to be the only option you would want to change.
        database = archive_mysql
        # The name of the table within the database
        table_name = archive
        # The manager handles aggregation of data for historical summaries
        manager = weewx.manager.DaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.vantage.schema
    [[wee_binding]]
        database = weewxA_sqlite
        manager = weewx.manager.Manager
        table_name = archive
        schema = schemas.vantageSQL.schema
    [[wd_binding]]
        manager = weewx.manager.DaySummaryManager
        schema = schemas.wdSchema.weewxwd_schema
        table_name = archive
        database = weewxwd_mysql
    [[wdsupp_binding]]
        manager = weewx.manager.Manager
        schema = schemas.wdSchema.wdsupp_schema
        table_name = supp
        database = wdsupp_mysql
    [[air_binding]]
        # The database must match one of the sections in [Databases]
        database = air_mysql
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.air.schema
    [[air2_binding]]
        database = air2_mysql
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.air2.schema
    [[airCar_binding]]
        database = airCar_mysql
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.air2.schema     
    [[aqiCar_binding]]
        database = aqiCar_mysql
        manager = weewx.manager.DaySummaryManager
        table_name = archive
        schema = user.car.service.schema
    [[aqi_binding]]
        database = aqi_mysql
        manager = weewx.manager.DaySummaryManager
        table_name = archive
        schema = user.aqi.service.schema
    [[airq_binding]]
        database = airq_mysql
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.airq.schema
    [[forecast_binding]]
        database = forecast_mysql
        table_name = archive
        schema = user.forecast.schema
        manager = weewx.manager.Manager
    [[lightning_binding]]
        database = blitz_mysql
        table_name = archive
        manager = weewx.manager.Manager
        # schema = user.as3935.schema
    [[cmon_binding]]
        database = cmon_mysql
        manager = weewx.manager.DaySummaryManager
        table_name = archive
        # schema = user.cmon.schema
        schema = schemas.cmonAirQ.schema
    [[dwd_binding]]
        database = dwd_mysql
        table_name = archive
        schema = user.dwdmon.schema
        manager = weewx.manager.Manager
    [[geiger_binding]]
        database = geiger_mysql
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = user.geiger.schema
    [[sunmon_binding]]
        database = sunmon_mysql
        manager = weewx.manager.DaySummaryManager
        table_name = archive
        schema = user.sunmon.schema
    [[aerisaqi_binding]]
        database = aerisaqi_mysql
        manager = weewx.manager.DaySummaryManager
        table_name = archive
        schema = user.forecastAqi.schema
    [[hausairq_binding]]
        # database = cmon_sqlite
        database = hausairq_mysql
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.cmon.schema
[Database]
    [[archive_mysql]]
        database_type = MySQL
        database_name = weewx
    [[weewxwd_mysql]]
        database_type = MySQL
        database_name = weewxWD
    [[wdsupp_mysql]]
        database_type = MySQL
        database_name = weewxWDsupp
    [[air_mysql]]
        database_type = MySQL
        database_name = weewxAirair
        # old database_name = airair
    [[air2_mysql]]
        database_type = MySQL
        database_name = weewxAiraqi
        # old database_name = airpm25
    [[airCar_mysql]]
        database_type = MySQL
        database_name = weewxCarAir
    [[aqi_mysql]]
        database_name = weewxAqi
        database_type = MySQL
    [[aqiCar_mysql]]
        database_name = weewxCarAqi
        database_type = MySQL
    [[airq_mysql]]
        database_name = weewxAirQ
        database_type = MySQL
    [[forecast_mysql]]
        database_type = MySQL
        database_name = weewxForecast
    [[blitz_mysql]]
        database_type = MySQL
        database_name = weewxBlitz
        # old database_name = lightningair
    [[dwd_mysql]]
        database_type = MySQL
        database_name = weewxPollen
    [[cmon_mysql]]
        database_name = CmonAirQ
        database_type = MySQL
    [[geiger_mysql]]
        database_type = MySQL
        database_name = weewxGeiger
    [[sunmon_mysql]]
        database_name = weewxSunmon
        database_type = MySQL
    [[aerisaqi_mysql]]
        database_name = weewxAerisAqi
        database_type = MySQL
    [[hausairq_mysql]]
        database_type = MySQL
        database_name = weeAirQxHaus

Die Berechnung für "Barometer" sollte doch für indoor airQ's mit "temperature" vom airQ erfolgen, der Bezug zu "outTemp" geht meiner Meinung nach fehl.

Sehr Gute Arbeit, Danke
Hartmut

Karen K

unread,
Sep 5, 2021, 9:39:48 AM9/5/21
to weewx-user
hesf...@gmail.com schrieb am Sonntag, 5. September 2021 um 15:21:04 UTC+2:
Die Berechnung für "Barometer" sollte doch für indoor airQ's mit "temperature" vom airQ erfolgen, der Bezug zu "outTemp" geht meiner Meinung nach fehl.

Nein, das stimmt nicht. Für die Umrechnung des lokalen Luftdrucks (der im Zimmer derselbe ist wie draußen) auf Meeresniveau muß immer die Außentemperatur genommen werden. Diese Umrechnung soll ja die Werte verschiedener Meßstellen vergleichbar machen. Der Wert darf nicht davon abhängen, ob man sich gerade im Zimmer oder draußen befindet.
 

hesf...@gmail.com

unread,
Sep 5, 2021, 9:55:45 AM9/5/21
to weewx-user
Danke für die Erläuterungen, mir fehlt jetzt nur noch eine Idee für die Feststellung der Fehlerwerte, aber Kommt Zeit Kommt Rat
Hartmut

hesf...@gmail.com

unread,
Oct 2, 2021, 6:39:32 AM10/2/21
to weewx-user
Nachtrag:

in der airQ_conrant.py in Zeile 374

if len(__altitude)==3:

__altitude = weewx.units.ValueTuple(__altitude[0],__altitude[1],__altitude[2])

else:
__altitude = weewx.units.ValueTuple(__altitude[0],__altitude[1],'group_altitude')

ÄNDERUNG in

 if len(__altitude)==3:
     __altitude = weewx.units.ValueTuple(float(__altitude[0]),__altitude[1],__altitude[2])
     else:
     __altitude = weewx.units.ValueTuple(float(__altitude[0]),__altitude[1],'group_altitude')

sonst wird der Wert __altitude als String gelesen.

Meine kleine Erweiterung mit Fehlerwerten im Anhang.

Fehler nach wie vor bei
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: Evaluation of template /home/weewx/skins/airQ/first_device.html.tmpl failed.
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: **** Ignoring template /home/weewx/skins/airQ/first_device.html.tmpl
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: **** Reason: cannot find 'gram_per_meter_cubed' while searching for 'og_HumAbs.gram_per_meter_cubed'
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: Evaluation of template /home/weewx/skins/airQ/second_device.html.tmpl failed.
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: **** Ignoring template /home/weewx/skins/airQ/second_device.html.tmpl
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: **** Reason: cannot find 'gram_per_meter_cubed' while searching for 'eg_HumAbs.gram_per_meter_cubed'
Oct  2 12:30:34 wee2 weewx-weewx[13860] ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template
Oct  2 12:30:34 wee2 weewx-weewx[13860] INFO weewx.cheetahgenerator: Generated 0 files for report AirQsReport in 0.49 seconds
Oct  2 12:30:36 wee2 weewx-weewx[13860] INFO weewx.imagegenerator: Generated 29 images for report AirQsReport in 2.19 seconds

alle anderen Erweiterungen "ppb", "milligram_per_meter_cubed" werden angezeigt.

in prep_services wurde user.airQ_corant.AirqUnits eingefügt.

Hartmut
airQ_corant.py

Karen K

unread,
Oct 4, 2021, 12:16:40 PM10/4/21
to weewx-user
Vielen Dank.

Es ist nicht notwendig, 'altitude' im Abschnitt [airQ] zu setzen. Wenn es fehlt, wird der Wert auf dem Abschnitt [Station] benutzt

Zu den Fehlermeldungen: Kann ich mal sämtliche Meldungen (inkl. INFO) für user.airQ sehen?

hesf...@gmail.com

unread,
Oct 5, 2021, 1:30:32 AM10/5/21
to weewx-user
Guten Morgen,
die unterschiedlichen Höhen habe ich ausprobiert weil ich einen airQ im EG und einen im OG habe (Höhendifferenz ca. 3,60 m Tisch im EG und Regal im OG).
Die ermittelten Werte für Luftdruck sollten gleich sein.

Das Problem mit der gram_per_meter_cubed

cannot find 'gram_per_meter_cubed' while searching for 'current.og_HumAbs.gram_per_meter_cubed'

tritt nur bei dem RasPi auf, welcher die Daten ermittelt und speichert.
Mein WetterRechner stellt es korrekt dar, er läuft mit der gleichen Version weewx und airQ.

AirQ abs. Luftfeuchte
10,7 g/m³

ebenso stellt der HausRechner (weewx 4.6.0b2 und airQ  
[[Services]]
        prep_services = weewx.engine.StdTimeSynch, user.airQ_corant.AirqUnits)

og_Barometer
1014,2 hPa 1%

og_Altimeter
   1014,2 hPa  1%

og_Pressure
   1007,6 hPa  1%

og_Temp
              21,4°C     1%

og_Dewpoint
       12,2°C     1%

og_Humidity
        57%       4%

og_HumAbs
   10,75 g/m³ 1%

og_co2
           845 ppm  75%
dar.
der RasPi (airpi) gibt bei gleicher Einrichtung den Fehler aus.
Ich habe bereits alle Einstellungen verglichen, jedoch bisher nicht auffälliges gefunden.

Oct  5 07:20:42 airpi weewx[989] ERROR weewx.cheetahgenerator: Evaluation of template /home/weewx/skins/airQ/first_device.html.tmpl failed.
Oct  5 07:20:42 airpi weewx[989] ERROR weewx.cheetahgenerator: **** Ignoring template /home/weewx/skins/airQ/first_device.html.tmpl
Oct  5 07:20:42 airpi weewx[989] ERROR weewx.cheetahgenerator: **** Reason: cannot find 'gram_per_meter_cubed' while searching for 'current.og_HumAbs.gram_per_meter_cubed'
Oct  5 07:20:42 airpi weewx[989] ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template
Oct  5 07:20:42 airpi weewx[989] INFO weewx.cheetahgenerator: Generated 2 files for report airqReport in 0.88 seconds
Oct  5 07:20:46 airpi weewx[989] INFO weewx.imagegenerator: Generated 44 images for report airqReport in 4.27 seconds
Oct  5 07:20:46 airpi weewx[989] INFO weewx.reportengine: Copied 0 files to /home/weewx/public_html/airQ
Oct  5 07:25:01 airpi CRON[1252]: (root) CMD (if [ -x /etc/munin/plugins/apt_all ]; then /etc/munin/plugins/apt_all update 7200 12 >/dev/null; elif [ -x /etc/munin/plugins/apt ]; then /etc/munin/plugins/apt update 7200 12 >/dev/null; fi)

Mit der Einstellung "current.og_HumAbs.milligram_per_meter_cubed" bei keine Fehler.

Oct  5 07:25:18 airpi weewx[989] INFO weewx.manager: Added record 2021-10-05 07:25:19 CEST (1633411519) to database 'weewxCmon.sdb'
Oct  5 07:25:18 airpi weewx[989] INFO weewx.manager: Added record 2021-10-05 07:25:19 CEST (1633411519) to daily summary in 'weewxCmon.sdb'
Oct  5 07:25:19 airpi weewx[989] INFO weewx.manager: Added record 2021-10-05 07:25:00 CEST (1633411500) to database 'wx_AirQ'
Oct  5 07:25:20 airpi weewx[989] INFO weewx.manager: Added record 2021-10-05 07:25:00 CEST (1633411500) to daily summary in 'wx_AirQ'
Oct  5 07:25:20 airpi weewx[989] INFO weewx.cheetahgenerator: Generated 1 files for report ServerReport in 0.36 seconds
Oct  5 07:25:21 airpi weewx[989] INFO weewx.imagegenerator: Generated 8 images for report ServerReport in 1.16 seconds
Oct  5 07:25:21 airpi weewx[989] INFO weewx.reportengine: Copied 0 files to /home/weewx/public_html/cmon
Oct  5 07:25:27 airpi weewx[989] INFO weewx.cheetahgenerator: Generated 8 files for report SeasonsReport in 5.20 seconds
Oct  5 07:25:39 airpi weewx[989] INFO weewx.imagegenerator: Generated 14 images for report SeasonsReport in 12.34 seconds
Oct  5 07:25:39 airpi weewx[989] INFO weewx.reportengine: Copied 0 files to /home/weewx/public_html
Oct  5 07:25:41 airpi weewx[989] INFO weewx.cheetahgenerator: Generated 3 files for report airqReport in 1.43 seconds
Oct  5 07:25:45 airpi weewx[989] INFO weewx.imagegenerator: Generated 44 images for report airqReport in 4.48 seconds
Oct  5 07:25:45 airpi weewx[989] INFO weewx.reportengine: Copied 0 files to /home/weewx/public_html/airQ

Hartmut
syslog.txt

Karen K

unread,
Oct 5, 2021, 7:58:47 AM10/5/21
to weewx-user
Bringt die Empfehlung "To debug, try inserting '#errorCatcher Echo' at top of template" zusätzliche Infos?

hesf...@gmail.com

unread,
Oct 5, 2021, 10:28:01 AM10/5/21
to weewx-user
die Empfehlung bringt keine Meldung!

Mit debug = 1 in weewx.conf
erscheint nur
Oct  5 15:55:35 airpi weewx[4740] DEBUG weewx.reportengine: Report 'US_Report' not enabled. Skipping.
Oct  5 15:55:35 airpi weewx[4740] DEBUG weewx.reportengine: Running report 'airqReport'
Oct  5 15:55:35 airpi weewx[4740] DEBUG weewx.reportengine: Found configuration file /home/weewx/skins/airQ/skin.conf for report 'airqReport'
Oct  5 15:55:35 airpi weewx[4740] DEBUG weewx.reportengine: Found localization file /home/weewx/skins/airQ/lang/de.conf for report 'airqReport'
Oct  5 15:55:35 airpi weewx[4740] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.Gettext']
Oct  5 15:55:35 airpi weewx[4740] DEBUG weewx.manager: Daily summary version is 4.0
Oct  5 15:55:36 airpi weewx[4740] DEBUG weewx.units: Unable to convert from microgram_per_meter_cubed to gram_per_meter_cubed
Oct  5 15:55:36 airpi weewx[4740] INFO weewx.cheetahgenerator: Generated 3 files for report airqReport in 0.94 seconds
Oct  5 15:55:36 airpi weewx[4740] DEBUG weewx.manager: Daily summary version is 4.0
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: co: mass 1.816 vol 1.589
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: co2: mass 744.000 vol 414.299
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: no2: mass 19.460 vol 10.366
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: o3: mass 12.810 vol 6.541
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: so2: mass 3180.910 vol 1216.831
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: co2: mass 744.000 vol 1336.077
Oct  5 15:55:38 airpi weewx[4740] DEBUG user.airQ: tvoc: mass 345.000 vol 1111.446
Oct  5 15:55:40 airpi weewx[4740] INFO weewx.imagegenerator: Generated 44 images for report airqReport in 4.11 seconds

Die Umwandlung in der Gruppe "group_concentration" für "microgram_per_meter_cubed" zu "gram_per_meter_cubed" und die Formatierung der Werte und der Strings für die Einheit werden in airQ_corant.py festgelegt

ich gebe jetzt auf, die Anzeigen beim WetterServer sind in g/m³ ebenso beim HausServer

Hartmut
Auch die Erweiterung der units.py mit allen airQ-variablen inc. Einheiten, Zuweisung und Umrechnungen bringt nichts.

Karen K

unread,
Oct 5, 2021, 11:11:53 AM10/5/21
to weewx-user
Ich begreife es auch nicht. Wir könnten testweise lambda x : x*0.000001 durch lambda x : x/1000000 ersetzen.
Message has been deleted

hesf...@gmail.com

unread,
Oct 5, 2021, 12:15:04 PM10/5/21
to weewx-user
Ich kann es auch nicht nachvollziehen.
WetterServer Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]; BS Linux-4.19.0-12-amd64-x86_64-with-debian-10.10, weewx 4.6.0b2
HausServer  Python 3.9.2; Raspbian GNU/Linux 11 4.19.66-v7l+; weewx 4.6.0b2
airpi Python 3.9.2; Raspbian GNU/Linux 11 Linux airpi 5.10.17-v7+ ; weewx 4.6.0b2
Nach dem Neustart (vorher habe ich die airQ_corant.py vom WetterServer auf airpi kopiert)
airQ EG absolute Luftfeuchte  11,8 g/m³
airQ OG absolute Luftfeuchte  11,6 g/m³
es läuft...
Danke für die Geduld
Hartmut
Reply all
Reply to author
Forward
0 new messages