AppDaemon does not work at all, even without any app installed

Edit: Tasmota seems to be completely irrelevant here. The problem is, that Appdaemon does not start at all, even without any app.

old:

Is anyone still able to use NSPanel with Tasmota firmware via AppDaemon?
It’s broken for me for >2 months now.

I suspect that AppDaemon has changed something that breaks the communication - but there is no way to downgrade the AddOn, so I’m kinda stuck.

Anyone able to use it properly and how?
Any idea how to fix it?

I’m close to reflashing the NSPanels to esp32 in the hopes to get it to work this way.

I’m using NSPanel on Tasmota (15.0.1) / AppDaemon (0.17.9) / NSPanel Lovelace UI Backend (4.7.4) without problem. In addition, it seems to me that with newer versions, functionality and reliability are better than before.

That baffles me.

I had a working setup with 3 NSPanels that stopped working in July.
I have stripped down the apps.yaml to the bare minimum - and I still see a myriad of errors in the AppDaemon log running through.

I have the same versions installed as you mentioned - and I do not see anything that could explain that.

Edit: Maybe I need to throw the whole AppDaemon installation away and start that part from scratch.

I don’t know what to advise. But reinstalling AppDaemon under HA is easy. I would probably start with that. And if that doesn’t help, I would probably try reflashing Tasmota. Since you already have Tasmota there, it’s also easier. I would probably follow the instructions at “Flash Tasmota to your NSPanel”. It’s basically like starting over, but if you save the configuration beforehand, it makes the whole process much easier.

I also use three panels myself, and it really works without any problems. For a while, I wanted to replace the panels with Shelly Wall Display. But after a week, I decided to go back to NSPanel…

I already reinstalled AppDaemon and realized that that is the issue because it’s throwing errors even without any app being configured.
Something is screwing up the connection between AppDaemon and HA.

I realized that Tasmota is completely irrelevant and no matter what I do, Appdaemon does not even start without anything at all:

-----------------------------------------------------------
 Add-on: AppDaemon
 Python Apps and Dashboard using AppDaemon 4.x for Home Assistant
-----------------------------------------------------------
 Add-on version: 0.17.9
 You are running the latest version of this add-on.
 System: Home Assistant OS 16.2  (amd64 / qemux86-64)
 Home Assistant Core: 2025.9.1
 Home Assistant Supervisor: 2025.09.0
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-appdaemon: starting
Looking in indexes: https://pypi.org/simple, https://wheels.home-assistant.io/musllinux-index/
Collecting babel
  Downloading babel-2.17.0-py3-none-any.whl.metadata (2.0 kB)
