Compare commits

...

50 Commits

Author SHA1 Message Date
joBr99
d6a403921a increase buffer size of popup pages (add nextion2text) 2022-06-17 21:31:55 +00:00
Johannes
6229ca73df increase buffer size of popup pages 2022-06-17 23:31:19 +02:00
Johannes
c70932ebd6 change order 2022-06-17 18:53:17 +02:00
Johannes
ed206adc56 add pw hit 2022-06-17 18:42:53 +02:00
Johannes
e91a6e660d fix list 2022-06-17 18:41:11 +02:00
Johannes
49b60ec6e9 fix list 2022-06-17 18:39:23 +02:00
Johannes
b98a3574f2 fix list 2022-06-17 18:38:29 +02:00
Johannes
696a6f92e2 fix list 2022-06-17 18:37:21 +02:00
Johannes
3170f5fd6c change order 2022-06-17 18:36:01 +02:00
Johannes
3e68d167df Merge branch 'main' of https://github.com/joBr99/nspanel-lovelace-ui 2022-06-17 18:34:12 +02:00
Johannes
091386d812 faq 2022-06-17 18:34:05 +02:00
Johannes
17d33da5fd bump to 38/3.1.0 2022-06-17 18:03:28 +02:00
joBr99
6d8c2be95b sync (add nextion2text) 2022-06-17 16:00:10 +00:00
Johannes
81db0b5ae0 sync 2022-06-17 17:59:36 +02:00
joBr99
4da151c20f fixed #220 (add nextion2text) 2022-06-17 15:47:23 +00:00
Johannes
792aa6c3d2 fixed #220 2022-06-17 17:46:54 +02:00
Johannes
beebb0afef Merge branch 'main' of https://github.com/joBr99/nspanel-lovelace-ui 2022-06-17 17:26:26 +02:00
Johannes
5e513fbab6 fix timeAddTemplate in combination witht theme config 2022-06-17 17:26:00 +02:00
Johannes
e49f18b125 Update pages.py 2022-06-16 23:16:19 +02:00
Armilar
689f9e8bf8 Bugfix by Grrzzz - Subpages - Issue #286 2022-06-16 22:43:28 +02:00
Armilar
4646781d93 Bugfix by Grrzzz - Subpages - Issue #286 2022-06-16 22:42:06 +02:00
Armilar
c0521bac9e Use localString for time, date and multilingualism
- Date/time in the screensaver based on localString (de-DE/en-EN/nl-NL/etc.)
- Multilingual - config.locale (en-EN, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU)
2022-06-16 22:18:37 +02:00
Johannes
4e57b15206 Update pages.py 2022-06-16 19:53:48 +02:00
Armilar
3d927393a4 Language File
en-EN, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU
2022-06-16 19:43:11 +02:00
Johannes
41b48a0237 add issue config 2022-06-16 19:18:05 +02:00
Johannes
6b9e8d6b92 Merge branch 'main' of https://github.com/joBr99/nspanel-lovelace-ui 2022-06-16 19:04:21 +02:00
Johannes
bb07f36327 check type for every button press call 2022-06-16 19:04:14 +02:00
joBr99
5c50bad008 extended length of bText to 20 (add nextion2text) 2022-06-16 16:54:49 +00:00
Johannes
229002088f extended length of bText to 20 2022-06-16 18:54:18 +02:00
Johannes
ae33905463 change link to normal version 2022-06-15 21:49:08 +02:00
joBr99
035a4b5129 extended cardEntities value char limit to 15 (add nextion2text) 2022-06-15 18:19:11 +00:00
Johannes
0be532bbce extended cardEntities value char limit to 15 2022-06-15 20:18:42 +02:00
Johannes
a2a42add20 add color overwrite to statusIcons #233 2022-06-15 17:24:00 +02:00
Johannes
2b252d4327 additional fix for #284 2022-06-15 16:25:31 +02:00
Armilar
e84ce9cc1b V3.0.0 + Bugfix: Sub-Page closes on Button Action (Fix by Grrzzz) 2022-06-14 22:45:37 +02:00
Armilar
69a5dd323d V3.0.0 + Bugfix: Sub-Page closes on Button Action (Fix by Grrzzz) 2022-06-14 22:42:08 +02:00
Armilar
c7346ed02c Bugfix - Sub-Page closes on Button Action - (Many thanks to Grrzzz) 2022-06-14 22:37:22 +02:00
Johannes
57c5449dfc improve error handling navigation 2022-06-14 22:13:41 +02:00
Armilar
bf2023aa3e Bugfix - Sub-Page closes on Button Action - (Many thanks to Grrzzz) 2022-06-14 21:53:56 +02:00
Johannes
754f0dd4a7 Update card-media.md 2022-06-14 21:24:38 +02:00
Johannes
5bf810ad5a change char cap for sensors on cardGird 2022-06-14 20:52:50 +02:00
Johannes
a9576adf2f Merge branch 'main' of https://github.com/joBr99/nspanel-lovelace-ui 2022-06-14 20:20:51 +02:00
Johannes
470a3d5d9e fixed docs 2022-06-14 20:20:36 +02:00
Johannes
780f61d1c7 fixes #282 2022-06-13 21:21:09 +02:00
Johannes
7cbbbc5b36 fixed typo 2022-06-13 19:48:43 +02:00
Johannes
e01b23640c Update README.md 2022-06-13 19:42:30 +02:00
Johannes
964be86c5d Merge branch 'main' of https://github.com/joBr99/nspanel-lovelace-ui 2022-06-13 18:22:59 +02:00
Johannes
8b37b3b669 fixed pics for cardqr alarm and media 2022-06-13 18:22:52 +02:00
Johannes
709f916bec do auto color on script 2022-06-13 18:08:36 +02:00
Armilar
e7771ba599 Fix - HandleMessage -> pageOpenDetail does not work for Sub-Pages 2022-06-13 12:23:46 +02:00
62 changed files with 1083 additions and 766 deletions

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: NsPanel Lovelace UI Docs
url: https://docs.nspanel.pky.eu
about: All the information related to flashing and configuration.

View File

@@ -103,7 +103,7 @@ The following message can be used to update the content on the cardEntities Page
### popupLight Page
`entityUpdateDetail~*iconId*~*iconColor*~*buttonState*~*sliderBrightnessPos*~*sliderColorTempPos*~*colorMode*~*color_translation*~*color_temp_translation*~*brightness_translation*`
`entityUpdateDetail~entityName~*iconId*~*iconColor*~*buttonState*~*sliderBrightnessPos*~*sliderColorTempPos*~*colorMode*~*color_translation*~*color_temp_translation*~*brightness_translation*`
`entityUpdateDetail~1~17299~1~100~78~enable`
@@ -111,7 +111,7 @@ The following message can be used to update the content on the cardEntities Page
### popupShutter Page
`entityUpdateDetail~*ignored*~*sliderPos*~2ndrow~textPosition~icon1~iconUp~iconStop~iconDown~iconUpStatus~iconStopStatus~iconDownStatus~textTilt~iconTiltLeft~iconTiltStop~iconTiltRight~iconTiltLeftStatus~iconTiltStopStatus~iconTiltLeftStatus`
`entityUpdateDetail~entityName~*sliderPos*~2ndrow~textPosition~icon1~iconUp~iconStop~iconDown~iconUpStatus~iconStopStatus~iconDownStatus~textTilt~iconTiltLeft~iconTiltStop~iconTiltRight~iconTiltLeftStatus~iconTiltStopStatus~iconTiltLeftStatus`
`entityUpdateDetail~1~77`

View File

@@ -1,6 +1,6 @@
diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
--- HMI/n2t-out/Program.s.txt 2022-06-12 12:21:18.432756347 +0000
+++ HMI/US/landscape/n2t-out/Program.s.txt 2022-06-12 12:21:19.348768343 +0000
--- HMI/n2t-out/Program.s.txt 2022-06-17 21:31:52.834043346 +0000
+++ HMI/US/landscape/n2t-out/Program.s.txt 2022-06-17 21:31:53.966042754 +0000
@@ -11,6 +11,4 @@
// dim value
int dimValue=40
@@ -9,8 +9,8 @@ diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
- lcd_dev fffb 0002 0000 0020
page pageStartup
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/landscape/n2t-out/pageStartup.txt
--- HMI/n2t-out/pageStartup.txt 2022-06-12 12:21:18.432756347 +0000
+++ HMI/US/landscape/n2t-out/pageStartup.txt 2022-06-12 12:21:19.348768343 +0000
--- HMI/n2t-out/pageStartup.txt 2022-06-17 21:31:52.834043346 +0000
+++ HMI/US/landscape/n2t-out/pageStartup.txt 2022-06-17 21:31:53.966042754 +0000
@@ -177,7 +177,7 @@
recmod=1
bauds=115200

View File

@@ -83,63 +83,63 @@ Variable (string) strCommand
Variable (string) type1
Attributes
ID : 45
ID : 41
Scope : local
Text :
Max. Text Size: 10
Variable (string) type2
Attributes
ID : 46
ID : 42
Scope : local
Text :
Max. Text Size: 10
Variable (string) type3
Attributes
ID : 47
ID : 43
Scope : local
Text :
Max. Text Size: 10
Variable (string) type4
Attributes
ID : 48
ID : 44
Scope : local
Text :
Max. Text Size: 10
Variable (string) entn1
Attributes
ID : 49
ID : 45
Scope : local
Text :
Max. Text Size: 80
Variable (string) entn2
Attributes
ID : 50
ID : 46
Scope : local
Text :
Max. Text Size: 80
Variable (string) entn3
Attributes
ID : 51
ID : 47
Scope : local
Text :
Max. Text Size: 80
Variable (string) entn4
Attributes
ID : 52
ID : 48
Scope : local
Text :
Max. Text Size: 80
Number nNum1
Attributes
ID : 58
ID : 54
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -169,7 +169,7 @@ Number nNum1
Number nNum2
Attributes
ID : 59
ID : 55
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -199,7 +199,7 @@ Number nNum2
Number nNum3
Attributes
ID : 60
ID : 56
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -229,7 +229,7 @@ Number nNum3
Number nNum4
Attributes
ID : 61
ID : 57
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -275,7 +275,7 @@ Text tHeading
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 2
Font ID : 1
Back. Color : 6371
Font Color : 65535
Horizontal Alignment : center
@@ -666,7 +666,7 @@ Picture p0
Slider hSlider1
Attributes
ID : 54
ID : 50
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -709,7 +709,7 @@ Slider hSlider1
Slider hSlider2
Attributes
ID : 55
ID : 51
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -752,7 +752,7 @@ Slider hSlider2
Slider hSlider3
Attributes
ID : 56
ID : 52
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -795,7 +795,7 @@ Slider hSlider3
Slider hSlider4
Attributes
ID : 57
ID : 53
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1503,15 +1503,15 @@ Button bNext
Button bText1
Attributes
ID : 37
ID : 61
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 292
x coordinate : 276
y coordinate : 84
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1527,8 +1527,8 @@ Button bText1
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1550,15 +1550,15 @@ Button bText1
Button bText2
Attributes
ID : 38
ID : 62
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 291
x coordinate : 276
y coordinate : 140
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1574,8 +1574,8 @@ Button bText2
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1597,15 +1597,15 @@ Button bText2
Button bText3
Attributes
ID : 39
ID : 63
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 292
x coordinate : 277
y coordinate : 197
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1621,8 +1621,8 @@ Button bText3
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1644,15 +1644,15 @@ Button bText3
Button bText4
Attributes
ID : 40
ID : 64
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 292
x coordinate : 277
y coordinate : 254
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1668,8 +1668,8 @@ Button bText4
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1897,7 +1897,7 @@ Hotspot mSpecial
Hotspot m2
Attributes
ID : 41
ID : 37
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1905,7 +1905,7 @@ Hotspot m2
Opacity : 127
x coordinate : 40
y coordinate : 184
Width : 250
Width : 235
Height : 60
Effect : load
Effect Priority : 0
@@ -1928,7 +1928,7 @@ Hotspot m2
Hotspot m1
Attributes
ID : 42
ID : 38
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1936,7 +1936,7 @@ Hotspot m1
Opacity : 127
x coordinate : 39
y coordinate : 127
Width : 247
Width : 236
Height : 60
Effect : load
Effect Priority : 0
@@ -1959,7 +1959,7 @@ Hotspot m1
Hotspot m0
Attributes
ID : 43
ID : 39
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1967,7 +1967,7 @@ Hotspot m0
Opacity : 127
x coordinate : 37
y coordinate : 70
Width : 244
Width : 237
Height : 56
Effect : load
Effect Priority : 0
@@ -1990,7 +1990,7 @@ Hotspot m0
Hotspot m3
Attributes
ID : 44
ID : 40
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1998,7 +1998,7 @@ Hotspot m3
Opacity : 127
x coordinate : 38
y coordinate : 237
Width : 244
Width : 236
Height : 60
Effect : load
Effect Priority : 0
@@ -2021,7 +2021,7 @@ Hotspot m3
Hotspot mSwipeNext
Attributes
ID : 62
ID : 58
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -2041,7 +2041,7 @@ Hotspot mSwipeNext
Hotspot mSwipeUp
Attributes
ID : 63
ID : 59
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -2049,7 +2049,7 @@ Hotspot mSwipeUp
Opacity : 127
x coordinate : 12
y coordinate : 0
Width : 454
Width : 453
Height : 9
Effect : load
Effect Priority : 0
@@ -2061,7 +2061,7 @@ Hotspot mSwipeUp
Hotspot mSwipePrev
Attributes
ID : 64
ID : 60
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -2953,7 +2953,7 @@ Timer tmSleep
TouchCap tc0
Attributes
ID : 53
ID : 49
Scope: local
Value: 0

View File

@@ -14,6 +14,10 @@ cardMedia
34 Component(s)
363 Line(s) of event code
195 Unique line(s) of event code
pageStartup
19 Component(s)
157 Line(s) of event code
117 Unique line(s) of event code
cardGrid
42 Component(s)
439 Line(s) of event code
@@ -22,18 +26,18 @@ cardQR
32 Component(s)
374 Line(s) of event code
218 Unique line(s) of event code
pageStartup
19 Component(s)
157 Line(s) of event code
117 Unique line(s) of event code
popupLight
27 Component(s)
353 Line(s) of event code
193 Unique line(s) of event code
popupNotify
17 Component(s)
204 Line(s) of event code
128 Unique line(s) of event code
popupShutter
25 Component(s)
330 Line(s) of event code
162 Unique line(s) of event code
331 Line(s) of event code
163 Unique line(s) of event code
screensaver
38 Component(s)
319 Line(s) of event code
@@ -42,10 +46,6 @@ cardEntities
65 Component(s)
1133 Line(s) of event code
496 Unique line(s) of event code
popupLight
27 Component(s)
352 Line(s) of event code
191 Unique line(s) of event code
cardThermo
53 Component(s)
555 Line(s) of event code
@@ -58,5 +58,5 @@ cardAlarm
Total
13 Page(s)
412 Component(s)
4642 Line(s) of event code
1232 Unique line(s) of event code
4644 Line(s) of event code
1235 Unique line(s) of event code

View File

@@ -402,7 +402,7 @@ Text tVersion
Horizontal Alignment : center
Vertical Alignment : center
Input Type : character
Text : 37
Text : 38
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0

View File

@@ -64,7 +64,7 @@ Variable (string) strCommand
ID : 17
Scope : local
Text :
Max. Text Size: 100
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -320,7 +320,7 @@ Text tTmp
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Max. Text Size : 80
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -789,21 +789,22 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tIcon1.txt,"~",1
spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",2
spstr strCommand.txt,tTmp.txt,"~",3
covx tTmp.txt,sys0,0,0
tIcon1.pco=sys0
// get Button State
spstr strCommand.txt,tTmp.txt,"~",3
spstr strCommand.txt,tTmp.txt,"~",4
covx tTmp.txt,sys0,0,0
btOnOff1.val=sys0
// get Brightness value
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt=="disable")
{
vis t1,0
@@ -821,7 +822,7 @@ Timer tmSerial
}
}
// get ColorTemp value
spstr strCommand.txt,tTmp.txt,"~",5
spstr strCommand.txt,tTmp.txt,"~",6
if(tTmp.txt=="disable")
{
vis hTempSlider,0
@@ -865,7 +866,7 @@ Timer tmSerial
}
}
// get Color value
spstr strCommand.txt,tTmp.txt,"~",6
spstr strCommand.txt,tTmp.txt,"~",7
// disable -> isn't supported
if(tTmp.txt=="disable")
{
@@ -886,11 +887,11 @@ Timer tmSerial
}
}
// set t0 Color (Localization)
spstr strCommand.txt,t0.txt,"~",7
spstr strCommand.txt,t0.txt,"~",8
// set t4 Temperature (Localization)
spstr strCommand.txt,t4.txt,"~",8
spstr strCommand.txt,t4.txt,"~",9
// set t1 Brightness (Localization)
spstr strCommand.txt,t1.txt,"~",9
spstr strCommand.txt,t1.txt,"~",10
}
if(tInstruction.txt=="time")
{

View File

@@ -54,7 +54,7 @@ Variable (string) strCommand
ID : 9
Scope : local
Text :
Max. Text Size: 200
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -82,7 +82,7 @@ Variable (string) tTmp
ID : 19
Scope : local
Text :
Max. Text Size: 10
Max. Text Size: 80
Text tEntity
Attributes
@@ -770,10 +770,11 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&tTmp.txt==entn.txt)
{
// get Position value
spstr strCommand.txt,tTmp.txt,"~",1
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt=="disable")
{
vis tPosHeading,0
@@ -786,92 +787,92 @@ Timer tmSerial
vis hPosition,1
}
// set tinfo1 text
spstr strCommand.txt,tInfo1.txt,"~",2
spstr strCommand.txt,tInfo1.txt,"~",3
// set tPosHeading (localization)
spstr strCommand.txt,tPosHeading.txt,"~",3
spstr strCommand.txt,tPosHeading.txt,"~",4
// set tIcon1
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",8
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
bUp1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
tsw bUp1,1
bUp1.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",9
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
bStop1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
tsw bStop1,1
bStop1.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",11
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",12
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",13
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",13
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",17
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",14
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",14
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",11
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",15
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",12
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",12
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",13
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",13
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,0
bTRight.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,1
bTRight.pco=65535
}

View File

@@ -769,8 +769,8 @@ Button bText1
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -794,8 +794,8 @@ Button bText2
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -819,8 +819,8 @@ Button bText3
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -844,8 +844,8 @@ Button bText4
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event

View File

@@ -152,7 +152,7 @@ Text tVersion
Disable release event after dragging: 0
Send Component ID : disabled
Associated Keyboard : none
Text : 37
Text : 38
Max. Text Size : 10
Picture p0

View File

@@ -55,7 +55,7 @@ Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 100
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -151,7 +151,7 @@ Text tTmp
Send Component ID : disabled
Associated Keyboard : none
Text :
Max. Text Size : 10
Max. Text Size : 80
Text tInstruction
Attributes
@@ -443,21 +443,22 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tIcon1.txt,"~",1
spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",2
spstr strCommand.txt,tTmp.txt,"~",3
covx tTmp.txt,sys0,0,0
tIcon1.pco=sys0
// get Button State
spstr strCommand.txt,tTmp.txt,"~",3
spstr strCommand.txt,tTmp.txt,"~",4
covx tTmp.txt,sys0,0,0
btOnOff1.val=sys0
// get Brightness value
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt=="disable")
{
vis t1,0
@@ -475,7 +476,7 @@ Timer tmSerial
}
}
// get ColorTemp value
spstr strCommand.txt,tTmp.txt,"~",5
spstr strCommand.txt,tTmp.txt,"~",6
if(tTmp.txt=="disable")
{
vis hTempSlider,0
@@ -519,7 +520,7 @@ Timer tmSerial
}
}
// get Color value
spstr strCommand.txt,tTmp.txt,"~",6
spstr strCommand.txt,tTmp.txt,"~",7
// disable -> isn't supported
if(tTmp.txt=="disable")
{
@@ -540,11 +541,11 @@ Timer tmSerial
}
}
// set t0 Color (Localization)
spstr strCommand.txt,t0.txt,"~",7
spstr strCommand.txt,t0.txt,"~",8
// set t4 Temperature (Localization)
spstr strCommand.txt,t4.txt,"~",8
spstr strCommand.txt,t4.txt,"~",9
// set t1 Brightness (Localization)
spstr strCommand.txt,t1.txt,"~",9
spstr strCommand.txt,t1.txt,"~",10
}
if(tInstruction.txt=="time")
{

View File

@@ -45,7 +45,7 @@ Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 200
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -69,7 +69,7 @@ Variable (string) tTmp
Attributes
Scope : local
Text :
Max. Text Size: 10
Max. Text Size: 80
Text tEntity
Attributes
@@ -441,10 +441,11 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&tTmp.txt==entn.txt)
{
// get Position value
spstr strCommand.txt,tTmp.txt,"~",1
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt=="disable")
{
vis tPosHeading,0
@@ -457,92 +458,92 @@ Timer tmSerial
vis hPosition,1
}
// set tinfo1 text
spstr strCommand.txt,tInfo1.txt,"~",2
spstr strCommand.txt,tInfo1.txt,"~",3
// set tPosHeading (localization)
spstr strCommand.txt,tPosHeading.txt,"~",3
spstr strCommand.txt,tPosHeading.txt,"~",4
// set tIcon1
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",8
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
bUp1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
tsw bUp1,1
bUp1.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",9
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
bStop1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
tsw bStop1,1
bStop1.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",11
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",12
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",13
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",13
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",17
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",14
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",14
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",11
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",15
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",12
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",12
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",13
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",13
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,0
bTRight.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,1
bTRight.pco=65535
}

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
--- HMI/n2t-out/Program.s.txt 2022-06-12 12:21:18.432756347 +0000
+++ HMI/US/portrait/n2t-out/Program.s.txt 2022-06-12 12:21:18.872762109 +0000
--- HMI/n2t-out/Program.s.txt 2022-06-17 21:31:52.834043346 +0000
+++ HMI/US/portrait/n2t-out/Program.s.txt 2022-06-17 21:31:53.382043060 +0000
@@ -11,6 +11,6 @@
// dim value
int dimValue=40
@@ -11,8 +11,8 @@ diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
+ //lcd_dev fffb 0002 0000 0020
page pageStartup
diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
--- HMI/n2t-out/cardEntities.txt 2022-06-12 12:21:18.436756399 +0000
+++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-06-12 12:21:18.876762161 +0000
--- HMI/n2t-out/cardEntities.txt 2022-06-17 21:31:52.838043344 +0000
+++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-06-17 21:31:53.382043060 +0000
@@ -63,6 +63,16 @@
vis bText4,0
vis hSlider4,0
@@ -213,8 +213,8 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
+ Disable release event after dragging: 0
+ Send Component ID : disabled
+ State : unpressed
+ Text : newtxt
+ Max. Text Size : 10
+ Text :
+ Max. Text Size : 20
+
+ Events
+ Touch Press Event
@@ -468,8 +468,8 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
if(tInstruction.txt=="pageType")
{
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
--- HMI/n2t-out/pageStartup.txt 2022-06-12 12:21:18.432756347 +0000
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-06-12 12:21:18.872762109 +0000
--- HMI/n2t-out/pageStartup.txt 2022-06-17 21:31:52.834043346 +0000
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-06-17 21:31:53.382043060 +0000
@@ -142,7 +142,7 @@
Disable release event after dragging: 0
Send Component ID : disabled
@@ -488,3 +488,27 @@ diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
//send calc crc
btlen tSend.txt,sys0
crcrest 1,0xffff // reset CRC
diff -bur HMI/n2t-out/popupLight.txt HMI/US/portrait/n2t-out/popupLight.txt
--- HMI/n2t-out/popupLight.txt 2022-06-17 21:31:52.834043346 +0000
+++ HMI/US/portrait/n2t-out/popupLight.txt 2022-06-17 21:31:53.382043060 +0000
@@ -151,7 +151,7 @@
Send Component ID : disabled
Associated Keyboard : none
Text :
- Max. Text Size : 80
+ Max. Text Size : 10
Text tInstruction
Attributes
diff -bur HMI/n2t-out/popupShutter.txt HMI/US/portrait/n2t-out/popupShutter.txt
--- HMI/n2t-out/popupShutter.txt 2022-06-17 21:31:52.834043346 +0000
+++ HMI/US/portrait/n2t-out/popupShutter.txt 2022-06-17 21:31:53.382043060 +0000
@@ -69,7 +69,7 @@
Attributes
Scope : local
Text :
- Max. Text Size: 80
+ Max. Text Size: 10
Text tEntity
Attributes

View File

@@ -1,16 +1,42 @@
+++ HMI/US/portrait/diff-eu-version.txt 2022-06-12 12:21:18.904762528 +0000
+--- HMI/n2t-out/Program.s.txt 2022-06-12 12:21:18.432756347 +0000
++++ HMI/US/portrait/n2t-out/Program.s.txt 2022-06-12 12:21:18.872762109 +0000
+--- HMI/n2t-out/cardEntities.txt 2022-06-12 12:21:18.436756399 +0000
++++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-06-12 12:21:18.876762161 +0000
+++ HMI/US/portrait/diff-eu-version.txt 2022-06-17 21:31:53.398043051 +0000
+--- HMI/n2t-out/Program.s.txt 2022-06-17 21:31:52.834043346 +0000
++++ HMI/US/portrait/n2t-out/Program.s.txt 2022-06-17 21:31:53.382043060 +0000
+--- HMI/n2t-out/cardEntities.txt 2022-06-17 21:31:52.838043344 +0000
++++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-06-17 21:31:53.382043060 +0000
+@@ -63,6 +63,16 @@
+@@ -120,6 +130,18 @@
+@@ -156,6 +178,15 @@
+@@ -286,6 +317,26 @@
+@@ -405,6 +456,34 @@
+@@ -862,6 +941,106 @@
++ Text :
++ Max. Text Size : 20
+@@ -970,6 +1149,33 @@
+@@ -1075,6 +1281,28 @@
+@@ -1850,6 +2078,169 @@
+--- HMI/n2t-out/pageStartup.txt 2022-06-12 12:21:18.432756347 +0000
++++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-06-12 12:21:18.872762109 +0000
+--- HMI/n2t-out/pageStartup.txt 2022-06-17 21:31:52.834043346 +0000
++++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-06-17 21:31:53.382043060 +0000
+diff -bur HMI/n2t-out/popupLight.txt HMI/US/portrait/n2t-out/popupLight.txt
+--- HMI/n2t-out/popupLight.txt 2022-06-17 21:31:52.834043346 +0000
++++ HMI/US/portrait/n2t-out/popupLight.txt 2022-06-17 21:31:53.382043060 +0000
+@@ -151,7 +151,7 @@
+ Send Component ID : disabled
+ Associated Keyboard : none
+ Text :
+- Max. Text Size : 80
++ Max. Text Size : 10
+
+ Text tInstruction
+ Attributes
+diff -bur HMI/n2t-out/popupShutter.txt HMI/US/portrait/n2t-out/popupShutter.txt
+--- HMI/n2t-out/popupShutter.txt 2022-06-17 21:31:52.834043346 +0000
++++ HMI/US/portrait/n2t-out/popupShutter.txt 2022-06-17 21:31:53.382043060 +0000
+@@ -69,7 +69,7 @@
+ Attributes
+ Scope : local
+ Text :
+- Max. Text Size: 80
++ Max. Text Size: 10
+
+ Text tEntity
+ Attributes

View File

@@ -1684,8 +1684,8 @@ Button bText1
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1731,8 +1731,8 @@ Button bText2
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1778,8 +1778,8 @@ Button bText3
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1825,8 +1825,8 @@ Button bText4
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -2013,8 +2013,8 @@ Button bText5
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0

View File

@@ -4,8 +4,8 @@ Program.s
10 Unique line(s) of event code
popupShutter
25 Component(s)
330 Line(s) of event code
162 Unique line(s) of event code
331 Line(s) of event code
163 Unique line(s) of event code
pageIcons
6 Component(s)
0 Line(s) of event code
@@ -14,18 +14,10 @@ pageTest
14 Component(s)
14 Line(s) of event code
14 Unique line(s) of event code
popupLight
27 Component(s)
352 Line(s) of event code
191 Unique line(s) of event code
cardQR
32 Component(s)
374 Line(s) of event code
218 Unique line(s) of event code
pageStartup
19 Component(s)
157 Line(s) of event code
117 Unique line(s) of event code
popupNotify
17 Component(s)
204 Line(s) of event code
@@ -34,6 +26,10 @@ cardThermo
53 Component(s)
555 Line(s) of event code
292 Unique line(s) of event code
pageStartup
19 Component(s)
157 Line(s) of event code
117 Unique line(s) of event code
cardMedia
34 Component(s)
363 Line(s) of event code
@@ -42,6 +38,10 @@ screensaver
38 Component(s)
319 Line(s) of event code
253 Unique line(s) of event code
popupLight
27 Component(s)
353 Line(s) of event code
193 Unique line(s) of event code
cardEntities
77 Component(s)
1363 Line(s) of event code
@@ -58,5 +58,5 @@ cardAlarm
Total
13 Page(s)
424 Component(s)
4872 Line(s) of event code
1304 Unique line(s) of event code
4874 Line(s) of event code
1307 Unique line(s) of event code

View File

@@ -402,7 +402,7 @@ Text tVersion
Horizontal Alignment : center
Vertical Alignment : center
Input Type : character
Text : 37
Text : 38
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0

View File

@@ -64,7 +64,7 @@ Variable (string) strCommand
ID : 17
Scope : local
Text :
Max. Text Size: 100
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -789,21 +789,22 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tIcon1.txt,"~",1
spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",2
spstr strCommand.txt,tTmp.txt,"~",3
covx tTmp.txt,sys0,0,0
tIcon1.pco=sys0
// get Button State
spstr strCommand.txt,tTmp.txt,"~",3
spstr strCommand.txt,tTmp.txt,"~",4
covx tTmp.txt,sys0,0,0
btOnOff1.val=sys0
// get Brightness value
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt=="disable")
{
vis t1,0
@@ -821,7 +822,7 @@ Timer tmSerial
}
}
// get ColorTemp value
spstr strCommand.txt,tTmp.txt,"~",5
spstr strCommand.txt,tTmp.txt,"~",6
if(tTmp.txt=="disable")
{
vis hTempSlider,0
@@ -865,7 +866,7 @@ Timer tmSerial
}
}
// get Color value
spstr strCommand.txt,tTmp.txt,"~",6
spstr strCommand.txt,tTmp.txt,"~",7
// disable -> isn't supported
if(tTmp.txt=="disable")
{
@@ -886,11 +887,11 @@ Timer tmSerial
}
}
// set t0 Color (Localization)
spstr strCommand.txt,t0.txt,"~",7
spstr strCommand.txt,t0.txt,"~",8
// set t4 Temperature (Localization)
spstr strCommand.txt,t4.txt,"~",8
spstr strCommand.txt,t4.txt,"~",9
// set t1 Brightness (Localization)
spstr strCommand.txt,t1.txt,"~",9
spstr strCommand.txt,t1.txt,"~",10
}
if(tInstruction.txt=="time")
{

View File

@@ -54,7 +54,7 @@ Variable (string) strCommand
ID : 9
Scope : local
Text :
Max. Text Size: 200
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -770,10 +770,11 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&tTmp.txt==entn.txt)
{
// get Position value
spstr strCommand.txt,tTmp.txt,"~",1
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt=="disable")
{
vis tPosHeading,0
@@ -786,92 +787,92 @@ Timer tmSerial
vis hPosition,1
}
// set tinfo1 text
spstr strCommand.txt,tInfo1.txt,"~",2
spstr strCommand.txt,tInfo1.txt,"~",3
// set tPosHeading (localization)
spstr strCommand.txt,tPosHeading.txt,"~",3
spstr strCommand.txt,tPosHeading.txt,"~",4
// set tIcon1
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",8
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
bUp1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
tsw bUp1,1
bUp1.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",9
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
bStop1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
tsw bStop1,1
bStop1.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",11
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",12
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",13
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",13
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",17
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",14
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",14
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",11
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",15
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",12
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",12
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",13
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",13
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,0
bTRight.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,1
bTRight.pco=65535
}

