Multiplexer Reading Two Sensors

I have installed a multiplexer to read two SCD30 sensors.

Currently the two sensors return the same values, which is sensor 1.

I have individually tested each sensor, then tested the multiplexer on its own, then tested each sensor attached to the multiplexer. I have enabled I2C and then added the dtoverlay to the config file.

I am misunderstanding how to use the multiplexer to select the appropriate bus, and acquire each sensor’s measurement. I have tried many configurations and I am stuck.

In the last screen shot below, do I add a value to the “I2C Bus” Input for each sensor to return its own value?

Here is what I have:

i2cdetect -l

System Information:

Live Measurements:

Input Page:

Input Configuration:

The multiplexer will create a new bus for every channel of the multiplexer. Therefore, you will need to set the appropriate bus if you want to measure different devices connected to the multiplexer. You will use the same address, since they are now separated onto different busses.

Is this a Pi 5? What is the I2C address of the sensor?

This is a Raspberry Pi 4B (fresh install of Raspberry Pi & Mycodo).

The I2C address of the SCD30 sensor is “0x61”.

From your screenshot, it looks like you would use busses 22 and 23.

This is where my confusion occurs.

I have used bus 22 & 23 for the two sensors and they still display the value of the first sensor, even after a reboot.

Is there a suggestion of what I can do to fix this?

Here is the log:

