for some reason i am seeing heaps of loop packets, but only a few archive records are created from them. the loop packets are partial packets - each loop packet contains data for a single solar panel, while the database has columns for all solar panels. for exampler, panel 1 emits a loop packet with p1_current, p1_voltage, p1_rssi, panel 2 emits a loop packet p2_current, p2_voltage, p2_rssi, etc. the database has columns for 50 solar panels (p1_voltage, p2_voltage, etc). i am currently collecting data from 40 panels.
when i run weewxd directly, i see loop data for every panel, but i see only sporadic REC data. i would have expected to see each archive record populated with data from all of the panels, aggregated from all of the (partial) loop packets.
log output 'tigo.log' is attached
this is one of 9 weewx instances running on a home monitor, feeding data into influx and mqtt, where they are used by home assistant and grafana. the other instances monitor per-circuit power consumption, water consumption, propane consumption, weather stations, solar production, and battery status.
gory details: so taking it from the bottom up, we have the following:
1) i am pulling data from a TIGO CCA (cloud connect advanced) monitor using the taptap binary to decode RS485 data from a RS485-to-usb device wired into the 'gateway' port of the CCA (a read-only tap). the taptap application works great - it is sending JSON data as fast as it is coming off the wire. for example, this is output from taptap:
{"gateway":{"id":4610},"node":{"id":37},"timestamp":"2025-10-08T10:38:01.942422696-04:00","voltage_in":31.7,"voltage_out":31.4,"current":0.645,"dc_dc_duty_cycle":1.0,"temperature":15.3,"rssi":126}
2) the weewx-tigo driver captures the JSON from taptap and converts it to weewx packets. for example, this is output from running the driver directly. it maps the TIGO gateway/node identifiers of the form xxxx.yy to weewx schema identifiers of the form p1, p2, p3, etc.
$ PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/tigo.py --app /opt/taptap/bin/taptap --tap /dev/ttyUSB0 --config /etc/weewx/tigo.conf
'dateTime': '1760016266.812686', 'identifier': '4610.19', 'p19_current': '7.16', 'p19_dc_dc_duty_cycle': '1.0', 'p19_rssi': '123.0', 'p19_temperature': '21.9', 'p19_voltage_in': '33.45', 'p19_voltage_out': '33.1', 'usUnits': '16'
'dateTime': '1760016268.812686', 'identifier': '4610.19', 'p19_current': '7.075', 'p19_dc_dc_duty_cycle': '1.0', 'p19_rssi': '123.0', 'p19_temperature': '21.9', 'p19_voltage_in': '33.9', 'p19_voltage_out': '33.5', 'usUnits': '16'
'dateTime': '1760016268.742698', 'identifier': '4609.4', 'p4_current': '6.56', 'p4_dc_dc_duty_cycle': '1.0', 'p4_rssi': '216.0', 'p4_temperature': '14.1', 'p4_voltage_in': '38.5', 'p4_voltage_out': '38.2', 'usUnits': '16'
'dateTime': '1760016270.742698', 'identifier': '4609.4', 'p4_current': '6.635', 'p4_dc_dc_duty_cycle': '1.0', 'p4_rssi': '216.0', 'p4_temperature': '14.1', 'p4_voltage_in': '38.15', 'p4_voltage_out': '37.8', 'usUnits': '16'
'dateTime': '1760016270.742698', 'identifier': '4609.15', 'p15_current': '6.62', 'p15_dc_dc_duty_cycle': '1.0', 'p15_rssi': '192.0', 'p15_temperature': '19.1', 'p15_voltage_in': '37.9', 'p15_voltage_out': '37.5', 'usUnits': '16'
3) when i run weewxd directly with the driver, i see the loop packets:
$ weewxd /etc/weewx/tigo.conf
Using configuration file /etc/weewx/tigo.conf
LOOP: 2025-10-09 09:29:17 EDT (1760016557) 'dateTime': '1760016557.181576', 'identifier': '4610.22', 'p22_current': '7.435', 'p22_dc_dc_duty_cycle': '1.0', 'p22_rssi': '216.0', 'p22_temperature': '18.1', 'p22_voltage_in': '33.5', 'p22_voltage_out': '33.1', 'usUnits': '1'
LOOP: 2025-10-09 09:29:19 EDT (1760016559) 'dateTime': '1760016559.181576', 'identifier': '4610.22', 'p22_current': '7.39', 'p22_dc_dc_duty_cycle': '1.0', 'p22_rssi': '216.0', 'p22_temperature': '18.1', 'p22_voltage_in': '33.75', 'p22_voltage_out': '33.4', 'usUnits': '1'
LOOP: 2025-10-09 09:29:17 EDT (1760016557) 'dateTime': '1760016557.181576', 'identifier': '4610.40', 'p40_current': '7.32', 'p40_dc_dc_duty_cycle': '1.0', 'p40_rssi': '99.0', 'p40_temperature': '22.2', 'p40_voltage_in': '33.8', 'p40_voltage_out': '33.5', 'usUnits': '1'
LOOP: 2025-10-09 09:29:19 EDT (1760016559) 'dateTime': '1760016559.181576', 'identifier': '4610.40', 'p40_current': '7.425', 'p40_dc_dc_duty_cycle': '1.0', 'p40_rssi': '99.0', 'p40_temperature': '22.2', 'p40_voltage_in': '33.4', 'p40_voltage_out': '33.0', 'usUnits': '1'
LOOP: 2025-10-09 09:29:17 EDT (1760016557) 'dateTime': '1760016557.107579', 'identifier': '4609.8', 'p8_current': '4.155', 'p8_dc_dc_duty_cycle': '0.6078431372549019', 'p8_rssi': '198.0', 'p8_temperature': '19.6', 'p8_voltage_in': '41.0', 'p8_voltage_out': '24.2', 'usUnits': '1'
but you can see that a typical archive record does not include all of the data from loop packets:
$ weewxd /etc/weewx/tigo.conf | grep REC
REC: 2025-10-09 09:35:00 EDT (1760016900) 'dateTime': '1760016900', 'identifier': '4610.302000000001', 'interval': '5.0', 'p21_current': '7.67', 'p21_dc_dc_duty_cycle': '1.0', 'p21_rssi': '159.0', 'p21_temperature': '21.1', 'p21_voltage_in': '33.2', 'p21_voltage_out': '32.9', 'p31_current': '7.58', 'p31_dc_dc_duty_cycle': '1.0', 'p31_rssi': '105.0', 'p31_temperature': '19.2', 'p31_voltage_in': '33.775', 'p31_voltage_out': '33.349999999999994', 'p34_current': '7.577500000000001', 'p34_dc_dc_duty_cycle': '1.0', 'p34_rssi': '135.0', 'p34_temperature': '18.7', 'p34_voltage_in': '33.5', 'p34_voltage_out': '33.150000000000006', 'usUnits': '1'
REC: 2025-10-09 09:40:00 EDT (1760017200) 'dateTime': '1760017200', 'identifier': '4610.302000000001', 'interval': '5.0', 'p21_current': '7.845', 'p21_dc_dc_duty_cycle': '1.0', 'p21_rssi': '159.0', 'p21_temperature': '22.6', 'p21_voltage_in': '33.5', 'p21_voltage_out': '33.2', 'p31_current': '7.9025', 'p31_dc_dc_duty_cycle': '1.0', 'p31_rssi': '102.0', 'p31_temperature': '20.7', 'p31_voltage_in': '33.35', 'p31_voltage_out': '33.0', 'p34_current': '7.890000000000001', 'p34_dc_dc_duty_cycle': '1.0', 'p34_rssi': '135.0', 'p34_temperature': '20.2', 'p34_voltage_in': '33.05', 'p34_voltage_out': '32.6', 'usUnits': '1'