Compare commits

..

779 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
Johannes
4dc39c1b79 Should fix #1336 2025-05-30 09:00:29 +02:00
Jan Čermák
16909f7e7f Fix AppDaemon 4.5.x compatibility - use entity attributes as dict (#1333)
With update to AppDaemon to 4.5.x (add-on 0.17.x), access to entity
attributes through properties doesn't work anymore - they are a dict.
Refactor the usage to read dict, leverage walrus operator where
applicable.

Fixes #1331
2025-05-28 22:24:30 +02:00
Johannes
397932a6bc disable forecast for now 2025-05-28 21:56:14 +02:00
Johannes
04ac10b453 fix error 2025-05-28 21:55:04 +02:00
Armilar
ff103927e8 v4.7.2.1 - DEV Update NSPanelTs.ts
add popupSlider to cardMedia (alexa)
2025-04-24 12:52:05 +02:00
Armilar
c6e94f80de Merge pull request #1325 from ticaki/main
Same as last :)
2025-04-14 14:18:19 +02:00
ticaki
5d4ae6247d Merge branch 'joBr99:main' into main 2025-04-14 14:16:37 +02:00
ticaki
8b63322e50 ups 2025-04-14 14:12:09 +02:00
Armilar
7fd5b3967a Merge pull request #1324 from ticaki/main
4.7.1.3 MrIcons also allow other mqtt states
2025-04-14 14:05:22 +02:00
ticaki
1d719446c0 MrIcons also allow other mqtt states 2025-04-14 14:00:40 +02:00
Armilar
3913b86228 v4.7.1.2 - Update NsPanelTs.ts
- Add cardMedia "Music Player Daemon (MPD)" (One-Instance-Player with Playlists, Tracklists, Shuffle, Repeat, Seek/Crossfade); mpd.X - Instance required
- Fix cardMedia "Music Player Daemon (MPD)" shuffle with repeat and repeat with repeat/single
- TFT 56 / 4.7.1 (EU)
- Add Player Icon-Logos logo-alexa, logo-spotify, logo-dlna, logo-sonos, logo-mpd, logo-volumios, logo-bose 
- Add parameter playerMediaIcon to cardMedia
- Fix Play/Pause in MediaPlayers
- TFT 56 / 4.7.1 (US-P and US-L)
2025-04-13 17:26:01 +02:00
Armilar
3fddbfe451 v4.7.1.2 - DEV-Update NSPanelTs.ts
Update Links to TFT US-L/US-P (v4.7.1)
2025-04-13 17:20:35 +02:00
Armilar
c7b492c276 v4.7.1.2 - DEV-Update NSPanelTs.ts
Fix Play/Pause Button in cardMedia (new bug with MPD-Player)
2025-04-12 10:44:31 +02:00
Armilar
2e0cff80c1 v4.7.1.1 - DEV-Update NSPanelTs.ts
- Add cardMedia "Music Player Daemon (MPD)" (One-Instance-Player with Playlists, Tracklists, Shuffle, Repeat, Seek/Crossfade); mpd.X - Instance required
- Fix cardMedia "Music Player Daemon (MPD)" shuffle with repeat and repeat with repeat/single
- TFT 56 / 4.7.1 - Add Player Icon-Logos logo-alexa, logo-spotify, logo-dlna, logo-sonos, logo-mpd, logo-volumios, logo-bose 
- Add parameter playerMediaIcon to cardMedia
2025-04-11 14:55:21 +02:00
Armilar
3943dee733 v4.7.0.3 - DEV-Update NSPanelTs.ts - FR #1321
- Add cardMedia "Music Player Daemon (MPD)" (One-Instance-Player with Playlists, Tracklists, Shuffle, Repeat, Seek/Crossfade); mpd.X - Instance required
- Fix cardMedia "Music Player Daemon (MPD)" shuffle with repeat and repeat with repeat/single
2025-04-10 12:41:48 +02:00
Armilar
41e7f3c3e2 v4.7.0.2 - DEV-Update NSPanelTs.ts
Add - cardMedia "Music Player Daemon (MPD)"
2025-04-10 11:04:17 +02:00
Armilar
5e373ad856 v4.7.0 - Update NSPanelTs.ts
- Fix cardSchedule in HMI
2025-04-02 21:58:35 +02:00
Armilar
0d3d40cca2 v4.6.2.1 - Update NsPanelTs.ts
- cardSchedule
- Add Release-Check with HMI
2025-04-02 21:53:54 +02:00
Armilar
221063a5a6 v4.6.2.1 - Update NSPanelTs.ts
- Add startup TFT-Release directly from NSPanel-TFT
- Comparison between version number and release removed
2025-04-01 14:35:02 +02:00
Armilar
8e9b8ab476 v4.6.2.1 - DEV Update NSPanelTs.ts
Add cardSchedule
2025-04-01 11:59:01 +02:00
Armilar
1c6be4681e v4.6.0.1 - Update NsPanelTs.ts
- v4.5.2    Fix Bugs in HUE-Light, Fix Icon-Colors with interpolateColors (Color, ColorTemp, Brightness), Fix ON instead of ON_ACTUAL for writing DP
- v4.5.2.1  Add Functions to Calculate Colors of Icons (Darken and CT (Kelvin))
- v4.5.2.1  Remove New Sliders (popupLightNew), Fix TFT-Pictures in TFT --> with v4.6.0
- v4.6.0    Fix Bugs in Channels Light and RGBsingle-Light, Fix Icon-Colors with interpolateColors (Color, ColorTemp, Brightness), Fix ON instead of ON_ACTUAL for writing DP
- v4.6.0.1  Add Functions to Calculate Colors of RGBsingle Icons (Darken and CT (Kelvin/Mired))
- v4.6.0.1  Fix Light-Icons if Color-Temperature uses Mired instead of Kelvin (500 Mired - 153 Mired = 2000 K - 6536 K)
- v4.6.0.1  Add icon2 to Lights
- v4.6.0.1  Add Functions to Calculate Colors of RGB and CT Icons (Darken and CT (Kelvin/Mired)) 
- v4.6.0.1  Add function cie_to_rgb, Add CIE Channel to Lights
- v4.6.0.1  Add hidden Entity2 (Password/Switch) to cardQR (PageItem-Parameter "hideEntity2" true/false)
2025-03-18 16:01:37 +01:00
Armilar
7b4f4cd863 v4.6.0.1 - DEV Update NSPanelTs.ts
Hide Entity2 in cardQR
2025-03-18 13:34:39 +01:00
Armilar
9b285efe2d v4.6.0 - DEV Update NSPanelTs.ts
- v4.6.0    Fix Bugs in Channels Light and RGBsingle-Light, Fix Icon-Colors with interpolateColors (Color, ColorTemp, Brightness), Fix ON instead of ON_ACTUAL for writing DP
- v4.6.0.1  Add Functions to Calculate Colors of RGBsingle Icons (Darken and CT (Kelvin/Mired))
- v4.6.0.1  Fix Light-Icons if Color-Temperature uses Mired instead of Kelvin (500 Mired - 153 Mired = 2000 K - 6536 K)
- v4.6.0.1  Add icon2 to Lights
- v4.6.0.1  Add Functions to Calculate Colors of RGB and CT Icons (Darken and CT (Kelvin/Mired))
- v4.6.0.1  Add function cie_to_rgb, Add CIE Channel to Lights
2025-03-17 14:38:31 +01:00
Armilar
22e96f2b3a v4.5.2.1 - DEV Update NSPanelTs.ts
- v4.5.2    Fix Bugs in HUE-Light, Fix Icon-Colors with interpolateColors (Color, ColorTemp, Brightness), Fix ON instead of ON_ACTUAL for writing DP
- v4.5.2.1  Add Functions to Calculate Colors of Icons (Darken and CT (Kelvin))
- v4.5.2.1  Remove New Sliders (popupLightNew), Fix TFT-Pictures in TFT --> with v4.5.3
2025-03-16 00:02:20 +01:00
Armilar
23da51f662 Update ioBroker_NSPanel_locales.json 2025-03-14 13:48:50 +01:00
Thomas
b395a08b6e Update CardChart_History.js
add const 'factor' for big value and negativ value on panel
2025-02-23 03:10:01 +01:00
Armilar
ac07dbb185 v4.5.0.5 - Bugfix InitDimmode by Gargano 2025-02-03 12:00:09 +01:00
Armilar
86ab806b6e v4.5.0.5 - Bugfix InitDimmode by Gargano 2025-02-03 11:32:52 +01:00
Armilar
89d08ea507 DEV v4.5.0.4 - Update NSPanelTs.ts
v4.5.0.4  fix DetermineDimBrightness (function returns undefined, because wrong DP check)
2025-01-30 19:36:33 +01:00
Thomas
deacd17fc9 DEV v4.5.0.3 - Update NSPanelTs.ts
fix version
2025-01-30 00:55:11 +01:00
Armilar
4372e4193e Merge pull request #1305 from ticaki/main
add bottemEntityText from ID
2025-01-29 23:54:21 +01:00
ticaki
d4cb8b548d Merge branch 'joBr99:main' into main 2025-01-29 23:45:22 +01:00
ticaki
faa2880e8d bottemEntityText from ID 2025-01-29 08:27:47 +01:00
Armilar
eeeccc786d Delete ioBroker/HMI/Readme 2025-01-28 14:10:32 +01:00
Armilar
3bcf2372b0 Add files via upload 2025-01-28 14:09:39 +01:00
Armilar
9612f882a5 Add files via upload 2025-01-28 14:07:39 +01:00
Armilar
aa29552a90 Add files via upload 2025-01-28 14:05:55 +01:00
Armilar
a38393338a Create Readme 2025-01-28 14:04:11 +01:00
Armilar
d2e953410c v4.5.0.2 - Update NsPanelTs.ts 2025-01-28 13:48:26 +01:00
Armilar
0ac345328b Update NSPanelTs.ts 2025-01-28 13:46:33 +01:00
Armilar
11bf450e4c Merge pull request #1304 from ticaki/main
Different treatment of icon3 fixed
2025-01-23 23:33:04 +01:00
ticaki
e54faea639 switch example 2025-01-23 20:06:24 +01:00
ticaki
25062483c9 ups? 2025-01-23 20:04:01 +01:00
ticaki
f58be676bf Merge branch 'joBr99:main' into main 2025-01-23 20:00:00 +01:00
ticaki
cc147d29ab Different treatment of icon3 fixed 2025-01-23 19:59:40 +01:00
Armilar
78d20f81d2 Merge pull request #1303 from ticaki/main
icon3 functionality also for thermometers and a function based on this in the screensaver
2025-01-23 18:55:08 +01:00
ticaki
29a3c8123c changelog 2025-01-23 17:05:50 +01:00
ticaki
7807651223 Merge branch 'joBr99:main' into main 2025-01-23 17:03:32 +01:00
ticaki
deb7f6788e Add icon 3 2025-01-23 17:01:57 +01:00
Thomas
9ca7a4e829 DEV v4.5.0.2 - Update NSPanelTs.ts
fix version
2025-01-23 16:28:40 +01:00
Thomas
855ab2b28c Merge pull request #1302 from tt-tom17/main
DEV v4.5.0 - Update NSPanelTs.ts
2025-01-23 16:22:15 +01:00
tt-tom17
b1b042a25f DEV v4.5.0 - Update NSPanelTs.ts
fix handleScreensaverUpdate => leftScreensaverentity
fix type leftScreensaverEntity
2025-01-23 16:19:53 +01:00
Thomas
3a82af67b1 Merge pull request #3 from joBr99/main
DEV v4.5.0.1 - Update NSPanelTs.ts
2025-01-23 16:14:16 +01:00
Armilar
84e2105361 v4.5.0.1 - Update NsPanelTs.ts
Change URL's
2025-01-23 14:09:39 +01:00
Armilar
bae90b2b55 DEV v4.5.0.1 - Update NSPanelTs.ts
Change TFT URLs
2025-01-23 12:21:29 +01:00
tt-tom17
f6b605443d DEV v4.5.0 - Update NSPanelTs.ts
- fix leftScreensaverentity
2025-01-23 10:25:59 +01:00
tt-tom17
14d337891a DEV v4.5.0 - Update NSPanelTs.ts
- fix leftScreensaverentity
2025-01-23 10:24:40 +01:00
Armilar
a3df442a6a Update CODEOWNERS 2025-01-22 23:27:19 +01:00
Armilar
53af81f84d Update CODEOWNERS 2025-01-22 23:26:48 +01:00
Armilar
02332cc094 v4.5.0 - Update NsPanelTs.ts
v4.4.0.12 Add JSDocs and some small fixes
v4.4.0.13 Error due to an empty character string when subscribing to icon IDs
v4.4.0.14 Add Screensaver3 and cardGrid3
v4.4.0.14 Added Easy-View Screensaver states handling
v4.4.0.14 icon3 added for use in blind for the state between 0-100
v4.5.0    TFT 54 / 4.5.0
2025-01-22 22:49:58 +01:00
Armilar
19964f4ea6 Merge pull request #1301 from ticaki/main
Add maxEntities = 4
2025-01-22 21:16:11 +01:00
ticaki
3e777246a0 Merge branch 'joBr99:main' into main 2025-01-22 20:56:22 +01:00
ticaki
737bb80af0 add maxEntities 2025-01-22 20:55:43 +01:00
Armilar
07155018ef Merge pull request #1300 from ticaki/main
activate EasyView
2025-01-22 20:18:17 +01:00
ticaki
b8c0939382 activate EasyView 2025-01-22 20:00:12 +01:00
Armilar
985d395ba3 Merge pull request #1299 from ticaki/main
Fixing report of ilove and deactivate EasyView
2025-01-22 19:48:43 +01:00
ticaki
9f8e899af7 Merge branch 'joBr99:main' into main 2025-01-22 19:07:35 +01:00
ticaki
5359ed5e4b fix report from ilove deactivate EasyView 2025-01-22 19:06:55 +01:00
Armilar
081d176f24 Merge pull request #1298 from ticaki/main
icon3 added for use in blind for the state between 0-100
2025-01-21 22:22:11 +01:00
ticaki
0bfe72eec9 Merge pull request #1 from ticaki/add-icon3
icon3 added for use in blind for the state between 0-100
2025-01-21 22:10:52 +01:00
ticaki
d417aa2fb9 Merge branch 'main' into add-icon3 2025-01-21 22:10:42 +01:00
ticaki
d647fb3b4f icon3 added for use in blind for the state between 0-100 2025-01-21 22:08:45 +01:00
Armilar
ebf6300b06 DEV v4.5.0 - Update NSPanelTs.ts 2025-01-21 15:06:23 +01:00
Armilar
3977f9aa53 Merge pull request #1297 from tt-tom17/main
DEV v4.5.0 - Update NSPanelTs.ts
2025-01-21 15:04:27 +01:00
tt-tom17
8478194bb0 DEV v4.5.0 - Update NSPanelTs.ts
fix try catch
2025-01-21 14:49:17 +01:00
Armilar
417c99cdb9 DEV v4.5.0 - Update NSPanelTs.ts 2025-01-21 13:05:51 +01:00
Armilar
0e8849a382 DEV v4.5.0. - Update NSPanelTs.ts 2025-01-21 12:53:26 +01:00
Thomas
dd9ccaf076 Merge pull request #1296 from tt-tom17/main
Add service menue esayView
2025-01-21 11:44:05 +01:00
tt-tom17
ff461d821c Add service menue esayView 2025-01-21 11:40:46 +01:00
Armilar
6d68165fb6 Merge pull request #1295 from ticaki/main
rename channel to DeviceName
2025-01-21 11:35:12 +01:00
ticaki
489fd23edb Merge branch 'joBr99:main' into main 2025-01-21 11:08:11 +01:00
ticaki
4b39d5b438 rename channel to DeviceName 2025-01-21 11:07:16 +01:00
Armilar
b5a5aa41c6 Merge pull request #1294 from ticaki/main
Added Easy-View Screensaver states handling
2025-01-20 22:25:28 +01:00
ticaki
e878e08675 Added Easy-View Screensaver states handling 2025-01-20 22:19:09 +01:00
Armilar
246a7f1922 v4.4.0.14 - Update NSPanelTs.ts
Add Screensaver3 and cardGrid3
2025-01-20 17:56:15 +01:00
Armilar
c83921ca71 Merge pull request #1292 from ticaki/main
Error due to an empty character string when subscribing to icon IDs
2025-01-12 00:25:10 +01:00
ticaki
c9deae3d5c Error due to an empty character string when subscribing to icon IDs 2025-01-11 23:18:29 +01:00
Armilar
8184c10e93 v4.4.0.12 - Merge pull request #1286 from ticaki/main
Add JSDocs
2024-12-07 18:56:36 +01:00
ticaki
98746cc8d1 Version number added and optimisations by Copilot 2024-12-07 16:03:09 +01:00
ticaki
79fe05eb9c Add JSDocs 2024-12-07 15:44:32 +01:00
ticaki
b2dd46411a some more JSDocs and and some small fixes 2024-12-06 23:03:51 +01:00
ticaki
2c7dd23220 Add some JSDocs 2024-12-06 20:35:25 +01:00
Johannes
a873e3e29e Update README.md 2024-11-23 11:54:41 +01:00
Armilar
6a3b984c6c v4.4.0.11 - Update NsPanelTs.ts
v4.4.0.8  Fix: InitDimmode => timeDimMode Day / timeDimMode Night
v4.4.0.8  Add Always On Display (AOD) to cardTHermo
v4.4.0.8  Add Hide Buttons at Power Off to cardThermo (Climate Alias Channel)
v4.4.0.8  Add Custom Icon Object to cartdThermo (Climate Alias Channel
v4.4.0.9  Fix: del 'HandleMessage()' in Trigger 'activeDimmodeBrightness'
v4.4.0.10 Fix: Bug #1266 trigger timeoutScreensaver
v4.4.0.11 Add new value 'PopupNotify' to ActivePage
2024-11-23 11:07:28 +01:00
Armilar
ebbcf7c21e Merge pull request #1283 from tt-tom17/tt-tom17/issue1281
DEV 4.4.0.11 - Update NSPanel.ts
2024-11-23 10:51:51 +01:00
Armilar
0526b26b4a Merge pull request #1282 from tt-tom17/main
DEV 4.4.0.10 - Update NSPanelTs.ts
2024-11-23 10:51:00 +01:00
tt-tom17
c20dab43a6 DEV 4.4.0.11 - Update NSPanel.ts
- Add new value 'PopupNotify' to ActivePage
- Fixes #1281
2024-11-23 00:47:01 +01:00
tt-tom17
918a859a74 DEV 4.4.0.10 - Update NSPanelTs.ts
- Fix: Bug #1266 trigger timeoutScreensaver
2024-11-23 00:14:16 +01:00
tt-tom17
b3d3902399 DEV 4.4.0.10 - Update NSPanelTs.ts
- Fix: Bug #1266 trigger timeoutScreensaver
2024-11-23 00:13:19 +01:00
joBr99
69e02b0886 . (add nextion2text) 2024-11-22 20:00:19 +00:00
joBr99
74a602c34d . 2024-11-22 20:57:26 +01:00
joBr99
710bb2d884 do not send button in entity is empty (add nextion2text) 2024-11-21 19:35:50 +00:00
joBr99
7396806fab do not send button in entity is empty 2024-11-21 20:32:38 +01:00
Johannes
a87044a2b9 Update panel.py 2024-11-20 20:02:23 +01:00
Johannes
0c54f747b9 Update panel.py 2024-11-20 20:01:49 +01:00
dependabot[bot]
d6955eaad7 Bump home-assistant/builder from 2024.03.5 to 2024.08.2 (#1248)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2024.03.5 to 2024.08.2.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2024.03.5...2024.08.2)

---
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>
2024-11-20 19:50:19 +01:00
Johannes
5638720336 fix buttons light mode detail page 2024-11-20 19:48:37 +01:00
Armilar
e33875e9f5 Merge pull request #1274 from tt-tom17/main
DEV v4.4.0.9 Update NSPanel.ts
2024-10-31 13:59:45 +01:00
Thomas
9532ca2442 Merge pull request #2 from joBr99/main
Bump frenck/action-addon-linter from 2.15 to 2.18 (#1272)
2024-10-31 13:14:22 +01:00
tt-tom17
47f59e1b63 DEV v4.4.0.9 Update NSPanel.ts
- Fix: del 'HandleMessage()' in Trigger activeDimmodeBrightness'
2024-10-31 13:08:25 +01:00
dependabot[bot]
b9195101da Bump frenck/action-addon-linter from 2.15 to 2.18 (#1272)
Bumps [frenck/action-addon-linter](https://github.com/frenck/action-addon-linter) from 2.15 to 2.18.
- [Release notes](https://github.com/frenck/action-addon-linter/releases)
- [Commits](https://github.com/frenck/action-addon-linter/compare/v2.15...v2.18)

---
updated-dependencies:
- dependency-name: frenck/action-addon-linter
  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>
2024-10-29 22:02:25 +01:00
Armilar
34a9424c29 DEV v4.4.0.8 - Update NSPanelTs.ts
- Fix OnColors without any parameter
2024-10-26 14:40:58 +02:00
Armilar
54ce2a1c10 DEV 4.4.0.8 - Update NSPanelTs.ts
- Add "Custom Icon" Object to cardThermo (Climate Alias Channel)
2024-10-26 00:45:19 +02:00
Armilar
5166fb1f58 DEV v4.4.0.8 - Update NSPanelTs.ts
- Add Always On Display (AOD) to cardTHermo
- Add Hide Buttons at Power Off to cardThermo (Climate Mode)
2024-10-25 12:48:37 +02:00
Armilar
5e9434b7eb Merge pull request #1270 from tt-tom17/main
v4.4.0.8  DEV - NSPanel.ts
2024-10-25 11:04:24 +02:00
tt-tom17
a7398e54e3 v4.4.0.8 - Fix: InitDimmode => timeDimMode Day / timeDimMode Night 2024-10-25 10:52:15 +02:00
tt-tom17
ac54e042ea Fix: activDimmodeBrightness be DimmodeDay/DimmodeNight
Function InitDimmode
2024-10-24 21:09:39 +02:00
Armilar
4f17085a81 v.4.4.0.7 - Fix: first start and initialisation with new NSPanel device (by wolwin)
https://github.com/joBr99/nspanel-lovelace-ui/pull/1263
2024-10-09 23:12:42 +02:00
Armilar
c864eb6e73 Merge pull request #1263 from wolwin/main
ioBroker - Update DEV NSPanelTs.ts - different fixes
2024-10-09 23:00:24 +02:00
wolwin
828aa8fd21 Update NSPanelTs.ts
Final
2024-10-09 20:52:04 +02:00
wolwin
84615fad05 Update NSPanelTs.ts
correct script version and PageNavi entry
2024-10-09 13:36:46 +02:00
wolwin
b90b50395c Update DEV NSPanelTs.ts
Fix: first start and initialisation with new NSPanel device
2024-10-06 14:16:04 +02:00
Armilar
c27a23e5fe v4.4.0.6 - Fix for MQTT-Client adapter
- Fix: Using MQTT adapter or MQTT-CLIENT adapter / Minor Fix by wolwin
2024-09-27 19:01:04 +02:00
Armilar
1b33ddb207 v4.4.0.6 - Fix for MQTT-Client adapter
- Fix: Using MQTT adapter or MQTT-CLIENT adapter / Minor Fix by wolwin
2024-09-27 18:57:22 +02:00
Armilar
d68de45c3b v4.4.0.6 - Fix for MQTT-Client adapter
v4.4.0.6  Fix: Using MQTT adapter or MQTT-CLIENT adapter / Minor Fix by wolwin
2024-09-27 18:37:06 +02:00
Armilar
5b46b39dac Merge pull request #1260 from tt-tom17/main
update NSPanelts.ts DEV
2024-09-27 18:28:50 +02:00
tt-tom17
2d0201759d sendToPanel - log message
CheckConfigParameters - existsObjekt mqtt
2024-09-27 17:23:10 +02:00
Armilar
104788e2a4 v4.4.0.6 - DEV Update NSPanelTs.ts
- Check Ports with mqtt.X and mqtt-client.X
2024-09-19 22:46:35 +02:00
Armilar
4f1139a531 v4.4.0.5 - Update NsPanelTs.ts
- Remove day.js
- Change identifier from day.js to moment.js
2024-09-19 20:51:32 +02:00
Armilar
f673aad38e v4.4.0.5 - Update NSPanelTs.ts
- Remove day.js
- Change identifier from day.js to moment.js
2024-09-19 20:44:12 +02:00
Armilar
c8a8e1351c v4.4.0.5 - Update NSPanelTs.ts
- Remove day.js
2024-09-18 22:39:36 +02:00
Armilar
5d84b59bbd v4.4.0.4 - Update NsPanelTs.ts
v4.4.0.2  Calculated energy consumption in relation to dimming mode and relay state (not the energy consumption of the outputs)
v4.4.0.3  Check prefix '.tele.' in config.NSPanelReceiveTopic
v4.4.0.4  New Feature: Hidden Carts
2024-09-18 09:44:59 +02:00
Armilar
2a807702f4 Merge pull request #1257 from tt-tom17/main
DEV 4.4.0.4 - Update NSPanelTs.ts
2024-09-15 13:36:26 +02:00
tt-tom17
448b9cb30c DEV 4.4.0.4 - Update NSPanelTs.ts
-fix setObject hiddenCards
2024-09-15 12:31:12 +02:00
Armilar
248dc3a1c9 Merge pull request #1256 from tt-tom17/hiddenCards
DEV 4.4.0.4 - Update NSPanelTs.ts
2024-09-15 11:11:07 +02:00
tt-tom17
cd76c0528e DEV 4.4.0.4 - Update NSPanelTs.ts 2024-09-14 23:22:22 +02:00
tt-tom17
58e2febf64 ioBroker_NSPanel_locales_service.json
- "hiddencards_offon"
2024-09-14 23:06:29 +02:00
tt-tom17
0372b034f6 DEV 4.4.0.4 - Update NSPanelTs.ts 2024-09-14 23:04:02 +02:00
Armilar
1d730a0ce5 DEV 4.4.0.4 - Update NSPanelTs.ts
Developer Version
- New Feature: hiddenCards
2024-09-14 12:01:00 +02:00
Armilar
1a629ee8d5 Merge pull request #1252 from tt-tom17/main
Check prefix '.tele.' in config.NSPanelReceiveTopic
2024-09-04 10:09:28 +02:00
tt-tom17
cd563ad1ce nspanel.ts
v4.4.0.3
Check prefix '.tele.' in config.NSPanelReceiveTopic
2024-09-03 22:02:05 +02:00
dependabot[bot]
ec18b6349b Bump docker/login-action from 3.2.0 to 3.3.0 (#1239)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.2.0...v3.3.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>
2024-08-27 21:49:57 +02:00
Armilar
4d7d87d62a v4.4.0.2 - Calculated energy consumption
- Calculated energy consumption in relation to dimming mode and relay state (not the energy consumption of the outputs)
-add Try/Catch
2024-06-13 21:17:29 +02:00
Armilar
15a021a58f v4.4.0.2 - Calculated energy consumption
- Calculated energy consumption in relation to dimming mode and relay state (not the energy consumption of the outputs)
2024-06-13 21:04:17 +02:00
Thomas
63c85e6b96 Update NSPanelTs.ts
Fix TFT-Version
2024-06-10 22:31:36 +02:00
dependabot[bot]
6a94795a67 Bump docker/login-action from 3.1.0 to 3.2.0 (#1232)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.1.0...v3.2.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>
2024-06-04 23:10:00 +02:00
Armilar
d302567369 v4.4.0.1 - Update NsPanelTs.ts
Fix TFT 54 to TFT 53
2024-05-19 20:38:39 +02:00
Armilar
f8d6a1543d v4.4.0 - Update NsPanelTs.ts
TFT Update 54
2024-05-13 23:02:30 +02:00
Armilar
6df5a68682 v4.4.0 - Update NSPanelTs.ts
TFT Update
2024-05-13 22:58:20 +02:00
Armilar
7e1cc36805 Merge pull request #1220 from tt-tom17/patch-tt-tom17
v4.3.3.44 - DEV Update NSPanelTs.ts
2024-05-05 22:08:13 +02:00
Thomas
491ed21f98 v4.3.3.44 - DEV Update NSPanelTs.ts
Fix MQTT-Port-check
2024-05-05 14:21:50 +02:00
Johannes
e53cf5dab0 Update prepare_ha.md 2024-04-13 12:50:02 +02:00
Johannes
e853889247 Update prepare_ha.md 2024-04-04 16:26:24 +02:00
Johannes
19b0fe4052 Update prepare_ha.md 2024-04-02 18:12:48 +02:00
Johannes
d94d937d77 Update pages.py 2024-03-30 12:18:31 +01:00
Johannes
e5c1f0588a Update icons.py 2024-03-30 12:17:41 +01:00
Johannes
dd88ebe5da Update prepare_ha.md 2024-03-30 12:15:23 +01:00
Johannes
5536335ac9 Update prepare_ha.md 2024-03-29 21:47:36 +01:00
Johannes
df4fff6911 add docs for workaround script for appdaemon in ha 2024.04 2024-03-29 15:48:30 +01:00
Johannes
3dd83fde66 Update README.md 2024-03-27 21:27:59 +01:00
dependabot[bot]
f50b1ececa Bump docker/login-action from 3.0.0 to 3.1.0 (#1193)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.0.0...v3.1.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>
2024-03-27 21:22:58 +01:00
dependabot[bot]
ebee7b379e Bump home-assistant/builder from 2024.01.0 to 2024.03.5 (#1198)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2024.01.0 to 2024.03.5.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2024.01.0...2024.03.5)

---
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>
2024-03-27 21:22:50 +01:00
Odianosen Ejale
255db25f58 Card show helper (#1187)
* Turn app into AD Base app

* Added the ability to keep the messages being sent quiet

* fix little conflict

* Allow other apps to have access to current app

* Fixed card access typing

* Added show card helper

* Added navigate helper
2024-03-21 21:56:26 +01:00
Thomas
19050079d4 Update NSPanelTs.ts
fix demomodus cardPower
2024-03-18 17:03:24 +01:00
Thomas
8d97f98a29 Update NsPanelTs.ts
fix demomodus cradPower
2024-03-18 17:01:57 +01:00
Armilar
137ca5855e Update NsPanelTs.ts - Fix Screensaver BG-Color 2024-03-06 16:25:03 +01:00
Armilar
7707b48622 Update NSPanelTs.ts - Fix Screensaver BG Color 2024-03-06 16:23:24 +01:00
joBr99
193546d1ed fixes #1179 (add nextion2text) 2024-02-25 11:03:17 +00:00
joBr99
6703bca1d0 fixes #1179 2024-02-25 11:59:50 +01:00
Johannes
5739947586 Update pages.py 2024-02-25 11:53:11 +01:00
Johannes
5e1a7f2102 workaround for #1190 2024-02-25 11:49:25 +01:00
joBr99
a0e574391b implemented #1178 (add nextion2text) 2024-02-25 10:48:07 +00:00
joBr99
bd107d930a implemented #1178 2024-02-25 11:44:46 +01:00
Odianosen Ejale
66f83732bb Fixed typing (#1186)
* Turn app into AD Base app

* Added the ability to keep the messages being sent quiet

* fix little conflict

* Allow other apps to have access to current app

* Fixed card access typing
2024-02-19 21:45:31 +01:00
Odianosen Ejale
e796891d8e Current Card access (#1184)
* Turn app into AD Base app

* Added the ability to keep the messages being sent quiet

* fix little conflict

* Allow other apps to have access to current app

* Access other cards from apps
2024-02-19 18:05:00 +01:00
Odianosen Ejale
ba46bc9189 Added ability to keep logs quiet for messages being sent (#1183)
* Turn app into AD Base app

* Added the ability to keep the messages being sent quiet

* fix little conflict
2024-02-19 12:52:18 +01:00
Odianosen Ejale
64ff369a90 Turn app into AD Base app (#1182) 2024-02-19 00:17:40 +01:00
Thomas
92616429ba Merge pull request #1177 from tt-tom17/patch-tt-tom17
v4.3.3.43 - Update NsPanelTs.ts
2024-02-12 13:26:20 +01:00
Thomas
377383d672 v4.3.3.43 - DEV Update NSPanelTs.ts
minor fixes
2024-02-12 13:18:55 +01:00
Thomas
52d405a6d6 v4.3.3.43 - Update NsPanelTs.ts
- Change pageId with Alias in Communication with HMI
- Media-Player: Dynamic loading of the speaker list, playlist, tracklist, fix repeat, add seek, add elapsed/duration
- Minor Fixes; Add miValue / maxValue to Volume-Slider
- Fix: cardGrid2 => 9 Entities for Layout 'us-p' issue #1167
- Fix VolumeSlider
2024-02-12 13:17:25 +01:00
Thomas
2e1492c4fa v4.3.3.43 - DEV Update NSPanelTs.ts
Description extended
2024-02-12 13:10:26 +01:00
Johannes
16673df8cf Update config.yaml 2024-02-11 21:23:50 +01:00
Johannes
cb4c26acfd Update requirements.txt 2024-02-11 21:23:29 +01:00
Johannes
fda7ca4574 Update config.yaml 2024-02-11 21:16:13 +01:00
Yves Schumann
8e2e8d1e82 Fixed typos on Github issue templates (#1170) 2024-02-11 21:15:31 +01:00
jacekowski
4e36f47774 fix obsolete call to get_forecast (#1173) 2024-02-11 21:15:07 +01:00
Armilar
858dac73d0 v4.3.3.43 - DEV Update NSPanelTs.ts
Fix VolumeSlider
2024-02-11 18:37:20 +01:00
Thomas
3cccefb715 Merge pull request #1169 from starwarsfan/bugfix/fixDuplicatedDefinitions
Fixed duplicated definition of 'ct'
2024-02-11 08:54:18 +01:00
Thomas
44640f33d2 Merge pull request #1171 from tt-tom17/patch-tt-tom17
v4.3.3.43 - DEV Update NSPanelTs.ts
2024-02-10 23:35:19 +01:00
Thomas
2ae3b9bd8e v4.3.3.43 - DEV Update NSPanelTs.ts
- Fix: cardGrid2 => 9 Entities for Layout 'us-p' issue #1167
2024-02-10 23:27:22 +01:00
Armilar
2db991a371 v4.3.3.42 - DEV Update NSPanelTs.ts
Add minValue / maxValue to Volume-Slider
2024-02-10 22:30:27 +01:00
Armilar
2e52abd76c v4.3.342 - DEV Update NSPanelTs.ts
Add minValue/maxValue to Volume-Slider
2024-02-10 22:28:52 +01:00
Yves Schumann
03c3acd214 Fixed duplicated definition of 'ct' 2024-02-10 20:43:47 +01:00
Armilar
c26b277c56 v4.3.3.42 - DEV Update NSPanelTs.ts
Spotify Minor Fixes
2024-02-10 11:09:42 +01:00
Armilar
3f7fd40d17 v4.3.3.42 - DEV Update NSPanelTs.ts
- Minor Fixes
- Change pageId with Alias in Communication with HMI (cardMedia)
- spotiffy Media-Player: Dynamic loading of the speaker list, playlist, tracklist, fix repeat, add seek, add elapsed/duration
2024-02-09 17:03:55 +01:00
Armilar
0b01c0d236 Merge pull request #1166 from Armilar/main
Able to merge. These branches can be automatically merged.
2024-02-07 23:22:35 +01:00
Armilar
3107b73430 Merge branch 'joBr99:main' into main 2024-02-07 23:21:27 +01:00
Armilar
5d421ae525 v4.3.3.42 - DEV Update NSPanelTs.ts
Fix Volumio in cardMedia
2024-02-07 22:53:57 +01:00
Johannes
56a8495787 Update config.yaml 2024-02-07 19:38:47 +01:00
Armilar
a12bc03dd7 v4.3.3.42 - DEVUpdate NSPanelTs.ts
Elapsed Fixes in cardMedia
2024-02-07 13:28:46 +01:00
Armilar
6b1a65f8f4 v4.3.3.42 - Update NSPanelTs.ts
Minor Fixes in cardMedia
2024-02-07 11:25:58 +01:00
Thomas
9d94155480 Update NSPanelTs.ts
Fix: bottomScreensaverEntity[i].ScreensaverEntityIconColor
Zeile 8899
2024-02-07 10:38:59 +01:00
joBr99
3b46759134 . 2024-02-06 22:15:57 +01:00
Thomas
8d21c653ae Merge pull request #1164 from tt-tom17/patch-tt-tom17
update CardLChart_Influx2.ts
2024-02-06 15:06:58 +01:00
Thomas
d983c44db7 update CardLChart_Influx2.ts
- codeanpassungen
2024-02-06 15:04:13 +01:00
Thomas
467a1d92bb Merge pull request #1163 from tt-tom17/patch-tt-tom17
v4.3.3.41 Update NSPanel.ts
2024-02-06 10:35:45 +01:00
Thomas
157d3e3e66 v4.3.3.41 Update NSPanel.ts
- Fix: activeBrightness -> null
- Fix: bHome -> corrected PageId
2024-02-06 10:32:06 +01:00
Armilar
51bb320dce Merge pull request #1162 from ticaki/main
Handle null in active*Brightness
2024-02-05 19:37:18 +01:00
ticaki
12c99c6857 Handle null in active*Brightness 2024-02-05 19:29:15 +01:00
Armilar
62e905f336 v4.3.3.40 - Update NsPanelTs.ts
- Fix maxColorTempValue for RGB
- Fix SqueezeboxRPC-Media-Player and add some Functions
2024-02-05 17:21:13 +01:00
Armilar
9b5964a758 v4.3.3.40 - Update NSPanelTs.ts
- Fix maxColorTempValue for RGB
- Fix SqueezeboxRPC-Media-Player and add some Functions
2024-02-05 17:06:01 +01:00
Armilar
9c49a9c67d v4.3.3.39 - Update NSPanelTs.ts
Fix: if (pageItem.minValueColorTemp !== undefined && pageItem.maxValueColorTemp !== undefined) {
2024-02-03 10:45:45 +01:00
Armilar
0a2461f4a5 v4.3.3.39 - Update NsPanelTs.ts
fix maxValueColorTemp
2024-02-03 10:44:24 +01:00
Thomas
49577ddbb6 Merge pull request #1159 from tt-tom17/main
v4.3.3.39 Update NSPanel.ts
2024-01-30 11:02:24 +01:00
Thomas
6172b0c35f v4.3.3.39 Update NSPanel.ts
- Add: Optional setOn & setOff for HW button with mode 'set'
- Fix: ack for read-only state
2024-01-30 10:55:19 +01:00
Thomas
e7cc10692b Update and Rename CardLChart_Influx2 2024-01-30 10:23:19 +01:00
Thomas
221d2c717d Merge pull request #1157 from tt-tom17/patch-tt-tom17
v4.3.3.39  Update NSPanel.ts
2024-01-30 08:55:30 +01:00
Thomas
2b54f742c5 v4.3.3.39 Update NSPanel.ts
- Add: Optional setOn & setOff for HW button with mode 'set'
- Fix: ack for read-only state
2024-01-30 08:50:21 +01:00
Armilar
f02eddcebe Merge branch 'joBr99:main' into main 2024-01-29 12:16:00 +01:00
Thomas
c25a5cef67 Merge pull request #1156 from tt-tom17/patch-tt-tom17
v4.3.3.39 Update NSPanel.ts
2024-01-29 12:14:25 +01:00
Thomas
0f69ee951c v4.3.3.39 Update NSPanel.ts
- Add: Optional setOn & setOff for HW button with mode 'set'
- Fix: ack for read-only state
2024-01-29 11:58:37 +01:00
Thomas
fd6650db50 v4.3.3.39 Update NSPanel.ts
- Add: Optional setOn & setOff for HW button with mode 'set'
- Fix: ack for read-only state
2024-01-29 10:17:37 +01:00
Thomas
f2ad80665a v4.3.3.39 Update NSPanel.ts
- Add: Optional setOn & setOff for HW button with mode 'set'
- Fix: ack for read-only state
2024-01-29 09:40:01 +01:00
Armilar
cff9c94c27 Merge pull request #1154 from ticaki/main
fix ack for read-only state
2024-01-28 02:49:58 +01:00
ticaki
b6fdc12820 fix ack for read-only state 2024-01-27 18:02:05 +01:00
Armilar
01265faef9 Merge pull request #1153 from tt-tom17/patch-tt-tom17
Script vom Wiki nach Github schieben
2024-01-26 18:56:58 +01:00
Thomas
a2feae891e Script vom Wiki nach Github schieben 2024-01-26 18:50:47 +01:00
Armilar
bd24d4bcd1 Merge pull request #1151 from ticaki/main
2 Points
2024-01-23 22:04:52 +01:00
Armilar
0efbd9e23c Merge branch 'joBr99:main' into main 2024-01-23 21:41:06 +01:00
ticaki
4aab72fb10 build nice objects 2024-01-23 18:36:03 +01:00
ticaki
aa266da5ac fix txt.matchall 2024-01-23 18:17:37 +01:00
ticaki
49987d55ce Merge branch 'joBr99:main' into main 2024-01-23 18:16:59 +01:00
Armilar
c6939efd70 Merge pull request #1149 from theknut/patch-1
feat: write button event to states
2024-01-23 18:16:19 +01:00
ticaki
f7f853f05e Add setOn / setOff 2024-01-23 16:55:07 +01:00
ticaki
1faa540a70 Add some optional types 2024-01-23 07:58:21 +01:00
theknut
1746c876bd feat: write button event to states
Whenever a button is pressed there is no event triggered which lets the user easily implement triggers on this event.
This PR adds the functionality that the current button event is written to NSPanel objects structures as states under `0_userdata.0.NSPanel.1.Event.Button`:
- Action - whatever button was pressed (button, media-OnOff, volumeSlider, ...)
- Value -  auxillary value for this action (e.g. action `volumeSlider` - `Value` holds the value the slider was moved to)
- Id
  - Action == `button` - Id of the alias the button is connected to
  - else - Id of the current page item or the page to navigate to
2024-01-22 00:19:23 +01:00
Armilar
cd0c015fea v4.3.3.38 - Update NsPanelTs.ts (add nextion2text) 2024-01-20 23:31:37 +00:00
Armilar
760b25b7a2 v4.3.3.38 - Update NsPanelTs.ts
* v4.3.3.37 Change: Allow data points to be flushed for popUpNotify. Activate screensaver with one click.
* v4.3.3.38 Fix: joBr99#1098
* v4.3.3.38 Types: Number of PageItems defined & HandleScreensaverStatusIcons rewritten
* v4.3.3.38 Optimate: function SendTime()
* v4.3.3.38 Add: ScreensaverEntityIconSelect for MRIcons is like common.states for states.
* v4.3.3.38 Add: Changing the ScreensaverEntityValue value updates the screensaver.
* v4.3.3.38 Change: yAxisTicks parameter is not required in cardLChart PageItem
* v4.3.3.38 Add: click on indicatorIcon navigate to Page
2024-01-20 23:01:36 +01:00
Armilar
eccfad5615 Merge pull request #1147 from tt-tom17/patch-tt-tom17
v4.3.3.38
2024-01-20 22:49:20 +01:00
Thomas
27034e4bae v4.3.3.38
-Add: click on indicatorIcon navigate to Page
2024-01-20 22:41:00 +01:00
joBr99
99376c8fc2 . (add nextion2text) 2024-01-20 19:56:16 +00:00
joBr99
17e7ba1ef2 . 2024-01-20 20:53:25 +01:00
joBr99
38526890cc . (add nextion2text) 2024-01-19 22:12:34 +00:00
joBr99
ae9b33d5f0 . 2024-01-19 23:09:47 +01:00
joBr99
ff96812d26 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui (add nextion2text) 2024-01-19 15:23:21 +00:00
joBr99
0359a4b3dc Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2024-01-19 16:20:41 +01:00
joBr99
f75dd3a800 fixes #1146; implements #1144 2024-01-19 16:20:28 +01:00
Armilar
a992dc56c5 Merge pull request #1140 from ticaki/main
siehe Beschreibung
2024-01-19 12:52:22 +01:00
Armilar
576176e1cc Change in cardLChart
Change: yAxisTicks parameter is not required in cardLChart PageItem
2024-01-19 12:44:46 +01:00
Armilar
1d3914ce86 let out_msgs: NSPanel.Payload[] = []; 2024-01-19 12:37:30 +01:00
Armilar
b2f338cad8 Change cardLChart - no yAxisTicks required 2024-01-19 12:33:35 +01:00
Armilar
74a329ca29 Merge pull request #1142 from theknut/patch-1
feat: calculate yAxisTicks based on given values
2024-01-19 12:25:55 +01:00
theknut
29ae1b4034 fix: wrong yAxisTicks logged in debug log 2024-01-19 10:34:50 +01:00
theknut
ae5cab9830 refactor: ensure yAxisTicks are calculated every time if not provided 2024-01-19 10:27:01 +01:00
theknut
a986e588b5 feat: calculate yAxisTicks based on given values
If no yAxisTicks are provided for the signal, try to calculate it based on the given values.
2024-01-19 00:27:10 +01:00
ticaki
8c84c1050f fix pm/am 2024-01-19 00:03:15 +01:00
ticaki
c3ded4d817 buildNSPanelString 2024-01-18 22:15:04 +01:00
ticaki
db32de68e3 add ScreensaverEntityValue to on() 2024-01-17 23:14:54 +01:00
ticaki
f76f2ca393 tweak HandleScreensaverStatusIcons 2024-01-17 17:25:51 +01:00
ticaki
8449257628 fix number/string 2024-01-16 21:39:43 +01:00
ticaki
2bd3d0d290 reduce HandleScreensaverStatusIcons 2024-01-16 20:51:24 +01:00
ticaki
117798a3f5 icon fix 2024-01-16 17:34:09 +01:00
ticaki
01392bcbf8 fix unsubscribePowerSubscriptions 2024-01-16 16:32:38 +01:00
ticaki
5a3478d916 ups :D 2024-01-16 16:06:47 +01:00
ticaki
f3b545fd90 remove commented out code 2024-01-16 16:04:22 +01:00
ticaki
e7a6a05a1b Update Version and Changelog 2024-01-16 15:59:28 +01:00
ticaki
f65ff57a95 HandleScreensaverStatusIcons rewritten
fixed #1098
types: Number of PageItems defined
2024-01-16 15:55:51 +01:00
ticaki
9a8f53e890 Merge branch 'joBr99:main' into main 2024-01-16 13:13:33 +01:00
Armilar
e94c711f12 v4.3.3.37 - Update NSPanelTs.ts
Change: Allow data points to be flushed for popUpNotify. Activate screensaver with one click.
2024-01-15 11:00:22 +01:00
Armilar
4cc8455fff v4.3.3.36 - Update NsPanelTs.ts
- v4.3.3.34 Fix: Disabled Icon Status for Blinds while bug in updating data points in ioBroker (reason unknown)
- v4.3.3.35 Add: relay.1/relay.2 show the confirmed status
- v4.3.3.36 Fix: change ScreensaverTimeout and activeBrightness
- v4.3.3.36 Fix: schedule SendTime
- v4.3.3.36 Fix: Some Types and Minor Fixes
2024-01-14 20:46:19 +01:00
Armilar
943bb93398 v4.3.3.36 - Update NsPanelTs.ts
- v4.3.3.34 Fix: Disabled Icon Status while bug in updating data points in ioBroker (reason unknown)
- v4.3.3.35 Add: relay.1/relay.2 show the confirmed status
- v4.3.3.36 Fix: change ScreensaverTimeout and activeBrightness
- v4.3.3.36 Fix: schedule SendTime
- v4.3.3.36 Fix: Some Types and Minor Fixes
2024-01-14 20:43:14 +01:00
Armilar
0a1eb8c2e5 v4.3.3.26 - Update NsPanelTs.ts
- v4.3.3.34 Fix: Disabled Icon Status while bug in updating data points in ioBroker (reason unknown)
- v4.3.3.35 Add: relay.1/relay.2 show the confirmed status
- v4.3.3.36 Fix: change ScreensaverTimeout and activeBrightness
- v4.3.3.36 Fix: schedule SendTime
- v4.3.3.36 Fix: Function _schedule SummerTime/WinterTime

- v4.3.3.34 Fix: Disabled Icon Status while bug in updating data points in ioBroker (reason unknown)
- v4.3.3.35 Add: relay.1/relay.2 show the confirmed status
- v4.3.3.36 Fix: change ScreensaverTimeout and activeBrightness
- v4.3.3.36 Fix: schedule SendTime
- v4.3.3.36 Fix: Some Types and Minor Fixes
2024-01-14 20:41:38 +01:00
ticaki
b7fd06413d remove all <type> 2024-01-12 20:42:54 +01:00
ticaki
a2b805f4e1 SendTime - optimated 2024-01-12 20:38:47 +01:00
Armilar
bc69af7b6b v4.3.3.36 - Update NSPanelTs.ts
Add common write false/true
2024-01-11 12:51:34 +01:00
Armilar
c36202878f Update ioBroker_NSPanel_locales_service.json 2024-01-11 12:00:26 +01:00
Armilar
60f31595d4 v4.3.3.36 - Update NSPanelTs.ts 2024-01-10 22:39:48 +01:00
Armilar
7194d7f613 v4.3.3.36 - Update NSPanelTs.ts
Fix Alexa Elapsed
2024-01-10 22:31:29 +01:00
Armilar
af02a70600 Merge pull request #1138 from ticaki/main
Fixed: schedule with objects starts only 1 time
2024-01-10 22:27:01 +01:00
ticaki
77d8e0607d Merge branch 'joBr99:main' into main 2024-01-10 22:21:08 +01:00
ticaki
d6d12bc93c Fixed: schedule with objects starts only 1 time 2024-01-10 22:19:44 +01:00
Armilar
ead1def4bb Merge pull request #1134 from tt-tom17/main
v4.3.3.36 Update NSPanel.ts
2024-01-09 22:57:12 +01:00
Thomas
14e944885f v4.3.3.36 Update NSPanel.ts
- Fix: change ScreensaverTimeout and activeBrightness
- Fix: schedule SendTime
- Fix: Function _schedule SummerTime/WinterTime
2024-01-09 22:37:18 +01:00
Armilar
a075e0cba8 Merge pull request #1133 from ticaki/main
2 Fixes
2024-01-09 21:46:44 +01:00
ticaki
dd14e66f10 update summer/winter fix 2024-01-09 21:24:52 +01:00
ticaki
ce0892b986 Fixed: update every minute
Fixed:  Schedule: {hour: minutes:} works with summer/winter time
2024-01-09 21:09:56 +01:00
Armilar
71b84cc8d3 Merge pull request #1131 from ticaki/main
schedule, 1 extendObject, relay show status of tasmota
2024-01-09 18:03:02 +01:00
ticaki
fd3ce243a6 update on replace 2024-01-08 22:29:08 +01:00
ticaki
aa3e90ef98 Get dp from NSPanelSendTopic 2024-01-08 22:23:06 +01:00
ticaki
2621b22ffd fix schedule 2024-01-08 21:55:53 +01:00
ticaki
6460f5f4ff Merge branch 'joBr99:main' into main 2024-01-08 20:28:46 +01:00
ticaki
e45560c27f add relays show status 2024-01-08 20:22:41 +01:00
ticaki
0c6cd158dd change schedule (testing needed)
add 1 extendObjectfor bgColorIndicator
2024-01-08 18:52:33 +01:00
dependabot[bot]
f11de05eb3 Bump github/codeql-action from 2 to 3 (#1094)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-08 16:38:05 +01:00
Armilar
ef47efb9aa Merge pull request #1130 from joBr99/Armilar-patch-4
v4.3.3.34 - Bose Soundtouch final Proto
2024-01-08 11:33:06 +01:00
Armilar
54422eccaa v4.3.3.34 - Bose Soundtouch final Proto
Fix: Disabled Icon Status while bug by updating data points in ioBroker (reason unknown)
2024-01-08 11:29:19 +01:00
dependabot[bot]
02004f4b6d Bump home-assistant/builder from 2023.12.0 to 2024.01.0 (#1129)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2023.12.0 to 2024.01.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2023.12.0...2024.01.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>
2024-01-08 09:15:39 +01:00
Armilar
58278c5388 Merge pull request #1127 from joBr99/Armilar-patch-4
Fix Bose Soundtouch Proto
2024-01-07 23:44:53 +01:00
Armilar
ff7d2020f7 Update NSPanelTs.ts 2024-01-07 23:42:35 +01:00
Armilar
160420fe82 Merge pull request #1126 from kuckuckmann/patch-11
Update Alarm_Page_Erweitertes_Skript_mit_PopupNotifyPage.xml
2024-01-07 23:11:19 +01:00
kuckuckmann
56703ec458 Update Alarm_Page_Erweitertes_Skript_mit_PopupNotifyPage.xml
Add further Text to create String for ID
2024-01-07 18:28:37 +01:00
Armilar
9947664ae8 Merge pull request #1125 from kuckuckmann/patch-10
Update Alarm_Page_Erweitertes_Skript_mit_PopupNotifyPage.xml
2024-01-07 14:42:08 +01:00
kuckuckmann
4d3f54439e Update Alarm_Page_Erweitertes_Skript_mit_PopupNotifyPage.xml
Fix Number Value from decimal to integer value and convert to string for Datapoint PopupNotifyPage [string] at Block Value.
2024-01-07 14:41:07 +01:00
Armilar
6254f369f4 Merge pull request #1124 from ticaki/main
add namespace
2024-01-07 14:31:31 +01:00
ticaki
9b98cac4c8 More types without namespace for compatibility. 2024-01-07 13:49:36 +01:00
ticaki
71f3b75ab2 add namespace 2024-01-07 13:33:30 +01:00
Armilar
1a5cf8a2f7 Merge pull request #1122 from ticaki/main
1 Line warning for EHOSTUNREACH
2024-01-07 10:39:01 +01:00
ticaki
33712b198d Merge branch 'joBr99:main' into main 2024-01-07 00:06:33 +01:00
ticaki
1fd5784a54 1 Line warning for EHOSTUNREACH 2024-01-07 00:05:50 +01:00
Armilar
3904ca2343 Fix BoseSoundtouch Proto 2024-01-06 23:44:10 +01:00
Armilar
8ebd0f5193 Merge pull request #1121 from ticaki/main
some types and scriptname for menu
2024-01-06 20:46:45 +01:00
ticaki
8c9bca3f25 Merge branch 'joBr99:main' into main 2024-01-06 19:34:45 +01:00
ticaki
6908744669 some types and scriptname for menu 2024-01-06 19:32:26 +01:00
Armilar
d0e463de98 v4.3.3.33 - Hotfix
* Hotfix max Number of indicatorScreensaverEntity
* Beta Player Bose Soundtouch
2024-01-05 17:54:07 +01:00
Armilar
f4c7287dfd v4.3.3.33 - Update NSPanelTs.ts
Hotfix max Number of indicatorScreensaverEntity
2024-01-05 17:51:15 +01:00
Armilar
a33df14761 Merge pull request #1119 from ticaki/main
Fixed: HandleScreensaverUpdate: Cannot read properties of undefined
2024-01-05 17:38:08 +01:00
ticaki
3afc41269c Merge branch 'joBr99:main' into main 2024-01-05 17:22:49 +01:00
ticaki
11add2bfcc Fix screensaver bla of undefined 2024-01-05 17:22:21 +01:00
Armilar
dd84fa16e5 v4.3.3.33 - Update NSPanelTs.ts
Add Bose Soundtouch Functions
2024-01-05 14:30:34 +01:00
Armilar
e823c0f1ec Update NSPanelTs.ts
Add Bose Soundtouch Functions
2024-01-05 14:28:12 +01:00
Armilar
56c104a5bc v4.3.3.32 - Update NsPanelTs.ts
* Hotfix Spotify
* Add Types see commits
* v4.3.3.32 Add more details to types for: leftScreensaverEntity, indicatorScreensaverEntity, PageThermo, PageMedia 
* Remove not uses propertys from PageItem
* Add Body for BoseSoundtouch-Player
2024-01-05 12:55:36 +01:00
Armilar
bfb2c2eaab v4.3.3.32 - Update NSPanelTs.ts
* Hotfix Spotify
* Add Types see commits
* v4.3.3.32 Add more details to types for: leftScreensaverEntity, indicatorScreensaverEntity, PageThermo, PageMedia 
* Remove not uses propertys from PageItem
* Add Body for BoseSoundtouch-Player
2024-01-05 12:53:46 +01:00
Armilar
7d57205ac2 Merge pull request #1118 from ticaki/main
Add types, Remove not used Propertys
2024-01-05 12:48:06 +01:00
ticaki
4b81b1794d Reset NsPanelTS.ts from ./iobroker/ 2024-01-05 11:16:52 +01:00
ticaki
f5019b494f Reset NsPanelTS.ts from ./iobroker/ 2024-01-05 11:10:42 +01:00
ticaki
5102b8b955 Add Types for
ButtonActionType
EventMethod
SerialType
2024-01-05 11:06:53 +01:00
ticaki
089e553944 remove unused propertys
add types leftScreensaverEntityType
add types indicatorScreensaverEntityType
add types PageMediaItem
add types PageThermoItem
add types roles (common.role)
add types ButtonActionType
add alot undefined checks
add some type checks
merge 2 on() functions
2024-01-05 03:14:55 +01:00
ticaki
dfc07a6d76 Merge branch 'joBr99:main' into main 2024-01-04 22:36:50 +01:00
Armilar
b7687e006c v4.3.3.32 - Update NsPanelTs.ts
Hotfix Spotify Player
2024-01-04 22:23:56 +01:00
Armilar
10cf15bebd v4.3.3.32 - Update NSPanelTs.ts
Hotfix Spotify Player
2024-01-04 22:22:01 +01:00
Armilar
fc3d4adc72 Update NSPanelTs.ts 2024-01-04 22:15:47 +01:00
Armilar
bc330d5aaf Create NSPanelTs.ts 2024-01-04 22:14:03 +01:00
ticaki
c8a8feace2 some more types 2024-01-04 21:49:08 +01:00
Armilar
9afdaa4cbc v4.3.3.31 - Update NsPanelTs.ts
* Remove: autoCreateAlias from cardMedia
* Remove: adapterPlayerInstance from every card except cardMedia
* [dev]: optional with type - cardMedia has adapterPlayerInstance all other not 
* [dev]: add PlayerType some more work to do
* changed: adapterPlayerInstance instance 0-9 allowed. Always require a '.' at the end.
2024-01-03 21:11:51 +01:00
Armilar
18c7f2eb9c Merge pull request #1116 from ticaki/main
some more types
2024-01-03 21:01:29 +01:00
ticaki
de237171ef add cases 2024-01-03 20:53:15 +01:00
ticaki
a4b90944e8 typo 2024-01-03 20:17:53 +01:00
ticaki
cb44fcc8c9 add bose aliase 2024-01-03 20:16:13 +01:00
ticaki
03bae9e9bd add check for adapterPlayerInstanceType 2024-01-03 19:10:42 +01:00
ticaki
1ec463f6c7 type 2024-01-03 18:45:21 +01:00
ticaki
5420abcfaa adapterPlayerInstance more types 2024-01-03 18:38:45 +01:00
ticaki
e2530cdf62 typo in types 2024-01-03 17:38:53 +01:00
ticaki
b14687cb30 some more types 2024-01-03 17:04:07 +01:00
Armilar
360fb881f1 v4.3.3.30 - Update NsPanelTs.ts by Ticaki
- Überarbeitung der Types 
- Verbesserung der Variablenprüfung
- Bessere Fehleranzeige in der Konfiguration
2024-01-02 22:52:47 +01:00
Armilar
90d35a8574 Merge pull request #1113 from ticaki/main
v4.3.3.30 - Types work
2024-01-02 21:49:30 +01:00
ticaki
73a0ba468e ticaki for ever 2024-01-02 19:58:44 +01:00
ticaki
4e7119768b PageType in config 2024-01-02 18:32:39 +01:00
ticaki
8bfa6deb76 Add version 2024-01-02 17:52:31 +01:00
ticaki
e87febc54a cardUnlock partial usecolor 2024-01-02 17:46:29 +01:00
ticaki
43df10e823 Merge branch 'joBr99:main' into main 2024-01-02 17:37:09 +01:00
ticaki
e2acb70a1c some types 2024-01-02 17:36:30 +01:00
Armilar
f8774af675 Merge pull request #1112 from tt-tom17/Tasmota_Buzzer
v4.3.3.29 Update NSPanel.ts
2024-01-02 16:07:07 +01:00
Thomas
9ddb6c7834 Update NsPanelTs.ts 2024-01-02 15:53:38 +01:00
Thomas
330e5fecdf v4.3.3.29 Update NSPanel.ts
- Add Tasmota Buzzer for NotifyPage
- Fix ThermoPage -> UnSubScribsWatcher
2024-01-02 15:51:48 +01:00
ticaki
6cc41bf510 some types work 2024-01-02 14:05:03 +01:00
ticaki
956bd23a56 add types for ScreensaverEntityIconColor 2024-01-02 11:59:19 +01:00
ticaki
f1ce806ded fix cardMedia 2024-01-02 02:02:28 +01:00
ticaki
7748c22292 fix ActivePage 2024-01-01 23:30:31 +01:00
ticaki
131aa491b9 update config: Config 2024-01-01 22:09:19 +01:00
ticaki
dbc5ff7ccd fix typo 2024-01-01 21:55:22 +01:00
ticaki
5c3f366e53 fix types 2024-01-01 21:53:13 +01:00
Armilar
b1b679701e Merge pull request #1110 from joBr99/Armilar-patch-4
v4.3.3.28 - Update NsPanelTs.ts
2023-12-31 11:43:28 +01:00
Armilar
c489f07c0a v4.3.3.28 - Update NsPanelTs.ts
- Fix short ID's in v4.3.3.27
- Fix window Icons in CreateEntity 
- Add MQTT-Client Check
2023-12-31 11:33:40 +01:00
Armilar
14bc7dedec v4.3.3.28 - Update NsPanelTs.ts
- Fix short ID's in v4.3.3.27
- Fix window Icons in CreateEntity 
- Add MQTT-Client Check
2023-12-30 14:15:54 +01:00
Armilar
d4067c5ddb v4.3.3.28 - Update NsPanelTs.ts
- Fix short ID's in v4.3.3.27
- Fix window Icons in CreateEntity 
- Add MQTT-Client Check
2023-12-30 11:56:31 +01:00
Armilar
50209418d7 v4.3.3.28 - Update NsPanelTs.ts
- short ID's
- Fix windows open/close in createEntity
2023-12-30 11:23:09 +01:00
Armilar
8f3c74165d v4.3.3.26 - Downgrade NsPanelTs.ts
Bug with inSel-Popup in v4.3.3.27
2023-12-29 12:27:21 +01:00
Armilar
b7b8f389eb Merge pull request #1108 from tt-tom17/PageId
v4.3.3.27 Update NSPanel.ts
2023-12-28 14:51:14 +01:00
Thomas
9082ed20f3 v4.3.3.27 Update NSPanel.ts
- Fix Payload (pageItem.id -> placeId) by Function CreateEntity
- Fix Fallback PageItem.name by Function CreateEntity
2023-12-28 14:40:09 +01:00
Thomas
f807406a97 Update NsPanelTs.ts 2023-12-28 10:23:02 +01:00
Thomas
93aafe259b Update NsPanelTs.ts
Ablösung pageItem.id durch placeId
2023-12-28 09:46:05 +01:00
Armilar
b96fc6e6bd Merge pull request #1105 from tt-tom17/main
v4.3.3.26 - Update NSPanel.ts
2023-12-26 20:55:31 +01:00
joBr99
1996b29c60 . 2023-12-26 12:04:00 +01:00
Thomas
c8eb476ca8 Merge pull request #1 from tt-tom17/Log-JSON-Convert
v4.3.3.26 - Update NSPanel.ts
2023-12-26 00:52:26 +01:00
Thomas
aeaa995a0a v4.3.3.26 - Update NSPanel.ts
Fix Log output payload -> Json.stringify
2023-12-26 00:51:23 +01:00
Thomas
b35122868f Update NsPanelTs.ts 2023-12-26 00:45:48 +01:00
Thomas
1cb974494f Update NsPanelTs.ts
Fix Log output payload -> Json.stringify
2023-12-25 14:57:04 +01:00
Armilar
723ecde4cd 4.3.3.25 - Update NsPanelTs.ts
Remove Example
2023-12-22 16:30:02 +01:00
Armilar
f29e5c4978 Merge pull request #1100 from tt-tom17/main
v4.3.3.25 - Update NSPanel.ts
2023-12-22 13:57:08 +01:00
Thomas
46ffff7eea Update ioBroker_NSPanel_locales.json
Tag "qr" supplemented
2023-12-22 13:28:10 +01:00
Thomas
774c920591 v4.3.3.25 - Update NSPanel.ts
Add switch of cardQR by hidePassword: true
2023-12-22 13:25:56 +01:00
Thomas
f27eb07827 v4.3.3.25 - Update NSPanel.ts
Add switch of cardQR by hidePassword: true
2023-12-21 12:25:58 +01:00
Armilar
da8362d81d Merge pull request #1097 from joBr99/Armilar-patch-3
v4.3.3.24 - Update NsPanelTs.ts
2023-12-18 16:45:58 +01:00
Armilar
6e38d4f38d v4.3.3.24 - Update NsPanelTs.ts
* Log info commented out
2023-12-18 16:41:49 +01:00
Armilar
2344c9a9ed v4.3.3.24 - Update NsPanelTs.ts
* Hotfix Update Message
* Add Icon Colors to Entity Button
* Add Color-Const Cyan & Magenta
2023-12-18 16:37:46 +01:00
dependabot[bot]
5180f0f869 Bump home-assistant/builder from 2023.09.0 to 2023.12.0 (#1095)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2023.09.0 to 2023.12.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2023.09.0...2023.12.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>
2023-12-18 11:11:52 +01:00
Armilar
b4f2789834 Merge pull request #1093 from joBr99/Armilar-patch-3
v4.3.3.23 - Update NsPanelTs.ts
2023-12-17 17:09:39 +01:00
Armilar
78c6029200 v4.3.3.23 - Update NsPanelTs.ts
Optimization of the blind control (enable or disable Up/Stop/Down)
2023-12-17 17:07:53 +01:00
Armilar
dca112e42b v4.3.3.23 - Update NsPanelTs.ts
Optimization of the blind control (enable or disable Up/Stop/Down)
2023-12-17 17:04:29 +01:00
Armilar
5ad16dd735 Update Countdown_Timer.ts 2023-12-16 10:42:51 +01:00
joBr99
723be0735e . 2023-12-15 14:29:31 +01:00
joBr99
a5bfb9388f . 2023-12-15 14:16:59 +01:00
joBr99
9c6f24f984 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-12-15 14:09:52 +01:00
joBr99
59843ffea5 . 2023-12-15 14:09:25 +01:00
Armilar
4de9c4a12f 4.3.3.22 - Update ioBroker_NSPanel_locales_service.json
Update Notifications
2023-12-14 23:13:44 +01:00
Armilar
3eb05e5a84 4.3.3.22 - Update NsPanelTs.ts 2023-12-14 23:08:14 +01:00
Armilar
5d7a7ed1a4 Merge pull request #1090 from tt-tom17/main
v4.3.3.22 Update NSPanel.ts
2023-12-14 22:44:30 +01:00
Thomas
7124a22c38 v4.3.3.22 Update NSPanel.ts
- Add UpdateMessage => disable the update messages
- Fix name by static Navi Icon
- Fix colorscale by Role Info
2023-12-14 22:36:41 +01:00
Armilar
fa4d65a383 Merge pull request #1089 from tt-tom17/main
Update Alarm_clock.ts
2023-12-13 22:01:03 +01:00
Thomas
d26306f892 Update Alarm_clock.ts
fix dpAction to val: true
2023-12-13 21:55:33 +01:00
joBr99
9c0bb037fb Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-12-13 16:50:46 +01:00
joBr99
4b73e20b9b implement templtates for brightness 2023-12-13 16:50:28 +01:00
dependabot[bot]
3940a0c2e9 Bump actions/setup-python from 4 to 5 (#1087)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-13 14:22:56 +01:00
Armilar
8f57d4a642 v4.3.3.21 - Update NsPanelTs.ts
- Add createAutoALias to popupTimer only for Time
2023-12-09 11:19:38 +01:00
Armilar
3979fdf6a0 Create Countdown_Timer.ts 2023-12-08 22:58:24 +01:00
Armilar
4cd47126eb Create Alarm_clock.ts 2023-12-08 22:54:16 +01:00
Armilar
eb0dd79c80 v4.3.3.20 - Update ioBroker_NSPanel_locales.json 2023-12-08 22:41:11 +01:00
Armilar
3a39a8ca0e Merge pull request #1086 from tt-tom17/main
v4.3.3.20 - Update NSPanel.ts
2023-12-08 22:27:04 +01:00
Armilar
b5c4a2128b v4.3.3.20 - Update NsPanelTs.ts
Remove semicolon
2023-12-08 22:25:04 +01:00
Armilar
41f43fe5d0 v4.3.3.20 - Update NsPanelTs.ts
Remove Example
2023-12-08 22:22:44 +01:00
Armilar
f3f93b7136 v4.3.3.12 - Update NsPanelTs.ts 2023-12-08 22:20:08 +01:00
joBr99
2fb1855842 fixed binary sensors 2023-12-08 22:09:35 +01:00
Thomas
9a3627427f v4.3.3.20 - Update NSPanel.ts
add Role AlarmTime for Alarm Clock
2023-12-08 20:24:23 +01:00
Armilar
94fbf0a5f7 Merge pull request #1084 from joBr99/Armilar-patch-2
v4.3.3.19 - Update NsPanelTs.ts
2023-12-07 20:02:54 +01:00
Armilar
caddec1190 v4.3.3.19 - Update NsPanelTs.ts
- Fix Trigger activeDimmodeBrightness if Dimmode = -1
2023-12-07 20:02:12 +01:00
Armilar
03367ea27d v4.3.3.19 - Update NsPanelTs.ts
- Fix Trigger activeDimmodeBrightness if Dimmode = -1
2023-12-07 19:58:21 +01:00
Armilar
8e792ae8fc Merge pull request #1083 from joBr99/Armilar-patch-1
v4.3.3.18 - Update NsPanelTs.ts
2023-12-06 22:00:28 +01:00
Armilar
0a03f736ce v4.3.3.18 - Update NsPanelTs.ts
- Add (ELAPSED/DURATION) to v2Adapter alexa2
- Replace missing Type console.log --> log(message, 'serverity')
2023-12-06 21:49:15 +01:00
Armilar
8d7f6ffea5 v4.3.3.18 - Update NsPanelTs.ts
- Add (ELAPSED/DURATION) to v2Adapter alexa2
- Replace missing Type console.log --> log(message, 'serverity')
2023-12-06 15:20:28 +01:00
Armilar
93a6a7a88a v4.3.3.17 - Update NsPanelTs.ts
Add SEEK and CROSSFADE to Sonos cardMedia
2023-12-04 23:01:01 +01:00
Armilar
3913b17596 Update ioBroker_NSPanel_locales.json 2023-12-04 22:06:42 +01:00
Armilar
d08e8eb40c Update ioBroker_NSPanel_locales.json 2023-12-04 21:57:44 +01:00
Johannes
c2d281658e Update panel_cmd.py 2023-12-03 16:25:17 +01:00
joBr99
108582cbfb fix 2023-12-02 16:27:50 +01:00
joBr99
b17db265f4 implement temp unit 2023-12-02 16:26:28 +01:00
joBr99
206739dcc5 implement popup on card thermo 2023-12-02 16:20:31 +01:00
joBr99
adcb618a11 . 2023-12-02 14:23:43 +01:00
joBr99
dfba3b6e84 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-12-02 14:11:25 +01:00
joBr99
2726859135 implement input_select and select for light effects 2023-12-02 14:10:53 +01:00
Armilar
c0e20e6f25 Merge pull request #1077 from joBr99/Armilar-patch-1
v4.3.3.16 - Update NsPanelTs.ts
2023-12-02 13:02:38 +01:00
Armilar
148c2fc5a2 v4.3.3.16 - Update NsPanelTs.ts
- Beautification of the Sonos player Strings / Add Duration & Elapsed
- Fix Datapoints with Value null with -1
- Request replaced by Axios
2023-12-02 00:50:11 +01:00
Armilar
526f5e8946 v4.3.3.16 - Update NsPanelTs.ts
- Beautification of the Sonos player Strings / Add Duration & Elapsed
- Fix Datapoints with Value null with -1
- Request replaced by Axios
2023-12-02 00:36:00 +01:00
joBr99
8cd17b9d9a . 2023-12-02 00:03:22 +01:00
joBr99
70ff46ab4b . 2023-12-01 23:59:59 +01:00
joBr99
770348b07b . 2023-12-01 23:48:11 +01:00
joBr99
4795cc23ad fix state update bug with iid 2023-12-01 23:39:49 +01:00
joBr99
bae64dcee5 do not init mqtt in case ha api is used 2023-12-01 23:28:58 +01:00
joBr99
953a8d7110 . 2023-12-01 23:26:52 +01:00
joBr99
3b5eaac976 initial implementation of esphome api comm 2023-12-01 23:26:27 +01:00
joBr99
6e28237ec5 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-12-01 19:55:36 +01:00
joBr99
b8c47948c3 add queue for outgoing messages 2023-12-01 19:55:29 +01:00
Armilar
0e8f9ad220 Merge pull request #1075 from tt-tom17/main
v4.3.3.15 - Update NsPanelTs.ts
2023-12-01 13:11:13 +01:00
Thomas
79e43e2740 Update NsPanelTs.ts
fix activeDimmodeBrightness -> value -1
fix bExitPage -> value -1
2023-12-01 11:22:01 +01:00
joBr99
c32d2958a6 . 2023-11-30 17:48:31 +01:00
joBr99
3b7c934972 . 2023-11-30 17:43:53 +01:00
joBr99
40f29d09c1 . 2023-11-30 17:39:04 +01:00
joBr99
b601f2d860 . 2023-11-30 17:32:21 +01:00
joBr99
5953d7c8dd . 2023-11-30 17:25:32 +01:00
joBr99
e9859c0d32 . 2023-11-30 17:20:12 +01:00
joBr99
4ad997515f Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-30 17:15:03 +01:00
joBr99
ba637cf11e . 2023-11-30 17:14:41 +01:00
Armilar
a4abcd1734 Merge pull request #1074 from joBr99/Armilar-patch-1
v4.3.3.15 - Minor bug fixes
2023-11-30 00:06:06 +01:00
Armilar
86bbd36813 v4.3.3.15 - Regex Tracklist
- Regex Tracklist
2023-11-30 00:04:52 +01:00
Armilar
c9dffc431c v4.3.3.15 - Minor bug fixes
- Fix cardMedia Volume-Slider
- Add Init Release to Startup
2023-11-29 21:24:02 +01:00
joBr99
04ffd6257e . 2023-11-29 17:25:25 +01:00
Johannes
4102f56cee Update docs-release.yml 2023-11-28 23:46:03 +01:00
Johannes
6a62a6206a Update docs-release.yml 2023-11-28 23:44:30 +01:00
Johannes
0bddceccfa Update docs-release.yml 2023-11-28 23:44:16 +01:00
Johannes
09156fbc89 Update docs-release.yml 2023-11-28 23:43:18 +01:00
joBr99
76d0075c7d . 2023-11-28 23:41:28 +01:00
Johannes
6eab35ddd0 Update docs.yml 2023-11-28 21:43:07 +01:00
Johannes
495e63dacc Update docs.yml 2023-11-28 21:38:42 +01:00
Johannes
d965e7c7df Update docs.yml 2023-11-28 21:35:23 +01:00
Johannes
060f2bd8de Update mkdocs.yml 2023-11-28 21:35:19 +01:00
Johannes
17585f3c75 Update config.yaml 2023-11-28 16:42:36 +01:00
joBr99
79303ade8b Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-28 16:41:34 +01:00
joBr99
d7e417eaf7 implement cardunlock 2023-11-28 16:41:26 +01:00
Johannes
9622c65eb5 Update faq.md 2023-11-28 12:56:32 +01:00
Johannes
16ee1fb1c2 Update configure_mqtt.md 2023-11-28 12:51:19 +01:00
Johannes
fd7d4bca24 Update faq.md 2023-11-28 12:49:57 +01:00
joBr99
a4627e8589 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui (add nextion2text) 2023-11-27 23:29:02 +00:00
joBr99
51dd978c8c Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-28 00:25:40 +01:00
joBr99
1521a45dc1 hide btDetail 2023-11-28 00:25:31 +01:00
joBr99
03ac046feb hide elements on cardThermo (add nextion2text) 2023-11-27 23:21:45 +00:00
joBr99
ff9dc6c71e hide elements on cardThermo 2023-11-28 00:18:36 +01:00
Armilar
f8c6b80438 Update ioBroker_NSPanel_locales_beta.json 2023-11-27 22:10:16 +01:00
Armilar
56c8b07e2e Update ioBroker_NSPanel_locales.json 2023-11-27 22:09:54 +01:00
Armilar
cd628038b4 Update ioBroker_NSPanel_locales.json 2023-11-27 21:35:14 +01:00
Armilar
efeebe6a86 Merge pull request #1070 from joBr99/Armilar-patch-4
v4.3.3.14 - Update NsPanelTs.ts
2023-11-27 16:06:25 +01:00
Armilar
ce6717292a v4.3.3.14 - Update NsPanelTs.ts
- Refactoring Sonos-Player (with Playlist, Tracklist, Favorites, Eqalizer (if no Favorites))
- minor Fixes with other Media-Players
2023-11-27 15:58:08 +01:00
Armilar
c5b5002d27 v4.3.3.14 - Update NsPanelTs.ts
- Refactoring Sonos-Player (with Playlist, Tracklist, Favorites, Eqalizer (if no Favorites))
- minor Bug-Fixes
2023-11-27 15:52:52 +01:00
Armilar
4daa6dbb78 Update ioBroker_NSPanel_locales.json 2023-11-27 13:42:38 +01:00
joBr99
7ffe37117b . 2023-11-27 00:45:56 +01:00
joBr99
112fe16f29 . 2023-11-27 00:34:51 +01:00
joBr99
361a125118 merge 2023-11-27 00:29:20 +01:00
joBr99
6bd9b34f96 . 2023-11-27 00:28:48 +01:00
Johannes
4938b5794a Update config.yaml 2023-11-26 23:55:34 +01:00
joBr99
0e2e11655c Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-26 23:47:25 +01:00
joBr99
4c591ca8e1 . 2023-11-26 23:47:12 +01:00
Johannes
7b811ca0f8 Update config.yaml 2023-11-26 18:44:13 +01:00
Johannes
46e18d0954 Update panels.yaml.example 2023-11-26 18:35:21 +01:00
Johannes
9df7afbf01 Update config.yaml 2023-11-26 18:18:46 +01:00
joBr99
6d6ebb5ccc Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-26 18:17:49 +01:00
joBr99
41fe5ebd82 fix icon overwrite for internal entities 2023-11-26 18:17:37 +01:00
Armilar
1e2f4f4ca2 Merge pull request #1068 from joBr99/Armilar-patch-4
v4.3.3.13 - Update NsPanelTs.ts
2023-11-26 15:28:07 +01:00
Armilar
9a084c58bb v4.3.3.13 - Update NsPanelTs.ts
Version
2023-11-26 15:23:39 +01:00
Armilar
0d66a1f4f2 v4.3.3.13 - Update NsPanelTs.ts
- Separation of page creation and page updates in cardMedia
- Add alwaysOnDisplay to cardMedia - Leave display on if the alwaysOnDisplay parameter is "true"
- Fix Sonos Repeat/Shuffle
- Translations
2023-11-26 15:21:42 +01:00
joBr99
ad891115a9 . 2023-11-26 13:02:18 +01:00
joBr99
b38189d63e merge 2023-11-26 12:14:59 +01:00
joBr99
900e1aef46 add extended logging feats 2023-11-26 12:14:15 +01:00
Johannes
2a43a96f9a Update config.yaml 2023-11-25 22:03:12 +01:00
Johannes
11827bf68b Update ha_control.py 2023-11-25 22:01:35 +01:00
joBr99
bc3d58d406 bump version 2023-11-25 20:18:21 +01:00
joBr99
4aed6f672e Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-25 20:17:49 +01:00
joBr99
f40235bb2e fix 2023-11-25 20:17:43 +01:00
Johannes
67d323da42 bump version 2023-11-25 19:32:54 +01:00
joBr99
2801509215 bump version 2023-11-25 19:26:47 +01:00
joBr99
bb38dda0cb implement timer popup 2023-11-25 19:25:03 +01:00
joBr99
69830d82f7 implements #763 2023-11-25 19:05:02 +01:00
joBr99
b6c3444a55 implement cover and fan popup 2023-11-25 18:39:02 +01:00
joBr99
172f8d8ad4 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-25 18:17:56 +01:00
joBr99
5ab207504d implement homeassistant template caching 2023-11-25 18:17:21 +01:00
Armilar
ec0ffc3584 v4.3.3.12 - Update NsPanelTs.ts
- Separation of page creation and page updates in cardPower
- Add alwaysOnDisplay to cardPower - Leave display on if the alwaysOnDisplay parameter is "true"
- Some translations
2023-11-25 18:16:06 +01:00
Johannes
2303446958 Update config.yaml 2023-11-25 01:17:16 +01:00
joBr99
36f2c85ffe . 2023-11-25 01:12:50 +01:00
Johannes
655edc071f move each panel to it's own thread (#1066) 2023-11-25 01:04:09 +01:00
joBr99
2c3bd3a88e fix callbacks 2023-11-25 00:54:34 +01:00
joBr99
2944044a4a fix template icons without <I></I> 2023-11-24 23:51:52 +01:00
joBr99
e846ac4923 fix icon template rendering 2023-11-24 23:18:49 +01:00
joBr99
2f2bc406f2 fix icon rendering 2023-11-24 23:11:22 +01:00
joBr99
9a4a42f7ac send dimmode and timeout only on startup and update 2023-11-24 22:31:33 +01:00
joBr99
99ebaa0364 install python in devcontainer 2023-11-24 22:04:12 +01:00
Johannes
4b651db8dc Update config.yaml 2023-11-24 21:22:24 +01:00
Johannes
27f214c633 Update ha_cards.py 2023-11-24 21:22:07 +01:00
Johannes
c59107a137 Update config.yaml 2023-11-24 21:10:23 +01:00
Johannes
46a3c4b612 Update panel.py 2023-11-24 21:10:08 +01:00
joBr99
658348b4fd Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui (add nextion2text) 2023-11-24 20:03:19 +00:00
joBr99
896ffe1282 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-24 21:00:41 +01:00
joBr99
d82ffc3617 . 2023-11-24 21:00:35 +01:00
joBr99
8d83d727f3 . (add nextion2text) 2023-11-24 18:12:29 +00:00
joBr99
c6e49bbf80 . 2023-11-24 19:09:41 +01:00
joBr99
349db170a6 add event for page open (add nextion2text) 2023-11-24 17:58:17 +00:00
joBr99
3f2dac39a0 add event for page open 2023-11-24 18:55:41 +01:00
joBr99
439eb9309a . 2023-11-24 18:11:04 +01:00
joBr99
c49f214bec implement some local templates 2023-11-24 16:34:14 +01:00
Johannes
7fb347063c Update config.yaml 2023-11-24 16:27:05 +01:00
Johannes
da91c282b7 Update apparmor.txt 2023-11-24 16:26:50 +01:00
joBr99
ff5a9d2274 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-24 15:27:23 +01:00
joBr99
fce9265b5d do not force supervised settings in case env var is set and config is there 2023-11-24 15:27:10 +01:00
Armilar
7b39a5e2b1 v4.3.3.11 - Merge pull request #1064 from tt-tom17/main
v4.3.3.11 - Update NsPanelTS.ts
2023-11-24 10:24:43 +01:00
Armilar
7b513f901c v4.3.3.11 - Update NsPanelTs.ts 2023-11-24 10:22:35 +01:00
Thomas
6e6b70c89f v4.3.3.11 - Update NsPanelTS.ts
Add autoCreateALias to PageQR
2023-11-24 10:11:07 +01:00
joBr99
e0294195b9 . 2023-11-23 21:14:25 +01:00
joBr99
7ecad206dc . 2023-11-23 20:53:12 +01:00
joBr99
254aa2d043 . 2023-11-23 20:47:24 +01:00
joBr99
1b4c435fab some fixes 2023-11-23 20:40:16 +01:00
joBr99
55688549fa bump version 2023-11-23 19:28:00 +01:00
joBr99
fb69d05f06 implement status override 2023-11-23 19:27:19 +01:00
joBr99
cde1aeda0e Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-23 19:12:42 +01:00
joBr99
2816fa88e4 implement navigation up 2023-11-23 19:12:30 +01:00
joBr99
9cc31b6e5b error handling for invalid config file 2023-11-23 19:12:15 +01:00
Armilar
8f34fbf7a7 v4.3.3.10 - Merge pull request #1062 from tt-tom17/main
v4.3.3.10 - Code optimization in Config Area
2023-11-22 19:45:16 +01:00
Armilar
32df87d8bd v4.3.3.10 - Update NsPanelTs.ts
Code optimization in Config Area
2023-11-22 19:40:51 +01:00
Thomas
50302c1fd4 v4.3.3.10
Code optimization
2023-11-22 19:10:40 +01:00
Johannes
7f4bb973b1 Update config.yaml 2023-11-22 17:43:13 +01:00
joBr99
a542ba39aa implement status icons 2023-11-22 17:40:36 +01:00
joBr99
7f8b013381 implement cardalarm 2023-11-21 18:39:38 +01:00
joBr99
e455d50738 implement some more actions 2023-11-21 18:15:34 +01:00
joBr99
50533dd2a6 bump version 2023-11-21 17:22:15 +01:00
joBr99
f432e14f3e . 2023-11-21 17:21:33 +01:00
joBr99
7cc1c6ec77 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-20 21:38:33 +01:00
joBr99
3a8293d266 . 2023-11-20 21:38:18 +01:00
Johannes
b5bc19443a Update config.yaml 2023-11-20 21:08:39 +01:00
joBr99
d58bf81600 bump 2023-11-20 21:03:23 +01:00
joBr99
8398684cc6 move config file 2023-11-20 21:01:08 +01:00
joBr99
53deb3ab85 fix 2023-11-20 20:33:27 +01:00
joBr99
d86057ef76 fix 2023-11-20 20:18:39 +01:00
joBr99
66a3dab237 fix 2023-11-20 20:15:55 +01:00
joBr99
6e9bab3502 fix 2023-11-20 20:12:48 +01:00
joBr99
ebdb9bc2c1 implement sleepmodes 2023-11-20 20:03:13 +01:00
joBr99
694b231983 implement sleepmodes 2023-11-20 20:02:53 +01:00
joBr99
3e56cf7d8c Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-20 19:56:41 +01:00
Armilar
c1e8f7df04 v4.3.3.9 - Update NsPanelTs.ts
Add ScreensaverEntityOnColor, ...OffColor, ...OnText, ...OffText
2023-11-20 18:45:16 +01:00
joBr99
c0ebe4a397 implement sleeptimeout 2023-11-20 18:41:09 +01:00
joBr99
3dcb91b276 implement doubletaptounlock 2023-11-20 18:09:35 +01:00
joBr99
6a7606b3e0 . 2023-11-20 17:54:30 +01:00
joBr99
6af48209e6 implement name overwrite 2023-11-20 17:27:18 +01:00
joBr99
deefe6b33a . 2023-11-20 17:25:08 +01:00
joBr99
8a1b583794 implement icon overwrite 2023-11-20 17:18:22 +01:00
joBr99
b55d2b9c06 implement topic config 2023-11-20 16:57:25 +01:00
Armilar
891230144a Merge pull request #1056 from Armilar/main
These branches can be automatically merged.
2023-11-20 16:53:38 +01:00
Armilar
58ea667430 Merge branch 'joBr99:main' into main 2023-11-20 16:52:54 +01:00
Armilar
8ba8bb6488 v4.3.3.8 - Update NsPanelTs.ts
v4.3.3.8  Add Method dayjs (Multilingualism), some Minor Fixes
2023-11-20 16:51:57 +01:00
Armilar
4062b31b7d Merge pull request #4 from Armilar/Armilar-patch-4
v4.3.3.8 - Update NsPanelTs.ts
2023-11-20 16:47:55 +01:00
Armilar
59cc0fc887 v4.3.3.8 - Update NsPanelTs.ts
v4.3.3.8  Add Method dayjs (Multilingualism), some Minor Fixes
2023-11-20 16:46:56 +01:00
joBr99
521cbabee8 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-20 16:45:56 +01:00
joBr99
f897ae9b9d Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-20 16:45:25 +01:00
joBr99
55c554910b Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-20 16:43:00 +01:00
joBr99
c61f0c4906 . 2023-11-20 16:42:43 +01:00
Armilar
336a0b61a3 Merge pull request #1055 from Armilar/main
These branches can be automatically merged.
2023-11-20 14:25:00 +01:00
Armilar
ac7ca6d621 Merge pull request #3 from Armilar/Armilar-patch-3
v4.3.3.7 - Update NsPanelTs.ts
2023-11-20 14:21:12 +01:00
Armilar
6245a8e12f v4.3.3.7 - Update NsPanelTs.ts 2023-11-20 14:18:57 +01:00
Armilar
8897ec01ec Merge pull request #1054 from Armilar/main
Able to merge.
2023-11-20 14:12:14 +01:00
Armilar
1e79f6385b Merge branch 'joBr99:main' into main 2023-11-20 14:10:26 +01:00
Armilar
8d413cabb8 Update ioBroker_NSPanel_locales.json 2023-11-20 14:02:07 +01:00
Armilar
99d013c039 Update ioBroker_NSPanel_locales.json 2023-11-20 13:59:42 +01:00
Armilar
03f65daef3 Update ioBroker_NSPanel_locales.json 2023-11-20 13:51:35 +01:00
Armilar
f86768c95b Update ioBroker_NSPanel_locales.json 2023-11-20 13:42:12 +01:00
Armilar
1a7c9abb16 Update ioBroker_NSPanel_locales_beta.json 2023-11-20 13:41:51 +01:00
Armilar
c961cf9fde Update ioBroker_NSPanel_locales_beta.json 2023-11-20 13:40:25 +01:00
Armilar
acbaa43ee6 Update ioBroker_NSPanel_locales.json 2023-11-20 13:40:01 +01:00
Armilar
cbdc6f6f77 Merge pull request #1053 from tt-tom17/AlarmPage (add nextion2text) 2023-11-20 12:00:33 +00:00
Armilar
75b6a07995 Merge pull request #1053 from tt-tom17/AlarmPage
v4.3.3.6
2023-11-20 12:53:37 +01:00
Armilar
85e6eb6f73 4.3.3.6 - Update NsPanelTs.ts 2023-11-20 12:49:42 +01:00
Thomas
c2599ed4a3 v4.3.3.6
- Add autoCreateALias to PageAlarm
- Add actionStringArray to PageAlarm
2023-11-20 12:03:27 +01:00
Thomas
0fa7e8f562 v4.3.3.x
-auto create Alais for PageAlarm
-variable String for Button on PageAlarm
2023-11-20 11:51:00 +01:00
Thomas
b1d0ad8e16 v4.3.3.x
create Alias for PageAlarm
2023-11-20 10:43:08 +01:00
Stephan Leuschner
e0762f504e Minor cleanup relating to app restart code 2023-11-19 19:24:34 -05:00
Stephan Leuschner
453537ff68 restart app on config.yml change 2023-11-19 19:18:37 -05:00
joBr99
069087c48b . 2023-11-20 00:30:34 +01:00
joBr99
19eae41c33 . 2023-11-20 00:09:45 +01:00
joBr99
202260c1d6 . 2023-11-19 23:49:58 +01:00
joBr99
067b2bd75a implement screensaver 2023-11-19 23:28:54 +01:00
joBr99
2a6643eb68 . 2023-11-19 23:14:07 +01:00
joBr99
59390cc6ec Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-19 23:12:41 +01:00
joBr99
b20ba7a761 . 2023-11-19 23:12:35 +01:00
Stephan Leuschner
039043fe5b use timeZone from panel config 2023-11-19 17:00:55 -05:00
joBr99
116153e77b implement cardPower 2023-11-19 22:08:46 +01:00
joBr99
1552374ce7 implement cardqr 2023-11-19 22:00:04 +01:00
joBr99
21acb9115d implement some more actions 2023-11-19 21:03:42 +01:00
Stephan Leuschner
64ca6b9a41 fix permission of run.sh 2023-11-19 14:55:28 -05:00
Stephan Leuschner
c05f58fb5e attempt to fix addon on real instance, outside devcontainer 2023-11-19 14:50:04 -05:00
joBr99
6fe763c3ae Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-19 20:01:36 +01:00
joBr99
2777ce56ea . 2023-11-19 20:01:23 +01:00
Stephan Leuschner
1678dadcbe if home_assistant_token is in settings the use that for external HA server 2023-11-19 13:20:45 -05:00
joBr99
9ab66b741d Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-19 19:17:23 +01:00
joBr99
13ec7b606e . 2023-11-19 19:17:16 +01:00
Johannes
e96e5821d0 Update config.yaml 2023-11-19 19:07:08 +01:00
joBr99
6df63ea67e fix callback 2023-11-19 18:50:48 +01:00
joBr99
f0c0281ac2 . 2023-11-19 18:44:06 +01:00
joBr99
b9d9fc565e Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-19 18:43:31 +01:00
joBr99
6111c3530c upd 2023-11-19 18:43:22 +01:00
Stephan Leuschner
2ba9eae7e6 improve extraction of env variables 2023-11-19 12:37:21 -05:00
joBr99
431a93a7ff . 2023-11-19 18:29:12 +01:00
joBr99
5d3e836156 fix addon startup 2023-11-19 17:29:19 +01:00
joBr99
c1234e2c16 . 2023-11-19 16:13:25 +01:00
joBr99
aaf30e3bc2 add devcontainer 2023-11-19 16:07:20 +01:00
joBr99
aa5e935499 . 2023-11-19 15:55:59 +01:00
joBr99
77e9258bd7 . 2023-11-19 15:54:46 +01:00
Johannes
6ba94f49d4 Update config.yaml 2023-11-19 15:04:37 +01:00
joBr99
264fef1142 fix docker 2023-11-19 14:59:40 +01:00
joBr99
a8be9a46c8 merge 2023-11-19 14:21:55 +01:00
joBr99
e8366d438c Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-19 14:21:43 +01:00
joBr99
c915c72ef2 fix dockerfile 2023-11-19 14:21:04 +01:00
Johannes
656ced6a2f Update config.yaml 2023-11-19 13:49:37 +01:00
joBr99
cf0739b76a move req txt 2023-11-19 13:44:14 +01:00
joBr99
8a572f2961 add python to container 2023-11-19 13:42:15 +01:00
Johannes
d7ce6421a0 Update config.yaml 2023-11-19 13:02:25 +01:00
dependabot[bot]
60a59e6c63 Bump actions/setup-python from 2 to 4 (#1049)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-19 12:50:35 +01:00
joBr99
5acaa0736d Bump stefanzweifel/git-auto-commit-action from 4 to 5 (#1048) (add nextion2text) 2023-11-19 11:50:10 +00:00
dependabot[bot]
640e7b231f Bump stefanzweifel/git-auto-commit-action from 4 to 5 (#1048)
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4 to 5.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-19 12:46:57 +01:00
dependabot[bot]
6de40d53d7 Bump actions/checkout from 2 to 4 (#1050)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-19 12:46:33 +01:00
Johannes
bdd838cadd Update config.yaml 2023-11-19 12:43:50 +01:00
joBr99
8fa3a11eb5 add initial dev version of ha addon 2023-11-19 12:40:49 +01:00
Thomas
3a1b9071f8 Update NsPanelTs.ts 2023-11-18 22:42:38 +01:00
Thomas
ed655d6596 v4.3.3.x
Create alias for Alarm Page
2023-11-18 22:36:43 +01:00
Thomas
8dc2e6cbe1 v4.3.3.x
Create Alias for PageAlarm
2023-11-18 22:18:10 +01:00
Thomas
cc21d555c5 v4.3.3.x
Create Alias for PageAlarm
2023-11-18 21:20:27 +01:00
Johannes
367bdaf8d6 Update configure_mqtt.md 2023-11-17 23:25:29 +01:00
Johannes
53042f376f Update configure_mqtt.md 2023-11-17 22:45:19 +01:00
Armilar
5d003f94e2 Merge pull request #1034 from joBr99/Armilar-patch-3
- 15.11.2023 - v4.3.3.4  New Service Page -> ioBroker Info 
- 16.11.2023 - v4.3.3.5  Add Multilingualism to Service Menu (39 languages)
- 17.11.2023 - v4.3.3.5  Add Multilingualism to cardQR, popupFan, popupTimer (39 languages)
2023-11-17 13:17:35 +01:00
Armilar
7e218b7a5a v4.3.3.5 - Update NsPanelTs.ts
v4.3.3.5  Add Multilingualism to cardQR, popupFan, popupTimer (39 languages)

Add ReleaseNotes
2023-11-17 13:10:18 +01:00
Armilar
1e1670aa22 v4.3.3.5 - Update NsPanelTs.ts
Translate cardQR, popupTimer, popupFan
2023-11-17 13:05:11 +01:00
Armilar
ab2853084a Update ioBroker_NSPanel_locales_beta.json 2023-11-17 12:53:13 +01:00
Armilar
07235ab583 Update ioBroker_NSPanel_locales.json 2023-11-17 12:52:50 +01:00
Armilar
c5e87d5fdc Update ioBroker_NSPanel_locales_service.json 2023-11-16 23:41:57 +01:00
Armilar
7a9288cd63 Update ioBroker_NSPanel_locales_service.json 2023-11-16 22:42:07 +01:00
joBr99
3347a054e0 fixes #1033 (add nextion2text) 2023-11-16 17:40:35 +00:00
joBr99
59aa703416 fixes #1033 2023-11-16 18:37:46 +01:00
Johannes
e50f068c93 fixes #1035 2023-11-16 18:32:14 +01:00
Johannes
f566031911 fixes #1035 2023-11-16 18:29:12 +01:00
Armilar
5b133483e8 Update ioBroker_NSPanel_locales_service.json 2023-11-16 15:44:30 +01:00
Armilar
f31d5090b9 Update ioBroker_NSPanel_locales_service.json 2023-11-16 14:59:13 +01:00
Armilar
9021ca7a57 v4.3.3.5 - Update NsPanelTs.ts
Add Multilingualism to Service Menu (39 languages)
2023-11-16 13:56:24 +01:00
Armilar
d891d4e5a2 Update ioBroker_NSPanel_locales_service.json 2023-11-16 13:45:21 +01:00
Armilar
dbcdf54e06 Update ioBroker_NSPanel_locales_service.json 2023-11-16 13:04:42 +01:00
Armilar
aea2b890df Update ioBroker_NSPanel_locales_service.json 2023-11-16 11:41:26 +01:00
Armilar
d66734607b Update ioBroker_NSPanel_locales_service.json 2023-11-16 11:23:09 +01:00
Armilar
c82e1673db Update ioBroker_NSPanel_locales_service.json 2023-11-16 11:11:56 +01:00
Armilar
66909990f5 Update ioBroker_NSPanel_locales_service.json 2023-11-16 01:44:46 +01:00
Armilar
138d91594d Update ioBroker_NSPanel_locales_service.json 2023-11-16 01:37:04 +01:00
Armilar
fa0f8d2a0c Update ioBroker_NSPanel_locales_service.json 2023-11-16 00:05:22 +01:00
Armilar
8f40363b2e Update ioBroker_NSPanel_locales_service.json 2023-11-16 00:04:42 +01:00
Armilar
c183840714 Create ioBroker_NSPanel_locales_service.json 2023-11-15 23:50:27 +01:00
Johannes
d24b9d08d9 Update nspanel-lovelace-ui.py 2023-11-15 23:42:19 +01:00
Armilar
eb5d62f778 v4.3.3.4 New Service Page -> ioBroker Info
Correction IoBroker --> ioBroker
2023-11-15 21:00:53 +01:00
Johannes
8eee88c9c5 Update configure_mqtt.md 2023-11-15 20:37:03 +01:00
Johannes
626e55ca65 Update prepare_ha.md 2023-11-15 20:35:59 +01:00
Armilar
a01bba76cb Merge pull request #1030 from tt-tom17/main
v4.3.3.4
2023-11-15 20:20:28 +01:00
Thomas
df6e147071 v4.3.3.4
New Service Page -> IoBroker Info
2023-11-15 19:56:16 +01:00
Johannes
6d2f028dae Update configure_mqtt.md 2023-11-15 19:33:06 +01:00
Johannes
a6807ba45b Update configure_mqtt.md 2023-11-15 19:31:05 +01:00
Johannes
10314859db Update prepare_ha.md 2023-11-15 19:25:21 +01:00
Jean Wasilewski
9e61476b06 add optional timezone parameter on screensaver time (#1027)
* add optional timezone parameter on screensaver time

Signed-off-by: Jean 'henyxia' Wasilewski <henyxia@revs0.com>

* change config name

* Update config-overview.md

* Update config-overview.md

---------

Signed-off-by: Jean 'henyxia' Wasilewski <henyxia@revs0.com>
Co-authored-by: Johannes <29555657+joBr99@users.noreply.github.com>
2023-11-14 17:43:21 +01:00
Armilar
43ab8e7922 4.3.3.3 - update NsPanelTs.ts
Change Header to 4.3.3.3
2023-11-13 09:58:28 +01:00
Armilar
ece0abc0c3 Merge pull request #1025 from joBr99/Armilar-patch-2
4.3.3.3 - Update NsPanelTs.ts
2023-11-13 09:54:12 +01:00
Armilar
0da81c4e37 4.3.3.3 - Update NsPanelTs.ts
v4.3.3.3  if setOption = false, do not create automatically Alias (Functional/Servicemenu) and Datapoints
2023-11-13 09:29:12 +01:00
Armilar
c46ea4026d Merge pull request #1024 from Armilar/main
Merge with Main
2023-11-13 09:17:54 +01:00
Armilar
03615d7b36 Merge branch 'joBr99:main' into main 2023-11-13 09:15:54 +01:00
Armilar
e6a3162ac8 Merge pull request #1023 from joBr99/Armilar-patch-1
4.3.3.2 - Update NsPanelTs.ts
2023-11-13 09:13:03 +01:00
Armilar
0c838111c8 4..3.3.2 - Update NsPanelTs.ts
Change parent/home to "Unlock_Service"
2023-11-13 08:14:48 +01:00
Armilar
412b508a6e 4.3.3.2 - Update NsPanelTs.ts
Extensions in the service menu
2023-11-13 08:12:08 +01:00
Armilar
8640e3d24e 4.3.3.2 - Update NsPanelTs.ts
Add autoCreateALias to cardUnlock
2023-11-12 22:23:17 +01:00
Armilar
3eec1f9713 Merge pull request #2 from Armilar/Armilar-patch-2
4.3.3.2 - Update NsPanelTs.ts
2023-11-12 22:19:11 +01:00
Armilar
da0dc823b8 4.3.3.2 - Update NsPanelTs.ts
Add autoCreateALias to cardUnlock
2023-11-12 22:15:54 +01:00
Armilar
d5f031b660 Merge pull request #1022 from tt-tom17/main
v4.3.3.1
2023-11-12 15:36:29 +01:00
Thomas
303ca2f691 v4.3.3.1
Fix for Issues #1020 HandleHardwareButton buttonConfig.mode -> 'toggle' and 'set'
2023-11-12 12:34:42 +01:00
Thomas
8dd18fa45b v$.3.3.1
Fix for Issues #1020 HandleHardwareButton buttonConfig.mode -> 'toggle' and 'set'
2023-11-11 18:44:16 +01:00
Armilar
7b330dd3e9 v4.3.3 - Update NsPanelTs.ts
const tft_version: string = 'v4.3.3';
2023-11-08 22:42:52 +01:00
Armilar
02aca6c23b Merge pull request #1015 from tt-tom17/main
Upgrade v4.3.3
2023-11-08 17:55:24 +01:00
Thomas
c6ccc0fb9c Upgrade v4.3.3
- Fix Issues #1013 by laluz742 -> Parameter count mismatch: screensaver color
- Upgrade TFT 53 / 4.3.3
2023-11-08 17:45:45 +01:00
Armilar
65a85f7bd8 Merge pull request #1014 from tt-tom17/main
v4.3.2.2
2023-11-07 22:09:55 +01:00
Thomas
3f8c65d654 v4.3.2.2
Fix Selection of screensaver layout (alternative / advanced)
2023-11-07 22:01:48 +01:00
Johannes
55447d724c Update pages.py 2023-11-06 00:18:01 +01:00
Johannes
ce129cd59f fix color 2023-11-05 22:33:36 +01:00
Johannes
7cef38f50e dummy implementation cardChart 2023-11-05 21:45:28 +01:00
Attila Farago
d6e5753dd2 [Feature Request] Consider using HomeAssistant API instead of MQTT (#1007)
* ha api improvements - device specific app filtering

* refactored request_berry_driver_version messaging

* improved ha api usage

* improve ha event naming
2023-11-04 22:17:22 +01:00
joBr99
0f88932669 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-04 21:36:17 +01:00
joBr99
1f4317856c change timer 2023-11-04 21:36:09 +01:00
joBr99
90f4253067 add test menu button (add nextion2text) 2023-11-04 20:34:44 +00:00
joBr99
8b44a61797 add test menu button 2023-11-04 21:30:09 +01:00
joBr99
eb1e5d2d85 Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui (add nextion2text) 2023-11-04 20:26:17 +00:00
joBr99
25d169b14e Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui 2023-11-04 21:22:10 +01:00
joBr99
db14636c58 added test site for burn in 2023-11-04 21:21:54 +01:00
Armilar
33c6ddd250 v4.3.2.1 - Update NsPanelTs.ts
Add Release Nuber
2023-10-30 21:58:32 +01:00
Armilar
1bc042d126 v4.3.2.1 - Merge pull request #1004 from Armilar/Armilar-patch-1
v4.3.2.1 - Update NsPanelTs.ts
2023-10-30 20:02:18 +01:00
Armilar
31c2372520 v4.3.2.1 - Update
- Upgrade TFT 53 / 4.3.2
- Fix formatDate/Date.parse with moment.js
2023-10-30 13:03:29 +01:00
Armilar
f7f0349f39 Merge pull request #1 from Armilar/Armilar-patch-2
v4.3.2.1 - Update
2023-10-30 12:59:12 +01:00
Armilar
34181234e1 v4.3.2.1 - Update
- Upgrade TFT 53 / 4.3.2
- Fix formatDate/Date.parse with moment.js (Bugs in JS-Methodes)
2023-10-30 12:55:56 +01:00
Armilar
cded34fbd4 v4.3.2.1 - Update NsPanelTs.ts
- Upgrade TFT 53 / 4.3.2
- Fix formatDate/Date.parse with moment.js
2023-10-30 12:41:28 +01:00
Johannes
e2223ac7a6 fixed for HA 2023.11.0b1 2023-10-28 11:38:43 +02:00
266 changed files with 244115 additions and 10658 deletions

26
.devcontainer.json Normal file
View File

@@ -0,0 +1,26 @@
{
"name": "NSPanel Lovelace UI Home Assistant add-on repository",
"image": "ghcr.io/home-assistant/devcontainer:addons",
"appPort": ["7123:8123", "7357:4357"],
"postCreateCommand": "apt install -y python3 python3-pip && pip install -r nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/requirements.txt --break-system-packages",
"postStartCommand": "bash devcontainer_bootstrap",
"runArgs": ["-e", "GIT_EDITOR=code --wait", "--privileged"],
"remoteUser":"root",
"containerEnv": {
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
},
"extensions": ["timonwong.shellcheck", "esbenp.prettier-vscode"],
"mounts": ["type=volume,target=/var/lib/docker"],
"settings": {
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/usr/bin/zsh"
}
},
"terminal.integrated.defaultProfile.linux": "zsh",
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true
}
}

View File

@@ -58,5 +58,5 @@ _If applicable, add screenshots/pictures to help explain your problem._
_Add any other context about the problem here._
_Please note here in case you are using ioBroker_
### PANEL / FIRMWARE VERION
### PANEL / FIRMWARE VERSION
_Please add the Panel/Firmware Version you are using (EU, US-L or US-P)_

View File

@@ -24,5 +24,5 @@ _A clear and concise description of what the feature should do._
### ADDITIONAL CONTEXT
_Add any other context about the problem here._
### PANEL / FIRMWARE VERION
### PANEL / FIRMWARE VERSION
_Please add the Panel/Firmware Version you are using (EU, US-L or US-P)_

7
.github/dependabot.yaml vendored Normal file
View File

@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: weekly
time: "06:00"

111
.github/workflows/builder.yaml vendored Normal file
View File

@@ -0,0 +1,111 @@
name: Builder
env:
BUILD_ARGS: "--test"
MONITORED_FILES: "build.yaml config.yaml Dockerfile rootfs"
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
init:
runs-on: ubuntu-latest
name: Initialize builds
outputs:
changed_addons: ${{ steps.changed_addons.outputs.addons }}
changed: ${{ steps.changed_addons.outputs.changed }}
steps:
- name: Check out the repository
uses: actions/checkout@v4
- name: Get changed files
id: changed_files
uses: jitterbit/get-changed-files@v1
- name: Find add-on directories
id: addons
uses: home-assistant/actions/helpers/find-addons@master
- name: Get changed add-ons
id: changed_addons
run: |
declare -a changed_addons
for addon in ${{ steps.addons.outputs.addons }}; do
if [[ "${{ steps.changed_files.outputs.all }}" =~ $addon ]]; then
for file in ${{ env.MONITORED_FILES }}; do
if [[ "${{ steps.changed_files.outputs.all }}" =~ $addon/$file ]]; then
if [[ ! "${changed_addons[@]}" =~ $addon ]]; then
changed_addons+=("\"${addon}\",");
fi
fi
done
fi
done
changed=$(echo ${changed_addons[@]} | rev | cut -c 2- | rev)
if [[ -n ${changed} ]]; then
echo "Changed add-ons: $changed";
echo "changed=true" >> $GITHUB_OUTPUT;
echo "addons=[$changed]" >> $GITHUB_OUTPUT;
else
echo "No add-on had any monitored files changed (${{ env.MONITORED_FILES }})";
fi
build:
needs: init
runs-on: ubuntu-latest
if: needs.init.outputs.changed == 'true'
name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on
strategy:
matrix:
addon: ${{ fromJson(needs.init.outputs.changed_addons) }}
arch: ["aarch64", "amd64", "armhf", "armv7", "i386"]
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Get information
id: info
uses: home-assistant/actions/helpers/info@master
with:
path: "./${{ matrix.addon }}"
- name: Check if add-on should be built
id: check
run: |
if [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then
echo "build_arch=true" >> $GITHUB_OUTPUT;
echo "image=$(echo ${{ steps.info.outputs.image }} | cut -d'/' -f3)" >> $GITHUB_OUTPUT;
if [[ -z "${{ github.head_ref }}" ]] && [[ "${{ github.event_name }}" == "push" ]]; then
echo "BUILD_ARGS=" >> $GITHUB_ENV;
fi
else
echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build";
echo "build_arch=false" >> $GITHUB_OUTPUT;
fi
- name: Login to GitHub Container Registry
if: env.BUILD_ARGS != '--test'
uses: docker/login-action@v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build ${{ matrix.addon }} add-on
if: steps.check.outputs.build_arch == 'true'
uses: home-assistant/builder@2025.03.0
with:
args: |
${{ env.BUILD_ARGS }} \
--${{ matrix.arch }} \
--target /data/${{ matrix.addon }} \
--image "${{ steps.check.outputs.image }}" \
--docker-hub "ghcr.io/${{ github.repository_owner }}" \
--addon

View File

@@ -43,11 +43,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -58,7 +58,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -72,4 +72,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3

View File

@@ -4,7 +4,7 @@ on:
workflow_dispatch:
push:
branches:
- main
- dev
paths:
- docs/*
- .github/workflows/docs.yml
@@ -15,10 +15,14 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: pip install mkdocs-material mkdocs-video markdown-include
- run: pip install mkdocs-material mkdocs-video markdown-include mike
- run: cp HMI/README.md docs/hmi-serial-protocol.md
- run: mkdocs gh-deploy --force
- run: git config --global user.name Docs deploy
- run: git config --global user.email docs@dummy.bot.com
- run: mike deploy --push --update-aliases dev

29
.github/workflows/docs-release.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: docs-ci
on:
workflow_dispatch:
push:
branches:
- main
paths:
- docs/*
- .github/workflows/docs-release.yml
- mkdocs.yml
- HMI/README.md
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: pip install mkdocs-material mkdocs-video markdown-include mike
- run: cp HMI/README.md docs/hmi-serial-protocol.md
- run: git config --global user.name Docs deploy
- run: git config --global user.email docs@dummy.bot.com
- run: mike set-default stable
- run: mike deploy --push --update-aliases stable

View File

@@ -11,7 +11,7 @@ jobs:
name: HACS Action
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
- uses: "actions/checkout@v4"
- name: HACS Action
uses: "hacs/action@main"
with:

View File

@@ -18,7 +18,7 @@ jobs:
gen-ioBroker-localization:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
@@ -28,7 +28,7 @@ jobs:
python HMI/code_gen/localization/iobroker.py
mv ioBroker_NSPanel_locales.json ioBroker/ioBroker_NSPanel_locales.json
- uses: stefanzweifel/git-auto-commit-action@v4
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Update iobroker localization file
#file_pattern: "**.txt"

41
.github/workflows/lint.yaml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Lint
on:
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: "0 0 * * *"
jobs:
find:
name: Find add-ons
runs-on: ubuntu-latest
outputs:
addons: ${{ steps.addons.outputs.addons_list }}
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v4
- name: 🔍 Find add-on directories
id: addons
uses: home-assistant/actions/helpers/find-addons@master
lint:
name: Lint add-on ${{ matrix.path }}
runs-on: ubuntu-latest
needs: find
strategy:
matrix:
path: ${{ fromJson(needs.find.outputs.addons) }}
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v4
- name: 🚀 Run Home Assistant Add-on Lint
uses: frenck/action-addon-linter@v2.18
with:
path: "./${{ matrix.path }}"

View File

@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
@@ -80,7 +80,7 @@ jobs:
find -name "**.txt"
rm Nextion2Text.py* ignore-id.py out.txt
- uses: stefanzweifel/git-auto-commit-action@v4
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: ${{ steps.last-commit-message.outputs.msg }} (add nextion2text)
#file_pattern: "**.txt"

3
.gitignore vendored
View File

@@ -2,5 +2,8 @@ __pycache__/
# don't add nextion2text
HMI/Nextion2Text.py
# dont add panels.yaml
panels.yaml
# don't add Webstorm project stuff
.idea

17
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,17 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "main.py",
"cwd": "/workspaces/nspanel-lovelace-ui/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager",
"console": "integratedTerminal",
"justMyCode": true
}
]
}

19
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,19 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Start Home Assistant",
"type": "shell",
"command": "supervisor_run",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
}
]
}

View File

@@ -14,6 +14,75 @@
│ + //lcd_dev fffb 0002 0000 0020
│ printh 00 00 00 ff ff ff 88 ff ff ff//Output power on information to serial port
│ page pageStartup
│ --- HMI/n2t-out/cardEntities.txt
├── +++ HMI/US/landscape/n2t-out/cardEntities.txt
│ @@ -20,15 +20,14 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
│ prints sys0,2
│ prints tSend.txt,0
│ prints crcval,2
│ dim=dimValueNormal
│ - dim=dimValueNormal
│ //wup=cardEntities
│ //remove background & activate reparse mode
│ vis p0,0
│ recmod=1
│ baud=115200
│ //debug stuff
│ vis tTmp,0
│ --- HMI/n2t-out/cardThermo.txt
├── +++ HMI/US/landscape/n2t-out/cardThermo.txt
│ @@ -28,14 +28,19 @@
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis xTempMin1,0
│ vis xTempMax1,0
│ vis xTempStep1,0
│ + vis xTempDest,0
│ + vis btUp,0
│ + vis btDown,0
│ + vis tCF,0
│ + vis btDetail,0
│ //tEntity.txt=tHeading.txt
│ // disable all buttons
│ vis bt0,0
│ vis bt1,0
│ vis bt2,0
│ vis bt3,0
│ vis bt4,0
│ @@ -1014,14 +1019,28 @@
│ vis xTempDest1,1
│ vis btDown1,1
│ vis tCF1,1
│ vis bUp2,1
│ vis xTempDest2,1
│ vis bDown2,1
│ vis tCF2,1
│ + }else
│ + {
│ + vis btUp,1
│ + vis xTempDest,1
│ + vis btDown,1
│ + vis tCF,1
│ + vis btUp1,0
│ + vis xTempDest1,0
│ + vis btDown1,0
│ + vis tCF1,0
│ + vis bUp2,0
│ + vis xTempDest2,0
│ + vis bDown2,0
│ + vis tCF2,0
│ }
│ //Show btDetail
│ spstr strCommand.txt,tTmp.txt,"~",58
│ if(tTmp.txt!="1")
│ {
│ vis btDetail,1
│ }else
│ --- HMI/n2t-out/pageStartup.txt
├── +++ HMI/US/landscape/n2t-out/pageStartup.txt
│ @@ -164,15 +164,15 @@
@@ -33,9 +102,68 @@
│ crcputs sys0,2
│ crcputs tSend.txt,0
│ //send cmd
│ --- HMI/n2t-out/popupLight.txt
├── +++ HMI/US/landscape/n2t-out/popupLight.txt
│ @@ -453,19 +453,14 @@
│ ucopy strCommand.txt,4,payloadLength-5,0
│ // write instruction to tInstuction (debug output, but used as variable here, ui elements will be disabled by default)
│ spstr strCommand.txt,tInstruction.txt,"~",0
│ spstr strCommand.txt,tTmp.txt,"~",1
│ if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
│ {
│ // change icon
│ - spstr strCommand.txt,tTmp.txt,"~",2
│ - if(tTmp.txt!="")
│ - {
│ - tIcon1.txt=tTmp.txt
│ - }
│ //spstr strCommand.txt,tIcon1.txt,"~",2
│ vis tIcon1,1
│ // change icon color
│ spstr strCommand.txt,tTmp.txt,"~",3
│ covx tTmp.txt,sys0,0,0
│ tIcon1.pco=sys0
│ // get Button State
│ --- HMI/n2t-out/popupNotify.txt
├── +++ HMI/US/landscape/n2t-out/popupNotify.txt
│ @@ -439,18 +439,14 @@
│ {
│ page cardPower
│ }
│ if(tId.txt=="cardChart")
│ {
│ page cardChart
│ }
│ - if(tId.txt=="cardLChart")
│ - {
│ - page cardLChart
│ - }
│ }
│ // end of user code
│ udelete payloadLength-1
│ bufferPos=0
│ }
│ }
│ }
│ --- HMI/n2t-out/screensaver.txt
├── +++ HMI/US/landscape/n2t-out/screensaver.txt
│ @@ -28,17 +28,14 @@
│ @@ -19,15 +19,14 @@
│ crcputs sys0,2
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
│ prints sys0,2
│ prints tSend.txt,0
│ prints crcval,2
│ - dim=dimValueNormal
│ recmod=1
│ baud=115200
│ vis tInstruction,0
│ vis tTmp,0
│ vis p0,0
│ vis tNotifyHead,0
│ vis tNotifyText,0
│ @@ -41,17 +40,14 @@
│ }
│ tDate.txt=pageIcons.vaDate.txt
│ dim=dimValue
@@ -53,7 +181,7 @@
│ Max. Text Size: 600
│ Variable (string) strTmp
│ @@ -102,34 +99,14 @@
│ @@ -115,34 +111,14 @@
│ Value: 0
│ Variable (int32) ycR
@@ -88,9 +216,43 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text : |
│ @@ -485,17 +461,14 @@
│ //get set time to global variable
│ spstr strCommand.txt,pageIcons.vaTime.txt,"~",1
│ spstr pageIcons.vaTime.txt,tTime.txt,"?",0
│ spstr pageIcons.vaTime.txt,tAMPM.txt,"?",1
│ if(tAMPM.txt=="")
│ {
│ vis tAMPM,0
│ - }else
│ - {
│ - vis tAMPM,1
│ }
│ spstr strCommand.txt,tTimeAdd.txt,"~",2
│ ref tIcon1
│ ref tIcon2
│ }
│ if(tInstruction.txt=="date")
│ {
│ --- HMI/n2t-out/screensaver2.txt
├── +++ HMI/US/landscape/n2t-out/screensaver2.txt
│ @@ -28,17 +28,14 @@
│ @@ -19,15 +19,14 @@
│ crcputs sys0,2
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
│ prints sys0,2
│ prints tSend.txt,0
│ prints crcval,2
│ - dim=dimValueNormal
│ recmod=1
│ baud=115200
│ vis tInstruction,0
│ vis tTmp,0
│ vis p0,0
│ vis tNotifyHead,0
│ vis tNotifyText,0
│ @@ -41,52 +40,19 @@
│ }
│ tDate.txt=pageIcons.vaDate.txt
│ dim=dimValue
@@ -101,14 +263,80 @@
│ - Postinitialize Event
│ - click m0,1
│ -
│ -Variable (string) entn1
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn2
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn3
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn4
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn5
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ Variable (string) strCommand
│ Attributes
│ Scope : local
│ Text :
Max. Text Size: 1979
- Max. Text Size: 1935
│ + Max. Text Size: 1979
│ Variable (string) strTmp
@@ -363,34 +360,14 @@
Attributes
│ Scope : local
│ Text :
│ Max. Text Size: 2
│ @@ -96,27 +62,27 @@
│ Text :
│ Max. Text Size: 25
│ Variable (string) tInstruction
│ Attributes
│ Scope : local
│ Text :
│ - Max. Text Size: 15
│ + Max. Text Size: 50
│ Variable (string) tSend
│ Attributes
│ Scope : local
│ Text :
│ Max. Text Size: 50
│ Variable (string) tTmp
│ Attributes
│ Scope : local
│ Text :
│ - Max. Text Size: 30
│ + Max. Text Size: 50
│ Variable (int32) vaTap
│ Attributes
│ Scope: local
│ Value: 0
│ Variable (int32) xc1
│ @@ -370,165 +336,50 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -116,6 +344,137 @@
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn1.txt+",button"
│ - if(entn1.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f2Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn2.txt+",button"
│ - if(entn2.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f3Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn3.txt+",button"
│ - if(entn3.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f4Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn4.txt+",button"
│ - if(entn4.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f5Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn5.txt+",button"
│ - if(entn5.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ -Text m0
│ - Attributes
│ - Scope : local
@@ -143,7 +502,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text : PM
│ @@ -572,15 +549,14 @@
│ @@ -710,15 +561,14 @@
│ if(tTmp.txt!="")
│ {
│ covx tTmp.txt,defaultFontColor,0,0
@@ -159,3 +518,48 @@
│ if(tAMPM.txt=="")
│ {
│ vis tAMPM,0
│ @@ -839,44 +689,34 @@
│ //e6Val
│ spstr strCommand.txt,e6Val.txt,"~",60
│ //f1Icon
│ spstr strCommand.txt,f1Icon.txt,"~",63
│ //f1Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",64
│ covx tTmp.txt,f1Icon.pco,0,0
│ - //f1Icon intNameEntity
│ - spstr strCommand.txt,entn1.txt,"~",62
│ //f2Icon
│ spstr strCommand.txt,f2Icon.txt,"~",69
│ //f2Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",70
│ covx tTmp.txt,f2Icon.pco,0,0
│ - //f2Icon intNameEntity
│ - spstr strCommand.txt,entn2.txt,"~",68
│ //f3Icon
│ spstr strCommand.txt,f3Icon.txt,"~",75
│ //f3Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",76
│ covx tTmp.txt,f3Icon.pco,0,0
│ - //f3Icon intNameEntity
│ - spstr strCommand.txt,entn3.txt,"~",74
│ //f4Icon
│ spstr strCommand.txt,f4Icon.txt,"~",81
│ //f4Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",82
│ covx tTmp.txt,f4Icon.pco,0,0
│ - //f4Icon intNameEntity
│ - spstr strCommand.txt,entn4.txt,"~",80
│ //f5Icon
│ spstr strCommand.txt,f5Icon.txt,"~",87
│ //f5Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",88
│ covx tTmp.txt,f5Icon.pco,0,0
│ - //f5Icon intNameEntity
│ - spstr strCommand.txt,entn5.txt,"~",86
│ }
│ if(tInstruction.txt=="notify")
│ {
│ spstr strCommand.txt,tNotifyHead.txt,"~",1
│ spstr strCommand.txt,tNotifyText.txt,"~",2
│ if(tNotifyHead.txt!=""||tNotifyText.txt!="")
│ {

View File

@@ -19,6 +19,18 @@ Page cardAlarm
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardEntities
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//wup=cardEntities
//remove background & activate reparse mode

View File

@@ -19,6 +19,18 @@ Page cardGrid
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -19,6 +19,18 @@ Page cardGrid2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -19,6 +19,18 @@ Page cardLChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardMedia
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardPower
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardQR
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardThermo
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0
@@ -28,6 +40,11 @@ Page cardThermo
vis xTempMin1,0
vis xTempMax1,0
vis xTempStep1,0
vis xTempDest,0
vis btUp,0
vis btDown,0
vis tCF,0
vis btDetail,0
//tEntity.txt=tHeading.txt
// disable all buttons
vis bt0,0
@@ -1730,6 +1747,20 @@ Timer tmSerial
vis xTempDest2,1
vis bDown2,1
vis tCF2,1
}else
{
vis btUp,1
vis xTempDest,1
vis btDown,1
vis tCF,1
vis btUp1,0
vis xTempDest1,0
vis btDown1,0
vis tCF1,0
vis bUp2,0
vis xTempDest2,0
vis bDown2,0
vis tCF2,0
}
//Show btDetail
spstr strCommand.txt,tTmp.txt,"~",58

View File

@@ -18,10 +18,10 @@ popupTimer
42 Component(s)
516 Line(s) of event code
257 Unique line(s) of event code
cardChart
cardLChart
33 Component(s)
437 Line(s) of event code
296 Unique line(s) of event code
412 Line(s) of event code
267 Unique line(s) of event code
popupInSel
34 Component(s)
621 Line(s) of event code
@@ -42,61 +42,61 @@ popupFan
27 Component(s)
355 Line(s) of event code
206 Unique line(s) of event code
cardChart
33 Component(s)
447 Line(s) of event code
297 Unique line(s) of event code
cardQR
34 Component(s)
410 Line(s) of event code
238 Unique line(s) of event code
cardAlarm
43 Component(s)
500 Line(s) of event code
273 Unique line(s) of event code
420 Line(s) of event code
239 Unique line(s) of event code
popupLightNew
23 Component(s)
412 Line(s) of event code
209 Unique line(s) of event code
screensaver
46 Component(s)
435 Line(s) of event code
309 Unique line(s) of event code
cardPower
54 Component(s)
531 Line(s) of event code
349 Unique line(s) of event code
cardLChart
33 Component(s)
402 Line(s) of event code
266 Unique line(s) of event code
screensaver2
58 Component(s)
362 Line(s) of event code
248 Unique line(s) of event code
cardThermo
57 Component(s)
540 Line(s) of event code
319 Unique line(s) of event code
cardGrid
44 Component(s)
583 Line(s) of event code
332 Unique line(s) of event code
cardGrid2
52 Component(s)
693 Line(s) of event code
384 Unique line(s) of event code
569 Line(s) of event code
337 Unique line(s) of event code
cardAlarm
43 Component(s)
510 Line(s) of event code
274 Unique line(s) of event code
cardMedia
59 Component(s)
713 Line(s) of event code
357 Unique line(s) of event code
screensaver
46 Component(s)
445 Line(s) of event code
310 Unique line(s) of event code
popupLight
28 Component(s)
412 Line(s) of event code
227 Unique line(s) of event code
cardMedia
59 Component(s)
cardGrid
44 Component(s)
593 Line(s) of event code
333 Unique line(s) of event code
cardPower
54 Component(s)
541 Line(s) of event code
350 Unique line(s) of event code
cardGrid2
52 Component(s)
703 Line(s) of event code
356 Unique line(s) of event code
385 Unique line(s) of event code
cardEntities
67 Component(s)
1194 Line(s) of event code
535 Unique line(s) of event code
screensaver2
58 Component(s)
352 Line(s) of event code
247 Unique line(s) of event code
1204 Line(s) of event code
536 Unique line(s) of event code
Total
23 Page(s)
875 Component(s)
10568 Line(s) of event code
2450 Unique line(s) of event code
10707 Line(s) of event code
2466 Unique line(s) of event code

View File

@@ -19,6 +19,18 @@ Page screensaver
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
recmod=1
baud=115200
vis tInstruction,0

View File

@@ -19,6 +19,18 @@ Page screensaver2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
recmod=1
baud=115200
vis tInstruction,0

View File

@@ -11,6 +11,18 @@ Page cardAlarm
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardEntities
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//wup=cardEntities
//remove background & activate reparse mode

View File

@@ -11,6 +11,18 @@ Page cardGrid
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -11,6 +11,18 @@ Page cardGrid2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -11,6 +11,18 @@ Page cardLChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardMedia
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardPower
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardQR
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardThermo
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0
@@ -20,6 +32,11 @@ Page cardThermo
vis xTempMin1,0
vis xTempMax1,0
vis xTempStep1,0
vis xTempDest,0
vis btUp,0
vis btDown,0
vis tCF,0
vis btDetail,0
//tEntity.txt=tHeading.txt
// disable all buttons
vis bt0,0
@@ -1006,6 +1023,20 @@ Timer tmSerial
vis xTempDest2,1
vis bDown2,1
vis tCF2,1
}else
{
vis btUp,1
vis xTempDest,1
vis btDown,1
vis tCF,1
vis btUp1,0
vis xTempDest1,0
vis btDown1,0
vis tCF1,0
vis bUp2,0
vis xTempDest2,0
vis bDown2,0
vis tCF2,0
}
//Show btDetail
spstr strCommand.txt,tTmp.txt,"~",58

View File

@@ -11,6 +11,18 @@ Page screensaver
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
recmod=1
baud=115200
vis tInstruction,0

View File

@@ -11,6 +11,18 @@ Page screensaver2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
recmod=1
baud=115200
vis tInstruction,0

Binary file not shown.

Binary file not shown.

View File

@@ -16,9 +16,95 @@
│ + //lcd_dev fffb 0002 0000 0020
│ printh 00 00 00 ff ff ff 88 ff ff ff//Output power on information to serial port
│ page pageStartup
│ --- HMI/n2t-out/cardAlarm.txt
├── +++ HMI/US/portrait/n2t-out/cardAlarm.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis arm1,0
│ --- HMI/n2t-out/cardChart.txt
├── +++ HMI/US/portrait/n2t-out/cardChart.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis bPrev,0
│ --- HMI/n2t-out/cardEntities.txt
├── +++ HMI/US/portrait/n2t-out/cardEntities.txt
│ @@ -60,16 +60,36 @@
│ @@ -7,27 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ - dim=dimValueNormal
│ dim=dimValueNormal
│ //wup=cardEntities
│ //remove background & activate reparse mode
│ vis p0,0
│ recmod=1
│ baud=115200
│ //debug stuff
│ @@ -73,16 +60,36 @@
│ vis tIcon4,0
│ vis tEntity4,0
│ vis bText4,0
@@ -56,7 +142,7 @@
│ b[sys0].pco=defaultFontColor
│ }
│ if(b[sys0].type==53&&defaultBcoColor==0)
│ @@ -85,45 +105,57 @@
│ @@ -98,45 +105,57 @@
│ }
│ }
@@ -120,7 +206,7 @@
│ Text :
│ Max. Text Size: 500
│ @@ -153,14 +185,26 @@
│ @@ -166,14 +185,26 @@
│ Variable (string) type4
│ Attributes
@@ -147,7 +233,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Value : 0
│ @@ -185,14 +229,30 @@
│ @@ -198,14 +229,30 @@
│ Attributes
│ Scope : local
│ Dragging : 0
@@ -178,7 +264,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text : tEntity1
│ @@ -221,14 +281,32 @@
│ @@ -234,14 +281,32 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -211,7 +297,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -266,14 +344,32 @@
│ @@ -279,14 +344,32 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -244,7 +330,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -407,14 +503,68 @@
│ @@ -420,14 +503,68 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -313,7 +399,7 @@
│ Send Component ID: disabled
│ State : unpressed
│ Text : 
│ @@ -503,14 +653,62 @@
│ @@ -516,14 +653,62 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -376,7 +462,7 @@
│ Send Component ID: disabled
│ State : unpressed
│ Text : 
│ @@ -647,14 +845,62 @@
│ @@ -660,14 +845,62 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -439,7 +525,7 @@
│ Send Component ID: disabled
│ State : unpressed
│ Text :
│ @@ -743,14 +989,62 @@
│ @@ -756,14 +989,62 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -502,7 +588,7 @@
│ Send Component ID: disabled
│ State : unpressed
│ Text : 
│ @@ -839,14 +1133,62 @@
│ @@ -852,14 +1133,62 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -565,7 +651,7 @@
│ Send Component ID: disabled
│ State : unpressed
│ Text :
│ @@ -943,14 +1285,66 @@
│ @@ -956,14 +1285,66 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -632,7 +718,7 @@
│ Send Component ID: disabled
│ Events
│ @@ -1099,14 +1493,92 @@
│ @@ -1112,14 +1493,92 @@
│ page popupInSel
│ }
│ if(type4.txt=="timer")
@@ -725,7 +811,7 @@
│ Send Component ID: disabled
│ Events
│ @@ -1830,14 +2302,312 @@
│ @@ -1843,14 +2302,312 @@
│ covx tTmp.txt,sys0,0,0
│ hSlider4.minval=sys0
│ //third value is max value
@@ -1038,9 +1124,65 @@
│ //command format pageType,specialPageName
│ //write name of speical page to tId
│ spstr strCommand.txt,tId.txt,"~",1
│ --- HMI/n2t-out/cardGrid.txt
├── +++ HMI/US/portrait/n2t-out/cardGrid.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ //remove background & activate reparse mode
│ vis p0,0
│ recmod=1
│ baud=115200
│ //debug stuff
│ vis tTmp,0
│ --- HMI/n2t-out/cardGrid2.txt
├── +++ HMI/US/portrait/n2t-out/cardGrid2.txt
│ @@ -25,26 +25,28 @@
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ //remove background & activate reparse mode
│ vis p0,0
│ recmod=1
│ baud=115200
│ //debug stuff
│ vis tTmp,0
│ @@ -37,26 +25,28 @@
│ vis bEntity2,0
│ vis bEntity3,0
│ vis bEntity4,0
@@ -1070,7 +1212,7 @@
│ b[sys0].pco=defaultFontColor
│ }
│ }
│ @@ -93,14 +95,20 @@
│ @@ -105,14 +95,20 @@
│ Variable (string) entn8
│ Attributes
@@ -1091,7 +1233,7 @@
│ Max. Text Size: 80
│ Variable (string) nent2
│ @@ -165,14 +173,20 @@
│ @@ -177,14 +173,20 @@
│ Variable (string) type8
│ Attributes
@@ -1112,7 +1254,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text : tEntity1
│ @@ -237,14 +251,23 @@
│ @@ -249,14 +251,23 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1136,7 +1278,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -631,14 +654,58 @@
│ @@ -643,14 +654,58 @@
│ crcputs tSend.txt,0
│ //send cmd
│ printh 55 bb
@@ -1195,7 +1337,7 @@
│ Send Component ID: disabled
│ State : unpressed
│ Text : 
│ @@ -1093,14 +1160,46 @@
│ @@ -1105,14 +1160,46 @@
│ spstr strCommand.txt,tTmp.txt,"~",59
│ covx tTmp.txt,sys0,0,0
│ bEntity8.pco=sys0
@@ -1242,9 +1384,94 @@
│ //command format pageType,specialPageName
│ //write name of speical page to tId
│ spstr strCommand.txt,tId.txt,"~",1
│ --- HMI/n2t-out/cardLChart.txt
├── +++ HMI/US/portrait/n2t-out/cardLChart.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis bPrev,0
│ --- HMI/n2t-out/cardMedia.txt
├── +++ HMI/US/portrait/n2t-out/cardMedia.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis t5,0
│ --- HMI/n2t-out/cardPower.txt
├── +++ HMI/US/portrait/n2t-out/cardPower.txt
│ @@ -45,16 +45,16 @@
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis bPrev,0
│ @@ -57,16 +45,16 @@
│ b[sys0].bco=defaultBcoColor
│ b[sys0].pco=defaultFontColor
│ }
@@ -1263,7 +1490,7 @@
│ Variable (string) nent1
│ Attributes
│ @@ -75,39 +75,75 @@
│ @@ -87,39 +75,75 @@
│ Max. Text Size: 1000
│ Variable (int32) t0Speed
@@ -1339,7 +1566,7 @@
│ Max. Text Size: 20
│ Variable (string) tInstruction
│ @@ -133,23 +169,14 @@
│ @@ -145,23 +169,14 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1363,7 +1590,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -169,23 +196,14 @@
│ @@ -181,23 +196,14 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1387,7 +1614,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -196,23 +214,14 @@
│ @@ -208,23 +214,14 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1411,7 +1638,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -223,23 +232,14 @@
│ @@ -235,23 +232,14 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1435,7 +1662,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -250,23 +250,14 @@
│ @@ -262,23 +250,14 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1459,7 +1686,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -277,23 +268,14 @@
│ @@ -289,23 +268,14 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1483,7 +1710,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ @@ -498,85 +480,79 @@
│ @@ -510,85 +480,79 @@
│ h0.val=h0.minval
│ }
│ if(sys0<h0.minval)
@@ -1569,7 +1796,7 @@
│ Scope : local
│ Period (ms): 50
│ Enabled : yes
│ @@ -962,15 +938,15 @@
│ @@ -974,15 +938,15 @@
│ }
│ if(tId.txt=="cardChart")
│ {
@@ -1586,6 +1813,64 @@
│ // get set time to global variable
│ spstr strCommand.txt,pageIcons.vaTime.txt,"~",1
│ }
│ --- HMI/n2t-out/cardQR.txt
├── +++ HMI/US/portrait/n2t-out/cardQR.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis bPrev,0
│ --- HMI/n2t-out/cardThermo.txt
├── +++ HMI/US/portrait/n2t-out/cardThermo.txt
│ @@ -7,26 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ dim=dimValueNormal
│ vis p0,0
│ vis tSend,0
│ vis tInstruction,0
│ vis tTmp,0
│ vis tId,0
│ vis xTempMin1,0
│ --- HMI/n2t-out/pageStartup.txt
├── +++ HMI/US/portrait/n2t-out/pageStartup.txt
│ @@ -34,20 +34,14 @@
@@ -1700,6 +1985,26 @@
│ Variable (string) entn
│ Attributes
│ Scope : local
│ @@ -453,19 +453,14 @@
│ ucopy strCommand.txt,4,payloadLength-5,0
│ // write instruction to tInstuction (debug output, but used as variable here, ui elements will be disabled by default)
│ spstr strCommand.txt,tInstruction.txt,"~",0
│ spstr strCommand.txt,tTmp.txt,"~",1
│ if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
│ {
│ // change icon
│ - spstr strCommand.txt,tTmp.txt,"~",2
│ - if(tTmp.txt!="")
│ - {
│ - tIcon1.txt=tTmp.txt
│ - }
│ //spstr strCommand.txt,tIcon1.txt,"~",2
│ vis tIcon1,1
│ // change icon color
│ spstr strCommand.txt,tTmp.txt,"~",3
│ covx tTmp.txt,sys0,0,0
│ tIcon1.pco=sys0
│ // get Button State
│ --- HMI/n2t-out/popupNotify.txt
├── +++ HMI/US/portrait/n2t-out/popupNotify.txt
│ @@ -348,15 +348,15 @@
@@ -1719,9 +2024,56 @@
│ }
│ if(tInstruction.txt=="exitPopup")
│ {
│ @@ -439,18 +439,14 @@
│ {
│ page cardPower
│ }
│ if(tId.txt=="cardChart")
│ {
│ page cardChart
│ }
│ - if(tId.txt=="cardLChart")
│ - {
│ - page cardLChart
│ - }
│ }
│ // end of user code
│ udelete payloadLength-1
│ bufferPos=0
│ }
│ }
│ }
│ --- HMI/n2t-out/screensaver.txt
├── +++ HMI/US/portrait/n2t-out/screensaver.txt
│ @@ -28,17 +28,14 @@
│ @@ -7,27 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ - dim=dimValueNormal
│ recmod=1
│ baud=115200
│ vis tInstruction,0
│ vis tTmp,0
│ vis p0,0
│ vis tNotifyHead,0
│ vis tNotifyText,0
│ @@ -41,17 +28,14 @@
│ }
│ tDate.txt=pageIcons.vaDate.txt
│ dim=dimValue
@@ -1739,7 +2091,7 @@
│ Max. Text Size: 600
│ Variable (string) strTmp
│ @@ -102,34 +99,14 @@
│ @@ -115,34 +99,14 @@
│ Value: 0
│ Variable (int32) ycR
@@ -1774,7 +2126,25 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text : |
│ @@ -596,20 +573,14 @@
│ @@ -485,17 +449,14 @@
│ //get set time to global variable
│ spstr strCommand.txt,pageIcons.vaTime.txt,"~",1
│ spstr pageIcons.vaTime.txt,tTime.txt,"?",0
│ spstr pageIcons.vaTime.txt,tAMPM.txt,"?",1
│ if(tAMPM.txt=="")
│ {
│ vis tAMPM,0
│ - }else
│ - {
│ - vis tAMPM,1
│ }
│ spstr strCommand.txt,tTimeAdd.txt,"~",2
│ ref tIcon1
│ ref tIcon2
│ }
│ if(tInstruction.txt=="date")
│ {
│ @@ -612,20 +573,14 @@
│ {
│ vis tMainIcon,1
│ vis tMainIconAlt,0
@@ -1797,7 +2167,35 @@
│ if(tTime.bco!=screensaver.bco)
│ --- HMI/n2t-out/screensaver2.txt
├── +++ HMI/US/portrait/n2t-out/screensaver2.txt
│ @@ -28,17 +28,14 @@
│ @@ -7,27 +7,14 @@
│ Swide up page ID : disabled
│ Swide down page ID : disabled
│ Swide left page ID : disabled
│ Swide right page ID: disabled
│ Events
│ Preinitialize Event
│ - tSend.txt="event,renderCurrentPage"
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ - dim=dimValueNormal
│ recmod=1
│ baud=115200
│ vis tInstruction,0
│ vis tTmp,0
│ vis p0,0
│ vis tNotifyHead,0
│ vis tNotifyText,0
│ @@ -41,52 +28,19 @@
│ }
│ tDate.txt=pageIcons.vaDate.txt
│ dim=dimValue
@@ -1808,14 +2206,80 @@
│ - Postinitialize Event
│ - click m0,1
│ -
│ -Variable (string) entn1
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn2
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn3
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn4
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ -Variable (string) entn5
│ - Attributes
│ - Scope : local
│ - Text :
│ - Max. Text Size: 14
│ -
│ Variable (string) strCommand
│ Attributes
│ Scope : local
│ Text :
Max. Text Size: 1979
- Max. Text Size: 1935
│ + Max. Text Size: 1979
│ Variable (string) strTmp
@@ -363,34 +360,14 @@
Attributes
│ Scope : local
│ Text :
│ Max. Text Size: 2
│ @@ -96,27 +50,27 @@
│ Text :
│ Max. Text Size: 25
│ Variable (string) tInstruction
│ Attributes
│ Scope : local
│ Text :
│ - Max. Text Size: 15
│ + Max. Text Size: 50
│ Variable (string) tSend
│ Attributes
│ Scope : local
│ Text :
│ Max. Text Size: 50
│ Variable (string) tTmp
│ Attributes
│ Scope : local
│ Text :
│ - Max. Text Size: 30
│ + Max. Text Size: 50
│ Variable (int32) vaTap
│ Attributes
│ Scope: local
│ Value: 0
│ Variable (int32) xc1
│ @@ -370,165 +324,50 @@
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
@@ -1823,6 +2287,137 @@
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn1.txt+",button"
│ - if(entn1.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f2Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn2.txt+",button"
│ - if(entn2.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f3Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn3.txt+",button"
│ - if(entn3.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f4Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn4.txt+",button"
│ - if(entn4.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ Text f5Icon
│ Attributes
│ Scope : local
│ Dragging : 0
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text :
│ Max. Text Size : 4
│ - Events
│ - Touch Press Event
│ - tSend.txt="event,buttonPress2,"+entn5.txt+",button"
│ - if(entn5.txt=="")
│ - {
│ - tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
│ - }
│ - //send calc crc
│ - btlen tSend.txt,sys0
│ - crcrest 1,0xffff // reset CRC
│ - crcputh 55 bb
│ - crcputs sys0,2
│ - crcputs tSend.txt,0
│ - //send cmd
│ - printh 55 bb
│ - prints sys0,2
│ - prints tSend.txt,0
│ - prints crcval,2
│ -
│ -Text m0
│ - Attributes
│ - Scope : local
@@ -1850,7 +2445,7 @@
│ Send Component ID : disabled
│ Associated Keyboard: none
│ Text : PM
│ @@ -572,15 +549,14 @@
│ @@ -710,15 +549,14 @@
│ if(tTmp.txt!="")
│ {
│ covx tTmp.txt,defaultFontColor,0,0
@@ -1866,3 +2461,48 @@
│ if(tAMPM.txt=="")
│ {
│ vis tAMPM,0
│ @@ -839,44 +677,34 @@
│ //e6Val
│ spstr strCommand.txt,e6Val.txt,"~",60
│ //f1Icon
│ spstr strCommand.txt,f1Icon.txt,"~",63
│ //f1Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",64
│ covx tTmp.txt,f1Icon.pco,0,0
│ - //f1Icon intNameEntity
│ - spstr strCommand.txt,entn1.txt,"~",62
│ //f2Icon
│ spstr strCommand.txt,f2Icon.txt,"~",69
│ //f2Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",70
│ covx tTmp.txt,f2Icon.pco,0,0
│ - //f2Icon intNameEntity
│ - spstr strCommand.txt,entn2.txt,"~",68
│ //f3Icon
│ spstr strCommand.txt,f3Icon.txt,"~",75
│ //f3Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",76
│ covx tTmp.txt,f3Icon.pco,0,0
│ - //f3Icon intNameEntity
│ - spstr strCommand.txt,entn3.txt,"~",74
│ //f4Icon
│ spstr strCommand.txt,f4Icon.txt,"~",81
│ //f4Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",82
│ covx tTmp.txt,f4Icon.pco,0,0
│ - //f4Icon intNameEntity
│ - spstr strCommand.txt,entn4.txt,"~",80
│ //f5Icon
│ spstr strCommand.txt,f5Icon.txt,"~",87
│ //f5Icon Color
│ spstr strCommand.txt,tTmp.txt,"~",88
│ covx tTmp.txt,f5Icon.pco,0,0
│ - //f5Icon intNameEntity
│ - spstr strCommand.txt,entn5.txt,"~",86
│ }
│ if(tInstruction.txt=="notify")
│ {
│ spstr strCommand.txt,tNotifyHead.txt,"~",1
│ spstr strCommand.txt,tNotifyText.txt,"~",2
│ if(tNotifyHead.txt!=""||tNotifyText.txt!="")
│ {

View File

@@ -1,12 +1,98 @@
+++ /dev/fd/62 2023-10-14 14:36:40.102098093 +0000
+++ /dev/fd/62 2024-11-22 20:00:11.734673876 +0000
+I/n2t-out/Program.s.txt
++ HMI/US/portrait/n2t-out/Program.s.txt
+1 +12,11 @@
+eature flags
+ featNewSliders=0
+nth 00 00 00 ff ff ff 88 ff ff ff//Output power on information to serial port
+I/n2t-out/cardAlarm.txt
++ HMI/US/portrait/n2t-out/cardAlarm.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis arm1,0
+I/n2t-out/cardChart.txt
++ HMI/US/portrait/n2t-out/cardChart.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis bPrev,0
+I/n2t-out/cardEntities.txt
++ HMI/US/portrait/n2t-out/cardEntities.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ dim=dimValueNormal
+ //wup=cardEntities
+ //remove background & activate reparse mode
+ vis p0,0
+ recmod=1
+ baud=115200
+ //debug stuff
+6 +60,36 @@
+ //ui e6
+ vis btOnOff6,0
@@ -59,13 +145,13 @@
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 80
+ Max. Text Size: 38
+
+e (string) nent2
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 80
+ Max. Text Size: 38
+14 +185,26 @@
+e (string) type6
@@ -600,8 +686,71 @@
+ covx tTmp.txt,sys0,0,0
+ hSlider6.maxval=sys0
+ }
+ }
+ if(tInstruction.txt=="pageType")
+ {
+ sleepValue=0
+ //command format pageType,specialPageName
+ //write name of speical page to tId
+ spstr strCommand.txt,tId.txt,"~",1
+I/n2t-out/cardGrid.txt
++ HMI/US/portrait/n2t-out/cardGrid.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ //remove background & activate reparse mode
+ vis p0,0
+ recmod=1
+ baud=115200
+ //debug stuff
+ vis tTmp,0
+I/n2t-out/cardGrid2.txt
++ HMI/US/portrait/n2t-out/cardGrid2.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ //remove background & activate reparse mode
+ vis p0,0
+ recmod=1
+ baud=115200
+ //debug stuff
+ vis tTmp,0
+6 +25,28 @@
+ vis bEntity2,0
+ vis bEntity3,0
@@ -632,7 +781,7 @@
+ b[sys0].pco=defaultFontColor
+ }
+ }
+4 +95,20 @@
+14 +95,20 @@
+
+e (string) entn8
+ributes
@@ -797,15 +946,93 @@
+ spstr strCommand.txt,tEntity9.txt,"~",66
+ vis tEntity9,1
+ }
+ }
+ if(tInstruction.txt=="pageType")
+ {
+ sleepValue=0
+ //command format pageType,specialPageName
+ //write name of speical page to tId
+ spstr strCommand.txt,tId.txt,"~",1
+I/n2t-out/cardLChart.txt
++ HMI/US/portrait/n2t-out/cardLChart.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis bPrev,0
+I/n2t-out/cardMedia.txt
++ HMI/US/portrait/n2t-out/cardMedia.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis t5,0
+I/n2t-out/cardPower.txt
++ HMI/US/portrait/n2t-out/cardPower.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis bPrev,0
+6 +45,16 @@
+ b[sys0].bco=defaultBcoColor
+ b[sys0].pco=defaultFontColor
@@ -1148,6 +1375,64 @@
+ // get set time to global variable
+ spstr strCommand.txt,pageIcons.vaTime.txt,"~",1
+ }
+I/n2t-out/cardQR.txt
++ HMI/US/portrait/n2t-out/cardQR.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis bPrev,0
+I/n2t-out/cardThermo.txt
++ HMI/US/portrait/n2t-out/cardThermo.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ vis p0,0
+ vis tSend,0
+ vis tInstruction,0
+ vis tTmp,0
+ vis tId,0
+ vis xTempMin1,0
+I/n2t-out/pageStartup.txt
++ HMI/US/portrait/n2t-out/pageStartup.txt
+0 +34,14 @@
@@ -1242,6 +1527,26 @@
+e (string) entn
+ributes
+ Scope : local
+19 +453,14 @@
+ ucopy strCommand.txt,4,payloadLength-5,0
+ // write instruction to tInstuction (debug output, but used as variable here, ui elements will be disabled by default)
+ spstr strCommand.txt,tInstruction.txt,"~",0
+ spstr strCommand.txt,tTmp.txt,"~",1
+ if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
+ {
+ // change icon
+ spstr strCommand.txt,tTmp.txt,"~",2
+ if(tTmp.txt!="")
+ {
+ tIcon1.txt=tTmp.txt
+ }
+ //spstr strCommand.txt,tIcon1.txt,"~",2
+ vis tIcon1,1
+ // change icon color
+ spstr strCommand.txt,tTmp.txt,"~",3
+ covx tTmp.txt,sys0,0,0
+ tIcon1.pco=sys0
+ // get Button State
+I/n2t-out/popupNotify.txt
++ HMI/US/portrait/n2t-out/popupNotify.txt
+15 +348,15 @@
@@ -1261,8 +1566,55 @@
+ }
+ if(tInstruction.txt=="exitPopup")
+ {
+18 +439,14 @@
+ {
+ page cardPower
+ }
+ if(tId.txt=="cardChart")
+ {
+ page cardChart
+ }
+ if(tId.txt=="cardLChart")
+ {
+ page cardLChart
+ }
+ }
+ // end of user code
+ udelete payloadLength-1
+ bufferPos=0
+ }
+ }
+ }
+I/n2t-out/screensaver.txt
++ HMI/US/portrait/n2t-out/screensaver.txt
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ recmod=1
+ baud=115200
+ vis tInstruction,0
+ vis tTmp,0
+ vis p0,0
+ vis tNotifyHead,0
+ vis tNotifyText,0
+7 +28,14 @@
+ }
+ tDate.txt=pageIcons.vaDate.txt
@@ -1316,6 +1668,24 @@
+ Send Component ID : disabled
+ Associated Keyboard: none
+ Text : |
+17 +449,14 @@
+ //get set time to global variable
+ spstr strCommand.txt,pageIcons.vaTime.txt,"~",1
+ spstr pageIcons.vaTime.txt,tTime.txt,"?",0
+ spstr pageIcons.vaTime.txt,tAMPM.txt,"?",1
+ if(tAMPM.txt=="")
+ {
+ vis tAMPM,0
+ }else
+ {
+ vis tAMPM,1
+ }
+ spstr strCommand.txt,tTimeAdd.txt,"~",2
+ ref tIcon1
+ ref tIcon2
+ }
+ if(tInstruction.txt=="date")
+ {
+20 +573,14 @@
+ {
+ vis tMainIcon,1
@@ -1339,7 +1709,35 @@
+ if(tTime.bco!=screensaver.bco)
+I/n2t-out/screensaver2.txt
++ HMI/US/portrait/n2t-out/screensaver2.txt
+7 +28,14 @@
+ +7,14 @@
+ Swide up page ID : disabled
+ Swide down page ID : disabled
+ Swide left page ID : disabled
+ Swide right page ID: disabled
+
+nts
+ Preinitialize Event
+ tSend.txt="event,renderCurrentPage"
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+ dim=dimValueNormal
+ recmod=1
+ baud=115200
+ vis tInstruction,0
+ vis tTmp,0
+ vis p0,0
+ vis tNotifyHead,0
+ vis tNotifyText,0
+2 +28,19 @@
+ }
+ tDate.txt=pageIcons.vaDate.txt
+ dim=dimValue
@@ -1350,14 +1748,80 @@
+ Postinitialize Event
+ click m0,1
+
+e (string) entn1
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 14
+
+e (string) entn2
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 14
+
+e (string) entn3
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 14
+
+e (string) entn4
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 14
+
+e (string) entn5
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 14
+
+e (string) strCommand
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 1935
+ Max. Text Size: 1979
+
+e (string) strTmp
+34 +360,14 @@
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 2
+
+7 +50,27 @@
+ Text :
+ Max. Text Size: 25
+
+e (string) tInstruction
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 15
+ Max. Text Size: 50
+
+e (string) tSend
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 50
+
+e (string) tTmp
+ributes
+ Scope : local
+ Text :
+ Max. Text Size: 30
+ Max. Text Size: 50
+
+e (int32) vaTap
+ributes
+ Scope: local
+ Value: 0
+
+e (int32) xc1
+165 +324,50 @@
+ Scope : local
+ Dragging : 0
+ Send Component ID : disabled
@@ -1365,6 +1829,137 @@
+ Text :
+ Max. Text Size : 4
+
+nts
+ Touch Press Event
+ tSend.txt="event,buttonPress2,"+entn1.txt+",button"
+ if(entn1.txt=="")
+ {
+ tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
+ }
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+
+Icon
+ributes
+ Scope : local
+ Dragging : 0
+ Send Component ID : disabled
+ Associated Keyboard: none
+ Text :
+ Max. Text Size : 4
+
+nts
+ Touch Press Event
+ tSend.txt="event,buttonPress2,"+entn2.txt+",button"
+ if(entn2.txt=="")
+ {
+ tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
+ }
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+
+Icon
+ributes
+ Scope : local
+ Dragging : 0
+ Send Component ID : disabled
+ Associated Keyboard: none
+ Text :
+ Max. Text Size : 4
+
+nts
+ Touch Press Event
+ tSend.txt="event,buttonPress2,"+entn3.txt+",button"
+ if(entn3.txt=="")
+ {
+ tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
+ }
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+
+Icon
+ributes
+ Scope : local
+ Dragging : 0
+ Send Component ID : disabled
+ Associated Keyboard: none
+ Text :
+ Max. Text Size : 4
+
+nts
+ Touch Press Event
+ tSend.txt="event,buttonPress2,"+entn4.txt+",button"
+ if(entn4.txt=="")
+ {
+ tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
+ }
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+
+Icon
+ributes
+ Scope : local
+ Dragging : 0
+ Send Component ID : disabled
+ Associated Keyboard: none
+ Text :
+ Max. Text Size : 4
+
+nts
+ Touch Press Event
+ tSend.txt="event,buttonPress2,"+entn5.txt+",button"
+ if(entn5.txt=="")
+ {
+ tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
+ }
+ //send calc crc
+ btlen tSend.txt,sys0
+ crcrest 1,0xffff // reset CRC
+ crcputh 55 bb
+ crcputs sys0,2
+ crcputs tSend.txt,0
+ //send cmd
+ printh 55 bb
+ prints sys0,2
+ prints tSend.txt,0
+ prints crcval,2
+
+
+ributes
+ Scope : local
@@ -1408,3 +2003,48 @@
+ if(tAMPM.txt=="")
+ {
+ vis tAMPM,0
+44 +677,34 @@
+ //e6Val
+ spstr strCommand.txt,e6Val.txt,"~",60
+ //f1Icon
+ spstr strCommand.txt,f1Icon.txt,"~",63
+ //f1Icon Color
+ spstr strCommand.txt,tTmp.txt,"~",64
+ covx tTmp.txt,f1Icon.pco,0,0
+ //f1Icon intNameEntity
+ spstr strCommand.txt,entn1.txt,"~",62
+ //f2Icon
+ spstr strCommand.txt,f2Icon.txt,"~",69
+ //f2Icon Color
+ spstr strCommand.txt,tTmp.txt,"~",70
+ covx tTmp.txt,f2Icon.pco,0,0
+ //f2Icon intNameEntity
+ spstr strCommand.txt,entn2.txt,"~",68
+ //f3Icon
+ spstr strCommand.txt,f3Icon.txt,"~",75
+ //f3Icon Color
+ spstr strCommand.txt,tTmp.txt,"~",76
+ covx tTmp.txt,f3Icon.pco,0,0
+ //f3Icon intNameEntity
+ spstr strCommand.txt,entn3.txt,"~",74
+ //f4Icon
+ spstr strCommand.txt,f4Icon.txt,"~",81
+ //f4Icon Color
+ spstr strCommand.txt,tTmp.txt,"~",82
+ covx tTmp.txt,f4Icon.pco,0,0
+ //f4Icon intNameEntity
+ spstr strCommand.txt,entn4.txt,"~",80
+ //f5Icon
+ spstr strCommand.txt,f5Icon.txt,"~",87
+ //f5Icon Color
+ spstr strCommand.txt,tTmp.txt,"~",88
+ covx tTmp.txt,f5Icon.pco,0,0
+ //f5Icon intNameEntity
+ spstr strCommand.txt,entn5.txt,"~",86
+ }
+ if(tInstruction.txt=="notify")
+ {
+ spstr strCommand.txt,tNotifyHead.txt,"~",1
+ spstr strCommand.txt,tNotifyText.txt,"~",2
+ if(tNotifyHead.txt!=""||tNotifyText.txt!="")
+ {

View File

@@ -121,6 +121,8 @@ for i in range(1,6):
//f{i}Icon Color
spstr strCommand.txt,tTmp.txt,"~",{idxstart+3}
covx tTmp.txt,f{i}Icon.pco,0,0
//f{i}Icon intNameEntity
spstr strCommand.txt,entn{i}.txt,"~",{idxstart+1}
"""
head = head + item

View File

@@ -19,6 +19,18 @@ Page cardAlarm
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,19 @@ Page cardEntities
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
dim=dimValueNormal
//wup=cardEntities
//remove background & activate reparse mode

View File

@@ -19,6 +19,18 @@ Page cardGrid
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -19,6 +19,18 @@ Page cardGrid2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -19,6 +19,18 @@ Page cardLChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardMedia
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardPower
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardQR
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -19,6 +19,18 @@ Page cardThermo
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -7,13 +7,13 @@ pageIcons
0 Line(s) of event code
0 Unique line(s) of event code
pageTest
27 Component(s)
25 Component(s)
68 Line(s) of event code
66 Unique line(s) of event code
cardLChart
33 Component(s)
402 Line(s) of event code
266 Unique line(s) of event code
popupNotify
19 Component(s)
271 Line(s) of event code
174 Unique line(s) of event code
popupFan
27 Component(s)
355 Line(s) of event code
@@ -30,54 +30,54 @@ popupLightNew
23 Component(s)
412 Line(s) of event code
209 Unique line(s) of event code
popupNotify
19 Component(s)
267 Line(s) of event code
172 Unique line(s) of event code
cardGrid
44 Component(s)
583 Line(s) of event code
332 Unique line(s) of event code
cardQR
34 Component(s)
410 Line(s) of event code
238 Unique line(s) of event code
cardChart
33 Component(s)
437 Line(s) of event code
296 Unique line(s) of event code
screensaver2
59 Component(s)
362 Line(s) of event code
255 Unique line(s) of event code
cardAlarm
43 Component(s)
500 Line(s) of event code
273 Unique line(s) of event code
popupLight
28 Component(s)
417 Line(s) of event code
228 Unique line(s) of event code
cardGrid2
52 Component(s)
703 Line(s) of event code
385 Unique line(s) of event code
cardAlarm
43 Component(s)
510 Line(s) of event code
274 Unique line(s) of event code
cardChart
33 Component(s)
447 Line(s) of event code
297 Unique line(s) of event code
cardGrid
44 Component(s)
593 Line(s) of event code
333 Unique line(s) of event code
cardQR
34 Component(s)
420 Line(s) of event code
239 Unique line(s) of event code
cardLChart
33 Component(s)
412 Line(s) of event code
227 Unique line(s) of event code
267 Unique line(s) of event code
cardPower
54 Component(s)
541 Line(s) of event code
350 Unique line(s) of event code
cardThermo
57 Component(s)
540 Line(s) of event code
319 Unique line(s) of event code
cardMedia
59 Component(s)
703 Line(s) of event code
356 Unique line(s) of event code
550 Line(s) of event code
320 Unique line(s) of event code
popupInSel
34 Component(s)
621 Line(s) of event code
297 Unique line(s) of event code
cardPower
54 Component(s)
531 Line(s) of event code
349 Unique line(s) of event code
screensaver
47 Component(s)
444 Line(s) of event code
316 Unique line(s) of event code
458 Line(s) of event code
318 Unique line(s) of event code
cardMedia
59 Component(s)
713 Line(s) of event code
357 Unique line(s) of event code
popupTimer
42 Component(s)
516 Line(s) of event code
@@ -86,17 +86,17 @@ popupThermo
44 Component(s)
523 Line(s) of event code
276 Unique line(s) of event code
cardGrid2
52 Component(s)
693 Line(s) of event code
384 Unique line(s) of event code
screensaver2
64 Component(s)
448 Line(s) of event code
272 Unique line(s) of event code
cardEntities
67 Component(s)
1194 Line(s) of event code
535 Unique line(s) of event code
1205 Line(s) of event code
536 Unique line(s) of event code
Total
23 Page(s)
878 Component(s)
10588 Line(s) of event code
2459 Unique line(s) of event code
881 Component(s)
10798 Line(s) of event code
2472 Unique line(s) of event code

View File

@@ -32,7 +32,7 @@ Variable (string) strCommand
Variable (string) strTmp
Attributes
ID : 25
ID : 24
Scope : local
Text :
Max. Text Size: 2
@@ -58,9 +58,9 @@ Text tBench
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 288
y coordinate : 90
Width : 152
x coordinate : 207
y coordinate : 287
Width : 88
Height : 30
Effect : load
Effect Priority : 0
@@ -82,14 +82,14 @@ Text tBench
Text tTmp
Attributes
ID : 24
ID : 23
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 49
y coordinate : 48
Width : 257
x coordinate : 212
y coordinate : 253
Width : 71
Height : 30
Effect : load
Effect Priority : 0
@@ -103,7 +103,7 @@ Text tTmp
Horizontal Alignment: center
Vertical Alignment : center
Input Type : character
Text : test123test123
Text : x
Max. Text Size : 30
Word wrap : disabled
Horizontal Spacing : 0
@@ -135,7 +135,7 @@ Button b0
x coordinate : 0
y coordinate : 0
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -203,9 +203,9 @@ Button b10
Send Component ID : disabled
Opacity : 127
x coordinate : 100
y coordinate : 98
y coordinate : 81
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -238,9 +238,9 @@ Button b11
Send Component ID : disabled
Opacity : 127
x coordinate : 100
y coordinate : 145
y coordinate : 121
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -273,9 +273,9 @@ Button b12
Send Component ID : disabled
Opacity : 127
x coordinate : 0
y coordinate : 242
y coordinate : 202
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -335,46 +335,15 @@ Button b13
Touch Press Event
showqq
Button b14
Button b15
Attributes
ID : 21
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 0
y coordinate : 0
Width : 100
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : 3D auto
Font ID : 0
Back. Color : 50712
Back. Picture ID (Pressed): 65535
Back. Color (Pressed) : 1024
Font Color (Unpressed) : 0
Font Color (Pressed) : 65535
Horizontal Alignment : center
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Button b15
Attributes
ID : 22
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 236
y coordinate : 263
x coordinate : 99
y coordinate : 270
Width : 100
Height : 50
Effect : load
@@ -403,13 +372,13 @@ Button b15
Button b16
Attributes
ID : 23
ID : 22
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 135
y coordinate : 263
x coordinate : 0
y coordinate : 270
Width : 100
Height : 50
Effect : load
@@ -444,9 +413,9 @@ Button b2
Send Component ID : disabled
Opacity : 127
x coordinate : 0
y coordinate : 195
y coordinate : 162
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -514,9 +483,9 @@ Button b4
Send Component ID : disabled
Opacity : 127
x coordinate : 0
y coordinate : 96
y coordinate : 82
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -551,7 +520,7 @@ Button b5
x coordinate : 100
y coordinate : 0
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -584,9 +553,9 @@ Button b6
Send Component ID : disabled
Opacity : 127
x coordinate : 0
y coordinate : 49
y coordinate : 41
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -619,9 +588,9 @@ Button b7
Send Component ID : disabled
Opacity : 127
x coordinate : 100
y coordinate : 49
y coordinate : 41
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -653,10 +622,10 @@ Button b8
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 341
y coordinate : 9
x coordinate : 94
y coordinate : 161
Width : 106
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -690,9 +659,9 @@ Button b9
Send Component ID : disabled
Opacity : 127
x coordinate : 0
y coordinate : 146
y coordinate : 122
Width : 100
Height : 50
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
@@ -717,21 +686,6 @@ Button b9
Touch Press Event
page popupNotify
Hotspot m0
Attributes
ID : 26
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 213
y coordinate : 115
Width : 210
Height : 191
Effect : load
Effect Priority : 0
Effect Time : 300
Timer tmSerial
Attributes
ID : 14

View File

@@ -806,6 +806,11 @@ Timer tmSerial
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
//spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color

View File

@@ -672,6 +672,10 @@ Timer tmSerial
{
page cardChart
}
if(tId.txt=="cardLChart")
{
page cardLChart
}
}
// end of user code
udelete payloadLength-1

View File

@@ -19,6 +19,19 @@ Page screensaver
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
recmod=1
baud=115200
vis tInstruction,0
@@ -1069,6 +1082,9 @@ Timer tmSerial
if(tAMPM.txt=="")
{
vis tAMPM,0
}else
{
vis tAMPM,1
}
spstr strCommand.txt,tTimeAdd.txt,"~",2
ref tIcon1

View File

@@ -19,6 +19,19 @@ Page screensaver2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
recmod=1
baud=115200
vis tInstruction,0
@@ -43,12 +56,47 @@ Page screensaver2
Postinitialize Event
click m0,1
Variable (string) entn1
Attributes
ID : 59
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn2
Attributes
ID : 60
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn3
Attributes
ID : 61
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn4
Attributes
ID : 62
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn5
Attributes
ID : 63
Scope : local
Text :
Max. Text Size: 14
Variable (string) strCommand
Attributes
ID : 4
Scope : local
Text :
Max. Text Size: 1979
Max. Text Size: 1935
Variable (string) strTmp
Attributes
@@ -69,7 +117,7 @@ Variable (string) tInstruction
ID : 18
Scope : local
Text :
Max. Text Size: 50
Max. Text Size: 15
Variable (string) tSend
Attributes
@@ -83,7 +131,7 @@ Variable (string) tTmp
ID : 19
Scope : local
Text :
Max. Text Size: 50
Max. Text Size: 30
Variable (int32) vaTap
Attributes
@@ -852,6 +900,25 @@ Text f1Icon
Horizontal Spacing : 0
Vertical Spacing : 0
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",button"
if(entn1.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f2Icon
Attributes
ID : 54
@@ -881,6 +948,25 @@ Text f2Icon
Horizontal Spacing : 0
Vertical Spacing : 0
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn2.txt+",button"
if(entn2.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f3Icon
Attributes
ID : 55
@@ -910,6 +996,25 @@ Text f3Icon
Horizontal Spacing : 0
Vertical Spacing : 0
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn3.txt+",button"
if(entn3.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f4Icon
Attributes
ID : 53
@@ -939,6 +1044,25 @@ Text f4Icon
Horizontal Spacing : 0
Vertical Spacing : 0
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn4.txt+",button"
if(entn4.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f5Icon
Attributes
ID : 52
@@ -968,6 +1092,25 @@ Text f5Icon
Horizontal Spacing : 0
Vertical Spacing : 0
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn5.txt+",button"
if(entn5.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text m0
Attributes
ID : 32
@@ -1538,26 +1681,36 @@ Timer tmSerial
//f1Icon Color
spstr strCommand.txt,tTmp.txt,"~",64
covx tTmp.txt,f1Icon.pco,0,0
//f1Icon intNameEntity
spstr strCommand.txt,entn1.txt,"~",62
//f2Icon
spstr strCommand.txt,f2Icon.txt,"~",69
//f2Icon Color
spstr strCommand.txt,tTmp.txt,"~",70
covx tTmp.txt,f2Icon.pco,0,0
//f2Icon intNameEntity
spstr strCommand.txt,entn2.txt,"~",68
//f3Icon
spstr strCommand.txt,f3Icon.txt,"~",75
//f3Icon Color
spstr strCommand.txt,tTmp.txt,"~",76
covx tTmp.txt,f3Icon.pco,0,0
//f3Icon intNameEntity
spstr strCommand.txt,entn3.txt,"~",74
//f4Icon
spstr strCommand.txt,f4Icon.txt,"~",81
//f4Icon Color
spstr strCommand.txt,tTmp.txt,"~",82
covx tTmp.txt,f4Icon.pco,0,0
//f4Icon intNameEntity
spstr strCommand.txt,entn4.txt,"~",80
//f5Icon
spstr strCommand.txt,f5Icon.txt,"~",87
//f5Icon Color
spstr strCommand.txt,tTmp.txt,"~",88
covx tTmp.txt,f5Icon.pco,0,0
//f5Icon intNameEntity
spstr strCommand.txt,entn5.txt,"~",86
}
if(tInstruction.txt=="notify")
{

View File

@@ -11,6 +11,18 @@ Page cardAlarm
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,19 @@ Page cardEntities
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
dim=dimValueNormal
//wup=cardEntities
//remove background & activate reparse mode

View File

@@ -11,6 +11,18 @@ Page cardGrid
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -11,6 +11,18 @@ Page cardGrid2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
//remove background & activate reparse mode
vis p0,0

View File

@@ -11,6 +11,18 @@ Page cardLChart
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardMedia
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardPower
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardQR
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -11,6 +11,18 @@ Page cardThermo
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
vis p0,0
vis tSend,0

View File

@@ -54,7 +54,7 @@ Text tTmp
Dragging : 0
Send Component ID : disabled
Associated Keyboard: none
Text : test123test123
Text : x
Max. Text Size : 30
Picture p0
@@ -141,15 +141,6 @@ Button b13
Touch Press Event
showqq
Button b14
Attributes
Scope : local
Dragging : 0
Send Component ID: disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Button b15
Attributes
Scope : local
@@ -281,12 +272,6 @@ Button b9
Touch Press Event
page popupNotify
Hotspot m0
Attributes
Scope : local
Dragging : 0
Send Component ID: disabled
Timer tmSerial
Attributes
Scope : local

View File

@@ -457,6 +457,11 @@ Timer tmSerial
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
//spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color

View File

@@ -443,6 +443,10 @@ Timer tmSerial
{
page cardChart
}
if(tId.txt=="cardLChart")
{
page cardLChart
}
}
// end of user code
udelete payloadLength-1

View File

@@ -11,6 +11,19 @@ Page screensaver
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
recmod=1
baud=115200
vis tInstruction,0
@@ -476,6 +489,9 @@ Timer tmSerial
if(tAMPM.txt=="")
{
vis tAMPM,0
}else
{
vis tAMPM,1
}
spstr strCommand.txt,tTimeAdd.txt,"~",2
ref tIcon1

View File

@@ -11,6 +11,19 @@ Page screensaver2
Events
Preinitialize Event
tSend.txt="event,renderCurrentPage"
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
dim=dimValueNormal
recmod=1
baud=115200
vis tInstruction,0
@@ -35,11 +48,41 @@ Page screensaver2
Postinitialize Event
click m0,1
Variable (string) entn1
Attributes
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn2
Attributes
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn3
Attributes
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn4
Attributes
Scope : local
Text :
Max. Text Size: 14
Variable (string) entn5
Attributes
Scope : local
Text :
Max. Text Size: 14
Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 1979
Max. Text Size: 1935
Variable (string) strTmp
Attributes
@@ -57,7 +100,7 @@ Variable (string) tInstruction
Attributes
Scope : local
Text :
Max. Text Size: 50
Max. Text Size: 15
Variable (string) tSend
Attributes
@@ -69,7 +112,7 @@ Variable (string) tTmp
Attributes
Scope : local
Text :
Max. Text Size: 50
Max. Text Size: 30
Variable (int32) vaTap
Attributes
@@ -331,6 +374,25 @@ Text f1Icon
Text :
Max. Text Size : 4
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",button"
if(entn1.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f2Icon
Attributes
Scope : local
@@ -340,6 +402,25 @@ Text f2Icon
Text :
Max. Text Size : 4
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn2.txt+",button"
if(entn2.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f3Icon
Attributes
Scope : local
@@ -349,6 +430,25 @@ Text f3Icon
Text :
Max. Text Size : 4
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn3.txt+",button"
if(entn3.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f4Icon
Attributes
Scope : local
@@ -358,6 +458,25 @@ Text f4Icon
Text :
Max. Text Size : 4
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn4.txt+",button"
if(entn4.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text f5Icon
Attributes
Scope : local
@@ -367,6 +486,25 @@ Text f5Icon
Text :
Max. Text Size : 4
Events
Touch Press Event
tSend.txt="event,buttonPress2,"+entn5.txt+",button"
if(entn5.txt=="")
{
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
}
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
crcputh 55 bb
crcputs sys0,2
crcputs tSend.txt,0
//send cmd
printh 55 bb
prints sys0,2
prints tSend.txt,0
prints crcval,2
Text m0
Attributes
Scope : local
@@ -705,26 +843,36 @@ Timer tmSerial
//f1Icon Color
spstr strCommand.txt,tTmp.txt,"~",64
covx tTmp.txt,f1Icon.pco,0,0
//f1Icon intNameEntity
spstr strCommand.txt,entn1.txt,"~",62
//f2Icon
spstr strCommand.txt,f2Icon.txt,"~",69
//f2Icon Color
spstr strCommand.txt,tTmp.txt,"~",70
covx tTmp.txt,f2Icon.pco,0,0
//f2Icon intNameEntity
spstr strCommand.txt,entn2.txt,"~",68
//f3Icon
spstr strCommand.txt,f3Icon.txt,"~",75
//f3Icon Color
spstr strCommand.txt,tTmp.txt,"~",76
covx tTmp.txt,f3Icon.pco,0,0
//f3Icon intNameEntity
spstr strCommand.txt,entn3.txt,"~",74
//f4Icon
spstr strCommand.txt,f4Icon.txt,"~",81
//f4Icon Color
spstr strCommand.txt,tTmp.txt,"~",82
covx tTmp.txt,f4Icon.pco,0,0
//f4Icon intNameEntity
spstr strCommand.txt,entn4.txt,"~",80
//f5Icon
spstr strCommand.txt,f5Icon.txt,"~",87
//f5Icon Color
spstr strCommand.txt,tTmp.txt,"~",88
covx tTmp.txt,f5Icon.pco,0,0
//f5Icon intNameEntity
spstr strCommand.txt,entn5.txt,"~",86
}
if(tInstruction.txt=="notify")
{

Binary file not shown.

Binary file not shown.

674
LICENSE Normal file
View File

@@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@@ -5,7 +5,7 @@ If you like this project consider buying me a pizza 🍕 <a href="https://paypal
[![hacs_badge](https://img.shields.io/badge/HACS-Default-41BDF5.svg)](https://github.com/hacs/integration)
![hacs validation](https://github.com/joBr99/nspanel-lovelace-ui/actions/workflows/hacs-validation.yaml/badge.svg)
[![GitHub Release](https://img.shields.io/github/release/joBr99/nspanel-lovelace-ui.svg)](https://github.com/joBr99/nspanel-lovelace-ui/releases)
![Project Maintenance](https://img.shields.io/maintenance/yes/2023.svg)
![Project Maintenance](https://img.shields.io/maintenance/yes/2024.svg)
[![GitHub Activity](https://img.shields.io/github/commit-activity/y/joBr99/nspanel-lovelace-ui.svg)](https://github.com/joBr99/nspanel-lovelace-ui/commits/main)
@@ -65,3 +65,5 @@ SmartHomeNG: https://github.com/sisamiwe/shng-nspanel-plugin
OpenHAB: https://github.com/donoo/o2n2l
NodeRed: https://github.com/laluz742/node-red-contrib-nspanel-lui
ESPHome without any Backend: https://github.com/olicooper/esphome-nspanel-lovelace-native

View File

@@ -1,2 +1,3 @@
ha_api = None
mqtt_api = None
ad_api = None

View File

@@ -132,6 +132,7 @@ class LuiBackendConfig(object):
'sleepTrackingZones': ["not_home", "off"],
'sleepOverride': None,
'locale': "en_US",
'quiet': True,
'timeFormat': "%H:%M",
'dateFormatBabel': "full",
'dateAdditionalTemplate': "",

View File

@@ -3,6 +3,7 @@ import datetime
import apis
from helper import scale, pos_to_color, rgb_dec565
from pages import LuiPagesGen
from luibackend.config import Card
class LuiController(object):
@@ -324,7 +325,7 @@ class LuiController(object):
apis.ha_api.get_entity(entity_id).call_service("lock")
elif entity_id.startswith('button') or entity_id.startswith('input_button'):
apis.ha_api.get_entity(entity_id).call_service("press")
elif entity_id.startswith('input_select'):
elif entity_id.startswith('input_select') or entity_id.startswith('select'):
apis.ha_api.get_entity(entity_id).call_service("select_next")
elif entity_id.startswith('vacuum'):
if apis.ha_api.get_entity(entity_id).state == "docked":
@@ -333,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":
@@ -347,8 +353,8 @@ class LuiController(object):
else:
apis.ha_api.get_entity(entity_id).call_service("turn_off")
if button_type == "media-shuffle":
suffle = not apis.ha_api.get_entity(entity_id).attributes.shuffle
apis.ha_api.get_entity(entity_id).call_service("shuffle_set", shuffle=suffle)
shuffle = not apis.ha_api.get_entity(entity_id).attributes['shuffle']
apis.ha_api.get_entity(entity_id).call_service("shuffle_set", shuffle=shuffle)
if button_type == "volumeSlider":
pos = int(value)
# HA wants this value between 0 and 1 as float
@@ -365,7 +371,7 @@ class LuiController(object):
if button_type == "colorTempSlider":
entity = apis.ha_api.get_entity(entity_id)
#scale 0-100 from slider to color range of lamp
color_val = scale(int(value), (0, 100), (entity.attributes.min_mireds, entity.attributes.max_mireds))
color_val = scale(int(value), (0, 100), (entity.attributes['min_mireds'], entity.attributes['max_mireds']))
apis.ha_api.get_entity(entity_id).call_service("turn_on", color_temp=color_val)
if button_type == "colorWheel":
apis.ha_api.log(value)
@@ -392,9 +398,9 @@ class LuiController(object):
if button_type == "opnSensorNotify":
msg = ""
entity = apis.ha_api.get_entity(entity_id)
if "open_sensors" in entity.attributes and entity.attributes.open_sensors is not None:
for e in entity.attributes.open_sensors:
msg += f"- {apis.ha_api.get_entity(e).attributes.friendly_name}\r\n"
if open_sensors := entity.attributes.get("open_sensors") is not None:
for e in open_sensors:
msg += f"- {apis.ha_api.get_entity(e).attributes['friendly_name']}\r\n"
self._pages_gen.send_message_page("opnSensorNotifyRes", "", msg, "", "")
# for cardUnlock
@@ -411,22 +417,22 @@ class LuiController(object):
if button_type == "mode-preset_modes":
entity = apis.ha_api.get_entity(entity_id)
preset_mode = entity.attributes.preset_modes[int(value)]
preset_mode = entity.attributes['preset_modes'][int(value)]
entity.call_service("set_preset_mode", preset_mode=preset_mode)
if button_type == "mode-swing_modes":
entity = apis.ha_api.get_entity(entity_id)
swing_mode = entity.attributes.swing_modes[int(value)]
swing_mode = entity.attributes['swing_modes'][int(value)]
entity.call_service("set_swing_mode", swing_mode=swing_mode)
if button_type == "mode-fan_modes":
entity = apis.ha_api.get_entity(entity_id)
fan_mode = entity.attributes.fan_modes[int(value)]
fan_mode = entity.attributes['fan_modes'][int(value)]
entity.call_service("set_fan_mode", fan_mode=fan_mode)
if button_type == "mode-input_select":
if button_type in ["mode-input_select", "mode-select"]:
entity = apis.ha_api.get_entity(entity_id)
option = entity.attributes.options[int(value)]
option = entity.attributes['options'][int(value)]
entity.call_service("select_option", option=option)
if button_type == "mode-light":
@@ -438,12 +444,12 @@ class LuiController(object):
if options_list is not None:
option = options_list[int(value)]
else:
option = entity.attributes.effect_list[int(value)]
option = entity.attributes['effect_list'][int(value)]
entity.call_service("turn_on", effect=option)
if button_type == "mode-media_player":
entity = apis.ha_api.get_entity(entity_id)
option = entity.attributes.source_list[int(value)]
option = entity.attributes['source_list'][int(value)]
entity.call_service("select_source", source=option)
# timer detail page
@@ -458,3 +464,9 @@ class LuiController(object):
apis.ha_api.get_entity(entity_id).call_service("pause")
if button_type == "timer-finish":
apis.ha_api.get_entity(entity_id).call_service("finish")
@property
def current_card(self) -> Card:
"""Used to get the current card"""
return self._current_card

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',
@@ -213,6 +213,9 @@ def get_icon_ha(entity_id, overwrite=None, stateOverwrite=None):
entity = apis.ha_api.get_entity(entity_id)
state = entity.state if stateOverwrite is None else stateOverwrite
if entity_id in ["sensor.weather_forecast_daily", "sensor.weather_forecast_hourly"]:
ha_type = "weather"
if overwrite is not None:
if type(overwrite) is str:
return get_icon_char(overwrite)
@@ -263,8 +266,8 @@ def get_icon_ha(entity_id, overwrite=None, stateOverwrite=None):
# based on media_content_type
elif ha_type == "media_player":
result_icon = "speaker-off"
if "media_content_type" in entity.attributes:
if entity.attributes.media_content_type in media_content_type_mapping:
result_icon = media_content_type_mapping[entity.attributes.media_content_type]
if media_content_type := entity.attributes.get("media_content_type"):
if media_content_type in media_content_type_mapping:
result_icon = media_content_type_mapping[media_content_type]
return get_icon_char(result_icon)

View File

@@ -3,19 +3,37 @@ import apis
class LuiMqttListener(object):
def __init__(self, topic, controller, updater):
def __init__(self, use_api, topic, api_panel_name, api_device_id, controller, updater):
self._controller = controller
self._updater = updater
self._api_device_id = api_device_id
# Setup, mqtt subscription and callback
apis.mqtt_api.mqtt_subscribe(topic=topic)
apis.mqtt_api.listen_event(self.mqtt_event_callback, "MQTT_MESSAGE", topic=topic, namespace='mqtt')
if use_api:
apis.ha_api.listen_event(self.api_event_callback, "esphome.nspanel.data")
else:
apis.mqtt_api.mqtt_subscribe(topic=topic)
apis.mqtt_api.listen_event(self.mqtt_event_callback, "MQTT_MESSAGE", topic=topic, namespace='mqtt')
def api_event_callback(self, event_name, data, kwargs):
if not "device_id" in data:
return
if not data["device_id"] == self._api_device_id:
return
apis.ha_api.log(f'API callback for: {data}')
self.customrecv_event_callback(event_name, data, kwargs)
def mqtt_event_callback(self, event_name, data, kwargs):
apis.mqtt_api.log(f'MQTT callback for: {data}')
apis.ha_api.log(f'MQTT callback for: {data}')
# Parse Json Message from Tasmota and strip out message from nextion display
data = json.loads(data["payload"])
self.customrecv_event_callback(event_name, data, kwargs)
def customrecv_event_callback(self, event_name, data, kwargs):
if("nlui_driver_version" in data):
msg = data["nlui_driver_version"]
self._updater.set_tasmota_driver_version(int(msg))
@@ -23,7 +41,7 @@ class LuiMqttListener(object):
if("CustomRecv" not in data):
return
msg = data["CustomRecv"]
apis.mqtt_api.log(f"Received Message from Screen: {msg}")
apis.ha_api.log(f"Received Message from Screen: {msg}")
# Split message into parts seperated by ","
msg = msg.split(",")
# run action based on received command
@@ -59,17 +77,38 @@ class LuiMqttListener(object):
self._controller.detail_open(msg[2], msg[3])
class LuiMqttSender(object):
def __init__(self, api, topic_send):
def __init__(self, api, use_api, topic_send, api_panel_name, quiet):
self._ha_api = api
self._use_api = use_api
self._topic_send = topic_send
self._api_panel_name = api_panel_name
self._prev_msg = ""
self._quiet = quiet
def send_mqtt_msg(self, msg, topic=None, force=False):
if not force and self._prev_msg == msg:
self._ha_api.log(f"Dropping identical consecutive message: {msg}")
apis.ha_api.log(f"Dropping identical consecutive message: {msg}")
return
self._prev_msg = msg
if topic is None:
topic = self._topic_send
self._ha_api.log(f"Sending MQTT Message: {msg}")
apis.mqtt_api.mqtt_publish(topic, msg)
if self._quiet is False:
apis.ha_api.log(f"Sending Message: {msg}")
if self._use_api:
apis.ha_api.call_service(service="esphome/" + self._api_panel_name + "_nspanelui_api_call", command=2, data=msg)
else:
if topic is None:
topic = self._topic_send
apis.mqtt_api.mqtt_publish(topic, msg)
def request_berry_driver_version(self):
if self._use_api:
apis.ha_api.call_service(service="esphome/" + self._api_panel_name + "_nspanelui_api_call", command=1, data="x")
else:
apis.mqtt_api.mqtt_publish(self._topic_send.replace("CustomSend", "GetDriverVersion"), "x")
def flash_nextion(self, url):
if self._use_api:
apis.ha_api.call_service(service="esphome/" + self._api_panel_name + "_nspanelui_api_call", command=255, data=url)
else:
apis.mqtt_api.mqtt_publish(self._topic_send.replace("CustomSend", "FlashNextion"), url)

View File

@@ -1,4 +1,5 @@
import datetime
from dateutil import tz
import dateutil.parser as dp
import time
@@ -96,21 +97,28 @@ class LuiPagesGen(object):
if state == "sunny":
icon_color = 65504 #bright-yellow
if "rgb_color" in attr:
color = attr.rgb_color
if "brightness" in attr:
color = rgb_brightness(color, attr.brightness)
if color := attr.get("rgb_color"):
if brightness := attr.get("brightness"):
color = rgb_brightness(color, brightness)
icon_color = rgb_dec565(color)
elif "brightness" in attr:
color = rgb_brightness([253, 216, 53], attr.brightness)
elif brightness := attr.get("brightness"):
color = rgb_brightness([253, 216, 53], brightness)
icon_color = rgb_dec565(color)
return icon_color
def update_time(self, kwargs):
time = datetime.datetime.now().strftime(self._config.get("timeFormat"))
time = None
# get current time, with timezone if set
if self._config.get("timezone"):
timezone = tz.gettz(self._config.get("timezone"))
time = datetime.datetime.now(tz=timezone)
else:
time = datetime.datetime.now()
nice_time = time.strftime(self._config.get("timeFormat"))
addTemplate = self._config.get("timeAdditionalTemplate")
addTimeText = apis.ha_api.render_template(addTemplate)
self._send_mqtt_msg(f"time~{time}~{addTimeText}")
self._send_mqtt_msg(f"time~{nice_time}~{addTimeText}")
def update_date(self, kwargs):
global babel_spec
@@ -183,6 +191,9 @@ class LuiPagesGen(object):
else:
entityType = "delete"
if entityId in ["sensor.weather_forecast_daily", "sensor.weather_forecast_hourly"]:
entityType = "weather"
apis.ha_api.log(f"Generating item for {entityId} with type {entityType}", level="DEBUG")
status_entity = apis.ha_api.get_entity(item.status) if item.status and apis.ha_api.entity_exists(item.status) else None
@@ -212,7 +223,7 @@ class LuiPagesGen(object):
if status_entity:
icon_res = get_icon_ha(item.status, overwrite=icon)
icon_color = self.get_entity_color(status_entity, ha_type=item.status.split(".")[0], overwrite=colorOverride)
if item.status.startswith("sensor") and (cardType == "cardGrid" or cardType == "cardGrid2") and item.iconOverride is None:
if item.status.startswith("sensor") and cardType in ["cardGrid", "cardGrid1", "cardGrid2"] and item.iconOverride is None:
icon_res = status_entity.state[:4]
if icon_res[-1] == ".":
icon_res = icon_res[:-1]
@@ -236,7 +247,7 @@ class LuiPagesGen(object):
if status_entity:
icon_id = get_icon_ha(item.status, overwrite=icon)
icon_color = self.get_entity_color(status_entity, ha_type=item.status.split(".")[0], overwrite=colorOverride)
if item.status.startswith("sensor") and (cardType == "cardGrid" or cardType == "cardGrid2") and item.iconOverride is None:
if item.status.startswith("sensor") and cardType in ["cardGrid", "cardGrid1", "cardGrid2"] and item.iconOverride is None:
icon_id = status_entity.state[:4]
if icon_id[-1] == ".":
icon_id = icon_id[:-1]
@@ -264,7 +275,7 @@ class LuiPagesGen(object):
icon_up_status = "disable"
icon_stop_status = "disable"
icon_down_status = "disable"
bits = entity.attributes.supported_features
bits = entity.attributes.get('supported_features')
pos = entity.attributes.get("current_position")
if pos is None:
pos_status = entity.state
@@ -298,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]
@@ -309,7 +325,7 @@ class LuiPagesGen(object):
value = value + unit_of_measurement
if entityType == "binary_sensor":
value = get_translation(self._locale, f"backend.component.binary_sensor.state.{device_class}.{entity.state}")
if (cardType == "cardGrid" or cardType == "cardGrid2") and entityType == "sensor" and icon is None:
if cardType in ["cardGrid", "cardGrid1", "cardGrid2"] and entityType == "sensor" and icon is None:
icon_id = entity.state[:4]
if icon_id[-1] == ".":
icon_id = icon_id[:-1]
@@ -371,20 +387,50 @@ 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'])
global babel_spec
if babel_spec is not None:
dateformat = "E" if item.nameOverride is None else item.nameOverride
name = babel.dates.format_datetime(fdate.astimezone(), dateformat, locale=self._locale)
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
name = babel.dates.format_datetime(fdate.astimezone(), dateformat, locale=self._locale)
else:
dateformat = "%a" if item.nameOverride is None else item.nameOverride
name = fdate.astimezone().strftime(dateformat)
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:
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)
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
@@ -443,7 +489,7 @@ class LuiPagesGen(object):
command = f"entityUpd~Not found~{navigation}~{item}~check~220~apps.yaml~150~300~5~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Please~your~~"
else:
entity = apis.ha_api.get_entity(item)
heading = title if title != "unknown" else entity.attributes.friendly_name
heading = title if title != "unknown" else entity.attributes['friendly_name']
current_temp = get_attr_safe(entity, "current_temperature", "")
dest_temp = get_attr_safe(entity, "temperature", None)
dest_temp2 = ""
@@ -519,6 +565,50 @@ class LuiPagesGen(object):
command = f"entityUpd~{heading}~{navigation}~{item}~{current_temp} {temperature_unit}~{dest_temp}~{state_value}~{min_temp}~{max_temp}~{step_temp}{icon_res}~{currently_translation}~{state_translation}~{action_translation}~{temperature_unit_icon}~{dest_temp2}~{detailPage}"
self._send_mqtt_msg(command)
def generate_chart_page(self, navigation, title, entity):
item = entity.entityId
if not apis.ha_api.entity_exists(item):
command = f"entityUpd~Not found~{navigation}"
else:
entity = apis.ha_api.get_entity(item)
heading = title if title != "unknown" else entity.attributes['friendly_name']
# get data from homeassistant
data_raw = apis.ha_api.get_history(entity_id = item, days = 7)
data = [(d.get('last_updated', None),d.get('state', None)) for d in data_raw[0]]
data = dict(data)
# Parse timestamps and convert to datetime objects, excluding 'unavailable' values
time_temp_pairs = [(datetime.datetime.fromisoformat(timestamp), int(val)) for timestamp, val in data.items() if val != 'unavailable']
# Sort the data based on timestamps
time_temp_pairs.sort(key=lambda x: x[0])
# Calculate the time span
start_time = time_temp_pairs[0][0]
end_time = time_temp_pairs[-1][0]
time_span = end_time - start_time
# Calculate time intervals for evenly spaced data points
num_data_points = 24
time_intervals = [start_time + i * time_span / (num_data_points - 1) for i in range(num_data_points)]
# Find the closest data points for these time intervals
evenly_spaced_data = []
for interval in time_intervals:
closest_pair = min(time_temp_pairs, key=lambda x: abs(x[0] - interval))
time, val = closest_pair
val = int(val)
evenly_spaced_data.append((time, val))
datapoints = ""
for idx, (time, val) in enumerate(evenly_spaced_data):
datapoints += f"{val}~"
color = 65504
ydesc = "Akku [%]"
yscale = "25:50:75:100"
#datapoints = "19^22:00~17~12~8~7^2:00~6~6~5~5^6:00~5~15~19~12^10:00~17~24~18~12^14:00~13~13~13~15^18:00~25~28~26"
command = f"entityUpd~{heading}~{navigation}~{color}~{ydesc}~{yscale}~{datapoints}"
self._send_mqtt_msg(command)
def generate_media_page(self, navigation, title, entity, entities, mediaBtn):
entityId = entity.entityId
if entity.status is not None:
@@ -528,12 +618,12 @@ class LuiPagesGen(object):
else:
media_icon = self.generate_entities_item(entity, "cardGrid")
ha_entity = apis.ha_api.get_entity(entityId)
heading = title if title != "unknown" else ha_entity.attributes.friendly_name
heading = title if title != "unknown" else ha_entity.attributes['friendly_name']
title = get_attr_safe(ha_entity, "media_title", "")
author = get_attr_safe(ha_entity, "media_artist", "")
volume = int(get_attr_safe(ha_entity, "volume_level", 0)*100)
iconplaypause = get_icon_id("pause") if ha_entity.state == "playing" else get_icon_id("play")
bits = ha_entity.attributes.supported_features
bits = ha_entity.attributes['supported_features']
onoffbutton = "disable"
if bits & 0b10000000:
if ha_entity.state == "off":
@@ -583,7 +673,7 @@ class LuiPagesGen(object):
if not entity.attributes.get("code_arm_required", False):
numpad = "disable"
if overwrite_supported_modes is None:
bits = entity.attributes.supported_features
bits = entity.attributes['supported_features']
if bits & 0b000001:
supported_modes.append("arm_home")
if bits & 0b000010:
@@ -622,7 +712,7 @@ class LuiPagesGen(object):
#add button to show sensor state
add_btn = ""
if "open_sensors" in entity.attributes and entity.attributes.open_sensors is not None:
if entity.attributes.get("open_sensors") is not None:
add_btn=f"{get_icon_id('progress-alert')}~{rgb_dec565([243,179,0])}~"
if alarmBtn is not None and type(alarmBtn) is dict:
entity = alarmBtn.get("entity")
@@ -726,6 +816,8 @@ class LuiPagesGen(object):
if send_page_type:
if card.cardType == "cardGrid" and len(card.entities) > 6:
card.cardType = "cardGrid2"
if card.cardType == "cardGrid1":
card.cardType = "cardGrid"
self.page_type(card.cardType)
# send sleep timeout if there is one configured for the current card
@@ -735,7 +827,7 @@ class LuiPagesGen(object):
self._send_mqtt_msg(f'timeout~{self._config.get("sleepTimeout")}')
temp_unit = card.raw_config.get("temperatureUnit", "celsius")
if card.cardType in ["cardEntities", "cardGrid", "cardGrid2"]:
if card.cardType in ["cardEntities", "cardGrid", "cardGrid1","cardGrid2"]:
self.generate_entities_page(navigation, card.title, card.entities, card.cardType, temp_unit)
return
if card.cardType == "cardThermo":
@@ -770,6 +862,10 @@ class LuiPagesGen(object):
if card.cardType == "cardPower":
self.generate_power_page(navigation, card.title, card.entities)
return
if card.cardType == "cardChart":
self.generate_chart_page(navigation, card.title, card.entity)
return
def generate_light_detail_page(self, entity_id, is_open_detail=False):
if entity_id.startswith('uuid'):
@@ -783,25 +879,26 @@ class LuiPagesGen(object):
color_temp = "disable"
color = "disable"
effect_supported = "disable"
supported_color_modes = entity.attributes['supported_color_modes']
if "onoff" not in entity.attributes.supported_color_modes:
if "onoff" not in supported_color_modes:
brightness = 0
if entity.state == "on":
if "brightness" in entity.attributes:
if brightness := entity.attributes.get("brightness"):
# scale 0-255 brightness from ha to 0-100
brightness = int(scale(entity.attributes.brightness,(0,255),(0,100)))
brightness = int(scale(brightness, (0,255), (0,100)))
else:
brightness = "disable"
if "color_temp" in entity.attributes.supported_color_modes:
if "color_temp" in entity.attributes:
if "color_temp" in supported_color_modes:
if color_temp := entity.attributes.get("color_temp"):
# scale ha color temp range to 0-100
color_temp = int(scale(entity.attributes.color_temp,(entity.attributes.min_mireds, entity.attributes.max_mireds),(0,100)))
color_temp = int(scale(color_temp, (entity.attributes['min_mireds'], entity.attributes['max_mireds']),(0, 100)))
else:
color_temp = "unknown"
else:
color_temp = "disable"
list_color_modes = ["xy", "rgb", "rgbw", "hs"]
if any(item in list_color_modes for item in entity.attributes.supported_color_modes):
if any(item in list_color_modes for item in supported_color_modes):
color = "enable"
else:
color = "disable"
@@ -841,7 +938,7 @@ class LuiPagesGen(object):
iconTiltRightStatus = "disable"
tilt_pos = "disable"
bits = entity.attributes.supported_features
bits = entity.attributes['supported_features']
# position supported
if bits & 0b00001111:

View File

@@ -1,6 +1,5 @@
class Updater:
def __init__(self, log, send_mqtt_msg, topic_send, mode, desired_display_firmware_version, desired_display_firmware_model, desired_display_firmware_url, desired_tasmota_driver_version, desired_tasmota_driver_url):
def __init__(self, log, mqttsend, topic_send, mode, desired_display_firmware_version, desired_display_firmware_model, desired_display_firmware_url, desired_tasmota_driver_version, desired_tasmota_driver_url):
self._log = log
self.desired_display_firmware_version = desired_display_firmware_version
@@ -10,7 +9,7 @@ class Updater:
self.desired_tasmota_driver_url = desired_tasmota_driver_url
self.mode = mode
self._send_mqtt_msg = send_mqtt_msg
self.mqttsend = mqttsend
self.topic_send = topic_send
self.current_tasmota_driver_version = None
self.current_display_firmware_version = None
@@ -18,6 +17,7 @@ class Updater:
def set_tasmota_driver_version(self, driver_version):
self.current_tasmota_driver_version = driver_version
def set_current_display_firmware_version(self, panel_version, panel_model=None):
self.current_display_firmware_version = panel_version
self.current_display_model = panel_model
@@ -33,8 +33,8 @@ class Updater:
return False
def send_message_page(self, id, heading, msg, b1, b2):
self._send_mqtt_msg(f"pageType~popupNotify")
self._send_mqtt_msg(f"entityUpdateDetail~{id}~{heading}~65535~{b1}~65535~{b2}~65535~{msg}~65535~0")
self.mqttsend.send_mqtt_msg(f"pageType~popupNotify")
self.mqttsend.send_mqtt_msg(f"entityUpdateDetail~{id}~{heading}~65535~{b1}~65535~{b2}~65535~{msg}~65535~0")
def check_updates(self):
# return's true if a notification was send to the panel
@@ -80,12 +80,11 @@ class Updater:
def request_berry_driver_version(self):
self.current_tasmota_driver_version = None
topic = self.topic_send.replace("CustomSend", "GetDriverVersion")
self._send_mqtt_msg("X", topic=topic)
self.mqttsend.request_berry_driver_version()
def update_berry_driver(self):
topic = self.topic_send.replace("CustomSend", "Backlog")
self._send_mqtt_msg(f"UpdateDriverVersion {self.desired_tasmota_driver_url}; Restart 1", topic=topic)
self.mqttsend.send_mqtt_msg(f"UpdateDriverVersion {self.desired_tasmota_driver_url}; Restart 1", topic=topic)
def update_panel_driver(self):
topic = self.topic_send.replace("CustomSend", "FlashNextion")
self._send_mqtt_msg(self.desired_display_firmware_url, topic=topic)
self.mqttsend.flash_nextion(self.desired_display_firmware_url)

View File

@@ -1,4 +1,4 @@
import hassapi as hass
import adbase as ad
from luibackend.config import LuiBackendConfig
from luibackend.controller import LuiController
@@ -6,29 +6,35 @@ from luibackend.mqtt import LuiMqttListener, LuiMqttSender
from luibackend.updater import Updater
import apis
import json
from typing import Literal
class NsPanelLovelaceUIManager(hass.Hass):
class NsPanelLovelaceUIManager(ad.ADBase):
def initialize(self):
self.log('Starting')
apis.ha_api = self
self.adapi = self.get_ad_api()
self.adapi.log('Starting')
apis.ad_api = self.adapi
apis.ha_api = self.get_plugin_api("HASS")
apis.mqtt_api = self.get_plugin_api("MQTT")
cfg = self._cfg = LuiBackendConfig(self, self.args["config"])
cfg = self._cfg = LuiBackendConfig(apis.ha_api, self.args["config"])
use_api = cfg.get("use_api") == True
topic_send = cfg.get("panelSendTopic")
topic_recv = cfg.get("panelRecvTopic")
api_panel_name = cfg.get("panelName")
api_device_id = cfg.get("panelDeviceId")
quiet = cfg.get("quiet")
mqttsend = LuiMqttSender(self, topic_send)
mqttsender = self._mqttsender = LuiMqttSender(apis.ha_api, use_api, topic_send, api_panel_name, quiet)
# Request Tasmota Driver Version
apis.mqtt_api.mqtt_publish(topic_send.replace("CustomSend", "GetDriverVersion"), "x")
controller = LuiController(cfg, mqttsend.send_mqtt_msg)
self._controller = LuiController(cfg, mqttsender.send_mqtt_msg)
desired_tasmota_driver_version = 8
desired_display_firmware_version = 53
version = "v4.3.1"
version = "v4.7.3"
model = cfg.get("model")
if model == "us-l":
@@ -39,11 +45,36 @@ class NsPanelLovelaceUIManager(hass.Hass):
desired_display_firmware_url = cfg._config.get("displayURL-EU", f"http://nspanel.pky.eu/lovelace-ui/github/nspanel-{version}.tft")
desired_tasmota_driver_url = cfg._config.get("berryURL", "https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be")
mode = cfg.get("updateMode")
updater = Updater(self.log, mqttsend.send_mqtt_msg, topic_send, mode, desired_display_firmware_version, model, desired_display_firmware_url, desired_tasmota_driver_version, desired_tasmota_driver_url)
updater = Updater(self.adapi.log, mqttsender, topic_send, mode, desired_display_firmware_version, model, desired_display_firmware_url, desired_tasmota_driver_version, desired_tasmota_driver_url)
LuiMqttListener(topic_recv, controller, updater)
# Request Tasmota Driver Version
updater.request_berry_driver_version()
self.log(f'Started ({version})')
LuiMqttListener(use_api, topic_recv, api_panel_name, api_device_id, self._controller, updater)
self.adapi.log(f'Started ({version})')
#
# helpers
#
def show_card(self, card_key: str) -> None:
"""Used to show card on panel"""
msg = json.dumps({"CustomRecv":f"event,buttonPress2,navigate.{card_key},button"})
topic = self._cfg.get("panelRecvTopic")
self._mqttsender.send_mqtt_msg(msg, topic)
def navigate(self, direction: Literal['up', 'prev', 'next']) -> None:
"""Used to navigate different directions on the panel"""
msg = json.dumps({"CustomRecv":f"event,buttonPress2,nav{direction.title()},button"})
topic = self._cfg.get("panelRecvTopic")
self._mqttsender.send_mqtt_msg(msg, topic)
@property
def current_card(self) -> str:
"""Used to get the panel's current card"""
return self._controller.current_card.key

View File

@@ -68,6 +68,7 @@ key | optional | type | default | description
`dateAdditionalTemplate` | True | string | `""` | Addional Text dispayed after Date, can contain a Homeassistant Template Example `" - {{ states('sun.sun') }}"`
`timeAdditionalTemplate` | True | string | `""` | Addional Text dispayed below Time, can contain a Homeassistant Template
`dateFormat` | True | string | `%A, %d. %B %Y` | date format used if babel is not installed
`timezone` | True | string | "" | Timezone for the time on the panel: `Europe/Berlin` - See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for a list of TZ Identifiers (supported from upcoming version v4.4)
`defaultBackgroundColor` | True | string | ha-dark | backgroud color of all cards, valid values: `black`, `ha-dark`
`cards` | False | complex | | configuration for cards that are displayed on panel; see docs for cards
`screensaver` | True | complex | | configuration for screensaver; see docs for screensaver

View File

@@ -9,20 +9,30 @@ Please leave the Full Topic as it is in default configuration (and on the screen
Change the topic to something unique for your panel, you will need this topic later in the configuration of your panel in appdaemon / apps.yaml
# Note for Appdeamon Addon Version >= 15
The configuration has been moved out of the config folder from homeassistant. This is how you can access it with the VSCode Addon.
![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/29555657/ddf75cac-fca1-48e7-9e84-646e7a80d38a)
![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/29555657/6b19180a-b637-4c22-9ec0-c7a4fd304b27)
# Configure MQTT Connection on AppDaemon
For the app to work you need a working MQTT Configuration in AppDaemon. Please add the configuration of your mqtt server, user and password to your existing `appdaemon.yaml` Restart your AppDaemon Container (not HomeAssistant) after adding the MQTT Configuration.
You will find this file in the following location: `config/appdaemon/appdeamon.yaml`
You will find this file in the following location: `/addon_configs/a0d7b954_appdaemon/appdeamon.yaml`
```yaml
---
secrets: /config/secrets.yaml
secrets: /homeassistant/secrets.yaml
appdaemon:
latitude: 52.0
longitude: 4.0
elevation: 2
time_zone: Europe/Berlin
app_dir: /homeassistant/appdaemon/apps/ # !!! This is really important for AppDaemon HA Addon >= 15
plugins:
HASS:
type: hass
@@ -47,6 +57,8 @@ hadashboard:
Please add the following minimal configuration to your apps.yaml, which is located in `config/appdaemon/apps/apps.yaml`
Note: You need to move your `apps.yaml` to this location if it isn't there.
```yaml
---
nspanel-1:

View File

@@ -4,7 +4,12 @@
You have most likely an error in your MQTT configuration somewhere. To find the error follow theese steps:
1. Check your appdaemon log. (Settings > Add-ons > AppDaemon > Log)
1. Check the location of your apps.yaml
With the AppDaemon Addon >= 15 the config dir has been moved.
It's required to configure the location back to the old one, this is done by the `app_dir` line in your `appdaemon.yaml`.
This also requires you to move your apps.yaml to this location. Please make sure your apps.yaml is at `/config/appdaemon/apps/apps.yaml` and move it otherwise.
2. Check your appdaemon log. (Settings > Add-ons > AppDaemon > Log)
You should see something like this:
`INFO MQTT: MQTT Plugin initialization complete`
If you are seeing Messages like this:
@@ -12,14 +17,14 @@ If you are seeing Messages like this:
Your appdaemon mqtt config is wrong, check your appdaemon.yaml.
The log of your mqtt broker might give you additional information.
2. Check MQTT Configuration of Tasmota.
3. Check MQTT Configuration of Tasmota.
Your Tasmota device needs to connect sucessfully to your MQTT Broker, if you are in the waiting for content screen, the panel will send periodic messages to it's mqtt topic. Note that there is a minimum password length of 5 chars for the MQTT Connection in Tasmota.
3. Make sure that you are using the same topic in apps.yaml and in your tasmota configuration.
4. Make sure that you are using the same topic in apps.yaml and in your tasmota configuration.
The examples in the docs ([MQTT Config](https://docs.nspanel.pky.eu/configure_mqtt/)) are an valid example (tasmota<>apps.yaml).
Please don't modify the Full Topic in your Tasmota Config, unless you know the implications, changing the Full Topic will result in diffent Send and Receive Channels, that have to be correct in your apps.yaml.
4. If you are still in the waiting for content screen please share the following items, with the Waiting for Content Issue type on the [Github Issues Page](https://github.com/joBr99/nspanel-lovelace-ui/issues/new/choose)
5. If you are still in the waiting for content screen please share the following items, with the Waiting for Content Issue type on the [Github Issues Page](https://github.com/joBr99/nspanel-lovelace-ui/issues/new/choose)
- a screenshot of your tasmota mqtt configration (please censor your mqtt password)
- your appdaemon.yaml (please censor your mqtt password)

View File

@@ -47,7 +47,6 @@ services:
```
</details>
### Add babel package to AppDaemon Container (Optional)
For localisation (date in your local language) you need to add the python package babel to your AppDaemon Installation.
@@ -94,3 +93,4 @@ Now, to install NSPanel Lovelace UI Backend with HACS, follow these steps:
6. A confirmation panel will appear, click on `Download`, and wait for HACS to
proceed with the download
7. The Backend Application is now installed, and HACS will inform you when updates are available

1732
ioBroker/.iobroker/types/javascript.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,74 +0,0 @@
const idAbfalliCal = 'ical.1'; // iCal Instanz zum Abfallkalender
const idZeichenLoeschen = 14; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
const idRestmuellName ='Hausmüll'; // Schwarze Tonne
const idWertstoffName = 'Gelber Sack'; // Gelbe Tonne / Sack
const idPappePapierName = 'Papier'; // Blaue Tonne
const idBioabfaelleName = 'Biomüll'; // Braune Tonne
var i, Muell_JSON, Event2, Color = 0;
for (i = 1; i <= 4; i++) {
if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
log(i + '.date nicht vorhanden, wurde erstellt');
createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
{
name: parseFloat(i) + '.date',
role: 'state',
type: 'string',
read: true,
write: true,
def: ''
});
};
if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
log(i + '.event nicht vorhanden, wurde erstellt');
createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
{
name: parseFloat(i) + '.event',
role: 'state',
type: 'string',
read: true,
write: true,
def: ''
});
};
if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
log(i + '.color nicht vorhanden, wurde erstellt');
createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 0,
{
name: parseFloat(i) + '.color',
role: 'state',
type: 'number',
read: true,
write: true,
def: 0
});
};
}
function subsequenceFromStartLast(sequence, at1) {
var start = at1;
var end = sequence.length;
return sequence.slice(start, end);
}
on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {
for (i = 0; i <= 3; i++) {
Muell_JSON = getState(idAbfalliCal + '.data.table').val;
setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
if (Event2 == idRestmuellName) {
Color = 33840;
} else if (Event2 == idBioabfaelleName) {
Color = 2016;
} else if (Event2 == idPappePapierName) {
Color = 31;
} else if (Event2 == idWertstoffName) {
Color = 65504;
}
setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
}
});

View File

@@ -0,0 +1,224 @@
/*
* @author 2023 @tt-tom
*
* Version 5.1.1
*
* Das Script erstellt die Datenpunkte und Alias für den Abfallkalender im Sonoff NSPanel
* Es wird der iCal Adapter benötigt und eine URL mit Terminen vom Entsorger bzw. eine .ics-Datei mit den Terminen.
* Das Script triggert auf dem bereitgestellten JSON im iCal adapter und füllt die 0_userdata.0 Datenpunkte
* Weitere Informationen findest du in der FAQ auf Github https://github.com/joBr99/nspanel-lovelace-ui/wiki
*
* changelog
* - 06.12.2023 - v5.0.2 add custom name for trashtype
* - 06.12.2023 - v5.1.0 Refactoring
* - 22.01.2024 - v5.1.1 Add tow Events more
*
*
*/
const idTrashData: string = 'ical.0.data.table'; // Datenpunkt mit Daten im JSON Format
const idUserdataAbfallVerzeichnis: string = '0_userdata.0.Abfallkalender'; // Name des Datenpunktverzeichnis unter 0_userdata.0 -> Strandard = 0_userdata.0.Abfallkalender
const idAliasPanelVerzeichnis: string = 'alias.0.NSPanel.allgemein'; //Name PanelVerzeichnis unter alias.0. Standard = alias.0.NSPanel.1
const idAliasAbfallVerzeichnis: string = 'Abfall'; //Name Verzeichnis unterhalb der idPanelverzeichnis Standard = Abfall
const anzahlZeichenLoeschen: number = 14; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
const jsonEventName1: string = 'Hausmüll'; // Vergleichstring für Schwarze Tonne
const customEventName1: string = ''; // benutzerdefinierter Text für schwarze Tonne
const jsonEventName2: string = 'Gelber Sack'; // Vergleichstring für Gelbe Tonne / Sack
const customEventName2: string = ''; // benutzerdefinierter Text für gelbe Tonne
const jsonEventName3: string = 'Papier'; // Vergleichstring für Blaue Tonne
const customEventName3: string = ''; // benutzerdefinierter Text für blaue Tonne
const jsonEventName4: string = 'Biomüll'; // Vergleichstring für Braune Tonne
const customEventName4: string = ''; // benutzerdefinierter Text für braune Tonne
const jsonEventName5: string = 'Treppe'; // Vergleichstring für Event 5
const customEventName5: string = 'Besen schwingen'; // benutzerdefinierter Text für Event 5
const jsonEventName6: string = ''; // Vergleichstring für Event 6
const customEventName6: string = ''; // benutzerdefinierter Text für Event 6
const Debug: boolean = false;
// ------------------------- Trigger zum füllen der 0_userdata Datenpunkte aus dem json vom ical Adapter -------------------------------
// Trigger auf JSON Datenpunkt
on({ id: idTrashData, change: 'ne' }, async function () {
JSON_auswerten();
});
// ------------------------------------- Ende Trigger ------------------------------------
// ------------------------------------- Funktion JSON auswerten und DP füllen -------------------------------
async function JSON_auswerten() {
try {
let trashJSON: any;
let instanzName: any;
let eventName: string;
let eventDatum: string;
let eventStartdatum: string;
let farbNummer: number = 0;
let farbString: string;
let abfallNummer: number = 1;
trashJSON = getState(idTrashData).val;
instanzName = idTrashData.split('.');
if (Debug) log('Rohdaten von Instanz ' + instanzName[0] + ': ' + JSON.stringify(trashJSON), 'info')
if (Debug) log('Anzahl Trash - Daten: ' + trashJSON.length, 'info');
for (let i = 0; i < trashJSON.length; i++) {
if (abfallNummer === 7) {
if (Debug) log('Alle Abfall-Datenpunkte gefüllt', 'warn');
break;
}
log('Daten vom ical Adapter werden ausgewertet', 'info');
eventName = getAttr(trashJSON, (String(i) + '.event')).slice(anzahlZeichenLoeschen, getAttr(trashJSON, (String(i) + '.event')).length);
// Leerzeichen vorne und hinten löschen
eventName = eventName.trimEnd();
eventName = eventName.trimStart();
eventDatum = getAttr(trashJSON, (String(i) + '.date'));
eventStartdatum = getAttr(trashJSON, (String(i) + '._date'));
let d: Date = currentDate();
let d1: Date = new Date(eventStartdatum);
if (Debug) log('--------- Nächster Termin wird geprüft ---------', 'info');
//if (Debug) log(d + ' ' + d1, 'info');
if (Debug) log('Startdatum UTC: ' + eventStartdatum, 'info');
if (Debug) log('Datum: ' + eventDatum, 'info');
if (Debug) log('Event: ' + eventName, 'info');
if (Debug) log('Kontrolle Leerzeichen %' + eventName + '%', 'info');
if (d.getTime() <= d1.getTime()) {
if ((eventName == jsonEventName1) || (eventName == jsonEventName2) || (eventName == jsonEventName3) || (eventName == jsonEventName4) || (eventName == jsonEventName5) || (eventName == jsonEventName6)) {
switch (eventName) {
case jsonEventName1:
farbNummer = 33840;
if (customEventName1 != '') {
eventName = customEventName1;
if (Debug) log('Event customName: ' + eventName, 'info');
};
break;
case jsonEventName2:
farbNummer = 65504;
if (customEventName2 != '') {
eventName = customEventName2;
if (Debug) log('Event customName: ' + eventName, 'info');
};
break;
case jsonEventName3:
farbNummer = 31;
if (customEventName3 != '') {
eventName = customEventName3
if (Debug) log('Event customName: ' + eventName, 'info');
};
break;
case jsonEventName4:
farbNummer = 2016;
if (customEventName4 != '') {
eventName = customEventName4;
if (Debug) log('Event customName: ' + eventName, 'info');
};
break;
case jsonEventName5:
farbNummer = 2016;
if (customEventName5 != '') {
eventName = customEventName5;
if (Debug) log('Event customName: ' + eventName, 'info');
};
break;
case jsonEventName6:
farbNummer = 2016;
if (customEventName6 != '') {
eventName = customEventName6
if (Debug) log('Event customName: ' + eventName, 'info');
};
break;
}
//if (farbString != undefined) farbNummer = rgb_dec565(hex_rgb(farbString));
setState(idUserdataAbfallVerzeichnis + '.' + String(abfallNummer) + '.date', eventDatum);
setState(idUserdataAbfallVerzeichnis + '.' + String(abfallNummer) + '.event', eventName);
setState(idUserdataAbfallVerzeichnis + '.' + String(abfallNummer) + '.color', farbNummer);
//if (Debug) log('farbString: ' + farbString + ' farbNummer: ' + farbNummer, 'info');
if (Debug) log('Abfallnummer: ' + abfallNummer, 'info');
abfallNummer += 1
} else {
if (Debug) log('Kein Abfalltermin => Event passt mit keinem Abfallnamen überein.', 'warn');
}
} else {
if (Debug) log('Termin liegt vor dem heutigen Tag', 'warn');
}
}
} catch (err) {
log('error at subscrption: ' + err.message, 'warn');
}
};
// ------------------------------------- Ende Funktion JSON ------------------------------
// ------------------------------------- Funktion zur Prüfung und Erstellung der Datenpunkte in 0_userdata.0 und alias.0 -----------------------
async function Init_Datenpunkte() {
try {
for (let i = 1; i <= 6; i++) {
if (existsObject(idUserdataAbfallVerzeichnis + '.' + String(i)) == false) {
log('Datenpunkt ' + idUserdataAbfallVerzeichnis + '.' + String(i) + ' werden angelegt', 'info')
await createStateAsync(idUserdataAbfallVerzeichnis + '.' + String(i) + '.date', '', { type: 'string' });
await createStateAsync(idUserdataAbfallVerzeichnis + '.' + String(i) + '.event', '', { type: 'string' });
await createStateAsync(idUserdataAbfallVerzeichnis + '.' + String(i) + '.color', 0, { type: 'number' });
setObject(idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis, { type: 'device', common: { name: { de: 'Abfall', en: 'Trash' } }, native: {} });
setObject(idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + String(i), { type: 'channel', common: { role: 'warning', name: { de: 'Ereignis ' + String(i), en: 'Event' + String(i) } }, native: {} });
await createAliasAsync(idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + String(i) + '.TITLE', idUserdataAbfallVerzeichnis + '.' + String(i) + '.event', true, <iobJS.StateCommon>{ type: 'string', role: 'weather.title.short', name: { de: 'TITEL', en: 'TITLE' } });
await createAliasAsync(idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + String(i) + '.LEVEL', idUserdataAbfallVerzeichnis + '.' + String(i) + '.color', true, <iobJS.StateCommon>{ type: 'number', role: 'value.warning', name: { de: 'LEVEL', en: 'LEVEL' } });
await createAliasAsync(idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + String(i) + '.INFO', idUserdataAbfallVerzeichnis + '.' + String(i) + '.date', true, <iobJS.StateCommon>{ type: 'string', role: 'weather.title', name: { de: 'INFO', en: 'INFO' } });
log('Fertig', 'info')
} else {
log('Datenpunkt ' + idUserdataAbfallVerzeichnis + '.' + String(i) + ' vorhanden', 'info')
}
}
log('Startabfrage der Daten', 'info');
JSON_auswerten();
} catch (err) {
log('error at function Init_Datenpunkte: ' + err.message, 'warn');
}
}
Init_Datenpunkte();
// --------------------------- Ende Funktion Datenpunkte ------------------------------------------------
// --------------------------- Zusatzfuktionen -------------------------------------------------------------
function currentDate() {
let d: Date = new Date();
return new Date(d.getFullYear(), d.getMonth(), d.getDate());
}
function rgb_dec565(rgb: RGB): number {
//return ((Math.floor(rgb.red / 255 * 31) << 11) | (Math.floor(rgb.green / 255 * 63) << 5) | (Math.floor(rgb.blue / 255 * 31)));
return ((rgb.red >> 3) << 11) | ((rgb.green >> 2)) << 5 | ((rgb.blue) >> 3);
}
function hex_rgb(colorhex: string): RGB {
let r = parseInt(colorhex.substring(1, 3), 16);
let g = parseInt(colorhex.substring(3, 5), 16);
let b = parseInt(colorhex.substring(5, 7), 16);
return { red: r, green: g, blue: b };
}
type RGB = {
red: number,
green: number,
blue: number
};
// -------------------- Ende Zudatzfunktionen --------------------------------------------------------------------------

View File

@@ -971,12 +971,37 @@
</value>
</block>
</value>
<value name="VALUE">
<shadow type="logic_boolean" id="I4PsJQb;6k+70^g*Xt/}">
<field name="BOOL">TRUE</field>
</shadow>
<block type="math_random_float" id="C5/h)jq=yPM?,9J=(w65"></block>
</value>
<value name="VALUE">
<shadow type="logic_boolean" id="I4PsJQb;6k+70^g*Xt/}">
<field name="BOOL">TRUE</field>
</shadow>
<block type="text_join" id="XdhGC7#MxGw|KhC1x#MY">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text" id="[(_1;{xE-xfzeB4]$uk;">
<field name="TEXT">ID</field>
</block>
</value>
<value name="ADD1">
<block type="convert_tostring" id="g{jZOA*6Clhc5`9::h.S">
<value name="VALUE">
<block type="math_random_int" id="SXG?j1]Jza!2fg[(cl!i">
<value name="FROM">
<shadow type="math_number" id="#/-;$~`{=}8wYY$kbvA9">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number" id="0x8~a;asHsiJ2Its%!VJ">
<field name="NUM">100</field>
</shadow>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="DELAY_MS">
<shadow type="math_number" id="+6#n%fO}e4h%;FhKPV0c">
<field name="NUM">0</field>

View File

@@ -0,0 +1,44 @@
const dp_userdata: string = '0_userdata.0.NSPanel';
const dp_alias: string = 'alias.0.NSPanel';
// dpAction wird wenn der Wecker gestellt wird auf false geschaltet
// dpAction wird wenn die Weckzeit erreicht ist auf true geschaltet
// Der nachfolgende Datenpunkt muss manuell erstellt werden...
const dpAction: string = '0_userdata.0.example_boolean';
const Debug = true;
let time: number;
let scheduleAlarmTime: any = null;
on({ id: dp_userdata + '.AlarmTime.State', change: 'ne' }, async (obj) => {
time = getState(dp_userdata + '.AlarmTime.Time').val;
if (Debug) log('Uhrzeit: ' + time, 'info');
if ('paused' == obj.state.val) {
(function () { if (scheduleAlarmTime) {
clearSchedule(scheduleAlarmTime);
scheduleAlarmTime = null;
}
});
} else if ('active' == obj.state.val) {
let stunde: number = Math.floor(time / 60);
let minute: number = time % 60;
if (Debug) log('Weckzeit: ' + ('0' + stunde).slice(-2) + ':' + ('0' + minute).slice(-2), 'info');
scheduleAlarmTime = schedule(minute + ' ' + stunde + ' * * *', async () => {
await setStateAsync(dpAction, <iobJS.State>{ val: true, ack: true });
await setStateAsync(dp_userdata + '.AlarmTime.State', <iobJS.State>{ val: 'paused', ack: true });
});
}
});
async function Init_Datenpunkte() {
if (existsState(dp_alias + '.AlarmTime.ACTUAL') == false) {
await createStateAsync(dp_userdata + '.AlarmTime.Time', '0', { type: 'number' });
await createStateAsync(dp_userdata + '.AlarmTime.State', 'paused', { type: 'string' });
setObject(dp_alias + '.AlarmTime', { type: 'channel', common: { role: 'value.alarmtime', name: 'Alarmtime' }, native: {} });
await createAliasAsync(dp_alias + '.AlarmTime.ACTUAL', dp_userdata + '.AlarmTime.Time', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' });
await createAliasAsync(dp_alias + '.AlarmTime.STATE', dp_userdata + '.AlarmTime.State', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'STATE' });
log("<PageItem>{id: '"+ dp_alias + ".AlarmTime', name: 'Wecker', onColor: Red, offColor: Green, useColor: true}", 'info');
}
}
Init_Datenpunkte();

View File

@@ -0,0 +1,51 @@
const sourceDP = 'alias.0.Wohnzimmer.Heizung.ACTUAL';
const targetDP = '0_userdata.0.Test.chartTest';
const rangeHours = 24;
const maxXAchsisTicks = 6;
const historyInstance = 'history.0';
const factor = 1; // Bei zu großen Werten und negativen Anzeigen im Panel um das 10fache erhöhen
on({id: sourceDP, change: "any"}, async function (obj) {
sendTo(historyInstance, 'getHistory', {
id: sourceDP,
options: {
start: Date.now() - (60 * 60 * 1000 * rangeHours),
end: Date.now(),
count: rangeHours,
limit: rangeHours,
aggregate: 'average'
}
}, function (result) {
var cardChartString = "";
var stepXAchsis = rangeHours / maxXAchsisTicks;
for (var i = 0; i < rangeHours; i++){
var deltaHour = rangeHours - i;
var targetDate = new Date(Date.now() - (deltaHour * 60 * 60 * 1000));
//Check history items for requested hours
for (var j = 0, targetValue = 0; j < result.result.length; j++) {
var valueDate = new Date(result.result[j].ts);
var value = Math.round(result.result[j].val / factor * 10);
if (valueDate > targetDate){
if ((targetDate.getHours() % stepXAchsis) == 0){
cardChartString += targetValue + '^' + targetDate.getHours() + ':00' + '~';
} else {
cardChartString += targetValue + '~';
}
break;
} else {
targetValue = value;
}
}
}
cardChartString = cardChartString.substring(0,cardChartString.length-1);
if (existsState(targetDP) == false ) {
createState(targetDP, cardChartString, true, { type: 'string' });
} else {
setState(targetDP, cardChartString, true);
}
});
});

View File

@@ -0,0 +1,78 @@
const sourceDP = 'alias.0.Wohnzimmer.Heizung.ACTUAL';
const targetDP = '0_userdata.0.Test.chartTest';
const numberOfHoursAgo = 24; // Period of time in hours which shall be visualized
const xAxisTicksEveryM = 60; // Time after x axis gets a tick in minutes
const xAxisLabelEveryM = 240; // Time after x axis is labeled in minutes
const historyInstance = 'history.0';
const Debug = false;
const maxX = 1420;
const limitMeasurements = 35;
createState(targetDP, "", {
name: 'SensorGrid',
desc: 'Sensor Values [~<time>:<value>]*',
type: 'string',
role: 'value',
});
on({id: sourceDP, change: "any"}, async function (obj) {
sendTo(historyInstance, 'getHistory', {
id: sourceDP,
options: {
start: Date.now() - (numberOfHoursAgo * 60 * 60 * 1000 ), //Time in ms: hours * 60m * 60s * 1000ms
end: Date.now(),
count: limitMeasurements,
limit: limitMeasurements,
aggregate: 'average'
}
}, function (result) {
var ticksAndLabels = ""
var coordinates = "";
var cardLChartString = "";
let ticksAndLabelsList = []
var date = new Date();
date.setMinutes(0, 0, 0);
var ts = Math.round(date.getTime() / 1000);
var tsYesterday = ts - (numberOfHoursAgo * 3600);
for (var x = tsYesterday, i = 0; x < ts; x += (xAxisTicksEveryM * 60), i += xAxisTicksEveryM)
{
if (i % xAxisLabelEveryM)
{
ticksAndLabelsList.push(i);
} else
{
var currentDate = new Date(x * 1000);
// Hours part from the timestamp
var hours = "0" + currentDate.getHours();
// Minutes part from the timestamp
var minutes = "0" + currentDate.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + currentDate.getSeconds();
var formattedTime = hours.slice(-2) + ':' + minutes.slice(-2);
ticksAndLabelsList.push(String(i) + "^" + formattedTime);
}
}
ticksAndLabels = ticksAndLabelsList.join("+");
let list = [];
let offSetTime = Math.round(result.result[0].ts / 1000);
let counter = Math.round((result.result[result.result.length -1 ].ts / 1000 - offSetTime) / maxX);
for (var i = 0; i < result.result.length; i++)
{
var time = Math.round(((result.result[i].ts / 1000) - offSetTime) / counter);
var value = Math.round(result.result[i].val * 10);
if ((value != null) && (value != 0)){
list.push(time + ":" + value)
}
}
coordinates = list.join("~");
cardLChartString = ticksAndLabels + '~' + coordinates
setState(targetDP, cardLChartString, true);
if (Debug) console.log(cardLChartString);
});
});

Some files were not shown because too many files have changed in this diff Show More