MCP23017 is not recognized

Hello, I have a problem with my MCP23017.

The terminal recognizes this X20 bus 1. Unfortunately, Mycodo doesn’t recognize it. Why is this?

ModuleNotFoundError: No module named ‘RPi’
2025-07-17 14:47:44,030 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 14:47:44,030 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn’t exist: 7
2025-07-17 14:47:44,508 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - 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/outputs/on_off_mcp23017.py”, line 136, in initialize
from adafruit_mcp230xx.mcp23017 import MCP23017
File “/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py”, line 19, in
from .digital_inout import DigitalInOut
File “/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py”, line 15, in
import digitalio
File “/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py”, line 23, in
from adafruit_blinka.microcontroller.bcm283x.pin import Pin
File “/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py”, line 7, in
from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
File “/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py”, line 6, in
from RPi import GPIO

You didn’t paste the entire traceback, you cut it off before the end, which shows the error.

ModuleNotFoundError that your output is indicating is likely the same issue as your input. There’s a lot going on without a lot of information. Did you have an issue when installing the RPi.GPIO dependency? What is the hardware and operating system you’re using? What does the log indicate?

Oh okay, let’s go again. This is the current output in the log.

2025-07-17 15:07:59,030 - INFO - mycodo.outputs.pwm_pca9685_82a4ddf9 - Initialized in 1223.1 ms
2025-07-17 15:08:01,534 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 9, sec, 0.0, 0.0, True)
2025-07-17 15:08:01,534 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 9
2025-07-17 15:08:40,343 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 15:08:40,344 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:05:26,527 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 19:05:26,533 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:07:14,317 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 19:07:14,317 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:09:40,789 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 9, sec, 0.0, 0.0, True)
2025-07-17 19:09:40,789 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 9
2025-07-17 19:09:41,605 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 10, sec, 0.0, 0.0, True)
2025-07-17 19:09:41,606 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 10
2025-07-17 19:09:43,174 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 19:09:43,176 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:09:43,813 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 6, sec, 0.0, 0.0, True)
2025-07-17 19:09:43,813 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 6

I had no problems installing.
I’m using a Raspberry 3B+ and Bookworms. What else can I check? Thank you for your help.

The log file complete

File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:34:19,668 - INFO - mycodo.outputs.on_off_mcp23017_2fa41b88 - Initialized in 10369.8 ms
2025-07-17 14:34:21,748 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 0
2025-07-17 14:34:37,454 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 0
2025-07-17 14:35:44,037 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Error initializing, trying again in 5 seconds: No module named 'RPi'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:35:49,046 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Error initializing, trying again in 5 seconds: No module named 'RPi'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:35:54,054 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - 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/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:35:54,057 - INFO - mycodo.outputs.on_off_mcp23017_2fa41b88 - Initialized in 10386.5 ms
2025-07-17 14:36:48,917 - INFO - mycodo - Received command to terminate daemon
2025-07-17 14:36:54,253 - INFO - mycodo.controllers.controller_input_055c30a2 - Deactivated in 56.9 ms
2025-07-17 14:36:54,278 - INFO - mycodo.controllers.controller_input_fc106b7a - Deactivated in 81.9 ms
2025-07-17 14:36:54,291 - INFO - mycodo.controllers.controller_input_69198289 - Deactivated in 95.2 ms
2025-07-17 14:37:01,696 - INFO - mycodo - All Function controllers stopped
2025-07-17 14:37:01,697 - INFO - mycodo - All PID controllers stopped
2025-07-17 14:37:01,698 - INFO - mycodo - All Input controllers stopped
2025-07-17 14:37:01,699 - INFO - mycodo - All Trigger controllers stopped
2025-07-17 14:37:01,699 - INFO - mycodo - All Conditional controllers stopped
2025-07-17 14:37:01,756 - INFO - mycodo - Output controller stopped
2025-07-17 14:37:01,948 - INFO - mycodo.controllers.controller_widget - Deactivated in 191.3 ms
2025-07-17 14:37:01,950 - INFO - mycodo - Widget controller stopped
2025-07-17 14:37:01,950 - INFO - mycodo - Mycodo daemon terminated in 13.034 seconds


