hey tom,

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.

this is using the weewx-tigo driver:
    https://github.com/matthewwall/weewx-tigo

operating system is debian 12
weewx 5.1 installed from debian package
configuration file 'tigo.conf' is attached
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'

-- 
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 visit 
https://groups.google.com/d/msgid/weewx-user/faa1332c-8cb3-4826-8116-5a539975c549n%40googlegroups.com.
2025-10-09T08:15:10.455293-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Initializing weewxd-tigo version 5.1.0
2025-10-09T08:15:10.455481-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Command line: /usr/share/weewx/weewxd.py --log-label weewxd-tigo 
/etc/weewx/tigo.conf
2025-10-09T08:15:10.455743-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Using Python: 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0]
2025-10-09T08:15:10.455815-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Located at: /usr/bin/python3
2025-10-09T08:15:10.458642-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Platform: Linux-6.1.0-38-amd64-x86_64-with-glibc2.36
2025-10-09T08:15:10.458763-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Locale: 'en_US.UTF-8'
2025-10-09T08:15:10.458832-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Entry path: /usr/share/weewx/weewxd.py
2025-10-09T08:15:10.458910-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
WEEWX_ROOT: /etc/weewx
2025-10-09T08:15:10.458974-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Config file: /etc/weewx/tigo.conf
2025-10-09T08:15:10.459045-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
User module: /etc/weewx/bin/user
2025-10-09T08:15:10.459106-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Debug: 0
2025-10-09T08:15:10.459255-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
User: weewx
2025-10-09T08:15:10.459451-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Group: weewx
2025-10-09T08:15:10.459578-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Groups: dialout plugdev weewx
2025-10-09T08:15:10.459769-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
Loading station type TIGO (user.tigo)
2025-10-09T08:15:10.466870-04:00 wisink weewxd-tigo[123396]: INFO user.tigo: 
driver version is 0.1
2025-10-09T08:15:10.467002-04:00 wisink weewxd-tigo[123396]: INFO user.tigo: 
tap=/dev/ttyUSB0
2025-10-09T08:15:10.467070-04:00 wisink weewxd-tigo[123396]: INFO user.tigo: 
cmd='/opt/taptap/bin/taptap observe --serial /dev/ttyUSB0'
2025-10-09T08:15:10.467139-04:00 wisink weewxd-tigo[123396]: INFO user.tigo: 
panel_map={'p2': '4609.2', 'p3': '4609.3', 'p4': '4609.4', 'p5': '4609.5', 
'p6': '4609.6', 'p7': '4609.7', 'p8': '4609.8', 'p9': '4609.9', 'p10': 
'4609.10', 'p11': '4609.11', 'p12': '4609.12', 'p13': '4609.13', 'p14': 
'4609.14', 'p15': '4609.15', 'p16': '4609.16', 'p17': '4609.17', 'p18': 
'4610.18', 'p19': '4610.19', 'p20': '4610.20', 'p21': '4610.21', 'p22': 
'4610.22', 'p23': '4610.23', 'p24': '4610.24', 'p25': '4610.25', 'p26': 
'4610.26', 'p27': '4610.27', 'p28': '4610.28', 'p29': '4610.29', 'p30': 
'4610.30', 'p31': '4610.31', 'p32': '4610.32', 'p33': '4610.33', 'p34': 
'4610.34', 'p35': '4610.35', 'p36': '4610.36', 'p37': '4610.37', 'p38': 
'4610.38', 'p39': '4610.39', 'p40': '4610.40', 'p41': '4610.41'}
2025-10-09T08:15:10.467297-04:00 wisink weewxd-tigo[123396]: INFO user.tigo: 
startup process '/opt/taptap/bin/taptap observe --serial /dev/ttyUSB0'
2025-10-09T08:15:10.468414-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
StdConvert target unit is 0x1
2025-10-09T08:15:10.468549-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
Archive will use data binding wx_binding
2025-10-09T08:15:10.468621-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
Record generation will be attempted in 'hardware'
2025-10-09T08:15:10.468685-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
Using archive interval of 300 seconds (specified in weewx configuration)
2025-10-09T08:15:10.495033-04:00 wisink weewxd-tigo[123396]: INFO weewx.restx: 
StationRegistry: Registration not requested.
2025-10-09T08:15:10.496654-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
service version is 0.17
2025-10-09T08:15:10.496844-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
database: data
2025-10-09T08:15:10.496927-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
destination: http://localhost:8086
2025-10-09T08:15:10.497003-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
line_format: multi-line-dotted
2025-10-09T08:15:10.497064-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
measurement: collector.tigo
2025-10-09T08:15:10.497202-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
tags: host=sink,driver=tigo
2025-10-09T08:15:10.497270-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
binding: archive
2025-10-09T08:15:10.501796-04:00 wisink weewxd-tigo[123396]: INFO user.influx: 
Data will be uploaded to http://localhost:8086
2025-10-09T08:15:10.511057-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
service version is 0.24
2025-10-09T08:15:10.511204-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
binding to archive
2025-10-09T08:15:10.511279-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
data_binding is wx_binding
2025-10-09T08:15:10.511879-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
topic is tigo
2025-10-09T08:15:10.511961-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
desired unit system is US
2025-10-09T08:15:10.512029-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
data will be uploaded to mqtt://localhost:1883/
2025-10-09T08:15:10.516536-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
'pyephem' detected, extended almanac data is available
2025-10-09T08:15:10.516694-04:00 wisink weewxd-tigo[123396]: INFO __main__: 
Starting up weewx version 5.1.0
2025-10-09T08:15:10.535130-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
Using binding 'wx_binding' to database 'tigo.sdb'
2025-10-09T08:15:10.535293-04:00 wisink weewxd-tigo[123396]: INFO 
weewx.manager: Starting backfill of daily summaries
2025-10-09T08:15:10.535358-04:00 wisink weewxd-tigo[123396]: INFO 
weewx.manager: Empty database
2025-10-09T08:15:10.535418-04:00 wisink weewxd-tigo[123396]: INFO weewx.engine: 
Starting main packet loop.
2025-10-09T08:20:16.209844-04:00 wisink weewxd-tigo[123396]: INFO user.mqtt: 
client established for mqtt://localhost:1883/
debug = 0
WEEWX_ROOT = /
log_success = False
log_failure = True
loop_on_init = True
version = 5.1

[Station]
    location = xxx
    latitude = 0
    longitude = 0
    altitude = 15, meter
    station_type = TIGO
    rain_year_start = 1
    week_start = 0

[TIGO]
    driver = user.tigo
    tap = /dev/ttyUSB0
    app = /opt/taptap/bin/taptap
    [[panel_map]]
        p2 = 4609.2
        p3 = 4609.3
        p4 = 4609.4
        p5 = 4609.5
        p6 = 4609.6
        p7 = 4609.7
        p8 = 4609.8
        p9 = 4609.9
        p10 = 4609.10
        p11 = 4609.11
        p12 = 4609.12
        p13 = 4609.13
        p14 = 4609.14
        p15 = 4609.15
        p16 = 4609.16
        p17 = 4609.17
        p18 = 4610.18
        p19 = 4610.19
        p20 = 4610.20
        p21 = 4610.21
        p22 = 4610.22
        p23 = 4610.23
        p24 = 4610.24
        p25 = 4610.25
        p26 = 4610.26
        p27 = 4610.27
        p28 = 4610.28
        p29 = 4610.29
        p30 = 4610.30
        p31 = 4610.31
        p32 = 4610.32
        p33 = 4610.33
        p34 = 4610.34
        p35 = 4610.35
        p36 = 4610.36
        p37 = 4610.37
        p38 = 4610.38
        p39 = 4610.39
        p40 = 4610.40
        p41 = 4610.41

[StdRESTful]
    [[StationRegistry]]
        register_this_station = false
    
    [[Influx]]
        server_url = http://localhost:8086
        database = data
        measurement = collector.tigo
        line_format = multi-line-dotted
        binding = archive
        tags = host=sink, driver=tigo

    [[MQTT]]
        server_url = mqtt://localhost:1883/
        topic = tigo
        unit_system = US

[StdReport]
    SKIN_ROOT = /etc/weewx/skins
    HTML_ROOT = /var/www/html/tigo
    data_binding = wx_binding

    [[Seasons]]
        skin = Seasons
        enable = true

[StdConvert]
    target_unit = US

[StdCalibrate]
    [[Corrections]]
        foo = foo + 0.2

[StdQC]    
    [[MinMax]]
        foo = 0, 0, inch

[StdArchive]
    archive_interval = 300
    record_generation = hardware
    loop_hilo = True
    data_binding = wx_binding

[DataBindings]
    [[wx_binding]]
        database = archive_sqlite
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = user.tigo.schema

[Databases]
    [[archive_sqlite]]
        database_name = tigo.sdb
        database_type = SQLite

[DatabaseTypes]
    [[SQLite]]
        driver = weedb.sqlite
        SQLITE_ROOT = /var/lib/weewx

[Engine]
    
    [[Services]]
        prep_services = 
        data_services = 
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, 
weewx.engine.StdQC
        xtype_services = 
        archive_services = weewx.engine.StdArchive
        restful_services = weewx.restx.StdStationRegistry, user.influx.Influx, 
user.mqtt.MQTT
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport

Reply via email to