mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-21 15:04:24 +01:00
Compare commits
90 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac832e5f6e | ||
|
|
0808074e85 | ||
|
|
c7f4d4ed78 | ||
|
|
92f172c4bc | ||
|
|
3b3810cf0d | ||
|
|
5b72676c11 | ||
|
|
559e0bfa9f | ||
|
|
7581f4fc47 | ||
|
|
979e52d1f5 | ||
|
|
ba2abef465 | ||
|
|
58da8efc0c | ||
|
|
ed77f897b4 | ||
|
|
4cd5fa9d6d | ||
|
|
cc40d38c41 | ||
|
|
d215029319 | ||
|
|
38a615f7a0 | ||
|
|
ab18effc7b | ||
|
|
e5d1afe5e1 | ||
|
|
c9f305c1ed | ||
|
|
d3f6a8d6ad | ||
|
|
dc96fea0f2 | ||
|
|
e59dcae711 | ||
|
|
1a74a99347 | ||
|
|
5b62ef0d27 | ||
|
|
533db201a8 | ||
|
|
e86e1f6fb4 | ||
|
|
78b3da8843 | ||
|
|
e79a0634ca | ||
|
|
bac8e96932 | ||
|
|
188323a5cc | ||
|
|
fa4417d913 | ||
|
|
95757691bd | ||
|
|
80208e42ed | ||
|
|
b7e4cf647c | ||
|
|
263889737d | ||
|
|
756e212d34 | ||
|
|
c923f7058b | ||
|
|
f9e8f6513c | ||
|
|
211db1ddf4 | ||
|
|
562ce8ce48 | ||
|
|
da1da082e9 | ||
|
|
f8ff39fe67 | ||
|
|
8283c0939c | ||
|
|
0c13622d76 | ||
|
|
01b4aac715 | ||
|
|
5693ec21a8 | ||
|
|
9903b394fe | ||
|
|
c5dc53fd84 | ||
|
|
7649537c62 | ||
|
|
cca8477b36 | ||
|
|
b7a965f3ef | ||
|
|
da0376c8f0 | ||
|
|
125ebee23b | ||
|
|
72314db002 | ||
|
|
73abbd8ea4 | ||
|
|
6b82d5715b | ||
|
|
ad31b90128 | ||
|
|
d31ff9dde5 | ||
|
|
50328fc386 | ||
|
|
147e08aa5f | ||
|
|
9da519dce9 | ||
|
|
ff569829fc | ||
|
|
e2fabe9eb4 | ||
|
|
1097a9c6bb | ||
|
|
2f7189eca5 | ||
|
|
51cb0956a6 | ||
|
|
cca413a761 | ||
|
|
fc9520f2d6 | ||
|
|
49f483c5c6 | ||
|
|
3fa99fbc72 | ||
|
|
f3f7de9210 | ||
|
|
66afb2d5a4 | ||
|
|
19c512b5ea | ||
|
|
62e4333024 | ||
|
|
e53407caaa | ||
|
|
66f69cf21f | ||
|
|
1a0e9c6357 | ||
|
|
06894b21ec | ||
|
|
0a7dd91860 | ||
|
|
a7c9184561 | ||
|
|
4567d7e63c | ||
|
|
92383695df | ||
|
|
ab70eb52fc | ||
|
|
a8ea56e461 | ||
|
|
9b928832cc | ||
|
|
4710b3733d | ||
|
|
fcaa4faae7 | ||
|
|
9436514c71 | ||
|
|
3c418d4c98 | ||
|
|
cd1c03fbb6 |
2
.github/CODEOWNERS
vendored
Normal file
2
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
* @joBr99
|
||||||
|
/ioBroker @britzelpuf
|
||||||
6
.github/auto_assign.yml
vendored
Normal file
6
.github/auto_assign.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
addReviewers: true
|
||||||
|
addAssignees: true
|
||||||
|
|
||||||
|
# A list of keywords to be skipped the process that add reviewers if pull requests include it
|
||||||
|
skipKeywords:
|
||||||
|
- wip
|
||||||
6
.github/workflows/nextion2text.yml
vendored
6
.github/workflows/nextion2text.yml
vendored
@@ -58,6 +58,11 @@ jobs:
|
|||||||
python Nextion2Text.py -c ignore-id.py -p font -d -i HMI/US/portrait/nspanel_US_P.HMI -o HMI/US/portrait/n2t-out
|
python Nextion2Text.py -c ignore-id.py -p font -d -i HMI/US/portrait/nspanel_US_P.HMI -o HMI/US/portrait/n2t-out
|
||||||
diff -bur HMI/n2t-out HMI/US/portrait/n2t-out > HMI/US/portrait/diff-eu-version.txt
|
diff -bur HMI/n2t-out HMI/US/portrait/n2t-out > HMI/US/portrait/diff-eu-version.txt
|
||||||
|
|
||||||
|
- name: Run n2t US P DIFF DIFF
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
diff -u HMI/US/portrait/diff-eu-version-known-good.txt HMI/US/portrait/diff-eu-version.txt | grep -E "^\+" > HMI/US/portrait/diff-filtered.txt
|
||||||
|
|
||||||
- name: Run n2t US L DIFF
|
- name: Run n2t US L DIFF
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
@@ -65,6 +70,7 @@ jobs:
|
|||||||
python Nextion2Text.py -c ignore-id.py -p font -d -i HMI/US/landscape/nspanel_US_L.HMI -o HMI/US/landscape/n2t-out
|
python Nextion2Text.py -c ignore-id.py -p font -d -i HMI/US/landscape/nspanel_US_L.HMI -o HMI/US/landscape/n2t-out
|
||||||
diff -bur HMI/n2t-out HMI/US/landscape/n2t-out > HMI/US/landscape/diff-eu-version.txt
|
diff -bur HMI/n2t-out HMI/US/landscape/n2t-out > HMI/US/landscape/diff-eu-version.txt
|
||||||
|
|
||||||
|
|
||||||
- name: Display txt files
|
- name: Display txt files
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ change the page type:
|
|||||||
|
|
||||||
`weatherUpdate~tMainIcon~tMainText~tForecast1~tF1Icon~tForecast1Val~tForecast2~tF2Icon~tForecast2Val~tForecast3~tF3Icon~tForecast3Val~tForecast4~tF4Icon~tForecast4Val~optionalLayoutIcon~optionalLayoutText`
|
`weatherUpdate~tMainIcon~tMainText~tForecast1~tF1Icon~tForecast1Val~tForecast2~tF2Icon~tForecast2Val~tForecast3~tF3Icon~tForecast3Val~tForecast4~tF4Icon~tForecast4Val~optionalLayoutIcon~optionalLayoutText`
|
||||||
|
|
||||||
|
`color~background~time~timeAMPM~date~tMainIcon~tMainText~tForecast1~tForecast2~tForecast3~tForecast4~tF1Icon~tF2Icon~tF3Icon~tF4Icon~tForecast1Val~tForecast2Val~tForecast3Val~tForecast4Val~bar~tMainIconAlt~tMainTextAlt~tMRIcon~tMR`
|
||||||
|
|
||||||
### cardEntities Page
|
### cardEntities Page
|
||||||
|
|
||||||
The following message can be used to update the content on the cardEntities Page
|
The following message can be used to update the content on the cardEntities Page
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
|
diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
|
||||||
--- HMI/n2t-out/Program.s.txt 2022-04-08 20:30:53.290164509 +0000
|
--- HMI/n2t-out/Program.s.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
+++ HMI/US/landscape/n2t-out/Program.s.txt 2022-04-08 20:30:54.170202708 +0000
|
+++ HMI/US/landscape/n2t-out/Program.s.txt 2022-04-13 20:21:35.478242275 +0000
|
||||||
@@ -11,6 +11,6 @@
|
@@ -11,6 +11,6 @@
|
||||||
// dim value
|
// dim value
|
||||||
int dimValue=40
|
int dimValue=40
|
||||||
@@ -11,8 +11,8 @@ diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
|
|||||||
+ //lcd_dev fffb 0002 0000 0020
|
+ //lcd_dev fffb 0002 0000 0020
|
||||||
page pageStartup
|
page pageStartup
|
||||||
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/landscape/n2t-out/pageStartup.txt
|
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/landscape/n2t-out/pageStartup.txt
|
||||||
--- HMI/n2t-out/pageStartup.txt 2022-04-08 20:30:53.290164509 +0000
|
--- HMI/n2t-out/pageStartup.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
+++ HMI/US/landscape/n2t-out/pageStartup.txt 2022-04-08 20:30:54.174202881 +0000
|
+++ HMI/US/landscape/n2t-out/pageStartup.txt 2022-04-13 20:21:35.478242275 +0000
|
||||||
@@ -177,7 +177,7 @@
|
@@ -177,7 +177,7 @@
|
||||||
recmod=1
|
recmod=1
|
||||||
bauds=115200
|
bauds=115200
|
||||||
@@ -22,3 +22,105 @@ diff -bur HMI/n2t-out/pageStartup.txt HMI/US/landscape/n2t-out/pageStartup.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
|
||||||
|
diff -bur HMI/n2t-out/popupLight.txt HMI/US/landscape/n2t-out/popupLight.txt
|
||||||
|
--- HMI/n2t-out/popupLight.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
|
+++ HMI/US/landscape/n2t-out/popupLight.txt 2022-04-13 20:21:35.478242275 +0000
|
||||||
|
@@ -570,43 +570,25 @@
|
||||||
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
|
udelete payloadLength-1
|
||||||
|
bufferPos=0
|
||||||
|
- if(tId.txt=="pageStartup")
|
||||||
|
- {
|
||||||
|
- page pageStartup
|
||||||
|
- }
|
||||||
|
- if(tId.txt=="screensaver")
|
||||||
|
- {
|
||||||
|
- page screensaver
|
||||||
|
- }
|
||||||
|
if(tId.txt=="cardEntities")
|
||||||
|
{
|
||||||
|
page cardEntities
|
||||||
|
}
|
||||||
|
- if(tId.txt=="cardGrid")
|
||||||
|
- {
|
||||||
|
- page cardGrid
|
||||||
|
- }
|
||||||
|
- if(tId.txt=="popupLight")
|
||||||
|
+ if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
- pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
- page popupLight
|
||||||
|
+ page cardMedia
|
||||||
|
}
|
||||||
|
- if(tId.txt=="popupShutter")
|
||||||
|
+ if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
- pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
- page popupShutter
|
||||||
|
+ page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
|
}
|
||||||
|
- if(tId.txt=="cardThermo")
|
||||||
|
- {
|
||||||
|
- page cardThermo
|
||||||
|
- }
|
||||||
|
- if(tId.txt=="cardMedia")
|
||||||
|
+ if(tId.txt=="cardGrid")
|
||||||
|
{
|
||||||
|
- page cardMedia
|
||||||
|
+ page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardAlarm")
|
||||||
|
{
|
||||||
|
diff -bur HMI/n2t-out/screensaver.txt HMI/US/landscape/n2t-out/screensaver.txt
|
||||||
|
--- HMI/n2t-out/screensaver.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
|
+++ HMI/US/landscape/n2t-out/screensaver.txt 2022-04-13 20:21:35.478242275 +0000
|
||||||
|
@@ -48,18 +48,6 @@
|
||||||
|
Scope: local
|
||||||
|
Value: 0
|
||||||
|
|
||||||
|
-Variable (string) tInstruction
|
||||||
|
- Attributes
|
||||||
|
- Scope : local
|
||||||
|
- Text :
|
||||||
|
- Max. Text Size: 50
|
||||||
|
-
|
||||||
|
-Variable (string) tTmp
|
||||||
|
- Attributes
|
||||||
|
- Scope : local
|
||||||
|
- Text :
|
||||||
|
- Max. Text Size: 50
|
||||||
|
-
|
||||||
|
Text tTime
|
||||||
|
Attributes
|
||||||
|
Scope : local
|
||||||
|
@@ -290,6 +278,26 @@
|
||||||
|
Text :
|
||||||
|
Max. Text Size : 10
|
||||||
|
|
||||||
|
+Text tTmp
|
||||||
|
+ Attributes
|
||||||
|
+ Scope : local
|
||||||
|
+ Dragging : 0
|
||||||
|
+ Disable release event after dragging: 0
|
||||||
|
+ Send Component ID : disabled
|
||||||
|
+ Associated Keyboard : none
|
||||||
|
+ Text :
|
||||||
|
+ Max. Text Size : 50
|
||||||
|
+
|
||||||
|
+Text tInstruction
|
||||||
|
+ Attributes
|
||||||
|
+ Scope : local
|
||||||
|
+ Dragging : 0
|
||||||
|
+ Disable release event after dragging: 0
|
||||||
|
+ Send Component ID : disabled
|
||||||
|
+ Associated Keyboard : none
|
||||||
|
+ Text :
|
||||||
|
+ Max. Text Size : 50
|
||||||
|
+
|
||||||
|
Picture p0
|
||||||
|
Attributes
|
||||||
|
Scope : local
|
||||||
|
|||||||
@@ -1073,7 +1073,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
|
|||||||
@@ -2096,7 +2096,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -1036,7 +1036,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -956,7 +956,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -1224,7 +1224,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -10,49 +10,49 @@ pageTest
|
|||||||
13 Component(s)
|
13 Component(s)
|
||||||
13 Line(s) of event code
|
13 Line(s) of event code
|
||||||
13 Unique line(s) of event code
|
13 Unique line(s) of event code
|
||||||
screensaver
|
cardMedia
|
||||||
33 Component(s)
|
30 Component(s)
|
||||||
195 Line(s) of event code
|
329 Line(s) of event code
|
||||||
152 Unique line(s) of event code
|
169 Unique line(s) of event code
|
||||||
cardAlarm
|
|
||||||
35 Component(s)
|
|
||||||
343 Line(s) of event code
|
|
||||||
213 Unique line(s) of event code
|
|
||||||
popupNotify
|
popupNotify
|
||||||
17 Component(s)
|
17 Component(s)
|
||||||
178 Line(s) of event code
|
196 Line(s) of event code
|
||||||
117 Unique line(s) of event code
|
123 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)
|
||||||
|
343 Line(s) of event code
|
||||||
|
214 Unique line(s) of event code
|
||||||
popupShutter
|
popupShutter
|
||||||
19 Component(s)
|
19 Component(s)
|
||||||
178 Line(s) of event code
|
191 Line(s) of event code
|
||||||
101 Unique line(s) of event code
|
107 Unique line(s) of event code
|
||||||
cardMedia
|
cardGrid
|
||||||
30 Component(s)
|
39 Component(s)
|
||||||
329 Line(s) of event code
|
418 Line(s) of event code
|
||||||
168 Unique line(s) of event code
|
244 Unique line(s) of event code
|
||||||
|
cardThermo
|
||||||
|
41 Component(s)
|
||||||
|
442 Line(s) of event code
|
||||||
|
247 Unique line(s) of event code
|
||||||
|
cardEntities
|
||||||
|
62 Component(s)
|
||||||
|
964 Line(s) of event code
|
||||||
|
410 Unique line(s) of event code
|
||||||
popupLight
|
popupLight
|
||||||
27 Component(s)
|
27 Component(s)
|
||||||
320 Line(s) of event code
|
320 Line(s) of event code
|
||||||
173 Unique line(s) of event code
|
173 Unique line(s) of event code
|
||||||
cardGrid
|
screensaver
|
||||||
39 Component(s)
|
33 Component(s)
|
||||||
418 Line(s) of event code
|
266 Line(s) of event code
|
||||||
243 Unique line(s) of event code
|
218 Unique line(s) of event code
|
||||||
cardThermo
|
|
||||||
41 Component(s)
|
|
||||||
442 Line(s) of event code
|
|
||||||
246 Unique line(s) of event code
|
|
||||||
cardEntities
|
|
||||||
62 Component(s)
|
|
||||||
964 Line(s) of event code
|
|
||||||
409 Unique line(s) of event code
|
|
||||||
|
|
||||||
Total
|
Total
|
||||||
12 Page(s)
|
12 Page(s)
|
||||||
341 Component(s)
|
341 Component(s)
|
||||||
3540 Line(s) of event code
|
3642 Line(s) of event code
|
||||||
946 Unique line(s) of event code
|
1001 Unique line(s) of event code
|
||||||
|
|||||||
@@ -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 : 30
|
Text : 31
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
|
|||||||
@@ -548,25 +548,43 @@ Timer tmSerial
|
|||||||
pageIcons.tTmp1.txt=tTmp.txt
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupLight")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardThermo")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardThermo
|
page cardThermo
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="cardMedia")
|
||||||
{
|
{
|
||||||
page pageStartup
|
page cardMedia
|
||||||
}
|
|
||||||
if(tId.txt=="cardGrid")
|
|
||||||
{
|
|
||||||
page cardGrid
|
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -631,30 +631,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
if(tId.txt=="popupLight")
|
if(tId.txt=="pageStartup")
|
||||||
{
|
{
|
||||||
pageIcons.tTmp1.txt=tTmp.txt
|
page pageStartup
|
||||||
page popupLight
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -980,6 +980,77 @@ Timer tmSerial
|
|||||||
//tMR
|
//tMR
|
||||||
spstr strCommand.txt,tMR.txt,"~",16
|
spstr strCommand.txt,tMR.txt,"~",16
|
||||||
}
|
}
|
||||||
|
if(tInstruction.txt=="color")
|
||||||
|
{
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",1
|
||||||
|
covx tTmp.txt,tTime.bco,0,0
|
||||||
|
screensaver.bco=tTime.bco
|
||||||
|
tAMPM.bco=tTime.bco
|
||||||
|
tDate.bco=tTime.bco
|
||||||
|
tMainIcon.bco=tTime.bco
|
||||||
|
tMainText.bco=tTime.bco
|
||||||
|
tMainIconAlt.bco=tTime.bco
|
||||||
|
tMainTextAlt.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tMR.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tForecast1.bco=tTime.bco
|
||||||
|
tForecast1Val.bco=tTime.bco
|
||||||
|
tF1Icon.bco=tTime.bco
|
||||||
|
tForecast2.bco=tTime.bco
|
||||||
|
tForecast2Val.bco=tTime.bco
|
||||||
|
tF2Icon.bco=tTime.bco
|
||||||
|
tForecast3.bco=tTime.bco
|
||||||
|
tForecast3Val.bco=tTime.bco
|
||||||
|
tF3Icon.bco=tTime.bco
|
||||||
|
tForecast4.bco=tTime.bco
|
||||||
|
tForecast4Val.bco=tTime.bco
|
||||||
|
tF4Icon.bco=tTime.bco
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",2
|
||||||
|
covx tTmp.txt,tTime.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",3
|
||||||
|
covx tTmp.txt,tAMPM.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",4
|
||||||
|
covx tTmp.txt,tDate.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",5
|
||||||
|
covx tTmp.txt,tMainIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",6
|
||||||
|
covx tTmp.txt,tMainText.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",7
|
||||||
|
covx tTmp.txt,tForecast1.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",8
|
||||||
|
covx tTmp.txt,tForecast2.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",9
|
||||||
|
covx tTmp.txt,tForecast3.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",10
|
||||||
|
covx tTmp.txt,tForecast4.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",11
|
||||||
|
covx tTmp.txt,tF1Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",12
|
||||||
|
covx tTmp.txt,tF2Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",13
|
||||||
|
covx tTmp.txt,tF3Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",14
|
||||||
|
covx tTmp.txt,tF4Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",15
|
||||||
|
covx tTmp.txt,tForecast1Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",16
|
||||||
|
covx tTmp.txt,tForecast2Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",17
|
||||||
|
covx tTmp.txt,tForecast3Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",18
|
||||||
|
covx tTmp.txt,tForecast4Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",19
|
||||||
|
covx tTmp.txt,t10.bco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",20
|
||||||
|
covx tTmp.txt,tMainIconAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",21
|
||||||
|
covx tTmp.txt,tMainTextAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",22
|
||||||
|
covx tTmp.txt,tMRIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",23
|
||||||
|
covx tTmp.txt,tMR.pco,0,0
|
||||||
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
dim=100
|
dim=100
|
||||||
|
|||||||
@@ -543,7 +543,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
|
|||||||
@@ -1151,7 +1151,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -599,7 +599,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -534,7 +534,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -671,7 +671,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ Text tVersion
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Associated Keyboard : none
|
Associated Keyboard : none
|
||||||
Text : 30
|
Text : 31
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
|
|||||||
@@ -339,25 +339,43 @@ Timer tmSerial
|
|||||||
pageIcons.tTmp1.txt=tTmp.txt
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupLight")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardThermo")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardThermo
|
page cardThermo
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="cardMedia")
|
||||||
{
|
{
|
||||||
page pageStartup
|
page cardMedia
|
||||||
}
|
|
||||||
if(tId.txt=="cardGrid")
|
|
||||||
{
|
|
||||||
page cardGrid
|
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -366,30 +366,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
if(tId.txt=="popupLight")
|
if(tId.txt=="pageStartup")
|
||||||
{
|
{
|
||||||
pageIcons.tTmp1.txt=tTmp.txt
|
page pageStartup
|
||||||
page popupLight
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -458,6 +458,77 @@ Timer tmSerial
|
|||||||
//tMR
|
//tMR
|
||||||
spstr strCommand.txt,tMR.txt,"~",16
|
spstr strCommand.txt,tMR.txt,"~",16
|
||||||
}
|
}
|
||||||
|
if(tInstruction.txt=="color")
|
||||||
|
{
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",1
|
||||||
|
covx tTmp.txt,tTime.bco,0,0
|
||||||
|
screensaver.bco=tTime.bco
|
||||||
|
tAMPM.bco=tTime.bco
|
||||||
|
tDate.bco=tTime.bco
|
||||||
|
tMainIcon.bco=tTime.bco
|
||||||
|
tMainText.bco=tTime.bco
|
||||||
|
tMainIconAlt.bco=tTime.bco
|
||||||
|
tMainTextAlt.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tMR.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tForecast1.bco=tTime.bco
|
||||||
|
tForecast1Val.bco=tTime.bco
|
||||||
|
tF1Icon.bco=tTime.bco
|
||||||
|
tForecast2.bco=tTime.bco
|
||||||
|
tForecast2Val.bco=tTime.bco
|
||||||
|
tF2Icon.bco=tTime.bco
|
||||||
|
tForecast3.bco=tTime.bco
|
||||||
|
tForecast3Val.bco=tTime.bco
|
||||||
|
tF3Icon.bco=tTime.bco
|
||||||
|
tForecast4.bco=tTime.bco
|
||||||
|
tForecast4Val.bco=tTime.bco
|
||||||
|
tF4Icon.bco=tTime.bco
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",2
|
||||||
|
covx tTmp.txt,tTime.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",3
|
||||||
|
covx tTmp.txt,tAMPM.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",4
|
||||||
|
covx tTmp.txt,tDate.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",5
|
||||||
|
covx tTmp.txt,tMainIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",6
|
||||||
|
covx tTmp.txt,tMainText.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",7
|
||||||
|
covx tTmp.txt,tForecast1.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",8
|
||||||
|
covx tTmp.txt,tForecast2.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",9
|
||||||
|
covx tTmp.txt,tForecast3.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",10
|
||||||
|
covx tTmp.txt,tForecast4.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",11
|
||||||
|
covx tTmp.txt,tF1Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",12
|
||||||
|
covx tTmp.txt,tF2Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",13
|
||||||
|
covx tTmp.txt,tF3Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",14
|
||||||
|
covx tTmp.txt,tF4Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",15
|
||||||
|
covx tTmp.txt,tForecast1Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",16
|
||||||
|
covx tTmp.txt,tForecast2Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",17
|
||||||
|
covx tTmp.txt,tForecast3Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",18
|
||||||
|
covx tTmp.txt,tForecast4Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",19
|
||||||
|
covx tTmp.txt,t10.bco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",20
|
||||||
|
covx tTmp.txt,tMainIconAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",21
|
||||||
|
covx tTmp.txt,tMainTextAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",22
|
||||||
|
covx tTmp.txt,tMRIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",23
|
||||||
|
covx tTmp.txt,tMR.pco,0,0
|
||||||
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
dim=100
|
dim=100
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -27,16 +27,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ vis bText5,0
|
+ vis bText5,0
|
||||||
+ vis hSlider5,0
|
+ vis hSlider5,0
|
||||||
+ vis nNum5,0
|
+ vis nNum5,0
|
||||||
+ //ui e6
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis tIcon6,0
|
|
||||||
+ vis tEntity6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
|
|
||||||
Variable (string) strCommand
|
Variable (string) strCommand
|
||||||
Attributes
|
Attributes
|
||||||
@@ -50,23 +41,12 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ Text :
|
+ Text :
|
||||||
+ Max. Text Size: 70
|
+ Max. Text Size: 70
|
||||||
+
|
+
|
||||||
+Variable (string) entn6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size: 70
|
|
||||||
+
|
+
|
||||||
+Variable (string) type5
|
+Variable (string) type5
|
||||||
+ Attributes
|
+ Attributes
|
||||||
+ Scope : local
|
+ Scope : local
|
||||||
+ Text :
|
+ Text :
|
||||||
+ Max. Text Size: 10
|
+ Max. Text Size: 10
|
||||||
+
|
|
||||||
+Variable (string) type6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size: 10
|
|
||||||
+
|
+
|
||||||
Number nNum1
|
Number nNum1
|
||||||
Attributes
|
Attributes
|
||||||
@@ -84,15 +64,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ Associated Keyboard : none
|
+ Associated Keyboard : none
|
||||||
+ Value : 0
|
+ Value : 0
|
||||||
+
|
+
|
||||||
+Number nNum6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Value : 0
|
|
||||||
+
|
|
||||||
Text tHeading
|
Text tHeading
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -120,26 +92,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ Text : î°
|
+ Text : î°
|
||||||
+ Max. Text Size : 5
|
+ Max. Text Size : 5
|
||||||
+
|
+
|
||||||
+Text tEntity6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text : tEntity6
|
|
||||||
+ Max. Text Size : 30
|
|
||||||
+
|
|
||||||
+Text tIcon6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text : î°
|
|
||||||
+ Max. Text Size : 5
|
|
||||||
+
|
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -175,34 +128,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
+
|
||||||
+Slider hSlider6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Position : 50
|
|
||||||
+ Upper range limit : 100
|
|
||||||
+ Lower range limit : 0
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Release Event
|
|
||||||
+ nNum6.val=hSlider6.val
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",number-set,"
|
|
||||||
+ covx nNum6.val,tTmp.txt,0,0
|
|
||||||
+ tSend.txt+=tTmp.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
|
|
||||||
+
|
|
||||||
Button bDown1
|
Button bDown1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -310,106 +236,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
+
|
||||||
+Button bStop6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",stop"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
+Button bDown6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",down"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
+Button bUp6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",up"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
+Button bText6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : newtxt
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",button"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
Dual-state Button btOnOff1
|
Dual-state Button btOnOff1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -444,33 +271,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
+
|
||||||
+Dual-state Button btOnOff6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",OnOff,"
|
|
||||||
+ covx btOnOff6.val,tTmp.txt,0,0
|
|
||||||
+ tSend.txt+=tTmp.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
|
|
||||||
+
|
|
||||||
Hotspot mSpecial
|
Hotspot mSpecial
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -500,39 +301,18 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ page popupLight
|
+ page popupLight
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+Hotspot m5
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ pageIcons.tTmp1.txt=tEntity6.txt
|
|
||||||
+ pageIcons.tTmp2.txt=entn6.txt
|
|
||||||
+ if(type6.txt=="shutter")
|
|
||||||
+ {
|
|
||||||
+ //popupShutter.tHeading.txt=tEntity6.txt
|
|
||||||
+ page popupShutter
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="light")
|
|
||||||
+ {
|
|
||||||
+ //popupLight.tEntity.txt=tEntity6.txt
|
|
||||||
+ page popupLight
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
Timer tmSerial
|
Timer tmSerial
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1648,6 +2104,254 @@
|
@@ -1642,6 +2098,250 @@
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
hSlider4.maxval=sys0
|
hSlider4.maxval=sys0
|
||||||
}
|
}
|
||||||
+ // get Type
|
+ // get Type
|
||||||
+ spstr strCommand.txt,type5.txt,",",27
|
+ spstr strCommand.txt,type5.txt,"~",27
|
||||||
+ // get internal name
|
+ // get internal name
|
||||||
+ spstr strCommand.txt,entn5.txt,",",28
|
+ spstr strCommand.txt,entn5.txt,"~",28
|
||||||
+ if(type5.txt=="delete"||type5.txt=="")
|
+ if(type5.txt=="delete"||type5.txt=="")
|
||||||
+ {
|
+ {
|
||||||
+ vis bUp5,0
|
+ vis bUp5,0
|
||||||
@@ -547,16 +327,14 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ }else
|
+ }else
|
||||||
+ {
|
+ {
|
||||||
+ // change icon
|
+ // change icon
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",29
|
+ spstr strCommand.txt,tIcon5.txt,"~",29
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ substr pageIcons.tIcons.txt,tIcon5.txt,sys0,1
|
|
||||||
+ vis tIcon5,1
|
+ vis tIcon5,1
|
||||||
+ // change icon color
|
+ // change icon color
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",30
|
+ spstr strCommand.txt,tTmp.txt,"~",30
|
||||||
+ covx tTmp.txt,sys0,0,0
|
+ covx tTmp.txt,sys0,0,0
|
||||||
+ tIcon5.pco=sys0
|
+ tIcon5.pco=sys0
|
||||||
+ // set name
|
+ // set name
|
||||||
+ spstr strCommand.txt,tEntity5.txt,",",31
|
+ spstr strCommand.txt,tEntity5.txt,"~",31
|
||||||
+ vis tEntity5,1
|
+ vis tEntity5,1
|
||||||
+ }
|
+ }
|
||||||
+ if(type5.txt=="shutter")
|
+ if(type5.txt=="shutter")
|
||||||
@@ -579,7 +357,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ vis hSlider5,0
|
+ vis hSlider5,0
|
||||||
+ vis nNum5,0
|
+ vis nNum5,0
|
||||||
+ // get Button State (optional Value)
|
+ // get Button State (optional Value)
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",32
|
+ spstr strCommand.txt,tTmp.txt,"~",32
|
||||||
+ covx tTmp.txt,sys0,0,0
|
+ covx tTmp.txt,sys0,0,0
|
||||||
+ btOnOff5.val=sys0
|
+ btOnOff5.val=sys0
|
||||||
+ }
|
+ }
|
||||||
@@ -593,7 +371,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ vis hSlider5,0
|
+ vis hSlider5,0
|
||||||
+ vis nNum5,0
|
+ vis nNum5,0
|
||||||
+ // get Button State (optional Value)
|
+ // get Button State (optional Value)
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",32
|
+ spstr strCommand.txt,tTmp.txt,"~",32
|
||||||
+ covx tTmp.txt,sys0,0,0
|
+ covx tTmp.txt,sys0,0,0
|
||||||
+ btOnOff5.val=sys0
|
+ btOnOff5.val=sys0
|
||||||
+ }
|
+ }
|
||||||
@@ -610,7 +388,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ bText5.pco=65535
|
+ bText5.pco=65535
|
||||||
+ bText5.pco2=65535
|
+ bText5.pco2=65535
|
||||||
+ // get Text (optional Value)
|
+ // get Text (optional Value)
|
||||||
+ spstr strCommand.txt,bText5.txt,",",32
|
+ spstr strCommand.txt,bText5.txt,"~",32
|
||||||
+ }
|
+ }
|
||||||
+ if(type5.txt=="button")
|
+ if(type5.txt=="button")
|
||||||
+ {
|
+ {
|
||||||
@@ -625,7 +403,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ bText5.pco=1374
|
+ bText5.pco=1374
|
||||||
+ bText5.pco2=1374
|
+ bText5.pco2=1374
|
||||||
+ // get Text (optional Value)
|
+ // get Text (optional Value)
|
||||||
+ spstr strCommand.txt,bText5.txt,",",32
|
+ spstr strCommand.txt,bText5.txt,"~",32
|
||||||
+ }
|
+ }
|
||||||
+ if(type5.txt=="number")
|
+ if(type5.txt=="number")
|
||||||
+ {
|
+ {
|
||||||
@@ -638,7 +416,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ vis hSlider5,1
|
+ vis hSlider5,1
|
||||||
+ vis nNum5,1
|
+ vis nNum5,1
|
||||||
+ // get config (optional Value) (use bText as variable)
|
+ // get config (optional Value) (use bText as variable)
|
||||||
+ spstr strCommand.txt,bText5.txt,",",32
|
+ spstr strCommand.txt,bText5.txt,"~",32
|
||||||
+ //first value is current value
|
+ //first value is current value
|
||||||
+ spstr bText5.txt,tTmp.txt,"|",0
|
+ spstr bText5.txt,tTmp.txt,"|",0
|
||||||
+ covx tTmp.txt,sys0,0,0
|
+ covx tTmp.txt,sys0,0,0
|
||||||
@@ -653,133 +431,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ covx tTmp.txt,sys0,0,0
|
+ covx tTmp.txt,sys0,0,0
|
||||||
+ hSlider5.maxval=sys0
|
+ hSlider5.maxval=sys0
|
||||||
+ }
|
+ }
|
||||||
+ // get Type
|
|
||||||
+ spstr strCommand.txt,type6.txt,",",33
|
|
||||||
+ // get internal name
|
|
||||||
+ spstr strCommand.txt,entn6.txt,",",34
|
|
||||||
+ if(type6.txt=="delete"||type6.txt=="")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis tEntity6,0
|
|
||||||
+ vis tIcon6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ // change icon
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",35
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ substr pageIcons.tIcons.txt,tIcon6.txt,sys0,1
|
|
||||||
+ vis tIcon6,1
|
|
||||||
+ // change icon color
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",36
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ tIcon6.pco=sys0
|
|
||||||
+ // set name
|
|
||||||
+ spstr strCommand.txt,tEntity6.txt,",",37
|
|
||||||
+ vis tEntity6,1
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="shutter")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,1
|
|
||||||
+ vis bStop6,1
|
|
||||||
+ vis bDown6,1
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="light")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,1
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ // get Button State (optional Value)
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",38
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ btOnOff6.val=sys0
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="switch")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,1
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ // get Button State (optional Value)
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,",",38
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ btOnOff6.val=sys0
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="text")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,1
|
|
||||||
+ tsw bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ bText6.pco=65535
|
|
||||||
+ bText6.pco2=65535
|
|
||||||
+ // get Text (optional Value)
|
|
||||||
+ spstr strCommand.txt,bText6.txt,",",38
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="button")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,1
|
|
||||||
+ tsw bText6,1
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ bText6.pco=1374
|
|
||||||
+ bText6.pco2=1374
|
|
||||||
+ // get Text (optional Value)
|
|
||||||
+ spstr strCommand.txt,bText6.txt,",",38
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="number")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ tsw bText6,0
|
|
||||||
+ vis hSlider6,1
|
|
||||||
+ vis nNum6,1
|
|
||||||
+ // get config (optional Value) (use bText as variable)
|
|
||||||
+ spstr strCommand.txt,bText6.txt,",",38
|
|
||||||
+ //first value is current value
|
|
||||||
+ spstr bText6.txt,tTmp.txt,"|",0
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ hSlider6.val=sys0
|
|
||||||
+ nNum6.val=sys0
|
|
||||||
+ //second value is min value
|
|
||||||
+ spstr bText6.txt,tTmp.txt,"|",1
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ hSlider6.minval=sys0
|
|
||||||
+ //third value is max value
|
|
||||||
+ spstr bText6.txt,tTmp.txt,"|",2
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ hSlider6.maxval=sys0
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
if(tInstruction.txt=="pageType")
|
|
||||||
{
|
|
||||||
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
|
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
|
||||||
--- HMI/n2t-out/pageStartup.txt 2022-04-01 04:54:12.884151859 +0000
|
--- HMI/n2t-out/pageStartup.txt 2022-04-01 04:54:12.884151859 +0000
|
||||||
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-04-01 04:54:13.372185922 +0000
|
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-04-01 04:54:13.372185922 +0000
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
|
diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
|
||||||
--- HMI/n2t-out/Program.s.txt 2022-04-08 20:30:53.290164509 +0000
|
--- HMI/n2t-out/Program.s.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
+++ HMI/US/portrait/n2t-out/Program.s.txt 2022-04-08 20:30:53.734183782 +0000
|
+++ HMI/US/portrait/n2t-out/Program.s.txt 2022-04-13 20:21:35.070233972 +0000
|
||||||
@@ -11,6 +11,6 @@
|
@@ -11,6 +11,6 @@
|
||||||
// dim value
|
// dim value
|
||||||
int dimValue=40
|
int dimValue=40
|
||||||
@@ -11,9 +11,9 @@ diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
|
|||||||
+ //lcd_dev fffb 0002 0000 0020
|
+ //lcd_dev fffb 0002 0000 0020
|
||||||
page pageStartup
|
page pageStartup
|
||||||
diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
||||||
--- HMI/n2t-out/cardEntities.txt 2022-04-08 20:30:53.290164509 +0000
|
--- HMI/n2t-out/cardEntities.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
+++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-04-08 20:30:53.738183956 +0000
|
+++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-04-13 20:21:35.070233972 +0000
|
||||||
@@ -62,6 +62,26 @@
|
@@ -62,6 +62,16 @@
|
||||||
vis bText4,0
|
vis bText4,0
|
||||||
vis hSlider4,0
|
vis hSlider4,0
|
||||||
vis nNum4,0
|
vis nNum4,0
|
||||||
@@ -27,20 +27,10 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ vis bText5,0
|
+ vis bText5,0
|
||||||
+ vis hSlider5,0
|
+ vis hSlider5,0
|
||||||
+ vis nNum5,0
|
+ vis nNum5,0
|
||||||
+ //ui e6
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis tIcon6,0
|
|
||||||
+ vis tEntity6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
|
|
||||||
Variable (string) strCommand
|
Variable (string) strCommand
|
||||||
Attributes
|
Attributes
|
||||||
@@ -117,6 +137,30 @@
|
@@ -117,6 +127,18 @@
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 70
|
Max. Text Size: 70
|
||||||
|
|
||||||
@@ -50,28 +40,16 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ Text :
|
+ Text :
|
||||||
+ Max. Text Size: 70
|
+ Max. Text Size: 70
|
||||||
+
|
+
|
||||||
+Variable (string) entn6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size: 70
|
|
||||||
+
|
|
||||||
+Variable (string) type5
|
+Variable (string) type5
|
||||||
+ Attributes
|
+ Attributes
|
||||||
+ Scope : local
|
+ Scope : local
|
||||||
+ Text :
|
+ Text :
|
||||||
+ Max. Text Size: 10
|
+ Max. Text Size: 10
|
||||||
+
|
|
||||||
+Variable (string) type6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size: 10
|
|
||||||
+
|
+
|
||||||
Number nNum1
|
Number nNum1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -153,6 +197,24 @@
|
@@ -153,6 +175,15 @@
|
||||||
Associated Keyboard : none
|
Associated Keyboard : none
|
||||||
Value : 0
|
Value : 0
|
||||||
|
|
||||||
@@ -83,20 +61,11 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ Send Component ID : disabled
|
+ Send Component ID : disabled
|
||||||
+ Associated Keyboard : none
|
+ Associated Keyboard : none
|
||||||
+ Value : 0
|
+ Value : 0
|
||||||
+
|
|
||||||
+Number nNum6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Value : 0
|
|
||||||
+
|
+
|
||||||
Text tHeading
|
Text tHeading
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -283,6 +345,46 @@
|
@@ -283,6 +314,26 @@
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size : 50
|
Max. Text Size : 50
|
||||||
|
|
||||||
@@ -119,31 +88,11 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ Associated Keyboard : none
|
+ Associated Keyboard : none
|
||||||
+ Text : î°
|
+ Text : î°
|
||||||
+ Max. Text Size : 5
|
+ Max. Text Size : 5
|
||||||
+
|
|
||||||
+Text tEntity6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text : tEntity6
|
|
||||||
+ Max. Text Size : 30
|
|
||||||
+
|
|
||||||
+Text tIcon6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text : î°
|
|
||||||
+ Max. Text Size : 5
|
|
||||||
+
|
+
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -402,6 +504,62 @@
|
@@ -402,6 +453,34 @@
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
@@ -174,39 +123,11 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ prints sys0,2
|
+ prints sys0,2
|
||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
|
||||||
+Slider hSlider6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Position : 50
|
|
||||||
+ Upper range limit : 100
|
|
||||||
+ Lower range limit : 0
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Release Event
|
|
||||||
+ nNum6.val=hSlider6.val
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",number-set,"
|
|
||||||
+ covx nNum6.val,tTmp.txt,0,0
|
|
||||||
+ tSend.txt+=tTmp.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
|
|
||||||
+
|
+
|
||||||
Button bDown1
|
Button bDown1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -859,6 +1017,206 @@
|
@@ -859,6 +938,106 @@
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
@@ -309,111 +230,11 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ prints sys0,2
|
+ prints sys0,2
|
||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
|
||||||
+Button bStop6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",stop"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
+Button bDown6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",down"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
+Button bUp6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",up"
|
|
||||||
+ //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
|
|
||||||
+
|
|
||||||
+Button bText6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : newtxt
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",button"
|
|
||||||
+ //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
|
|
||||||
+
|
+
|
||||||
Dual-state Button btOnOff1
|
Dual-state Button btOnOff1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -967,6 +1325,60 @@
|
@@ -967,6 +1146,33 @@
|
||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
@@ -443,38 +264,11 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ prints sys0,2
|
+ prints sys0,2
|
||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
|
||||||
+Dual-state Button btOnOff6
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn6.txt+",OnOff,"
|
|
||||||
+ covx btOnOff6.val,tTmp.txt,0,0
|
|
||||||
+ tSend.txt+=tTmp.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
|
|
||||||
+
|
+
|
||||||
Hotspot mSpecial
|
Hotspot mSpecial
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1072,6 +1484,50 @@
|
@@ -1072,6 +1278,28 @@
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -499,33 +293,11 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ //popupLight.tEntity.txt=tEntity5.txt
|
+ //popupLight.tEntity.txt=tEntity5.txt
|
||||||
+ page popupLight
|
+ page popupLight
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
+Hotspot m5
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+
|
|
||||||
+ Events
|
|
||||||
+ Touch Press Event
|
|
||||||
+ pageIcons.tTmp1.txt=tEntity6.txt
|
|
||||||
+ pageIcons.tTmp2.txt=entn6.txt
|
|
||||||
+ if(type6.txt=="shutter")
|
|
||||||
+ {
|
|
||||||
+ //popupShutter.tHeading.txt=tEntity6.txt
|
|
||||||
+ page popupShutter
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="light")
|
|
||||||
+ {
|
|
||||||
+ //popupLight.tEntity.txt=tEntity6.txt
|
|
||||||
+ page popupLight
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
Timer tmSerial
|
Timer tmSerial
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1642,6 +2098,250 @@
|
@@ -1642,6 +1870,128 @@
|
||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
hSlider4.maxval=sys0
|
hSlider4.maxval=sys0
|
||||||
}
|
}
|
||||||
@@ -650,135 +422,13 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
|
|||||||
+ spstr bText5.txt,tTmp.txt,"|",2
|
+ spstr bText5.txt,tTmp.txt,"|",2
|
||||||
+ covx tTmp.txt,sys0,0,0
|
+ covx tTmp.txt,sys0,0,0
|
||||||
+ hSlider5.maxval=sys0
|
+ hSlider5.maxval=sys0
|
||||||
+ }
|
|
||||||
+ // get Type
|
|
||||||
+ spstr strCommand.txt,type6.txt,"~",33
|
|
||||||
+ // get internal name
|
|
||||||
+ spstr strCommand.txt,entn6.txt,"~",34
|
|
||||||
+ if(type6.txt=="delete"||type6.txt=="")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis tEntity6,0
|
|
||||||
+ vis tIcon6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ // change icon
|
|
||||||
+ spstr strCommand.txt,tIcon6.txt,"~",35
|
|
||||||
+ vis tIcon6,1
|
|
||||||
+ // change icon color
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,"~",36
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ tIcon6.pco=sys0
|
|
||||||
+ // set name
|
|
||||||
+ spstr strCommand.txt,tEntity6.txt,"~",37
|
|
||||||
+ vis tEntity6,1
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="shutter")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,1
|
|
||||||
+ vis bStop6,1
|
|
||||||
+ vis bDown6,1
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="light")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,1
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ // get Button State (optional Value)
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,"~",38
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ btOnOff6.val=sys0
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="switch")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,1
|
|
||||||
+ vis bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ // get Button State (optional Value)
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,"~",38
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ btOnOff6.val=sys0
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="text")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,1
|
|
||||||
+ tsw bText6,0
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ bText6.pco=65535
|
|
||||||
+ bText6.pco2=65535
|
|
||||||
+ // get Text (optional Value)
|
|
||||||
+ spstr strCommand.txt,bText6.txt,"~",38
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="button")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,1
|
|
||||||
+ tsw bText6,1
|
|
||||||
+ vis hSlider6,0
|
|
||||||
+ vis nNum6,0
|
|
||||||
+ bText6.pco=1374
|
|
||||||
+ bText6.pco2=1374
|
|
||||||
+ // get Text (optional Value)
|
|
||||||
+ spstr strCommand.txt,bText6.txt,"~",38
|
|
||||||
+ }
|
|
||||||
+ if(type6.txt=="number")
|
|
||||||
+ {
|
|
||||||
+ vis bUp6,0
|
|
||||||
+ vis bStop6,0
|
|
||||||
+ vis bDown6,0
|
|
||||||
+ vis btOnOff6,0
|
|
||||||
+ vis bText6,0
|
|
||||||
+ tsw bText6,0
|
|
||||||
+ vis hSlider6,1
|
|
||||||
+ vis nNum6,1
|
|
||||||
+ // get config (optional Value) (use bText as variable)
|
|
||||||
+ spstr strCommand.txt,bText6.txt,"~",38
|
|
||||||
+ //first value is current value
|
|
||||||
+ spstr bText6.txt,tTmp.txt,"|",0
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ hSlider6.val=sys0
|
|
||||||
+ nNum6.val=sys0
|
|
||||||
+ //second value is min value
|
|
||||||
+ spstr bText6.txt,tTmp.txt,"|",1
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ hSlider6.minval=sys0
|
|
||||||
+ //third value is max value
|
|
||||||
+ spstr bText6.txt,tTmp.txt,"|",2
|
|
||||||
+ covx tTmp.txt,sys0,0,0
|
|
||||||
+ hSlider6.maxval=sys0
|
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
|
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
|
||||||
--- HMI/n2t-out/pageStartup.txt 2022-04-08 20:30:53.290164509 +0000
|
--- HMI/n2t-out/pageStartup.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-04-08 20:30:53.734183782 +0000
|
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-04-13 20:21:35.070233972 +0000
|
||||||
@@ -142,7 +142,7 @@
|
@@ -142,7 +142,7 @@
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
@@ -797,60 +447,3 @@ diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.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
|
||||||
diff -bur HMI/n2t-out/screensaver.txt HMI/US/portrait/n2t-out/screensaver.txt
|
|
||||||
--- HMI/n2t-out/screensaver.txt 2022-04-08 20:30:53.290164509 +0000
|
|
||||||
+++ HMI/US/portrait/n2t-out/screensaver.txt 2022-04-08 20:30:53.738183956 +0000
|
|
||||||
@@ -48,6 +48,26 @@
|
|
||||||
Scope: local
|
|
||||||
Value: 0
|
|
||||||
|
|
||||||
+Text tInstruction
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size : 50
|
|
||||||
+
|
|
||||||
+Text tTmp
|
|
||||||
+ Attributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text :
|
|
||||||
+ Max. Text Size : 50
|
|
||||||
+
|
|
||||||
Text tTime
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
@@ -278,26 +298,6 @@
|
|
||||||
Text :
|
|
||||||
Max. Text Size : 10
|
|
||||||
|
|
||||||
-Text tTmp
|
|
||||||
- Attributes
|
|
||||||
- Scope : local
|
|
||||||
- Dragging : 0
|
|
||||||
- Disable release event after dragging: 0
|
|
||||||
- Send Component ID : disabled
|
|
||||||
- Associated Keyboard : none
|
|
||||||
- Text :
|
|
||||||
- Max. Text Size : 50
|
|
||||||
-
|
|
||||||
-Text tInstruction
|
|
||||||
- Attributes
|
|
||||||
- Scope : local
|
|
||||||
- Dragging : 0
|
|
||||||
- Disable release event after dragging: 0
|
|
||||||
- Send Component ID : disabled
|
|
||||||
- Associated Keyboard : none
|
|
||||||
- Text :
|
|
||||||
- Max. Text Size : 50
|
|
||||||
-
|
|
||||||
Picture p0
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
|
|||||||
19
HMI/US/portrait/diff-filtered.txt
Normal file
19
HMI/US/portrait/diff-filtered.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
+++ HMI/US/portrait/diff-eu-version.txt 2022-04-13 20:21:35.094234461 +0000
|
||||||
|
+--- HMI/n2t-out/Program.s.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
|
++++ HMI/US/portrait/n2t-out/Program.s.txt 2022-04-13 20:21:35.070233972 +0000
|
||||||
|
+--- HMI/n2t-out/cardEntities.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
|
++++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-04-13 20:21:35.070233972 +0000
|
||||||
|
+@@ -62,6 +62,16 @@
|
||||||
|
+@@ -117,6 +127,18 @@
|
||||||
|
+@@ -153,6 +175,15 @@
|
||||||
|
+@@ -283,6 +314,26 @@
|
||||||
|
+@@ -402,6 +453,34 @@
|
||||||
|
+@@ -859,6 +938,106 @@
|
||||||
|
+@@ -967,6 +1146,33 @@
|
||||||
|
+@@ -1072,6 +1278,28 @@
|
||||||
|
+@@ -1642,6 +1870,128 @@
|
||||||
|
+ }
|
||||||
|
+ if(tInstruction.txt=="pageType")
|
||||||
|
+ {
|
||||||
|
+--- HMI/n2t-out/pageStartup.txt 2022-04-13 20:21:34.698226402 +0000
|
||||||
|
++++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-04-13 20:21:35.070233972 +0000
|
||||||
@@ -1073,7 +1073,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1036,7 +1036,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -956,7 +956,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -1224,7 +1224,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -10,49 +10,49 @@ pageIcons
|
|||||||
6 Component(s)
|
6 Component(s)
|
||||||
0 Line(s) of event code
|
0 Line(s) of event code
|
||||||
0 Unique line(s) of event code
|
0 Unique line(s) of event code
|
||||||
|
popupNotify
|
||||||
|
17 Component(s)
|
||||||
|
196 Line(s) of event code
|
||||||
|
123 Unique line(s) of event code
|
||||||
|
popupShutter
|
||||||
|
19 Component(s)
|
||||||
|
191 Line(s) of event code
|
||||||
|
107 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
|
||||||
popupNotify
|
popupLight
|
||||||
17 Component(s)
|
27 Component(s)
|
||||||
178 Line(s) of event code
|
338 Line(s) of event code
|
||||||
117 Unique line(s) of event code
|
182 Unique line(s) of event code
|
||||||
screensaver
|
screensaver
|
||||||
33 Component(s)
|
33 Component(s)
|
||||||
195 Line(s) of event code
|
266 Line(s) of event code
|
||||||
152 Unique line(s) of event code
|
218 Unique line(s) of event code
|
||||||
cardEntities
|
|
||||||
86 Component(s)
|
|
||||||
1350 Line(s) of event code
|
|
||||||
547 Unique line(s) of event code
|
|
||||||
cardMedia
|
cardMedia
|
||||||
30 Component(s)
|
30 Component(s)
|
||||||
329 Line(s) of event code
|
329 Line(s) of event code
|
||||||
168 Unique line(s) of event code
|
169 Unique line(s) of event code
|
||||||
cardAlarm
|
cardAlarm
|
||||||
35 Component(s)
|
35 Component(s)
|
||||||
343 Line(s) of event code
|
343 Line(s) of event code
|
||||||
213 Unique line(s) of event code
|
214 Unique line(s) of event code
|
||||||
cardGrid
|
cardGrid
|
||||||
39 Component(s)
|
39 Component(s)
|
||||||
418 Line(s) of event code
|
418 Line(s) of event code
|
||||||
243 Unique line(s) of event code
|
244 Unique line(s) of event code
|
||||||
cardThermo
|
cardThermo
|
||||||
41 Component(s)
|
41 Component(s)
|
||||||
442 Line(s) of event code
|
442 Line(s) of event code
|
||||||
246 Unique line(s) of event code
|
247 Unique line(s) of event code
|
||||||
popupShutter
|
cardEntities
|
||||||
19 Component(s)
|
74 Component(s)
|
||||||
178 Line(s) of event code
|
1157 Line(s) of event code
|
||||||
101 Unique line(s) of event code
|
479 Unique line(s) of event code
|
||||||
popupLight
|
|
||||||
27 Component(s)
|
|
||||||
320 Line(s) of event code
|
|
||||||
173 Unique line(s) of event code
|
|
||||||
|
|
||||||
Total
|
Total
|
||||||
12 Page(s)
|
12 Page(s)
|
||||||
365 Component(s)
|
353 Component(s)
|
||||||
3926 Line(s) of event code
|
3853 Line(s) of event code
|
||||||
1059 Unique line(s) of event code
|
1057 Unique line(s) of event code
|
||||||
|
|||||||
@@ -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 : 30
|
Text : 31
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
|
|||||||
@@ -916,25 +916,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -548,25 +548,43 @@ Timer tmSerial
|
|||||||
pageIcons.tTmp1.txt=tTmp.txt
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupLight")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardThermo")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardThermo
|
page cardThermo
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="cardMedia")
|
||||||
{
|
{
|
||||||
page pageStartup
|
page cardMedia
|
||||||
}
|
|
||||||
if(tId.txt=="cardGrid")
|
|
||||||
{
|
|
||||||
page cardGrid
|
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -631,30 +631,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
if(tId.txt=="popupLight")
|
if(tId.txt=="pageStartup")
|
||||||
{
|
{
|
||||||
pageIcons.tTmp1.txt=tTmp.txt
|
page pageStartup
|
||||||
page popupLight
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,80 +48,34 @@ Variable (string) strCommand
|
|||||||
|
|
||||||
Variable (string) tId
|
Variable (string) tId
|
||||||
Attributes
|
Attributes
|
||||||
ID : 19
|
ID : 17
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 25
|
Max. Text Size: 25
|
||||||
|
|
||||||
Variable (int32) vaTap
|
Variable (int32) vaTap
|
||||||
Attributes
|
Attributes
|
||||||
ID : 27
|
ID : 25
|
||||||
Scope: local
|
Scope: local
|
||||||
Value: 0
|
Value: 0
|
||||||
|
|
||||||
Text tInstruction
|
Variable (string) tInstruction
|
||||||
Attributes
|
Attributes
|
||||||
ID : 5
|
ID : 31
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Opacity : 127
|
|
||||||
x coordinate : 260
|
|
||||||
y coordinate : 446
|
|
||||||
Width : 26
|
|
||||||
Height : 30
|
|
||||||
Effect : load
|
|
||||||
Effect Priority : 0
|
|
||||||
Effect Time : 300
|
|
||||||
Fill : solid color
|
|
||||||
Style : flat
|
|
||||||
Associated Keyboard : none
|
|
||||||
Font ID : 0
|
|
||||||
Back. Color : 65535
|
|
||||||
Font Color : 0
|
|
||||||
Horizontal Alignment : center
|
|
||||||
Vertical Alignment : center
|
|
||||||
Input Type : character
|
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 50
|
||||||
Word wrap : disabled
|
|
||||||
Horizontal Spacing : 0
|
|
||||||
Vertical Spacing : 0
|
|
||||||
|
|
||||||
Text tTmp
|
Variable (string) tTmp
|
||||||
Attributes
|
Attributes
|
||||||
ID : 6
|
ID : 32
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Opacity : 127
|
|
||||||
x coordinate : 293
|
|
||||||
y coordinate : 447
|
|
||||||
Width : 25
|
|
||||||
Height : 30
|
|
||||||
Effect : load
|
|
||||||
Effect Priority : 0
|
|
||||||
Effect Time : 300
|
|
||||||
Fill : solid color
|
|
||||||
Style : flat
|
|
||||||
Associated Keyboard : none
|
|
||||||
Font ID : 0
|
|
||||||
Back. Color : 65535
|
|
||||||
Font Color : 0
|
|
||||||
Horizontal Alignment : center
|
|
||||||
Vertical Alignment : center
|
|
||||||
Input Type : character
|
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 50
|
||||||
Word wrap : disabled
|
|
||||||
Horizontal Spacing : 0
|
|
||||||
Vertical Spacing : 0
|
|
||||||
|
|
||||||
Text tTime
|
Text tTime
|
||||||
Attributes
|
Attributes
|
||||||
ID : 7
|
ID : 5
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -151,7 +105,7 @@ Text tTime
|
|||||||
|
|
||||||
Text tDate
|
Text tDate
|
||||||
Attributes
|
Attributes
|
||||||
ID : 8
|
ID : 6
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -181,7 +135,7 @@ Text tDate
|
|||||||
|
|
||||||
Text tSend
|
Text tSend
|
||||||
Attributes
|
Attributes
|
||||||
ID : 9
|
ID : 7
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -211,7 +165,7 @@ Text tSend
|
|||||||
|
|
||||||
Text tMainIcon
|
Text tMainIcon
|
||||||
Attributes
|
Attributes
|
||||||
ID : 10
|
ID : 8
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -241,7 +195,7 @@ Text tMainIcon
|
|||||||
|
|
||||||
Text tMainText
|
Text tMainText
|
||||||
Attributes
|
Attributes
|
||||||
ID : 11
|
ID : 9
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -271,7 +225,7 @@ Text tMainText
|
|||||||
|
|
||||||
Text tForecast1
|
Text tForecast1
|
||||||
Attributes
|
Attributes
|
||||||
ID : 12
|
ID : 10
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -301,7 +255,7 @@ Text tForecast1
|
|||||||
|
|
||||||
Text tForecast1Val
|
Text tForecast1Val
|
||||||
Attributes
|
Attributes
|
||||||
ID : 13
|
ID : 11
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -331,7 +285,7 @@ Text tForecast1Val
|
|||||||
|
|
||||||
Text tF1Icon
|
Text tF1Icon
|
||||||
Attributes
|
Attributes
|
||||||
ID : 14
|
ID : 12
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -361,7 +315,7 @@ Text tF1Icon
|
|||||||
|
|
||||||
Text tForecast2
|
Text tForecast2
|
||||||
Attributes
|
Attributes
|
||||||
ID : 15
|
ID : 13
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -391,7 +345,7 @@ Text tForecast2
|
|||||||
|
|
||||||
Text tF2Icon
|
Text tF2Icon
|
||||||
Attributes
|
Attributes
|
||||||
ID : 16
|
ID : 14
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -421,7 +375,7 @@ Text tF2Icon
|
|||||||
|
|
||||||
Text tForecast2Val
|
Text tForecast2Val
|
||||||
Attributes
|
Attributes
|
||||||
ID : 17
|
ID : 15
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -451,7 +405,7 @@ Text tForecast2Val
|
|||||||
|
|
||||||
Text t10
|
Text t10
|
||||||
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
|
||||||
@@ -481,7 +435,7 @@ Text t10
|
|||||||
|
|
||||||
Text tAMPM
|
Text tAMPM
|
||||||
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
|
||||||
@@ -511,7 +465,7 @@ Text tAMPM
|
|||||||
|
|
||||||
Text tForecast3Val
|
Text tForecast3Val
|
||||||
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
|
||||||
@@ -541,7 +495,7 @@ Text tForecast3Val
|
|||||||
|
|
||||||
Text tF3Icon
|
Text tF3Icon
|
||||||
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
|
||||||
@@ -571,7 +525,7 @@ Text tF3Icon
|
|||||||
|
|
||||||
Text tForecast3
|
Text tForecast3
|
||||||
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
|
||||||
@@ -601,7 +555,7 @@ Text tForecast3
|
|||||||
|
|
||||||
Text tForecast4
|
Text tForecast4
|
||||||
Attributes
|
Attributes
|
||||||
ID : 24
|
ID : 22
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -631,7 +585,7 @@ Text tForecast4
|
|||||||
|
|
||||||
Text tF4Icon
|
Text tF4Icon
|
||||||
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
|
||||||
@@ -661,7 +615,7 @@ Text tF4Icon
|
|||||||
|
|
||||||
Text tForecast4Val
|
Text tForecast4Val
|
||||||
Attributes
|
Attributes
|
||||||
ID : 26
|
ID : 24
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -691,7 +645,7 @@ Text tForecast4Val
|
|||||||
|
|
||||||
Text tMainTextAlt
|
Text tMainTextAlt
|
||||||
Attributes
|
Attributes
|
||||||
ID : 29
|
ID : 27
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -721,7 +675,7 @@ Text tMainTextAlt
|
|||||||
|
|
||||||
Text tMainIconAlt
|
Text tMainIconAlt
|
||||||
Attributes
|
Attributes
|
||||||
ID : 30
|
ID : 28
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -751,7 +705,7 @@ Text tMainIconAlt
|
|||||||
|
|
||||||
Text tMRIcon
|
Text tMRIcon
|
||||||
Attributes
|
Attributes
|
||||||
ID : 31
|
ID : 29
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -781,7 +735,7 @@ Text tMRIcon
|
|||||||
|
|
||||||
Text tMR
|
Text tMR
|
||||||
Attributes
|
Attributes
|
||||||
ID : 32
|
ID : 30
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
@@ -980,6 +934,77 @@ Timer tmSerial
|
|||||||
//tMR
|
//tMR
|
||||||
spstr strCommand.txt,tMR.txt,"~",16
|
spstr strCommand.txt,tMR.txt,"~",16
|
||||||
}
|
}
|
||||||
|
if(tInstruction.txt=="color")
|
||||||
|
{
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",1
|
||||||
|
covx tTmp.txt,tTime.bco,0,0
|
||||||
|
screensaver.bco=tTime.bco
|
||||||
|
tAMPM.bco=tTime.bco
|
||||||
|
tDate.bco=tTime.bco
|
||||||
|
tMainIcon.bco=tTime.bco
|
||||||
|
tMainText.bco=tTime.bco
|
||||||
|
tMainIconAlt.bco=tTime.bco
|
||||||
|
tMainTextAlt.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tMR.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tForecast1.bco=tTime.bco
|
||||||
|
tForecast1Val.bco=tTime.bco
|
||||||
|
tF1Icon.bco=tTime.bco
|
||||||
|
tForecast2.bco=tTime.bco
|
||||||
|
tForecast2Val.bco=tTime.bco
|
||||||
|
tF2Icon.bco=tTime.bco
|
||||||
|
tForecast3.bco=tTime.bco
|
||||||
|
tForecast3Val.bco=tTime.bco
|
||||||
|
tF3Icon.bco=tTime.bco
|
||||||
|
tForecast4.bco=tTime.bco
|
||||||
|
tForecast4Val.bco=tTime.bco
|
||||||
|
tF4Icon.bco=tTime.bco
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",2
|
||||||
|
covx tTmp.txt,tTime.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",3
|
||||||
|
covx tTmp.txt,tAMPM.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",4
|
||||||
|
covx tTmp.txt,tDate.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",5
|
||||||
|
covx tTmp.txt,tMainIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",6
|
||||||
|
covx tTmp.txt,tMainText.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",7
|
||||||
|
covx tTmp.txt,tForecast1.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",8
|
||||||
|
covx tTmp.txt,tForecast2.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",9
|
||||||
|
covx tTmp.txt,tForecast3.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",10
|
||||||
|
covx tTmp.txt,tForecast4.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",11
|
||||||
|
covx tTmp.txt,tF1Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",12
|
||||||
|
covx tTmp.txt,tF2Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",13
|
||||||
|
covx tTmp.txt,tF3Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",14
|
||||||
|
covx tTmp.txt,tF4Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",15
|
||||||
|
covx tTmp.txt,tForecast1Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",16
|
||||||
|
covx tTmp.txt,tForecast2Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",17
|
||||||
|
covx tTmp.txt,tForecast3Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",18
|
||||||
|
covx tTmp.txt,tForecast4Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",19
|
||||||
|
covx tTmp.txt,t10.bco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",20
|
||||||
|
covx tTmp.txt,tMainIconAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",21
|
||||||
|
covx tTmp.txt,tMainTextAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",22
|
||||||
|
covx tTmp.txt,tMRIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",23
|
||||||
|
covx tTmp.txt,tMR.pco,0,0
|
||||||
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
dim=100
|
dim=100
|
||||||
@@ -1045,7 +1070,7 @@ Timer tmSerial
|
|||||||
|
|
||||||
Timer tmSleep
|
Timer tmSleep
|
||||||
Attributes
|
Attributes
|
||||||
ID : 28
|
ID : 26
|
||||||
Scope : local
|
Scope : local
|
||||||
Period (ms): 1000
|
Period (ms): 1000
|
||||||
Enabled : yes
|
Enabled : yes
|
||||||
|
|||||||
@@ -543,7 +543,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
|
|||||||
@@ -72,16 +72,6 @@ Page cardEntities
|
|||||||
vis bText5,0
|
vis bText5,0
|
||||||
vis hSlider5,0
|
vis hSlider5,0
|
||||||
vis nNum5,0
|
vis nNum5,0
|
||||||
//ui e6
|
|
||||||
vis btOnOff6,0
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis tIcon6,0
|
|
||||||
vis tEntity6,0
|
|
||||||
vis bText6,0
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
|
|
||||||
Variable (string) strCommand
|
Variable (string) strCommand
|
||||||
Attributes
|
Attributes
|
||||||
@@ -143,24 +133,12 @@ Variable (string) entn5
|
|||||||
Text :
|
Text :
|
||||||
Max. Text Size: 70
|
Max. Text Size: 70
|
||||||
|
|
||||||
Variable (string) entn6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 70
|
|
||||||
|
|
||||||
Variable (string) type5
|
Variable (string) type5
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 10
|
Max. Text Size: 10
|
||||||
|
|
||||||
Variable (string) type6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 10
|
|
||||||
|
|
||||||
Number nNum1
|
Number nNum1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -206,15 +184,6 @@ Number nNum5
|
|||||||
Associated Keyboard : none
|
Associated Keyboard : none
|
||||||
Value : 0
|
Value : 0
|
||||||
|
|
||||||
Number nNum6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Value : 0
|
|
||||||
|
|
||||||
Text tHeading
|
Text tHeading
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -365,26 +334,6 @@ Text tIcon5
|
|||||||
Text : î°
|
Text : î°
|
||||||
Max. Text Size : 5
|
Max. Text Size : 5
|
||||||
|
|
||||||
Text tEntity6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Text : tEntity6
|
|
||||||
Max. Text Size : 30
|
|
||||||
|
|
||||||
Text tIcon6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Text : î°
|
|
||||||
Max. Text Size : 5
|
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -532,34 +481,6 @@ Slider hSlider5
|
|||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
Slider hSlider6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Position : 50
|
|
||||||
Upper range limit : 100
|
|
||||||
Lower range limit : 0
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Release Event
|
|
||||||
nNum6.val=hSlider6.val
|
|
||||||
tSend.txt="event,buttonPress2,"+entn6.txt+",number-set,"
|
|
||||||
covx nNum6.val,tTmp.txt,0,0
|
|
||||||
tSend.txt+=tTmp.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
|
|
||||||
|
|
||||||
Button bDown1
|
Button bDown1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1117,106 +1038,6 @@ Button bText5
|
|||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
Button bStop6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
State : unpressed
|
|
||||||
Text : î
|
|
||||||
Max. Text Size : 10
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Press Event
|
|
||||||
tSend.txt="event,buttonPress2,"+entn6.txt+",stop"
|
|
||||||
//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
|
|
||||||
|
|
||||||
Button bDown6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
State : unpressed
|
|
||||||
Text : î
|
|
||||||
Max. Text Size : 10
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Press Event
|
|
||||||
tSend.txt="event,buttonPress2,"+entn6.txt+",down"
|
|
||||||
//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
|
|
||||||
|
|
||||||
Button bUp6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
State : unpressed
|
|
||||||
Text : î
|
|
||||||
Max. Text Size : 10
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Press Event
|
|
||||||
tSend.txt="event,buttonPress2,"+entn6.txt+",up"
|
|
||||||
//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
|
|
||||||
|
|
||||||
Button bText6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
State : unpressed
|
|
||||||
Text : newtxt
|
|
||||||
Max. Text Size : 10
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Press Event
|
|
||||||
tSend.txt="event,buttonPress2,"+entn6.txt+",button"
|
|
||||||
//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
|
|
||||||
|
|
||||||
Dual-state Button btOnOff1
|
Dual-state Button btOnOff1
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1352,33 +1173,6 @@ Dual-state Button btOnOff5
|
|||||||
prints tSend.txt,0
|
prints tSend.txt,0
|
||||||
prints crcval,2
|
prints crcval,2
|
||||||
|
|
||||||
Dual-state Button btOnOff6
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
State : unpressed
|
|
||||||
Text :
|
|
||||||
Max. Text Size : 10
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Press Event
|
|
||||||
tSend.txt="event,buttonPress2,"+entn6.txt+",OnOff,"
|
|
||||||
covx btOnOff6.val,tTmp.txt,0,0
|
|
||||||
tSend.txt+=tTmp.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
|
|
||||||
|
|
||||||
Hotspot mSpecial
|
Hotspot mSpecial
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1506,28 +1300,6 @@ Hotspot m4
|
|||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
|
||||||
Hotspot m5
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
|
|
||||||
Events
|
|
||||||
Touch Press Event
|
|
||||||
pageIcons.tTmp1.txt=tEntity6.txt
|
|
||||||
pageIcons.tTmp2.txt=entn6.txt
|
|
||||||
if(type6.txt=="shutter")
|
|
||||||
{
|
|
||||||
//popupShutter.tHeading.txt=tEntity6.txt
|
|
||||||
page popupShutter
|
|
||||||
}
|
|
||||||
if(type6.txt=="light")
|
|
||||||
{
|
|
||||||
//popupLight.tEntity.txt=tEntity6.txt
|
|
||||||
page popupLight
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer tmSerial
|
Timer tmSerial
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -1607,7 +1379,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
@@ -2220,128 +1992,6 @@ Timer tmSerial
|
|||||||
covx tTmp.txt,sys0,0,0
|
covx tTmp.txt,sys0,0,0
|
||||||
hSlider5.maxval=sys0
|
hSlider5.maxval=sys0
|
||||||
}
|
}
|
||||||
// get Type
|
|
||||||
spstr strCommand.txt,type6.txt,"~",33
|
|
||||||
// get internal name
|
|
||||||
spstr strCommand.txt,entn6.txt,"~",34
|
|
||||||
if(type6.txt=="delete"||type6.txt=="")
|
|
||||||
{
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis btOnOff6,0
|
|
||||||
vis tEntity6,0
|
|
||||||
vis tIcon6,0
|
|
||||||
vis bText6,0
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
// change icon
|
|
||||||
spstr strCommand.txt,tIcon6.txt,"~",35
|
|
||||||
vis tIcon6,1
|
|
||||||
// change icon color
|
|
||||||
spstr strCommand.txt,tTmp.txt,"~",36
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
tIcon6.pco=sys0
|
|
||||||
// set name
|
|
||||||
spstr strCommand.txt,tEntity6.txt,"~",37
|
|
||||||
vis tEntity6,1
|
|
||||||
}
|
|
||||||
if(type6.txt=="shutter")
|
|
||||||
{
|
|
||||||
vis bUp6,1
|
|
||||||
vis bStop6,1
|
|
||||||
vis bDown6,1
|
|
||||||
vis btOnOff6,0
|
|
||||||
vis bText6,0
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
}
|
|
||||||
if(type6.txt=="light")
|
|
||||||
{
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis btOnOff6,1
|
|
||||||
vis bText6,0
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
// get Button State (optional Value)
|
|
||||||
spstr strCommand.txt,tTmp.txt,"~",38
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
btOnOff6.val=sys0
|
|
||||||
}
|
|
||||||
if(type6.txt=="switch")
|
|
||||||
{
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis btOnOff6,1
|
|
||||||
vis bText6,0
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
// get Button State (optional Value)
|
|
||||||
spstr strCommand.txt,tTmp.txt,"~",38
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
btOnOff6.val=sys0
|
|
||||||
}
|
|
||||||
if(type6.txt=="text")
|
|
||||||
{
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis btOnOff6,0
|
|
||||||
vis bText6,1
|
|
||||||
tsw bText6,0
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
bText6.pco=65535
|
|
||||||
bText6.pco2=65535
|
|
||||||
// get Text (optional Value)
|
|
||||||
spstr strCommand.txt,bText6.txt,"~",38
|
|
||||||
}
|
|
||||||
if(type6.txt=="button")
|
|
||||||
{
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis btOnOff6,0
|
|
||||||
vis bText6,1
|
|
||||||
tsw bText6,1
|
|
||||||
vis hSlider6,0
|
|
||||||
vis nNum6,0
|
|
||||||
bText6.pco=1374
|
|
||||||
bText6.pco2=1374
|
|
||||||
// get Text (optional Value)
|
|
||||||
spstr strCommand.txt,bText6.txt,"~",38
|
|
||||||
}
|
|
||||||
if(type6.txt=="number")
|
|
||||||
{
|
|
||||||
vis bUp6,0
|
|
||||||
vis bStop6,0
|
|
||||||
vis bDown6,0
|
|
||||||
vis btOnOff6,0
|
|
||||||
vis bText6,0
|
|
||||||
tsw bText6,0
|
|
||||||
vis hSlider6,1
|
|
||||||
vis nNum6,1
|
|
||||||
// get config (optional Value) (use bText as variable)
|
|
||||||
spstr strCommand.txt,bText6.txt,"~",38
|
|
||||||
//first value is current value
|
|
||||||
spstr bText6.txt,tTmp.txt,"|",0
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
hSlider6.val=sys0
|
|
||||||
nNum6.val=sys0
|
|
||||||
//second value is min value
|
|
||||||
spstr bText6.txt,tTmp.txt,"|",1
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
hSlider6.minval=sys0
|
|
||||||
//third value is max value
|
|
||||||
spstr bText6.txt,tTmp.txt,"|",2
|
|
||||||
covx tTmp.txt,sys0,0,0
|
|
||||||
hSlider6.maxval=sys0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -599,7 +599,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -534,7 +534,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -671,7 +671,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ Text tVersion
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Associated Keyboard : none
|
Associated Keyboard : none
|
||||||
Text : 30
|
Text : 31
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
|
|||||||
@@ -570,25 +570,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -339,25 +339,43 @@ Timer tmSerial
|
|||||||
pageIcons.tTmp1.txt=tTmp.txt
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupLight")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardThermo")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardThermo
|
page cardThermo
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="cardMedia")
|
||||||
{
|
{
|
||||||
page pageStartup
|
page cardMedia
|
||||||
}
|
|
||||||
if(tId.txt=="cardGrid")
|
|
||||||
{
|
|
||||||
page cardGrid
|
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -366,30 +366,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
if(tId.txt=="popupLight")
|
if(tId.txt=="pageStartup")
|
||||||
{
|
{
|
||||||
pageIcons.tTmp1.txt=tTmp.txt
|
page pageStartup
|
||||||
page popupLight
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,23 +48,15 @@ Variable (int32) vaTap
|
|||||||
Scope: local
|
Scope: local
|
||||||
Value: 0
|
Value: 0
|
||||||
|
|
||||||
Text tInstruction
|
Variable (string) tInstruction
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 50
|
||||||
|
|
||||||
Text tTmp
|
Variable (string) tTmp
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 50
|
Max. Text Size: 50
|
||||||
|
|
||||||
@@ -458,6 +450,77 @@ Timer tmSerial
|
|||||||
//tMR
|
//tMR
|
||||||
spstr strCommand.txt,tMR.txt,"~",16
|
spstr strCommand.txt,tMR.txt,"~",16
|
||||||
}
|
}
|
||||||
|
if(tInstruction.txt=="color")
|
||||||
|
{
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",1
|
||||||
|
covx tTmp.txt,tTime.bco,0,0
|
||||||
|
screensaver.bco=tTime.bco
|
||||||
|
tAMPM.bco=tTime.bco
|
||||||
|
tDate.bco=tTime.bco
|
||||||
|
tMainIcon.bco=tTime.bco
|
||||||
|
tMainText.bco=tTime.bco
|
||||||
|
tMainIconAlt.bco=tTime.bco
|
||||||
|
tMainTextAlt.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tMR.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tForecast1.bco=tTime.bco
|
||||||
|
tForecast1Val.bco=tTime.bco
|
||||||
|
tF1Icon.bco=tTime.bco
|
||||||
|
tForecast2.bco=tTime.bco
|
||||||
|
tForecast2Val.bco=tTime.bco
|
||||||
|
tF2Icon.bco=tTime.bco
|
||||||
|
tForecast3.bco=tTime.bco
|
||||||
|
tForecast3Val.bco=tTime.bco
|
||||||
|
tF3Icon.bco=tTime.bco
|
||||||
|
tForecast4.bco=tTime.bco
|
||||||
|
tForecast4Val.bco=tTime.bco
|
||||||
|
tF4Icon.bco=tTime.bco
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",2
|
||||||
|
covx tTmp.txt,tTime.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",3
|
||||||
|
covx tTmp.txt,tAMPM.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",4
|
||||||
|
covx tTmp.txt,tDate.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",5
|
||||||
|
covx tTmp.txt,tMainIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",6
|
||||||
|
covx tTmp.txt,tMainText.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",7
|
||||||
|
covx tTmp.txt,tForecast1.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",8
|
||||||
|
covx tTmp.txt,tForecast2.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",9
|
||||||
|
covx tTmp.txt,tForecast3.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",10
|
||||||
|
covx tTmp.txt,tForecast4.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",11
|
||||||
|
covx tTmp.txt,tF1Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",12
|
||||||
|
covx tTmp.txt,tF2Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",13
|
||||||
|
covx tTmp.txt,tF3Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",14
|
||||||
|
covx tTmp.txt,tF4Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",15
|
||||||
|
covx tTmp.txt,tForecast1Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",16
|
||||||
|
covx tTmp.txt,tForecast2Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",17
|
||||||
|
covx tTmp.txt,tForecast3Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",18
|
||||||
|
covx tTmp.txt,tForecast4Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",19
|
||||||
|
covx tTmp.txt,t10.bco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",20
|
||||||
|
covx tTmp.txt,tMainIconAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",21
|
||||||
|
covx tTmp.txt,tMainTextAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",22
|
||||||
|
covx tTmp.txt,tMRIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",23
|
||||||
|
covx tTmp.txt,tMR.pco,0,0
|
||||||
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
dim=100
|
dim=100
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -28,19 +28,24 @@ def get_icon_id(ma_name):
|
|||||||
|
|
||||||
# write mapping lib for typescript
|
# write mapping lib for typescript
|
||||||
with open(os.path.join(__location__, "../../../iobroker", "icon_mapping.ts"), 'w') as f:
|
with open(os.path.join(__location__, "../../../iobroker", "icon_mapping.ts"), 'w') as f:
|
||||||
f.write("let iconMap = new Map<string, string>([\n")
|
f.write("""
|
||||||
|
export class IconsSelector {
|
||||||
|
iconMap = new Map<string, string>([
|
||||||
|
""")
|
||||||
for icon in icon_metadata:
|
for icon in icon_metadata:
|
||||||
iconchar = chr(int(icon['hex'], 16))
|
iconchar = chr(int(icon['hex'], 16))
|
||||||
name = icon["name"]
|
name = icon["name"]
|
||||||
f.write(f" [\"{name}\", \"{iconchar}\"],\n")
|
f.write(f" [\"{name}\", \"{iconchar}\"],\n")
|
||||||
f.write("]);\n")
|
f.write("]);\n")
|
||||||
f.write("""
|
f.write("""
|
||||||
function get_icon(ma_name:string):string{
|
GetIcon(ma_name:string):string{
|
||||||
if(iconMap.has(ma_name)){
|
if(this.iconMap.has(ma_name)){
|
||||||
return iconMap.get(ma_name);
|
return this.iconMap.get(ma_name)!;
|
||||||
}
|
}
|
||||||
return iconMap.get("alert-circle-outline");
|
return "";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
""");
|
""");
|
||||||
|
|
||||||
# write documentation file
|
# write documentation file
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ head = sharedhead + """
|
|||||||
""" + navigation
|
""" + navigation
|
||||||
print(head)
|
print(head)
|
||||||
start = 3
|
start = 3
|
||||||
for i in range(1,7):
|
for i in range(1,6):
|
||||||
idxstart = start + (i-1)*6
|
idxstart = start + (i-1)*6
|
||||||
item = f"""
|
item = f"""
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ navigation = """
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt=""
|
bNext.txt=""
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
@@ -1073,7 +1073,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
|
|||||||
@@ -2096,7 +2096,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -1036,7 +1036,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -956,7 +956,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -1224,7 +1224,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -10,49 +10,49 @@ pageTest
|
|||||||
13 Component(s)
|
13 Component(s)
|
||||||
13 Line(s) of event code
|
13 Line(s) of event code
|
||||||
13 Unique line(s) of event code
|
13 Unique line(s) of event code
|
||||||
popupNotify
|
|
||||||
17 Component(s)
|
|
||||||
178 Line(s) of event code
|
|
||||||
117 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
|
||||||
cardGrid
|
|
||||||
39 Component(s)
|
|
||||||
418 Line(s) of event code
|
|
||||||
243 Unique line(s) of event code
|
|
||||||
popupLight
|
popupLight
|
||||||
27 Component(s)
|
27 Component(s)
|
||||||
320 Line(s) of event code
|
338 Line(s) of event code
|
||||||
173 Unique line(s) of event code
|
182 Unique line(s) of event code
|
||||||
popupShutter
|
popupShutter
|
||||||
19 Component(s)
|
19 Component(s)
|
||||||
178 Line(s) of event code
|
191 Line(s) of event code
|
||||||
101 Unique line(s) of event code
|
107 Unique line(s) of event code
|
||||||
|
popupNotify
|
||||||
|
17 Component(s)
|
||||||
|
196 Line(s) of event code
|
||||||
|
123 Unique line(s) of event code
|
||||||
cardMedia
|
cardMedia
|
||||||
30 Component(s)
|
30 Component(s)
|
||||||
329 Line(s) of event code
|
329 Line(s) of event code
|
||||||
168 Unique line(s) of event code
|
169 Unique line(s) of event code
|
||||||
cardAlarm
|
|
||||||
35 Component(s)
|
|
||||||
343 Line(s) of event code
|
|
||||||
213 Unique line(s) of event code
|
|
||||||
cardThermo
|
cardThermo
|
||||||
41 Component(s)
|
41 Component(s)
|
||||||
442 Line(s) of event code
|
442 Line(s) of event code
|
||||||
246 Unique line(s) of event code
|
247 Unique line(s) of event code
|
||||||
|
cardGrid
|
||||||
|
39 Component(s)
|
||||||
|
418 Line(s) of event code
|
||||||
|
244 Unique line(s) of event code
|
||||||
screensaver
|
screensaver
|
||||||
33 Component(s)
|
33 Component(s)
|
||||||
195 Line(s) of event code
|
266 Line(s) of event code
|
||||||
152 Unique line(s) of event code
|
218 Unique line(s) of event code
|
||||||
|
cardAlarm
|
||||||
|
35 Component(s)
|
||||||
|
343 Line(s) of event code
|
||||||
|
214 Unique line(s) of event code
|
||||||
cardEntities
|
cardEntities
|
||||||
62 Component(s)
|
62 Component(s)
|
||||||
964 Line(s) of event code
|
964 Line(s) of event code
|
||||||
409 Unique line(s) of event code
|
410 Unique line(s) of event code
|
||||||
|
|
||||||
Total
|
Total
|
||||||
12 Page(s)
|
12 Page(s)
|
||||||
341 Component(s)
|
341 Component(s)
|
||||||
3541 Line(s) of event code
|
3661 Line(s) of event code
|
||||||
947 Unique line(s) of event code
|
1002 Unique line(s) of event code
|
||||||
|
|||||||
@@ -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 : 30
|
Text : 31
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
Word wrap : disabled
|
Word wrap : disabled
|
||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
|
|||||||
@@ -916,25 +916,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -548,25 +548,43 @@ Timer tmSerial
|
|||||||
pageIcons.tTmp1.txt=tTmp.txt
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupLight")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardThermo")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardThermo
|
page cardThermo
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="cardMedia")
|
||||||
{
|
{
|
||||||
page pageStartup
|
page cardMedia
|
||||||
}
|
|
||||||
if(tId.txt=="cardGrid")
|
|
||||||
{
|
|
||||||
page cardGrid
|
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -631,30 +631,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
if(tId.txt=="popupLight")
|
if(tId.txt=="pageStartup")
|
||||||
{
|
{
|
||||||
pageIcons.tTmp1.txt=tTmp.txt
|
page pageStartup
|
||||||
page popupLight
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -59,6 +59,20 @@ Variable (int32) vaTap
|
|||||||
Scope: local
|
Scope: local
|
||||||
Value: 0
|
Value: 0
|
||||||
|
|
||||||
|
Variable (string) tInstruction
|
||||||
|
Attributes
|
||||||
|
ID : 31
|
||||||
|
Scope : local
|
||||||
|
Text :
|
||||||
|
Max. Text Size: 50
|
||||||
|
|
||||||
|
Variable (string) tTmp
|
||||||
|
Attributes
|
||||||
|
ID : 32
|
||||||
|
Scope : local
|
||||||
|
Text :
|
||||||
|
Max. Text Size: 50
|
||||||
|
|
||||||
Text tTime
|
Text tTime
|
||||||
Attributes
|
Attributes
|
||||||
ID : 5
|
ID : 5
|
||||||
@@ -749,66 +763,6 @@ Text tMR
|
|||||||
Horizontal Spacing : 0
|
Horizontal Spacing : 0
|
||||||
Vertical Spacing : 0
|
Vertical Spacing : 0
|
||||||
|
|
||||||
Text tTmp
|
|
||||||
Attributes
|
|
||||||
ID : 31
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Opacity : 127
|
|
||||||
x coordinate : 368
|
|
||||||
y coordinate : 0
|
|
||||||
Width : 25
|
|
||||||
Height : 30
|
|
||||||
Effect : load
|
|
||||||
Effect Priority : 0
|
|
||||||
Effect Time : 300
|
|
||||||
Fill : solid color
|
|
||||||
Style : flat
|
|
||||||
Associated Keyboard : none
|
|
||||||
Font ID : 0
|
|
||||||
Back. Color : 65535
|
|
||||||
Font Color : 0
|
|
||||||
Horizontal Alignment : center
|
|
||||||
Vertical Alignment : center
|
|
||||||
Input Type : character
|
|
||||||
Text :
|
|
||||||
Max. Text Size : 50
|
|
||||||
Word wrap : disabled
|
|
||||||
Horizontal Spacing : 0
|
|
||||||
Vertical Spacing : 0
|
|
||||||
|
|
||||||
Text tInstruction
|
|
||||||
Attributes
|
|
||||||
ID : 32
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Opacity : 127
|
|
||||||
x coordinate : 335
|
|
||||||
y coordinate : 0
|
|
||||||
Width : 27
|
|
||||||
Height : 30
|
|
||||||
Effect : load
|
|
||||||
Effect Priority : 0
|
|
||||||
Effect Time : 300
|
|
||||||
Fill : solid color
|
|
||||||
Style : flat
|
|
||||||
Associated Keyboard : none
|
|
||||||
Font ID : 0
|
|
||||||
Back. Color : 65535
|
|
||||||
Font Color : 0
|
|
||||||
Horizontal Alignment : center
|
|
||||||
Vertical Alignment : center
|
|
||||||
Input Type : character
|
|
||||||
Text :
|
|
||||||
Max. Text Size : 50
|
|
||||||
Word wrap : disabled
|
|
||||||
Horizontal Spacing : 0
|
|
||||||
Vertical Spacing : 0
|
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
ID : 1
|
ID : 1
|
||||||
@@ -980,6 +934,77 @@ Timer tmSerial
|
|||||||
//tMR
|
//tMR
|
||||||
spstr strCommand.txt,tMR.txt,"~",16
|
spstr strCommand.txt,tMR.txt,"~",16
|
||||||
}
|
}
|
||||||
|
if(tInstruction.txt=="color")
|
||||||
|
{
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",1
|
||||||
|
covx tTmp.txt,tTime.bco,0,0
|
||||||
|
screensaver.bco=tTime.bco
|
||||||
|
tAMPM.bco=tTime.bco
|
||||||
|
tDate.bco=tTime.bco
|
||||||
|
tMainIcon.bco=tTime.bco
|
||||||
|
tMainText.bco=tTime.bco
|
||||||
|
tMainIconAlt.bco=tTime.bco
|
||||||
|
tMainTextAlt.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tMR.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tForecast1.bco=tTime.bco
|
||||||
|
tForecast1Val.bco=tTime.bco
|
||||||
|
tF1Icon.bco=tTime.bco
|
||||||
|
tForecast2.bco=tTime.bco
|
||||||
|
tForecast2Val.bco=tTime.bco
|
||||||
|
tF2Icon.bco=tTime.bco
|
||||||
|
tForecast3.bco=tTime.bco
|
||||||
|
tForecast3Val.bco=tTime.bco
|
||||||
|
tF3Icon.bco=tTime.bco
|
||||||
|
tForecast4.bco=tTime.bco
|
||||||
|
tForecast4Val.bco=tTime.bco
|
||||||
|
tF4Icon.bco=tTime.bco
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",2
|
||||||
|
covx tTmp.txt,tTime.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",3
|
||||||
|
covx tTmp.txt,tAMPM.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",4
|
||||||
|
covx tTmp.txt,tDate.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",5
|
||||||
|
covx tTmp.txt,tMainIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",6
|
||||||
|
covx tTmp.txt,tMainText.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",7
|
||||||
|
covx tTmp.txt,tForecast1.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",8
|
||||||
|
covx tTmp.txt,tForecast2.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",9
|
||||||
|
covx tTmp.txt,tForecast3.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",10
|
||||||
|
covx tTmp.txt,tForecast4.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",11
|
||||||
|
covx tTmp.txt,tF1Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",12
|
||||||
|
covx tTmp.txt,tF2Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",13
|
||||||
|
covx tTmp.txt,tF3Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",14
|
||||||
|
covx tTmp.txt,tF4Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",15
|
||||||
|
covx tTmp.txt,tForecast1Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",16
|
||||||
|
covx tTmp.txt,tForecast2Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",17
|
||||||
|
covx tTmp.txt,tForecast3Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",18
|
||||||
|
covx tTmp.txt,tForecast4Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",19
|
||||||
|
covx tTmp.txt,t10.bco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",20
|
||||||
|
covx tTmp.txt,tMainIconAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",21
|
||||||
|
covx tTmp.txt,tMainTextAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",22
|
||||||
|
covx tTmp.txt,tMRIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",23
|
||||||
|
covx tTmp.txt,tMR.pco,0,0
|
||||||
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
dim=100
|
dim=100
|
||||||
|
|||||||
@@ -543,7 +543,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
|
|||||||
@@ -1151,7 +1151,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -599,7 +599,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
// get Type
|
// get Type
|
||||||
|
|||||||
@@ -534,7 +534,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -671,7 +671,7 @@ Timer tmSerial
|
|||||||
}
|
}
|
||||||
if(tTmp.txt=="1")
|
if(tTmp.txt=="1")
|
||||||
{
|
{
|
||||||
vis bPrev,1
|
vis bNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
//entity name
|
//entity name
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ Text tVersion
|
|||||||
Disable release event after dragging: 0
|
Disable release event after dragging: 0
|
||||||
Send Component ID : disabled
|
Send Component ID : disabled
|
||||||
Associated Keyboard : none
|
Associated Keyboard : none
|
||||||
Text : 30
|
Text : 31
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
|
|||||||
@@ -570,25 +570,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -339,25 +339,43 @@ Timer tmSerial
|
|||||||
pageIcons.tTmp1.txt=tTmp.txt
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
page popupLight
|
page popupLight
|
||||||
}
|
}
|
||||||
|
if(tId.txt=="pageStartup")
|
||||||
|
{
|
||||||
|
page pageStartup
|
||||||
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupLight")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupNotify")
|
||||||
|
{
|
||||||
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardThermo")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardThermo
|
page cardThermo
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="cardMedia")
|
||||||
{
|
{
|
||||||
page pageStartup
|
page cardMedia
|
||||||
}
|
|
||||||
if(tId.txt=="cardGrid")
|
|
||||||
{
|
|
||||||
page cardGrid
|
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -366,30 +366,43 @@ Timer tmSerial
|
|||||||
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
//we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
|
||||||
udelete payloadLength-1
|
udelete payloadLength-1
|
||||||
bufferPos=0
|
bufferPos=0
|
||||||
if(tId.txt=="popupLight")
|
if(tId.txt=="pageStartup")
|
||||||
{
|
{
|
||||||
pageIcons.tTmp1.txt=tTmp.txt
|
page pageStartup
|
||||||
page popupLight
|
}
|
||||||
|
if(tId.txt=="screensaver")
|
||||||
|
{
|
||||||
|
page screensaver
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardEntities")
|
if(tId.txt=="cardEntities")
|
||||||
{
|
{
|
||||||
page cardEntities
|
page cardEntities
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardMedia")
|
if(tId.txt=="cardGrid")
|
||||||
{
|
{
|
||||||
page cardMedia
|
page cardGrid
|
||||||
}
|
}
|
||||||
if(tId.txt=="pageStartup")
|
if(tId.txt=="popupLight")
|
||||||
{
|
{
|
||||||
page pageStartup
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupLight
|
||||||
|
}
|
||||||
|
if(tId.txt=="popupShutter")
|
||||||
|
{
|
||||||
|
pageIcons.tTmp1.txt=tTmp.txt
|
||||||
|
page popupShutter
|
||||||
}
|
}
|
||||||
if(tId.txt=="popupNotify")
|
if(tId.txt=="popupNotify")
|
||||||
{
|
{
|
||||||
page popupNotify
|
page popupNotify
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardGrid")
|
if(tId.txt=="cardThermo")
|
||||||
{
|
{
|
||||||
page cardGrid
|
page cardThermo
|
||||||
|
}
|
||||||
|
if(tId.txt=="cardMedia")
|
||||||
|
{
|
||||||
|
page cardMedia
|
||||||
}
|
}
|
||||||
if(tId.txt=="cardAlarm")
|
if(tId.txt=="cardAlarm")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,6 +48,18 @@ Variable (int32) vaTap
|
|||||||
Scope: local
|
Scope: local
|
||||||
Value: 0
|
Value: 0
|
||||||
|
|
||||||
|
Variable (string) tInstruction
|
||||||
|
Attributes
|
||||||
|
Scope : local
|
||||||
|
Text :
|
||||||
|
Max. Text Size: 50
|
||||||
|
|
||||||
|
Variable (string) tTmp
|
||||||
|
Attributes
|
||||||
|
Scope : local
|
||||||
|
Text :
|
||||||
|
Max. Text Size: 50
|
||||||
|
|
||||||
Text tTime
|
Text tTime
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -278,26 +290,6 @@ Text tMR
|
|||||||
Text :
|
Text :
|
||||||
Max. Text Size : 10
|
Max. Text Size : 10
|
||||||
|
|
||||||
Text tTmp
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Text :
|
|
||||||
Max. Text Size : 50
|
|
||||||
|
|
||||||
Text tInstruction
|
|
||||||
Attributes
|
|
||||||
Scope : local
|
|
||||||
Dragging : 0
|
|
||||||
Disable release event after dragging: 0
|
|
||||||
Send Component ID : disabled
|
|
||||||
Associated Keyboard : none
|
|
||||||
Text :
|
|
||||||
Max. Text Size : 50
|
|
||||||
|
|
||||||
Picture p0
|
Picture p0
|
||||||
Attributes
|
Attributes
|
||||||
Scope : local
|
Scope : local
|
||||||
@@ -458,6 +450,77 @@ Timer tmSerial
|
|||||||
//tMR
|
//tMR
|
||||||
spstr strCommand.txt,tMR.txt,"~",16
|
spstr strCommand.txt,tMR.txt,"~",16
|
||||||
}
|
}
|
||||||
|
if(tInstruction.txt=="color")
|
||||||
|
{
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",1
|
||||||
|
covx tTmp.txt,tTime.bco,0,0
|
||||||
|
screensaver.bco=tTime.bco
|
||||||
|
tAMPM.bco=tTime.bco
|
||||||
|
tDate.bco=tTime.bco
|
||||||
|
tMainIcon.bco=tTime.bco
|
||||||
|
tMainText.bco=tTime.bco
|
||||||
|
tMainIconAlt.bco=tTime.bco
|
||||||
|
tMainTextAlt.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tMR.bco=tTime.bco
|
||||||
|
tMRIcon.bco=tTime.bco
|
||||||
|
tForecast1.bco=tTime.bco
|
||||||
|
tForecast1Val.bco=tTime.bco
|
||||||
|
tF1Icon.bco=tTime.bco
|
||||||
|
tForecast2.bco=tTime.bco
|
||||||
|
tForecast2Val.bco=tTime.bco
|
||||||
|
tF2Icon.bco=tTime.bco
|
||||||
|
tForecast3.bco=tTime.bco
|
||||||
|
tForecast3Val.bco=tTime.bco
|
||||||
|
tF3Icon.bco=tTime.bco
|
||||||
|
tForecast4.bco=tTime.bco
|
||||||
|
tForecast4Val.bco=tTime.bco
|
||||||
|
tF4Icon.bco=tTime.bco
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",2
|
||||||
|
covx tTmp.txt,tTime.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",3
|
||||||
|
covx tTmp.txt,tAMPM.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",4
|
||||||
|
covx tTmp.txt,tDate.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",5
|
||||||
|
covx tTmp.txt,tMainIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",6
|
||||||
|
covx tTmp.txt,tMainText.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",7
|
||||||
|
covx tTmp.txt,tForecast1.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",8
|
||||||
|
covx tTmp.txt,tForecast2.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",9
|
||||||
|
covx tTmp.txt,tForecast3.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",10
|
||||||
|
covx tTmp.txt,tForecast4.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",11
|
||||||
|
covx tTmp.txt,tF1Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",12
|
||||||
|
covx tTmp.txt,tF2Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",13
|
||||||
|
covx tTmp.txt,tF3Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",14
|
||||||
|
covx tTmp.txt,tF4Icon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",15
|
||||||
|
covx tTmp.txt,tForecast1Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",16
|
||||||
|
covx tTmp.txt,tForecast2Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",17
|
||||||
|
covx tTmp.txt,tForecast3Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",18
|
||||||
|
covx tTmp.txt,tForecast4Val.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",19
|
||||||
|
covx tTmp.txt,t10.bco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",20
|
||||||
|
covx tTmp.txt,tMainIconAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",21
|
||||||
|
covx tTmp.txt,tMainTextAlt.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",22
|
||||||
|
covx tTmp.txt,tMRIcon.pco,0,0
|
||||||
|
spstr strCommand.txt,tTmp.txt,"~",23
|
||||||
|
covx tTmp.txt,tMR.pco,0,0
|
||||||
|
}
|
||||||
if(tInstruction.txt=="pageType")
|
if(tInstruction.txt=="pageType")
|
||||||
{
|
{
|
||||||
dim=100
|
dim=100
|
||||||
|
|||||||
BIN
HMI/nspanel.HMI
BIN
HMI/nspanel.HMI
Binary file not shown.
BIN
HMI/nspanel.tft
BIN
HMI/nspanel.tft
Binary file not shown.
@@ -398,7 +398,7 @@ It is possible to schedule a brightness change for the screen at specific times.
|
|||||||
#### Override Icons or Names
|
#### Override Icons or Names
|
||||||
|
|
||||||
To override Icons or Names of entities you can configure an icon and/or name in your configuration, please see the following example.
|
To override Icons or Names of entities you can configure an icon and/or name in your configuration, please see the following example.
|
||||||
Only the icons listed in the [Icon Cheetsheet](https://htmlpreview.github.io/?https://github.com/joBr99/nspanel-lovelace-ui/blob/main/HMI/icon-cheatsheet.html) are useable.
|
Only the icons listed in the [Icon Cheatsheet](https://htmlpreview.github.io/?https://github.com/joBr99/nspanel-lovelace-ui/blob/main/HMI/icon-cheatsheet.html) are useable.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
entities:
|
entities:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from helper import dict_recursive_update
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
LOGGER = logging.getLogger(__name__)
|
LOGGER = logging.getLogger(__name__)
|
||||||
@@ -41,6 +42,12 @@ class Card(object):
|
|||||||
else:
|
else:
|
||||||
for e in self.entities:
|
for e in self.entities:
|
||||||
entityIds.append(e.entityId)
|
entityIds.append(e.entityId)
|
||||||
|
# additional keys to check
|
||||||
|
add_ent_keys = ['weatherOverrideForecast1', 'weatherOverrideForecast2', 'weatherOverrideForecast3', 'weatherOverrideForecast4']
|
||||||
|
for ent_key in add_ent_keys:
|
||||||
|
val = self.raw_config.get(ent_key)
|
||||||
|
if val is not None:
|
||||||
|
entityIds.append(val.get("entity"))
|
||||||
return entityIds
|
return entityIds
|
||||||
|
|
||||||
class LuiBackendConfig(object):
|
class LuiBackendConfig(object):
|
||||||
@@ -91,7 +98,8 @@ class LuiBackendConfig(object):
|
|||||||
'weatherOverrideForecast4': None,
|
'weatherOverrideForecast4': None,
|
||||||
'doubleTapToUnlock': False,
|
'doubleTapToUnlock': False,
|
||||||
'alternativeLayout': False,
|
'alternativeLayout': False,
|
||||||
'defaultCard': None
|
'defaultCard': None,
|
||||||
|
'key': 'screensaver'
|
||||||
},
|
},
|
||||||
'hiddenCards': []
|
'hiddenCards': []
|
||||||
}
|
}
|
||||||
@@ -106,10 +114,8 @@ class LuiBackendConfig(object):
|
|||||||
|
|
||||||
self.load(config_in)
|
self.load(config_in)
|
||||||
|
|
||||||
def load(self, args):
|
def load(self, inconfig):
|
||||||
for k, v in args.items():
|
self._config = dict_recursive_update(inconfig, self._DEFAULT_CONFIG)
|
||||||
if k in self._DEFAULT_CONFIG:
|
|
||||||
self._config[k] = v
|
|
||||||
LOGGER.info(f"Loaded config: {self._config}")
|
LOGGER.info(f"Loaded config: {self._config}")
|
||||||
|
|
||||||
# parse cards displayed on panel
|
# parse cards displayed on panel
|
||||||
@@ -145,6 +151,7 @@ class LuiBackendConfig(object):
|
|||||||
entities.extend(card.get_entity_list())
|
entities.extend(card.get_entity_list())
|
||||||
for card in self._config_hidden_cards:
|
for card in self._config_hidden_cards:
|
||||||
entities.extend(card.get_entity_list())
|
entities.extend(card.get_entity_list())
|
||||||
|
entities.extend(self._config_screensaver.get_entity_list())
|
||||||
return entities
|
return entities
|
||||||
|
|
||||||
def getCard(self, pos):
|
def getCard(self, pos):
|
||||||
|
|||||||
@@ -13,9 +13,10 @@ class LuiController(object):
|
|||||||
self._config = config
|
self._config = config
|
||||||
self._send_mqtt_msg = send_mqtt_msg
|
self._send_mqtt_msg = send_mqtt_msg
|
||||||
|
|
||||||
# first card (default, after startup)
|
self._current_card = self._config._config_screensaver
|
||||||
self._current_card = self._config.getCard(0)
|
|
||||||
self._previous_cards = []
|
self._previous_cards = []
|
||||||
|
# first card (default, after startup)
|
||||||
|
self._previous_cards.append(self._config.getCard(0))
|
||||||
|
|
||||||
self._pages_gen = LuiPagesGen(ha_api, config, send_mqtt_msg)
|
self._pages_gen = LuiPagesGen(ha_api, config, send_mqtt_msg)
|
||||||
|
|
||||||
@@ -29,10 +30,6 @@ class LuiController(object):
|
|||||||
# Setup date callback
|
# Setup date callback
|
||||||
ha_api.run_daily(self._pages_gen.update_date, time)
|
ha_api.run_daily(self._pages_gen.update_date, time)
|
||||||
|
|
||||||
# weather callback
|
|
||||||
weather_interval = 15 * 60 # 15 minutes
|
|
||||||
ha_api.run_every(self.weather_update, "now", weather_interval)
|
|
||||||
|
|
||||||
# register callbacks
|
# register callbacks
|
||||||
self.register_callbacks()
|
self.register_callbacks()
|
||||||
|
|
||||||
@@ -62,8 +59,8 @@ class LuiController(object):
|
|||||||
self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness})
|
self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness})
|
||||||
|
|
||||||
# send panel to screensaver
|
# send panel to screensaver
|
||||||
self._pages_gen.page_type("screensaver")
|
self._pages_gen.render_card(self._current_card)
|
||||||
self.weather_update("")
|
|
||||||
|
|
||||||
def update_screensaver_brightness_state_callback(self, entity, attribute, old, new, kwargs):
|
def update_screensaver_brightness_state_callback(self, entity, attribute, old, new, kwargs):
|
||||||
self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness})
|
self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness})
|
||||||
@@ -78,9 +75,6 @@ class LuiController(object):
|
|||||||
brightness = kwargs['value']
|
brightness = kwargs['value']
|
||||||
self._send_mqtt_msg(f"dimmode~{brightness}")
|
self._send_mqtt_msg(f"dimmode~{brightness}")
|
||||||
|
|
||||||
def weather_update(self, kwargs):
|
|
||||||
self._pages_gen.update_screensaver_weather()
|
|
||||||
|
|
||||||
def calc_current_screensaver_brightness(self):
|
def calc_current_screensaver_brightness(self):
|
||||||
current_screensaver_brightness = 20
|
current_screensaver_brightness = 20
|
||||||
# set brightness of screensaver
|
# set brightness of screensaver
|
||||||
@@ -104,7 +98,7 @@ class LuiController(object):
|
|||||||
|
|
||||||
def register_callbacks(self):
|
def register_callbacks(self):
|
||||||
items = self._config.get_all_entity_names()
|
items = self._config.get_all_entity_names()
|
||||||
LOGGER.debug(f"Registering callbacks for the following items: {items}")
|
LOGGER.info(f"Registering callbacks for the following items: {items}")
|
||||||
for item in items:
|
for item in items:
|
||||||
if self._ha_api.entity_exists(item):
|
if self._ha_api.entity_exists(item):
|
||||||
self._ha_api.listen_state(self.state_change_callback, entity_id=item, attribute="all")
|
self._ha_api.listen_state(self.state_change_callback, entity_id=item, attribute="all")
|
||||||
@@ -138,16 +132,20 @@ class LuiController(object):
|
|||||||
dstCard = self._config.searchCard(self._config.get("screensaver.defaultCard"))
|
dstCard = self._config.searchCard(self._config.get("screensaver.defaultCard"))
|
||||||
if dstCard is not None:
|
if dstCard is not None:
|
||||||
self._previous_cards = []
|
self._previous_cards = []
|
||||||
self._current_card = dstCard
|
self._previous_cards.append(dstCard)
|
||||||
# check for double tap if configured and render current page
|
# check for double tap if configured and render current page
|
||||||
if self._config.get("screensaver.doubleTapToUnlock") and int(value) >= 2:
|
if self._config.get("screensaver.doubleTapToUnlock") and int(value) >= 2:
|
||||||
|
self._current_card = self._previous_cards.pop()
|
||||||
self._pages_gen.render_card(self._current_card)
|
self._pages_gen.render_card(self._current_card)
|
||||||
elif not self._config.get("screensaver.doubleTapToUnlock"):
|
elif not self._config.get("screensaver.doubleTapToUnlock"):
|
||||||
|
self._current_card = self._previous_cards.pop()
|
||||||
self._pages_gen.render_card(self._current_card)
|
self._pages_gen.render_card(self._current_card)
|
||||||
return
|
return
|
||||||
|
|
||||||
if button_type == "sleepReached":
|
if button_type == "sleepReached":
|
||||||
self._pages_gen.generate_screensaver_page()
|
self._previous_cards.append(self._current_card)
|
||||||
|
self._current_card = self._config._config_screensaver
|
||||||
|
self._pages_gen.render_card(self._current_card)
|
||||||
return
|
return
|
||||||
|
|
||||||
if button_type == "bExit":
|
if button_type == "bExit":
|
||||||
|
|||||||
@@ -55,3 +55,11 @@ def get_attr_safe(entity, attr, default):
|
|||||||
if res is None:
|
if res is None:
|
||||||
res = default
|
res = default
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def dict_recursive_update(source: dict, target: dict) -> dict:
|
||||||
|
for sk, sv in source.items():
|
||||||
|
if sk in target and isinstance(target[sk], dict):
|
||||||
|
target[sk] = dict_recursive_update(sv, target[sk])
|
||||||
|
else:
|
||||||
|
target[sk] = sv
|
||||||
|
return target
|
||||||
@@ -31,6 +31,7 @@ class LuiMqttListener(object):
|
|||||||
# run action based on received command
|
# run action based on received command
|
||||||
if msg[0] == "event":
|
if msg[0] == "event":
|
||||||
if msg[1] == "startup":
|
if msg[1] == "startup":
|
||||||
|
self._updater.request_berry_driver_version()
|
||||||
display_firmware_version = int(msg[2])
|
display_firmware_version = int(msg[2])
|
||||||
model = None
|
model = None
|
||||||
if display_firmware_version >= 23:
|
if display_firmware_version >= 23:
|
||||||
@@ -54,6 +55,8 @@ class LuiMqttListener(object):
|
|||||||
|
|
||||||
if entity_id == "updateDisplayNoYes" and value == "yes":
|
if entity_id == "updateDisplayNoYes" and value == "yes":
|
||||||
self._updater.update_panel_driver()
|
self._updater.update_panel_driver()
|
||||||
|
if entity_id == "updateBerryNoYes" and value == "yes":
|
||||||
|
self._updater.update_berry_driver()
|
||||||
|
|
||||||
self._controller.button_press(entity_id, btype, value)
|
self._controller.button_press(entity_id, btype, value)
|
||||||
if msg[1] == "pageOpenDetail":
|
if msg[1] == "pageOpenDetail":
|
||||||
|
|||||||
@@ -56,10 +56,6 @@ class LuiPagesGen(object):
|
|||||||
def page_type(self, target_page):
|
def page_type(self, target_page):
|
||||||
self._send_mqtt_msg(f"pageType~{target_page}")
|
self._send_mqtt_msg(f"pageType~{target_page}")
|
||||||
|
|
||||||
def generate_screensaver_page(self):
|
|
||||||
self.page_type("screensaver")
|
|
||||||
self.update_screensaver_weather()
|
|
||||||
|
|
||||||
def update_screensaver_weather(self):
|
def update_screensaver_weather(self):
|
||||||
global babel_spec
|
global babel_spec
|
||||||
we_name = self._config._config_screensaver.entity.entityId
|
we_name = self._config._config_screensaver.entity.entityId
|
||||||
@@ -340,6 +336,7 @@ class LuiPagesGen(object):
|
|||||||
# Switch to page
|
# Switch to page
|
||||||
if send_page_type:
|
if send_page_type:
|
||||||
self.page_type(card.cardType)
|
self.page_type(card.cardType)
|
||||||
|
|
||||||
if card.cardType in ["cardEntities", "cardGrid"]:
|
if card.cardType in ["cardEntities", "cardGrid"]:
|
||||||
self.generate_entities_page(navigation, card.title, card.entities)
|
self.generate_entities_page(navigation, card.title, card.entities)
|
||||||
return
|
return
|
||||||
@@ -349,9 +346,8 @@ class LuiPagesGen(object):
|
|||||||
self.generate_media_page(navigation, card.entity)
|
self.generate_media_page(navigation, card.entity)
|
||||||
if card.cardType == "cardAlarm":
|
if card.cardType == "cardAlarm":
|
||||||
self.generate_alarm_page(navigation, card.entity)
|
self.generate_alarm_page(navigation, card.entity)
|
||||||
|
|
||||||
if card.cardType == "screensaver":
|
if card.cardType == "screensaver":
|
||||||
self.generate_screensaver_page()
|
self.update_screensaver_weather()
|
||||||
|
|
||||||
|
|
||||||
def generate_light_detail_page(self, entity):
|
def generate_light_detail_page(self, entity):
|
||||||
|
|||||||
@@ -82,12 +82,13 @@ class Updater:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def request_berry_driver_version(self):
|
def request_berry_driver_version(self):
|
||||||
|
self.current_tasmota_driver_version = None
|
||||||
topic = self.topic_send.replace("CustomSend", "GetDriverVersion")
|
topic = self.topic_send.replace("CustomSend", "GetDriverVersion")
|
||||||
self._send_mqtt_msg("X", topic=topic)
|
self._send_mqtt_msg("X", topic=topic)
|
||||||
|
|
||||||
def update_berry_driver(self):
|
def update_berry_driver(self):
|
||||||
topic = self.topic_send.replace("CustomSend", "UpdateDriverVersion")
|
topic = self.topic_send.replace("CustomSend", "Backlog")
|
||||||
self._send_mqtt_msg(self.desired_tasmota_driver_url, topic=topic)
|
self._send_mqtt_msg(f"UpdateDriverVersion {self.desired_tasmota_driver_url}; Restart 1", topic=topic)
|
||||||
def update_panel_driver(self):
|
def update_panel_driver(self):
|
||||||
topic = self.topic_send.replace("CustomSend", "FlashNextion")
|
topic = self.topic_send.replace("CustomSend", "FlashNextion")
|
||||||
self._send_mqtt_msg(self.desired_display_firmware_url, topic=topic)
|
self._send_mqtt_msg(self.desired_display_firmware_url, topic=topic)
|
||||||
|
|||||||
@@ -63,8 +63,8 @@ class NsPanelLovelaceUIManager(hass.Hass):
|
|||||||
|
|
||||||
controller = LuiController(self, cfg, send_mqtt_msg)
|
controller = LuiController(self, cfg, send_mqtt_msg)
|
||||||
|
|
||||||
desired_display_firmware_version = 30
|
desired_display_firmware_version = 32
|
||||||
version = "v2.6.0"
|
version = "v2.7.2"
|
||||||
|
|
||||||
model = cfg.get("model")
|
model = cfg.get("model")
|
||||||
if model == "us-l":
|
if model == "us-l":
|
||||||
@@ -77,7 +77,7 @@ class NsPanelLovelaceUIManager(hass.Hass):
|
|||||||
# eu version
|
# eu version
|
||||||
desired_display_firmware_url = f"http://nspanel.pky.eu/lovelace-ui/github/nspanel-{version}.tft"
|
desired_display_firmware_url = f"http://nspanel.pky.eu/lovelace-ui/github/nspanel-{version}.tft"
|
||||||
|
|
||||||
desired_tasmota_driver_version = 3
|
desired_tasmota_driver_version = 4
|
||||||
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"
|
||||||
|
|
||||||
mode = cfg.get("updateMode")
|
mode = cfg.get("updateMode")
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
|
var Icons = new IconsSelector();
|
||||||
|
|
||||||
const Months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
|
const Months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
|
||||||
const Days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
|
const Days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
|
||||||
const Red: RGB = { red: 255, green: 0, blue: 0 };
|
const Red: RGB = { red: 255, green: 0, blue: 0 };
|
||||||
const White: RGB = { red: 255, green: 255, blue: 255 };
|
const White: RGB = { red: 255, green: 255, blue: 255 };
|
||||||
|
const Yellow: RGB = { red: 253, green: 216, blue: 53 };
|
||||||
|
const Green: RGB = { red: 96, green: 176, blue: 62 }
|
||||||
|
const Brown: RGB = { red: 120, green: 80, blue: 59 }
|
||||||
|
const Gray: RGB = { red: 69, green: 69, blue: 69 }
|
||||||
const Off: RGB = { red: 68, green: 115, blue: 158 };
|
const Off: RGB = { red: 68, green: 115, blue: 158 };
|
||||||
const On: RGB = { red: 253, green: 216, blue: 53 };
|
const On: RGB = { red: 253, green: 216, blue: 53 };
|
||||||
const BatteryFull: RGB = { red: 96, green: 176, blue: 62 }
|
const BatteryFull: RGB = { red: 96, green: 176, blue: 62 }
|
||||||
@@ -14,7 +19,7 @@ var Wohnen: PageEntities =
|
|||||||
"heading": "Haus",
|
"heading": "Haus",
|
||||||
"useColor": true,
|
"useColor": true,
|
||||||
"items": [
|
"items": [
|
||||||
<PageItem>{ id: "alias.0.Stern"},
|
<PageItem>{ id: "alias.0.Stern", name: "Sternsteckdose"},
|
||||||
<PageItem>{ id: "alias.0.Erker"},
|
<PageItem>{ id: "alias.0.Erker"},
|
||||||
<PageItem>{ id: "alias.0.Küche", interpolateColor: true },
|
<PageItem>{ id: "alias.0.Küche", interpolateColor: true },
|
||||||
<PageItem>{ id: "alias.0.Wand" }
|
<PageItem>{ id: "alias.0.Wand" }
|
||||||
@@ -27,10 +32,23 @@ var Strom: PageEntities =
|
|||||||
"heading": "Strom",
|
"heading": "Strom",
|
||||||
"useColor": true,
|
"useColor": true,
|
||||||
"items": [
|
"items": [
|
||||||
<PageItem>{ id: "alias.0.Netz", icon: 4, interpolateColor: true, offColor: BatteryFull, onColor: Red , minValue: -1000, maxValue: 1000 },
|
<PageItem>{ id: "alias.0.Netz", icon: "flash", interpolateColor: true, offColor: BatteryFull, onColor: Red, minValue: -1000, maxValue: 1000 },
|
||||||
<PageItem>{ id: "alias.0.Hausverbrauch", icon: 4, interpolateColor: true, offColor: BatteryFull, onColor: Red , maxValue: 1000 },
|
<PageItem>{ id: "alias.0.Hausverbrauch", icon: "flash", interpolateColor: true, offColor: BatteryFull, onColor: Red, maxValue: 1000 },
|
||||||
<PageItem>{ id: "alias.0.Pv", icon: 4, interpolateColor: true, offColor: Off, onColor: BatteryFull , maxValue: 1000 },
|
<PageItem>{ id: "alias.0.Pv", icon: "solar-power", interpolateColor: true, offColor: Off, onColor: BatteryFull, maxValue: 1000 },
|
||||||
<PageItem>{ id: "alias.0.Batterie", icon: 34, interpolateColor: true, offColor: BatteryEmpty, onColor: BatteryFull }
|
<PageItem>{ id: "alias.0.Batterie", icon: "battery-medium", interpolateColor: true, offColor: BatteryEmpty, onColor: BatteryFull }
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
var Müll: PageEntities =
|
||||||
|
{
|
||||||
|
"type": "cardEntities",
|
||||||
|
"heading": "Müllkalender",
|
||||||
|
"useColor": true,
|
||||||
|
"items": [
|
||||||
|
<PageItem>{ id: "alias.0.WzNsPanel.Müll.Bio_Tonne" ,unit:"Tage", icon: "trash-can",onColor: Brown},
|
||||||
|
<PageItem>{ id: "alias.0.WzNsPanel.Müll.Graue_Tonne" ,unit:"Tage",icon: "trash-can",onColor: Gray},
|
||||||
|
<PageItem>{ id: "alias.0.WzNsPanel.Müll.Grüne_Tonne" ,unit:"Tage",icon: "trash-can",onColor: Green},
|
||||||
|
<PageItem>{ id: "alias.0.WzNsPanel.Müll.Gelbe_Tonne" ,unit:"Tage",icon: "trash-can",onColor: Yellow}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -62,10 +80,10 @@ 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",
|
||||||
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: 26, ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: "water-percent", ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
||||||
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: 19, ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: "weather-pouring", ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
||||||
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: 34, ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: "battery-medium", ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
||||||
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: 32, ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: "solar-power", ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
||||||
timeoutScreensaver: 15,
|
timeoutScreensaver: 15,
|
||||||
dimmode: 8,
|
dimmode: 8,
|
||||||
screenSaverDoubleClick: false,
|
screenSaverDoubleClick: false,
|
||||||
@@ -77,12 +95,12 @@ export const config: Config = {
|
|||||||
defaultOnColor: On,
|
defaultOnColor: On,
|
||||||
defaultColor: Off,
|
defaultColor: Off,
|
||||||
temperatureUnit: "°C",
|
temperatureUnit: "°C",
|
||||||
pages: [Wohnen, Strom,
|
pages: [Wohnen, Strom, Müll,
|
||||||
{
|
{
|
||||||
"type": "cardThermo",
|
"type": "cardThermo",
|
||||||
"heading": "Thermostat",
|
"heading": "Thermostat",
|
||||||
"useColor": true,
|
"useColor": true,
|
||||||
"items": [<PageItem>{ id: "alias.0.WzNsPanel" }]
|
"items": [<PageItem>{ id: "alias.0.WzNsPanel", name: "Wohnzimmer" }]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
button1Page: button1Page,
|
button1Page: button1Page,
|
||||||
@@ -90,7 +108,7 @@ export const config: Config = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var subscriptions: any = {};
|
var subscriptions: any = {};
|
||||||
|
var screensaverEnabled : boolean = false;
|
||||||
var pageId = 0;
|
var pageId = 0;
|
||||||
|
|
||||||
schedule("* * * * *", function () {
|
schedule("* * * * *", function () {
|
||||||
@@ -144,24 +162,31 @@ function HandleMessage(typ: string, method: string, page: number, words: Array<s
|
|||||||
if (typ == "event") {
|
if (typ == "event") {
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case "startup":
|
case "startup":
|
||||||
|
screensaverEnabled = false;
|
||||||
UnsubscribeWatcher();
|
UnsubscribeWatcher();
|
||||||
HandleStartupProcess();
|
HandleStartupProcess();
|
||||||
pageId = 0;
|
pageId = 0;
|
||||||
GeneratePage(config.pages[0]);
|
GeneratePage(config.pages[0]);
|
||||||
break;
|
break;
|
||||||
|
case "sleepReached":
|
||||||
|
screensaverEnabled = true;
|
||||||
|
if(pageId < 0)
|
||||||
|
pageId = 0;
|
||||||
|
HandleScreensaver();
|
||||||
|
break;
|
||||||
case "pageOpenDetail":
|
case "pageOpenDetail":
|
||||||
|
screensaverEnabled = false;
|
||||||
UnsubscribeWatcher();
|
UnsubscribeWatcher();
|
||||||
let pageItem = config.pages[pageId].items.find(e => e.id === words[3]);
|
let pageItem = config.pages[pageId].items.find(e => e.id === words[3]);
|
||||||
if (pageItem !== undefined)
|
if (pageItem !== undefined)
|
||||||
SendToPanel(GenerateDetailPage(words[2], pageItem));
|
SendToPanel(GenerateDetailPage(words[2], pageItem));
|
||||||
case "buttonPress2":
|
case "buttonPress2":
|
||||||
|
screensaverEnabled = false;
|
||||||
HandleButtonEvent(words);
|
HandleButtonEvent(words);
|
||||||
break;
|
break;
|
||||||
case "screensaverOpen":
|
|
||||||
HandleScreensaver();
|
|
||||||
break;
|
|
||||||
case "button1":
|
case "button1":
|
||||||
case "button2":
|
case "button2":
|
||||||
|
screensaverEnabled = false;
|
||||||
HandleHardwareButton(method);
|
HandleHardwareButton(method);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -187,9 +212,11 @@ function HandleHardwareButton(method: string): void {
|
|||||||
let page: (PageThermo | PageEntities | PageGrid);
|
let page: (PageThermo | PageEntities | PageGrid);
|
||||||
if (config.button1Page !== null && method == "button1") {
|
if (config.button1Page !== null && method == "button1") {
|
||||||
page = config.button1Page;
|
page = config.button1Page;
|
||||||
|
pageId = -1;
|
||||||
}
|
}
|
||||||
else if (config.button2Page !== null && method == "button2") {
|
else if (config.button2Page !== null && method == "button2") {
|
||||||
page = config.button2Page;
|
page = config.button2Page;
|
||||||
|
pageId = -2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return;
|
return;
|
||||||
@@ -200,8 +227,8 @@ function HandleHardwareButton(method: string): void {
|
|||||||
function HandleStartupProcess(): void {
|
function HandleStartupProcess(): void {
|
||||||
SendDate();
|
SendDate();
|
||||||
SendTime();
|
SendTime();
|
||||||
SendToPanel({ payload: "timeout," + config.timeoutScreensaver });
|
SendToPanel({ payload: "timeout~" + config.timeoutScreensaver });
|
||||||
SendToPanel({ payload: "dimmode," + config.dimmode });
|
SendToPanel({ payload: "dimmode~" + config.dimmode });
|
||||||
}
|
}
|
||||||
|
|
||||||
function SendDate(): void {
|
function SendDate(): void {
|
||||||
@@ -210,7 +237,7 @@ function SendDate(): void {
|
|||||||
var date = d.getDate();
|
var date = d.getDate();
|
||||||
var month = Months[d.getMonth()];
|
var month = Months[d.getMonth()];
|
||||||
var year = d.getFullYear();
|
var year = d.getFullYear();
|
||||||
var _sendDate = "date,?" + day + " " + date + " " + month + " " + year;
|
var _sendDate = "date~" + day + " " + date + " " + month + " " + year;
|
||||||
SendToPanel(<Payload>{ payload: _sendDate });
|
SendToPanel(<Payload>{ payload: _sendDate });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,28 +252,40 @@ function SendTime(): void {
|
|||||||
if (d.getMinutes() < 10) {
|
if (d.getMinutes() < 10) {
|
||||||
min = "0" + d.getMinutes().toString();
|
min = "0" + d.getMinutes().toString();
|
||||||
}
|
}
|
||||||
SendToPanel(<Payload>{ payload: "time," + hr + ":" + min });
|
SendToPanel(<Payload>{ payload: "time~" + hr + ":" + min });
|
||||||
}
|
}
|
||||||
|
|
||||||
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" }]
|
||||||
out_msgs.push({ payload: GeneratePageElements(page.items, 4, page.useColor) });
|
out_msgs.push({ payload: GeneratePageElements(page) });
|
||||||
return out_msgs
|
return out_msgs
|
||||||
}
|
}
|
||||||
|
|
||||||
function GenerateGridPage(page: PageGrid): Payload[] {
|
function GenerateGridPage(page: PageGrid): Payload[] {
|
||||||
var out_msgs: Array<Payload> = [];
|
var out_msgs: Array<Payload> = [];
|
||||||
out_msgs = [{ payload: "pageType,cardGrid" }, { payload: "entityUpdHeading," + page.heading }]
|
out_msgs = [{ payload: "pageType~cardGrid" }]
|
||||||
out_msgs.push({ payload: GeneratePageElements(page.items, 6, page.useColor) });
|
out_msgs.push({ payload: GeneratePageElements(page) });
|
||||||
return out_msgs
|
return out_msgs
|
||||||
}
|
}
|
||||||
|
|
||||||
function GeneratePageElements(pageItems: PageItem[], maxItems: number, useColors: boolean = false): string {
|
function GeneratePageElements(page: Page): string {
|
||||||
let pageData = "entityUpd";
|
let maxItems = 0;
|
||||||
|
switch (page.type) {
|
||||||
|
case "cardThermo":
|
||||||
|
maxItems = 1;
|
||||||
|
break;
|
||||||
|
case "cardEntities":
|
||||||
|
maxItems = 4;
|
||||||
|
break;
|
||||||
|
case "cardGrid":
|
||||||
|
maxItems = 6;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
let pageData = "entityUpd~" + page.heading + "~" + GetNavigationString(pageId)
|
||||||
for (let index = 0; index < maxItems; index++) {
|
for (let index = 0; index < maxItems; index++) {
|
||||||
if (pageItems[index] !== undefined) {
|
if (page.items[index] !== undefined) {
|
||||||
pageData += CreateEntity(pageItems[index], index + 1, useColors);
|
pageData += CreateEntity(page.items[index], index + 1, page.useColor);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pageData += CreateEntity(<PageItem>{ id: "delete" }, index + 1);
|
pageData += CreateEntity(<PageItem>{ id: "delete" }, index + 1);
|
||||||
@@ -256,9 +295,9 @@ function GeneratePageElements(pageItems: PageItem[], maxItems: number, useColors
|
|||||||
}
|
}
|
||||||
|
|
||||||
function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean = false): string {
|
function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean = false): string {
|
||||||
var iconId = 0
|
var iconId = "0"
|
||||||
if (pageItem.id == "delete") {
|
if (pageItem.id == "delete") {
|
||||||
return ",delete,,,,,"
|
return "~delete~~~~~"
|
||||||
}
|
}
|
||||||
var name: string;
|
var name: string;
|
||||||
var type: string;
|
var type: string;
|
||||||
@@ -266,7 +305,7 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
if (existsObject(pageItem.id)) {
|
if (existsObject(pageItem.id)) {
|
||||||
let o = getObject(pageItem.id)
|
let o = getObject(pageItem.id)
|
||||||
var val = null;
|
var val = null;
|
||||||
name = o.common.name.de
|
name = pageItem.name !== undefined ? pageItem.name : o.common.name.de
|
||||||
|
|
||||||
if (existsState(pageItem.id + ".GET")) {
|
if (existsState(pageItem.id + ".GET")) {
|
||||||
val = getState(pageItem.id + ".GET").val;
|
val = getState(pageItem.id + ".GET").val;
|
||||||
@@ -279,9 +318,10 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
var iconColor = rgb_dec565(config.defaultColor);
|
var iconColor = rgb_dec565(config.defaultColor);
|
||||||
|
|
||||||
switch (o.common.role) {
|
switch (o.common.role) {
|
||||||
|
case "socket":
|
||||||
case "light":
|
case "light":
|
||||||
type = "light"
|
type = "light"
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 1;
|
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : o.common.role == "socket" ? Icons.GetIcon("power-socket-de") : Icons.GetIcon("lightbulb");
|
||||||
var optVal = "0"
|
var optVal = "0"
|
||||||
|
|
||||||
if (val === true || val === "true") {
|
if (val === true || val === "true") {
|
||||||
@@ -289,11 +329,11 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
iconColor = GetIconColor(pageItem, true, useColors);
|
iconColor = GetIconColor(pageItem, true, useColors);
|
||||||
}
|
}
|
||||||
|
|
||||||
return "," + type + "," + pageItem.id + "," + iconId + "," + iconColor + "," + name + "," + optVal;
|
return "~" + type + "~" + pageItem.id + "~" + iconId + "~" + iconColor + "~" + name + "~" + optVal;
|
||||||
|
|
||||||
case "dimmer":
|
case "dimmer":
|
||||||
type = "light"
|
type = "light"
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 1;
|
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("lightbulb");
|
||||||
var optVal = "0"
|
var optVal = "0"
|
||||||
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
||||||
val = getState(pageItem.id + ".ON_ACTUAL").val;
|
val = getState(pageItem.id + ".ON_ACTUAL").val;
|
||||||
@@ -308,53 +348,53 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
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 + "," + optVal;
|
return "~" + type + "~" + pageItem.id + "~" + iconId + "~" + iconColor + "~" + name + "~" + optVal;
|
||||||
|
|
||||||
case "blind":
|
case "blind":
|
||||||
type = "shutter"
|
type = "shutter"
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 11;
|
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("window-open");
|
||||||
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":
|
case "thermostat":
|
||||||
type = "text";
|
type = "text";
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : o.common.role == "value.temperature" || o.common.role == "thermostat" ? 2 : 0;
|
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : o.common.role == "value.temperature" || o.common.role == "thermostat" ? Icons.GetIcon("thermometer") : Icons.GetIcon("information-outline");
|
||||||
let unit = "";
|
let unit = "";
|
||||||
var optVal = "0"
|
var optVal = "0"
|
||||||
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
||||||
optVal = getState(pageItem.id + ".ON_ACTUAL").val;
|
optVal = getState(pageItem.id + ".ON_ACTUAL").val;
|
||||||
unit = GetUnitOfMeasurement(pageItem.id + ".ON_ACTUAL");
|
unit = pageItem.unit !== undefined ? pageItem.unit : GetUnitOfMeasurement(pageItem.id + ".ON_ACTUAL");
|
||||||
RegisterEntityWatcher(pageItem.id + ".ON_ACTUAL");
|
RegisterEntityWatcher(pageItem.id + ".ON_ACTUAL");
|
||||||
}
|
}
|
||||||
else if (existsState(pageItem.id + ".ACTUAL")) {
|
else if (existsState(pageItem.id + ".ACTUAL")) {
|
||||||
optVal = getState(pageItem.id + ".ACTUAL").val;
|
optVal = getState(pageItem.id + ".ACTUAL").val;
|
||||||
unit = GetUnitOfMeasurement(pageItem.id + ".ACTUAL");
|
unit = pageItem.unit !== undefined ? pageItem.unit : GetUnitOfMeasurement(pageItem.id + ".ACTUAL");
|
||||||
RegisterEntityWatcher(pageItem.id + ".ACTUAL");
|
RegisterEntityWatcher(pageItem.id + ".ACTUAL");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (o.common.role == "value.temperature") {
|
if (o.common.role == "value.temperature") {
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 2;
|
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("thermometer");
|
||||||
}
|
}
|
||||||
|
|
||||||
iconColor = GetIconColor(pageItem, parseInt(optVal), useColors);
|
iconColor = GetIconColor(pageItem, parseInt(optVal), useColors);
|
||||||
|
|
||||||
return "," + type + "," + pageItem.id + "," + iconId + "," + iconColor + "," + name + "," + optVal + " " + unit;
|
return "~" + type + "~" + pageItem.id + "~" + iconId + "~" + iconColor + "~" + name + "~" + optVal + " " + unit;
|
||||||
|
|
||||||
case "button":
|
case "button":
|
||||||
type = "button";
|
type = "button";
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 3;
|
iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon("gesture-tap-button");
|
||||||
let buttonText = pageItem.buttonText !== undefined ? pageItem.buttonText : "PRESS";
|
let buttonText = pageItem.name !== undefined ? pageItem.name : "PRESS";
|
||||||
iconColor = GetIconColor(pageItem, true, useColors);
|
iconColor = GetIconColor(pageItem, true, useColors);
|
||||||
return "," + type + "," + pageItem.id + "," + iconId + "," + + iconColor + "," + name + "," + buttonText;
|
return "~" + type + "~" + pageItem.id + "~" + iconId + "~" + + iconColor + "~" + name + "~" + buttonText;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return ",delete,,,,";
|
return "~delete~~~~~";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ",delete,,,,,"
|
return "~delete~~~~~"
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetIconColor(pageItem: PageItem, value: (boolean | number), useColors: boolean): number {
|
function GetIconColor(pageItem: PageItem, value: (boolean | number), useColors: boolean): number {
|
||||||
@@ -384,8 +424,12 @@ function RegisterEntityWatcher(id: string): void {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
subscriptions[id] = (on({ id: id, change: 'any' }, function (data) {
|
subscriptions[id] = (on({ id: id, change: 'any' }, function (data) {
|
||||||
log("RegisterEntityWatcher PageId:" + pageId.toString())
|
if(pageId >= 0)
|
||||||
GeneratePage(config.pages[pageId]);
|
SendToPanel({ payload: GeneratePageElements(config.pages[pageId]) });
|
||||||
|
if(pageId == -1 && config.button1Page != undefined)
|
||||||
|
SendToPanel({ payload: GeneratePageElements(config.button1Page) });
|
||||||
|
if(pageId == -2 && config.button2Page != undefined)
|
||||||
|
SendToPanel({ payload: GeneratePageElements(config.button2Page) });
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,15 +461,15 @@ function GetUnitOfMeasurement(id: string): string {
|
|||||||
function GenerateThermoPage(page: PageThermo): Payload[] {
|
function GenerateThermoPage(page: PageThermo): Payload[] {
|
||||||
var id = page.items[0].id
|
var id = page.items[0].id
|
||||||
var out_msgs: Array<Payload> = [];
|
var out_msgs: Array<Payload> = [];
|
||||||
out_msgs.push({ payload: "pageType,cardThermo" });
|
out_msgs.push({ payload: "pageType~cardThermo" });
|
||||||
|
|
||||||
// ioBroker
|
// ioBroker
|
||||||
if (existsObject(id)) {
|
if (existsObject(id)) {
|
||||||
let o = getObject(id)
|
let o = getObject(id)
|
||||||
let name = o.common.name.de
|
let name = page.items[0].name !== undefined ? page.items[0].name : o.common.name.de
|
||||||
let currentTemp = 0;
|
let currentTemp = 0;
|
||||||
if (existsState(id + ".ACTUAL"))
|
if (existsState(id + ".ACTUAL"))
|
||||||
currentTemp = parseInt(getState(id + ".ACTUAL").val) * 10;
|
currentTemp = (Math.round(parseFloat(getState(id + ".ACTUAL").val) * 10)/10)*10;
|
||||||
|
|
||||||
let destTemp = 0;
|
let destTemp = 0;
|
||||||
if (existsState(id + ".SET")) {
|
if (existsState(id + ".SET")) {
|
||||||
@@ -441,7 +485,7 @@ function GenerateThermoPage(page: PageThermo): Payload[] {
|
|||||||
let maxTemp = 300
|
let maxTemp = 300
|
||||||
let stepTemp = 5
|
let stepTemp = 5
|
||||||
|
|
||||||
out_msgs.push({ payload: "entityUpd," + id + "," + name + "," + currentTemp + "," + destTemp + "," + status + "," + minTemp + "," + maxTemp + "," + stepTemp })
|
out_msgs.push({ payload: "entityUpd~" + name + "~" + GetNavigationString(pageId) + "~" + id + "~" + currentTemp + "~" + destTemp + "~" + status + "~" + minTemp + "~" + maxTemp + "~" + stepTemp })
|
||||||
}
|
}
|
||||||
|
|
||||||
return out_msgs
|
return out_msgs
|
||||||
@@ -537,6 +581,19 @@ function HandleButtonEvent(words): void {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function GetNavigationString(pageId: number): string {
|
||||||
|
switch (pageId) {
|
||||||
|
case 0:
|
||||||
|
return "0|1";
|
||||||
|
case config.pages.length - 1:
|
||||||
|
return "1|0";
|
||||||
|
case -1:
|
||||||
|
return "0|0";
|
||||||
|
default:
|
||||||
|
return "1|1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
|
function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
|
||||||
|
|
||||||
@@ -545,7 +602,7 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
|
|||||||
if (existsObject(id)) {
|
if (existsObject(id)) {
|
||||||
var o = getObject(id)
|
var o = getObject(id)
|
||||||
var val: (boolean | number) = 0;
|
var val: (boolean | number) = 0;
|
||||||
let icon = 1;
|
let icon = Icons.GetIcon("lightbulb");
|
||||||
var iconColor = rgb_dec565(config.defaultColor);
|
var iconColor = rgb_dec565(config.defaultColor);
|
||||||
if (type == "popupLight") {
|
if (type == "popupLight") {
|
||||||
let switchVal = "0"
|
let switchVal = "0"
|
||||||
@@ -564,7 +621,7 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
|
|||||||
iconColor = GetIconColor(pageItem, true, false);
|
iconColor = GetIconColor(pageItem, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
out_msgs.push({ payload: "entityUpdateDetail," + icon + "," + + iconColor + "," + switchVal + ",disable,disable,disable" })
|
out_msgs.push({ payload: "entityUpdateDetail~" + icon + "~" + + iconColor + "~" + switchVal + ",disable,disable,disable" })
|
||||||
}
|
}
|
||||||
|
|
||||||
if (o.common.role == "dimmer") {
|
if (o.common.role == "dimmer") {
|
||||||
@@ -594,7 +651,7 @@ function GenerateDetailPage(type: string, pageItem: PageItem): Payload[] {
|
|||||||
//if (attr_support_color.includes("color_temp"))
|
//if (attr_support_color.includes("color_temp"))
|
||||||
// colortemp = Math.trunc(scale(attr.color_temp, attr.min_mireds, attr.max_mireds, 0, 100))
|
// colortemp = Math.trunc(scale(attr.color_temp, attr.min_mireds, attr.max_mireds, 0, 100))
|
||||||
|
|
||||||
out_msgs.push({ payload: "entityUpdateDetail," + icon + "," + iconColor + "," + switchVal + "," + brightness + "," + colorTemp + "," + colorMode })
|
out_msgs.push({ payload: "entityUpdateDetail~" + icon + "~" + iconColor + "~" + switchVal + "~" + brightness + "~" + colorTemp + "~" + colorMode })
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -622,12 +679,13 @@ function UnsubscribeWatcher(): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function HandleScreensaver(): void {
|
function HandleScreensaver(): void {
|
||||||
|
SendToPanel({ payload: "pageType~screensaver"})
|
||||||
UnsubscribeWatcher();
|
UnsubscribeWatcher();
|
||||||
HandleScreensaverUpdate();
|
HandleScreensaverUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
function HandleScreensaverUpdate(): void {
|
function HandleScreensaverUpdate(): void {
|
||||||
if (config.weatherEntity != null && existsObject(config.weatherEntity)) {
|
if (screensaverEnabled && config.weatherEntity != null && existsObject(config.weatherEntity)) {
|
||||||
var icon = getState(config.weatherEntity + ".ICON").val;
|
var icon = getState(config.weatherEntity + ".ICON").val;
|
||||||
|
|
||||||
let temperature: string =
|
let temperature: string =
|
||||||
@@ -635,8 +693,8 @@ function HandleScreensaverUpdate(): void {
|
|||||||
existsState(config.weatherEntity + ".TEMP") ? getState(config.weatherEntity + ".TEMP").val : "null";
|
existsState(config.weatherEntity + ".TEMP") ? getState(config.weatherEntity + ".TEMP").val : "null";
|
||||||
|
|
||||||
let payloadString =
|
let payloadString =
|
||||||
"weatherUpdate,?" + GetAccuWeatherIcon(parseInt(icon)) + "?"
|
"weatherUpdate~" + Icons.GetIcon(GetAccuWeatherIcon(parseInt(icon))) + "~"
|
||||||
+ temperature + " " + config.temperatureUnit + "?"
|
+ temperature + " " + config.temperatureUnit + "~"
|
||||||
|
|
||||||
payloadString += GetScreenSaverEntityString(config.firstScreensaverEntity);
|
payloadString += GetScreenSaverEntityString(config.firstScreensaverEntity);
|
||||||
payloadString += GetScreenSaverEntityString(config.secondScreensaverEntity);
|
payloadString += GetScreenSaverEntityString(config.secondScreensaverEntity);
|
||||||
@@ -650,54 +708,54 @@ function HandleScreensaverUpdate(): void {
|
|||||||
function GetScreenSaverEntityString(configElement: ScreenSaverElement | null): string {
|
function GetScreenSaverEntityString(configElement: ScreenSaverElement | null): string {
|
||||||
if (configElement != null && configElement.ScreensaverEntity != null && existsState(configElement.ScreensaverEntity)) {
|
if (configElement != null && configElement.ScreensaverEntity != null && existsState(configElement.ScreensaverEntity)) {
|
||||||
let u1 = getState(configElement.ScreensaverEntity).val;
|
let u1 = getState(configElement.ScreensaverEntity).val;
|
||||||
return configElement.ScreensaverEntityText + "?" + configElement.ScreensaverEntityIcon + "?" + u1 + " " + configElement.ScreensaverEntityUnitText + "?";
|
return configElement.ScreensaverEntityText + "~" + Icons.GetIcon(configElement.ScreensaverEntityIcon) + "~" + u1 + " " + configElement.ScreensaverEntityUnitText + "~";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return "???";
|
return "~~~";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetAccuWeatherIcon(icon: number): number {
|
function GetAccuWeatherIcon(icon: number): string {
|
||||||
switch (icon) {
|
switch (icon) {
|
||||||
case 24: // Ice
|
case 24: // Ice
|
||||||
case 30: // Hot
|
case 30: // Hot
|
||||||
case 31: // Cold
|
case 31: // Cold
|
||||||
return 11; // exceptional
|
return "window-open"; // exceptional
|
||||||
|
|
||||||
case 7: // Cloudy
|
case 7: // Cloudy
|
||||||
case 8: // Dreary (Overcast)
|
case 8: // Dreary (Overcast)
|
||||||
case 38: // Mostly Cloudy
|
case 38: // Mostly Cloudy
|
||||||
return 12; // cloudy
|
return "weather-cloudy"; // cloudy
|
||||||
|
|
||||||
case 11: // fog
|
case 11: // fog
|
||||||
return 13; // fog
|
return "weather-fog"; // fog
|
||||||
|
|
||||||
case 25: // Sleet
|
case 25: // Sleet
|
||||||
return 14; // Hail
|
return "weather-hail"; // Hail
|
||||||
|
|
||||||
case 15: // T-Storms
|
case 15: // T-Storms
|
||||||
return 15; // lightning
|
return "weather-lightning"; // lightning
|
||||||
|
|
||||||
case 16: // Mostly Cloudy w/ T-Storms
|
case 16: // Mostly Cloudy w/ T-Storms
|
||||||
case 17: // Partly Sunny w/ T-Storms
|
case 17: // Partly Sunny w/ T-Storms
|
||||||
case 41: // Partly Cloudy w/ T-Storms
|
case 41: // Partly Cloudy w/ T-Storms
|
||||||
case 42: // Mostly Cloudy w/ T-Storms
|
case 42: // Mostly Cloudy w/ T-Storms
|
||||||
return 16; // lightning-rainy
|
return "weather-lightning-rainy"; // lightning-rainy
|
||||||
|
|
||||||
case 33: // Clear
|
case 33: // Clear
|
||||||
case 34: // Mostly Clear
|
case 34: // Mostly Clear
|
||||||
case 37: // Hazy Moonlight
|
case 37: // Hazy Moonlight
|
||||||
return 17;
|
return "weather-night";
|
||||||
|
|
||||||
case 3: // Partly Sunny
|
case 3: // Partly Sunny
|
||||||
case 4: // Intermittent Clouds
|
case 4: // Intermittent Clouds
|
||||||
case 6: // Mostly Cloudy
|
case 6: // Mostly Cloudy
|
||||||
case 35: // Partly Cloudy
|
case 35: // Partly Cloudy
|
||||||
case 36: // Intermittent Clouds
|
case 36: // Intermittent Clouds
|
||||||
return 18; // partlycloudy
|
return "weather-partly-cloudy"; // partlycloudy
|
||||||
|
|
||||||
case 18: // pouring
|
case 18: // pouring
|
||||||
return 19; // pouring
|
return "weather-pouring"; // pouring
|
||||||
|
|
||||||
case 12: // Showers
|
case 12: // Showers
|
||||||
case 13: // Mostly Cloudy w/ Showers
|
case 13: // Mostly Cloudy w/ Showers
|
||||||
@@ -705,7 +763,7 @@ function GetAccuWeatherIcon(icon: number): number {
|
|||||||
case 26: // Freezing Rain
|
case 26: // Freezing Rain
|
||||||
case 39: // Partly Cloudy w/ Showers
|
case 39: // Partly Cloudy w/ Showers
|
||||||
case 40: // Mostly Cloudy w/ Showers
|
case 40: // Mostly Cloudy w/ Showers
|
||||||
return 20; // rainy
|
return "weather-rainy"; // rainy
|
||||||
|
|
||||||
case 19: // Flurries
|
case 19: // Flurries
|
||||||
case 20: // Mostly Cloudy w/ Flurries
|
case 20: // Mostly Cloudy w/ Flurries
|
||||||
@@ -714,21 +772,21 @@ function GetAccuWeatherIcon(icon: number): number {
|
|||||||
case 23: // Mostly Cloudy w/ Snow
|
case 23: // Mostly Cloudy w/ Snow
|
||||||
case 43: // Mostly Cloudy w/ Flurries
|
case 43: // Mostly Cloudy w/ Flurries
|
||||||
case 44: // Mostly Cloudy w/ Snow
|
case 44: // Mostly Cloudy w/ Snow
|
||||||
return 21; // snowy
|
return "weather-snowy"; // snowy
|
||||||
|
|
||||||
case 29: // Rain and Snow
|
case 29: // Rain and Snow
|
||||||
return 22; // snowy-rainy
|
return "weather-snowy-rainy"; // snowy-rainy
|
||||||
|
|
||||||
case 1: // Sunny
|
case 1: // Sunny
|
||||||
case 2: // Mostly Sunny
|
case 2: // Mostly Sunny
|
||||||
case 5: // Hazy Sunshine
|
case 5: // Hazy Sunshine
|
||||||
return 23; // sunny
|
return "weather-sunny"; // sunny
|
||||||
|
|
||||||
case 32: // windy
|
case 32: // windy
|
||||||
return 24; // windy
|
return "weather-windy"; // windy
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 1;
|
return "alert-circle-outline";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -787,14 +845,15 @@ interface PageThermo extends Page {
|
|||||||
|
|
||||||
type PageItem = {
|
type PageItem = {
|
||||||
id: string,
|
id: string,
|
||||||
icon: (number | undefined),
|
icon: (string | undefined),
|
||||||
onColor: (RGB | undefined),
|
onColor: (RGB | undefined),
|
||||||
offColor: (RGB | undefined),
|
offColor: (RGB | undefined),
|
||||||
useColor: (boolean | undefined),
|
useColor: (boolean | undefined),
|
||||||
interpolateColor: (boolean | undefined),
|
interpolateColor: (boolean | undefined),
|
||||||
minValue: (number | undefined),
|
minValue: (number | undefined),
|
||||||
maxValue: (number | undefined),
|
maxValue: (number | undefined),
|
||||||
buttonText: (string | undefined)
|
name: (string | undefined),
|
||||||
|
unit: (string | undefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Config = {
|
type Config = {
|
||||||
@@ -823,7 +882,7 @@ type Config = {
|
|||||||
|
|
||||||
type ScreenSaverElement = {
|
type ScreenSaverElement = {
|
||||||
ScreensaverEntity: string | null,
|
ScreensaverEntity: string | null,
|
||||||
ScreensaverEntityIcon: number | null,
|
ScreensaverEntityIcon: string | null,
|
||||||
ScreensaverEntityText: string | null,
|
ScreensaverEntityText: string | null,
|
||||||
ScreensaverEntityUnitText: string | null,
|
ScreensaverEntityUnitText: string | null,
|
||||||
}
|
}
|
||||||
@@ -32,18 +32,8 @@ You can find this in the device raw settings.
|
|||||||
- Create a state with a mqtt client or create one per hand. The mqtt adapter will not create the state CustomSend
|
- Create a state with a mqtt client or create one per hand. The mqtt adapter will not create the state CustomSend
|
||||||
- you only need to send a dummy message to cmnd/<yourPanel>/CustomSend
|
- you only need to send a dummy message to cmnd/<yourPanel>/CustomSend
|
||||||
- then the state will be created
|
- then the state will be created
|
||||||
|
- Put the file icon_mapping.ts in the global folder
|
||||||
|
|
||||||
## Update the screensaver string
|
|
||||||
The screensaver string which is send to the display looks something like this:
|
|
||||||
weatherUpdate,?23?11 °C?26?54%?Batterie?4?12 %?PV?23?123W
|
|
||||||
All fields are seperated by a question mark. In detail the fields are:
|
|
||||||
weatherUpdate,?Icon?Text?Icon (default humidity)?Text next to the last icon?Text for the left icon on the right side?Icon?Text under the icon?Text for the right icon on the left side?Icon?Text under the icon
|
|
||||||
|
|
||||||
See the icons currently usable in the following table:
|
|
||||||
|
|
||||||
[Icon Table](../HMI#icons-ids)
|
|
||||||
|
|
||||||
You can change the string and devices in the config object.
|
|
||||||
|
|
||||||
## Hardware buttons
|
## Hardware buttons
|
||||||
If you like you can add special pages for the buttons.
|
If you like you can add special pages for the buttons.
|
||||||
@@ -66,11 +56,11 @@ 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.
|
||||||
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: 26, ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: "water-percent", ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
||||||
// Items which should be presented on the screensaver page
|
// Items which should be presented on the screensaver page
|
||||||
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: 19, ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: "weather-pouring", ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
||||||
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: 34, ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: "battery-medium", ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
||||||
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: 32, ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: "solar-power", ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
||||||
screenSaverDoubleClick: false, // Doubletouch needed for leaving screensaver.
|
screenSaverDoubleClick: false, // Doubletouch needed for leaving screensaver.
|
||||||
timeoutScreensaver: 15, // Timeout for screensaver
|
timeoutScreensaver: 15, // Timeout for screensaver
|
||||||
dimmode: 8, // Display dim
|
dimmode: 8, // Display dim
|
||||||
@@ -82,45 +72,12 @@ 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,
|
pages: [Wohnen, Strom,
|
||||||
{
|
{
|
||||||
"type": "cardThermo",
|
"type": "cardThermo",
|
||||||
"heading": "Thermostat",
|
"heading": "Thermostat",
|
||||||
"useColor": true,
|
"useColor": true,
|
||||||
"items": [<PageItem>{ id: "alias.0.WzNsPanel" }]
|
"items": [<PageItem>{ id: "alias.0.WzNsPanel" }]
|
||||||
=======
|
|
||||||
pages: [
|
|
||||||
{
|
|
||||||
"type": "cardEntities", // card type (cardEntities, cardThermo)
|
|
||||||
"heading": "Testseite", // heading
|
|
||||||
"useColor": false, // should colors be enabled on this page, can be overridden in PageItem
|
|
||||||
"items": [ // items array (up to 4 on cardEntities, 1 for cardThermo)
|
|
||||||
<PageItem>{ id: "alias.0.Rolladen_Eltern" }, // device which must be configured in the device panel. Use only the folder for the device, not the set, get states ...
|
|
||||||
<PageItem>{ id: "alias.0.Erker" },
|
|
||||||
<PageItem>{ id: "alias.0.Küche", useColor: true },
|
|
||||||
<PageItem>{ id: "alias.0.Wand", useColor: true }
|
|
||||||
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "cardEntities",
|
|
||||||
"heading": "Strom",
|
|
||||||
"useColor": true, // should colors be enabled on this page, can be overridden in PageItem
|
|
||||||
"items": [
|
|
||||||
<PageItem>{ id: "alias.0.Netz" },
|
|
||||||
<PageItem>{ id: "alias.0.Hausverbrauch", icon: 4, interpolateColor: true, offColor: BatteryFull, onColor: Red , maxValue: 1000 },
|
|
||||||
<PageItem>{ id: "alias.0.Pv" },
|
|
||||||
<PageItem>{ id: "alias.0.Batterie", icon: 34, interpolateColor: true, offColor: BatteryEmpty, onColor: BatteryFull }
|
|
||||||
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "cardThermo",
|
|
||||||
"heading": "Thermostat",
|
|
||||||
"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
|
|
||||||
>>>>>>> 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
|
||||||
@@ -139,7 +96,8 @@ type PageItem = {
|
|||||||
interpolateColor: (boolean | undefined),// fade between color on and off, useColor on Page or PageItem must be enabled
|
interpolateColor: (boolean | undefined),// fade between color on and off, useColor on Page or PageItem must be enabled
|
||||||
minValue: (number | undefined), // the minimum value for the fade calculation, if smaller the minimum value will be used
|
minValue: (number | undefined), // the minimum value for the fade calculation, if smaller the minimum value will be used
|
||||||
maxValue: (number | undefined), // the maximum value for the fade calculation, if larger the maximum value will be used
|
maxValue: (number | undefined), // the maximum value for the fade calculation, if larger the maximum value will be used
|
||||||
buttonText: (string | undefined) // the Button Text, default is "Press"
|
name: (string | undefined), // the Name which should be displayed, default is the name of the object itself
|
||||||
|
unit: (string | undefined) // the unit which should be displayed, default is the unit of the object itself
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -170,10 +128,10 @@ pages: [
|
|||||||
"heading": "Strom",
|
"heading": "Strom",
|
||||||
"useColor": true, // should colors be enabled on this page, can be overridden in PageItem
|
"useColor": true, // should colors be enabled on this page, can be overridden in PageItem
|
||||||
"items": [
|
"items": [
|
||||||
<PageItem>{ id: "alias.0.Netz" },
|
<PageItem>{ id: "alias.0.Netz", icon: "flash", interpolateColor: true, offColor: BatteryFull, onColor: Red, minValue: -1000, maxValue: 1000 },
|
||||||
<PageItem>{ id: "alias.0.Hausverbrauch" },
|
<PageItem>{ id: "alias.0.Hausverbrauch", icon: "flash", interpolateColor: true, offColor: BatteryFull, onColor: Red, maxValue: 1000 },
|
||||||
<PageItem>{ id: "alias.0.Pv" },
|
<PageItem>{ id: "alias.0.Pv", name: "Solar" ,icon: "solar-power", interpolateColor: true, offColor: Off, onColor: BatteryFull, maxValue: 1000 },
|
||||||
<PageItem>{ id: "alias.0.Batterie" }
|
<PageItem>{ id: "alias.0.Batterie", icon: "battery-medium", interpolateColor: true, offColor: BatteryEmpty, onColor: BatteryFull }
|
||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
```
|
```
|
||||||
|
|||||||
5131
ioBroker/icon_mapping.ts
Normal file
5131
ioBroker/icon_mapping.ts
Normal file
File diff suppressed because it is too large
Load Diff
388
tasmota/autoexec-oldstable.be
Normal file
388
tasmota/autoexec-oldstable.be
Normal file
@@ -0,0 +1,388 @@
|
|||||||
|
# Sonoff NSPanel Tasmota Lovelace UI Berry Driver | code by joBr99
|
||||||
|
# based on;
|
||||||
|
# Sonoff NSPanel Tasmota (Nextion with Flashing) driver | code by peepshow-21
|
||||||
|
# based on;
|
||||||
|
# Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
|
||||||
|
|
||||||
|
# Example Flash
|
||||||
|
# FlashNextion http://ip-address-of-your-homeassistant:8123/local/nspanel.tft
|
||||||
|
# FlashNextion http://nspanel.pky.eu/lui.tft
|
||||||
|
|
||||||
|
class Nextion : Driver
|
||||||
|
|
||||||
|
static VERSION = "1.1.3"
|
||||||
|
static header = bytes('55BB')
|
||||||
|
|
||||||
|
static flash_block_size = 4096
|
||||||
|
|
||||||
|
var flash_mode
|
||||||
|
var flash_size
|
||||||
|
var flash_written
|
||||||
|
var flash_buff
|
||||||
|
var flash_offset
|
||||||
|
var awaiting_offset
|
||||||
|
var tcp
|
||||||
|
var ser
|
||||||
|
var last_per
|
||||||
|
|
||||||
|
def split_55(b)
|
||||||
|
var ret = []
|
||||||
|
var s = size(b)
|
||||||
|
var i = s-2 # start from last-1
|
||||||
|
while i > 0
|
||||||
|
if b[i] == 0x55 && b[i+1] == 0xBB
|
||||||
|
ret.push(b[i..s-1]) # push last msg to list
|
||||||
|
b = b[(0..i-1)] # write the rest back to b
|
||||||
|
end
|
||||||
|
i -= 1
|
||||||
|
end
|
||||||
|
ret.push(b)
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def crc16(data, poly)
|
||||||
|
if !poly poly = 0xA001 end
|
||||||
|
# CRC-16 MODBUS HASHING ALGORITHM
|
||||||
|
var crc = 0xFFFF
|
||||||
|
for i:0..size(data)-1
|
||||||
|
crc = crc ^ data[i]
|
||||||
|
for j:0..7
|
||||||
|
if crc & 1
|
||||||
|
crc = (crc >> 1) ^ poly
|
||||||
|
else
|
||||||
|
crc = crc >> 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return crc
|
||||||
|
end
|
||||||
|
|
||||||
|
# encode using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
|
||||||
|
def encode(payload)
|
||||||
|
var b = bytes()
|
||||||
|
b += self.header
|
||||||
|
b.add(size(payload), 2) # add size as 2 bytes, little endian
|
||||||
|
b += bytes().fromstring(payload)
|
||||||
|
var msg_crc = self.crc16(b)
|
||||||
|
b.add(msg_crc, 2) # crc 2 bytes, little endian
|
||||||
|
return b
|
||||||
|
end
|
||||||
|
|
||||||
|
def encodenx(payload)
|
||||||
|
var b = bytes().fromstring(payload)
|
||||||
|
b += bytes('FFFFFF')
|
||||||
|
return b
|
||||||
|
end
|
||||||
|
|
||||||
|
def sendnx(payload)
|
||||||
|
import string
|
||||||
|
var payload_bin = self.encodenx(payload)
|
||||||
|
self.ser.write(payload_bin)
|
||||||
|
log(string.format("NXP: Nextion command sent = %s",str(payload_bin)), 3)
|
||||||
|
end
|
||||||
|
|
||||||
|
def send(payload)
|
||||||
|
var payload_bin = self.encode(payload)
|
||||||
|
if self.flash_mode==1
|
||||||
|
log("NXP: skipped command becuase still flashing", 3)
|
||||||
|
else
|
||||||
|
self.ser.write(payload_bin)
|
||||||
|
log("NXP: payload sent = " + str(payload_bin), 3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def write_to_nextion(b)
|
||||||
|
self.ser.write(b)
|
||||||
|
end
|
||||||
|
|
||||||
|
def screeninit()
|
||||||
|
log("NXP: Screen Initialized")
|
||||||
|
self.sendnx("recmod=1")
|
||||||
|
end
|
||||||
|
|
||||||
|
def write_block()
|
||||||
|
|
||||||
|
import string
|
||||||
|
log("FLH: Read block",3)
|
||||||
|
while size(self.flash_buff)<self.flash_block_size && self.tcp.connected()
|
||||||
|
if self.tcp.available()>0
|
||||||
|
self.flash_buff += self.tcp.readbytes()
|
||||||
|
else
|
||||||
|
tasmota.delay(50)
|
||||||
|
log("FLH: Wait for available...",3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
log("FLH: Buff size "+str(size(self.flash_buff)),3)
|
||||||
|
var to_write
|
||||||
|
if size(self.flash_buff)>self.flash_block_size
|
||||||
|
to_write = self.flash_buff[0..self.flash_block_size-1]
|
||||||
|
self.flash_buff = self.flash_buff[self.flash_block_size..]
|
||||||
|
else
|
||||||
|
to_write = self.flash_buff
|
||||||
|
self.flash_buff = bytes()
|
||||||
|
end
|
||||||
|
log("FLH: Writing "+str(size(to_write)),3)
|
||||||
|
var per = (self.flash_written*100)/self.flash_size
|
||||||
|
if (self.last_per!=per)
|
||||||
|
self.last_per = per
|
||||||
|
tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d}}",per), "RESULT")
|
||||||
|
end
|
||||||
|
if size(to_write)>0
|
||||||
|
self.flash_written += size(to_write)
|
||||||
|
if self.flash_offset==0 || self.flash_written>self.flash_offset
|
||||||
|
self.ser.write(to_write)
|
||||||
|
self.flash_offset = 0
|
||||||
|
else
|
||||||
|
tasmota.set_timer(10,/->self.write_block())
|
||||||
|
end
|
||||||
|
end
|
||||||
|
log("FLH: Total "+str(self.flash_written),3)
|
||||||
|
if (self.flash_written==self.flash_size)
|
||||||
|
log("FLH: Flashing complete")
|
||||||
|
self.flash_mode = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def every_100ms()
|
||||||
|
import string
|
||||||
|
if self.ser.available() > 0
|
||||||
|
var msg = self.ser.read()
|
||||||
|
if size(msg) > 0
|
||||||
|
log(string.format("NXP: Received Raw = %s",str(msg)), 3)
|
||||||
|
if (self.flash_mode==1)
|
||||||
|
var strv = msg[0..-4].asstring()
|
||||||
|
if string.find(strv,"comok 2")>=0
|
||||||
|
log("FLH: Send (High Speed) flash start")
|
||||||
|
self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
|
||||||
|
elif size(msg)==1 && msg[0]==0x08
|
||||||
|
log("FLH: Waiting offset...",3)
|
||||||
|
self.awaiting_offset = 1
|
||||||
|
elif size(msg)==4 && self.awaiting_offset==1
|
||||||
|
self.awaiting_offset = 0
|
||||||
|
self.flash_offset = msg.get(0,4)
|
||||||
|
log("FLH: Flash offset marker "+str(self.flash_offset),3)
|
||||||
|
self.write_block()
|
||||||
|
elif size(msg)==1 && msg[0]==0x05
|
||||||
|
self.write_block()
|
||||||
|
else
|
||||||
|
log("FLH: Something has gone wrong flashing display firmware ["+str(msg)+"]",2)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
var msg_list = self.split_55(msg)
|
||||||
|
for i:0..size(msg_list)-1
|
||||||
|
msg = msg_list[i]
|
||||||
|
if size(msg) > 0
|
||||||
|
if msg == bytes('000000FFFFFF88FFFFFF')
|
||||||
|
self.screeninit()
|
||||||
|
elif size(msg)>=2 && msg[0]==0x55 && msg[1]==0xBB
|
||||||
|
var jm = string.format("{\"CustomRecv\":\"%s\"}",msg[4..-3].asstring())
|
||||||
|
tasmota.publish_result(jm, "RESULT")
|
||||||
|
elif msg[0]==0x07 && size(msg)==1 # BELL/Buzzer
|
||||||
|
tasmota.cmd("buzzer 1,1")
|
||||||
|
else
|
||||||
|
var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
|
||||||
|
tasmota.publish_result(jm, "RESULT")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def begin_nextion_flash()
|
||||||
|
self.flash_written = 0
|
||||||
|
self.awaiting_offset = 0
|
||||||
|
self.flash_offset = 0
|
||||||
|
self.sendnx('DRAKJHSUYDGBNCJHGJKSHBDN')
|
||||||
|
self.sendnx('recmod=0')
|
||||||
|
self.sendnx('recmod=0')
|
||||||
|
self.flash_mode = 1
|
||||||
|
self.sendnx("connect")
|
||||||
|
end
|
||||||
|
|
||||||
|
def open_url(url)
|
||||||
|
|
||||||
|
import string
|
||||||
|
var host
|
||||||
|
var port
|
||||||
|
var s1 = string.split(url,7)[1]
|
||||||
|
var i = string.find(s1,":")
|
||||||
|
var sa
|
||||||
|
if i<0
|
||||||
|
port = 80
|
||||||
|
i = string.find(s1,"/")
|
||||||
|
sa = string.split(s1,i)
|
||||||
|
host = sa[0]
|
||||||
|
else
|
||||||
|
sa = string.split(s1,i)
|
||||||
|
host = sa[0]
|
||||||
|
s1 = string.split(sa[1],1)[1]
|
||||||
|
i = string.find(s1,"/")
|
||||||
|
sa = string.split(s1,i)
|
||||||
|
port = int(sa[0])
|
||||||
|
end
|
||||||
|
var get = sa[1]
|
||||||
|
log(string.format("FLH: host: %s, port: %s, get: %s",host,port,get))
|
||||||
|
self.tcp = tcpclient()
|
||||||
|
self.tcp.connect(host,port)
|
||||||
|
log("FLH: Connected:"+str(self.tcp.connected()),3)
|
||||||
|
var get_req = "GET "+get+" HTTP/1.0\r\n"
|
||||||
|
get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
|
||||||
|
self.tcp.write(get_req)
|
||||||
|
var a = self.tcp.available()
|
||||||
|
i = 1
|
||||||
|
while a==0 && i<5
|
||||||
|
tasmota.delay(100*i)
|
||||||
|
tasmota.yield()
|
||||||
|
i += 1
|
||||||
|
log("FLH: Retry "+str(i),3)
|
||||||
|
a = self.tcp.available()
|
||||||
|
end
|
||||||
|
if a==0
|
||||||
|
log("FLH: Nothing available to read!",3)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
var b = self.tcp.readbytes()
|
||||||
|
i = 0
|
||||||
|
var end_headers = false;
|
||||||
|
var headers
|
||||||
|
while i<size(b) && headers==nil
|
||||||
|
if b[i..(i+3)]==bytes().fromstring("\r\n\r\n")
|
||||||
|
headers = b[0..(i+3)].asstring()
|
||||||
|
self.flash_buff = b[(i+4)..]
|
||||||
|
else
|
||||||
|
i += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
#print(headers)
|
||||||
|
# check http respose for code 200
|
||||||
|
var tag = "200 OK"
|
||||||
|
i = string.find(headers,tag)
|
||||||
|
if (i>0)
|
||||||
|
log("FLH: HTTP Respose is 200 OK",3)
|
||||||
|
else
|
||||||
|
log("FLH: HTTP Respose is not 200 OK",3)
|
||||||
|
print(headers)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
# check http respose for content-length
|
||||||
|
tag = "Content-Length: "
|
||||||
|
i = string.find(headers,tag)
|
||||||
|
if (i>0)
|
||||||
|
var i2 = string.find(headers,"\r\n",i)
|
||||||
|
var s = headers[i+size(tag)..i2-1]
|
||||||
|
self.flash_size=int(s)
|
||||||
|
end
|
||||||
|
if self.flash_size==0
|
||||||
|
log("FLH: No size header, counting ...",3)
|
||||||
|
self.flash_size = size(self.flash_buff)
|
||||||
|
#print("counting start ...")
|
||||||
|
while self.tcp.connected()
|
||||||
|
while self.tcp.available()>0
|
||||||
|
self.flash_size += size(self.tcp.readbytes())
|
||||||
|
end
|
||||||
|
tasmota.delay(50)
|
||||||
|
end
|
||||||
|
#print("counting end ...",self.flash_size)
|
||||||
|
self.tcp.close()
|
||||||
|
self.open_url(url)
|
||||||
|
else
|
||||||
|
log("FLH: Size found in header, skip count",3)
|
||||||
|
end
|
||||||
|
log("FLH: Flash file size: "+str(self.flash_size),3)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def flash_nextion(url)
|
||||||
|
|
||||||
|
self.flash_size = 0
|
||||||
|
self.open_url(url)
|
||||||
|
self.begin_nextion_flash()
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def version_number(str)
|
||||||
|
import string
|
||||||
|
var i1 = string.find(str,".",0)
|
||||||
|
var i2 = string.find(str,".",i1+1)
|
||||||
|
var num = int(str[0..i1-1])*10000+int(str[i1+1..i2-1])*100+int(str[i2+1..])
|
||||||
|
return num
|
||||||
|
end
|
||||||
|
|
||||||
|
def init()
|
||||||
|
log("NXP: Initializing Driver")
|
||||||
|
self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
|
||||||
|
self.flash_mode = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
var nextion = Nextion()
|
||||||
|
|
||||||
|
tasmota.add_driver(nextion)
|
||||||
|
|
||||||
|
def get_current_version(cmd, idx, payload, payload_json)
|
||||||
|
import string
|
||||||
|
var version_of_this_script = 3
|
||||||
|
var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
|
||||||
|
tasmota.publish_result(jm, "RESULT")
|
||||||
|
end
|
||||||
|
|
||||||
|
tasmota.add_cmd('GetDriverVersion', get_current_version)
|
||||||
|
|
||||||
|
def update_berry_driver(cmd, idx, payload, payload_json)
|
||||||
|
def task()
|
||||||
|
import string
|
||||||
|
var cl = webclient()
|
||||||
|
cl.begin(payload)
|
||||||
|
var r = cl.GET()
|
||||||
|
if r == 200
|
||||||
|
print("Sucessfully downloaded nspanel-lovelace-ui berry driver")
|
||||||
|
else
|
||||||
|
print("Error while downloading nspanel-lovelace-ui berry driver")
|
||||||
|
end
|
||||||
|
r = cl.write_file("autoexec.be")
|
||||||
|
if r < 0
|
||||||
|
print("Error while writeing nspanel-lovelace-ui berry driver")
|
||||||
|
else
|
||||||
|
print("Sucessfully written nspanel-lovelace-ui berry driver")
|
||||||
|
var s = load('autoexec.be')
|
||||||
|
if s == true
|
||||||
|
var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "succeeded")
|
||||||
|
tasmota.publish_result(jm, "RESULT")
|
||||||
|
else
|
||||||
|
var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "failed")
|
||||||
|
tasmota.publish_result(jm, "RESULT")
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
tasmota.set_timer(0,task)
|
||||||
|
tasmota.resp_cmnd_done()
|
||||||
|
end
|
||||||
|
|
||||||
|
tasmota.add_cmd('UpdateDriverVersion', update_berry_driver)
|
||||||
|
|
||||||
|
def flash_nextion(cmd, idx, payload, payload_json)
|
||||||
|
def task()
|
||||||
|
nextion.flash_nextion(payload)
|
||||||
|
end
|
||||||
|
tasmota.set_timer(0,task)
|
||||||
|
tasmota.resp_cmnd_done()
|
||||||
|
end
|
||||||
|
|
||||||
|
def send_cmd(cmd, idx, payload, payload_json)
|
||||||
|
nextion.sendnx(payload)
|
||||||
|
tasmota.resp_cmnd_done()
|
||||||
|
end
|
||||||
|
|
||||||
|
def send_cmd2(cmd, idx, payload, payload_json)
|
||||||
|
nextion.send(payload)
|
||||||
|
tasmota.resp_cmnd_done()
|
||||||
|
end
|
||||||
|
|
||||||
|
tasmota.add_cmd('Nextion', send_cmd)
|
||||||
|
tasmota.add_cmd('CustomSend', send_cmd2)
|
||||||
|
tasmota.add_cmd('FlashNextion', flash_nextion)
|
||||||
@@ -10,12 +10,12 @@
|
|||||||
|
|
||||||
class Nextion : Driver
|
class Nextion : Driver
|
||||||
|
|
||||||
static VERSION = "1.1.3"
|
|
||||||
static header = bytes('55BB')
|
static header = bytes('55BB')
|
||||||
|
|
||||||
static flash_block_size = 4096
|
static flash_block_size = 4096
|
||||||
|
|
||||||
var flash_mode
|
var flash_mode
|
||||||
|
var flash_start_millis
|
||||||
var flash_size
|
var flash_size
|
||||||
var flash_written
|
var flash_written
|
||||||
var flash_buff
|
var flash_buff
|
||||||
@@ -24,6 +24,7 @@ class Nextion : Driver
|
|||||||
var tcp
|
var tcp
|
||||||
var ser
|
var ser
|
||||||
var last_per
|
var last_per
|
||||||
|
var url
|
||||||
|
|
||||||
def split_55(b)
|
def split_55(b)
|
||||||
var ret = []
|
var ret = []
|
||||||
@@ -125,21 +126,19 @@ class Nextion : Driver
|
|||||||
var per = (self.flash_written*100)/self.flash_size
|
var per = (self.flash_written*100)/self.flash_size
|
||||||
if (self.last_per!=per)
|
if (self.last_per!=per)
|
||||||
self.last_per = per
|
self.last_per = per
|
||||||
tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d}}",per), "RESULT")
|
tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d, \"time_elapsed\": %d}}",per , (tasmota.millis()-self.flash_start_millis)/1000), "RESULT")
|
||||||
end
|
end
|
||||||
if size(to_write)>0
|
if size(to_write)>0
|
||||||
self.flash_written += size(to_write)
|
self.flash_written += size(to_write)
|
||||||
if self.flash_offset==0 || self.flash_written>self.flash_offset
|
|
||||||
self.ser.write(to_write)
|
self.ser.write(to_write)
|
||||||
self.flash_offset = 0
|
|
||||||
else
|
|
||||||
tasmota.set_timer(10,/->self.write_block())
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
log("FLH: Total "+str(self.flash_written),3)
|
log("FLH: Total "+str(self.flash_written),3)
|
||||||
if (self.flash_written==self.flash_size)
|
if (self.flash_written==self.flash_size)
|
||||||
log("FLH: Flashing complete")
|
log("FLH: Flashing complete - Time elapsed: %d", (tasmota.millis()-self.flash_start_millis)/1000)
|
||||||
self.flash_mode = 0
|
self.flash_mode = 0
|
||||||
|
self.ser = nil
|
||||||
|
tasmota.gc()
|
||||||
|
self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -154,7 +153,10 @@ class Nextion : Driver
|
|||||||
var strv = msg[0..-4].asstring()
|
var strv = msg[0..-4].asstring()
|
||||||
if string.find(strv,"comok 2")>=0
|
if string.find(strv,"comok 2")>=0
|
||||||
log("FLH: Send (High Speed) flash start")
|
log("FLH: Send (High Speed) flash start")
|
||||||
self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
|
self.flash_start_millis = tasmota.millis()
|
||||||
|
#self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
|
||||||
|
self.sendnx(string.format("whmi-wris %d,921600,res0",self.flash_size))
|
||||||
|
self.ser = serial(17, 16, 921600, serial.SERIAL_8N1)
|
||||||
elif size(msg)==1 && msg[0]==0x08
|
elif size(msg)==1 && msg[0]==0x08
|
||||||
log("FLH: Waiting offset...",3)
|
log("FLH: Waiting offset...",3)
|
||||||
self.awaiting_offset = 1
|
self.awaiting_offset = 1
|
||||||
@@ -162,6 +164,10 @@ class Nextion : Driver
|
|||||||
self.awaiting_offset = 0
|
self.awaiting_offset = 0
|
||||||
self.flash_offset = msg.get(0,4)
|
self.flash_offset = msg.get(0,4)
|
||||||
log("FLH: Flash offset marker "+str(self.flash_offset),3)
|
log("FLH: Flash offset marker "+str(self.flash_offset),3)
|
||||||
|
if self.flash_offset != 0
|
||||||
|
self.open_url_at(self.url, self.flash_offset)
|
||||||
|
self.flash_written = self.flash_offset
|
||||||
|
end
|
||||||
self.write_block()
|
self.write_block()
|
||||||
elif size(msg)==1 && msg[0]==0x05
|
elif size(msg)==1 && msg[0]==0x05
|
||||||
self.write_block()
|
self.write_block()
|
||||||
@@ -202,8 +208,8 @@ class Nextion : Driver
|
|||||||
self.sendnx("connect")
|
self.sendnx("connect")
|
||||||
end
|
end
|
||||||
|
|
||||||
def open_url(url)
|
def open_url_at(url, pos)
|
||||||
|
self.url = url
|
||||||
import string
|
import string
|
||||||
var host
|
var host
|
||||||
var port
|
var port
|
||||||
@@ -229,6 +235,7 @@ class Nextion : Driver
|
|||||||
self.tcp.connect(host,port)
|
self.tcp.connect(host,port)
|
||||||
log("FLH: Connected:"+str(self.tcp.connected()),3)
|
log("FLH: Connected:"+str(self.tcp.connected()),3)
|
||||||
var get_req = "GET "+get+" HTTP/1.0\r\n"
|
var get_req = "GET "+get+" HTTP/1.0\r\n"
|
||||||
|
get_req += string.format("Range: bytes=%d-\r\n", pos)
|
||||||
get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
|
get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
|
||||||
self.tcp.write(get_req)
|
self.tcp.write(get_req)
|
||||||
var a = self.tcp.available()
|
var a = self.tcp.available()
|
||||||
@@ -257,58 +264,35 @@ class Nextion : Driver
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
#print(headers)
|
#print(headers)
|
||||||
# check http respose for code 200
|
# check http respose for code 200/206
|
||||||
var tag = "200 OK"
|
if string.find(headers,"200 OK")>0 || string.find(headers,"206 Partial Content")>0
|
||||||
i = string.find(headers,tag)
|
log("FLH: HTTP Respose is 200 OK or 206 Partial Content",3)
|
||||||
if (i>0)
|
|
||||||
log("FLH: HTTP Respose is 200 OK",3)
|
|
||||||
else
|
else
|
||||||
log("FLH: HTTP Respose is not 200 OK",3)
|
log("FLH: HTTP Respose is not 200 OK or 206 Partial Content",3)
|
||||||
print(headers)
|
print(headers)
|
||||||
return
|
return -1
|
||||||
end
|
end
|
||||||
|
# only set flash size if pos is zero
|
||||||
|
if pos == 0
|
||||||
# check http respose for content-length
|
# check http respose for content-length
|
||||||
tag = "Content-Length: "
|
var tag = "Content-Length: "
|
||||||
i = string.find(headers,tag)
|
i = string.find(headers,tag)
|
||||||
if (i>0)
|
if (i>0)
|
||||||
var i2 = string.find(headers,"\r\n",i)
|
var i2 = string.find(headers,"\r\n",i)
|
||||||
var s = headers[i+size(tag)..i2-1]
|
var s = headers[i+size(tag)..i2-1]
|
||||||
self.flash_size=int(s)
|
self.flash_size=int(s)
|
||||||
end
|
end
|
||||||
if self.flash_size==0
|
|
||||||
log("FLH: No size header, counting ...",3)
|
|
||||||
self.flash_size = size(self.flash_buff)
|
|
||||||
#print("counting start ...")
|
|
||||||
while self.tcp.connected()
|
|
||||||
while self.tcp.available()>0
|
|
||||||
self.flash_size += size(self.tcp.readbytes())
|
|
||||||
end
|
|
||||||
tasmota.delay(50)
|
|
||||||
end
|
|
||||||
#print("counting end ...",self.flash_size)
|
|
||||||
self.tcp.close()
|
|
||||||
self.open_url(url)
|
|
||||||
else
|
|
||||||
log("FLH: Size found in header, skip count",3)
|
|
||||||
end
|
|
||||||
log("FLH: Flash file size: "+str(self.flash_size),3)
|
log("FLH: Flash file size: "+str(self.flash_size),3)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def flash_nextion(url)
|
def flash_nextion(url)
|
||||||
|
|
||||||
self.flash_size = 0
|
self.flash_size = 0
|
||||||
self.open_url(url)
|
var res = self.open_url_at(url, 0)
|
||||||
|
if res != -1
|
||||||
self.begin_nextion_flash()
|
self.begin_nextion_flash()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def version_number(str)
|
|
||||||
import string
|
|
||||||
var i1 = string.find(str,".",0)
|
|
||||||
var i2 = string.find(str,".",i1+1)
|
|
||||||
var num = int(str[0..i1-1])*10000+int(str[i1+1..i2-1])*100+int(str[i2+1..])
|
|
||||||
return num
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def init()
|
def init()
|
||||||
@@ -325,7 +309,7 @@ tasmota.add_driver(nextion)
|
|||||||
|
|
||||||
def get_current_version(cmd, idx, payload, payload_json)
|
def get_current_version(cmd, idx, payload, payload_json)
|
||||||
import string
|
import string
|
||||||
var version_of_this_script = 3
|
var version_of_this_script = 4
|
||||||
var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
|
var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
|
||||||
tasmota.publish_result(jm, "RESULT")
|
tasmota.publish_result(jm, "RESULT")
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user