2025-07-17 14:37:25,995 - INFO - mycodo - Mycodo daemon v8.16.2 starting
2025-07-17 14:37:26,052 - INFO - mycodo.pyro_daemon - Starting Pyro5 daemon
2025-07-17 14:37:28,575 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Error initializing, trying again in 5 seconds: No module named 'RPi'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:37:33,624 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Error initializing, trying again in 5 seconds: No module named 'RPi'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:44:24,114 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - 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/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:44:24,117 - INFO - mycodo.outputs.on_off_mcp23017_2fa41b88 - Initialized in 10776.4 ms
2025-07-17 14:44:24,118 - INFO - mycodo.controllers.controller_output - Activated in 11873.3 ms
2025-07-17 14:44:24,619 - INFO - mycodo - All activated Conditional controllers started
2025-07-17 14:44:24,620 - INFO - mycodo - All activated Trigger controllers started
2025-07-17 14:44:25,478 - INFO - mycodo.controllers.controller_input_fc106b7a - Activated in 635.7 ms
2025-07-17 14:44:26,407 - INFO - mycodo.controllers.controller_input_055c30a2 - Activated in 625.4 ms
2025-07-17 14:44:27,584 - INFO - mycodo.controllers.controller_input_69198289 - Activated in 925.4 ms
2025-07-17 14:44:27,585 - INFO - mycodo - All activated Input controllers started
2025-07-17 14:44:27,588 - INFO - mycodo - All activated PID controllers started
2025-07-17 14:44:27,588 - INFO - mycodo - All activated Function controllers started
2025-07-17 14:44:29,077 - INFO - mycodo.controllers.controller_widget - Activated in 1488.1 ms
2025-07-17 14:44:30,077 - INFO - mycodo - Mycodo daemon started in 18.594 seconds
2025-07-17 14:47:34,488 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Error initializing, trying again in 5 seconds: No module named 'RPi'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:47:39,499 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Error initializing, trying again in 5 seconds: No module named 'RPi'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/abstract_base_controller.py", line 56, in try_initialize
    self.initialize()
  File "/opt/Mycodo/mycodo/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:47:44,030 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 14:47:44,030 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 14:47:44,508 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - 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/outputs/on_off_mcp23017.py", line 136, in initialize
    from adafruit_mcp230xx.mcp23017 import MCP23017
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/mcp23017.py", line 19, in <module>
    from .digital_inout import DigitalInOut
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_mcp230xx/digital_inout.py", line 15, in <module>
    import digitalio
  File "/opt/Mycodo/env/lib/python3.11/site-packages/digitalio.py", line 23, in <module>
    from adafruit_blinka.microcontroller.bcm283x.pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/bcm283x/pin.py", line 7, in <module>
    from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
  File "/opt/Mycodo/env/lib/python3.11/site-packages/adafruit_blinka/microcontroller/generic_linux/rpi_gpio_pin.py", line 6, in <module>
    from RPi import GPIO