View File

@@ -848,8 +848,8 @@ Button bText1
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -873,8 +873,8 @@ Button bText2
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -898,8 +898,8 @@ Button bText3
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -923,8 +923,8 @@ Button bText4
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -1023,8 +1023,8 @@ Button bText5
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event

View File

@@ -152,7 +152,7 @@ Text tVersion
Disable release event after dragging: 0
Send Component ID : disabled
Associated Keyboard : none
Text : 37
Text : 38
Max. Text Size : 10
Picture p0

View File

@@ -55,7 +55,7 @@ Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 100
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -443,21 +443,22 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tIcon1.txt,"~",1
spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",2
spstr strCommand.txt,tTmp.txt,"~",3
covx tTmp.txt,sys0,0,0
tIcon1.pco=sys0
// get Button State
spstr strCommand.txt,tTmp.txt,"~",3
spstr strCommand.txt,tTmp.txt,"~",4
covx tTmp.txt,sys0,0,0
btOnOff1.val=sys0
// get Brightness value
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt=="disable")
{
vis t1,0
@@ -475,7 +476,7 @@ Timer tmSerial
}
}
// get ColorTemp value
spstr strCommand.txt,tTmp.txt,"~",5
spstr strCommand.txt,tTmp.txt,"~",6
if(tTmp.txt=="disable")
{
vis hTempSlider,0
@@ -519,7 +520,7 @@ Timer tmSerial
}
}
// get Color value
spstr strCommand.txt,tTmp.txt,"~",6
spstr strCommand.txt,tTmp.txt,"~",7
// disable -> isn't supported
if(tTmp.txt=="disable")
{
@@ -540,11 +541,11 @@ Timer tmSerial
}
}
// set t0 Color (Localization)
spstr strCommand.txt,t0.txt,"~",7
spstr strCommand.txt,t0.txt,"~",8
// set t4 Temperature (Localization)
spstr strCommand.txt,t4.txt,"~",8
spstr strCommand.txt,t4.txt,"~",9
// set t1 Brightness (Localization)
spstr strCommand.txt,t1.txt,"~",9
spstr strCommand.txt,t1.txt,"~",10
}
if(tInstruction.txt=="time")
{

View File

@@ -45,7 +45,7 @@ Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 200
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -441,10 +441,11 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&tTmp.txt==entn.txt)
{
// get Position value
spstr strCommand.txt,tTmp.txt,"~",1
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt=="disable")
{
vis tPosHeading,0
@@ -457,92 +458,92 @@ Timer tmSerial
vis hPosition,1
}
// set tinfo1 text
spstr strCommand.txt,tInfo1.txt,"~",2
spstr strCommand.txt,tInfo1.txt,"~",3
// set tPosHeading (localization)
spstr strCommand.txt,tPosHeading.txt,"~",3
spstr strCommand.txt,tPosHeading.txt,"~",4
// set tIcon1
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",8
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
bUp1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
tsw bUp1,1
bUp1.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",9
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
bStop1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
tsw bStop1,1
bStop1.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",11
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",12
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",13
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",13
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",17
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",14
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",14
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",11
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",15
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",12
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",12
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",13
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",13
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,0
bTRight.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,1
bTRight.pco=65535
}

Binary file not shown.

Binary file not shown.

View File

@@ -83,63 +83,63 @@ Variable (string) strCommand
Variable (string) type1
Attributes
ID : 45
ID : 41
Scope : local
Text :
Max. Text Size: 10
Variable (string) type2
Attributes
ID : 46
ID : 42
Scope : local
Text :
Max. Text Size: 10
Variable (string) type3
Attributes
ID : 47
ID : 43
Scope : local
Text :
Max. Text Size: 10
Variable (string) type4
Attributes
ID : 48
ID : 44
Scope : local
Text :
Max. Text Size: 10
Variable (string) entn1
Attributes
ID : 49
ID : 45
Scope : local
Text :
Max. Text Size: 80
Variable (string) entn2
Attributes
ID : 50
ID : 46
Scope : local
Text :
Max. Text Size: 80
Variable (string) entn3
Attributes
ID : 51
ID : 47
Scope : local
Text :
Max. Text Size: 80
Variable (string) entn4
Attributes
ID : 52
ID : 48
Scope : local
Text :
Max. Text Size: 80
Number nNum1
Attributes
ID : 58
ID : 54
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -169,7 +169,7 @@ Number nNum1
Number nNum2
Attributes
ID : 59
ID : 55
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -199,7 +199,7 @@ Number nNum2
Number nNum3
Attributes
ID : 60
ID : 56
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -229,7 +229,7 @@ Number nNum3
Number nNum4
Attributes
ID : 61
ID : 57
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -666,7 +666,7 @@ Picture p0
Slider hSlider1
Attributes
ID : 54
ID : 50
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -709,7 +709,7 @@ Slider hSlider1
Slider hSlider2
Attributes
ID : 55
ID : 51
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -752,7 +752,7 @@ Slider hSlider2
Slider hSlider3
Attributes
ID : 56
ID : 52
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -795,7 +795,7 @@ Slider hSlider3
Slider hSlider4
Attributes
ID : 57
ID : 53
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1503,15 +1503,15 @@ Button bNext
Button bText1
Attributes
ID : 37
ID : 61
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 277
x coordinate : 261
y coordinate : 84
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1527,8 +1527,8 @@ Button bText1
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1550,15 +1550,15 @@ Button bText1
Button bText2
Attributes
ID : 38
ID : 62
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 276
x coordinate : 261
y coordinate : 140
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1574,8 +1574,8 @@ Button bText2
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1597,15 +1597,15 @@ Button bText2
Button bText3
Attributes
ID : 39
ID : 63
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 277
x coordinate : 262
y coordinate : 197
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1621,8 +1621,8 @@ Button bText3
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1644,15 +1644,15 @@ Button bText3
Button bText4
Attributes
ID : 40
ID : 64
Scope : local
Dragging : 0
Disable release event after dragging: 0
Send Component ID : disabled
Opacity : 127
x coordinate : 277
x coordinate : 262
y coordinate : 254
Width : 145
Width : 166
Height : 30
Effect : load
Effect Priority : 0
@@ -1668,8 +1668,8 @@ Button bText4
Horizontal Alignment : right
Vertical Alignment : center
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -1897,7 +1897,7 @@ Hotspot mSpecial
Hotspot m2
Attributes
ID : 41
ID : 37
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1905,7 +1905,7 @@ Hotspot m2
Opacity : 127
x coordinate : 25
y coordinate : 184
Width : 250
Width : 235
Height : 60
Effect : load
Effect Priority : 0
@@ -1928,7 +1928,7 @@ Hotspot m2
Hotspot m1
Attributes
ID : 42
ID : 38
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1936,7 +1936,7 @@ Hotspot m1
Opacity : 127
x coordinate : 24
y coordinate : 127
Width : 247
Width : 236
Height : 60
Effect : load
Effect Priority : 0
@@ -1959,7 +1959,7 @@ Hotspot m1
Hotspot m0
Attributes
ID : 43
ID : 39
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1967,7 +1967,7 @@ Hotspot m0
Opacity : 127
x coordinate : 22
y coordinate : 70
Width : 244
Width : 237
Height : 56
Effect : load
Effect Priority : 0
@@ -1990,7 +1990,7 @@ Hotspot m0
Hotspot m3
Attributes
ID : 44
ID : 40
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -1998,7 +1998,7 @@ Hotspot m3
Opacity : 127
x coordinate : 23
y coordinate : 237
Width : 244
Width : 236
Height : 60
Effect : load
Effect Priority : 0
@@ -2021,7 +2021,7 @@ Hotspot m3
Hotspot mSwipeNext
Attributes
ID : 62
ID : 58
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -2041,7 +2041,7 @@ Hotspot mSwipeNext
Hotspot mSwipeUp
Attributes
ID : 63
ID : 59
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -2061,7 +2061,7 @@ Hotspot mSwipeUp
Hotspot mSwipePrev
Attributes
ID : 64
ID : 60
Scope : local
Dragging : 0
Disable release event after dragging: 0
@@ -2953,7 +2953,7 @@ Timer tmSleep
TouchCap tc0
Attributes
ID : 53
ID : 49
Scope: local
Value: 0