2025-11-05 03:56:49,658 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 1595.94091796875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 49, 605796)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.46166229248047, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 49, 605824)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 62.40081787109375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 49, 605841)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.194846495902613, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 49, 605912)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 750.0066079880146, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 49, 605960)}}
2025-11-05 03:56:51,124 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 1476.5208740234375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 51, 102785)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.434959411621094, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 51, 102798)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 61.72637939453125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 51, 102804)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.006967792115729, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 51, 102831)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 762.1736496892286, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 56, 51, 102850)}}
2025-11-05 03:57:04,567 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 4224.31640625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 4, 545294)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.859539031982422, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 4, 545305)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 83.013916015625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 4, 545310)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 14.932831210448269, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 4, 545340)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 347.43479811900863, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 4, 545359)}}
2025-11-05 03:57:06,222 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 3724.84521484375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 6, 201006)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.83016586303711, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 6, 201018)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 80.3955078125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 6, 201024)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 14.40696723738164, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 6, 201053)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 400.2511663500936, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 6, 201072)}}
2025-11-05 03:57:19,573 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 1674.967529296875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 19, 538442)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.675289154052734, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 19, 538458)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 64.08843994140625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 19, 538468)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.797725615606774, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 19, 538511)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 726.0625221036865, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 19, 538539)}}
2025-11-05 03:57:21,113 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {}
2025-11-05 03:57:32,160 - INFO - mycodo.controllers.controller_input_e8395f7b - Deactivated in 90.1 ms
2025-11-05 03:57:33,185 - INFO - mycodo.controllers.controller_input_3d8f55e6 - Deactivated in 30.0 ms
2025-11-05 03:57:43,703 - DEBUG - mycodo.controllers.controller_input_e8395f7b - get_measurement() found
2025-11-05 03:57:43,703 - DEBUG - mycodo.controllers.controller_input_e8395f7b - listener() not found
2025-11-05 03:57:43,704 - INFO - mycodo.controllers.controller_input_e8395f7b - Activated in 288.8 ms
2025-11-05 03:57:43,767 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 913.0208129882812, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 43, 719952)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.61920928955078, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 43, 719979)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 58.78448486328125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 43, 719988)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 9.451549399853892, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 43, 720054)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 830.3571420473626, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 43, 720088)}}
2025-11-05 03:57:46,082 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - get_measurement() found
2025-11-05 03:57:46,083 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - listener() not found
2025-11-05 03:57:46,083 - INFO - mycodo.controllers.controller_input_3d8f55e6 - Activated in 338.3 ms
2025-11-05 03:57:46,162 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 867.1705932617188, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 46, 101066)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.61920928955078, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 46, 101082)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 58.60595703125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 46, 101090)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 9.406262987852955, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 46, 101131)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 833.9538909874071, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 46, 101153)}}
2025-11-05 03:57:58,754 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 825.59814453125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 58, 699110)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.560462951660156, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 58, 699141)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 57.501220703125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 58, 699159)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 9.068311039810958, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 58, 699228)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 853.0438521017019, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 57, 58, 699280)}}
2025-11-05 03:58:01,156 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 817.321044921875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 1, 136109)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.573814392089844, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 1, 136120)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 57.3455810546875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 1, 136126)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 9.040569448924147, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 1, 136155)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 856.8893495607878, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 1, 136175)}}
2025-11-05 03:58:13,805 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 805.7415161132812, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 13, 769185)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.49103546142578, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 13, 769197)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.96258544921875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 13, 769203)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.863754183078429, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 13, 769231)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 860.0787704045279, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 13, 769251)}}
2025-11-05 03:58:16,209 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 801.7543334960938, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 16, 146004)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.50438690185547, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 16, 146031)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.89697265625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 16, 146116)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.859152591307158, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 16, 146220)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 862.1162697093013, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 16, 146278)}}
2025-11-05 03:58:28,734 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 783.6798095703125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 28, 697043)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.49103546142578, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 28, 697058)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.842041015625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 28, 697065)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.832357643910221, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 28, 697102)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 862.4877838015127, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 28, 697125)}}
2025-11-05 03:58:31,234 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 781.4962768554688, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 31, 119169)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.517738342285156, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 31, 119183)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.8328857421875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 31, 119190)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.854928115293086, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 31, 119226)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 864.1259717672372, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 31, 119247)}}
2025-11-05 03:58:43,820 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 779.182861328125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 43, 763346)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.517738342285156, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 43, 763379)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.878662109375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 43, 763390)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.866861823339772, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 43, 763475)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 863.2096133666357, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 43, 763516)}}
2025-11-05 03:58:46,244 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 776.8917846679688, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 46, 153172)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.50438690185547, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 46, 153194)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.81915283203125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 46, 153202)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.838868015819966, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 46, 153359)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 863.6727667977739, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 46, 153398)}}
2025-11-05 03:58:58,733 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 773.12158203125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 58, 692832)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.477684020996094, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 58, 692845)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.71539306640625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 58, 692852)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.78683231953365, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 58, 692882)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 864.2899869258955, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 58, 58, 692902)}}
2025-11-05 03:59:01,132 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 773.2017211914062, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 1, 109425)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.477684020996094, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 1, 109436)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.6497802734375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 1, 109442)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.769686326066955, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 1, 109469)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 865.6001173393271, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 1, 109488)}}
2025-11-05 03:59:13,779 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 772.2811279296875, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 13, 739651)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.44831085205078, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 13, 739668)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.68792724609375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 13, 739676)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.752211852478775, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 13, 739719)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 863.2359613315506, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 13, 739742)}}
2025-11-05 03:59:16,176 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 772.183349609375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 16, 119522)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.434959411621094, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 16, 119551)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.66351318359375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 16, 119559)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.733358126925724, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 16, 119646)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 862.9946108848136, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 16, 119698)}}
2025-11-05 03:59:28,766 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 770.18798828125, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 28, 745841)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.434959411621094, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 28, 745853)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.67724609375, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 28, 745859)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.73694636745456, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 28, 745887)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 862.7211363065254, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 28, 745907)}}
2025-11-05 03:59:31,175 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 770.2553100585938, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 31, 115098)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 17.40558624267578, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 31, 115135)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 56.7047119140625, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 31, 115144)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 8.71667408631362, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 31, 115222)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 860.5761359398002, 'timestamp_utc': datetime.datetime(2025, 11, 4, 16, 59, 31, 115261)}}

Perhaps the overlay you’re using isn’t working properly. This can occur with kernel updates if the overlay hasn’t also been updated. Where did you get the overlay and does it have documentation for how to use it?

This is where I coped and pasted the dtoverlay from.

The code for the kernel driver is: dtoverlay=i2c-mux,pca9545,addr=0x70 .

I recall that when I first copied and pasted the code for the kernel driver, it was at the end/bottom of the config file and the multiplexer did not appear in the Mycodo System Information.

When I copied and pasted the code for the kernel driver higher up in the config file, the multiplexer did appear in the Mycodo System Information.

Here is a screen shot of my config page:

I have returned to this issue today and the error log shows the following:

OSError: [Errno 5] Input/output error
2025-11-05 18:35:43,081 - DEBUG - mycodo.controllers.controller_input_e8395f7b - get_measurement() found
2025-11-05 18:35:43,084 - DEBUG - mycodo.controllers.controller_input_e8395f7b - listener() not found
2025-11-05 18:35:43,090 - INFO - mycodo.controllers.controller_input_e8395f7b - Activated in 10454.2 ms
2025-11-05 18:35:43,091 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:35:43,392 - ERROR - mycodo.inputs.scd30_3d8f55e6 - Error initializing, trying again in 5 seconds: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 113, in initialize
    self.sensor.set_auto_self_calibration(self.enable_self_calibration)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 262, in set_auto_self_calibration
    self._send_command(0x5306, num_response_words=0, arguments=[arg])
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:35:47,926 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:35:48,394 - ERROR - mycodo.inputs.scd30_3d8f55e6 - Error initializing, trying again in 5 seconds: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 113, in initialize
    self.sensor.set_auto_self_calibration(self.enable_self_calibration)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 262, in set_auto_self_calibration
    self._send_command(0x5306, num_response_words=0, arguments=[arg])
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:13,268 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:13,270 - ERROR - mycodo.controllers.controller_input_e8395f7b - StopIteration raised 3 times. Possibly could not read input. Ensure it's connected properly and detected.
2025-11-05 18:36:14,233 - ERROR - mycodo.inputs.scd30_3d8f55e6 - Initialization errored 3 times; giving up. Maybe the following traceback can help diagnose the issue.
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 113, in initialize
    self.sensor.set_auto_self_calibration(self.enable_self_calibration)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 262, in set_auto_self_calibration
    self._send_command(0x5306, num_response_words=0, arguments=[arg])
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:14,234 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - get_measurement() found
2025-11-05 18:36:14,234 - INFO - mycodo - All activated Input controllers started
2025-11-05 18:36:14,235 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - listener() not found
2025-11-05 18:36:14,235 - INFO - mycodo - All activated PID controllers started
2025-11-05 18:36:14,235 - INFO - mycodo.controllers.controller_input_3d8f55e6 - Activated in 10227.6 ms
2025-11-05 18:36:14,235 - INFO - mycodo - All activated Function controllers started
2025-11-05 18:36:14,238 - ERROR - mycodo.inputs.scd30_3d8f55e6 - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:14,318 - INFO - mycodo.controllers.controller_widget - Activated in 82.5 ms
2025-11-05 18:36:15,319 - INFO - mycodo - Mycodo daemon started in 24.366 seconds
2025-11-05 18:36:17,974 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:28,361 - ERROR - mycodo.inputs.scd30_3d8f55e6 - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:32,895 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:43,453 - ERROR - mycodo.inputs.scd30_3d8f55e6 - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:43,455 - ERROR - mycodo.controllers.controller_input_3d8f55e6 - StopIteration raised 3 times. Possibly could not read input. Ensure it's connected properly and detected.
2025-11-05 18:36:47,960 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:36:47,961 - ERROR - mycodo.controllers.controller_input_e8395f7b - StopIteration raised 3 times. Possibly could not read input. Ensure it's connected properly and detected.
2025-11-05 18:36:58,388 - ERROR - mycodo.inputs.scd30_3d8f55e6 - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:37:02,913 - ERROR - mycodo.inputs.scd30_e8395f7b - InputModule.get_measurement() method raised IOError: [Errno 5] Input/output error
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/inputs/base_input.py", line 123, in read
    self._measurements = self.get_measurement()
                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/mycodo/inputs/scd30.py", line 123, in get_measurement
    if self.sensor.get_data_ready():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 174, in get_data_ready
    return self._word_or_none(self._send_command(0x0202))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/scd30_i2c/__init__.py", line 122, in _send_command
    self._i2c.i2c_rdwr(write_txn)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/smbus2/smbus2.py", line 637, in i2c_rdwr
    ioctl(self.fd, I2C_RDWR, ioctl_data)
OSError: [Errno 5] Input/output error
2025-11-05 18:37:13,481 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 1016.4603271484375, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 13, 454608)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.779510498046875, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 13, 454621)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 54.74700927734375, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 13, 454628)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.405946161792244, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 13, 454665)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1043.5655886175177, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 13, 454685)}}
2025-11-05 18:37:18,039 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 988.3707885742188, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 17, 927515)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.792861938476562, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 17, 927561)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 54.7607421875, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 17, 927596)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.422126172885333, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 17, 930778)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1044.1128967140598, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 17, 930923)}}
2025-11-05 18:37:28,447 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 970.3347778320312, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 28, 402456)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.822235107421875, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 28, 402477)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 55.31768798828125, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 28, 402484)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.601417609860487, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 28, 402530)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1033.1382724448874, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 28, 402616)}}
2025-11-05 18:37:32,987 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 960.8743286132812, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 32, 962035)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.80621337890625, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 32, 962048)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 55.12542724609375, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 32, 962055)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.534196497805992, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 32, 962087)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1036.5536938603811, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 32, 962106)}}
2025-11-05 18:37:43,421 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 975.2217407226562, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 43, 381982)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.80621337890625, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 43, 382005)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 55.32684326171875, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 43, 382017)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.588986477663711, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 43, 382074)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1031.9012035482465, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 43, 382108)}}
2025-11-05 18:37:47,990 - DEBUG - mycodo.controllers.controller_input_e8395f7b - Adding measurements to InfluxDB with ID e8395f7b-1d56-4518-ac4d-450ee2df7b57: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 959.78515625, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 47, 968959)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.80621337890625, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 47, 968971)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 55.291748046875, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 47, 968977)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.579452402287787, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 47, 969009)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1032.7118647389973, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 47, 969027)}}
2025-11-05 18:37:58,479 - DEBUG - mycodo.controllers.controller_input_3d8f55e6 - Adding measurements to InfluxDB with ID 3d8f55e6-26b2-41ff-aeaa-23e78f700973: {0: {'measurement': 'co2', 'unit': 'ppm', 'value': 926.8287353515625, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 58, 411120)}, 1: {'measurement': 'temperature', 'unit': 'C', 'value': 19.80621337890625, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 58, 411141)}, 2: {'measurement': 'humidity', 'unit': 'percent', 'value': 55.145263671875, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 58, 411149)}, 3: {'measurement': 'dewpoint', 'unit': 'C', 'value': 10.539600308055523, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 58, 411214)}, 4: {'measurement': 'vapor_pressure_deficit', 'unit': 'Pa', 'value': 1036.0954940569134, 'timestamp_utc': datetime.datetime(2025, 11, 5, 7, 37, 58, 411246)}}

This is likely the issue, since this hasn’t been updated in many years. I would look for a more up-to-date overlay, or other method to communicate with the multiplexer/sensor, such as building a custom input with the multiplexer and sensor Python libraries.

I am not a programmer, so this would be beyond my skills.

There are other, easier ways to make this work. If I understand the problem, you are trying to run 2 identical SCD30 sensors on an i2c multiplexer, but can’t setup the multiplexer with 2 separate buses, so the identical i2c bus addresses of the sensors is causing you to only “see” one sensor?

The Pi4 actually has 6 separate user-accessible i2c busses available depending on what overlay drivers you load at boot of the OS (channels i2c0 to i2c5). I believe Mycodo can take advantage of these separate i2c busses… thus you don’t actually need a multiplexer… you would just attach one SCD30 sensor to the Pi’s i2c0 bus, and one to the Pi’s i2c1 bus. (This would be the best option)

In config.txt add `dtoverlay=i2c1,pins_2_3,baudrate=100000`

Name:   i2c1
Info:   Change i2c1 pin usage. Not all pin combinations are usable on all
        platforms - platforms other then Compute Modules can only use this
        to disable transaction combining.
Load:   dtoverlay=i2c1,<param>=<val>
Params: pins_2_3                Use pins 2 and 3 (default)
        pins_44_45              Use pins 44 and 45
        combine                 Allow transactions to be combined (default
                                "yes")```

OR… you could maybe attach one SCD30 and the multiplexer to the Pi’s i2c0 bus, and then attach the other SCD30 to the multiplexer’s 0-bus. (May work, but not the best option)

OR… you could use a $5 ESP32 dev-kit module running Tasmota, and attach both SCD30 sensors to it because the ESP32 also has multiple i2c busses available easily through the Tasmota GUI setup… and then you would send the sensor data to Mycodo over WiFi using MQTT, which is also easy to setup in the Tasmota and Mycodo GUIs, no programming needed. (If you haven’t played around with ESP32s and Tasmota for building WiFi sensors and controllers, you’re really missing out on some IoT fun :slight_smile:)