mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-22 23:44:25 +01:00
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34340d2ac4 | ||
|
|
ca59b35b87 | ||
|
|
1539149c09 | ||
|
|
2851c80bb5 | ||
|
|
383fc978fd | ||
|
|
1e57b46f9d | ||
|
|
2c1868ba29 | ||
|
|
8366555eed | ||
|
|
6bccd8dd50 | ||
|
|
6ccc5bafe1 | ||
|
|
89174c2bbd | ||
|
|
f5395153ee | ||
|
|
e9fb5ba32b | ||
|
|
661494b0b5 | ||
|
|
ea49bc9d70 | ||
|
|
1210838186 | ||
|
|
0c872bfa87 | ||
|
|
e3a30e2da8 | ||
|
|
2a829e7217 | ||
|
|
15c79b60fa | ||
|
|
05e05c7cb5 | ||
|
|
a27bc617a2 | ||
|
|
0a9e174c23 | ||
|
|
4fd2d3b260 | ||
|
|
28a43f46d7 | ||
|
|
fffb73e310 | ||
|
|
7aacef87bd | ||
|
|
1bf01b28a3 | ||
|
|
0e6ec05056 | ||
|
|
2cd39b0abd | ||
|
|
e3ab0d5594 | ||
|
|
f0bdc3c8ac | ||
|
|
e958eabc86 | ||
|
|
a742fbb2ae | ||
|
|
b3eb283544 | ||
|
|
2fa535a888 | ||
|
|
31b8c566ed | ||
|
|
ef6c42d1e0 | ||
|
|
af7edd37ad | ||
|
|
9525b5ad2c | ||
|
|
e882934d1b | ||
|
|
7477af1d2b | ||
|
|
f2c67e47b3 | ||
|
|
d35c990cc0 | ||
|
|
03c0940baa | ||
|
|
48a0f331a8 | ||
|
|
3081804f5a | ||
|
|
daf9fc5181 | ||
|
|
b6b12a2855 | ||
|
|
94eaebb542 | ||
|
|
dbe7725e48 | ||
|
|
98e5249a43 | ||
|
|
43211467b2 | ||
|
|
07260c0d0b | ||
|
|
071b56f488 | ||
|
|
d30fcf4157 | ||
|
|
3d04f77961 | ||
|
|
0b206e7fe3 | ||
|
|
f6e5e1ffdb | ||
|
|
d2695b0437 | ||
|
|
04bc737fd1 | ||
|
|
5586b57c9b | ||
|
|
11fc578984 | ||
|
|
a74043e4aa | ||
|
|
816d6787b7 | ||
|
|
01e4e233bf | ||
|
|
8a48ff35d4 |
@@ -75,11 +75,7 @@ change the page type:
|
|||||||
|
|
||||||
### screensaver page
|
### screensaver page
|
||||||
|
|
||||||
`weatherUpdate,? tMainIcon? tMainText? tMRIcon? tMR? tForecast1? tF1Icon? tForecast1Val? tForecast2? tF2Icon? tForecast2Val`
|
`weatherUpdate,? tMainIcon? tMainText? tMRIcon? tMR? tForecast1? tF1Icon? tForecast1Val? tForecast2? tF2Icon? tForecast2Val?tForecast3? tF3Icon? tForecast3Val?tForecast4? tF4Icon? tForecast4Val`
|
||||||
|
|
||||||
`weatherUpdate,?0?2,3 C?0?0 mm?Mi?0?9,3 C?Do?0?11,5 C`
|
|
||||||
|
|
||||||
`page,0`
|
|
||||||
|
|
||||||
### cardEntities Page
|
### cardEntities Page
|
||||||
|
|
||||||
@@ -129,11 +125,11 @@ The following message can be used to update the content on the cardEntities Page
|
|||||||
|
|
||||||
### cardMedia Page
|
### cardMedia Page
|
||||||
|
|
||||||
`entityUpd,|*internalNameEntiy*|*heading*|*icon*|*title*|*author*|*volume*|*playpauseicon*`
|
`entityUpd,|*internalNameEntiy*|*heading*|*icon*|*title*|*author*|*volume*|*playpauseicon*|currentSpeaker|speakerList-seperated-by-?`
|
||||||
|
|
||||||
### cardAlarm Page
|
### cardAlarm Page
|
||||||
|
|
||||||
`entityUpd,*internalNameEntity*,*arm1*,*arm1ActionName*,*arm2*,*arm2ActionName*,*arm3*,*arm3ActionName*,*arm4*,*arm4ActionName*,*icon*,*numpadStatus*`
|
`entityUpd,*internalNameEntity*,*arm1*,*arm1ActionName*,*arm2*,*arm2ActionName*,*arm3*,*arm3ActionName*,*arm4*,*arm4ActionName*,*icon*,*iconcolor*,*numpadStatus*,*flashing*`
|
||||||
|
|
||||||
|
|
||||||
## Messages from Nextion Display
|
## Messages from Nextion Display
|
||||||
@@ -142,7 +138,7 @@ The following message can be used to update the content on the cardEntities Page
|
|||||||
|
|
||||||
`event,buttonPress2,pageName,bPrev`
|
`event,buttonPress2,pageName,bPrev`
|
||||||
|
|
||||||
`event,buttonPress2,pageName,bExit`
|
`event,buttonPress2,pageName,bExit,number_of_taps`
|
||||||
|
|
||||||
### startup page
|
### startup page
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,12 @@ icons = [
|
|||||||
"shield-home",
|
"shield-home",
|
||||||
"door-open",
|
"door-open",
|
||||||
"door-closed",
|
"door-closed",
|
||||||
"window-closed"
|
"window-closed",
|
||||||
|
"shield-off",
|
||||||
|
"shield",
|
||||||
|
"shield-lock",
|
||||||
|
"shield-airplane",
|
||||||
|
"bell-ring"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@@ -66,7 +71,7 @@ for icon_name in icons:
|
|||||||
icon_name_list.append(icon_name)
|
icon_name_list.append(icon_name)
|
||||||
|
|
||||||
# write mapping lib for python
|
# write mapping lib for python
|
||||||
with open(os.path.join(__location__, "../../../apps/nspanel-lovelace-ui", "icon_mapping.py"), 'w') as f:
|
with open(os.path.join(__location__, "../../../apps/nspanel-lovelace-ui/luibackend", "icon_mapping.py"), 'w') as f:
|
||||||
f.write("icons = {\n")
|
f.write("icons = {\n")
|
||||||
for idx, val in enumerate(icon_name_list):
|
for idx, val in enumerate(icon_name_list):
|
||||||
f.write(f" '{val}': {idx},\n")
|
f.write(f" '{val}': {idx},\n")
|
||||||
|
|||||||
@@ -43,3 +43,8 @@ ID | MD Icon Name | Icon
|
|||||||
36 | door-open | 
|
36 | door-open | 
|
||||||
37 | door-closed | 
|
37 | door-closed | 
|
||||||
38 | window-closed | 
|
38 | window-closed | 
|
||||||
|
39 | shield-off | 
|
||||||
|
40 | shield | 
|
||||||
|
41 | shield-lock | 
|
||||||
|
42 | shield-airplane | 
|
||||||
|
43 | bell-ring | 
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ Text tCode
|
|||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 92
|
x coordinate : 92
|
||||||
y coordinate : 12
|
y coordinate : 16
|
||||||
Width : 192
|
Width : 192
|
||||||
Height : 49
|
Height : 49
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -252,7 +252,7 @@ Text tIcon
|
|||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 300
|
x coordinate : 300
|
||||||
y coordinate : 12
|
y coordinate : 16
|
||||||
Width : 64
|
Width : 64
|
||||||
Height : 49
|
Height : 49
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -267,7 +267,7 @@ Text tIcon
|
|||||||
Horizontal Alignment : center
|
Horizontal Alignment : center
|
||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
Input Type : character
|
Input Type : character
|
||||||
Text : î
|
Text :
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
@@ -392,8 +392,8 @@ Button b0
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 52
|
x coordinate : 25
|
||||||
y coordinate : 146
|
y coordinate : 94
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -430,8 +430,8 @@ Button b1
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 144
|
x coordinate : 117
|
||||||
y coordinate : 146
|
y coordinate : 94
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -468,8 +468,8 @@ Button b2
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 236
|
x coordinate : 209
|
||||||
y coordinate : 145
|
y coordinate : 93
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -506,8 +506,8 @@ Button b3
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 52
|
x coordinate : 25
|
||||||
y coordinate : 204
|
y coordinate : 152
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -544,8 +544,8 @@ Button b4
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 144
|
x coordinate : 117
|
||||||
y coordinate : 204
|
y coordinate : 152
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -582,8 +582,8 @@ Button b5
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 236
|
x coordinate : 209
|
||||||
y coordinate : 204
|
y coordinate : 152
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -620,8 +620,8 @@ Button b6
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 52
|
x coordinate : 25
|
||||||
y coordinate : 262
|
y coordinate : 210
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -658,8 +658,8 @@ Button b7
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 144
|
x coordinate : 117
|
||||||
y coordinate : 262
|
y coordinate : 210
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -696,8 +696,8 @@ Button b8
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 236
|
x coordinate : 209
|
||||||
y coordinate : 262
|
y coordinate : 210
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -734,8 +734,8 @@ Button b9
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 328
|
x coordinate : 116
|
||||||
y coordinate : 204
|
y coordinate : 266
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -772,8 +772,8 @@ Button b10
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 328
|
x coordinate : 209
|
||||||
y coordinate : 262
|
y coordinate : 266
|
||||||
Width : 75
|
Width : 75
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -792,7 +792,7 @@ Button b10
|
|||||||
Horizontal Alignment : center
|
Horizontal Alignment : center
|
||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
State : unpressed
|
State : unpressed
|
||||||
Text : CLEAR
|
Text : CLR
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
@@ -810,10 +810,10 @@ Button arm1
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 59
|
x coordinate : 300
|
||||||
y coordinate : 72
|
y coordinate : 91
|
||||||
Width : 64
|
Width : 141
|
||||||
Height : 64
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -831,7 +831,7 @@ Button arm1
|
|||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
State : unpressed
|
State : unpressed
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 10
|
Max. Text Size : 40
|
||||||
Word wrap : enabled
|
Word wrap : enabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -854,6 +854,7 @@ Button arm1
|
|||||||
prints sys0,2
|
prints sys0,2
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
tCode.txt=""
|
||||||
|
|
||||||
Button arm3
|
Button arm3
|
||||||
Attributes
|
Attributes
|
||||||
@@ -863,10 +864,10 @@ Button arm3
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 239
|
x coordinate : 300
|
||||||
y coordinate : 72
|
y coordinate : 210
|
||||||
Width : 64
|
Width : 140
|
||||||
Height : 64
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -884,7 +885,7 @@ Button arm3
|
|||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
State : unpressed
|
State : unpressed
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 10
|
Max. Text Size : 40
|
||||||
Word wrap : enabled
|
Word wrap : enabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -907,6 +908,7 @@ Button arm3
|
|||||||
prints sys0,2
|
prints sys0,2
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
tCode.txt=""
|
||||||
|
|
||||||
Button arm2
|
Button arm2
|
||||||
Attributes
|
Attributes
|
||||||
@@ -916,10 +918,10 @@ Button arm2
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 149
|
x coordinate : 300
|
||||||
y coordinate : 72
|
y coordinate : 152
|
||||||
Width : 64
|
Width : 141
|
||||||
Height : 64
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -937,7 +939,7 @@ Button arm2
|
|||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
State : unpressed
|
State : unpressed
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 10
|
Max. Text Size : 40
|
||||||
Word wrap : enabled
|
Word wrap : enabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -960,6 +962,7 @@ Button arm2
|
|||||||
prints sys0,2
|
prints sys0,2
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
tCode.txt=""
|
||||||
|
|
||||||
Button arm4
|
Button arm4
|
||||||
Attributes
|
Attributes
|
||||||
@@ -969,10 +972,10 @@ Button arm4
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 329
|
x coordinate : 300
|
||||||
y coordinate : 72
|
y coordinate : 266
|
||||||
Width : 64
|
Width : 141
|
||||||
Height : 64
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -990,7 +993,7 @@ Button arm4
|
|||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
State : unpressed
|
State : unpressed
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 10
|
Max. Text Size : 40
|
||||||
Word wrap : enabled
|
Word wrap : enabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -1013,6 +1016,7 @@ Button arm4
|
|||||||
prints sys0,2
|
prints sys0,2
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
tCode.txt=""
|
||||||
|
|
||||||
Timer tmSerial
|
Timer tmSerial
|
||||||
Attributes
|
Attributes
|
||||||
@@ -1106,8 +1110,12 @@ Timer tmSerial
|
|||||||
spstr strCommand.txt,tTmp.txt,",",10
|
spstr strCommand.txt,tTmp.txt,",",10
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tIcon.txt,sys0,1
|
substr pageIcons.tIcons.txt,tIcon.txt,sys0,1
|
||||||
//numpad status
|
//icon color
|
||||||
spstr strCommand.txt,tTmp.txt,",",11
|
spstr strCommand.txt,tTmp.txt,",",11
|
||||||
|
covx tTmp.txt,sys0,0,0
|
||||||
|
tIcon.pco=sys0
|
||||||
|
//numpad status
|
||||||
|
spstr strCommand.txt,tTmp.txt,",",12
|
||||||
if(tTmp.txt!="disable")
|
if(tTmp.txt!="disable")
|
||||||
{
|
{
|
||||||
vis b0,1
|
vis b0,1
|
||||||
@@ -1123,6 +1131,15 @@ Timer tmSerial
|
|||||||
vis b10,1
|
vis b10,1
|
||||||
vis tCode,1
|
vis tCode,1
|
||||||
}
|
}
|
||||||
|
//flashing status
|
||||||
|
spstr strCommand.txt,tTmp.txt,",",13
|
||||||
|
if(tTmp.txt=="enable")
|
||||||
|
{
|
||||||
|
tmFlash.en=1
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tmFlash.en=0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(tInstruction.txt=="time")
|
if(tInstruction.txt=="time")
|
||||||
{
|
{
|
||||||
@@ -1221,6 +1238,25 @@ Timer tmSleep
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Timer tmFlash
|
||||||
|
Attributes
|
||||||
|
ID : 35
|
||||||
|
Scope : local
|
||||||
|
Period (ms): 600
|
||||||
|
Enabled : no
|
||||||
|
|
||||||
|
Events
|
||||||
|
Timer Event
|
||||||
|
if(tIcon.isbr==1)
|
||||||
|
{
|
||||||
|
tIcon.isbr=0
|
||||||
|
vis tIcon,0
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tIcon.isbr=1
|
||||||
|
vis tIcon,1
|
||||||
|
}
|
||||||
|
|
||||||
TouchCap tc0
|
TouchCap tc0
|
||||||
Attributes
|
Attributes
|
||||||
ID : 12
|
ID : 12
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ Page cardEntities
|
|||||||
vis tIcon1,0
|
vis tIcon1,0
|
||||||
vis tEntity1,0
|
vis tEntity1,0
|
||||||
vis bText1,0
|
vis bText1,0
|
||||||
|
vis hSlider1,0
|
||||||
//ui e2
|
//ui e2
|
||||||
vis btOnOff2,0
|
vis btOnOff2,0
|
||||||
vis bUp2,0
|
vis bUp2,0
|
||||||
@@ -46,6 +47,7 @@ Page cardEntities
|
|||||||
vis tIcon2,0
|
vis tIcon2,0
|
||||||
vis tEntity2,0
|
vis tEntity2,0
|
||||||
vis bText2,0
|
vis bText2,0
|
||||||
|
vis hSlider2,0
|
||||||
//ui e3
|
//ui e3
|
||||||
vis btOnOff3,0
|
vis btOnOff3,0
|
||||||
vis bUp3,0
|
vis bUp3,0
|
||||||
@@ -54,6 +56,7 @@ Page cardEntities
|
|||||||
vis tIcon3,0
|
vis tIcon3,0
|
||||||
vis tEntity3,0
|
vis tEntity3,0
|
||||||
vis bText3,0
|
vis bText3,0
|
||||||
|
vis hSlider3,0
|
||||||
//ui e4
|
//ui e4
|
||||||
vis btOnOff4,0
|
vis btOnOff4,0
|
||||||
vis bUp4,0
|
vis bUp4,0
|
||||||
@@ -62,6 +65,7 @@ Page cardEntities
|
|||||||
vis tIcon4,0
|
vis tIcon4,0
|
||||||
vis tEntity4,0
|
vis tEntity4,0
|
||||||
vis bText4,0
|
vis bText4,0
|
||||||
|
vis hSlider4,0
|
||||||
|
|
||||||
Variable (string) strCommand
|
Variable (string) strCommand
|
||||||
Attributes
|
Attributes
|
||||||
@@ -103,28 +107,28 @@ Variable (string) entn1
|
|||||||
ID : 49
|
ID : 49
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn2
|
Variable (string) entn2
|
||||||
Attributes
|
Attributes
|
||||||
ID : 50
|
ID : 50
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn3
|
Variable (string) entn3
|
||||||
Attributes
|
Attributes
|
||||||
ID : 51
|
ID : 51
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn4
|
Variable (string) entn4
|
||||||
Attributes
|
Attributes
|
||||||
ID : 52
|
ID : 52
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Text tHeading
|
Text tHeading
|
||||||
Attributes
|
Attributes
|
||||||
@@ -533,6 +537,106 @@ Picture p0
|
|||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
Picture ID : 0
|
Picture ID : 0
|
||||||
|
|
||||||
|
Slider hSlider1
|
||||||
|
Attributes
|
||||||
|
ID : 54
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 275
|
||||||
|
y coordinate : 77
|
||||||
|
Width : 150
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Direction : horizontal
|
||||||
|
Fill : image
|
||||||
|
Cursor width : auto
|
||||||
|
Cursor height : 255
|
||||||
|
Back. Picture ID : 5
|
||||||
|
Slided Back. Picture ID : 4
|
||||||
|
Position : 50
|
||||||
|
Upper range limit : 100
|
||||||
|
Lower range limit : 0
|
||||||
|
|
||||||
|
Slider hSlider2
|
||||||
|
Attributes
|
||||||
|
ID : 55
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 276
|
||||||
|
y coordinate : 133
|
||||||
|
Width : 150
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Direction : horizontal
|
||||||
|
Fill : image
|
||||||
|
Cursor width : auto
|
||||||
|
Cursor height : 255
|
||||||
|
Back. Picture ID : 5
|
||||||
|
Slided Back. Picture ID : 4
|
||||||
|
Position : 50
|
||||||
|
Upper range limit : 100
|
||||||
|
Lower range limit : 0
|
||||||
|
|
||||||
|
Slider hSlider3
|
||||||
|
Attributes
|
||||||
|
ID : 56
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 276
|
||||||
|
y coordinate : 187
|
||||||
|
Width : 150
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Direction : horizontal
|
||||||
|
Fill : image
|
||||||
|
Cursor width : auto
|
||||||
|
Cursor height : 255
|
||||||
|
Back. Picture ID : 5
|
||||||
|
Slided Back. Picture ID : 4
|
||||||
|
Position : 50
|
||||||
|
Upper range limit : 100
|
||||||
|
Lower range limit : 0
|
||||||
|
|
||||||
|
Slider hSlider4
|
||||||
|
Attributes
|
||||||
|
ID : 57
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 275
|
||||||
|
y coordinate : 243
|
||||||
|
Width : 150
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Direction : horizontal
|
||||||
|
Fill : image
|
||||||
|
Cursor width : auto
|
||||||
|
Cursor height : 255
|
||||||
|
Back. Picture ID : 5
|
||||||
|
Slided Back. Picture ID : 4
|
||||||
|
Position : 50
|
||||||
|
Upper range limit : 100
|
||||||
|
Lower range limit : 0
|
||||||
|
|
||||||
Button bDown1
|
Button bDown1
|
||||||
Attributes
|
Attributes
|
||||||
ID : 11
|
ID : 11
|
||||||
@@ -1809,6 +1913,7 @@ Timer tmSerial
|
|||||||
vis tEntity1,0
|
vis tEntity1,0
|
||||||
vis tIcon1,0
|
vis tIcon1,0
|
||||||
vis bText1,0
|
vis bText1,0
|
||||||
|
vis hSlider1,0
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
// change icon
|
// change icon
|
||||||
@@ -1831,6 +1936,7 @@ Timer tmSerial
|
|||||||
vis bDown1,1
|
vis bDown1,1
|
||||||
vis btOnOff1,0
|
vis btOnOff1,0
|
||||||
vis bText1,0
|
vis bText1,0
|
||||||
|
vis hSlider1,0
|
||||||
}
|
}
|
||||||
if(type1.txt=="light")
|
if(type1.txt=="light")
|
||||||
{
|
{
|
||||||
@@ -1839,6 +1945,7 @@ Timer tmSerial
|
|||||||
vis bDown1,0
|
vis bDown1,0
|
||||||
vis btOnOff1,1
|
vis btOnOff1,1
|
||||||
vis bText1,0
|
vis bText1,0
|
||||||
|
vis hSlider1,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",6
|
spstr strCommand.txt,tTmp.txt,",",6
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -1851,6 +1958,7 @@ Timer tmSerial
|
|||||||
vis bDown1,0
|
vis bDown1,0
|
||||||
vis btOnOff1,1
|
vis btOnOff1,1
|
||||||
vis bText1,0
|
vis bText1,0
|
||||||
|
vis hSlider1,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",6
|
spstr strCommand.txt,tTmp.txt,",",6
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -1864,6 +1972,7 @@ Timer tmSerial
|
|||||||
vis btOnOff1,0
|
vis btOnOff1,0
|
||||||
vis bText1,1
|
vis bText1,1
|
||||||
tsw bText1,0
|
tsw bText1,0
|
||||||
|
vis hSlider1,0
|
||||||
bText1.pco=65535
|
bText1.pco=65535
|
||||||
bText1.pco2=65535
|
bText1.pco2=65535
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
@@ -1877,12 +1986,24 @@ Timer tmSerial
|
|||||||
vis btOnOff1,0
|
vis btOnOff1,0
|
||||||
vis bText1,1
|
vis bText1,1
|
||||||
tsw bText1,1
|
tsw bText1,1
|
||||||
|
vis hSlider1,0
|
||||||
bText1.pco=1374
|
bText1.pco=1374
|
||||||
bText1.pco2=1374
|
bText1.pco2=1374
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
spstr strCommand.txt,bText1.txt,",",6
|
spstr strCommand.txt,bText1.txt,",",6
|
||||||
}
|
}
|
||||||
// id2
|
if(type1.txt=="number")
|
||||||
|
{
|
||||||
|
vis bUp1,0
|
||||||
|
vis bStop1,0
|
||||||
|
vis bDown1,0
|
||||||
|
vis btOnOff1,0
|
||||||
|
vis bText1,0
|
||||||
|
tsw bText1,0
|
||||||
|
vis hSlider1,1
|
||||||
|
// get Text (optional Value)
|
||||||
|
spstr strCommand.txt,bText1.txt,",",6
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type2.txt,",",7
|
spstr strCommand.txt,type2.txt,",",7
|
||||||
// get internal name
|
// get internal name
|
||||||
@@ -1896,9 +2017,10 @@ Timer tmSerial
|
|||||||
vis tEntity2,0
|
vis tEntity2,0
|
||||||
vis tIcon2,0
|
vis tIcon2,0
|
||||||
vis bText2,0
|
vis bText2,0
|
||||||
|
vis hSlider2,0
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
//change icon
|
// change icon
|
||||||
spstr strCommand.txt,tTmp.txt,",",9
|
spstr strCommand.txt,tTmp.txt,",",9
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tIcon2.txt,sys0,1
|
substr pageIcons.tIcons.txt,tIcon2.txt,sys0,1
|
||||||
@@ -1918,6 +2040,7 @@ Timer tmSerial
|
|||||||
vis bDown2,1
|
vis bDown2,1
|
||||||
vis btOnOff2,0
|
vis btOnOff2,0
|
||||||
vis bText2,0
|
vis bText2,0
|
||||||
|
vis hSlider2,0
|
||||||
}
|
}
|
||||||
if(type2.txt=="light")
|
if(type2.txt=="light")
|
||||||
{
|
{
|
||||||
@@ -1926,6 +2049,7 @@ Timer tmSerial
|
|||||||
vis bDown2,0
|
vis bDown2,0
|
||||||
vis btOnOff2,1
|
vis btOnOff2,1
|
||||||
vis bText2,0
|
vis bText2,0
|
||||||
|
vis hSlider2,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",12
|
spstr strCommand.txt,tTmp.txt,",",12
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -1938,6 +2062,7 @@ Timer tmSerial
|
|||||||
vis bDown2,0
|
vis bDown2,0
|
||||||
vis btOnOff2,1
|
vis btOnOff2,1
|
||||||
vis bText2,0
|
vis bText2,0
|
||||||
|
vis hSlider2,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",12
|
spstr strCommand.txt,tTmp.txt,",",12
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -1951,6 +2076,7 @@ Timer tmSerial
|
|||||||
vis btOnOff2,0
|
vis btOnOff2,0
|
||||||
vis bText2,1
|
vis bText2,1
|
||||||
tsw bText2,0
|
tsw bText2,0
|
||||||
|
vis hSlider2,0
|
||||||
bText2.pco=65535
|
bText2.pco=65535
|
||||||
bText2.pco2=65535
|
bText2.pco2=65535
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
@@ -1964,12 +2090,24 @@ Timer tmSerial
|
|||||||
vis btOnOff2,0
|
vis btOnOff2,0
|
||||||
vis bText2,1
|
vis bText2,1
|
||||||
tsw bText2,1
|
tsw bText2,1
|
||||||
|
vis hSlider2,0
|
||||||
bText2.pco=1374
|
bText2.pco=1374
|
||||||
bText2.pco2=1374
|
bText2.pco2=1374
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
spstr strCommand.txt,bText2.txt,",",12
|
spstr strCommand.txt,bText2.txt,",",12
|
||||||
}
|
}
|
||||||
// id3
|
if(type2.txt=="number")
|
||||||
|
{
|
||||||
|
vis bUp2,0
|
||||||
|
vis bStop2,0
|
||||||
|
vis bDown2,0
|
||||||
|
vis btOnOff2,0
|
||||||
|
vis bText2,0
|
||||||
|
tsw bText2,0
|
||||||
|
vis hSlider2,1
|
||||||
|
// get Text (optional Value)
|
||||||
|
spstr strCommand.txt,bText2.txt,",",12
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type3.txt,",",13
|
spstr strCommand.txt,type3.txt,",",13
|
||||||
// get internal name
|
// get internal name
|
||||||
@@ -1983,9 +2121,10 @@ Timer tmSerial
|
|||||||
vis tEntity3,0
|
vis tEntity3,0
|
||||||
vis tIcon3,0
|
vis tIcon3,0
|
||||||
vis bText3,0
|
vis bText3,0
|
||||||
|
vis hSlider3,0
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
//change icon
|
// change icon
|
||||||
spstr strCommand.txt,tTmp.txt,",",15
|
spstr strCommand.txt,tTmp.txt,",",15
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tIcon3.txt,sys0,1
|
substr pageIcons.tIcons.txt,tIcon3.txt,sys0,1
|
||||||
@@ -2005,14 +2144,16 @@ Timer tmSerial
|
|||||||
vis bDown3,1
|
vis bDown3,1
|
||||||
vis btOnOff3,0
|
vis btOnOff3,0
|
||||||
vis bText3,0
|
vis bText3,0
|
||||||
|
vis hSlider3,0
|
||||||
}
|
}
|
||||||
if(type3.txt=="light")
|
if(type3.txt=="light")
|
||||||
{
|
{
|
||||||
vis bUp3,0
|
vis bUp3,0
|
||||||
vis bStop3,0
|
vis bStop3,0
|
||||||
vis bDown3,0
|
vis bDown3,0
|
||||||
vis bText3,0
|
|
||||||
vis btOnOff3,1
|
vis btOnOff3,1
|
||||||
|
vis bText3,0
|
||||||
|
vis hSlider3,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",18
|
spstr strCommand.txt,tTmp.txt,",",18
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -2023,8 +2164,9 @@ Timer tmSerial
|
|||||||
vis bUp3,0
|
vis bUp3,0
|
||||||
vis bStop3,0
|
vis bStop3,0
|
||||||
vis bDown3,0
|
vis bDown3,0
|
||||||
vis bText3,0
|
|
||||||
vis btOnOff3,1
|
vis btOnOff3,1
|
||||||
|
vis bText3,0
|
||||||
|
vis hSlider3,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",18
|
spstr strCommand.txt,tTmp.txt,",",18
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -2038,6 +2180,7 @@ Timer tmSerial
|
|||||||
vis btOnOff3,0
|
vis btOnOff3,0
|
||||||
vis bText3,1
|
vis bText3,1
|
||||||
tsw bText3,0
|
tsw bText3,0
|
||||||
|
vis hSlider3,0
|
||||||
bText3.pco=65535
|
bText3.pco=65535
|
||||||
bText3.pco2=65535
|
bText3.pco2=65535
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
@@ -2051,12 +2194,24 @@ Timer tmSerial
|
|||||||
vis btOnOff3,0
|
vis btOnOff3,0
|
||||||
vis bText3,1
|
vis bText3,1
|
||||||
tsw bText3,1
|
tsw bText3,1
|
||||||
|
vis hSlider3,0
|
||||||
bText3.pco=1374
|
bText3.pco=1374
|
||||||
bText3.pco2=1374
|
bText3.pco2=1374
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
spstr strCommand.txt,bText3.txt,",",18
|
spstr strCommand.txt,bText3.txt,",",18
|
||||||
}
|
}
|
||||||
// id4
|
if(type3.txt=="number")
|
||||||
|
{
|
||||||
|
vis bUp3,0
|
||||||
|
vis bStop3,0
|
||||||
|
vis bDown3,0
|
||||||
|
vis btOnOff3,0
|
||||||
|
vis bText3,0
|
||||||
|
tsw bText3,0
|
||||||
|
vis hSlider3,1
|
||||||
|
// get Text (optional Value)
|
||||||
|
spstr strCommand.txt,bText3.txt,",",18
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type4.txt,",",19
|
spstr strCommand.txt,type4.txt,",",19
|
||||||
// get internal name
|
// get internal name
|
||||||
@@ -2070,9 +2225,10 @@ Timer tmSerial
|
|||||||
vis tEntity4,0
|
vis tEntity4,0
|
||||||
vis tIcon4,0
|
vis tIcon4,0
|
||||||
vis bText4,0
|
vis bText4,0
|
||||||
|
vis hSlider4,0
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
//change icon
|
// change icon
|
||||||
spstr strCommand.txt,tTmp.txt,",",21
|
spstr strCommand.txt,tTmp.txt,",",21
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tIcon4.txt,sys0,1
|
substr pageIcons.tIcons.txt,tIcon4.txt,sys0,1
|
||||||
@@ -2092,14 +2248,16 @@ Timer tmSerial
|
|||||||
vis bDown4,1
|
vis bDown4,1
|
||||||
vis btOnOff4,0
|
vis btOnOff4,0
|
||||||
vis bText4,0
|
vis bText4,0
|
||||||
|
vis hSlider4,0
|
||||||
}
|
}
|
||||||
if(type4.txt=="light")
|
if(type4.txt=="light")
|
||||||
{
|
{
|
||||||
vis bUp4,0
|
vis bUp4,0
|
||||||
vis bStop4,0
|
vis bStop4,0
|
||||||
vis bDown4,0
|
vis bDown4,0
|
||||||
vis bText4,0
|
|
||||||
vis btOnOff4,1
|
vis btOnOff4,1
|
||||||
|
vis bText4,0
|
||||||
|
vis hSlider4,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",24
|
spstr strCommand.txt,tTmp.txt,",",24
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -2110,8 +2268,9 @@ Timer tmSerial
|
|||||||
vis bUp4,0
|
vis bUp4,0
|
||||||
vis bStop4,0
|
vis bStop4,0
|
||||||
vis bDown4,0
|
vis bDown4,0
|
||||||
vis bText4,0
|
|
||||||
vis btOnOff4,1
|
vis btOnOff4,1
|
||||||
|
vis bText4,0
|
||||||
|
vis hSlider4,0
|
||||||
// get Button State (optional Value)
|
// get Button State (optional Value)
|
||||||
spstr strCommand.txt,tTmp.txt,",",24
|
spstr strCommand.txt,tTmp.txt,",",24
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
@@ -2125,6 +2284,7 @@ Timer tmSerial
|
|||||||
vis btOnOff4,0
|
vis btOnOff4,0
|
||||||
vis bText4,1
|
vis bText4,1
|
||||||
tsw bText4,0
|
tsw bText4,0
|
||||||
|
vis hSlider4,0
|
||||||
bText4.pco=65535
|
bText4.pco=65535
|
||||||
bText4.pco2=65535
|
bText4.pco2=65535
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
@@ -2138,11 +2298,24 @@ Timer tmSerial
|
|||||||
vis btOnOff4,0
|
vis btOnOff4,0
|
||||||
vis bText4,1
|
vis bText4,1
|
||||||
tsw bText4,1
|
tsw bText4,1
|
||||||
|
vis hSlider4,0
|
||||||
bText4.pco=1374
|
bText4.pco=1374
|
||||||
bText4.pco2=1374
|
bText4.pco2=1374
|
||||||
// get Text (optional Value)
|
// get Text (optional Value)
|
||||||
spstr strCommand.txt,bText4.txt,",",24
|
spstr strCommand.txt,bText4.txt,",",24
|
||||||
}
|
}
|
||||||
|
if(type4.txt=="number")
|
||||||
|
{
|
||||||
|
vis bUp4,0
|
||||||
|
vis bStop4,0
|
||||||
|
vis bDown4,0
|
||||||
|
vis btOnOff4,0
|
||||||
|
vis bText4,0
|
||||||
|
tsw bText4,0
|
||||||
|
vis hSlider4,1
|
||||||
|
// get Text (optional Value)
|
||||||
|
spstr strCommand.txt,bText4.txt,",",24
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,28 +83,28 @@ Variable (string) entn1
|
|||||||
ID : 18
|
ID : 18
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn2
|
Variable (string) entn2
|
||||||
Attributes
|
Attributes
|
||||||
ID : 19
|
ID : 19
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn3
|
Variable (string) entn3
|
||||||
Attributes
|
Attributes
|
||||||
ID : 20
|
ID : 20
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn4
|
Variable (string) entn4
|
||||||
Attributes
|
Attributes
|
||||||
ID : 21
|
ID : 21
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) type5
|
Variable (string) type5
|
||||||
Attributes
|
Attributes
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ Page cardMedia
|
|||||||
vis tInstruction,0
|
vis tInstruction,0
|
||||||
vis tTmp,0
|
vis tTmp,0
|
||||||
vis tId,0
|
vis tId,0
|
||||||
|
vis t5,0
|
||||||
//vis nPageDisp,0
|
//vis nPageDisp,0
|
||||||
|
|
||||||
Variable (string) strCommand
|
Variable (string) strCommand
|
||||||
@@ -32,7 +33,7 @@ Variable (string) strCommand
|
|||||||
ID : 7
|
ID : 7
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 200
|
Max. Text Size: 500
|
||||||
|
|
||||||
Variable (string) entn
|
Variable (string) entn
|
||||||
Attributes
|
Attributes
|
||||||
@@ -41,6 +42,19 @@ Variable (string) entn
|
|||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 50
|
||||||
|
|
||||||
|
Variable (string) vaSpeakerList
|
||||||
|
Attributes
|
||||||
|
ID : 27
|
||||||
|
Scope : local
|
||||||
|
Text :
|
||||||
|
Max. Text Size: 200
|
||||||
|
|
||||||
|
Variable (int32) vaSpeakerPos
|
||||||
|
Attributes
|
||||||
|
ID : 28
|
||||||
|
Scope: local
|
||||||
|
Value: 0
|
||||||
|
|
||||||
Text tSend
|
Text tSend
|
||||||
Attributes
|
Attributes
|
||||||
ID : 2
|
ID : 2
|
||||||
@@ -52,7 +66,7 @@ Text tSend
|
|||||||
x coordinate : 0
|
x coordinate : 0
|
||||||
y coordinate : 0
|
y coordinate : 0
|
||||||
Width : 230
|
Width : 230
|
||||||
Height : 23
|
Height : 15
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -65,8 +79,8 @@ Text tSend
|
|||||||
Horizontal Alignment : center
|
Horizontal Alignment : center
|
||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
Input Type : character
|
Input Type : character
|
||||||
Text : newtxt
|
Text :
|
||||||
Max. Text Size : 100
|
Max. Text Size : 200
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -79,9 +93,9 @@ Text tTmp
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 406
|
x coordinate : 450
|
||||||
y coordinate : 277
|
y coordinate : 145
|
||||||
Width : 34
|
Width : 27
|
||||||
Height : 30
|
Height : 30
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -109,10 +123,10 @@ Text tInstruction
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 0
|
x coordinate : 296
|
||||||
y coordinate : 290
|
y coordinate : 0
|
||||||
Width : 100
|
Width : 100
|
||||||
Height : 30
|
Height : 20
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -139,9 +153,9 @@ Text tId
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 99
|
x coordinate : 449
|
||||||
y coordinate : 290
|
y coordinate : 187
|
||||||
Width : 39
|
Width : 30
|
||||||
Height : 30
|
Height : 30
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -259,8 +273,8 @@ Text t2
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 314
|
x coordinate : 306
|
||||||
y coordinate : 159
|
y coordinate : 145
|
||||||
Width : 50
|
Width : 50
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -309,7 +323,7 @@ Text tPlayPause
|
|||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 203
|
x coordinate : 203
|
||||||
y coordinate : 159
|
y coordinate : 145
|
||||||
Width : 50
|
Width : 50
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -357,8 +371,8 @@ Text t0
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 92
|
x coordinate : 96
|
||||||
y coordinate : 159
|
y coordinate : 145
|
||||||
Width : 50
|
Width : 50
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -437,7 +451,7 @@ Text t1
|
|||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 5
|
x coordinate : 5
|
||||||
y coordinate : 222
|
y coordinate : 201
|
||||||
Width : 50
|
Width : 50
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -487,7 +501,7 @@ Text t3
|
|||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 397
|
x coordinate : 397
|
||||||
y coordinate : 222
|
y coordinate : 201
|
||||||
Width : 50
|
Width : 50
|
||||||
Height : 50
|
Height : 50
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -528,6 +542,176 @@ Text t3
|
|||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
|
Text t4
|
||||||
|
Attributes
|
||||||
|
ID : 24
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 21
|
||||||
|
y coordinate : 262
|
||||||
|
Width : 50
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 2
|
||||||
|
Back. Color : 6371
|
||||||
|
Font Color : 50712
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text : î
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tSpeaker
|
||||||
|
Attributes
|
||||||
|
ID : 25
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 94
|
||||||
|
y coordinate : 262
|
||||||
|
Width : 267
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 0
|
||||||
|
Back. Color : 6371
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : left
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 50
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Events
|
||||||
|
Touch Press Event
|
||||||
|
// event,buttonPress2,entn,media-next
|
||||||
|
//craft command
|
||||||
|
tSend.txt="event,buttonPress2,"
|
||||||
|
tSend.txt+=entn.txt+","
|
||||||
|
tSend.txt+="speaker-sel,"+tSpeaker.txt
|
||||||
|
//send calc crc
|
||||||
|
btlen tSend.txt,sys0
|
||||||
|
crcrest 1,0xffff // reset CRC
|
||||||
|
crcputh 55 bb
|
||||||
|
crcputs sys0,1
|
||||||
|
crcputs tSend.txt,0
|
||||||
|
//send cmd
|
||||||
|
printh 55 bb
|
||||||
|
prints sys0,2
|
||||||
|
prints tSend.txt,0
|
||||||
|
prints crcval,2
|
||||||
|
|
||||||
|
Text t6
|
||||||
|
Attributes
|
||||||
|
ID : 26
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 381
|
||||||
|
y coordinate : 262
|
||||||
|
Width : 50
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 2
|
||||||
|
Back. Color : 6371
|
||||||
|
Font Color : 50712
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text : î´
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Events
|
||||||
|
Touch Press Event
|
||||||
|
//speaker
|
||||||
|
tSpeaker.pco=65535
|
||||||
|
spstr vaSpeakerList.txt,tSpeaker.txt,"?",vaSpeakerPos.val
|
||||||
|
vaSpeakerPos.val+=1
|
||||||
|
if(tSpeaker.txt=="")
|
||||||
|
{
|
||||||
|
vaSpeakerPos.val=0
|
||||||
|
spstr vaSpeakerList.txt,tSpeaker.txt,"?",vaSpeakerPos.val
|
||||||
|
}
|
||||||
|
|
||||||
|
Text t5
|
||||||
|
Attributes
|
||||||
|
ID : 29
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 397
|
||||||
|
y coordinate : 145
|
||||||
|
Width : 50
|
||||||
|
Height : 50
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 2
|
||||||
|
Back. Color : 6371
|
||||||
|
Font Color : 50712
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text : î¤
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Events
|
||||||
|
Touch Press Event
|
||||||
|
// event,buttonPress2,entn,media-next
|
||||||
|
//craft command
|
||||||
|
tSend.txt="event,buttonPress2,"
|
||||||
|
tSend.txt+=entn.txt+","
|
||||||
|
tSend.txt+="media-OnOff"
|
||||||
|
//send calc crc
|
||||||
|
btlen tSend.txt,sys0
|
||||||
|
crcrest 1,0xffff // reset CRC
|
||||||
|
crcputh 55 bb
|
||||||
|
crcputs sys0,1
|
||||||
|
crcputs tSend.txt,0
|
||||||
|
//send cmd
|
||||||
|
printh 55 bb
|
||||||
|
prints sys0,2
|
||||||
|
prints tSend.txt,0
|
||||||
|
prints crcval,2
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
ID : 1
|
ID : 1
|
||||||
@@ -554,7 +738,7 @@ Slider hVolume
|
|||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 59
|
x coordinate : 59
|
||||||
y coordinate : 227
|
y coordinate : 206
|
||||||
Width : 335
|
Width : 335
|
||||||
Height : 43
|
Height : 43
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -573,7 +757,7 @@ Slider hVolume
|
|||||||
Events
|
Events
|
||||||
Touch Release Event
|
Touch Release Event
|
||||||
tmCooldown.en=1
|
tmCooldown.en=1
|
||||||
tmCooldown.tim=100
|
tmCooldown.tim=800
|
||||||
// event,buttonPress2,internalNameEntity,volumeSlider,50
|
// event,buttonPress2,internalNameEntity,volumeSlider,50
|
||||||
//craft command
|
//craft command
|
||||||
tSend.txt="event,buttonPress2,"+entn.txt+",volumeSlider,"
|
tSend.txt="event,buttonPress2,"+entn.txt+",volumeSlider,"
|
||||||
@@ -759,6 +943,32 @@ Timer tmSerial
|
|||||||
spstr strCommand.txt,tTmp.txt,"|",7
|
spstr strCommand.txt,tTmp.txt,"|",7
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tPlayPause.txt,sys0,1
|
substr pageIcons.tIcons.txt,tPlayPause.txt,sys0,1
|
||||||
|
//speaker current
|
||||||
|
spstr strCommand.txt,tSpeaker.txt,"|",8
|
||||||
|
if(tSpeaker.txt!="")
|
||||||
|
{
|
||||||
|
tSpeaker.pco=1374
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSpeaker.pco=65535
|
||||||
|
}
|
||||||
|
//speaker list
|
||||||
|
spstr strCommand.txt,vaSpeakerList.txt,"|",9
|
||||||
|
if(vaSpeakerList.txt=="")
|
||||||
|
{
|
||||||
|
vis t6,0
|
||||||
|
}
|
||||||
|
vaSpeakerPos.val=0
|
||||||
|
// on off button
|
||||||
|
spstr strCommand.txt,tTmp.txt,"|",10
|
||||||
|
if(tTmp.txt=="disable")
|
||||||
|
{
|
||||||
|
vis t5,0
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
vis t5,1
|
||||||
|
covx tTmp.txt,t5.pco,0,0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(tInstruction.txt=="time")
|
if(tInstruction.txt=="time")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -22,41 +22,41 @@ popupNotify
|
|||||||
17 Component(s)
|
17 Component(s)
|
||||||
179 Line(s) of event code
|
179 Line(s) of event code
|
||||||
118 Unique line(s) of event code
|
118 Unique line(s) of event code
|
||||||
|
cardEntities
|
||||||
|
58 Component(s)
|
||||||
|
824 Line(s) of event code
|
||||||
|
346 Unique line(s) of event code
|
||||||
|
cardMedia
|
||||||
|
30 Component(s)
|
||||||
|
278 Line(s) of event code
|
||||||
|
139 Unique line(s) of event code
|
||||||
pageStartup
|
pageStartup
|
||||||
19 Component(s)
|
19 Component(s)
|
||||||
150 Line(s) of event code
|
150 Line(s) of event code
|
||||||
113 Unique line(s) of event code
|
113 Unique line(s) of event code
|
||||||
cardAlarm
|
|
||||||
35 Component(s)
|
|
||||||
253 Line(s) of event code
|
|
||||||
160 Unique line(s) of event code
|
|
||||||
popupLight
|
|
||||||
27 Component(s)
|
|
||||||
323 Line(s) of event code
|
|
||||||
173 Unique line(s) of event code
|
|
||||||
cardGrid
|
|
||||||
39 Component(s)
|
|
||||||
378 Line(s) of event code
|
|
||||||
219 Unique line(s) of event code
|
|
||||||
cardThermo
|
cardThermo
|
||||||
42 Component(s)
|
42 Component(s)
|
||||||
406 Line(s) of event code
|
406 Line(s) of event code
|
||||||
218 Unique line(s) of event code
|
218 Unique line(s) of event code
|
||||||
cardEntities
|
cardGrid
|
||||||
54 Component(s)
|
39 Component(s)
|
||||||
752 Line(s) of event code
|
378 Line(s) of event code
|
||||||
330 Unique line(s) of event code
|
219 Unique line(s) of event code
|
||||||
cardMedia
|
popupLight
|
||||||
24 Component(s)
|
27 Component(s)
|
||||||
222 Line(s) of event code
|
323 Line(s) of event code
|
||||||
116 Unique line(s) of event code
|
174 Unique line(s) of event code
|
||||||
screensaver
|
screensaver
|
||||||
26 Component(s)
|
31 Component(s)
|
||||||
176 Line(s) of event code
|
183 Line(s) of event code
|
||||||
127 Unique line(s) of event code
|
133 Unique line(s) of event code
|
||||||
|
cardAlarm
|
||||||
|
36 Component(s)
|
||||||
|
277 Line(s) of event code
|
||||||
|
173 Unique line(s) of event code
|
||||||
|
|
||||||
Total
|
Total
|
||||||
13 Page(s)
|
13 Page(s)
|
||||||
334 Component(s)
|
350 Component(s)
|
||||||
3089 Line(s) of event code
|
3248 Line(s) of event code
|
||||||
817 Unique line(s) of event code
|
869 Unique line(s) of event code
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ Text tIcons
|
|||||||
Horizontal Alignment : left
|
Horizontal Alignment : left
|
||||||
Vertical Alignment : top
|
Vertical Alignment : top
|
||||||
Input Type : character
|
Input Type : character
|
||||||
Text : îî´îï§îîî î
î£îîî°îîîîî½îîîîîî¾îîîîî¤î·îºîîï¤ï¡îî î î
|
Text : îî´îï§îîî î
î£îîî°îîîîî½îîîîîî¾îîîîî¤î·îºîîï¤ï¡îî î îî¦îî¦îºî
|
||||||
Max. Text Size : 120
|
Max. Text Size : 150
|
||||||
Word wrap : enabled
|
Word wrap : enabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ Text tVersion
|
|||||||
Horizontal Alignment : center
|
Horizontal Alignment : center
|
||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
Input Type : character
|
Input Type : character
|
||||||
Text : 19
|
Text : 21
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ Slider hBrightness
|
|||||||
Events
|
Events
|
||||||
Touch Release Event
|
Touch Release Event
|
||||||
tmCooldown.en=1
|
tmCooldown.en=1
|
||||||
tmCooldown.tim=200
|
tmCooldown.tim=2500
|
||||||
//craft command
|
//craft command
|
||||||
tSend.txt="event,buttonPress2,"+entn.txt+",brightnessSlider,"
|
tSend.txt="event,buttonPress2,"+entn.txt+",brightnessSlider,"
|
||||||
covx hBrightness.val,tTmp.txt,0,0
|
covx hBrightness.val,tTmp.txt,0,0
|
||||||
@@ -546,7 +546,7 @@ Slider hTempSlider
|
|||||||
Events
|
Events
|
||||||
Touch Release Event
|
Touch Release Event
|
||||||
tmCooldown.en=1
|
tmCooldown.en=1
|
||||||
tmCooldown.tim=200
|
tmCooldown.tim=2500
|
||||||
//craft command
|
//craft command
|
||||||
tSend.txt="event,buttonPress2,"+entn.txt+",colorTempSlider,"
|
tSend.txt="event,buttonPress2,"+entn.txt+",colorTempSlider,"
|
||||||
covx hTempSlider.val,tTmp.txt,0,0
|
covx hTempSlider.val,tTmp.txt,0,0
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ Page screensaver
|
|||||||
// clear weather elements, to keep example content in HMI
|
// clear weather elements, to keep example content in HMI
|
||||||
tMainIcon.txt=""
|
tMainIcon.txt=""
|
||||||
tMainText.txt=""
|
tMainText.txt=""
|
||||||
tMRIcon.txt=""
|
|
||||||
tMR.txt=""
|
|
||||||
tForecast1.txt=""
|
tForecast1.txt=""
|
||||||
tF1Icon.txt=""
|
tF1Icon.txt=""
|
||||||
tForecast1Val.txt=""
|
tForecast1Val.txt=""
|
||||||
@@ -67,7 +65,7 @@ Variable (string) strCommand
|
|||||||
ID : 5
|
ID : 5
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 100
|
Max. Text Size: 200
|
||||||
|
|
||||||
Variable (string) vaTime
|
Variable (string) vaTime
|
||||||
Attributes
|
Attributes
|
||||||
@@ -85,11 +83,17 @@ Variable (string) vaDate
|
|||||||
|
|
||||||
Variable (string) tId
|
Variable (string) tId
|
||||||
Attributes
|
Attributes
|
||||||
ID : 24
|
ID : 22
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 25
|
Max. Text Size: 25
|
||||||
|
|
||||||
|
Variable (int32) vaTap
|
||||||
|
Attributes
|
||||||
|
ID : 30
|
||||||
|
Scope: local
|
||||||
|
Value: 0
|
||||||
|
|
||||||
Number originPage
|
Number originPage
|
||||||
Attributes
|
Attributes
|
||||||
ID : 3
|
ID : 3
|
||||||
@@ -145,7 +149,7 @@ Text tInstruction
|
|||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
Input Type : character
|
Input Type : character
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 20
|
Max. Text Size : 50
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -175,7 +179,7 @@ Text tTmp
|
|||||||
Vertical Alignment : center
|
Vertical Alignment : center
|
||||||
Input Type : character
|
Input Type : character
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 20
|
Max. Text Size : 50
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
@@ -278,9 +282,9 @@ Text tMainIcon
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 6
|
x coordinate : 26
|
||||||
y coordinate : 223
|
y coordinate : 202
|
||||||
Width : 100
|
Width : 70
|
||||||
Height : 66
|
Height : 66
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -308,8 +312,8 @@ Text tMainText
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 114
|
x coordinate : 7
|
||||||
y coordinate : 214
|
y coordinate : 267
|
||||||
Width : 110
|
Width : 110
|
||||||
Height : 43
|
Height : 43
|
||||||
Effect : load
|
Effect : load
|
||||||
@@ -330,7 +334,7 @@ Text tMainText
|
|||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
|
|
||||||
Text tMRIcon
|
Text tForecast1
|
||||||
Attributes
|
Attributes
|
||||||
ID : 15
|
ID : 15
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -338,69 +342,9 @@ Text tMRIcon
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 115
|
x coordinate : 128
|
||||||
y coordinate : 268
|
|
||||||
Width : 40
|
|
||||||
Height : 35
|
|
||||||
Effect : load
|
|
||||||
Effect Priority : 0
|
|
||||||
Effect Time : 300
|
|
||||||
Fill : solid color
|
|
||||||
Style : flat
|
|
||||||
Associated Keyboard : none
|
|
||||||
Font ID : 1
|
|
||||||
Back. Color : 0
|
|
||||||
Font Color : 65535
|
|
||||||
Horizontal Alignment : center
|
|
||||||
Vertical Alignment : center
|
|
||||||
Input Type : character
|
|
||||||
Text : î
|
|
||||||
Max. Text Size : 10
|
|
||||||
Word wrap : disabled
|
|
||||||
Horizontal Spacing : 0
|
|
||||||
Vertical Spacing : 0
|
|
||||||
|
|
||||||
Text tMR
|
|
||||||
Attributes
|
|
||||||
ID : 16
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Opacity : 127
|
|
||||||
x coordinate : 157
|
|
||||||
y coordinate : 275
|
|
||||||
Width : 67
|
|
||||||
Height : 22
|
|
||||||
Effect : load
|
|
||||||
Effect Priority : 0
|
|
||||||
Effect Time : 300
|
|
||||||
Fill : solid color
|
|
||||||
Style : flat
|
|
||||||
Associated Keyboard : none
|
|
||||||
Font ID : 0
|
|
||||||
Back. Color : 0
|
|
||||||
Font Color : 65535
|
|
||||||
Horizontal Alignment : center
|
|
||||||
Vertical Alignment : center
|
|
||||||
Input Type : character
|
|
||||||
Text : 0 mm
|
|
||||||
Max. Text Size : 10
|
|
||||||
Word wrap : disabled
|
|
||||||
Horizontal Spacing : 0
|
|
||||||
Vertical Spacing : 0
|
|
||||||
|
|
||||||
Text tForecast1
|
|
||||||
Attributes
|
|
||||||
ID : 17
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Opacity : 127
|
|
||||||
x coordinate : 228
|
|
||||||
y coordinate : 210
|
y coordinate : 210
|
||||||
Width : 108
|
Width : 72
|
||||||
Height : 26
|
Height : 26
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -422,15 +366,15 @@ Text tForecast1
|
|||||||
|
|
||||||
Text tForecast1Val
|
Text tForecast1Val
|
||||||
Attributes
|
Attributes
|
||||||
ID : 18
|
ID : 16
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 228
|
x coordinate : 126
|
||||||
y coordinate : 277
|
y coordinate : 277
|
||||||
Width : 108
|
Width : 72
|
||||||
Height : 26
|
Height : 26
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -452,13 +396,13 @@ Text tForecast1Val
|
|||||||
|
|
||||||
Text tF1Icon
|
Text tF1Icon
|
||||||
Attributes
|
Attributes
|
||||||
ID : 19
|
ID : 17
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 262
|
x coordinate : 146
|
||||||
y coordinate : 239
|
y coordinate : 239
|
||||||
Width : 40
|
Width : 40
|
||||||
Height : 35
|
Height : 35
|
||||||
@@ -482,15 +426,15 @@ Text tF1Icon
|
|||||||
|
|
||||||
Text tForecast2
|
Text tForecast2
|
||||||
Attributes
|
Attributes
|
||||||
ID : 20
|
ID : 18
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 341
|
x coordinate : 212
|
||||||
y coordinate : 210
|
y coordinate : 210
|
||||||
Width : 107
|
Width : 72
|
||||||
Height : 25
|
Height : 25
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -512,16 +456,16 @@ Text tForecast2
|
|||||||
|
|
||||||
Text tF2Icon
|
Text tF2Icon
|
||||||
Attributes
|
Attributes
|
||||||
ID : 21
|
ID : 19
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 375
|
x coordinate : 228
|
||||||
y coordinate : 238
|
y coordinate : 239
|
||||||
Width : 40
|
Width : 40
|
||||||
Height : 33
|
Height : 35
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
Effect Time : 300
|
Effect Time : 300
|
||||||
@@ -542,15 +486,15 @@ Text tF2Icon
|
|||||||
|
|
||||||
Text tForecast2Val
|
Text tForecast2Val
|
||||||
Attributes
|
Attributes
|
||||||
ID : 22
|
ID : 20
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Opacity : 127
|
Opacity : 127
|
||||||
x coordinate : 341
|
x coordinate : 212
|
||||||
y coordinate : 277
|
y coordinate : 277
|
||||||
Width : 107
|
Width : 72
|
||||||
Height : 25
|
Height : 25
|
||||||
Effect : load
|
Effect : load
|
||||||
Effect Priority : 0
|
Effect Priority : 0
|
||||||
@@ -572,7 +516,7 @@ Text tForecast2Val
|
|||||||
|
|
||||||
Text t10
|
Text t10
|
||||||
Attributes
|
Attributes
|
||||||
ID : 23
|
ID : 21
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -602,7 +546,7 @@ Text t10
|
|||||||
|
|
||||||
Text tAMPM
|
Text tAMPM
|
||||||
Attributes
|
Attributes
|
||||||
ID : 25
|
ID : 23
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -630,6 +574,186 @@ Text tAMPM
|
|||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tForecast3Val
|
||||||
|
Attributes
|
||||||
|
ID : 24
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 292
|
||||||
|
y coordinate : 277
|
||||||
|
Width : 71
|
||||||
|
Height : 25
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 0
|
||||||
|
Back. Color : 0
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tF3Icon
|
||||||
|
Attributes
|
||||||
|
ID : 25
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 309
|
||||||
|
y coordinate : 239
|
||||||
|
Width : 40
|
||||||
|
Height : 35
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 1
|
||||||
|
Back. Color : 0
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tForecast3
|
||||||
|
Attributes
|
||||||
|
ID : 26
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 293
|
||||||
|
y coordinate : 210
|
||||||
|
Width : 72
|
||||||
|
Height : 25
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 0
|
||||||
|
Back. Color : 0
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tForecast4
|
||||||
|
Attributes
|
||||||
|
ID : 27
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 374
|
||||||
|
y coordinate : 210
|
||||||
|
Width : 72
|
||||||
|
Height : 25
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 0
|
||||||
|
Back. Color : 0
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tF4Icon
|
||||||
|
Attributes
|
||||||
|
ID : 28
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 390
|
||||||
|
y coordinate : 239
|
||||||
|
Width : 40
|
||||||
|
Height : 35
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 1
|
||||||
|
Back. Color : 0
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
|
Text tForecast4Val
|
||||||
|
Attributes
|
||||||
|
ID : 29
|
||||||
|
Scope : local
|
||||||
|
Dragging : 0
|
||||||
|
Disable release event after dragging: 0
|
||||||
|
Send Component ID : disabled
|
||||||
|
Opacity : 127
|
||||||
|
x coordinate : 374
|
||||||
|
y coordinate : 277
|
||||||
|
Width : 72
|
||||||
|
Height : 25
|
||||||
|
Effect : load
|
||||||
|
Effect Priority : 0
|
||||||
|
Effect Time : 300
|
||||||
|
Fill : solid color
|
||||||
|
Style : flat
|
||||||
|
Associated Keyboard : none
|
||||||
|
Font ID : 0
|
||||||
|
Back. Color : 0
|
||||||
|
Font Color : 65535
|
||||||
|
Horizontal Alignment : center
|
||||||
|
Vertical Alignment : center
|
||||||
|
Input Type : character
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
Word wrap : disabled
|
||||||
|
Horizontal Spacing : 0
|
||||||
|
Vertical Spacing : 0
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
ID : 1
|
ID : 1
|
||||||
@@ -742,28 +866,38 @@ Timer tmSerial
|
|||||||
substr pageIcons.tIcons.txt,tMainIcon.txt,sys0,1
|
substr pageIcons.tIcons.txt,tMainIcon.txt,sys0,1
|
||||||
//tMainText
|
//tMainText
|
||||||
spstr strCommand.txt,tMainText.txt,"?",2
|
spstr strCommand.txt,tMainText.txt,"?",2
|
||||||
//tMRIcon
|
|
||||||
spstr strCommand.txt,tTmp.txt,"?",3
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
substr pageIcons.tIcons.txt,tMRIcon.txt,sys0,1
|
|
||||||
//tMR
|
|
||||||
spstr strCommand.txt,tMR.txt,"?",4
|
|
||||||
//tForecast1
|
//tForecast1
|
||||||
spstr strCommand.txt,tForecast1.txt,"?",5
|
spstr strCommand.txt,tForecast1.txt,"?",3
|
||||||
//tF1Icon
|
//tF1Icon
|
||||||
spstr strCommand.txt,tTmp.txt,"?",6
|
spstr strCommand.txt,tTmp.txt,"?",4
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tF1Icon.txt,sys0,1
|
substr pageIcons.tIcons.txt,tF1Icon.txt,sys0,1
|
||||||
//tForecast1Val
|
//tForecast1Val
|
||||||
spstr strCommand.txt,tForecast1Val.txt,"?",7
|
spstr strCommand.txt,tForecast1Val.txt,"?",5
|
||||||
//tForecast2
|
//tForecast2
|
||||||
spstr strCommand.txt,tForecast2.txt,"?",8
|
spstr strCommand.txt,tForecast2.txt,"?",6
|
||||||
//tF2Icon
|
//tF2Icon
|
||||||
spstr strCommand.txt,tTmp.txt,"?",9
|
spstr strCommand.txt,tTmp.txt,"?",7
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
substr pageIcons.tIcons.txt,tF2Icon.txt,sys0,1
|
substr pageIcons.tIcons.txt,tF2Icon.txt,sys0,1
|
||||||
//tForecast2Val
|
//tForecast2Val
|
||||||
spstr strCommand.txt,tForecast2Val.txt,"?",10
|
spstr strCommand.txt,tForecast2Val.txt,"?",8
|
||||||
|
//tForecast3
|
||||||
|
spstr strCommand.txt,tForecast3.txt,"?",9
|
||||||
|
//tF3Icon
|
||||||
|
spstr strCommand.txt,tTmp.txt,"?",10
|
||||||
|
covx tTmp.txt,sys0,0,0
|
||||||
|
substr pageIcons.tIcons.txt,tF3Icon.txt,sys0,1
|
||||||
|
//tForecast3Val
|
||||||
|
spstr strCommand.txt,tForecast3Val.txt,"?",11
|
||||||
|
//tForecast4
|
||||||
|
spstr strCommand.txt,tForecast4.txt,"?",12
|
||||||
|
//tF4Icon
|
||||||
|
spstr strCommand.txt,tTmp.txt,"?",13
|
||||||
|
covx tTmp.txt,sys0,0,0
|
||||||
|
substr pageIcons.tIcons.txt,tF4Icon.txt,sys0,1
|
||||||
|
//tForecast4Val
|
||||||
|
spstr strCommand.txt,tForecast4Val.txt,"?",14
|
||||||
}
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
@@ -836,7 +970,10 @@ TouchCap tc0
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,screensaver,bExit"
|
dim=100
|
||||||
|
vaTap.val+=1
|
||||||
|
covx vaTap.val,tTmp.txt,0,0
|
||||||
|
tSend.txt="event,buttonPress2,screensaver,bExit,"+tTmp.txt
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
|
|||||||
BIN
HMI/nspanel.HMI
BIN
HMI/nspanel.HMI
Binary file not shown.
BIN
HMI/nspanel.tft
BIN
HMI/nspanel.tft
Binary file not shown.
33
README.md
33
README.md
@@ -298,8 +298,9 @@ nspanel-1:
|
|||||||
heading: Exmaple Thermostat
|
heading: Exmaple Thermostat
|
||||||
item: climate.example_climate
|
item: climate.example_climate
|
||||||
- type: cardMedia
|
- type: cardMedia
|
||||||
heading: Exampe Media
|
|
||||||
item: media_player.spotify_user
|
item: media_player.spotify_user
|
||||||
|
- type: cardAlarm
|
||||||
|
item: alarm_control_panel.alarmo
|
||||||
```
|
```
|
||||||
|
|
||||||
key | optional | type | default | description
|
key | optional | type | default | description
|
||||||
@@ -324,6 +325,9 @@ key | optional | type | default | description
|
|||||||
`weather` | True | string | `weather.example` | weather entity from homeassistant
|
`weather` | True | string | `weather.example` | weather entity from homeassistant
|
||||||
`weatherOverrideForecast1` | True | string | `None` | sensor entity from home assistant here to override the first weather forecast item on the screensaver
|
`weatherOverrideForecast1` | True | string | `None` | sensor entity from home assistant here to override the first weather forecast item on the screensaver
|
||||||
`weatherOverrideForecast2` | True | string | `None` | sensor entity from home assistant here to override the second weather forecast item on the screensaver
|
`weatherOverrideForecast2` | True | string | `None` | sensor entity from home assistant here to override the second weather forecast item on the screensaver
|
||||||
|
`weatherOverrideForecast3` | True | string | `None` | sensor entity from home assistant here to override the third weather forecast item on the screensaver
|
||||||
|
`weatherOverrideForecast4` | True | string | `None` | sensor entity from home assistant here to override the forth weather forecast item on the screensaver
|
||||||
|
`doubleTapToUnlock` | True | boolean | `False` | requires to tap screensaver two times
|
||||||
`pages` | False | complex | | configuration for pages on panel
|
`pages` | False | complex | | configuration for pages on panel
|
||||||
|
|
||||||
#### Schedule screensaver brightness
|
#### Schedule screensaver brightness
|
||||||
@@ -372,13 +376,9 @@ HACS will show you that there is an update avalible and ask you to update.
|
|||||||
|
|
||||||
### Update Display Firmware
|
### Update Display Firmware
|
||||||
|
|
||||||
Use the following command to update or use your own webserver. FlashNextionFast will use Nextion Upload Protocol 1.2 and try to skip unchanged parts of the firmware.
|
Use the following command to update or use your own webserver.
|
||||||
|
|
||||||
`FlashNextionFast http://nspanel.pky.eu/lui.tft`
|
`FlashNextion http://nspanel.pky.eu/lui-release.tft`
|
||||||
|
|
||||||
In case this Update failes, reboot tasmota and use the following command:
|
|
||||||
|
|
||||||
`FlashNextion http://nspanel.pky.eu/lui.tft`
|
|
||||||
|
|
||||||
### Update Tasmota Berry Driver
|
### Update Tasmota Berry Driver
|
||||||
|
|
||||||
@@ -407,4 +407,23 @@ Reboot Tasmota and try to flash it a second time.
|
|||||||
|
|
||||||
Please check your MQTT Topics in your apps.yaml and your mqtt configuration on tasmota.
|
Please check your MQTT Topics in your apps.yaml and your mqtt configuration on tasmota.
|
||||||
|
|
||||||
|
### How to upgrade from a release to the current development version
|
||||||
|
|
||||||
|
1. Update App in HACS to main
|
||||||
|
|
||||||
|
Click redownload in the menu of the app in HACS.
|
||||||
|
|
||||||
|
Select main version.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Wait for it to load, dropdown needs to be selectable again**
|
||||||
|
|
||||||
|
Click download.
|
||||||
|
|
||||||
|
2. Restart AppDaemon
|
||||||
|
|
||||||
|
3. Flash current Development Firmware in Tasmota Console.
|
||||||
|
|
||||||
|
`FlashNextion http://nspanel.pky.eu/lui.tft`
|
||||||
|
|
||||||
|
|||||||
@@ -54,5 +54,6 @@ nspanel-1:
|
|||||||
heading: Exmaple Thermostat
|
heading: Exmaple Thermostat
|
||||||
item: climate.example_climate
|
item: climate.example_climate
|
||||||
- type: cardMedia
|
- type: cardMedia
|
||||||
heading: Exampe Media
|
|
||||||
item: media_player.spotify_user
|
item: media_player.spotify_user
|
||||||
|
- type: cardAlarm
|
||||||
|
item: alarm_control_panel.alarmo
|
||||||
@@ -110,6 +110,9 @@ class LuiBackendConfig(object):
|
|||||||
'weather': 'weather.example',
|
'weather': 'weather.example',
|
||||||
'weatherOverrideForecast1': None,
|
'weatherOverrideForecast1': None,
|
||||||
'weatherOverrideForecast2': None,
|
'weatherOverrideForecast2': None,
|
||||||
|
'weatherOverrideForecast3': None,
|
||||||
|
'weatherOverrideForecast4': None,
|
||||||
|
'doubleTapToUnlock': False,
|
||||||
'pages': [{
|
'pages': [{
|
||||||
'type': 'cardEntities',
|
'type': 'cardEntities',
|
||||||
'heading': 'Test Entities 1',
|
'heading': 'Test Entities 1',
|
||||||
|
|||||||
@@ -126,8 +126,12 @@ class LuiController(object):
|
|||||||
def button_press(self, entity_id, button_type, value):
|
def button_press(self, entity_id, button_type, value):
|
||||||
LOGGER.info(f"Button Press Event; entity_id: {entity_id}; button_type: {button_type}; value: {value} ")
|
LOGGER.info(f"Button Press Event; entity_id: {entity_id}; button_type: {button_type}; value: {value} ")
|
||||||
# internal buttons
|
# internal buttons
|
||||||
if entity_id == "screensaver" and button_type == "enter":
|
if entity_id == "screensaver" and button_type == "bExit":
|
||||||
|
if self._config.get("doubleTapToUnlock") and int(value) >= 2:
|
||||||
self._pages_gen.render_page(self._current_page)
|
self._pages_gen.render_page(self._current_page)
|
||||||
|
elif not self._config.get("doubleTapToUnlock"):
|
||||||
|
self._pages_gen.render_page(self._current_page)
|
||||||
|
return
|
||||||
if button_type == "bExit":
|
if button_type == "bExit":
|
||||||
self._pages_gen.render_page(self._current_page)
|
self._pages_gen.render_page(self._current_page)
|
||||||
|
|
||||||
@@ -178,13 +182,18 @@ class LuiController(object):
|
|||||||
self._ha_api.get_entity(entity_id).call_service("media_previous_track")
|
self._ha_api.get_entity(entity_id).call_service("media_previous_track")
|
||||||
if button_type == "media-pause":
|
if button_type == "media-pause":
|
||||||
self._ha_api.get_entity(entity_id).call_service("media_play_pause")
|
self._ha_api.get_entity(entity_id).call_service("media_play_pause")
|
||||||
if button_type == "hvac_action":
|
if button_type == "media-OnOff":
|
||||||
self._ha_api.get_entity(entity_id).call_service("set_hvac_mode", hvac_mode=value)
|
if player.state == "off":
|
||||||
|
self._ha_api.get_entity(entity_id).call_service("turn_on")
|
||||||
|
else:
|
||||||
|
self._ha_api.get_entity(entity_id).call_service("turn_off")
|
||||||
if button_type == "volumeSlider":
|
if button_type == "volumeSlider":
|
||||||
pos = int(value)
|
pos = int(value)
|
||||||
# HA wants this value between 0 and 1 as float
|
# HA wants this value between 0 and 1 as float
|
||||||
pos = pos/100
|
pos = pos/100
|
||||||
self._ha_api.get_entity(entity_id).call_service("volume_set", volume_level=pos)
|
self._ha_api.get_entity(entity_id).call_service("volume_set", volume_level=pos)
|
||||||
|
if button_type == "speaker-sel":
|
||||||
|
self._ha_api.get_entity(entity_id).call_service("select_source", source=value)
|
||||||
|
|
||||||
# for light detail page
|
# for light detail page
|
||||||
if button_type == "brightnessSlider":
|
if button_type == "brightnessSlider":
|
||||||
@@ -207,3 +216,9 @@ class LuiController(object):
|
|||||||
if button_type == "tempUpd":
|
if button_type == "tempUpd":
|
||||||
temp = int(value)/10
|
temp = int(value)/10
|
||||||
self._ha_api.get_entity(entity_id).call_service("set_temperature", temperature=temp)
|
self._ha_api.get_entity(entity_id).call_service("set_temperature", temperature=temp)
|
||||||
|
if button_type == "hvac_action":
|
||||||
|
self._ha_api.get_entity(entity_id).call_service("set_hvac_mode", hvac_mode=value)
|
||||||
|
|
||||||
|
# for alarm page
|
||||||
|
if button_type in ["disarm", "arm_home", "arm_away", "arm_night", "arm_vacation"]:
|
||||||
|
self._ha_api.get_entity(entity_id).call_service(f"alarm_{button_type}", code=value)
|
||||||
@@ -42,3 +42,7 @@ def rgb_dec565(rgb_color):
|
|||||||
# take in the red, green and blue values (0-255) as 8 bit values and then combine
|
# take in the red, green and blue values (0-255) as 8 bit values and then combine
|
||||||
# and shift them to make them a 16 bit dec value in 565 format.
|
# and shift them to make them a 16 bit dec value in 565 format.
|
||||||
return ((int(red / 255 * 31) << 11) | (int(green / 255 * 63) << 5) | (int(blue / 255 * 31)))
|
return ((int(red / 255 * 31) << 11) | (int(green / 255 * 63) << 5) | (int(blue / 255 * 31)))
|
||||||
|
|
||||||
|
def get_attr_safe(entity, attr, default):
|
||||||
|
res = entity.attributes.get(attr, default) if not None else default
|
||||||
|
return res
|
||||||
@@ -38,6 +38,11 @@ icons = {
|
|||||||
'door-open': 36,
|
'door-open': 36,
|
||||||
'door-closed': 37,
|
'door-closed': 37,
|
||||||
'window-closed': 38,
|
'window-closed': 38,
|
||||||
|
'shield-off': 39,
|
||||||
|
'shield': 40,
|
||||||
|
'shield-lock': 41,
|
||||||
|
'shield-airplane': 42,
|
||||||
|
'bell-ring': 43,
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_icon_id(ma_name):
|
def get_icon_id(ma_name):
|
||||||
|
|||||||
@@ -7,6 +7,13 @@ translations = {
|
|||||||
'fan': "Waaier",
|
'fan': "Waaier",
|
||||||
'idle': "Onaktief",
|
'idle': "Onaktief",
|
||||||
'off': "Af",
|
'off': "Af",
|
||||||
|
'arm_away': "Bewapen weg",
|
||||||
|
'arm_custom_bypass': "Pasgemaakte omseil",
|
||||||
|
'arm_home': "Bewapen Huis",
|
||||||
|
'arm_night': "Nag alarm",
|
||||||
|
'clear_code': "Maak skoon",
|
||||||
|
'code': "Kode",
|
||||||
|
'disarm': "Skakel Af",
|
||||||
},
|
},
|
||||||
'ca_ES': {
|
'ca_ES': {
|
||||||
'PRESS': "Prem",
|
'PRESS': "Prem",
|
||||||
@@ -17,6 +24,14 @@ translations = {
|
|||||||
'fan': "Ventilació",
|
'fan': "Ventilació",
|
||||||
'idle': "Inactiu",
|
'idle': "Inactiu",
|
||||||
'off': "OFF",
|
'off': "OFF",
|
||||||
|
'arm_away': "Activar, fora",
|
||||||
|
'arm_custom_bypass': "Bypass personalitzat",
|
||||||
|
'arm_home': "Activar, a casa",
|
||||||
|
'arm_night': "Activar, nocturn",
|
||||||
|
'arm_vacation': "Activa en mode vacances",
|
||||||
|
'clear_code': "Borrar",
|
||||||
|
'code': "Codi",
|
||||||
|
'disarm': "Desactivar",
|
||||||
},
|
},
|
||||||
'cs_CZ': {
|
'cs_CZ': {
|
||||||
'PRESS': "Stisknutí",
|
'PRESS': "Stisknutí",
|
||||||
@@ -27,10 +42,21 @@ translations = {
|
|||||||
'fan': "Ventilátor",
|
'fan': "Ventilátor",
|
||||||
'idle': "Nečinný",
|
'idle': "Nečinný",
|
||||||
'off': "Vypnuto",
|
'off': "Vypnuto",
|
||||||
|
'arm_away': "Aktivovat režim nepřítomnost",
|
||||||
|
'arm_custom_bypass': "Vlastní obejítí",
|
||||||
|
'arm_home': "Aktivovat režim domov",
|
||||||
|
'arm_night': "Aktivovat noční režim",
|
||||||
|
'arm_vacation': "Aktivovat režim dovolená",
|
||||||
|
'clear_code': "Zrušit",
|
||||||
|
'code': "Kód",
|
||||||
|
'disarm': "Odbezpečit",
|
||||||
},
|
},
|
||||||
'cy_GB': {
|
'cy_GB': {
|
||||||
'ACTIVATE': "Actifadu",
|
'ACTIVATE': "Actifadu",
|
||||||
'off': "I ffwrdd",
|
'off': "I ffwrdd",
|
||||||
|
'arm_custom_bypass': "Ffordd osgoi personol",
|
||||||
|
'arm_night': "Larwm nos",
|
||||||
|
'code': "Cod dilysu dwy-ffactor",
|
||||||
},
|
},
|
||||||
'da_DK': {
|
'da_DK': {
|
||||||
'PRESS': "Tryk",
|
'PRESS': "Tryk",
|
||||||
@@ -41,6 +67,14 @@ translations = {
|
|||||||
'fan': "Blæser",
|
'fan': "Blæser",
|
||||||
'idle': "Inaktiv",
|
'idle': "Inaktiv",
|
||||||
'off': "Fra",
|
'off': "Fra",
|
||||||
|
'arm_away': "Tilkobl ude",
|
||||||
|
'arm_custom_bypass': "Brugerdefineret bypass",
|
||||||
|
'arm_home': "Tilkobl hjemme",
|
||||||
|
'arm_night': "Tilkoblet nat",
|
||||||
|
'arm_vacation': "Tilkobl ferie",
|
||||||
|
'clear_code': "Ryd",
|
||||||
|
'code': "Kode",
|
||||||
|
'disarm': "Frakobl",
|
||||||
},
|
},
|
||||||
'de_DE': {
|
'de_DE': {
|
||||||
'PRESS': "Drücken",
|
'PRESS': "Drücken",
|
||||||
@@ -51,8 +85,14 @@ translations = {
|
|||||||
'fan': "Ventilator",
|
'fan': "Ventilator",
|
||||||
'idle': "Leerlauf",
|
'idle': "Leerlauf",
|
||||||
'off': "Aus",
|
'off': "Aus",
|
||||||
},
|
'arm_away': "Aktivieren - Unterwegs",
|
||||||
'en_GB': {
|
'arm_custom_bypass': "Benutzerdefinierter Bypass",
|
||||||
|
'arm_home': "Aktivieren - Zuhause",
|
||||||
|
'arm_night': "Aktivieren - Nacht",
|
||||||
|
'arm_vacation': "Aktiviere Urlaub",
|
||||||
|
'clear_code': "Löschen",
|
||||||
|
'code': "Code",
|
||||||
|
'disarm': "Deaktivieren",
|
||||||
},
|
},
|
||||||
'en_US': {
|
'en_US': {
|
||||||
'PRESS': "Press",
|
'PRESS': "Press",
|
||||||
@@ -63,6 +103,14 @@ translations = {
|
|||||||
'fan': "Fan",
|
'fan': "Fan",
|
||||||
'idle': "Idle",
|
'idle': "Idle",
|
||||||
'off': "Off",
|
'off': "Off",
|
||||||
|
'arm_away': "Arm away",
|
||||||
|
'arm_custom_bypass': "Custom bypass",
|
||||||
|
'arm_home': "Arm home",
|
||||||
|
'arm_night': "Arm night",
|
||||||
|
'arm_vacation': "Arm vacation",
|
||||||
|
'clear_code': "Clear",
|
||||||
|
'code': "Code",
|
||||||
|
'disarm': "Disarm",
|
||||||
},
|
},
|
||||||
'es_ES': {
|
'es_ES': {
|
||||||
'PRESS': "Pulsa",
|
'PRESS': "Pulsa",
|
||||||
@@ -73,6 +121,14 @@ translations = {
|
|||||||
'fan': "Ventilador",
|
'fan': "Ventilador",
|
||||||
'idle': "Inactivo",
|
'idle': "Inactivo",
|
||||||
'off': "Apagado",
|
'off': "Apagado",
|
||||||
|
'arm_away': "Armar ausente",
|
||||||
|
'arm_custom_bypass': "Bypass personalizada",
|
||||||
|
'arm_home': "Armar en casa",
|
||||||
|
'arm_night': "Armar noche",
|
||||||
|
'arm_vacation': "Armar por vacaciones",
|
||||||
|
'clear_code': "Limpiar",
|
||||||
|
'code': "Código",
|
||||||
|
'disarm': "Desarmar",
|
||||||
},
|
},
|
||||||
'et_EE': {
|
'et_EE': {
|
||||||
'PRESS': "Vajuta nuppu",
|
'PRESS': "Vajuta nuppu",
|
||||||
@@ -83,10 +139,20 @@ translations = {
|
|||||||
'fan': "Ventilaator",
|
'fan': "Ventilaator",
|
||||||
'idle': "Ootel",
|
'idle': "Ootel",
|
||||||
'off': "Väljas",
|
'off': "Väljas",
|
||||||
|
'arm_away': "Valvesta eemal",
|
||||||
|
'arm_custom_bypass': "Eranditega",
|
||||||
|
'arm_home': "Valvesta kodus",
|
||||||
|
'arm_night': "Valvesta öine",
|
||||||
|
'arm_vacation': "Valvesta puhkuse režiimis",
|
||||||
|
'clear_code': "Puhasta",
|
||||||
|
'code': "Kood",
|
||||||
|
'disarm': "Valvest maha",
|
||||||
},
|
},
|
||||||
'eu_ES': {
|
'eu_ES': {
|
||||||
'ACTIVATE': "Aktibatu",
|
'ACTIVATE': "Aktibatu",
|
||||||
'off': "Itzalita",
|
'off': "Itzalita",
|
||||||
|
'clear_code': "Garbitu",
|
||||||
|
'code': "Kodea",
|
||||||
},
|
},
|
||||||
'fi_FI': {
|
'fi_FI': {
|
||||||
'PRESS': "Paina",
|
'PRESS': "Paina",
|
||||||
@@ -97,6 +163,14 @@ translations = {
|
|||||||
'fan': "Tuuletin",
|
'fan': "Tuuletin",
|
||||||
'idle': "Lepotilassa",
|
'idle': "Lepotilassa",
|
||||||
'off': "Pois",
|
'off': "Pois",
|
||||||
|
'arm_away': "Viritä (poissa)",
|
||||||
|
'arm_custom_bypass': "Mukautettu ohitus",
|
||||||
|
'arm_home': "Viritä (kotona)",
|
||||||
|
'arm_night': "Viritä yöksi",
|
||||||
|
'arm_vacation': "Aktivoi lomatila",
|
||||||
|
'clear_code': "Tyhjennä",
|
||||||
|
'code': "Koodi",
|
||||||
|
'disarm': "Poista hälytys",
|
||||||
},
|
},
|
||||||
'fr_FR': {
|
'fr_FR': {
|
||||||
'PRESS': "Appui",
|
'PRESS': "Appui",
|
||||||
@@ -107,6 +181,14 @@ translations = {
|
|||||||
'fan': "Ventilateur",
|
'fan': "Ventilateur",
|
||||||
'idle': "Inactif",
|
'idle': "Inactif",
|
||||||
'off': "Off",
|
'off': "Off",
|
||||||
|
'arm_away': "Armer (absent)",
|
||||||
|
'arm_custom_bypass': "Bypass personnalisé",
|
||||||
|
'arm_home': "Armer (présent)",
|
||||||
|
'arm_night': "Armer nuit",
|
||||||
|
'arm_vacation': "Armer vacances",
|
||||||
|
'clear_code': "Effacer",
|
||||||
|
'code': "Code",
|
||||||
|
'disarm': "Désarmer",
|
||||||
},
|
},
|
||||||
'fy_DE': {
|
'fy_DE': {
|
||||||
'off': "Út",
|
'off': "Út",
|
||||||
@@ -122,6 +204,13 @@ translations = {
|
|||||||
'fan': "Ventilator",
|
'fan': "Ventilator",
|
||||||
'idle': "Neaktivan",
|
'idle': "Neaktivan",
|
||||||
'off': "Isključen",
|
'off': "Isključen",
|
||||||
|
'arm_away': "Aktiviran odsutno",
|
||||||
|
'arm_custom_bypass': "Prilagođena premosnica",
|
||||||
|
'arm_home': "Aktiviran doma",
|
||||||
|
'arm_night': "Aktiviran nočni",
|
||||||
|
'clear_code': "Vedro",
|
||||||
|
'code': "Kod",
|
||||||
|
'disarm': "Deaktiviraj",
|
||||||
},
|
},
|
||||||
'id_ID': {
|
'id_ID': {
|
||||||
'PRESS': "Tekan",
|
'PRESS': "Tekan",
|
||||||
@@ -132,6 +221,14 @@ translations = {
|
|||||||
'fan': "Kipas",
|
'fan': "Kipas",
|
||||||
'idle': "Diam",
|
'idle': "Diam",
|
||||||
'off': "Mati",
|
'off': "Mati",
|
||||||
|
'arm_away': "Aktifkan utk keluar",
|
||||||
|
'arm_custom_bypass': "Diaktifkan khusus",
|
||||||
|
'arm_home': "Aktifkan utk di rumah",
|
||||||
|
'arm_night': "Aktifkan utk malam",
|
||||||
|
'arm_vacation': "Aktifkan utk liburan",
|
||||||
|
'clear_code': "Hapus",
|
||||||
|
'code': "Kode",
|
||||||
|
'disarm': "Nonaktifkan",
|
||||||
},
|
},
|
||||||
'is_IS': {
|
'is_IS': {
|
||||||
'PRESS': "Ýttu á",
|
'PRESS': "Ýttu á",
|
||||||
@@ -141,6 +238,14 @@ translations = {
|
|||||||
'fan': "Vifta",
|
'fan': "Vifta",
|
||||||
'idle': "Aðgerðalaus",
|
'idle': "Aðgerðalaus",
|
||||||
'off': "Slökkt",
|
'off': "Slökkt",
|
||||||
|
'arm_away': "Vörður úti",
|
||||||
|
'arm_custom_bypass': "Sérsniðin hjáleið",
|
||||||
|
'arm_home': "Vörður heima",
|
||||||
|
'arm_night': "Vörður nótt",
|
||||||
|
'arm_vacation': "Vörður frí",
|
||||||
|
'clear_code': "Hreinsa",
|
||||||
|
'code': "Kóði",
|
||||||
|
'disarm': "Taka af verði",
|
||||||
},
|
},
|
||||||
'it_IT': {
|
'it_IT': {
|
||||||
'PRESS': "Premi",
|
'PRESS': "Premi",
|
||||||
@@ -151,6 +256,14 @@ translations = {
|
|||||||
'fan': "Ventilatore",
|
'fan': "Ventilatore",
|
||||||
'idle': "Inattivo",
|
'idle': "Inattivo",
|
||||||
'off': "Spento",
|
'off': "Spento",
|
||||||
|
'arm_away': "Attiva fuori casa",
|
||||||
|
'arm_custom_bypass': "Bypass personalizzato",
|
||||||
|
'arm_home': "Attiva in casa",
|
||||||
|
'arm_night': "Attiva notte",
|
||||||
|
'arm_vacation': "Attiva in vacanza",
|
||||||
|
'clear_code': "Canc",
|
||||||
|
'code': "Codice",
|
||||||
|
'disarm': "Disattiva",
|
||||||
},
|
},
|
||||||
'nl_NL': {
|
'nl_NL': {
|
||||||
'PRESS': "Klik",
|
'PRESS': "Klik",
|
||||||
@@ -161,6 +274,14 @@ translations = {
|
|||||||
'fan': "Ventilator",
|
'fan': "Ventilator",
|
||||||
'idle': "Inactief",
|
'idle': "Inactief",
|
||||||
'off': "Uit",
|
'off': "Uit",
|
||||||
|
'arm_away': "Inschakelen voor vertrek",
|
||||||
|
'arm_custom_bypass': "Inschakelen met overbrugging",
|
||||||
|
'arm_home': "Inschakelen voor thuis",
|
||||||
|
'arm_night': "Inschakelen voor 's nachts",
|
||||||
|
'arm_vacation': "Inschakelen voor vakantie",
|
||||||
|
'clear_code': "Wis",
|
||||||
|
'code': "Code",
|
||||||
|
'disarm': "Uitschakelen",
|
||||||
},
|
},
|
||||||
'nn_NO': {
|
'nn_NO': {
|
||||||
'ACTIVATE': "Aktiver",
|
'ACTIVATE': "Aktiver",
|
||||||
@@ -170,6 +291,14 @@ translations = {
|
|||||||
'fan': "Vifte",
|
'fan': "Vifte",
|
||||||
'idle': "Tomgang",
|
'idle': "Tomgang",
|
||||||
'off': "Av",
|
'off': "Av",
|
||||||
|
'arm_away': "Bortemodus",
|
||||||
|
'arm_custom_bypass': "Tilpassa bypass",
|
||||||
|
'arm_home': "Heimemodus",
|
||||||
|
'arm_night': "Aktiver natt",
|
||||||
|
'arm_vacation': "Armert feriemodus",
|
||||||
|
'clear_code': "Slett alt",
|
||||||
|
'code': "Kode",
|
||||||
|
'disarm': "Skru av",
|
||||||
},
|
},
|
||||||
'pt_PT': {
|
'pt_PT': {
|
||||||
'PRESS': "Pressione",
|
'PRESS': "Pressione",
|
||||||
@@ -180,6 +309,13 @@ translations = {
|
|||||||
'fan': "Ventoinha",
|
'fan': "Ventoinha",
|
||||||
'idle': "Em espera",
|
'idle': "Em espera",
|
||||||
'off': "Desligado",
|
'off': "Desligado",
|
||||||
|
'arm_away': "Armado ausente",
|
||||||
|
'arm_custom_bypass': "Desvio personalizado",
|
||||||
|
'arm_home': "Armado casa",
|
||||||
|
'arm_night': "Armado noite",
|
||||||
|
'clear_code': "Apagar",
|
||||||
|
'code': "Código",
|
||||||
|
'disarm': "Desarmar",
|
||||||
},
|
},
|
||||||
'sr_RS': {
|
'sr_RS': {
|
||||||
'PRESS': "Pritisnite taster",
|
'PRESS': "Pritisnite taster",
|
||||||
@@ -195,6 +331,14 @@ translations = {
|
|||||||
'fan': "Fläkt",
|
'fan': "Fläkt",
|
||||||
'idle': "Inaktiv",
|
'idle': "Inaktiv",
|
||||||
'off': "Av",
|
'off': "Av",
|
||||||
|
'arm_away': "Larma bortaläge",
|
||||||
|
'arm_custom_bypass': "Larm förbikopplat",
|
||||||
|
'arm_home': "Larma hemmaläge",
|
||||||
|
'arm_night': "Larma nattläge",
|
||||||
|
'arm_vacation': "Larma semesterläge",
|
||||||
|
'clear_code': "Rensa",
|
||||||
|
'code': "Kod",
|
||||||
|
'disarm': "Larma från",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import datetime
|
|||||||
|
|
||||||
from icon_mapping import get_icon_id
|
from icon_mapping import get_icon_id
|
||||||
from icons import get_icon_id_ha
|
from icons import get_icon_id_ha
|
||||||
from helper import scale, rgb_dec565, rgb_brightness
|
from helper import scale, rgb_dec565, rgb_brightness, get_attr_safe
|
||||||
from localization import get_translation
|
from localization import get_translation
|
||||||
|
|
||||||
# check Babel
|
# check Babel
|
||||||
@@ -68,61 +68,35 @@ class LuiPagesGen(object):
|
|||||||
|
|
||||||
icon_cur = get_icon_id_ha("weather", state=we.state)
|
icon_cur = get_icon_id_ha("weather", state=we.state)
|
||||||
text_cur = f"{we.attributes.temperature}{unit}"
|
text_cur = f"{we.attributes.temperature}{unit}"
|
||||||
icon_cur_detail = get_icon_id("water-percent")
|
|
||||||
text_cur_detail = f"{we.attributes.humidity} %"
|
|
||||||
|
|
||||||
wOF1 = self._config.get("weatherOverrideForecast1")
|
weather_res = ""
|
||||||
if wOF1 is None:
|
for i in range(1,5):
|
||||||
up1 = we.attributes.forecast[0]['datetime']
|
wOF = self._config.get(f"weatherOverrideForecast{i}")
|
||||||
up1 = datetime.datetime.fromisoformat(up1)
|
if wOF is None:
|
||||||
|
up = we.attributes.forecast[i-1]['datetime']
|
||||||
|
up = datetime.datetime.fromisoformat(up)
|
||||||
if babel_spec is not None:
|
if babel_spec is not None:
|
||||||
up1 = babel.dates.format_date(up1, "E", locale=self._locale)
|
up = babel.dates.format_date(up, "E", locale=self._locale)
|
||||||
else:
|
else:
|
||||||
up1 = up1.strftime("%a")
|
up = up.strftime("%a")
|
||||||
icon1 = get_icon_id_ha("weather", state=we.attributes.forecast[0]['condition'])
|
icon = get_icon_id_ha("weather", state=we.attributes.forecast[i-1]['condition'])
|
||||||
down1 = f"{we.attributes.forecast[0]['temperature']} {unit}"
|
down = f"{we.attributes.forecast[i-1]['temperature']} {unit}"
|
||||||
else:
|
else:
|
||||||
LOGGER.info(f"Forecast 1 is overrriden with {wOF1}")
|
LOGGER.info(f"Forecast 1 is overrriden with {wOF}")
|
||||||
icon = None
|
icon = None
|
||||||
name = None
|
name = None
|
||||||
if type(wOF1) is dict:
|
if type(wOF) is dict:
|
||||||
icon = next(iter(wOF1.items()))[1].get('icon')
|
icon = next(iter(wOF.items()))[1].get('icon')
|
||||||
name = next(iter(wOF1.items()))[1].get('name')
|
name = next(iter(wOF.items()))[1].get('name')
|
||||||
wOF1 = next(iter(wOF1.items()))[0]
|
wOF = next(iter(wOF.items()))[0]
|
||||||
entity = self._ha_api.get_entity(wOF1)
|
entity = self._ha_api.get_entity(wOF)
|
||||||
up1 = name if name is not None else entity.attributes.friendly_name
|
up = name if name is not None else entity.attributes.friendly_name
|
||||||
icon1 = get_icon_id_ha("sensor", state=entity.state, device_class=entity.attributes.get("device_class", ""), overwrite=icon)
|
icon = get_icon_id_ha("sensor", state=entity.state, device_class=entity.attributes.get("device_class", ""), overwrite=icon)
|
||||||
unit_of_measurement = entity.attributes.get("unit_of_measurement", "")
|
unit_of_measurement = entity.attributes.get("unit_of_measurement", "")
|
||||||
down1 = f"{entity.state} {unit_of_measurement}"
|
down = f"{entity.state} {unit_of_measurement}"
|
||||||
|
weather_res+=f"?{up}?{icon}?{down}"
|
||||||
|
|
||||||
|
self._send_mqtt_msg(f"weatherUpdate,?{icon_cur}?{text_cur}{weather_res}")
|
||||||
wOF2 = self._config.get("weatherOverrideForecast2")
|
|
||||||
if wOF2 is None:
|
|
||||||
up2 = we.attributes.forecast[1]['datetime']
|
|
||||||
up2 = datetime.datetime.fromisoformat(up2)
|
|
||||||
if babel_spec is not None:
|
|
||||||
up2 = babel.dates.format_date(up2, "E", locale=self._locale)
|
|
||||||
else:
|
|
||||||
up2 = up2.strftime("%a")
|
|
||||||
icon2 = get_icon_id_ha("weather", state=we.attributes.forecast[1]['condition'])
|
|
||||||
down2 = f"{we.attributes.forecast[1]['temperature']} {unit}"
|
|
||||||
|
|
||||||
else:
|
|
||||||
LOGGER.info(f"Forecast 2 is overrriden with {wOF2}")
|
|
||||||
icon = None
|
|
||||||
name = None
|
|
||||||
if type(wOF2) is dict:
|
|
||||||
icon = next(iter(wOF2.items()))[1].get('icon')
|
|
||||||
name = next(iter(wOF2.items()))[1].get('name')
|
|
||||||
wOF2 = next(iter(wOF2.items()))[0]
|
|
||||||
entity = self._ha_api.get_entity(wOF2)
|
|
||||||
up2 = name if name is not None else entity.attributes.friendly_name
|
|
||||||
icon2 = get_icon_id_ha("sensor", state=entity.state, device_class=entity.attributes.get("device_class", ""), overwrite=icon)
|
|
||||||
unit_of_measurement = entity.attributes.get("unit_of_measurement", "")
|
|
||||||
down2 = f"{entity.state} {unit_of_measurement}"
|
|
||||||
|
|
||||||
|
|
||||||
self._send_mqtt_msg(f"weatherUpdate,?{icon_cur}?{text_cur}?{icon_cur_detail}?{text_cur_detail}?{up1}?{icon1}?{down1}?{up2}?{icon2}?{down2}")
|
|
||||||
|
|
||||||
def generate_entities_item(self, item):
|
def generate_entities_item(self, item):
|
||||||
icon = None
|
icon = None
|
||||||
@@ -141,9 +115,10 @@ class LuiPagesGen(object):
|
|||||||
page_search = self._config.get_root_page().search_page_by_name(item)
|
page_search = self._config.get_root_page().search_page_by_name(item)
|
||||||
if len(page_search) > 0:
|
if len(page_search) > 0:
|
||||||
page_data = page_search[0].data
|
page_data = page_search[0].data
|
||||||
|
if name is None:
|
||||||
name = page_data.get("heading")
|
name = page_data.get("heading")
|
||||||
text = get_translation(self._locale,"PRESS")
|
text = get_translation(self._locale,"PRESS")
|
||||||
icon_id = get_icon_id(page_data.get("icon", "gesture-tap-button"))
|
icon_id = get_icon_id(icon) if icon is not None else get_icon_id(page_data.get("icon", "gesture-tap-button"))
|
||||||
return f",button,{item},{icon_id},17299,{name},{text}"
|
return f",button,{item},{icon_id},17299,{name},{text}"
|
||||||
else:
|
else:
|
||||||
return f",text,{item},{get_icon_id('alert-circle-outline')},17299,page not found,"
|
return f",text,{item},{get_icon_id('alert-circle-outline')},17299,page not found,"
|
||||||
@@ -193,21 +168,22 @@ class LuiPagesGen(object):
|
|||||||
self._send_mqtt_msg(command)
|
self._send_mqtt_msg(command)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def generate_thermo_page(self, item):
|
def generate_thermo_page(self, item):
|
||||||
if not self._ha_api.entity_exists(item):
|
if not self._ha_api.entity_exists(item):
|
||||||
command = f"entityUpd,{item},Not found,220,220,Not found,150,300,5"
|
command = f"entityUpd,{item},Not found,220,220,Not found,150,300,5"
|
||||||
else:
|
else:
|
||||||
entity = self._ha_api.get_entity(item)
|
entity = self._ha_api.get_entity(item)
|
||||||
heading = entity.attributes.friendly_name
|
heading = entity.attributes.friendly_name
|
||||||
current_temp = int(entity.attributes.get("current_temperature", 0)*10)
|
current_temp = int(get_attr_safe(entity, "current_temperature", 0)*10)
|
||||||
dest_temp = int(entity.attributes.get("temperature", 0)*10)
|
dest_temp = int(get_attr_safe(entity, "temperature", 0)*10)
|
||||||
status = entity.attributes.get("hvac_action", "")
|
status = get_attr_safe(entity, "hvac_action", "")
|
||||||
status = get_translation(self._locale,status)
|
status = get_translation(self._locale,status)
|
||||||
min_temp = int(entity.attributes.get("min_temp", 0)*10)
|
min_temp = int(get_attr_safe(entity, "min_temp", 0)*10)
|
||||||
max_temp = int(entity.attributes.get("max_temp", 0)*10)
|
max_temp = int(get_attr_safe(entity, "max_temp", 0)*10)
|
||||||
step_temp = int(entity.attributes.get("target_temp_step", 0.5)*10)
|
step_temp = int(get_attr_safe(entity, "target_temp_step", 0.5)*10)
|
||||||
icon_res = ""
|
icon_res = ""
|
||||||
hvac_modes = entity.attributes.get("hvac_modes", [])
|
hvac_modes = get_attr_safe(entity, "hvac_modes", [])
|
||||||
for mode in hvac_modes:
|
for mode in hvac_modes:
|
||||||
icon_id = get_icon_id('alert-circle-outline')
|
icon_id = get_icon_id('alert-circle-outline')
|
||||||
color_on = 64512
|
color_on = 64512
|
||||||
@@ -257,14 +233,89 @@ class LuiPagesGen(object):
|
|||||||
entity = self._ha_api.get_entity(item)
|
entity = self._ha_api.get_entity(item)
|
||||||
heading = entity.attributes.friendly_name
|
heading = entity.attributes.friendly_name
|
||||||
icon = 0
|
icon = 0
|
||||||
title = entity.attributes.get("media_title", "")
|
title = get_attr_safe(entity, "media_title", "")
|
||||||
author = entity.attributes.get("media_artist", "")
|
author = get_attr_safe(entity, "media_artist", "")
|
||||||
volume = int(entity.attributes.get("volume_level", 0)*100)
|
volume = int(get_attr_safe(entity, "volume_level", 0)*100)
|
||||||
iconplaypause = get_icon_id("pause") if entity.state == "playing" else get_icon_id("play")
|
iconplaypause = get_icon_id("pause") if entity.state == "playing" else get_icon_id("play")
|
||||||
if "media_content_type" in entity.attributes:
|
if "media_content_type" in entity.attributes:
|
||||||
if entity.attributes.media_content_type == "music":
|
if entity.attributes.media_content_type == "music":
|
||||||
icon = get_icon_id("music")
|
icon = get_icon_id("music")
|
||||||
command = f"entityUpd,|{item}|{heading}|{icon}|{title}|{author}|{volume}|{iconplaypause}"
|
source = get_attr_safe(entity, "source", "")
|
||||||
|
speakerlist = get_attr_safe(entity, "source_list",[])
|
||||||
|
if source in speakerlist:
|
||||||
|
# move current source to the end of the list
|
||||||
|
speakerlist.remove(source)
|
||||||
|
speakerlist.append(source)
|
||||||
|
if len(speakerlist) == 1:
|
||||||
|
speakerlist = []
|
||||||
|
speakerlist = "?".join(speakerlist)
|
||||||
|
bits = entity.attributes.supported_features
|
||||||
|
onoffbutton = "disable"
|
||||||
|
if bits & 0b01000000:
|
||||||
|
if entity.state == "off":
|
||||||
|
onoffbutton = 1374
|
||||||
|
else:
|
||||||
|
onoffbutton = rgb_dec565([255,255,255])
|
||||||
|
command = f"entityUpd,|{item}|{heading}|{icon}|{title}|{author}|{volume}|{iconplaypause}|{source}|{speakerlist}|{onoffbutton}"
|
||||||
|
self._send_mqtt_msg(command)
|
||||||
|
|
||||||
|
def generate_alarm_page(self, item):
|
||||||
|
if not self._ha_api.entity_exists(item):
|
||||||
|
command = f"entityUpd,{item},Not found,Not found,Check your,Check your,apps.,apps.,yaml,yaml,0,,0"
|
||||||
|
else:
|
||||||
|
entity = self._ha_api.get_entity(item)
|
||||||
|
icon = get_icon_id("shield-off")
|
||||||
|
color = rgb_dec565([255,255,255])
|
||||||
|
supported_modes = []
|
||||||
|
numpad = "enable"
|
||||||
|
if entity.state == "disarmed":
|
||||||
|
color = rgb_dec565([13,160,53])
|
||||||
|
icon = get_icon_id("shield-off")
|
||||||
|
test = entity.attributes.get("code_arm_required", "false")
|
||||||
|
if not entity.attributes.get("code_arm_required", False):
|
||||||
|
numpad = "disable"
|
||||||
|
bits = entity.attributes.supported_features
|
||||||
|
if bits & 0b000001:
|
||||||
|
supported_modes.append("arm_home")
|
||||||
|
if bits & 0b000010:
|
||||||
|
supported_modes.append("arm_away")
|
||||||
|
if bits & 0b000100:
|
||||||
|
supported_modes.append("arm_night")
|
||||||
|
if bits & 0b100000:
|
||||||
|
supported_modes.append("arm_vacation")
|
||||||
|
else:
|
||||||
|
supported_modes.append("disarm")
|
||||||
|
|
||||||
|
if entity.state == "armed_home":
|
||||||
|
color = rgb_dec565([223,76,30])
|
||||||
|
icon = get_icon_id("shield-home")
|
||||||
|
if entity.state == "armed_away":
|
||||||
|
color = rgb_dec565([223,76,30])
|
||||||
|
icon = get_icon_id("shield-lock")
|
||||||
|
if entity.state == "armed_night":
|
||||||
|
color = rgb_dec565([223,76,30])
|
||||||
|
icon = get_icon_id("weather-night")
|
||||||
|
if entity.state == "armed_vacation":
|
||||||
|
color = rgb_dec565([223,76,30])
|
||||||
|
icon = get_icon_id("shield-airplane")
|
||||||
|
|
||||||
|
flashing = "disable"
|
||||||
|
if entity.state in ["arming", "pending"]:
|
||||||
|
color = rgb_dec565([243,179,0])
|
||||||
|
icon = get_icon_id("shield")
|
||||||
|
flashing = "enable"
|
||||||
|
if entity.state == "triggered":
|
||||||
|
color = rgb_dec565([223,76,30])
|
||||||
|
icon = get_icon_id("bell-ring")
|
||||||
|
flashing = "enable"
|
||||||
|
|
||||||
|
# add padding to arm buttons
|
||||||
|
arm_buttons = ""
|
||||||
|
for b in supported_modes:
|
||||||
|
arm_buttons += f",{get_translation(self._locale, b)},{b}"
|
||||||
|
if len(supported_modes) < 4:
|
||||||
|
arm_buttons += ","*((4-len(supported_modes))*2)
|
||||||
|
command = f"entityUpd,{item}{arm_buttons},{icon},{color},{numpad},{flashing}"
|
||||||
self._send_mqtt_msg(command)
|
self._send_mqtt_msg(command)
|
||||||
|
|
||||||
def render_page(self, page, send_page_type=True):
|
def render_page(self, page, send_page_type=True):
|
||||||
@@ -282,6 +333,9 @@ class LuiPagesGen(object):
|
|||||||
self.generate_thermo_page(page.data.get("item"))
|
self.generate_thermo_page(page.data.get("item"))
|
||||||
if page_type == "cardMedia":
|
if page_type == "cardMedia":
|
||||||
self.generate_media_page(page.data.get("item"))
|
self.generate_media_page(page.data.get("item"))
|
||||||
|
if page_type == "cardAlarm":
|
||||||
|
self.generate_alarm_page(page.data.get("item"))
|
||||||
|
|
||||||
|
|
||||||
def generate_light_detail_page(self, entity):
|
def generate_light_detail_page(self, entity):
|
||||||
entity = self._ha_api.get_entity(entity)
|
entity = self._ha_api.get_entity(entity)
|
||||||
@@ -312,6 +366,7 @@ class LuiPagesGen(object):
|
|||||||
self._send_mqtt_msg(f"entityUpdateDetail,{get_icon_id('lightbulb')},{icon_color},{switch_val},{brightness},{color_temp},{color}")
|
self._send_mqtt_msg(f"entityUpdateDetail,{get_icon_id('lightbulb')},{icon_color},{switch_val},{brightness},{color_temp},{color}")
|
||||||
|
|
||||||
def generate_shutter_detail_page(self, entity):
|
def generate_shutter_detail_page(self, entity):
|
||||||
|
entity = self._ha_api.get_entity(entity)
|
||||||
pos = 100-int(entity.attributes.get("current_position", 50))
|
pos = 100-int(entity.attributes.get("current_position", 50))
|
||||||
self._send_mqtt_msg(f"entityUpdateDetail,{pos}")
|
self._send_mqtt_msg(f"entityUpdateDetail,{pos}")
|
||||||
|
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ class NsPanelLovelaceUIManager(hass.Hass):
|
|||||||
|
|
||||||
controller = LuiController(self, cfg, send_mqtt_msg)
|
controller = LuiController(self, cfg, send_mqtt_msg)
|
||||||
|
|
||||||
desired_display_firmware_version = 19
|
desired_display_firmware_version = 21
|
||||||
desired_display_firmware_url = "http://nspanel.pky.eu/lovelace-ui/github/nspanel-v1.8.3.tft"
|
desired_display_firmware_url = "http://nspanel.pky.eu/lovelace-ui/github/nspanel-v1.9.1.tft"
|
||||||
desired_tasmota_driver_version = 3
|
desired_tasmota_driver_version = 3
|
||||||
desired_tasmota_driver_url = "https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be"
|
desired_tasmota_driver_url = "https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be"
|
||||||
|
|
||||||
|
|||||||
BIN
doc-pics/hacs-main.png
Normal file
BIN
doc-pics/hacs-main.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 321 KiB |
3
info.md
3
info.md
@@ -61,8 +61,9 @@ nspanel-1:
|
|||||||
heading: Exmaple Thermostat
|
heading: Exmaple Thermostat
|
||||||
item: climate.example_climate
|
item: climate.example_climate
|
||||||
- type: cardMedia
|
- type: cardMedia
|
||||||
heading: Exampe Media
|
|
||||||
item: media_player.spotify_user
|
item: media_player.spotify_user
|
||||||
|
- type: cardAlarm
|
||||||
|
item: alarm_control_panel.alarmo
|
||||||
```
|
```
|
||||||
|
|
||||||
key | optional | type | default | description
|
key | optional | type | default | description
|
||||||
|
|||||||
@@ -62,16 +62,13 @@ var button2Page: PageEntities =
|
|||||||
export const config: Config = {
|
export const config: Config = {
|
||||||
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT",
|
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT",
|
||||||
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend",
|
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend",
|
||||||
leftEntity: "alias.0.Batterie.ACTUAL",
|
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: 26, ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityIcon: 34,
|
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: 19, ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityText: "Batterie",
|
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: 34, ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityUnitText: "%",
|
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: 32, ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
||||||
rightEntity: "alias.0.Pv.ACTUAL",
|
|
||||||
rightEntityIcon: 32,
|
|
||||||
rightEntityText: "PV",
|
|
||||||
rightEntityUnitText: "W",
|
|
||||||
timeoutScreensaver: 15,
|
timeoutScreensaver: 15,
|
||||||
dimmode: 8,
|
dimmode: 8,
|
||||||
|
screenSaverDoubleClick: false,
|
||||||
locale: "de_DE",
|
locale: "de_DE",
|
||||||
timeFormat: "%H:%M",
|
timeFormat: "%H:%M",
|
||||||
dateFormat: "%A, %d. %B %Y",
|
dateFormat: "%A, %d. %B %Y",
|
||||||
@@ -104,15 +101,21 @@ schedule("0 * * * *", function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Only monitor the extra nodes if one or both are present
|
// Only monitor the extra nodes if present
|
||||||
var updateArray: string[] = [];
|
var updateArray: string[] = [];
|
||||||
if (config.rightEntity !== null && existsState(config.rightEntity)) {
|
if (config.firstScreensaverEntity !== null && config.firstScreensaverEntity.ScreensaverEntity != null && existsState(config.firstScreensaverEntity.ScreensaverEntity)) {
|
||||||
updateArray.push(config.rightEntity)
|
updateArray.push(config.firstScreensaverEntity.ScreensaverEntity)
|
||||||
|
}
|
||||||
|
if (config.secondScreensaverEntity !== null && config.secondScreensaverEntity.ScreensaverEntity != null && existsState(config.secondScreensaverEntity.ScreensaverEntity)) {
|
||||||
|
updateArray.push(config.secondScreensaverEntity.ScreensaverEntity)
|
||||||
|
}
|
||||||
|
if (config.thirdScreensaverEntity !== null && config.thirdScreensaverEntity.ScreensaverEntity != null && existsState(config.thirdScreensaverEntity.ScreensaverEntity)) {
|
||||||
|
updateArray.push(config.thirdScreensaverEntity.ScreensaverEntity)
|
||||||
|
}
|
||||||
|
if (config.fourthScreensaverEntity !== null && config.fourthScreensaverEntity.ScreensaverEntity != null && existsState(config.fourthScreensaverEntity.ScreensaverEntity)) {
|
||||||
|
updateArray.push(config.fourthScreensaverEntity.ScreensaverEntity)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.leftEntity !== null && existsState(config.leftEntity)) {
|
|
||||||
updateArray.push(config.leftEntity)
|
|
||||||
}
|
|
||||||
if (updateArray.length > 0) {
|
if (updateArray.length > 0) {
|
||||||
on(updateArray, function () {
|
on(updateArray, function () {
|
||||||
HandleScreensaverUpdate();
|
HandleScreensaverUpdate();
|
||||||
@@ -123,16 +126,8 @@ on({ id: config.panelRecvTopic }, function (obj) {
|
|||||||
var json = JSON.parse(obj.state.val);
|
var json = JSON.parse(obj.state.val);
|
||||||
|
|
||||||
var split = json.CustomRecv.split(",");
|
var split = json.CustomRecv.split(",");
|
||||||
if (split[1] == "pageOpenDetail") {
|
|
||||||
UnsubscribeWatcher();
|
|
||||||
let pageItem = config.pages[pageId].items.find(e => e.id === split[3]);
|
|
||||||
if (pageItem !== undefined)
|
|
||||||
SendToPanel(GenerateDetailPage(split[2], pageItem));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
HandleMessage(split[0], split[1], parseInt(split[2]), split);
|
HandleMessage(split[0], split[1], parseInt(split[2]), split);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function SendToPanel(val: Payload | Payload[]): void {
|
function SendToPanel(val: Payload | Payload[]): void {
|
||||||
@@ -147,18 +142,18 @@ function SendToPanel(val: Payload | Payload[]): void {
|
|||||||
|
|
||||||
function HandleMessage(typ: string, method: string, page: number, words: Array<string>): void {
|
function HandleMessage(typ: string, method: string, page: number, words: Array<string>): void {
|
||||||
if (typ == "event") {
|
if (typ == "event") {
|
||||||
|
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case "pageOpen":
|
|
||||||
var pageNum = (page % config.pages.length);
|
|
||||||
pageId = Math.abs(pageNum);
|
|
||||||
UnsubscribeWatcher();
|
|
||||||
GeneratePage(config.pages[pageId]);
|
|
||||||
break;
|
|
||||||
case "startup":
|
case "startup":
|
||||||
UnsubscribeWatcher();
|
UnsubscribeWatcher();
|
||||||
HandleStartupProcess();
|
HandleStartupProcess();
|
||||||
|
pageId = 0;
|
||||||
|
GeneratePage(config.pages[0]);
|
||||||
break;
|
break;
|
||||||
|
case "pageOpenDetail":
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
let pageItem = config.pages[pageId].items.find(e => e.id === words[3]);
|
||||||
|
if (pageItem !== undefined)
|
||||||
|
SendToPanel(GenerateDetailPage(words[2], pageItem));
|
||||||
case "buttonPress2":
|
case "buttonPress2":
|
||||||
HandleButtonEvent(words);
|
HandleButtonEvent(words);
|
||||||
break;
|
break;
|
||||||
@@ -236,7 +231,7 @@ function SendTime(): void {
|
|||||||
function GenerateEntitiesPage(page: PageEntities): Payload[] {
|
function GenerateEntitiesPage(page: PageEntities): Payload[] {
|
||||||
var out_msgs: Array<Payload> = [];
|
var out_msgs: Array<Payload> = [];
|
||||||
out_msgs = [{ payload: "pageType,cardEntities" }, { payload: "entityUpdHeading," + page.heading }]
|
out_msgs = [{ payload: "pageType,cardEntities" }, { payload: "entityUpdHeading," + page.heading }]
|
||||||
out_msgs.push({ payload: GeneratePageElements(page.items, 4,page.useColor) });
|
out_msgs.push({ payload: GeneratePageElements(page.items, 4, page.useColor) });
|
||||||
return out_msgs
|
return out_msgs
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,14 +312,15 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
|
|
||||||
case "blind":
|
case "blind":
|
||||||
type = "shutter"
|
type = "shutter"
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 0;
|
iconId = pageItem.icon !== undefined ? pageItem.icon : 11;
|
||||||
iconColor = GetIconColor(pageItem, existsState(pageItem.id + ".ACTUAL") ? getState(pageItem.id + ".ACTUAL").val : true, useColors);
|
iconColor = GetIconColor(pageItem, existsState(pageItem.id + ".ACTUAL") ? getState(pageItem.id + ".ACTUAL").val : true, useColors);
|
||||||
return "," + type + "," + pageItem.id + "," + iconId + "," + iconColor + "," + name + ","
|
return "," + type + "," + pageItem.id + "," + iconId + "," + iconColor + "," + name + ","
|
||||||
|
|
||||||
case "info":
|
case "info":
|
||||||
case "value.temperature":
|
case "value.temperature":
|
||||||
|
case "thermostat":
|
||||||
type = "text";
|
type = "text";
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 11;
|
iconId = pageItem.icon !== undefined ? pageItem.icon : o.common.role == "value.temperature" || o.common.role == "thermostat" ? 2 : 0;
|
||||||
let unit = "";
|
let unit = "";
|
||||||
var optVal = "0"
|
var optVal = "0"
|
||||||
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
||||||
@@ -432,12 +428,15 @@ function GenerateThermoPage(page: PageThermo): Payload[] {
|
|||||||
currentTemp = parseInt(getState(id + ".ACTUAL").val) * 10;
|
currentTemp = parseInt(getState(id + ".ACTUAL").val) * 10;
|
||||||
|
|
||||||
let destTemp = 0;
|
let destTemp = 0;
|
||||||
if (existsState(id + ".SET"))
|
if (existsState(id + ".SET")) {
|
||||||
destTemp = parseInt(getState(id + ".SET").val) * 10;
|
destTemp = getState(id + ".SET").val.toFixed(2) * 10;
|
||||||
|
log(id + ".SET " + destTemp)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let status = ""
|
let status = ""
|
||||||
if (existsState(id + ".MODE"))
|
if (existsState(id + ".MODE"))
|
||||||
status = destTemp = getState(id + ".MODE").val;
|
status = getState(id + ".MODE").val;
|
||||||
let minTemp = 180
|
let minTemp = 180
|
||||||
let maxTemp = 300
|
let maxTemp = 300
|
||||||
let stepTemp = 5
|
let stepTemp = 5
|
||||||
@@ -459,7 +458,6 @@ function setIfExists(id: string, value: any, type: string | null = null): boolea
|
|||||||
else {
|
else {
|
||||||
let obj = getObject(id);
|
let obj = getObject(id);
|
||||||
if (existsState(id) && obj.common.type !== undefined && obj.common.type === type) {
|
if (existsState(id) && obj.common.type !== undefined && obj.common.type === type) {
|
||||||
log(id)
|
|
||||||
setState(id, value);
|
setState(id, value);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -478,46 +476,65 @@ function toggleState(id: string): boolean {
|
|||||||
|
|
||||||
function HandleButtonEvent(words): void {
|
function HandleButtonEvent(words): void {
|
||||||
let id = words[2]
|
let id = words[2]
|
||||||
|
let buttonAction = words[3];
|
||||||
|
|
||||||
if (words[3] == "OnOff" && existsObject(id)) {
|
switch (buttonAction) {
|
||||||
|
case "bNext":
|
||||||
|
var pageNum = ((pageId + 1) % config.pages.length);
|
||||||
|
pageId = Math.abs(pageNum);
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
break;
|
||||||
|
case "bPrev":
|
||||||
|
var pageNum = ((pageId - 1) % config.pages.length);
|
||||||
|
pageId = Math.abs(pageNum);
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
break;
|
||||||
|
case "bExit":
|
||||||
|
if (config.screenSaverDoubleClick) {
|
||||||
|
if (words[4] == 2)
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
break;
|
||||||
|
case "OnOff":
|
||||||
|
if (existsObject(id)) {
|
||||||
var action = false
|
var action = false
|
||||||
if (words[4] == "1")
|
if (words[4] == "1")
|
||||||
action = true
|
action = true
|
||||||
let o = getObject(id)
|
let o = getObject(id)
|
||||||
switch (o.common.role) {
|
switch (o.common.role) {
|
||||||
case "light":
|
case "light":
|
||||||
setState(id + ".SET", action);
|
setIfExists(id + ".SET", action);
|
||||||
break;
|
break;
|
||||||
case "dimmer":
|
case "dimmer":
|
||||||
if (existsState(id + ".ON_SET"))
|
setIfExists(id + ".ON_SET", action) ? true : setIfExists(id + ".ON_ACTUAL", action);
|
||||||
setState(id + ".ON_SET", action);
|
|
||||||
else if (existsState(id + ".ON_ACTUAL"))
|
|
||||||
setState(id + ".ON_ACTUAL", action);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
if (words[3] == "up")
|
case "up":
|
||||||
setState(id + ".OPEN", true)
|
setIfExists(id + ".OPEN", true)
|
||||||
if (words[3] == "stop")
|
break;
|
||||||
setState(id + ".STOP", true)
|
case "stop":
|
||||||
if (words[3] == "down")
|
setIfExists(id + ".STOP", true)
|
||||||
setState(id + ".CLOSE", true)
|
break;
|
||||||
if (words[3] == "button") {
|
case "down":
|
||||||
|
setIfExists(id + ".CLOSE", true)
|
||||||
|
break;
|
||||||
|
case "button":
|
||||||
toggleState(id + ".SET") ? true : toggleState(id + ".ON_SET")
|
toggleState(id + ".SET") ? true : toggleState(id + ".ON_SET")
|
||||||
}
|
break;
|
||||||
if (words[3] == "positionSlider")
|
case "positionSlider":
|
||||||
setState(id + ".SET", parseInt(words[4]))
|
case "brightnessSlider":
|
||||||
|
setIfExists(id + ".SET", parseInt(words[4])) ? true : setIfExists(id + ".ACTUAL", parseInt(words[4]));
|
||||||
if (words[3] == "brightnessSlider")
|
break;
|
||||||
if (existsState(id + ".SET"))
|
case "tempUpd":
|
||||||
setState(id + ".SET", parseInt(words[4]));
|
setIfExists(id + ".SET", parseInt(words[4]) / 10)
|
||||||
else if (existsState(id + ".ACTUAL"))
|
break;
|
||||||
setState(id + ".ACTUAL", parseInt(words[4]));
|
default:
|
||||||
// out_msgs.push({ payload: id, action: "turn_on", domain: "lightBrightness", brightness: parseInt(words[7]) })
|
break;
|
||||||
// if (words[6] == "colorTempSlider")
|
|
||||||
// out_msgs.push({ payload: id, action: "turn_on", domain: "lightTemperature", temperature: parseInt(words[7]) })
|
|
||||||
if (words[3] == "tempUpd") {
|
|
||||||
setState(id + ".SET", parseInt(words[4]) / 10)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -616,33 +633,30 @@ function HandleScreensaverUpdate(): void {
|
|||||||
let temperature: string =
|
let temperature: string =
|
||||||
existsState(config.weatherEntity + ".ACTUAL") ? getState(config.weatherEntity + ".ACTUAL").val :
|
existsState(config.weatherEntity + ".ACTUAL") ? getState(config.weatherEntity + ".ACTUAL").val :
|
||||||
existsState(config.weatherEntity + ".TEMP") ? getState(config.weatherEntity + ".TEMP").val : "null";
|
existsState(config.weatherEntity + ".TEMP") ? getState(config.weatherEntity + ".TEMP").val : "null";
|
||||||
let humidity = getState(config.weatherEntity + ".HUMIDITY").val;
|
|
||||||
|
|
||||||
|
|
||||||
let payloadString =
|
let payloadString =
|
||||||
"weatherUpdate,?" + GetAccuWeatherIcon(parseInt(icon)) + "?"
|
"weatherUpdate,?" + GetAccuWeatherIcon(parseInt(icon)) + "?"
|
||||||
+ temperature + " " + config.temperatureUnit + "?26?"
|
+ temperature + " " + config.temperatureUnit + "?"
|
||||||
+ humidity + " %?";
|
|
||||||
|
|
||||||
if (existsState(config.leftEntity)) {
|
payloadString += GetScreenSaverEntityString(config.firstScreensaverEntity);
|
||||||
let u1 = getState(config.leftEntity).val;
|
payloadString += GetScreenSaverEntityString(config.secondScreensaverEntity);
|
||||||
payloadString += config.leftEntityText + "?" + config.leftEntityIcon + "?" + u1 + " " + config.leftEntityUnitText + "?";
|
payloadString += GetScreenSaverEntityString(config.thirdScreensaverEntity);
|
||||||
}
|
payloadString += GetScreenSaverEntityString(config.fourthScreensaverEntity);
|
||||||
else {
|
|
||||||
payloadString += "???";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (existsState(config.rightEntity)) {
|
|
||||||
let u2 = getState(config.rightEntity).val;
|
|
||||||
payloadString += config.rightEntityText + "?" + config.rightEntityIcon + "?" + u2 + " " + config.rightEntityUnitText;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
payloadString += "??";
|
|
||||||
}
|
|
||||||
SendToPanel(<Payload>{ payload: payloadString });
|
SendToPanel(<Payload>{ payload: payloadString });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function GetScreenSaverEntityString(configElement: ScreenSaverElement | null): string {
|
||||||
|
if (configElement != null && configElement.ScreensaverEntity != null && existsState(configElement.ScreensaverEntity)) {
|
||||||
|
let u1 = getState(configElement.ScreensaverEntity).val;
|
||||||
|
return configElement.ScreensaverEntityText + "?" + configElement.ScreensaverEntityIcon + "?" + u1 + " " + configElement.ScreensaverEntityUnitText + "?";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "???";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function GetAccuWeatherIcon(icon: number): number {
|
function GetAccuWeatherIcon(icon: number): number {
|
||||||
switch (icon) {
|
switch (icon) {
|
||||||
case 24: // Ice
|
case 24: // Ice
|
||||||
@@ -793,15 +807,12 @@ type Config = {
|
|||||||
timeFormat: string,
|
timeFormat: string,
|
||||||
dateFormat: string,
|
dateFormat: string,
|
||||||
weatherEntity: string | null,
|
weatherEntity: string | null,
|
||||||
|
screenSaverDoubleClick: boolean,
|
||||||
temperatureUnit: string,
|
temperatureUnit: string,
|
||||||
leftEntity: string,
|
firstScreensaverEntity: ScreenSaverElement | null,
|
||||||
leftEntityIcon: number,
|
secondScreensaverEntity: ScreenSaverElement | null,
|
||||||
leftEntityText: string,
|
thirdScreensaverEntity: ScreenSaverElement | null,
|
||||||
leftEntityUnitText: string | null,
|
fourthScreensaverEntity: ScreenSaverElement | null,
|
||||||
rightEntity: string,
|
|
||||||
rightEntityIcon: number,
|
|
||||||
rightEntityText: string,
|
|
||||||
rightEntityUnitText: string | null,
|
|
||||||
defaultColor: RGB,
|
defaultColor: RGB,
|
||||||
defaultOnColor: RGB,
|
defaultOnColor: RGB,
|
||||||
defaultOffColor: RGB,
|
defaultOffColor: RGB,
|
||||||
@@ -809,3 +820,10 @@ type Config = {
|
|||||||
button1Page: (PageThermo | PageEntities | PageGrid | null),
|
button1Page: (PageThermo | PageEntities | PageGrid | null),
|
||||||
button2Page: (PageThermo | PageEntities | PageGrid | null),
|
button2Page: (PageThermo | PageEntities | PageGrid | null),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type ScreenSaverElement = {
|
||||||
|
ScreensaverEntity: string | null,
|
||||||
|
ScreensaverEntityIcon: number | null,
|
||||||
|
ScreensaverEntityText: string | null,
|
||||||
|
ScreensaverEntityUnitText: string | null,
|
||||||
|
}
|
||||||
@@ -66,14 +66,12 @@ const BatteryEmpty: RGB = { red: 179, green: 45, blue: 25 }
|
|||||||
var config: Config = {
|
var config: Config = {
|
||||||
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT", // This is the object where the panel send the data to.
|
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT", // This is the object where the panel send the data to.
|
||||||
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend", // This is the object where data is send to the panel.
|
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend", // This is the object where data is send to the panel.
|
||||||
leftEntity: "alias.0.Batterie.ACTUAL", // This is a state will be displayed on the left side.
|
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: 26, ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityIcon: 34, // This is a icon which will be displayed on the left side.
|
// Items which should be presented on the screensaver page
|
||||||
leftEntityText: "Batterie", // The label for the left side.
|
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: 19, ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityUnitText: "%", // The unit which will be appendon the left side.
|
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: 34, ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
||||||
rightEntity: "alias.0.Pv.ACTUAL", // The same but for the right side.
|
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: 32, ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
||||||
rightEntityIcon: 32,
|
screenSaverDoubleClick: false, // Doubletouch needed for leaving screensaver.
|
||||||
rightEntityText: "PV",
|
|
||||||
rightEntityUnitText: "W",
|
|
||||||
timeoutScreensaver: 15, // Timeout for screensaver
|
timeoutScreensaver: 15, // Timeout for screensaver
|
||||||
dimmode: 8, // Display dim
|
dimmode: 8, // Display dim
|
||||||
locale: "de_DE", // not used right now
|
locale: "de_DE", // not used right now
|
||||||
@@ -84,6 +82,14 @@ var config: Config = {
|
|||||||
defaultOnColor: RGB, // Default on state color for items
|
defaultOnColor: RGB, // Default on state color for items
|
||||||
defaultOffColor: RGB, // Default off state color for page
|
defaultOffColor: RGB, // Default off state color for page
|
||||||
temperatureUnit: "°C", // Unit to append on temperature sensors
|
temperatureUnit: "°C", // Unit to append on temperature sensors
|
||||||
|
<<<<<<< HEAD
|
||||||
|
pages: [Wohnen, Strom,
|
||||||
|
{
|
||||||
|
"type": "cardThermo",
|
||||||
|
"heading": "Thermostat",
|
||||||
|
"useColor": true,
|
||||||
|
"items": [<PageItem>{ id: "alias.0.WzNsPanel" }]
|
||||||
|
=======
|
||||||
pages: [
|
pages: [
|
||||||
{
|
{
|
||||||
"type": "cardEntities", // card type (cardEntities, cardThermo)
|
"type": "cardEntities", // card type (cardEntities, cardThermo)
|
||||||
@@ -114,6 +120,7 @@ var config: Config = {
|
|||||||
"heading": "Thermostat",
|
"heading": "Thermostat",
|
||||||
"useColor": false, // should colors be enabled on this page, can be overridden in PageItem
|
"useColor": false, // should colors be enabled on this page, can be overridden in PageItem
|
||||||
"item": "alias.0.WzNsPanel" // Needs to be a thermostat in the device panel
|
"item": "alias.0.WzNsPanel" // Needs to be a thermostat in the device panel
|
||||||
|
>>>>>>> 8a48ff35d408a7712a3052ee3cf8fc84e8b699c7
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
button1Page: button1Page, // A cardEntities, cardThermo or nothing. This will be opened when pressing button1
|
button1Page: button1Page, // A cardEntities, cardThermo or nothing. This will be opened when pressing button1
|
||||||
|
|||||||
Reference in New Issue
Block a user