View File

@@ -18,22 +18,22 @@ popupNotify
17 Component(s)
204 Line(s) of event code
128 Unique line(s) of event code
popupLight
27 Component(s)
352 Line(s) of event code
191 Unique line(s) of event code
pageStartup
19 Component(s)
157 Line(s) of event code
117 Unique line(s) of event code
popupShutter
25 Component(s)
331 Line(s) of event code
163 Unique line(s) of event code
cardMedia
34 Component(s)
363 Line(s) of event code
195 Unique line(s) of event code
popupShutter
25 Component(s)
330 Line(s) of event code
162 Unique line(s) of event code
pageStartup
19 Component(s)
157 Line(s) of event code
117 Unique line(s) of event code
popupLight
27 Component(s)
353 Line(s) of event code
193 Unique line(s) of event code
cardGrid
42 Component(s)
439 Line(s) of event code
@@ -58,5 +58,5 @@ cardEntities
Total
13 Page(s)
412 Component(s)
4643 Line(s) of event code
1233 Unique line(s) of event code
4645 Line(s) of event code
1236 Unique line(s) of event code

View File

@@ -402,7 +402,7 @@ Text tVersion
Horizontal Alignment : center
Vertical Alignment : center
Input Type : character
Text : 37
Text : 38
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0

View File

@@ -64,7 +64,7 @@ Variable (string) strCommand
ID : 17
Scope : local
Text :
Max. Text Size: 100
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -320,7 +320,7 @@ Text tTmp
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Max. Text Size : 80
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
@@ -789,21 +789,22 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tIcon1.txt,"~",1
spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",2
spstr strCommand.txt,tTmp.txt,"~",3
covx tTmp.txt,sys0,0,0
tIcon1.pco=sys0
// get Button State
spstr strCommand.txt,tTmp.txt,"~",3
spstr strCommand.txt,tTmp.txt,"~",4
covx tTmp.txt,sys0,0,0
btOnOff1.val=sys0
// get Brightness value
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt=="disable")
{
vis t1,0
@@ -821,7 +822,7 @@ Timer tmSerial
}
}
// get ColorTemp value
spstr strCommand.txt,tTmp.txt,"~",5
spstr strCommand.txt,tTmp.txt,"~",6
if(tTmp.txt=="disable")
{
vis hTempSlider,0
@@ -865,7 +866,7 @@ Timer tmSerial
}
}
// get Color value
spstr strCommand.txt,tTmp.txt,"~",6
spstr strCommand.txt,tTmp.txt,"~",7
// disable -> isn't supported
if(tTmp.txt=="disable")
{
@@ -886,11 +887,11 @@ Timer tmSerial
}
}
// set t0 Color (Localization)
spstr strCommand.txt,t0.txt,"~",7
spstr strCommand.txt,t0.txt,"~",8
// set t4 Temperature (Localization)
spstr strCommand.txt,t4.txt,"~",8
spstr strCommand.txt,t4.txt,"~",9
// set t1 Brightness (Localization)
spstr strCommand.txt,t1.txt,"~",9
spstr strCommand.txt,t1.txt,"~",10
}
if(tInstruction.txt=="time")
{

View File

@@ -54,7 +54,7 @@ Variable (string) strCommand
ID : 9
Scope : local
Text :
Max. Text Size: 200
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -82,7 +82,7 @@ Variable (string) tTmp
ID : 19
Scope : local
Text :
Max. Text Size: 10
Max. Text Size: 80
Text tEntity
Attributes
@@ -770,10 +770,11 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&tTmp.txt==entn.txt)
{
// get Position value
spstr strCommand.txt,tTmp.txt,"~",1
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt=="disable")
{
vis tPosHeading,0
@@ -786,92 +787,92 @@ Timer tmSerial
vis hPosition,1
}
// set tinfo1 text
spstr strCommand.txt,tInfo1.txt,"~",2
spstr strCommand.txt,tInfo1.txt,"~",3
// set tPosHeading (localization)
spstr strCommand.txt,tPosHeading.txt,"~",3
spstr strCommand.txt,tPosHeading.txt,"~",4
// set tIcon1
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",8
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
bUp1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
tsw bUp1,1
bUp1.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",9
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
bStop1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
tsw bStop1,1
bStop1.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",11
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",12
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",13
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",13
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",17
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",14
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",14
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",11
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",15
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",12
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",12
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",13
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",13
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,0
bTRight.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,1
bTRight.pco=65535
}

View File

@@ -769,8 +769,8 @@ Button bText1
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -794,8 +794,8 @@ Button bText2
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -819,8 +819,8 @@ Button bText3
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event
@@ -844,8 +844,8 @@ Button bText4
Disable release event after dragging: 0
Send Component ID : disabled
State : unpressed
Text : newtxt
Max. Text Size : 10
Text :
Max. Text Size : 20
Events
Touch Press Event

View File

@@ -152,7 +152,7 @@ Text tVersion
Disable release event after dragging: 0
Send Component ID : disabled
Associated Keyboard : none
Text : 37
Text : 38
Max. Text Size : 10
Picture p0

View File

@@ -55,7 +55,7 @@ Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 100
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -151,7 +151,7 @@ Text tTmp
Send Component ID : disabled
Associated Keyboard : none
Text :
Max. Text Size : 10
Max. Text Size : 80
Text tInstruction
Attributes
@@ -443,21 +443,22 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&entn.txt==tTmp.txt)
{
// change icon
spstr strCommand.txt,tIcon1.txt,"~",1
spstr strCommand.txt,tIcon1.txt,"~",2
vis tIcon1,1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",2
spstr strCommand.txt,tTmp.txt,"~",3
covx tTmp.txt,sys0,0,0
tIcon1.pco=sys0
// get Button State
spstr strCommand.txt,tTmp.txt,"~",3
spstr strCommand.txt,tTmp.txt,"~",4
covx tTmp.txt,sys0,0,0
btOnOff1.val=sys0
// get Brightness value
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt=="disable")
{
vis t1,0
@@ -475,7 +476,7 @@ Timer tmSerial
}
}
// get ColorTemp value
spstr strCommand.txt,tTmp.txt,"~",5
spstr strCommand.txt,tTmp.txt,"~",6
if(tTmp.txt=="disable")
{
vis hTempSlider,0
@@ -519,7 +520,7 @@ Timer tmSerial
}
}
// get Color value
spstr strCommand.txt,tTmp.txt,"~",6
spstr strCommand.txt,tTmp.txt,"~",7
// disable -> isn't supported
if(tTmp.txt=="disable")
{
@@ -540,11 +541,11 @@ Timer tmSerial
}
}
// set t0 Color (Localization)
spstr strCommand.txt,t0.txt,"~",7
spstr strCommand.txt,t0.txt,"~",8
// set t4 Temperature (Localization)
spstr strCommand.txt,t4.txt,"~",8
spstr strCommand.txt,t4.txt,"~",9
// set t1 Brightness (Localization)
spstr strCommand.txt,t1.txt,"~",9
spstr strCommand.txt,t1.txt,"~",10
}
if(tInstruction.txt=="time")
{

View File

@@ -45,7 +45,7 @@ Variable (string) strCommand
Attributes
Scope : local
Text :
Max. Text Size: 200
Max. Text Size: 500
Variable (string) entn
Attributes
@@ -69,7 +69,7 @@ Variable (string) tTmp
Attributes
Scope : local
Text :
Max. Text Size: 10
Max. Text Size: 80
Text tEntity
Attributes
@@ -441,10 +441,11 @@ Timer tmSerial
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
if(tInstruction.txt=="entityUpdateDetail")
spstr strCommand.txt,tTmp.txt,"~",1
if(tInstruction.txt=="entityUpdateDetail"&&tTmp.txt==entn.txt)
{
// get Position value
spstr strCommand.txt,tTmp.txt,"~",1
spstr strCommand.txt,tTmp.txt,"~",2
if(tTmp.txt=="disable")
{
vis tPosHeading,0
@@ -457,92 +458,92 @@ Timer tmSerial
vis hPosition,1
}
// set tinfo1 text
spstr strCommand.txt,tInfo1.txt,"~",2
spstr strCommand.txt,tInfo1.txt,"~",3
// set tPosHeading (localization)
spstr strCommand.txt,tPosHeading.txt,"~",3
spstr strCommand.txt,tPosHeading.txt,"~",4
// set tIcon1
spstr strCommand.txt,tTmp.txt,"~",4
spstr strCommand.txt,tTmp.txt,"~",5
if(tTmp.txt!="")
{
tIcon1.txt=tTmp.txt
}
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",8
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
bUp1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bUp1.txt,"~",5
spstr strCommand.txt,bUp1.txt,"~",6
tsw bUp1,1
bUp1.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",9
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
bStop1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bStop1.txt,"~",6
spstr strCommand.txt,bStop1.txt,"~",7
tsw bStop1,1
bStop1.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",11
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",8
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",12
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",13
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",13
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",17
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",14
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",14
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0
bDown1.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1
bDown1.pco=65535
}
// set tTiltHeading (localization)
spstr strCommand.txt,tTiltHeading.txt,"~",11
// set icon bUp
spstr strCommand.txt,tTmp.txt,"~",15
if(tTmp.txt=="disable")
{
tsw bTLeft,0
spstr strCommand.txt,bTLeft.txt,"~",12
bTLeft.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTLeft.txt,"~",12
tsw bTLeft,1
bTLeft.pco=65535
}
// set icon bStop
spstr strCommand.txt,tTmp.txt,"~",16
if(tTmp.txt=="disable")
{
tsw bTStop,0
spstr strCommand.txt,bTStop.txt,"~",13
bTStop.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTStop.txt,"~",13
tsw bTStop,1
bTStop.pco=65535
}
// set icon bDown
spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,0
bTRight.pco=27501
}else if(tTmp.txt=="enable")
{
spstr strCommand.txt,bTRight.txt,"~",14
spstr strCommand.txt,bTRight.txt,"~",15
tsw bTRight,1
bTRight.pco=65535
}

Binary file not shown.

Binary file not shown.

View File

@@ -16,7 +16,7 @@ Or an TypeScript on your ioBroker Instance in case you are an ioBroker User.
NsPanel needs to be flashed with Tasmota (or upcoming with ESPHome)
![nspanel-rl](doc-pics/nspanel-rl.png)
![nspanel-rl](docs/img/nspanel-rl.png)
## Features
@@ -44,4 +44,4 @@ Some (not all) screenshots from the US Portrait Version:
## Documentation
Visit https://docs.nspanel.pky.eu/ for installation instructions and documentation of the configuration.
Visit https://docs.nspanel.pky.eu/ for installation instructions and documentation of the configuration.

View File