ModuleNotFoundError: No module named 'RPi'
2025-07-17 14:47:44,513 - INFO - mycodo.outputs.on_off_mcp23017_2fa41b88 - Initialized in 10419.5 ms
2025-07-17 14:55:33,970 - ERROR - mycodo.outputs.pwm_pca9685_82a4ddf9 - Output was unable to be setup: [Errno 2] No such file or directory: '/dev/i2c-'
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/outputs/pwm_pca9685.py", line 208, in initialize
    self.pwm_output = Adafruit_PCA9685.PCA9685(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/Adafruit_PCA9685/PCA9685.py", line 74, in __init__
    self._device = i2c.get_i2c_device(address, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/Adafruit_GPIO/I2C.py", line 64, in get_i2c_device
    return Device(address, busnum, i2c_interface, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/Adafruit_GPIO/I2C.py", line 97, in __init__
    self._bus = Adafruit_PureIO.smbus.SMBus(busnum)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/Mycodo/env/lib/python3.11/site-packages/Adafruit_PureIO/smbus.py", line 114, in __init__
    self.open(bus)
  File "/opt/Mycodo/env/lib/python3.11/site-packages/Adafruit_PureIO/smbus.py", line 140, in open
    self._device = open(f"/dev/i2c-{bus}", "r+b", buffering=0)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-'
2025-07-17 14:55:33,979 - INFO - mycodo.outputs.pwm_pca9685_82a4ddf9 - Initialized in 395.7 ms
2025-07-17 14:56:38,093 - INFO - mycodo.outputs.pwm_pca9685_82a4ddf9 - Initialized in 1012.0 ms
2025-07-17 15:03:53,918 - ERROR - mycodo.controllers.controller_output - Stopping output
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/controllers/controller_output.py", line 186, in add_mod_output
    self.output[output_id].stop_output()
  File "/opt/Mycodo/mycodo/outputs/pwm_pca9685.py", line 311, in stop_output
    self.output_switch('off')
  File "/opt/Mycodo/mycodo/outputs/pwm_pca9685.py", line 273, in output_switch
    if self.options_channels['pwm_invert_signal'][output_channel]:
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: None
2025-07-17 15:03:54,298 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Output setup on bus 1 at 0x70
2025-07-17 15:03:54,298 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 0: off
2025-07-17 15:03:54,300 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 0 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,304 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 1: off
2025-07-17 15:03:54,323 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 1 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,327 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 2: off
2025-07-17 15:03:54,347 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 2 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,358 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 3: off
2025-07-17 15:03:54,396 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 3 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,416 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 4: off
2025-07-17 15:03:54,445 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 4 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,451 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 5: off
2025-07-17 15:03:54,489 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 5 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,503 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 6: off
2025-07-17 15:03:54,524 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 6 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,549 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 7: off
2025-07-17 15:03:54,597 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 7 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,601 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 8: off
2025-07-17 15:03:54,629 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 8 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,634 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 9: off
2025-07-17 15:03:54,681 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 9 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,686 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 10: off
2025-07-17 15:03:54,705 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 10 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,734 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 11: off
2025-07-17 15:03:54,789 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 11 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,797 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 12: off
2025-07-17 15:03:54,836 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 12 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,881 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 13: off
2025-07-17 15:03:54,910 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 13 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,919 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 14: off
2025-07-17 15:03:54,953 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 14 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:54,967 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Startup state channel 15: off
2025-07-17 15:03:54,991 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 15 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:03:55,008 - INFO - mycodo.outputs.pwm_pca9685_82a4ddf9 - Initialized in 1068.1 ms
2025-07-17 15:04:06,377 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - output_on_off(on, 15, pwm, 50.0, 0.0, True)
2025-07-17 15:04:06,380 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 15 set to 50.00 % (switched off for 2048 of 4095 ticks)
2025-07-17 15:05:51,621 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 15:05:51,623 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 15:06:47,846 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - output_on_off(off, 15, None, 0.0, 0.0, True)
2025-07-17 15:06:47,849 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Duty cycle of channel 15 set to 0.00 % (switched off for 0 of 4095 ticks)
2025-07-17 15:06:47,853 - DEBUG - mycodo.outputs.pwm_pca9685_82a4ddf9 - Output 82a4ddf9-782c-464a-b36f-13b4448bfb76 CH15 (PWM Output ) OFF at 2025-07-17 15:06:47. Output returned: success
2025-07-17 15:07:57,802 - ERROR - mycodo.controllers.controller_output - Stopping output
Traceback (most recent call last):
  File "/opt/Mycodo/mycodo/controllers/controller_output.py", line 186, in add_mod_output
    self.output[output_id].stop_output()
  File "/opt/Mycodo/mycodo/outputs/pwm_pca9685.py", line 311, in stop_output
    self.output_switch('off')
  File "/opt/Mycodo/mycodo/outputs/pwm_pca9685.py", line 273, in output_switch
    if self.options_channels['pwm_invert_signal'][output_channel]:
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: None
2025-07-17 15:07:59,030 - INFO - mycodo.outputs.pwm_pca9685_82a4ddf9 - Initialized in 1223.1 ms
2025-07-17 15:08:01,534 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 9, sec, 0.0, 0.0, True)
2025-07-17 15:08:01,534 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 9
2025-07-17 15:08:40,343 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 15:08:40,344 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:05:26,527 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 19:05:26,533 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:07:14,317 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 19:07:14,317 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:09:40,789 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 9, sec, 0.0, 0.0, True)
2025-07-17 19:09:40,789 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 9
2025-07-17 19:09:41,605 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 10, sec, 0.0, 0.0, True)
2025-07-17 19:09:41,606 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 10
2025-07-17 19:09:43,174 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 7, sec, 0.0, 0.0, True)
2025-07-17 19:09:43,176 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 7
2025-07-17 19:09:43,813 - DEBUG - mycodo.outputs.on_off_mcp23017_2fa41b88 - output_on_off(on, 6, sec, 0.0, 0.0, True)
2025-07-17 19:09:43,813 - ERROR - mycodo.outputs.on_off_mcp23017_2fa41b88 - Cannot manipulate Output 2fa41b88-af37-4c62-970c-140547c8cebd: output channel doesn't exist: 6

The Dependency log will contain dependency installs.

[2025-07-18 08:53:00] 
[2025-07-18 08:53:00] #### Checking for updates to dependencies
[2025-07-18 08:53:05] 2025-07-18 08:53:05,378 Checking for updates to apt dependencies...
[2025-07-18 08:53:13] Traceback (most recent call last):
[2025-07-18 08:53:13]   File "/opt/Mycodo/mycodo/utils/update_dependencies.py", line 159, in <module>
[2025-07-18 08:53:13]     formatted_output = output.decode("utf-8").replace('\\n', '\n')
[2025-07-18 08:53:13] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 33: invalid continuation byte

It’s resolved.
I switched back to 8.15.13. Everything works there.

So the issue presented itself after an upgrade? That’s wasn’t conveyed in the original post.