Compare commits

..

48 Commits

Author SHA1 Message Date
Johannes
d01ccede57 Update nspanel-lovelace-ui.py 2025-07-31 20:39:04 +02:00
Johannes
65be5ffeb0 implements #1351 2025-07-31 20:37:31 +02:00
Johannes
d53afb0b20 fixes #1369 2025-07-31 20:11:02 +02:00
Armilar
9822870fc9 v4.9.3 - EU, US-L, US-P - Update NsPanelTs.ts 2025-07-31 17:54:36 +02:00
Armilar
8a54d1422c v4.9.3 - EU, US-p, US-l - Update NSPanelTs.ts 2025-07-31 17:52:14 +02:00
Armilar
3f573557f0 Merge pull request #1370 from ticaki/main
ready for 9.0.11
2025-07-30 22:06:08 +02:00
ticaki
c2ca3b26d1 fix 2025-07-30 21:59:16 +02:00
ticaki
476a252a92 ready for 9.0.11 2025-07-30 21:52:36 +02:00
Armilar
0af779973b v4.9.3 - DEV Update NSPanelTs.ts
popupShutter2 Changes (new Parameter shutterZeroIsClosed changing Direction of %-Value in HMI (0 <--> 100))
2025-07-30 14:01:04 +02:00
Armilar
8e0609a781 v4.9.3 - DEV Update NSPanelTs.ts
Some Shutter2 Changes
2025-07-30 13:59:25 +02:00
Armilar
5dab816259 v4.9.2.2 - Update NsPanelTs.ts 2025-07-28 14:11:29 +02:00
Armilar
5f8409f5f1 v4.9.2.3 - DEV Update NSPanelTs.ts
- 28.07.2025 - v4.9.2.3  Quick-Fix Errors with TypeScript in JS > 9.X (by ticaki)
2025-07-28 14:10:24 +02:00
Armilar
3d85e86a95 v4.9.2.3 - Update NsPanelTs.ts
Quick-Fix Errors with TypeScript (Bugs in JavaScript > 9.X) by ticaki
2025-07-28 10:17:57 +02:00
Armilar
85de880cda Merge pull request #1368 from ticaki/main
fix/ignore typescript errors
2025-07-28 00:15:53 +02:00
ticaki
98269b19aa fix/ignore typescript errors 2025-07-28 00:10:22 +02:00
Armilar
d77382ee88 v4.9.2.2 - Update NsPanelTs.ts
* Add Weather-Adapter OpenWeatherMap
* Accuweather deprecated
2025-07-25 21:49:57 +02:00
Armilar
e925d133d2 v4.9.2.2 - DEV Update NSPanelTs.ts
* Fix Examples
* Fix OpenWeatherMap fewclouds night
2025-07-25 21:43:23 +02:00
Armilar
5ef3e8132b v4.9.2.2 - DEV Update NSPanelTs.ts
* AccuWeather deprecated
* Add OpenWeatherMap
2025-07-25 16:03:06 +02:00
Armilar
662b79a389 v4.9.2 - DEV - Update NSPanelTs.ts 2025-07-24 14:11:30 +02:00
Armilar
c984ff53a3 v4.8.0 - Update NsPanelTs.ts
* Add popupShutter2
* Add popupLight2
* Add popupSlider (cardMedia EQ)
* Fix Demomodus cardPower
* Small Fixes
2025-06-30 12:40:43 +02:00
Armilar
f8b748a418 Merge pull request #1360 from ticaki/main
Types and variables for popupShutter2 changed.
2025-06-30 12:13:09 +02:00
Armilar
bc31670760 v4.9.0.1 - DEV Update NSPanelTs.ts
Small Fixes
2025-06-30 12:06:11 +02:00
Armilar
cbf6abf4dd v4.9.0 - DEV Update NSPanelTs.ts
Small Fixes
2025-06-30 12:02:17 +02:00
Armilar
5c85e4a6e1 Update NSPanelTs.ts
Change Release
2025-06-30 11:58:08 +02:00
Armilar
cbede2412e v4.9.0 - DEV Update NSPanelTs.ts
New Beta
2025-06-30 11:57:26 +02:00
ticaki
82d22743cc rename customIcons for shutter 2025-06-29 16:08:32 +02:00
ticaki
640d0dfa14 check customIcons 2025-06-29 15:43:19 +02:00
ticaki
ccc62d1e6a Types and variables for popupShutter2 changed. 2025-06-29 15:35:04 +02:00
Armilar
6cec0245a3 v4.7.5 - DEV Update NSPanelTs.ts
Add TFT US-P v4.7.5
2025-06-26 13:01:27 +02:00
Armilar
f3c98adf06 v4.7.5.1 - DEV Update NSPanelTs.ts 2025-06-25 23:48:29 +02:00
Armilar
f4487e4285 v4.7.5.1 - DEV Update NSPanelTs.ts
TFT EU + US-P
2025-06-25 23:46:34 +02:00
Armilar
8e2780b2cb Update NSPanelTs.ts DEV 4.7.5.1
Add popupLight2
2025-06-25 14:21:25 +02:00
Armilar
0372221973 Update NSPanelTs.ts DEV 4.7.4.1
- Add popupShutter2
2025-06-25 00:20:01 +02:00
Johannes
947ef2d592 Update pages.py 2025-06-24 20:28:23 +02:00
Johannes
a1f39236c4 implements #1350 2025-06-23 22:38:20 +02:00
Thomas
4cdd1ed586 Merge pull request #1357 from tt-tom17/main
v4.7.2.4 - DEV-Update NSPanel.ts
2025-06-21 12:28:25 +02:00
tt-tom17
1836d29931 v4.7.2.4 - DEV-Update NSPanel.ts
- fix DEMO mode check of Powerpage
2025-06-21 12:22:07 +02:00
tt-tom17
fca29cfbd8 v4.7.2.4 - DEV-Update NSPanel.ts
- fix DEMO mode check of Powerpage
2025-06-21 12:18:14 +02:00
Armilar
b27910c1af Merge pull request #1354 from ticaki/main
IconSelect left and indicatorScreensaverEntity added
2025-06-20 10:35:21 +02:00
ticaki
f046ae6031 IconSelect left and indicatorScreensaverEntity added 2025-06-20 10:28:46 +02:00
Thomas
4475ab1277 Merge pull request #1348 from ticaki/main
States only respond to any if ack = false
2025-06-13 00:23:53 +02:00
dependabot[bot]
9afdb71a7c Bump home-assistant/builder from 2024.08.2 to 2025.03.0 (#1317)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2024.08.2 to 2025.03.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2024.08.2...2025.03.0)

---
updated-dependencies:
- dependency-name: home-assistant/builder
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 20:08:47 +02:00
dependabot[bot]
c84d78551f Bump docker/login-action from 3.3.0 to 3.4.0 (#1316)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 20:08:35 +02:00
Johannes
5e2a4b17ae Update prepare_ha.md 2025-06-12 20:07:00 +02:00
Paweł Zubrycki
acdba468b3 Add weather service call functionality and fix weather forecast assignment (#1349) 2025-06-12 18:40:55 +02:00
ticaki
5803a489f5 States only respond to any if ack = false 2025-06-12 15:29:17 +02:00
patricknitsch
54c8d302a8 Add Entity Type "Valve" (#1347)
* Update pages.py

* Update controller.py

* Update pages.py

* Update pages.py
2025-06-06 19:24:56 +02:00
mikosoft83
8059905579 Update icons.py (#1343)
Climate icons improvement
2025-06-02 23:15:30 +02:00
8 changed files with 2111 additions and 843 deletions

View File

@@ -92,7 +92,7 @@ jobs:
- name: Login to GitHub Container Registry
if: env.BUILD_ARGS != '--test'
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -100,7 +100,7 @@ jobs:
- name: Build ${{ matrix.addon }} add-on
if: steps.check.outputs.build_arch == 'true'
uses: home-assistant/builder@2024.08.2
uses: home-assistant/builder@2025.03.0
with:
args: |
${{ env.BUILD_ARGS }} \

View File

@@ -334,6 +334,11 @@ class LuiController(object):
apis.ha_api.get_entity(entity_id).call_service("return_to_base")
elif entity_id.startswith('service'):
apis.ha_api.call_service(entity_id.replace('service.', '', 1).replace('.','/', 1), **entity_config.data)
elif entity_id.startswith('valve'):
if apis.ha_api.get_entity(entity_id).state == "open":
apis.ha_api.get_entity(entity_id).call_service("close_valve")
else:
apis.ha_api.get_entity(entity_id).call_service("open_valve")
# for media page
if button_type == "media-next":

View File

@@ -159,8 +159,8 @@ alarm_control_panel_mapping = {
}
climate_mapping = {
'auto': 'calendar-sync',
'heat_cool': 'calendar-sync',
'auto': 'fan-auto',
'heat_cool': 'sun-snowflake-variant',
'heat': 'fire',
'off': 'power',
'cool': 'snowflake',

View File

@@ -309,6 +309,11 @@ class LuiPagesGen(object):
unit_of_measurement = entity.attributes.get("unit_of_measurement", "")
value = entity.state
try:
value = str(round(float(value), 1))
except:
print("An exception occurred")
# limit value to 4 chars on us-p
if self._config.get("model") == "us-p" and cardType == "cardEntities":
value = entity.state[:4]
@@ -382,8 +387,29 @@ class LuiPagesGen(object):
elif entityType == "weather":
entityTypePanel = "text"
unit = get_attr_safe(entity, "temperature_unit", "")
if type(item.stype) == int and len(entity.attributes['forecast']) >= item.stype:
fdate = dp.parse(entity.attributes['forecast'][item.stype]['datetime'])
rt = None
if type(item.stype) == str:
spintstr = item.stype.split(":")
rt = spintstr[0]
item.stype = int(spintstr[1])
if type(item.stype) == int:
bits = get_attr_safe(entity, "supported_features", 0b0)
if not rt:
rt = "daily"
if bits & 0b001: #FORECAST_DAILY
rt = "daily"
elif bits & 0b010: #FORECAST_HOURLY
rt = "hourly"
elif bits & 0b100: #FORECAST_TWICE_DAILY
rt = "twice_daily"
results = apis.ha_api.call_service(
"weather/get_forecasts", target={"entity_id": entityId}, service_data={"type": rt}
)
forecast = results.get("result", {}).get("response", {}).get(entityId, {}).get('forecast') or entity.attributes.get('forecast', [])
if len(forecast) >= item.stype:
day_forecast = forecast[item.stype]
fdate = dp.parse(day_forecast['datetime'])
global babel_spec
if babel_spec is not None:
dateformat = "E" if item.nameOverride is None else item.nameOverride
@@ -391,11 +417,20 @@ class LuiPagesGen(object):
else:
dateformat = "%a" if item.nameOverride is None else item.nameOverride
name = fdate.astimezone().strftime(dateformat)
icon_id = get_icon_ha(entityId, stateOverwrite=entity.attributes['forecast'][item.stype]['condition'])
value = f'{entity.attributes['forecast'][item.stype].get("temperature", "")}{unit}'
color = self.get_entity_color(entity, ha_type=entityType, stateOverwrite=entity.attributes['forecast'][item.stype]['condition'], overwrite=colorOverride)
icon_id = get_icon_ha(entityId, stateOverwrite=day_forecast['condition'])
value = f'{day_forecast.get("temperature", "")}{unit}'
color = self.get_entity_color(entity, ha_type=entityType, stateOverwrite=day_forecast['condition'], overwrite=colorOverride)
else:
value = f'{get_attr_safe(entity, "temperature", "")}{unit}'
else:
value = f'{get_attr_safe(entity, "temperature", "")}{unit}'
elif entityType == "valve":
entityTypePanel = "valve"
value = get_translation(self._locale, f"backend.component.binary_sensor.state.door.{entity.state}")
if entity.state == "open":
icon_id = get_icon_id("valve-open")
else:
icon_id = get_icon_id("valve-closed")
else:
name = "unsupported"
# Overwrite for value

View File

@@ -34,7 +34,7 @@ class NsPanelLovelaceUIManager(ad.ADBase):
desired_tasmota_driver_version = 8
desired_display_firmware_version = 53
version = "v4.3.3"
version = "v4.7.3"
model = cfg.get("model")
if model == "us-l":

View File

@@ -94,37 +94,3 @@ Now, to install NSPanel Lovelace UI Backend with HACS, follow these steps:
proceed with the download
7. The Backend Application is now installed, and HACS will inform you when updates are available
# Workaround for HomeAssistant 2024.04
AppDaemon is using the old REST API that until AppDaemon moved on the the websocket API this woraround is needed to get weather forecast data from homeassistant. (https://github.com/AppDaemon/appdaemon/issues/1837)
To get the forecast data in appdaemon, there is a script needed in homeassistant's configuration.yaml:
```yaml
template:
- trigger:
- platform: time_pattern
hours: /1
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: daily
target:
entity_id: weather.home # change to your weather entity
response_variable: daily
sensor:
- name: Weather Forecast Daily
unique_id: weather_forecast_daily
state: "{{ states('weather.home') }}" # # change to your weather entity in this line
attributes:
temperature: "{{ state_attr('weather.home', 'temperature') }}" # change to your weather entity
temperature_unit: "{{ state_attr('weather.home', 'temperature_unit') }}" # change to your weather entity
forecast: "{{ daily['weather.home'].forecast }}" # change to your weather entity
```
![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/29555657/41f21db3-a6e2-4e4f-8dab-b9351ecd23e5)
Adjust the entities in your apps.yaml that are accessing the forecast to the newly created trigger template:
![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/29555657/1cfd913d-88be-4cb0-9a68-0e864ee1ad4f)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff