Thanks TK. So this is interesting:

pi@ubuntu:~ $ which python3
/usr/bin/python3
pi@ubuntu:~ $ /bin/python3 -c "import Cheetah"
pi@ubuntu:~ $ /usr/bin/python3 -c "import Cheetah"
pi@ubuntu:~ $ /usr/bin/python3 -c "import Cheetah"
pi@ubuntu:~ $ /bin/python3 -c "import Cheetah"
pi@ubuntu:~ $

pi@ubuntu:~ $ python3 -c "import sys; print('\n'.join(sys.path))"

/usr/lib/python39.zip
/usr/lib/python3.9
/usr/lib/python3.9/lib-dynload
/home/pi/.local/lib/python3.9/site-packages
/usr/lib/python3.9/site-packages

pi@ubuntu:~ $ python -c "import sys; print(sys.path)"
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-aarch64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages']
pi@ubuntu:~ $

pi@ubuntu:~ $ python3 -c "import sys; print(sys.path)"
['', '/usr/lib/python39.zip', '/usr/lib/python3.9', 
'/usr/lib/python3.9/lib-dynload', 
'/home/pi/.local/lib/python3.9/site-packages', 
'/usr/lib/python3.9/site-packages']

No errors regardless of which python3 I call. Perhaps Cheetah3 is only 
installed to one of them however?  Any idea as to how to clean up this dual 
installation mess? 

Kevin
On Thursday, January 12, 2023 at 4:18:14 AM UTC-8 [email protected] wrote:

> What this tells us is which Python executable you are using: /bin/python3. 
> This is unusual. Usually it's /usr/bin/python3.
>
> See which versions of Python are available:
>
> *which python3.*
>
>
> Try them all. For example,
>
> */bin/python3 -c "import Cheetah"*
>
> */usr/bin/python3 -c "import Cheetah"*
>
>
> I suspect the problem is that you're installing into one version of 
> python3, but executing weewxd using a different version.
>
> -tk
>
> On Thu, Jan 12, 2023 at 12:48 AM Kevin Key <[email protected]> wrote:
>
>> Here's my log. I've lost track of how many times I've reinstalled 
>> Cheetah. Any idea as to what is going wrong?
>>
>> pi@ubuntu:/var/log $ cat weewx.log
>> weewx[36134] INFO __main__: Initializing weewx version 4.9.1
>> weewx[36134] INFO __main__: Using Python 3.9.2 (default, Jan  4 2023, 
>> 21:11:01)
>> [GCC 10.2.1 20210110]
>> weewx[36134] INFO __main__: Located at /bin/python3
>> weewx[36134] INFO __main__: Platform 
>> Linux-5.15.84-v8+-aarch64-with-glibc2.31
>> weewx[36134] INFO __main__: Locale is 'en_GB.UTF-8'
>> weewx[36134] INFO __main__: Using configuration file /etc/weewx/weewx.conf
>> weewx[36134] INFO __main__: Debug is 1
>> weewx[36134] INFO __main__: PID file is /var/run/weewx.pid
>> weewx[36137] DEBUG __main__: Initializing engine
>> weewx[36137] INFO weewx.engine: Loading station type SDR (user.sdr)
>> weewx[36137] INFO user.sdr: driver version is 0.87
>> weewx[36137] INFO user.sdr: model is SDR
>> weewx[36137] INFO user.sdr: sensor map is {'outTemp': 
>> 'temperature.02BC.AcuriteAtlasPacket', 'outHumidity': 
>> 'humidity.02BC.AcuriteAtlasPacket', 'windSpeed': 
>> 'wind_speed.02BC.AcuriteAtlasPacket', 'windDir': 
>> 'wind_dir.02BC.AcuriteAtlasPacket', 'UV': 'uv.02BC.AcuriteAtlasPacket', 
>> 'radiation': 'lux.02BC.AcuriteAtlasPacket', 'lux': 
>> 'lux.02BC.AcuriteAtlasPacket', 'Atlas_rain_total': 
>> 'rain_total.02BC.AcuriteAtlasPacket', 'strikes_total': 
>> 'strike_count.02BC.AcuriteAtlasPacket', 'lightning_distance': 
>> 'strike_distance.02BC.AcuriteAtlasPacket', 'windBatteryStatus': 
>> 'battery.02BC.AcuriteAtlasPacket', 'extraTemp1': 
>> 'temperature.161C.AcuriteTowerPacketV2', 'extraTemp2': 
>> 'temperature.2D1D.AcuriteTowerPacketV2'}
>> weewx[36137] INFO user.sdr: deltas is {'rain': 'Atlas_rain_total', 
>> 'lightning_strike_count': 'strikes_total'}
>> weewx[36137] INFO user.sdr: startup process 'sudo /usr/bin/rtl_433 -M utc 
>> -F json -Y autolevel'
>> weewx[36137] DEBUG user.sdr: start async reader for stdout-thread
>> weewx[36137] DEBUG user.sdr: start async reader for stderr-thread
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdTimeSynch
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> user.MQTTSubscribe.MQTTSubscribeService
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) Using weewx version 4.9.1
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) Using Python 3.9.2 
>> (default, Jan  4 2023, 21:11:01)
>> [GCC 10.2.1 20210110]
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) Platform 
>> Linux-5.15.84-v8+-aarch64-with-glibc2.31
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) Locale is 'en_GB.UTF-8'
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Version is 2.2.2
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Log level: 0
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Log debug setting: 1
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Log console: False
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Log file: None
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) sanitized configuration 
>> removed ['password']
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) MQTTSUBscriber 
>> sanitized_service_dict is {'topics': {'unit_system': 'METRIC', 
>> 'indoor/BME280_pressure': {'name': 'pressure', 'ignore': 'false'}}, 
>> 'archive_interval': '180', 'port': '1883', 'ignore_end_time': 'true', 
>> 'message_callback': {'type': 'individual'}, 'enable': 'true', 'host': 
>> 'localhost', 'binding': 'loop', 'username': 'None', 'keepalive': '10'}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager 
>> self.collect_wind_across_loops is True
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager 
>> self.collect_observations is False
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager 
>> single_queue is False
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager 
>> single_queue is False
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager 
>> self.subscribed_topics is {"indoor/BME280_pressure": {"ignore": false, 
>> "subscribe": true, "conversion_func": {"source": "lambda x: to_float(x)", 
>> "compiled": "<function <lambda> at 0x7fafe9f040>"}, "unit_system": 16, 
>> "msg_id_field": null, "qos": 0, "topic_tail_is_fieldname": false, 
>> "use_server_datetime": false, "datetime_format": null, "offset_format": 
>> null, "ignore_msg_id_field": [], "fields": {"indoor/BME280_pressure": 
>> {"name": "pressure", "ignore": false, "contains_total": false, 
>> "total_wrap_around": false, "conversion_func": {"source": "lambda x: 
>> to_float(x)", "compiled": "<function <lambda> at 0x7fafe770d0>"}, 
>> "conversion_type": "float", "conversion_error_to_none": false}}, "queue": 
>> {"name": "indoor/BME280_pressure", "type": "normal", "ignore_start_time": 
>> false, "ignore_end_time": false, "adjust_start_time": 0.0, 
>> "adjust_end_time": 0.0, "max_size": 9223372036854775807, "data": 
>> "deque([])"}, "filters": {}, "message-1673512917.989539": {}}, 
>> "1673512917.993647-windGust-windGustDir-windDir-windSpeed": {"subscribe": 
>> false, "message-1673512917.989539": {}, "unit_system": 16, "qos": 0, 
>> "topic_tail_is_fieldname": false, "use_server_datetime": false, 
>> "datetime_format": null, "offset_format": null, "queue": {"name": 
>> "1673512917.993647-windGust-windGustDir-windDir-windSpeed", "type": 
>> "collector", "ignore_start_time": false, "ignore_end_time": false, 
>> "adjust_start_time": 0.0, "adjust_end_time": 0.0, "max_size": 
>> 9223372036854775807, "data": "deque([])"}}}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager 
>> self.cached_fields is {}
>> weewx[36137] INFO user.MQTTSubscribe: (Service) 
>> message_callback_provider_name is user.MQTTSubscribe.MessageCallbackProvider
>> weewx[36137] INFO user.MQTTSubscribe: (Service) clientid is 
>> MQTTSubscribe-5234
>> weewx[36137] INFO user.MQTTSubscribe: (Service) client_session is True
>> weewx[36137] INFO user.MQTTSubscribe: (Service) host is localhost
>> weewx[36137] INFO user.MQTTSubscribe: (Service) port is 1883
>> weewx[36137] INFO user.MQTTSubscribe: (Service) keepalive is 10
>> weewx[36137] INFO user.MQTTSubscribe: (Service) username is None
>> weewx[36137] INFO user.MQTTSubscribe: (Service) min_delay is 1
>> weewx[36137] INFO user.MQTTSubscribe: (Service) max_delay is 120
>> weewx[36137] INFO user.MQTTSubscribe: (Service) password is set
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Archive topic is None
>> weewx[36137] INFO user.MQTTSubscribe: (Service) binding is loop
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) Starting loop
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Waiting for MQTT 
>> connection.
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Connected with result 
>> code 0
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Connected flags {'session 
>> present': 0}
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Subscribing to 
>> indoor/BME280_pressure has a mid 1 and rc 0
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Subscribed to mid: 1 is 
>> size 1 has a QOS of 0
>> weewx[36137] INFO user.MQTTSubscribe: (Service) MQTT initialization 
>> complete.
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> user.MQTTSubscribe.MQTTSubscribeService
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
>> weewx[36137] INFO weewx.engine: StdConvert target unit is 0x1
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdConvert
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdCalibrate
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdQC
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdQC
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> weewx.wxservices.StdWXCalculate
>> weewx[36137] INFO weewx.wxservices: StdWXCalculate will use data binding 
>> wx_binding
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.wxservices.StdWXCalculate
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> weewx.wxxtypes.StdWXXTypes
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.wxxtypes.StdWXXTypes
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> weewx.wxxtypes.StdPressureCooker
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.wxxtypes.StdPressureCooker
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> weewx.wxxtypes.StdRainRater
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.wxxtypes.StdRainRater
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.wxxtypes.StdDelta
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdArchive
>> weewx[36137] INFO weewx.engine: Archive will use data binding wx_binding
>> weewx[36137] INFO weewx.engine: Record generation will be attempted in 
>> 'hardware'
>> weewx[36137] INFO weewx.engine: Using archive interval of 60 seconds 
>> (specified in weewx configuration)
>> weewx[36137] DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdArchive
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> weewx.restx.StdStationRegistry
>> weewx[36137] INFO weewx.restx: StationRegistry: Station will be 
>> registered.
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.restx.StdStationRegistry
>> weewx[36137] DEBUG weewx.engine: Loading service 
>> weewx.restx.StdWunderground
>> weewx[36137] DEBUG weewx.restx: WU essentials: {}
>> weewx[36137] INFO weewx.restx: Wunderground-PWS: Data for station 
>> KCARAMON46 will be posted
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.restx.StdWunderground
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
>> weewx[36137] INFO weewx.restx: PWSWeather: Data for station RAMONAWEST 
>> will be posted
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.restx.StdPWSweather
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
>> weewx[36137] INFO weewx.restx: CWOP: Data for station EW5918 will be 
>> posted
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.restx.StdCWOP
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.restx.StdWOW
>> weewx[36137] INFO weewx.restx: WOW: Data for station 
>> 815878d0-9d1d-e811-90ce-0003ff597a79 will be posted
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.restx.StdWOW
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
>> weewx[36137] INFO weewx.restx: AWEKAS: Data will be uploaded for user 
>> kevink619e
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.restx.StdAWEKAS
>> weewx[36137] DEBUG weewx.engine: Loading service user.owm.OpenWeatherMap
>> weewx[36137] INFO user.owm: service version is 0.9
>> weewx[36137] INFO user.owm: Data will be uploaded for 
>> 6178965b09e7430001ba0b74
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> user.owm.OpenWeatherMap
>> weewx[36137] DEBUG weewx.engine: Loading service user.mqtt.MQTT
>> weewx[36137] INFO user.mqtt: service version is 0.24
>> weewx[36137] INFO user.mqtt: binding to archive
>> weewx[36137] INFO user.mqtt: data_binding is wx_binding
>> weewx[36137] INFO user.mqtt: topic is weather
>> weewx[36137] INFO user.mqtt: data will be uploaded to 
>> mqtt://localhost:1883
>> weewx[36137] DEBUG weewx.engine: Finished loading service user.mqtt.MQTT
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdPrint
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdPrint
>> weewx[36137] DEBUG weewx.engine: Loading service weewx.engine.StdReport
>> weewx[36137] INFO weewx.engine: 'pyephem' not detected, extended almanac 
>> data is not available
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] DEBUG weewx.engine: Finished loading service 
>> weewx.engine.StdReport
>> weewx[36137] INFO __main__: Starting up weewx version 4.9.1
>> weewx[36137] DEBUG weewx.engine: Station does not support reading the time
>> weewx[36137] INFO weewx.engine: Using binding 'wx_binding' to database 
>> 'weewx.sdb'
>> weewx[36137] INFO weewx.manager: Starting backfill of daily summaries
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] INFO weewx.manager: Daily summaries up to date
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] INFO weewx.engine: Starting main packet loop.
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] DEBUG weewx.manager: Daily summary version is 4.0
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) MessageCallbackProvider 
>> data-> incoming topic: indoor/BME280_pressure, QOS: 0, retain: 0, payload: 
>> b'971.56'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> incoming indoor/BME280_pressure: 'pressure': '971.56'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512933, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing indoor/BME280_pressure: 'dateTime': '1673512920.368209', 
>> 'pressure': '971.56', 'usUnits': '16'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing accumulated indoor/BME280_pressure: 'dateTime': '1673512933.0', 
>> 'pressure': '28.6901546555', 'usUnits': '1'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:13 PST (1673512933): 'dateTime': '1673512933.0', 
>> 'extraTemp2': '35.24', 'pressure': '28.6901546555', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512933, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:13 PST (1673512933): 'dateTime': '1673512933', 
>> 'extraTemp2': '35.24', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'windDir': 269.0, 
>> 'Atlas_rain_total': 2.44, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512937, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:17 PST (1673512937): 'Atlas_rain_total': '2.44', 
>> 'dateTime': '1673512937', 'lightning_distance': '0', 
>> 'lightning_strike_count': 'None', 'rain': 'None', 'strikes_total': '2', 
>> 'usUnits': '1', 'windBatteryStatus': '0', 'windDir': '269.0', 'windSpeed': 
>> '0.0'
>> weewx[36137] DEBUG weewx.reportengine: Running reports for latest time in 
>> the database.
>> weewx[36137] DEBUG weewx.reportengine: Running report 'SeasonsReport'
>> weewx[36137] DEBUG weewx.reportengine: Found configuration file 
>> /etc/weewx/skins/Seasons/skin.conf for report 'SeasonsReport'
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.cheetahgenerator.CheetahGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Cheetah'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 69, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> Cheetah.Filters
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Cheetah'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.imagegenerator.ImageGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Image'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 15, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      from PIL import 
>> Image, ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'PIL'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  During handling of 
>> the above exception, another exception occurred:
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/imagegenerator.py", line 19, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> weeplot.genplot
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 17, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import Image, 
>> ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Image'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] INFO weewx.reportengine: Copied 5 files to 
>> /var/www/html/weewx
>> weewx[36137] DEBUG weewx.reportengine: Running report 'SmartphoneReport'
>> weewx[36137] DEBUG weewx.reportengine: Found configuration file 
>> /etc/weewx/skins/Smartphone/skin.conf for report 'SmartphoneReport'
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.cheetahgenerator.CheetahGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Cheetah'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 69, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> Cheetah.Filters
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Cheetah'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.imagegenerator.ImageGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Image'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 15, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      from PIL import 
>> Image, ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'PIL'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  During handling of 
>> the above exception, another exception occurred:
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/imagegenerator.py", line 19, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> weeplot.genplot
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 17, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import Image, 
>> ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Image'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] INFO weewx.reportengine: Copied 6 files to 
>> /var/www/html/weewx/smartphone
>> weewx[36137] DEBUG weewx.reportengine: Running report 'MobileReport'
>> weewx[36137] DEBUG weewx.reportengine: Found configuration file 
>> /etc/weewx/skins/Mobile/skin.conf for report 'MobileReport'
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.cheetahgenerator.CheetahGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Cheetah'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 69, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> Cheetah.Filters
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Cheetah'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.imagegenerator.ImageGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Image'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 15, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      from PIL import 
>> Image, ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'PIL'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  During handling of 
>> the above exception, another exception occurred:
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/imagegenerator.py", line 19, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> weeplot.genplot
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 17, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import Image, 
>> ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Image'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] INFO weewx.reportengine: Copied 2 files to 
>> /var/www/html/weewx/mobile
>> weewx[36137] DEBUG weewx.reportengine: Running report 'StandardReport'
>> weewx[36137] DEBUG weewx.reportengine: Found configuration file 
>> /etc/weewx/skins/Standard/skin.conf for report 'StandardReport'
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.cheetahgenerator.CheetahGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Cheetah'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 69, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> Cheetah.Filters
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Cheetah'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] ERROR weewx.reportengine: Unable to instantiate generator 
>> 'weewx.imagegenerator.ImageGenerator'
>> weewx[36137] ERROR weewx.reportengine:         ****  No module named 
>> 'Image'
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 15, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      from PIL import 
>> Image, ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'PIL'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  During handling of 
>> the above exception, another exception occurred:
>>
>> weewx[36137] ERROR weewx.reportengine:         ****
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Traceback (most 
>> recent call last):
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/reportengine.py", line 180, in run
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      obj = 
>> weeutil.weeutil.get_object(generator)(
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1335, in get_object
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      mod = 
>> __import__(module)
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weewx/imagegenerator.py", line 19, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import 
>> weeplot.genplot
>>
>> weewx[36137] ERROR weewx.reportengine:         ****    File 
>> "/usr/share/weewx/weeplot/genplot.py", line 17, in <module>
>>
>> weewx[36137] ERROR weewx.reportengine:         ****      import Image, 
>> ImageDraw
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  ModuleNotFoundError: 
>> No module named 'Image'
>>
>> weewx[36137] ERROR weewx.reportengine:         ****  Generator ignored
>> weewx[36137] INFO weewx.reportengine: Copied 14 files to 
>> /var/www/html/weewx
>> weewx[36137] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
>> weewx[36137] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. 
>> Skipping.
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'UV': 0, 
>> 'radiation': 0, 'lux': 0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512947, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:27 PST (1673512947): 'dateTime': '1673512947', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'lux': '0', 
>> 'radiation': '0', 'strikes_total': '2', 'usUnits': '1', 'UV': '0', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'UV': 0, 
>> 'radiation': 0, 'lux': 0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512947, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:27 PST (1673512947): 'dateTime': '1673512947', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'lux': '0', 
>> 'radiation': '0', 'strikes_total': '2', 'usUnits': '1', 'UV': '0', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'UV': 0, 
>> 'radiation': 0, 'lux': 0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512947, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:27 PST (1673512947): 'dateTime': '1673512947', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'lux': '0', 
>> 'radiation': '0', 'strikes_total': '2', 'usUnits': '1', 'UV': '0', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512949, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:29 PST (1673512949): 'dateTime': '1673512949', 
>> 'extraTemp2': '35.24', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512949, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:29 PST (1673512949): 'dateTime': '1673512949', 
>> 'extraTemp2': '35.24', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512949, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:29 PST (1673512949): 'dateTime': '1673512949', 
>> 'extraTemp2': '35.24', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512954, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:34 PST (1673512954): 'dateTime': '1673512954', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512954, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:34 PST (1673512954): 'dateTime': '1673512954', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512954, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:34 PST (1673512954): 'dateTime': '1673512954', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'outTemp': 40.8, 'outHumidity': 
>> 99.0, 'windSpeed': 0.0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512958, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:38 PST (1673512958): 'dateTime': '1673512958', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'outHumidity': 
>> '99.0', 'outTemp': '40.8', 'strikes_total': '2', 'usUnits': '1', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'outTemp': 40.8, 'outHumidity': 
>> 99.0, 'windSpeed': 0.0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512958, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:38 PST (1673512958): 'dateTime': '1673512958', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'outHumidity': 
>> '99.0', 'outTemp': '40.8', 'strikes_total': '2', 'usUnits': '1', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'outTemp': 40.8, 'outHumidity': 
>> 99.0, 'windSpeed': 0.0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512958, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:38 PST (1673512958): 'dateTime': '1673512958', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'outHumidity': 
>> '99.0', 'outTemp': '40.8', 'strikes_total': '2', 'usUnits': '1', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'windDir': 269.0, 
>> 'Atlas_rain_total': 2.44, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512968, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:48 PST (1673512968): 'Atlas_rain_total': '2.44', 
>> 'dateTime': '1673512968', 'lightning_distance': '0', 
>> 'lightning_strike_count': '0', 'rain': '0.0', 'strikes_total': '2', 
>> 'usUnits': '1', 'windBatteryStatus': '0', 'windDir': '269.0', 'windSpeed': 
>> '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'windDir': 269.0, 
>> 'Atlas_rain_total': 2.44, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512968, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:48 PST (1673512968): 'Atlas_rain_total': '2.44', 
>> 'dateTime': '1673512968', 'lightning_distance': '0', 
>> 'lightning_strike_count': '0', 'rain': '0.0', 'strikes_total': '2', 
>> 'usUnits': '1', 'windBatteryStatus': '0', 'windDir': '269.0', 'windSpeed': 
>> '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'windDir': 269.0, 
>> 'Atlas_rain_total': 2.44, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512968, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:48 PST (1673512968): 'Atlas_rain_total': '2.44', 
>> 'dateTime': '1673512968', 'lightning_distance': '0', 
>> 'lightning_strike_count': '0', 'rain': '0.0', 'strikes_total': '2', 
>> 'usUnits': '1', 'windBatteryStatus': '0', 'windDir': '269.0', 'windSpeed': 
>> '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512970, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:50 PST (1673512970): 'dateTime': '1673512970', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512970, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:50 PST (1673512970): 'dateTime': '1673512970', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512970, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:50 PST (1673512970): 'dateTime': '1673512970', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) MessageCallbackProvider 
>> data-> incoming topic: indoor/BME280_pressure, QOS: 0, retain: 0, payload: 
>> b'971.53'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> incoming indoor/BME280_pressure: 'pressure': '971.53'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'UV': 0, 
>> 'radiation': 0, 'lux': 0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512979, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing accumulated indoor/BME280_pressure:
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:59 PST (1673512979): 'dateTime': '1673512979', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'lux': '0', 
>> 'radiation': '0', 'strikes_total': '2', 'usUnits': '1', 'UV': '0', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'UV': 0, 
>> 'radiation': 0, 'lux': 0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512979, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing accumulated indoor/BME280_pressure:
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:59 PST (1673512979): 'dateTime': '1673512979', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'lux': '0', 
>> 'radiation': '0', 'strikes_total': '2', 'usUnits': '1', 'UV': '0', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'windSpeed': 0.0, 'UV': 0, 
>> 'radiation': 0, 'lux': 0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512979, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing accumulated indoor/BME280_pressure:
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:42:59 PST (1673512979): 'dateTime': '1673512979', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'lux': '0', 
>> 'radiation': '0', 'strikes_total': '2', 'usUnits': '1', 'UV': '0', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512981, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing indoor/BME280_pressure: 'dateTime': '1673512979.6808412', 
>> 'pressure': '971.53', 'usUnits': '16'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) TopicManager data-> 
>> outgoing accumulated indoor/BME280_pressure: 'dateTime': '1673512981.0', 
>> 'pressure': '28.689268755875', 'usUnits': '1'
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:01 PST (1673512981): 'dateTime': '1673512981.0', 
>> 'extraTemp2': '35.24', 'pressure': '28.689268755875', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512981, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:01 PST (1673512981): 'dateTime': '1673512981', 
>> 'extraTemp2': '35.24', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp2': 35.24, 'dateTime': 
>> 1673512981, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:01 PST (1673512981): 'dateTime': '1673512981', 
>> 'extraTemp2': '35.24', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512986, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:06 PST (1673512986): 'dateTime': '1673512986', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512986, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:06 PST (1673512986): 'dateTime': '1673512986', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'extraTemp1': 3.5599999999999987, 
>> 'dateTime': 1673512986, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:06 PST (1673512986): 'dateTime': '1673512986', 
>> 'extraTemp1': '3.5599999999999987', 'usUnits': '1'
>> weewx[36137] DEBUG user.sdr: packet={'outTemp': 40.8, 'outHumidity': 
>> 99.0, 'windSpeed': 0.0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512989, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:09 PST (1673512989): 'dateTime': '1673512989', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'outHumidity': 
>> '99.0', 'outTemp': '40.8', 'strikes_total': '2', 'usUnits': '1', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'outTemp': 40.8, 'outHumidity': 
>> 99.0, 'windSpeed': 0.0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512989, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:09 PST (1673512989): 'dateTime': '1673512989', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'outHumidity': 
>> '99.0', 'outTemp': '40.8', 'strikes_total': '2', 'usUnits': '1', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] DEBUG user.sdr: packet={'outTemp': 40.8, 'outHumidity': 
>> 99.0, 'windSpeed': 0.0, 'strikes_total': 2, 'lightning_distance': 0, 
>> 'windBatteryStatus': 0, 'dateTime': 1673512989, 'usUnits': 1}
>> weewx[36137] DEBUG user.MQTTSubscribe: (Service) data-> final packet is 
>> 2023-01-12 00:43:09 PST (1673512989): 'dateTime': '1673512989', 
>> 'lightning_distance': '0', 'lightning_strike_count': '0', 'outHumidity': 
>> '99.0', 'outTemp': '40.8', 'strikes_total': '2', 'usUnits': '1', 
>> 'windBatteryStatus': '0', 'windSpeed': '0.0'
>> weewx[36137] INFO __main__: Received signal TERM (15).
>> weewx[36137] INFO weewx.engine: Main loop exiting. Shutting engine down.
>> weewx[36137] INFO weewx.engine: Shutting down StdReport thread
>> weewx[36137] DEBUG weewx.engine: StdReport thread has been terminated
>> weewx[36137] DEBUG weewx.restx: Shut down MQTT thread.
>> weewx[36137] DEBUG weewx.restx: Shut down OWM thread.
>> weewx[36137] DEBUG weewx.restx: Shut down AWEKAS thread.
>> weewx[36137] DEBUG weewx.restx: Shut down WOW thread.
>> weewx[36137] DEBUG weewx.restx: Shut down CWOP thread.
>> weewx[36137] DEBUG weewx.restx: Shut down PWSWeather thread.
>> weewx[36137] DEBUG weewx.restx: Shut down Wunderground-PWS thread.
>> weewx[36137] DEBUG weewx.restx: Shut down StationRegistry thread.
>> weewx[36137] INFO user.MQTTSubscribe: (Service) Disconnected with result 
>> code 0
>> weewx[36137] INFO user.sdr: shutdown process sudo /usr/bin/rtl_433 -M utc 
>> -F json -Y autolevel
>> weewx[36137] DEBUG user.sdr: close stdout
>> weewx[36137] DEBUG user.sdr: close stderr
>> weewx[36137] DEBUG user.sdr: shutdown stdout-thread
>> weewx[36137] DEBUG user.sdr: shutdown stderr-thread
>> weewx[36137] INFO user.sdr: shutdown complete
>> weewx[36137] INFO __main__: Terminating weewx version 4.9.1
>> weewx[36137] DEBUG __main__:     ****  Traceback (most recent call last):
>>
>> weewx[36137] DEBUG __main__:     ****    File "/usr/share/weewx/weewxd", 
>> line 154, in main
>>
>> weewx[36137] DEBUG __main__:     ****      engine.run()
>>
>> weewx[36137] DEBUG __main__:     ****    File 
>> "/usr/share/weewx/weewx/engine.py", line 208, in run
>>
>> weewx[36137] DEBUG __main__:     ****      for packet in 
>> self.console.genLoopPackets():
>>
>> weewx[36137] DEBUG __main__:     ****    File 
>> "/usr/share/weewx/user/sdr.py", line 3296, in genLoopPackets
>>
>> weewx[36137] DEBUG __main__:     ****      for lines in 
>> self._mgr.get_stdout():
>>
>> weewx[36137] DEBUG __main__:     ****    File 
>> "/usr/share/weewx/user/sdr.py", line 282, in get_stdout
>>
>> weewx[36137] DEBUG __main__:     ****      line = 
>> self.stdout_queue.get(True, 3).decode()
>>
>> weewx[36137] DEBUG __main__:     ****    File 
>> "/usr/lib/python3.9/queue.py", line 180, in get
>>
>> weewx[36137] DEBUG __main__:     ****      self.not_empty.wait(remaining)
>>
>> weewx[36137] DEBUG __main__:     ****    File 
>> "/usr/lib/python3.9/threading.py", line 316, in wait
>>
>> weewx[36137] DEBUG __main__:     ****      gotit = waiter.acquire(True, 
>> timeout)
>>
>> weewx[36137] DEBUG __main__:     ****    File "/usr/share/weewx/weewxd", 
>> line 245, in sigTERMhandler
>>
>> weewx[36137] DEBUG __main__:     ****      raise Terminate
>>
>> weewx[36137] DEBUG __main__:     ****  Terminate
>>
>> pi@ubuntu:/var/log $
>>
>>
>>
>> On Sunday, January 8, 2023 at 2:12:58 PM UTC-8 [email protected] wrote:
>>
>>> Could be, but he did a package install.
>>>
>>> On Sun, Jan 8, 2023 at 2:10 PM vince <[email protected]> wrote:
>>>
>>>> You didn't say which os/version you are on, but it might be a "pip" 
>>>> (v2) versus "pip3" (v3) issue.
>>>>
>>>> Do 'pip list' and 'pip3 list' and compare the two.  I suspect only one 
>>>> has the modules you're looking for.
>>>>  
>>>>
>>>> -- 
>>>>
>>> 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 [email protected].
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/weewx-user/5e117d3e-02e9-485e-bada-a5396b5dd80en%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/weewx-user/5e117d3e-02e9-485e-bada-a5396b5dd80en%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> 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 [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/weewx-user/1a5689e5-dd92-4a4a-857b-d5babd46a062n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/1a5689e5-dd92-4a4a-857b-d5babd46a062n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/4a0b9df8-efec-4885-ac8e-71c5283290cfn%40googlegroups.com.

Reply via email to