@@ -80,8 +80,8 @@ class LuiBackendConfig(object):
'locale': "en_US",
'timeFormat': "%H:%M",
'dateFormatBabel': "full",
'dateAdditonalTemplate': "",
'timeAdditonalTemplate': "",
'dateAdditionalTemplate': "",
'timeAdditionalTemplate': "",
'dateFormat': "%A, %d. %B %Y",
'cards': [{
'type': 'cardEntities',

View File

@@ -241,9 +241,13 @@ class LuiController(object):
if button_type == "button":
if entity_id.startswith('navigate'):
# internal for navigation to nested pages
self._previous_cards.append(self._current_card)
self._current_card = self._config.searchCard(entity_id)
self._pages_gen.render_card(self._current_card)
dstCard = self._config.searchCard(entity_id)
if dstCard is not None:
self._previous_cards.append(self._current_card)
self._current_card = dstCard
self._pages_gen.render_card(self._current_card)
else:
self._ha_api.log(f"No page with key {entity_id} found")
elif entity_id.startswith('scene'):
self._ha_api.get_entity(entity_id).call_service("turn_on")
elif entity_id.startswith('script'):
@@ -255,8 +259,8 @@ class LuiController(object):
self._ha_api.get_entity(entity_id).call_service("unlock")
else:
self._ha_api.get_entity(entity_id).call_service("lock")
else:
self._ha_api.get_entity(entity_id).call_service("press")
elif entity_id.startswith('button') or entity_id.startswith('input_button'):
self._ha_api.get_entity(entity_id).call_service("press")
# for media page
if button_type == "media-next":

View File

@@ -42,7 +42,7 @@ class LuiPagesGen(object):
def update_time(self, kwargs):
time = datetime.datetime.now().strftime(self._config.get("timeFormat"))
addTemplate = self._config.get("timeAdditonalTemplate")
addTemplate = self._config.get("timeAdditionalTemplate")
addTimeText = self._ha_api.render_template(addTemplate)
self._send_mqtt_msg(f"time~{time}~{addTimeText}")
@@ -55,7 +55,7 @@ class LuiPagesGen(object):
dateformat = self._config.get("dateFormat")
date = datetime.datetime.now().strftime(dateformat)
addTemplate = self._config.get("dateAdditonalTemplate")
addTemplate = self._config.get("dateAdditionalTemplate")
addDateText = self._ha_api.render_template(addTemplate)
self._send_mqtt_msg(f"date~{date}{addDateText}")
@@ -139,7 +139,7 @@ class LuiPagesGen(object):
entity = self._ha_api.get_entity(statusIcon.get("entity"))
entityType = statusIcon.get("entity").split(".")[0]
icon = get_icon_id_ha(entityType, state=entity.state, device_class=entity.attributes.get("device_class", ""), overwrite=icon)
color = self.get_entity_color(entity)
color = self.get_entity_color(entity, overwrite=statusIcon.get("color", None))
status_res += f"~{icon}~{color}"
self._send_mqtt_msg(f"weatherUpdate~{icon_cur}~{text_cur}{weather_res}{altLayout}{status_res}")
@@ -172,7 +172,9 @@ class LuiPagesGen(object):
status_entity = self._ha_api.get_entity(item.status)
icon_color = self.get_entity_color(status_entity)
if item.status.startswith("sensor") and cardType == "cardGrid":
icon_id = status_entity.state
icon_id = status_entity.state[:4]
if icon_id[-1] == ".":
icon_id = icon_id[:-1]
else:
icon_color = 17299
return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}"
@@ -251,8 +253,9 @@ class LuiPagesGen(object):
return f"~button~{entityId}~{icon_id}~17299~{name}~{text}"
if entityType == "script":
icon_id = get_icon_id_ha("script", overwrite=icon)
icon_color = self.get_entity_color(entity, overwrite=colorOverride)
text = get_translation(self._locale, "frontend.ui.card.script.run")
return f"~button~{entityId}~{icon_id}~17299~{name}~{text}"
return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}"
if entityType == "lock":
icon_id = get_icon_id_ha("lock", state=entity.state, overwrite=icon)
icon_color = self.get_entity_color(entity, overwrite=colorOverride)
@@ -271,7 +274,7 @@ class LuiPagesGen(object):
icon_id = get_icon_id_ha("input_text", overwrite=icon)
value = entity.state
return f"~text~{entityId}~{icon_id}~17299~{name}~{value}"
return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~error~"
return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~unsupported~"
def generate_entities_page(self, navigation, heading, items, cardType):
command = f"entityUpd~{heading}~{navigation}"
@@ -508,8 +511,8 @@ class LuiPagesGen(object):
def generate_light_detail_page(self, entity):
entity = self._ha_api.get_entity(entity)
def generate_light_detail_page(self, entity_id):
entity = self._ha_api.get_entity(entity_id)
switch_val = 1 if entity.state == "on" else 0
icon_color = self.get_entity_color(entity)
brightness = "disable"
@@ -537,10 +540,10 @@ class LuiPagesGen(object):
color_translation = "Color"
brightness_translation = get_translation(self._locale, "frontend.ui.card.light.brightness")
color_temp_translation = get_translation(self._locale, "frontend.ui.card.light.color_temperature")
self._send_mqtt_msg(f"entityUpdateDetail~{get_icon_id('lightbulb')}~{icon_color}~{switch_val}~{brightness}~{color_temp}~{color}~{color_translation}~{color_temp_translation}~{brightness_translation}")
self._send_mqtt_msg(f"entityUpdateDetail~{entity_id}~{get_icon_id('lightbulb')}~{icon_color}~{switch_val}~{brightness}~{color_temp}~{color}~{color_translation}~{color_temp_translation}~{brightness_translation}")
def generate_shutter_detail_page(self, entity):
entity = self._ha_api.get_entity(entity)
def generate_shutter_detail_page(self, entity_id):
entity = self._ha_api.get_entity(entity_id)
entityType="cover"
device_class = entity.attributes.get("device_class", "window")
icon_id = get_icon_id_ha(entityType, state=entity.state, device_class=device_class)
@@ -571,7 +574,7 @@ class LuiPagesGen(object):
icon_down_status = "disable"
pos_translation = get_translation(self._locale, "frontend.ui.card.cover.position")
self._send_mqtt_msg(f"entityUpdateDetail~{pos}~{pos_translation}: {pos_status}~{pos_translation}~{icon_id}~{icon_up}~{icon_stop}~{icon_down}~{icon_up_status}~{icon_stop_status}~{icon_down_status}")
self._send_mqtt_msg(f"entityUpdateDetail~{entity_id}~{pos}~{pos_translation}: {pos_status}~{pos_translation}~{icon_id}~{icon_up}~{icon_stop}~{icon_down}~{icon_up_status}~{icon_stop_status}~{icon_down_status}")
def send_message_page(self, ident, heading, msg, b1, b2):
self._send_mqtt_msg(f"pageType~popupNotify")

View File

