mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-02-22 14:08:37 +01:00
4.3 KiB
4.3 KiB
Migration from AppDaemon Config
This page explains how to migrate panel configuration from the legacy AppDaemon apps.yaml format to the standalone rewrite panels.yaml format.
File and structure changes
Old (AppDaemon):
- panel config lived under
apps.yaml - MQTT and Home Assistant base connection config was split across AppDaemon files (
appdaemon.yaml, plugin config, and app config)
New (rewrite):
- panel config lives in one file:
panels.yaml(usually/config/panels.yaml) - connection values are read from this file and/or environment variables
Minimal before/after example
Old AppDaemon (apps.yaml):
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/tasmota_panel/RESULT"
panelSendTopic: "cmnd/tasmota_panel/CustomSend"
model: eu
locale: en_US
timeFormat: "%H:%M"
New rewrite (panels.yaml):
home_assistant_address: "http://supervisor"
home_assistant_token: "YOUR_TOKEN"
nspanels:
panel-1:
panelRecvTopic: "tele/tasmota_panel/RESULT"
panelSendTopic: "cmnd/tasmota_panel/CustomSend"
model: eu
locale: en_US
timeZone: "Europe/Berlin"
timeFormat: "%H:%M"
dateFormat: "full"
screensaver:
entities:
- entity: weather.home
cards:
- type: cardEntities
title: Main
entities:
- entity: light.kitchen
Key mapping
| Legacy AppDaemon key or concept | Standalone rewrite | Notes |
|---|---|---|
module, class, config wrapper |
removed | Rewrite uses nspanels.<panel_name> directly. |
panelRecvTopic |
panelRecvTopic |
Same meaning. |
panelSendTopic |
panelSendTopic |
Same meaning. |
model |
model |
Same meaning (eu, us-p, us-l). |
locale |
locale |
Same meaning. |
timeFormat |
timeFormat |
Same meaning. |
timezone (legacy docs casing) |
timeZone |
Use exact camelCase timeZone. |
dateFormatBabel / dateFormat |
dateFormat |
Rewrite expects dateFormat. |
cards |
cards |
Same concept. |
hiddenCards |
hiddenCards |
Same concept. |
screensaver |
screensaver |
Same concept; some legacy theme options are not available. |
defaultCard under screensaver usage |
defaultCard (panel level) |
Use as panel-level key in rewrite. |
temperatureUnit (card-level legacy usage) |
temp_unit (panel level) |
Rewrite reads panel-level temp_unit. |
sleepBrightness list schedule |
not supported | Rewrite supports integer or entity id, not list-based schedules. |
screenBrightness list schedule |
not supported | Rewrite supports integer or entity id, not list-based schedules. |
sleepTracking |
sleepTracking |
Same concept. |
sleepTrackingZones |
sleepTrackingZones |
Same concept. |
sleepOverride |
sleepOverride |
Same concept. |
updateMode / OTA URL overrides (displayURL-*, berryURL) |
not supported | Rewrite does not implement these legacy update keys. |
theme, dateAdditionalTemplate, timeAdditionalTemplate |
not supported | Not implemented in rewrite config. |
Connection config differences
In AppDaemon setups, MQTT and Home Assistant connectivity was mostly configured via AppDaemon plugin settings.
In the rewrite, connectivity is resolved directly by the runtime:
- Home Assistant:
home_assistant_addresshome_assistant_token
- MQTT (for MQTT mode):
mqtt_server,mqtt_port,mqtt_username,mqtt_password
- Optional mode switch:
- set
use_ha_apito use Home Assistant event mode instead of MQTT receive mode
- set
Entity-level differences to watch
Some legacy entity config fields are not implemented in the rewrite parser/renderer:
state,state_not,state_template- direct
service.*action entries with customdata action_name
Supported and commonly used fields in rewrite:
entity,name,icon,color,value,font- weather-related:
attribute,day,hour,unit - light detail helper:
effectList - navigation helper:
statusfornavigate.*entities
Migration checklist
- Create
/config/panels.yamlfrom the rewrite example. - Move each old app entry (
nspanel-1,nspanel-2, ...) intonspanels. - Remove
module/class/configwrappers. - Rename
timezonetotimeZone. - Ensure each panel has
dateFormat,timeFormat,screensaver, andcards. - Replace unsupported scheduled brightness lists with integer/entity-based values.
- Remove unsupported legacy-only keys listed above.