Downloading babel-2.17.0-py3-none-any.whl (10.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 29.5 MB/s eta 0:00:00
Installing collected packages: babel
Successfully installed babel-2.17.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
s6-rc: info: service init-appdaemon successfully started
s6-rc: info: service appdaemon: starting
s6-rc: info: service appdaemon successfully started
s6-rc: info: service legacy-services: starting
[08:44:25] INFO: Starting AppDaemon...
s6-rc: info: service legacy-services successfully started
2025-09-10 08:44:30.777375 INFO AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:30.777998 INFO AppDaemon: AppDaemon Version 4.5.11 starting
2025-09-10 08:44:30.778140 INFO AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:30.778262 INFO AppDaemon: Python version is 3.12.11
2025-09-10 08:44:30.778637 INFO AppDaemon: Configuration read from: /config/appdaemon.yaml
2025-09-10 08:44:30.778839 WARNING AppDaemon: Extra config field 'app_init_delay'. This will be ignored
2025-09-10 08:44:30.779021 INFO AppDaemon: Added log: AppDaemon
2025-09-10 08:44:30.779121 INFO AppDaemon: Added log: Error
2025-09-10 08:44:30.779206 INFO AppDaemon: Added log: Access
2025-09-10 08:44:30.779340 INFO AppDaemon: Added log: Diag
2025-09-10 08:44:30.779583 INFO AppDaemon: Running AD using uvloop
2025-09-10 08:44:30.780910 INFO AppDaemon: Using /config/apps as app_dir
2025-09-10 08:44:30.782332 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module appdaemon.plugins.hass.hassplugin
2025-09-10 08:44:30.782607 INFO HASS: HASS Plugin initialization complete
2025-09-10 08:44:30.783706 INFO AppDaemon: Initializing HTTP
2025-09-10 08:44:30.783978 INFO AppDaemon: Using 'ws' for event stream
2025-09-10 08:44:30.784362 INFO AppDaemon: HTTP Listening on port 5050
2025-09-10 08:44:30.786919 INFO AppDaemon: Starting API
2025-09-10 08:44:30.788621 INFO AppDaemon: Starting Admin Interface
2025-09-10 08:44:30.788934 INFO AppDaemon: Starting Dashboards
2025-09-10 08:44:30.807430 INFO AppDaemon: Starting Apps with 1 workers and 1 pins
2025-09-10 08:44:30.809623 INFO HASS: Connected to Home Assistant 2025.9.1 with aiohttp websocket
2025-09-10 08:44:30.810860 INFO AppDaemon: Running on port 5050
2025-09-10 08:44:30.811272 INFO AppDaemon: Waiting for plugins to be ready
2025-09-10 08:44:30.812507 INFO HASS: Authenticated to Home Assistant 2025.9.1
2025-09-10 08:44:30.816717 INFO HASS: Waiting for Home Assistant to start
2025-09-10 08:44:30.821017 INFO AppDaemon: All plugins ready
2025-09-10 08:44:30.822277 INFO AppDaemon: Scheduler running in realtime
2025-09-10 08:44:30.856637 INFO AppDaemon: New app config: hello_world
2025-09-10 08:44:30.860230 INFO AppDaemon: Starting apps: {'hello_world'}
2025-09-10 08:44:30.862509 INFO AppDaemon: Calling initialize() for hello_world
2025-09-10 08:44:30.923589 INFO hello_world: Hello from AppDaemon
2025-09-10 08:44:30.924511 INFO hello_world: You are now ready to run Apps!
2025-09-10 08:44:30.925448 INFO AppDaemon: App initialization complete
2025-09-10 08:44:31.018123 WARNING HASS: Disconnected from Home Assistant, retrying in 10 seconds
2025-09-10 08:44:31.021134 INFO AppDaemon: Stopping apps from namespace 'default' because the plugin failed
2025-09-10 08:44:31.021591 INFO AppDaemon: Stopping apps: {'hello_world'}
2025-09-10 08:44:40.852066 WARNING HASS: Timed out [0:00:10] waiting for request: {'type': 'get_states', 'id': 5}
2025-09-10 08:44:40.853528 INFO HASS: Completed initialization in 10.1s
2025-09-10 08:44:41.025040 INFO HASS: Connected to Home Assistant 2025.9.1 with aiohttp websocket
2025-09-10 08:44:41.026460 INFO HASS: Authenticated to Home Assistant 2025.9.1
2025-09-10 08:44:41.031448 INFO HASS: Waiting for Home Assistant to start
2025-09-10 08:44:41.063163 WARNING AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:41.063433 WARNING AppDaemon: Unexpected error during process_event()
2025-09-10 08:44:41.063615 WARNING AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:41.065527 WARNING AppDaemon: Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/appdaemon/events.py", line 239, in process_event
    self.AD.state.set_state_simple(namespace, entity_id, data["data"]["new_state"])
  File "/usr/lib/python3.12/site-packages/appdaemon/state.py", line 780, in set_state_simple
    if self.entity_exists(namespace, entity_id):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/appdaemon/state.py", line 473, in entity_exists
    return namespace in self.state and entity in self.state[namespace]
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable
2025-09-10 08:44:41.065925 WARNING AppDaemon: {
    "event_type": "state_changed",
    "data": {
        "entity_id": "sensor.phase_c_current",
        "old_state": {
            "entity_id": "sensor.phase_c_current",
            "state": "0.4",
            "attributes": {
                "state_class": "measurement",
                "unit_of_measurement": "A",
                "device_class": "current",
                "friendly_name": "Phase C current"
            },
            "last_changed": "2025-09-10T06:42:40.801639+00:00",
            "last_reported": "2025-09-10T06:42:40.801639+00:00",
            "last_updated": "2025-09-10T06:42:40.801639+00:00",
            "context": {
                "id": "01K4S5SDH1J7M6BW86JVVQS2NW",
                "parent_id": null,
                "user_id": null
            }
        },
        "new_state": {
            "entity_id": "sensor.phase_c_current",
            "state": "0.5",
            "attributes": {
                "state_class": "measurement",
                "unit_of_measurement": "A",
                "device_class": "current",
                "friendly_name": "Phase C current"
            },
            "last_changed": "2025-09-10T06:44:41.059152+00:00",
            "last_reported": "2025-09-10T06:44:41.059152+00:00",
            "last_updated": "2025-09-10T06:44:41.059152+00:00",
            "context": {
                "id": "01K4S5X2Z3C8RHT95CE5GRHHDS",
                "parent_id": null,
                "user_id": null
            }
        },
        "metadata": {
            "time_fired": "2025-09-10T06:44:41.059152+00:00",
            "origin": "LOCAL",
            "context": {
                "id": "01K4S5X2Z3C8RHT95CE5GRHHDS",
                "parent_id": null,
                "user_id": null
            }
        }
    }
}
2025-09-10 08:44:41.066145 WARNING AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:41.066415 WARNING AppDaemon: Previous message repeated 1 times
2025-09-10 08:44:41.066595 WARNING AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:41.067521 WARNING AppDaemon: Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/appdaemon/events.py", line 239, in process_event
    self.AD.state.set_state_simple(namespace, entity_id, data["data"]["new_state"])
  File "/usr/lib/python3.12/site-packages/appdaemon/state.py", line 780, in set_state_simple
    if self.entity_exists(namespace, entity_id):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/appdaemon/state.py", line 473, in entity_exists
    return namespace in self.state and entity in self.state[namespace]
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable
2025-09-10 08:44:41.067944 WARNING AppDaemon: {
    "event_type": "state_changed",
    "data": {
        "entity_id": "sensor.phase_c_power",
        "old_state": {
            "entity_id": "sensor.phase_c_power",
            "state": "90",
            "attributes": {
                "state_class": "measurement",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "Phase C power"
            },
            "last_changed": "2025-09-10T06:44:39.501324+00:00",
            "last_reported": "2025-09-10T06:44:39.501324+00:00",
            "last_updated": "2025-09-10T06:44:39.501324+00:00",
            "context": {
                "id": "01K4S5X1EBFFQQQJ85TNX7Q934",
                "parent_id": null,
                "user_id": null
            }
        },
        "new_state": {
            "entity_id": "sensor.phase_c_power",
            "state": "113",
            "attributes": {
                "state_class": "measurement",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "Phase C power"
            },
            "last_changed": "2025-09-10T06:44:41.060716+00:00",
            "last_reported": "2025-09-10T06:44:41.060716+00:00",
            "last_updated": "2025-09-10T06:44:41.060716+00:00",
            "context": {
                "id": "01K4S5X2Z3C8RHT95CE5GRHHDS",
                "parent_id": null,
                "user_id": null
            }
        },
        "metadata": {
            "time_fired": "2025-09-10T06:44:41.060716+00:00",
            "origin": "LOCAL",
            "context": {
                "id": "01K4S5X2Z3C8RHT95CE5GRHHDS",
                "parent_id": null,
                "user_id": null
            }
        }
    }
}
2025-09-10 08:44:41.068217 WARNING AppDaemon: ------------------------------------------------------------
2025-09-10 08:44:41.242986 WARNING HASS: Disconnected from Home Assistant, retrying in 10 seconds
2025-09-10 08:44:41.246947 INFO AppDaemon: Stopping apps from namespace 'default' because the plugin failed
2025-09-10 08:44:41.247472 INFO AppDaemon: Stopping apps: {'hello_world'}
2025-09-10 08:44:51.060624 WARNING HASS: Timed out [0:00:10] waiting for request: {'type': 'get_states', 'id': 5}
2025-09-10 08:44:51.061841 INFO HASS: Completed initialization in 10.0s
2025-09-10 08:44:51.064466 INFO AppDaemon: Processing restart for plugin namespace 'default'
2025-09-10 08:44:51.065161 INFO AppDaemon: Starting apps: {'hello_world'}
2025-09-10 08:44:51.067840 INFO AppDaemon: Calling initialize() for hello_world
2025-09-10 08:44:51.069148 INFO hello_world: Hello from AppDaemon
2025-09-10 08:44:51.071040 INFO hello_world: You are now ready to run Apps!
2025-09-10 08:44:51.249293 INFO HASS: Connected to Home Assistant 2025.9.1 with aiohttp websocket
2025-09-10 08:44:51.250221 INFO HASS: Authenticated to Home Assistant 2025.9.1
2025-09-10 08:44:51.253419 INFO HASS: Waiting for Home Assistant to start
2025-09-10 08:44:51.438249 WARNING HASS: Disconnected from Home Assistant, retrying in 10 seconds
2025-09-10 08:44:51.442962 INFO AppDaemon: Stopping apps from namespace 'default' because the plugin failed
2025-09-10 08:44:51.443532 INFO AppDaemon: Stopping apps: {'hello_world'}
2025-09-10 08:45:01.280032 WARNING HASS: Timed out [0:00:10] waiting for request: {'type': 'get_states', 'id': 5}
2025-09-10 08:45:01.281228 INFO HASS: Completed initialization in 10.0s
2025-09-10 08:45:01.283704 INFO AppDaemon: Processing restart for plugin namespace 'default'
2025-09-10 08:45:01.284098 INFO AppDaemon: Starting apps: {'hello_world'}
2025-09-10 08:45:01.285972 INFO AppDaemon: Calling initialize() for hello_world
2025-09-10 08:45:01.287272 INFO hello_world: Hello from AppDaemon
2025-09-10 08:45:01.288220 INFO hello_world: You are now ready to run Apps!
2025-09-10 08:45:01.446795 INFO HASS: Connected to Home Assistant 2025.9.1 with aiohttp websocket
2025-09-10 08:45:01.448509 INFO HASS: Authenticated to Home Assistant 2025.9.1
2025-09-10 08:45:01.453395 INFO HASS: Waiting for Home Assistant to start

(I tried to play with increased timeouts and retries - but it doesn’t change anything.)

Even on a new, dedicated install (with no 3rd party integrations) the addon crashes.
The same happens when I start the instance in a secure mode.

It seems that Appdaemon has a limit on how many entities it can handle.
I had >10.000 entities when it crashed.
Now I’m down to 8200 and it works.

I think I may be facing the same issue here. I’m curious how you determined this and if you ever found a solution.

Edit to add: I found your comments in AppDaemon 4.5.11 constantly disconnects from HA Core 2025.7.1 with "TypeError: argument of type 'NoneType' is not iterable" · Issue #2399 · AppDaemon/appdaemon · GitHub

I found an Integration that had created >3k entities, which pushed me beyond 10k total.

I deleted the entities of that integration and AppDaemon worked again.
I waited a few hours until the entities where back and AD crashed again.
Enteties deleted - worked again and I reconfigured the integration to behave and not spam entities - and AD works ever since.