@@ -23,7 +23,8 @@ default_screensaver_color_mapping = {
"tForecast4Val": "65535",
"bar": "65535",
"tMRIcon": "65535",
"tMR": "65535"
"tMR": "65535",
"tTimeAdd": "65535"
}
default_weather_icon_color_mapping = {

View File

@@ -24,8 +24,8 @@ class NsPanelLovelaceUIManager(hass.Hass):
controller = LuiController(self, cfg, send_mqtt_msg)
desired_display_firmware_version = 37
version = "v3.0.0"
desired_display_firmware_version = 38
version = "v3.1.0"
model = cfg.get("model")
if model == "us-l":

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 985 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -1,4 +1,4 @@
# Alarm Card
# Media Card
![card-media](img/card-media.png)
@@ -16,4 +16,4 @@ key | optional | type | default | description
`title` | True | string | `None` | Title of the Page
`entity` | False | string | `None` | contains the entity of the current card
`key` | True | string | `None` | Used by navigate items
`alarmControl` | True | complex | `None` | overwrites the action executed on pressing the left bottom icon, by default this button is used to show a list of open sensors on a failed attempt to arm.
`mediaControl` | True | complex | `None` | overwrites the action executed on pressing the left upper icon (red circle), icon is showing the current type of media and cannot be changed

View File

@@ -62,8 +62,8 @@ key | optional | type | default | description
`locale` | True | string | `en_US` | Used by babel to determinante Date format on screensaver, also used for localization.
`dateFormatBabel` | True | string | `full` | formatting options on https://babel.pocoo.org/en/latest/dates.html?highlight=name%20of%20day#date-fields
`timeFormat` | True | string | `%H:%M` | Time Format on screensaver. Substring after `?` is displayed in a seperate smaller textbox. Useful for 12h time format with AM/PM <pre>`"%I:%M ?%p"`</pre>
`dateAdditonalTemplate` | True | string | `""` | Addional Text dispayed after Date, can contain a Homeassistant Template Example `" - {{ states('sun.sun') }}"`
`timeAdditonalTemplate` | True | string | `""` | Addional Text dispayed below Time, can contain a Homeassistant Template
`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
`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

@@ -138,6 +138,7 @@ Example for the theme config:
#bar: [220, 0, 255]
#tMRIcon: [220, 0, 255]
#tMR: [220, 0, 255]
#tTimeAdd: [220, 0, 255]
#autoWeather automatically colors the screensaver weather icons based upon weather. Uncomment the following line to enable.
#autoWeather: true

View File

@@ -36,7 +36,7 @@ It is also possible to configure different icon overwrites per state:
"off": mdi:lightbulb
```
# Hide item based on state
## Hide item based on state
This sensor will only be shown on the card if it's state is equal to `off`

View File

@@ -2,7 +2,27 @@
## Waiting for content - This is taking longer than usual on the screen
Please check your MQTT Topics in your apps.yaml and your mqtt configuration on tasmota.
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)
You should see something like this:
`INFO MQTT: MQTT Plugin initialization complete`
If you are seeing Messages like this:
`CRITICAL MQTT: Could not complete MQTT Plugin initialization, for Connection was refused due to Not Authorised`
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.
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.
3. Make sure that you are using the same topic in apps.yaml and in your tasmota configuration.
The example values are an working example. Please don't modify the Full Topic. [MQTT Config](https://docs.nspanel.pky.eu/configure_mqtt/)
4. If you are still in the waiting for content screen please share the following items:
- a screenshot of your tasmota mqtt configration (please censor your mqtt password)
- your appdaemon.yaml (please censor your mqtt password)
- your apps.yaml
- the appdaemon log, after restarting the container
## How to update

BIN
docs/img/card-alarm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
docs/img/card-media.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
docs/img/card-qr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -1,6 +1,6 @@
# Flash Tasmota to your NSPanel
You need to connect to your nspanel via serial and flash tasmtoa [tasmota32-nspanel.factory.bin](https://tasmota.github.io/install/firmware/development/tasmota32-nspanel.factory.bin) to your NSPanel.
You need to connect to your nspanel via serial and flash tasmtoa [tasmota32-nspanel.bin](https://tasmota.github.io/install/firmware/development/tasmota32-nspanel.bin) to your NSPanel.
You can use the Tasmota Web Installer to do so. [Tasmota Web Installer](https://tasmota.github.io/install/)
Checkout Blakadders Template Repo for more information on flashing, do not use the autoexec.be from this page.

View File

@@ -1,6 +1,6 @@
# Flash Tasmota to your NSPanel
You need to connect to your nspanel via serial and flash tasmtoa [tasmota32-nspanel.factory.bin](https://tasmota.github.io/install/firmware/development/tasmota32-nspanel.factory.bin) to your NSPanel.
You need to connect to your nspanel via serial and flash tasmtoa [tasmota32-nspanel.bin](https://tasmota.github.io/install/firmware/development/tasmota32-nspanel.bin) to your NSPanel.
You can use the Tasmota Web Installer to do so. [Tasmota Web Installer](https://tasmota.github.io/install/)
Checkout Blakadders Template Repo for more information on flashing, do not use the autoexec.be from this page.

View File

@@ -1,22 +1,23 @@
/*-----------------------------------------------------------------------
TypeScript zur Steuerung des SONOFF NSPanel mit dem ioBroker
- abgestimmt auf TFT 36 / v2.9.0 / BerryDriver 4 / Tasmota 11.1.0
- abgestimmt auf TFT 37 / v3.0.0 / BerryDriver 4 / Tasmota 11.1.0
joBr99 Projekt: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
NsPanelTs.ts (dieses TypeScript in ioBroker) Stable: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
icon_mapping.ts: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts (TypeScript muss in global liegen)
ioBroker-Unterstützung: https://forum.iobroker.net/topic/50888/sonoff-nspanel
ReleaseNotes:
Bugfixes und Erweiterungen seit letzter Verion:
Bugfixes und Erweiterungen seit letzter Version:
- cardQR (für Gäste WLAN)
- cardThermo (Neues Design für Alias Thermostat und zusätzlich für Alias Klimaanlage)
- 08.05.2022 - Menüpfeile bei HardwareButtons (button1Page; button2Page) mit Navigation auf Page 0
- 08.05.2022 - Standard-Brightness über neuen Parameter active einstellbar (Test mit 2.9.3)
- 08.05.2022 - Schalter (Licht, Dimmer, Hue, etc) in cardGrid lassen sich wieder schalten
Known-Bugs --> Bugfix folgt:
- Aktion auf Submenüs schaltet unmittelbar auf vorheriges Mainmenu
- Menü-Pfeile in Subpages (z.B. card QR, cardMedia, etc)
- 14.06.2022 - Aktion auf Submenüs schaltet unmittelbar auf vorheriges Mainmenu (Many thanks to Grrzzz)
- 14.06.2022 - Menü-Pfeile in Subpages (z.B. card QR, cardMedia, etc) (Many thanks to Grrzzz)
- 15.06.2022 - Date/Time im Screensaver auf Basis localString (de-DE/en-EN/nl-NL/etc.)
- 16.06.2022 - Multilingual - config.locale (en-EN, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU)
- 16.06.2022 - Bugfix by Grrzzz - Subpages
Wenn Rule definiert, dann können die Hardware-Tasten ebenfalls für Seitensteuerung (dann nicht mehr als Releais) genutzt werden
Tasmota Konsole:
@@ -70,10 +71,8 @@ Interne Sonoff-Sensoren (über Tasmota):
(!!! Achtung: der interne Sonoff-Sensor liefert keine exakten Daten, da das NSPanel-Board und der ESP selbst Hitze produzieren !!!
ggf. Offset einplanen oder besser einen externen Sensor über Zigbee etc. verwenden)
Timestamp - wird in 0_userdata.0. Zeitpunkt der letzten Sensorübertragung
Tasmota-Status0 - (zyklische Ausführung)
liefert relevanten Tasmota-Informationen und kann bei Bedarf in "function get_tasmota_status0()" erweitert werden. Daten werden in 0_userdata.0. abgelegt
Erforderliche Adapter:
Accu-Wheater: - Bei Nutzung der Wetterfunktionen (und zur Icon-Konvertierung) im Screensaver
Alexa2: - Bei Nutzung der dynamischen SpeakerList in der cardMedia
@@ -81,10 +80,9 @@ Erforderliche Adapter:
Alias-Manager - !!! ausschießlich für MEDIA-Alias
MQTT-Adapter - Für Kommunikation zwischen Skript und Tasmota
JavaScript-Adapter
Upgrades in Konsole:
Tasmota BerryDriver : Backlog UpdateDriverVersion https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be; Restart 1
TFT EU STABLE Version : FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v2.9.0.tft
TFT EU STABLE Version : FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.0.0.tft
---------------------------------------------------------------------------------------
*/
var Icons = new IconsSelector();
@@ -93,8 +91,9 @@ const NSPanel_Path = "0_userdata.0.NSPanel.1."
const Debug = false;
var manually_Update = true;
const Months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
const Days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
//const Months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
//const Days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
//const Off: RGB = { red: 68, green: 115, blue: 158 }; //Blau-Off
const Off: RGB = { red: 253, green: 128, blue: 0 }; //Orange-Off - schönere Farbübergänge
const On: RGB = { red: 253, green: 216, blue: 53 };
@@ -144,7 +143,7 @@ var weatherForecast = true; //true = WheatherForecast 5 Days --- false = Config
//Alexa-Instanz
var alexaInstanz = "alexa2.0"
var alexaDevice = "G0XXXXXXXXXXXXXXX"; //Primär zu steuerndes Device oder Gruppe aus alexa2-Adapter (Seriennummer)
var alexaDevice = "G0XXXXXXXXXXXXXX"; //Primär zu steuerndes Device oder Gruppe aus alexa2-Adapter (Seriennummer)
// Wenn alexaSpeakerList definiert, dann werden Einträge verwendet, sonst alle relevanten Devices aus Alexa-Instanz
// Speakerwechsel funktioniert nicht bei Radio/TuneIn sonden bei Playlists
@@ -179,6 +178,7 @@ var Test_Licht: PageEntities =
"heading": "Color Aliase",
"useColor": true,
"subPage": false,
"parent": Test_Licht,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.TestRGBLichteinzeln", name: "RGB-Licht Hex-Color", interpolateColor: true},
//<PageItem>{ id: "alias.0.NSPanel_1.TestFarbtemperatur", name: "Farbtemperatur", interpolateColor: true},
@@ -194,6 +194,7 @@ var Test_Funktionen: PageEntities =
"heading": "Sonstige Aliase",
"useColor": true,
"subPage": false,
"parent": Test_Funktionen,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.TestLautstärke", offColor: MSRed /*if mute=true*/, onColor: MSGreen ,name: "Echo Spot Büro", minValue: 0, maxValue: 100},
<PageItem>{ id: "alias.0.NSPanel_1.TestTemperatur",name: "Temperatur außen", icon: "thermometer", onColor: White},
@@ -208,6 +209,7 @@ var Buero_Seite_1: PageEntities =
"heading": "Büro",
"useColor": true,
"subPage": false,
"parent": Buero_Seite_1,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Schreibtischlampe", interpolateColor: true},
<PageItem>{ id: "alias.0.NSPanel_1.Deckenbeleuchtung", interpolateColor: true},
@@ -222,6 +224,7 @@ var Fenster_1: PageEntities =
"heading": "Fenster und Türen",
"useColor": true,
"subPage": false,
"parent": Fenster_1,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.TestFenster", offColor: MSRed, onColor: MSGreen, name: "Büro Fenster"},
<PageItem>{ id: "alias.0.NSPanel_1.Haustuer", offColor: MSRed, onColor: MSGreen, name: "Haustür"},
@@ -236,6 +239,7 @@ var Button_1: PageEntities =
"heading": "Button Aliase",
"useColor": true,
"subPage": false,
"parent": Button_1,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.TestTastensensor", name: "Tastensensor (FFN)"},
<PageItem>{ id: "alias.0.NSPanel_1.Radio.NDR2", icon: "radio", name: "Taste (NDR2)", onColor: colorRadio},
@@ -248,6 +252,7 @@ var Subpages_1: PageEntities =
"heading": "Test Subpages",
"useColor": true,
"subPage": false,
"parent": Subpages_1,
"items": [
<PageItem>{ navigate: true, id: "Abfall", onColor: White, name: "Abfallkalender"},
<PageItem>{ navigate: true, id: "WLAN", onColor: White, name: "Gäste WLAN"},
@@ -261,6 +266,7 @@ var Abfall: PageEntities =
"heading": "Abfallkalender",
"useColor": true,
"subPage": true,
"parent": Subpages_1,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
<PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
@@ -275,6 +281,7 @@ var Buero_Seite_2: PageGrid =
"heading": "Büro 2",
"useColor": true,
"subPage": false,
"parent": Buero_Seite_2,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Schreibtischlampe", name: "Schreibtisch"},
<PageItem>{ id: "alias.0.NSPanel_1.Deckenbeleuchtung", name: "Deckenlampe"},
@@ -291,6 +298,7 @@ var Alexa: PageMedia =
"heading": "Alexa",
"useColor": true,
"subPage": false,
"parent": Alexa,
"items": [<PageItem>{ id: "alias.0.NSPanel_1.Alexa.PlayerBuero" }]
};
@@ -300,6 +308,7 @@ var Buero_Themostat: PageThermo =
"heading": "Test Thermostat",
"useColor": true,
"subPage": false,
"parent": Buero_Themostat,
"items": [<PageItem>{ id: "alias.0.NSPanel_1.Thermostat_Büro", minValue: 50, maxValue: 300 }]
};
@@ -309,6 +318,7 @@ var Buero_Klimaanlage: PageThermo =
"heading": "Test Klimaanlage",
"useColor": true,
"subPage": false,
"parent": Buero_Klimaanlage,
"items": [<PageItem>{ id: "alias.0.NSPanel_1.TestKlimaanlage", minValue: 170, maxValue: 250}]
};
@@ -319,6 +329,7 @@ var WLAN: PageQR =
"heading": "Gäste WLAN",
"useColor": true,
"subPage": true,
"parent": Subpages_1,
"items": [<PageItem>{ id: "alias.0.NSPanel_1.Guest_Wifi" }]
};
@@ -328,6 +339,7 @@ var Buero_Alarm: PageAlarm =
"heading": "Alarm",
"useColor": true,
"subPage": false,
"parent": Buero_Alarm,
"items": [<PageItem>{ id: "alias.0.NSPanel_1.Alarm" }]
};
@@ -337,6 +349,7 @@ var button1Page: PageGrid =
"heading": "Radio",
"useColor": true,
"subPage": false,
"parent": button1Page,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Radio.FFN", icon: "radio", name: "FFN", onColor: colorRadio},
<PageItem>{ id: "alias.0.NSPanel_1.Radio.Antenne" , icon: "radio", name: "Antenne Nds.", onColor: colorRadio},
@@ -353,6 +366,7 @@ var button2Page: PageEntities =
"heading": "Büro",
"useColor": true,
"subPage": false,
"parent": button2Page,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Schreibtischlampe"},
<PageItem>{ id: "alias.0.NSPanel_1.Deckenbeleuchtung"}
@@ -366,6 +380,7 @@ var Service: PageEntities =
"heading": "NSPanel Service",
"useColor": true,
"subPage": false,
"parent": Service,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.NSPanel_AutoUpdate", name: "Auto-Updates" ,icon: "update", offColor: MSRed, onColor: MSGreen},
<PageItem>{ navigate: true, id: "NSPanel_Infos", icon: "information-outline", onColor: White, name: "NSPanel Infos"},
@@ -381,6 +396,7 @@ var NSPanel_Infos: PageEntities =
"heading": "NSPanel Infos",
"useColor": true,
"subPage": true,
"parent": Service,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.NSPanel_Hardware", name: "Hardware", icon: "memory", offColor: MSYellow, onColor: MSYellow, useColor: true},
<PageItem>{ id: "alias.0.NSPanel_1.NSPanel_ESP_Temp", name: "ESP Temperatur", icon: "thermometer", unit: "°C", offColor: MSYellow, onColor: MSYellow, useColor: true},
@@ -396,6 +412,7 @@ var NSPanel_Einstellungen: PageEntities =
"heading": "Screensaver",
"useColor": true,
"subPage": true,
"parent": Service,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Dimmode_BrightnessDay", name: "Brightness Tag", icon: "brightness-5", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 5, maxValue: 10},
<PageItem>{ id: "alias.0.NSPanel_1.Dimmode_BrightnessNight", name: "Brightness Nacht", icon: "brightness-4", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 4},
@@ -411,6 +428,7 @@ var NSPanel_Firmware_Updates: PageEntities =
"heading": "Firmware-Updates",
"useColor": true,
"subPage": true,
"parent": Service,
"items": [
<PageItem>{ id: "alias.0.NSPanel_1.Tasmota_Version", name: "Tasmota Firmware", useColor: true},
<PageItem>{ id: "alias.0.NSPanel_1.TFT_Firmware", name: "TFT-Firmware", useColor: true},
@@ -428,9 +446,9 @@ export const config: Config = {
dimmode: 8,
active: 100, //Standard-Brightness TFT
screenSaverDoubleClick: false,
locale: "de_DE",
timeFormat: "%H:%M",
dateFormat: "%A, %d. %B %Y",
locale: "en-EN", //en-EN, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU
timeFormat: "%H:%M", //currently not used
dateFormat: "%A, %d. %B %Y", //currently not used
weatherEntity: "alias.0.Wetter",
defaultOffColor: Off,
defaultOnColor: On,
@@ -440,7 +458,6 @@ export const config: Config = {
Buero_Seite_2,
Buero_Seite_1,
Buero_Klimaanlage,
//WLAN,
Button_1,
Test_Licht,
Test_Funktionen,
@@ -451,6 +468,13 @@ export const config: Config = {
Buero_Alarm,
Service
],
subPages: [
Abfall,
WLAN,
NSPanel_Infos,
NSPanel_Einstellungen,
NSPanel_Firmware_Updates
],
button1Page: button1Page,
button2Page: button2Page
};
@@ -487,7 +511,7 @@ var screensaverEnabled : boolean = false;
var pageId = 0;
//Neu für Subpages
var subPage_open = false;
var activePage = undefined;
schedule("* * * * *", function () {
SendTime();
@@ -519,15 +543,29 @@ schedule("*/30 * * * *", function () {
});
//Mit Start auf Updates checken
get_locales();
setState(config.panelSendTopic, 'pageType~pageStartup');
get_tasmota_status0()
get_tasmota_status0();
get_panel_update_data();
check_updates();
//------------------Begin Update Functions
function get_locales() {
exec('curl https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/ioBroker_NSPanel_locales.json', function (error, result, stderr){
if (result) {
let BerryDriverVersionOnline = result.substring((result.indexOf("version_of_this_script = ") + 24), result.indexOf("version_of_this_script = ") + 27).replace(/\s+/g, '');
createState(NSPanel_Path + "NSPanel_locales_json");
var timer = setTimeout(function() {
setIfExists(NSPanel_Path + 'NSPanel_locales_json', result);
}, 2000);
}
});
}
function check_updates() {
const desired_display_firmware_version = 36;
const desired_display_firmware_version = 37;
const berry_driver_version = 4;
if (Debug) console.log("Check-Updates");
@@ -658,7 +696,7 @@ function get_panel_update_data() {
check_version_tft_firmware();
check_online_display_firmware();
}
function get_current_tasmota_ip_address() {
let mqttInfo2 = config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 6) + "INFO2";
let Tasmota_Info2 = JSON.parse(getState(mqttInfo2).val);
@@ -743,7 +781,7 @@ function check_online_display_firmware() {
}
on({ id: config.panelRecvTopic }, function (obj) {
if (obj.state.val.startsWith('\{"CustomRecv":')) {
if (obj.state.val.startsWith('\{"CustomRecv":')) {
var json = JSON.parse(obj.state.val);
var split = json.CustomRecv.split(",");
if (split[0] == "event" && split[1] == "startup") {
@@ -761,7 +799,7 @@ function update_berry_driver_version() {
}
function update_tft_firmware() {
const tft_version : string = "v2.9.0";
const tft_version : string = "v3.0.0";
var desired_display_firmware_url = "http://nspanel.pky.eu/lovelace-ui/github/nspanel-" + tft_version + ".tft"
require("request")((['http://',get_current_tasmota_ip_address(),'/cm?cmnd=FlashNextion ', desired_display_firmware_url].join('')), async function (error, response, result) {
createState(NSPanel_Path + "TFT_Firmware.onlineVersion");
@@ -842,9 +880,9 @@ function HandleMessage(typ: string, method: string, page: number, words: Array<s
case "pageOpenDetail":
screensaverEnabled = false;
UnsubscribeWatcher();
let pageItem = config.pages[pageId].items.find(e => e.id === words[3]);
let pageItem = findPageItem(words[3]);
if (pageItem !== undefined)
SendToPanel(GenerateDetailPage(words[2], pageItem));
SendToPanel(GenerateDetailPage(words[2], pageItem));
case "buttonPress2":
screensaverEnabled = false;
HandleButtonEvent(words);
@@ -860,6 +898,23 @@ function HandleMessage(typ: string, method: string, page: number, words: Array<s
}
}
function findPageItem(searching: String) : PageItem {
let pageItem = activePage.items.find(e => e.id === searching);
if (pageItem !== undefined) {
return pageItem;
}
config.subPages.every (sp => {
pageItem = sp.items.find(e => e.id === searching);
if (pageItem !== undefined) {
return false;
}
return true;
});
return pageItem;
}
function GeneratePage(page: Page): void {
switch (page.type) {
case "cardEntities":
@@ -907,27 +962,32 @@ function HandleStartupProcess(): void {
}
function SendDate(): void {
var d = new Date();
var day = Days[d.getDay()];
var date = d.getDate();
var month = Months[d.getMonth()];
var year = d.getFullYear();
var _sendDate = "date~" + day + " " + date + " " + month + " " + year;
SendToPanel(<Payload>{ payload: _sendDate });
var month = d.getMonth();
var day = d.getDate();
const date = new Date(year,month,day,1,1,1);
const options : any = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var _SendDate = date.toLocaleDateString(config.locale, options);
SendToPanel(<Payload>{ payload: "date~" + _SendDate });
}
function SendTime(): void {
var d = new Date();
var hr = d.getHours().toString();
var min = d.getMinutes().toString();
if (d.getHours() < 10) {
hr = "0" + d.getHours().toString();
}
if (d.getMinutes() < 10) {
min = "0" + d.getMinutes().toString();
}
SendToPanel(<Payload>{ payload: "time~" + hr + ":" + min });
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth();
var day = d.getDate();
var hr = d.getHours();
var min = d.getMinutes();
const date = new Date(year, month, day, hr, min, 1);
var _SendTime = date.toLocaleTimeString(config.locale, { hour: '2-digit', minute: '2-digit', hour12: false});
SendToPanel(<Payload>{ payload: "time~" + _SendTime });
}
function ScreensaverDimmode() {
@@ -957,6 +1017,7 @@ function GenerateGridPage(page: PageGrid): Payload[] {
}
function GeneratePageElements(page: Page): string {
activePage = page;
let maxItems = 0;
switch (page.type) {
case "cardThermo":
@@ -981,22 +1042,10 @@ function GeneratePageElements(page: Page): string {
let pageData = "entityUpd~" + page.heading + "~" + GetNavigationString(pageId);
//--------------------------------------Subpage----------------
if (page.subPage) {
subPage_open = true;
pageData = "entityUpd~" + page.heading + "~" + "1|0";
}
//---------------------------------------------------------
for (let index = 0; index < maxItems; index++) {
if (page.items[index] !== undefined) {
pageData += CreateEntity(page.items[index], index + 1, page.useColor);
}
/*
else {
pageData += CreateEntity(<PageItem>{ id: "delete" }, index + 1);
//muss das wirklich? Wo erforderlich wird es mitgegeben!
}
*/
}
return pageData;
}
@@ -1017,7 +1066,7 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
type = "button";
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("gesture-tap-button");
iconColor = GetIconColor(pageItem, true, useColors);
let buttonText = pageItem.buttonText !== undefined ? pageItem.buttonText : "PRESS";
let buttonText = pageItem.buttonText !== undefined ? pageItem.buttonText : "PRESS";
return "~" + type + "~" + "navigate." + pageItem.id + "~" + iconId + "~" + iconColor + "~" + pageItem.name + "~" + buttonText;
}
@@ -1169,7 +1218,7 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
if (val === true || val === "true") {
optVal = "1"
iconColor = GetIconColor(pageItem, existsState(pageItem.id + ".ACTUAL") ? 100 - getState(pageItem.id + ".ACTUAL").val : true, useColors);
}
}
return "~" + type + "~" + pageItem.id + "~" + iconId + "~" + iconColor + "~" + name + "~" + optVal;
@@ -1187,12 +1236,12 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
if (getState(pageItem.id + ".ACTUAL").val) {
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : o.common.role == "door" ? Icons.GetIcon("door-open") : Icons.GetIcon("window-open-variant");
iconColor = GetIconColor(pageItem, false, useColors);
var windowState = "opened"
var windowState = findLocale("window","opened");
} else {
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : o.common.role == "door" ? Icons.GetIcon("door-closed") : Icons.GetIcon("window-closed-variant");
//iconId = Icons.GetIcon("window-closed-variant");
iconColor = GetIconColor(pageItem, true, useColors);
var windowState = "closed"
var windowState = findLocale("window","closed");
}
RegisterEntityWatcher(pageItem.id + ".ACTUAL");
}
@@ -1253,12 +1302,13 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
if (getState(pageItem.id + ".ACTUAL").val) {
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("lock");
iconColor = GetIconColor(pageItem, true, useColors);
var lockState = "UNLOCK"
var lockState = findLocale("lock","UNLOCK")
} else {
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("lock-open-variant");
iconColor = GetIconColor(pageItem, false, useColors);
var lockState = "LOCK"
var lockState = findLocale("lock","LOCK")
}
lockState = pageItem.buttonText !== undefined ? pageItem.buttonText : lockState;
RegisterEntityWatcher(pageItem.id + ".ACTUAL");
}
@@ -1325,6 +1375,20 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
return "~delete~~~~~"
}
function findLocale(controlsObject: string, controlsState: string) : string {
var locale = config.locale;
var strJson = getState(NSPanel_Path + 'NSPanel_locales_json').val;
var obj = JSON.parse(strJson);
var strLocale = obj[controlsObject][controlsState][locale];
if (strLocale != undefined) {
return strLocale;
} else {
return controlsState;
}
}
function GetIconColor(pageItem: PageItem, value: (boolean | number), useColors: boolean): number {
// dimmer
if ((pageItem.useColor || useColors) && pageItem.interpolateColor && typeof (value) === "number") {
@@ -1353,13 +1417,13 @@ function RegisterEntityWatcher(id: string): void {
if (subscriptions.hasOwnProperty(id)) {
return;
}
subscriptions[id] = (on({ id: id, change: 'any' }, function (data) {
if(pageId >= 0)
SendToPanel({ payload: GeneratePageElements(config.pages[pageId]) });
subscriptions[id] = (on({ id: id, change: 'any' }, function (data) {
if(pageId == -1 && config.button1Page != undefined)
SendToPanel({ payload: GeneratePageElements(config.button1Page) });
if(pageId == -2 && config.button2Page != undefined)
SendToPanel({ payload: GeneratePageElements(config.button2Page) });
if(activePage!=undefined)
SendToPanel({ payload: GeneratePageElements(activePage) });
}))
}
@@ -1591,24 +1655,26 @@ function GenerateThermoPage(page: PageThermo): Payload[] {
out_msgs.push({ payload: "entityUpd~"
+ name + "~" //Heading
+ GetNavigationString(pageId) + "~" //Page Navigation
+ id + "~" //internalNameEntiy
+ currentTemp + "°C" + "~" //Ist-Temperatur (String)
+ destTemp + "~" //Soll-Temperatur (numerisch ohne Komma)
+ statusStr + "~" //Mode
+ minTemp + "~" //Thermostat Min-Temperatur
+ maxTemp + "~" //Thermostat Max-Temperatur
+ stepTemp + "~" //Schritte für Soll (5°C)
+ icon_res //Icons Status
+ "Aktuell" + "~" //Bezeicher vor Aktueller Raumtemperatur
+ "Status" + "~" //Bezeicner vor
+ "HVAC" + "~" //Bezeichner vor HVAC
+ "°C"}) //Bezeichner Hinter Solltemp
+ name + "~" //Heading
+ GetNavigationString(pageId) + "~" //Page Navigation
+ id + "~" //internalNameEntiy
+ currentTemp + config.temperatureUnit + "~" //Ist-Temperatur (String)
+ destTemp + "~" //Soll-Temperatur (numerisch ohne Komma)
+ statusStr + "~" //Mode
+ minTemp + "~" //Thermostat Min-Temperatur
+ maxTemp + "~" //Thermostat Max-Temperatur
+ stepTemp + "~" //Schritte für Soll (5°C)
+ icon_res //Icons Status
+ findLocale("thermostat","Currently") + "~" //Bezeicher vor Aktueller Raumtemperatur
+ findLocale("thermostat","State") + "~" //Bezeicner vor
+ findLocale("thermostat","Action") + "~" //Bezeichner vor HVAC
+ config.temperatureUnit + "~" //Bezeichner hinter Solltemp
+ "" + "~" //iconTemperature
+ "" //dstTempTwoTempMode
});
}
if (Debug) console.log(out_msgs);
return out_msgs
}
@@ -1620,7 +1686,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
out_msgs.push({ payload: "pageType~cardMedia" });
if (existsObject(id)) {
let name = getState(id + ".ALBUM").val;
let name = getState(id + ".ALBUM").val;
let media_icon = Icons.GetIcon("playlist-music");
let title = getState(id + ".TITLE").val;
let author = getState(id + ".ARTIST").val;
@@ -1674,7 +1740,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
}
if (Debug) console.log(out_msgs);
return out_msgs
}
}
function GenerateAlarmPage(page: PageAlarm): Payload[] {
var id = page.items[0].id
@@ -1769,6 +1835,8 @@ function GenerateAlarmPage(page: PageAlarm): Payload[] {
}
function GenerateQRPage(page: PageQR): Payload[] {
activePage = page;
var id = page.items[0].id
var out_msgs: Array<Payload> = [];
out_msgs.push({ payload: "pageType~cardQR" });
@@ -1857,8 +1925,8 @@ function HandleButtonEvent(words): void {
GeneratePage(eval((words[2]).substring(9, (words[2]).length)));
return;
}
switch (buttonAction) {
switch (buttonAction) {
case "bUp":
if (pageId < 0) { //Prüfen, ob button1page oder button2page
pageId = 0;
@@ -1876,16 +1944,21 @@ function HandleButtonEvent(words): void {
break;
case "bPrev":
var pageNum = ((pageId - 1) % config.pages.length);
pageId = Math.abs(pageNum);
UnsubscribeWatcher();
GeneratePage(config.pages[pageId]);
//-------------Subpage
if (subPage_open) {
subPage_open = false;
HandleButtonEvent(['event','buttonPress2','cardEntities','bNext'])
}
//--------------------------------
pageId = Math.abs(pageNum);
UnsubscribeWatcher();
if(activePage!=undefined && activePage.parent!=undefined) {
//update pageID
for (let i=0; i<config.pages.length; i++) {
if(config.pages[i] == activePage.parent) {
pageId = i;
break;
}
}
GeneratePage(activePage.parent);
}
else {
GeneratePage(config.pages[pageId]);
}
break;
case "bExit":
if (config.screenSaverDoubleClick) {
@@ -1894,7 +1967,7 @@ function HandleButtonEvent(words): void {
}
} else {
if (Debug) console.log("bExit: " + words[4] + " - "+ pageId)
GeneratePage(config.pages[pageId]);
GeneratePage(activePage);
}
break;
case "notifyAction":
@@ -1907,7 +1980,7 @@ function HandleButtonEvent(words): void {
}
setIfExists(config.panelSendTopic, "exitPopup")
break;
case "OnOff":
case "OnOff":
if (existsObject(id)) {
var action = false
if (words[4] == "1")
@@ -1940,7 +2013,7 @@ function HandleButtonEvent(words): void {
case "down":
setIfExists(id + ".CLOSE", true)
break;
case "button":
case "button":
if (existsObject(id)) {
var action = false
if (words[4] == "1")
@@ -1977,14 +2050,15 @@ function HandleButtonEvent(words): void {
setIfExists(id + ".SET", parseInt(words[4])) ? true : setIfExists(id + ".ACTUAL", parseInt(words[4]));
}, 250);
break;
case "brightnessSlider":
case "brightnessSlider":
(function () {if (timeoutSlider) {clearTimeout(timeoutSlider); timeoutSlider = null;}})();
timeoutSlider = setTimeout(async function () {
if (existsObject(id)) {
if (existsObject(id)) {
let o = getObject(id);
let pageItem = config.pages[pageId].items.find(e => e.id === id);
let pageItem = findPageItem(id);
switch (o.common.role) {
case "dimmer":
case "dimmer":
if (pageItem.minValueBrightness != undefined && pageItem.maxValueBrightness != undefined) {
let sliderPos = Math.trunc(scale(parseInt(words[4]), 0, 100, pageItem.maxValueBrightness, pageItem.minValueBrightness))
setIfExists(id + ".SET", sliderPos) ? true : setIfExists(id + ".ACTUAL", sliderPos);
@@ -2010,7 +2084,7 @@ function HandleButtonEvent(words): void {
case "colorTempSlider": // Armilar - Slider tickt verkehrt - Hell = 0 / Dunkel = 100 -> Korrektur
(function () {if (timeoutSlider) {clearTimeout(timeoutSlider); timeoutSlider = null;}})();
timeoutSlider = setTimeout(async function () {
let pageItem = config.pages[pageId].items.find(e => e.id === id);
let pageItem = findPageItem(id);
if (pageItem.minValueColorTemp !== undefined && pageItem.minValueColorTemp !== undefined) {
let colorTempK = Math.trunc(scale(parseInt(words[4]), 0, 100, pageItem.minValueColorTemp, pageItem.maxValueColorTemp));
setIfExists(id + ".TEMPERATURE", (colorTempK));
@@ -2181,7 +2255,9 @@ function HandleButtonEvent(words): void {
function GetNavigationString(pageId: number): string {
if (Debug) console.log(pageId);
if (Debug) console.log(subPage_open);
if(activePage.subPage)
return "1|0";
switch (pageId) {
case 0:
@@ -2236,12 +2312,12 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
+ "disable" + "~" //sliderBrightnessPos
+ "disable" + "~" //sliderColorTempPos
+ "disable" + "~" //colorMode
+ "Color" + "~" //Color-Bezeichnung
+ "Temperature" + "~" //Temperature-Bezeichnung
+ "Brightness" }) //Brightness-Bezeichnung
+ findLocale("lights","Color") + "~" //Color-Bezeichnung
+ findLocale("lights","Temperature") + "~" //Temperature-Bezeichnung
+ findLocale("lights","Brightness")}); //Brightness-Bezeichnung
}
//Dimmer
//Dimmer
if (o.common.role == "dimmer") {
if (existsState(id + ".ON_ACTUAL")) {
val = getState(id + ".ON_ACTUAL").val;
@@ -2256,8 +2332,8 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
var iconColor = GetIconColor(pageItem, val, false);
switchVal = "1"
}
if (existsState(id + ".ACTUAL")) {
if (existsState(id + ".ACTUAL")) {
if (pageItem.minValueBrightness != undefined && pageItem.maxValueBrightness != undefined) {
brightness = Math.trunc(scale(getState(id + ".ACTUAL").val, pageItem.minValueBrightness, pageItem.maxValueBrightness, 100, 0));
} else {
@@ -2283,9 +2359,9 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
+ brightness + "~" //sliderBrightnessPos
+ "disable" + "~" //sliderColorTempPos
+ "disable" + "~" //colorMod
+ "Color" + "~" //Color-Bezeichnung
+ "Temperature" + "~" //Temperature-Bezeichnung
+ "Brightness" }) //Brightness-Bezeichnung
+ findLocale("lights","Color") + "~" //Color-Bezeichnung
+ findLocale("lights","Temperature") + "~" //Temperature-Bezeichnung
+ findLocale("lights","Brightness")}); //Brightness-Bezeichnung
}
@@ -2347,9 +2423,9 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
+ brightness + "~" //sliderBrightnessPos
+ colorTemp + "~" //sliderColorTempPos
+ colorMode + "~" //colorMode (if hue-alias without hue-datapoint, then disable)
+ "Color" + "~" //Color-Bezeichnung
+ "Temperature" + "~" //Temperature-Bezeichnung
+ "Brightness" }) //Brightness-Bezeichnung
+ findLocale("lights","Color") + "~" //Color-Bezeichnung
+ findLocale("lights","Temperature") + "~" //Temperature-Bezeichnung
+ findLocale("lights","Brightness")}); //Brightness-Bezeichnung
}
//RGB-Licht
@@ -2409,9 +2485,9 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
+ brightness + "~" //sliderBrightnessPos
+ colorTemp + "~" //sliderColorTempPos
+ colorMode + "~" //colorMode (if hue-alias without hue-datapoint, then disable)
+ "Color" + "~" //Color-Bezeichnung
+ "Temperature" + "~" //Temperature-Bezeichnung
+ "Brightness" }) //Brightness-Bezeichnung
+ findLocale("lights","Color") + "~" //Color-Bezeichnung
+ findLocale("lights","Temperature") + "~" //Temperature-Bezeichnung
+ findLocale("lights","Brightness")}); //Brightness-Bezeichnung
}
//RGB-Licht-einzeln (HEX)
@@ -2475,9 +2551,9 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
+ brightness + "~" //sliderBrightnessPos
+ colorTemp + "~" //sliderColorTempPos
+ colorMode + "~" //colorMode (if hue-alias without hue-datapoint, then disable)
+ "Color" + "~" //Color-Bezeichnung
+ "Temperature" + "~" //Temperature-Bezeichnung
+ "Brightness" }) //Brightness-Bezeichnung)
+ findLocale("lights","Color") + "~" //Color-Bezeichnung
+ findLocale("lights","Temperature") + "~" //Temperature-Bezeichnung
+ findLocale("lights","Brightness")}); //Brightness-Bezeichnung
}
//Farbtemperatur
@@ -2522,16 +2598,16 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
console.warn("Alias-Datenpunkt: " + id + ".TEMPERATURE could not be read");
}
out_msgs.push({ payload: "entityUpdateDetail" + "~" //entityUpdateDetail
+ icon + "~" //iconId
+ iconColor + "~" //iconColor
+ switchVal + "~" //buttonState
+ brightness + "~" //sliderBrightnessPos
+ colorTemp + "~" //sliderColorTempPos
+ colorMode + "~" //colorMode (if hue-alias without hue-datapoint, then disable)
+ "Color" + "~" //Color-Bezeichnung
+ "Temperature" + "~" //Temperature-Bezeichnung
+ "Brightness" }) //Brightness-Bezeichnung
out_msgs.push({ payload: "entityUpdateDetail" + "~" //entityUpdateDetail
+ icon + "~" //iconId
+ iconColor + "~" //iconColor
+ switchVal + "~" //buttonState
+ brightness + "~" //sliderBrightnessPos
+ colorTemp + "~" //sliderColorTempPos
+ colorMode + "~" //colorMode (if hue-alias without hue-datapoint, then disable)
+ findLocale("lights","Color") + "~" //Color-Bezeichnung
+ findLocale("lights","Temperature") + "~" //Temperature-Bezeichnung
+ findLocale("lights","Brightness")}); //Brightness-Bezeichnung
}
}
@@ -2545,10 +2621,10 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
val = getState(id + ".SET").val;
RegisterDetailEntityWatcher(id + ".SET", pageItem, type);
}
out_msgs.push({ payload: "entityUpdateDetail" + "~" //entityUpdateDetail
+ val + "~" //Shutterposition
out_msgs.push({ payload: "entityUpdateDetail" + "~" //entityUpdateDetail
+ val + "~" //Shutterposition
+ "" + "~"
+ "Position"}) //Position-Bezeichnung
+ findLocale("blinds","Position")}); //Position-Bezeichnung
}
}
return out_msgs
@@ -2590,7 +2666,7 @@ function HandleScreensaverUpdate(): void {
let TempMax = getState("accuweather.0.Summary.TempMax_d" + i).val;
let DayOfWeek = getState("accuweather.0.Summary.DayOfWeek_d" + i).val;
let WeatherIcon = GetAccuWeatherIcon(getState("accuweather.0.Summary.WeatherIcon_d" + i).val);
payloadString += DayOfWeek + "~" + Icons.GetIcon(WeatherIcon) + "~" + TempMax + " °C~";
payloadString += DayOfWeek + "~" + Icons.GetIcon(WeatherIcon) + "~" + TempMax + " " + config.temperatureUnit + "~";
}
}
else {
@@ -2824,6 +2900,7 @@ type Page = {
items: PageItem[],
useColor: boolean,
subPage: boolean,
parent: Page,
};
interface PageEntities extends Page {
@@ -2903,6 +2980,7 @@ type Config = {
defaultOnColor: RGB,
defaultOffColor: RGB,
pages: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid)[],
subPages: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid)[],
button1Page: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | null),
button2Page: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | null),
};

View File

@@ -0,0 +1,143 @@
{
"lights":{
"Brightness":{
"en-EN":"Brightness",
"de-DE":"Helligkeit",
"nl-NL":"Helderheid",
"da-DK":"Lysstyrke",
"es-ES":"Brillo",
"fr-FR":"Luminosité",
"it-IT":"Luminosità",
"ru-RU":"Яркость"
},
"Color":{
"en-EN":"Color",
"de-DE":"Farbe",
"nl-NL":"Kleur",
"da-DK":"Farve",
"es-ES":"Colore",
"fr-FR":"Couleur",
"ru-RU":"цвет"
},
"Temperature":{
"en-EN":"Temperature",
"de-DE":"Temperatur",
"nl-NL":"Temperatuur",
"da-DK":"Temperatur",
"es-ES":"temperatura",
"fr-FR":"Température",
"it-IT":"Temperatura",
"ru-RU":"температура"
}
},
"window":{
"closed":{
"en-EN":"closed",
"de-DE":"geschlossen",
"nl-NL":"gesloten",
"da-DK":"lukket",
"es-ES":"cerrada",
"fr-FR":"fermée ",
"it-IT":"chiusa",
"ru-RU":"закрыто"
},
"opened":{
"en-EN":"opened",
"de-DE":"offen",
"nl-NL":"geopend",
"da-DK":"åbnede",
"es-ES":"abierta",
"fr-FR":"ouverte ",
"it-IT":"aperta",
"ru-RU":"открыто"
}
},
"door":{
"closed":{
"en-EN":"closed",
"de-DE":"geschlossen",
"nl-NL":"gesloten",
"da-DK":"lukket",
"es-ES":"cerrada",
"fr-FR":"fermée ",
"it-IT":"chiusa",
"ru-RU":"закрыто"
},
"opened":{
"en-EN":"opened",
"de-DE":"offen",
"nl-NL":"geopend",
"da-DK":"åbnede",
"es-ES":"abierta",
"fr-FR":"ouverte ",
"it-IT":"aperta",
"ru-RU":"открыто"
}
},
"lock":{
"LOCK":{
"en-EN":"lock",
"de-DE":"schließen",
"nl-NL":"stilgelegd",
"da-DK":"låse",
"es-ES":"cerrar",
"fr-FR":"bloquer ",
"it-IT":"serratura",
"ru-RU":"замок"
},
"UNLOCK":{
"en-EN":"unlock",
"de-DE":"öffnen",
"nl-NL":"openen",
"da-DK":"at åbne",
"es-ES":"abrir",
"fr-FR":"ouvrir ",
"it-IT":"aprire",
"ru-RU":"открыть"
}
},
"blinds":{
"Position":{
"en-EN":"Position",
"de-DE":"Position",
"nl-NL":"Positie",
"da-DK":"Blindstilling",
"es-ES":"Posición",
"fr-FR":"Position ",
"it-IT":"Posizione",
"ru-RU":"Слепая"
}
},
"thermostat":{
"Currently":{
"en-EN":"Currently",
"de-DE":"Aktuell",
"nl-NL":"momenteel",
"da-DK":"i øjeblikket",
"es-ES":"corrientemente",
"fr-FR":"actuellement ",
"it-IT":"attualmente",
"ru-RU":"актуальный"
},
"State":{
"en-EN":"State",
"de-DE":"Status",
"nl-NL":"toestand",
"da-DK":"stat",
"es-ES":"estado",
"fr-FR":"statut ",
"it-IT":"stato",
"ru-RU":"статус"
},
"Action":{
"en-EN":"Action",
"de-DE":"Aktion",
"nl-NL":"actie",
"da-DK":"handling",
"es-ES":"acción",
"fr-FR":"action ",
"it-IT":"azione",
"ru-RU":"действие"
}
}
}