mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-24 00:14:26 +01:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
320090ea51 | ||
|
|
3b7771103b | ||
|
|
e2d567b41f | ||
|
|
4a0348372e | ||
|
|
ba83483f91 | ||
|
|
0d7b2bb193 | ||
|
|
e71ef831f2 | ||
|
|
71b2b97699 | ||
|
|
9a3cc08db8 | ||
|
|
9f53350dd9 | ||
|
|
271ebc0783 | ||
|
|
e597016c0d | ||
|
|
6fd6811031 | ||
|
|
f59daec50e | ||
|
|
735d017353 | ||
|
|
e96b45e2ba | ||
|
|
8d2e19aafb | ||
|
|
b893cc07b4 | ||
|
|
200a0f5330 | ||
|
|
1069939676 | ||
|
|
284b096c4c |
@@ -348,7 +348,7 @@ Example alternative layout: `weatherUpdate~~~A~21130~~-0.7C~~~B~63469~Sat~3.6C~~
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
`color~background~tTime~timeAMPM~tDate~tMainText~tForecast1~tForecast2~tForecast3~tForecast4~tForecast1Val~tForecast2Val~tForecast3Val~tForecast4Val~bar~tMainTextAlt2~tMR~tTimeAdd`
|
||||
`color~background~tTime~timeAMPM~tDate~tMainText~tForecast1~tForecast2~tForecast3~tForecast4~tForecast1Val~tForecast2Val~tForecast3Val~tForecast4Val~bar~tMainTextAlt2~tTimeAdd`
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
@@ -493,14 +493,6 @@ Example alternative layout: `weatherUpdate~~~A~21130~~-0.7C~~~B~63469~Sat~3.6C~~
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>tMR</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>17</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>tTimeAdd</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
@@ -1,5 +1,93 @@
|
||||
--- HMI/n2t-out
|
||||
+++ HMI/US/landscape/n2t-out
|
||||
│ --- HMI/n2t-out/cardPower.txt
|
||||
├── +++ HMI/US/landscape/n2t-out/cardPower.txt
|
||||
│ @@ -475,85 +475,79 @@
|
||||
│ h0.val=h0.minval
|
||||
│ }
|
||||
│ if(sys0<h0.minval)
|
||||
│ {
|
||||
│ h0.val=h0.maxval
|
||||
│ }
|
||||
│ h0.val+=t0Speed.val
|
||||
│ - ref t0u
|
||||
│ }
|
||||
│ if(t1Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h1.val+t1Speed.val
|
||||
│ if(sys0>h1.maxval)
|
||||
│ {
|
||||
│ h1.val=h1.minval
|
||||
│ }
|
||||
│ if(sys0<h1.minval)
|
||||
│ {
|
||||
│ h1.val=h1.maxval
|
||||
│ }
|
||||
│ h1.val+=t1Speed.val
|
||||
│ - ref t1u
|
||||
│ }
|
||||
│ if(t2Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h2.val+t2Speed.val
|
||||
│ if(sys0>h2.maxval)
|
||||
│ {
|
||||
│ h2.val=h2.minval
|
||||
│ }
|
||||
│ if(sys0<h2.minval)
|
||||
│ {
|
||||
│ h2.val=h2.maxval
|
||||
│ }
|
||||
│ h2.val+=t2Speed.val
|
||||
│ - ref t2u
|
||||
│ }
|
||||
│ if(t3Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h3.val+t3Speed.val
|
||||
│ if(sys0>h3.maxval)
|
||||
│ {
|
||||
│ h3.val=h3.minval
|
||||
│ }
|
||||
│ if(sys0<h3.minval)
|
||||
│ {
|
||||
│ h3.val=h3.maxval
|
||||
│ }
|
||||
│ h3.val+=t3Speed.val
|
||||
│ - ref t3u
|
||||
│ }
|
||||
│ if(t4Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h4.val+t4Speed.val
|
||||
│ if(sys0>h4.maxval)
|
||||
│ {
|
||||
│ h4.val=h4.minval
|
||||
│ }
|
||||
│ if(sys0<h4.minval)
|
||||
│ {
|
||||
│ h4.val=h4.maxval
|
||||
│ }
|
||||
│ h4.val+=t4Speed.val
|
||||
│ - ref t4u
|
||||
│ }
|
||||
│ if(t5Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h5.val+t5Speed.val
|
||||
│ if(sys0>h5.maxval)
|
||||
│ {
|
||||
│ h5.val=h5.minval
|
||||
│ }
|
||||
│ if(sys0<h5.minval)
|
||||
│ {
|
||||
│ h5.val=h5.maxval
|
||||
│ }
|
||||
│ h5.val+=t5Speed.val
|
||||
│ - ref t5u
|
||||
│ }
|
||||
│
|
||||
│ Timer tmSerial
|
||||
│ Attributes
|
||||
│ Scope : local
|
||||
│ Period (ms): 50
|
||||
│ Enabled : yes
|
||||
│ --- HMI/n2t-out/pageStartup.txt
|
||||
├── +++ HMI/US/landscape/n2t-out/pageStartup.txt
|
||||
│ @@ -179,15 +179,15 @@
|
||||
@@ -36,7 +124,7 @@
|
||||
│ Attributes
|
||||
│ Scope : local
|
||||
│ Text :
|
||||
│ Max. Text Size: 400
|
||||
│ Max. Text Size: 600
|
||||
│
|
||||
│ Variable (string) strTmp
|
||||
│ @@ -103,35 +100,14 @@
|
||||
|
||||
@@ -46,6 +46,10 @@ pageStartup
|
||||
20 Component(s)
|
||||
185 Line(s) of event code
|
||||
131 Unique line(s) of event code
|
||||
screensaver
|
||||
46 Component(s)
|
||||
418 Line(s) of event code
|
||||
298 Unique line(s) of event code
|
||||
cardGrid
|
||||
44 Component(s)
|
||||
515 Line(s) of event code
|
||||
@@ -78,10 +82,6 @@ cardPower
|
||||
48 Component(s)
|
||||
487 Line(s) of event code
|
||||
326 Unique line(s) of event code
|
||||
screensaver
|
||||
46 Component(s)
|
||||
418 Line(s) of event code
|
||||
299 Unique line(s) of event code
|
||||
|
||||
Total
|
||||
20 Page(s)
|
||||
|
||||
@@ -46,7 +46,7 @@ Variable (string) strCommand
|
||||
ID : 4
|
||||
Scope : local
|
||||
Text :
|
||||
Max. Text Size: 400
|
||||
Max. Text Size: 600
|
||||
|
||||
Variable (string) strTmp
|
||||
Attributes
|
||||
@@ -1238,9 +1238,7 @@ Timer tmSerial
|
||||
covx tTmp.txt,t10.bco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",15
|
||||
covx tTmp.txt,tMainTextAlt2.pco,0,0
|
||||
//spstr strCommand.txt,tTmp.txt,"~",16
|
||||
//covx tTmp.txt,tMR.pco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",17
|
||||
spstr strCommand.txt,tTmp.txt,"~",16
|
||||
covx tTmp.txt,tTimeAdd.pco,0,0
|
||||
if(tMainTextAlt2.txt!=""&&p0.w!=320)
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ Variable (string) strCommand
|
||||
Attributes
|
||||
Scope : local
|
||||
Text :
|
||||
Max. Text Size: 400
|
||||
Max. Text Size: 600
|
||||
|
||||
Variable (string) strTmp
|
||||
Attributes
|
||||
@@ -665,9 +665,7 @@ Timer tmSerial
|
||||
covx tTmp.txt,t10.bco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",15
|
||||
covx tTmp.txt,tMainTextAlt2.pco,0,0
|
||||
//spstr strCommand.txt,tTmp.txt,"~",16
|
||||
//covx tTmp.txt,tMR.pco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",17
|
||||
spstr strCommand.txt,tTmp.txt,"~",16
|
||||
covx tTmp.txt,tTimeAdd.pco,0,0
|
||||
if(tMainTextAlt2.txt!=""&&p0.w!=320)
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1047,6 +1047,94 @@
|
||||
│ //command format pageType,specialPageName
|
||||
│ //write name of speical page to tId
|
||||
│ spstr strCommand.txt,tId.txt,"~",1
|
||||
│ --- HMI/n2t-out/cardPower.txt
|
||||
├── +++ HMI/US/portrait/n2t-out/cardPower.txt
|
||||
│ @@ -475,85 +475,79 @@
|
||||
│ h0.val=h0.minval
|
||||
│ }
|
||||
│ if(sys0<h0.minval)
|
||||
│ {
|
||||
│ h0.val=h0.maxval
|
||||
│ }
|
||||
│ h0.val+=t0Speed.val
|
||||
│ - ref t0u
|
||||
│ }
|
||||
│ if(t1Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h1.val+t1Speed.val
|
||||
│ if(sys0>h1.maxval)
|
||||
│ {
|
||||
│ h1.val=h1.minval
|
||||
│ }
|
||||
│ if(sys0<h1.minval)
|
||||
│ {
|
||||
│ h1.val=h1.maxval
|
||||
│ }
|
||||
│ h1.val+=t1Speed.val
|
||||
│ - ref t1u
|
||||
│ }
|
||||
│ if(t2Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h2.val+t2Speed.val
|
||||
│ if(sys0>h2.maxval)
|
||||
│ {
|
||||
│ h2.val=h2.minval
|
||||
│ }
|
||||
│ if(sys0<h2.minval)
|
||||
│ {
|
||||
│ h2.val=h2.maxval
|
||||
│ }
|
||||
│ h2.val+=t2Speed.val
|
||||
│ - ref t2u
|
||||
│ }
|
||||
│ if(t3Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h3.val+t3Speed.val
|
||||
│ if(sys0>h3.maxval)
|
||||
│ {
|
||||
│ h3.val=h3.minval
|
||||
│ }
|
||||
│ if(sys0<h3.minval)
|
||||
│ {
|
||||
│ h3.val=h3.maxval
|
||||
│ }
|
||||
│ h3.val+=t3Speed.val
|
||||
│ - ref t3u
|
||||
│ }
|
||||
│ if(t4Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h4.val+t4Speed.val
|
||||
│ if(sys0>h4.maxval)
|
||||
│ {
|
||||
│ h4.val=h4.minval
|
||||
│ }
|
||||
│ if(sys0<h4.minval)
|
||||
│ {
|
||||
│ h4.val=h4.maxval
|
||||
│ }
|
||||
│ h4.val+=t4Speed.val
|
||||
│ - ref t4u
|
||||
│ }
|
||||
│ if(t5Speed.val!=0)
|
||||
│ {
|
||||
│ sys0=h5.val+t5Speed.val
|
||||
│ if(sys0>h5.maxval)
|
||||
│ {
|
||||
│ h5.val=h5.minval
|
||||
│ }
|
||||
│ if(sys0<h5.minval)
|
||||
│ {
|
||||
│ h5.val=h5.maxval
|
||||
│ }
|
||||
│ h5.val+=t5Speed.val
|
||||
│ - ref t5u
|
||||
│ }
|
||||
│
|
||||
│ Timer tmSerial
|
||||
│ Attributes
|
||||
│ Scope : local
|
||||
│ Period (ms): 50
|
||||
│ Enabled : yes
|
||||
│ --- HMI/n2t-out/pageStartup.txt
|
||||
├── +++ HMI/US/portrait/n2t-out/pageStartup.txt
|
||||
│ @@ -35,20 +35,14 @@
|
||||
@@ -1121,7 +1209,7 @@
|
||||
│ Attributes
|
||||
│ Scope : local
|
||||
│ Text :
|
||||
│ Max. Text Size: 400
|
||||
│ Max. Text Size: 600
|
||||
│
|
||||
│ Variable (string) strTmp
|
||||
│ @@ -103,35 +100,14 @@
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
+++ /dev/fd/62 2023-01-25 19:09:43.447986033 +0000
|
||||
+++ /dev/fd/62 2023-01-30 16:39:29.795510871 +0000
|
||||
+I/n2t-out/Program.s.txt
|
||||
++ HMI/US/portrait/n2t-out/Program.s.txt
|
||||
+I/n2t-out/cardEntities.txt
|
||||
@@ -54,13 +54,13 @@
|
||||
+ributes
|
||||
+ Scope : local
|
||||
+ Text :
|
||||
+ Max. Text Size: 80
|
||||
+ Max. Text Size: 40
|
||||
+
|
||||
+e (string) nent2
|
||||
+ributes
|
||||
+ Scope : local
|
||||
+ Text :
|
||||
+ Max. Text Size: 80
|
||||
+ Max. Text Size: 40
|
||||
+14 +186,26 @@
|
||||
+e (string) type6
|
||||
@@ -466,6 +466,94 @@
|
||||
+ covx tTmp.txt,sys0,0,0
|
||||
+ hSlider6.maxval=sys0
|
||||
+ }
|
||||
+I/n2t-out/cardPower.txt
|
||||
++ HMI/US/portrait/n2t-out/cardPower.txt
|
||||
+85 +475,79 @@
|
||||
+ h0.val=h0.minval
|
||||
+ }
|
||||
+ if(sys0<h0.minval)
|
||||
+ {
|
||||
+ h0.val=h0.maxval
|
||||
+ }
|
||||
+ h0.val+=t0Speed.val
|
||||
+ ref t0u
|
||||
+ }
|
||||
+ if(t1Speed.val!=0)
|
||||
+ {
|
||||
+ sys0=h1.val+t1Speed.val
|
||||
+ if(sys0>h1.maxval)
|
||||
+ {
|
||||
+ h1.val=h1.minval
|
||||
+ }
|
||||
+ if(sys0<h1.minval)
|
||||
+ {
|
||||
+ h1.val=h1.maxval
|
||||
+ }
|
||||
+ h1.val+=t1Speed.val
|
||||
+ ref t1u
|
||||
+ }
|
||||
+ if(t2Speed.val!=0)
|
||||
+ {
|
||||
+ sys0=h2.val+t2Speed.val
|
||||
+ if(sys0>h2.maxval)
|
||||
+ {
|
||||
+ h2.val=h2.minval
|
||||
+ }
|
||||
+ if(sys0<h2.minval)
|
||||
+ {
|
||||
+ h2.val=h2.maxval
|
||||
+ }
|
||||
+ h2.val+=t2Speed.val
|
||||
+ ref t2u
|
||||
+ }
|
||||
+ if(t3Speed.val!=0)
|
||||
+ {
|
||||
+ sys0=h3.val+t3Speed.val
|
||||
+ if(sys0>h3.maxval)
|
||||
+ {
|
||||
+ h3.val=h3.minval
|
||||
+ }
|
||||
+ if(sys0<h3.minval)
|
||||
+ {
|
||||
+ h3.val=h3.maxval
|
||||
+ }
|
||||
+ h3.val+=t3Speed.val
|
||||
+ ref t3u
|
||||
+ }
|
||||
+ if(t4Speed.val!=0)
|
||||
+ {
|
||||
+ sys0=h4.val+t4Speed.val
|
||||
+ if(sys0>h4.maxval)
|
||||
+ {
|
||||
+ h4.val=h4.minval
|
||||
+ }
|
||||
+ if(sys0<h4.minval)
|
||||
+ {
|
||||
+ h4.val=h4.maxval
|
||||
+ }
|
||||
+ h4.val+=t4Speed.val
|
||||
+ ref t4u
|
||||
+ }
|
||||
+ if(t5Speed.val!=0)
|
||||
+ {
|
||||
+ sys0=h5.val+t5Speed.val
|
||||
+ if(sys0>h5.maxval)
|
||||
+ {
|
||||
+ h5.val=h5.minval
|
||||
+ }
|
||||
+ if(sys0<h5.minval)
|
||||
+ {
|
||||
+ h5.val=h5.maxval
|
||||
+ }
|
||||
+ h5.val+=t5Speed.val
|
||||
+ ref t5u
|
||||
+ }
|
||||
+
|
||||
+mSerial
|
||||
+ributes
|
||||
+ Scope : local
|
||||
+ Period (ms): 50
|
||||
+ Enabled : yes
|
||||
+I/n2t-out/pageStartup.txt
|
||||
++ HMI/US/portrait/n2t-out/pageStartup.txt
|
||||
+0 +35,14 @@
|
||||
@@ -506,7 +594,7 @@
|
||||
+ributes
|
||||
+ Scope : local
|
||||
+ Text :
|
||||
+ Max. Text Size: 400
|
||||
+ Max. Text Size: 600
|
||||
+
|
||||
+e (string) strTmp
|
||||
+35 +100,14 @@
|
||||
|
||||
@@ -61,7 +61,7 @@ cardChart
|
||||
screensaver
|
||||
46 Component(s)
|
||||
418 Line(s) of event code
|
||||
299 Unique line(s) of event code
|
||||
298 Unique line(s) of event code
|
||||
popupTimer
|
||||
42 Component(s)
|
||||
512 Line(s) of event code
|
||||
|
||||
@@ -46,7 +46,7 @@ Variable (string) strCommand
|
||||
ID : 4
|
||||
Scope : local
|
||||
Text :
|
||||
Max. Text Size: 400
|
||||
Max. Text Size: 600
|
||||
|
||||
Variable (string) strTmp
|
||||
Attributes
|
||||
@@ -1238,9 +1238,7 @@ Timer tmSerial
|
||||
covx tTmp.txt,t10.bco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",15
|
||||
covx tTmp.txt,tMainTextAlt2.pco,0,0
|
||||
//spstr strCommand.txt,tTmp.txt,"~",16
|
||||
//covx tTmp.txt,tMR.pco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",17
|
||||
spstr strCommand.txt,tTmp.txt,"~",16
|
||||
covx tTmp.txt,tTimeAdd.pco,0,0
|
||||
if(tMainTextAlt2.txt!=""&&p0.w!=320)
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ Variable (string) strCommand
|
||||
Attributes
|
||||
Scope : local
|
||||
Text :
|
||||
Max. Text Size: 400
|
||||
Max. Text Size: 600
|
||||
|
||||
Variable (string) strTmp
|
||||
Attributes
|
||||
@@ -665,9 +665,7 @@ Timer tmSerial
|
||||
covx tTmp.txt,t10.bco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",15
|
||||
covx tTmp.txt,tMainTextAlt2.pco,0,0
|
||||
//spstr strCommand.txt,tTmp.txt,"~",16
|
||||
//covx tTmp.txt,tMR.pco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",17
|
||||
spstr strCommand.txt,tTmp.txt,"~",16
|
||||
covx tTmp.txt,tTimeAdd.pco,0,0
|
||||
if(tMainTextAlt2.txt!=""&&p0.w!=320)
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -191,7 +191,7 @@ Text t0u
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 82
|
||||
y coordinate : 132
|
||||
y coordinate : 119
|
||||
Width : 108
|
||||
Height : 30
|
||||
Effect : load
|
||||
@@ -285,7 +285,7 @@ Text t1u
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 82
|
||||
y coordinate : 209
|
||||
y coordinate : 195
|
||||
Width : 108
|
||||
Height : 30
|
||||
Effect : load
|
||||
@@ -347,7 +347,7 @@ Text t2u
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 82
|
||||
y coordinate : 285
|
||||
y coordinate : 272
|
||||
Width : 108
|
||||
Height : 30
|
||||
Effect : load
|
||||
@@ -409,7 +409,7 @@ Text t3u
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 262
|
||||
y coordinate : 132
|
||||
y coordinate : 119
|
||||
Width : 108
|
||||
Height : 30
|
||||
Effect : load
|
||||
@@ -471,7 +471,7 @@ Text t4u
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 262
|
||||
y coordinate : 209
|
||||
y coordinate : 195
|
||||
Width : 108
|
||||
Height : 30
|
||||
Effect : load
|
||||
@@ -533,7 +533,7 @@ Text t5u
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 262
|
||||
y coordinate : 285
|
||||
y coordinate : 272
|
||||
Width : 108
|
||||
Height : 30
|
||||
Effect : load
|
||||
@@ -755,7 +755,7 @@ Slider h1
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 78
|
||||
y coordinate : 165
|
||||
y coordinate : 164
|
||||
Width : 120
|
||||
Height : 44
|
||||
Effect : load
|
||||
@@ -830,7 +830,7 @@ Slider h4
|
||||
Send Component ID : disabled
|
||||
Opacity : 127
|
||||
x coordinate : 258
|
||||
y coordinate : 165
|
||||
y coordinate : 164
|
||||
Width : 120
|
||||
Height : 44
|
||||
Effect : load
|
||||
@@ -1046,6 +1046,7 @@ Timer tm0
|
||||
h0.val=h0.maxval
|
||||
}
|
||||
h0.val+=t0Speed.val
|
||||
ref t0u
|
||||
}
|
||||
if(t1Speed.val!=0)
|
||||
{
|
||||
@@ -1059,6 +1060,7 @@ Timer tm0
|
||||
h1.val=h1.maxval
|
||||
}
|
||||
h1.val+=t1Speed.val
|
||||
ref t1u
|
||||
}
|
||||
if(t2Speed.val!=0)
|
||||
{
|
||||
@@ -1072,6 +1074,7 @@ Timer tm0
|
||||
h2.val=h2.maxval
|
||||
}
|
||||
h2.val+=t2Speed.val
|
||||
ref t2u
|
||||
}
|
||||
if(t3Speed.val!=0)
|
||||
{
|
||||
@@ -1085,6 +1088,7 @@ Timer tm0
|
||||
h3.val=h3.maxval
|
||||
}
|
||||
h3.val+=t3Speed.val
|
||||
ref t3u
|
||||
}
|
||||
if(t4Speed.val!=0)
|
||||
{
|
||||
@@ -1098,6 +1102,7 @@ Timer tm0
|
||||
h4.val=h4.maxval
|
||||
}
|
||||
h4.val+=t4Speed.val
|
||||
ref t4u
|
||||
}
|
||||
if(t5Speed.val!=0)
|
||||
{
|
||||
@@ -1111,6 +1116,7 @@ Timer tm0
|
||||
h5.val=h5.maxval
|
||||
}
|
||||
h5.val+=t5Speed.val
|
||||
ref t5u
|
||||
}
|
||||
|
||||
Timer tmSerial
|
||||
|
||||
@@ -30,10 +30,10 @@ pageTest
|
||||
26 Component(s)
|
||||
68 Line(s) of event code
|
||||
66 Unique line(s) of event code
|
||||
cardPower
|
||||
48 Component(s)
|
||||
487 Line(s) of event code
|
||||
326 Unique line(s) of event code
|
||||
screensaver
|
||||
47 Component(s)
|
||||
428 Line(s) of event code
|
||||
306 Unique line(s) of event code
|
||||
popupFan
|
||||
27 Component(s)
|
||||
351 Line(s) of event code
|
||||
@@ -62,10 +62,10 @@ cardMedia
|
||||
59 Component(s)
|
||||
641 Line(s) of event code
|
||||
318 Unique line(s) of event code
|
||||
screensaver
|
||||
47 Component(s)
|
||||
428 Line(s) of event code
|
||||
307 Unique line(s) of event code
|
||||
cardPower
|
||||
48 Component(s)
|
||||
493 Line(s) of event code
|
||||
332 Unique line(s) of event code
|
||||
popupTimer
|
||||
42 Component(s)
|
||||
512 Line(s) of event code
|
||||
@@ -86,5 +86,5 @@ cardEntities
|
||||
Total
|
||||
20 Page(s)
|
||||
737 Component(s)
|
||||
8810 Line(s) of event code
|
||||
2264 Unique line(s) of event code
|
||||
8816 Line(s) of event code
|
||||
2270 Unique line(s) of event code
|
||||
|
||||
@@ -49,7 +49,7 @@ Variable (string) strCommand
|
||||
ID : 4
|
||||
Scope : local
|
||||
Text :
|
||||
Max. Text Size: 400
|
||||
Max. Text Size: 600
|
||||
|
||||
Variable (string) strTmp
|
||||
Attributes
|
||||
@@ -1282,9 +1282,7 @@ Timer tmSerial
|
||||
covx tTmp.txt,t10.bco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",15
|
||||
covx tTmp.txt,tMainTextAlt2.pco,0,0
|
||||
//spstr strCommand.txt,tTmp.txt,"~",16
|
||||
//covx tTmp.txt,tMR.pco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",17
|
||||
spstr strCommand.txt,tTmp.txt,"~",16
|
||||
covx tTmp.txt,tTimeAdd.pco,0,0
|
||||
if(tMainTextAlt2.txt!=""&&p0.w!=320)
|
||||
{
|
||||
|
||||
@@ -479,6 +479,7 @@ Timer tm0
|
||||
h0.val=h0.maxval
|
||||
}
|
||||
h0.val+=t0Speed.val
|
||||
ref t0u
|
||||
}
|
||||
if(t1Speed.val!=0)
|
||||
{
|
||||
@@ -492,6 +493,7 @@ Timer tm0
|
||||
h1.val=h1.maxval
|
||||
}
|
||||
h1.val+=t1Speed.val
|
||||
ref t1u
|
||||
}
|
||||
if(t2Speed.val!=0)
|
||||
{
|
||||
@@ -505,6 +507,7 @@ Timer tm0
|
||||
h2.val=h2.maxval
|
||||
}
|
||||
h2.val+=t2Speed.val
|
||||
ref t2u
|
||||
}
|
||||
if(t3Speed.val!=0)
|
||||
{
|
||||
@@ -518,6 +521,7 @@ Timer tm0
|
||||
h3.val=h3.maxval
|
||||
}
|
||||
h3.val+=t3Speed.val
|
||||
ref t3u
|
||||
}
|
||||
if(t4Speed.val!=0)
|
||||
{
|
||||
@@ -531,6 +535,7 @@ Timer tm0
|
||||
h4.val=h4.maxval
|
||||
}
|
||||
h4.val+=t4Speed.val
|
||||
ref t4u
|
||||
}
|
||||
if(t5Speed.val!=0)
|
||||
{
|
||||
@@ -544,6 +549,7 @@ Timer tm0
|
||||
h5.val=h5.maxval
|
||||
}
|
||||
h5.val+=t5Speed.val
|
||||
ref t5u
|
||||
}
|
||||
|
||||
Timer tmSerial
|
||||
|
||||
@@ -40,7 +40,7 @@ Variable (string) strCommand
|
||||
Attributes
|
||||
Scope : local
|
||||
Text :
|
||||
Max. Text Size: 400
|
||||
Max. Text Size: 600
|
||||
|
||||
Variable (string) strTmp
|
||||
Attributes
|
||||
@@ -689,9 +689,7 @@ Timer tmSerial
|
||||
covx tTmp.txt,t10.bco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",15
|
||||
covx tTmp.txt,tMainTextAlt2.pco,0,0
|
||||
//spstr strCommand.txt,tTmp.txt,"~",16
|
||||
//covx tTmp.txt,tMR.pco,0,0
|
||||
spstr strCommand.txt,tTmp.txt,"~",17
|
||||
spstr strCommand.txt,tTmp.txt,"~",16
|
||||
covx tTmp.txt,tTimeAdd.pco,0,0
|
||||
if(tMainTextAlt2.txt!=""&&p0.w!=320)
|
||||
{
|
||||
|
||||
BIN
HMI/nspanel.HMI
BIN
HMI/nspanel.HMI
Binary file not shown.
BIN
HMI/nspanel.tft
BIN
HMI/nspanel.tft
Binary file not shown.
@@ -385,6 +385,18 @@ class LuiController(object):
|
||||
msg += f"- {apis.ha_api.get_entity(e).attributes.friendly_name}\r\n"
|
||||
self._pages_gen.send_message_page("opnSensorNotifyRes", "", msg, "", "")
|
||||
|
||||
# for cardUnlock
|
||||
if button_type == "cardUnlock-unlock":
|
||||
curCard = self._config.get_card_by_uuid(entity_id.replace('navigate.',''))
|
||||
if curCard is not None:
|
||||
if int(curCard.raw_config.get("pin")) == int(value):
|
||||
dstCard = self._config.search_card(curCard.raw_config.get("destination"))
|
||||
if dstCard is not None:
|
||||
if dstCard.hidden:
|
||||
self._previous_cards.append(self._current_card)
|
||||
self._current_card = dstCard
|
||||
self._pages_gen.render_card(self._current_card)
|
||||
|
||||
if button_type == "mode-preset_modes":
|
||||
entity = apis.ha_api.get_entity(entity_id)
|
||||
preset_mode = entity.attributes.preset_modes[int(value)]
|
||||
|
||||
@@ -6904,6 +6904,8 @@ def get_icon_id(ma_name):
|
||||
return ma_name.replace("text:","")
|
||||
if "ha:" in ma_name:
|
||||
return apis.ha_api.render_template(ma_name.replace("ha:",""))
|
||||
if "ha-i:" in ma_name:
|
||||
ma_name = apis.ha_api.render_template(ma_name.replace("ha:",""))
|
||||
ma_name = ma_name.replace("mdi:","")
|
||||
if ma_name in icons:
|
||||
return icons[ma_name]
|
||||
|
||||
@@ -121,6 +121,8 @@ class LuiPagesGen(object):
|
||||
self._send_mqtt_msg(f"date~{date}{addDateText}")
|
||||
|
||||
def page_type(self, target_page):
|
||||
if target_page == "cardUnlock":
|
||||
target_page = "cardAlarm"
|
||||
self._send_mqtt_msg(f"pageType~{target_page}")
|
||||
|
||||
def update_screensaver_weather(self, theme):
|
||||
@@ -137,6 +139,9 @@ class LuiPagesGen(object):
|
||||
item_str += self.generate_entities_item(item, "cardEntities")
|
||||
|
||||
self._send_mqtt_msg(f"weatherUpdate{item_str}")
|
||||
# send color if configured in screensaver
|
||||
if theme is not None:
|
||||
self._send_mqtt_msg(get_screensaver_color_output(theme=theme))
|
||||
|
||||
def update_status_icons(self):
|
||||
status_res = ""
|
||||
@@ -283,7 +288,10 @@ class LuiPagesGen(object):
|
||||
entityTypePanel = "text"
|
||||
device_class = entity.attributes.get("device_class", "")
|
||||
unit_of_measurement = entity.attributes.get("unit_of_measurement", "")
|
||||
value = entity.state + " " + unit_of_measurement
|
||||
value = entity.state
|
||||
if device_class != "temperature":
|
||||
value = value + " "
|
||||
value = value + unit_of_measurement
|
||||
if entityType == "binary_sensor":
|
||||
value = get_translation(self._locale, f"backend.component.binary_sensor.state.{device_class}.{entity.state}")
|
||||
if cardType == "cardGrid" and entityType == "sensor" and icon is None:
|
||||
@@ -368,6 +376,8 @@ class LuiPagesGen(object):
|
||||
ovalue = item.value
|
||||
if ovalue is not None:
|
||||
value = apis.ha_api.render_template(ovalue)
|
||||
if self._locale == "he_IL" and any("\u0590" <= c <= "\u05EA" for c in name):
|
||||
name = name[::-1]
|
||||
return f"~{entityTypePanel}~{entityId}~{icon_id}~{color}~{name}~{value}"
|
||||
|
||||
def generate_entities_page(self, navigation, heading, items, cardType, tempUnit):
|
||||
@@ -593,6 +603,20 @@ class LuiPagesGen(object):
|
||||
command = f"entityUpd~{title}~{navigation}~{item}{arm_buttons}~{icon}~{color}~{numpad}~{flashing}~{add_btn}"
|
||||
self._send_mqtt_msg(command)
|
||||
|
||||
def generate_unlock_page(self, navigation, item, title, destination, pin):
|
||||
color = rgb_dec565([255,0,0])
|
||||
icon = get_icon_id("lock")
|
||||
supported_modes = ["cardUnlock-unlock"]
|
||||
|
||||
# add padding to arm buttons
|
||||
arm_buttons = ""
|
||||
for b in supported_modes:
|
||||
arm_buttons += f'~{get_translation(self._locale, "frontend.ui.card.lock.unlock")}~{b}'
|
||||
if len(supported_modes) < 4:
|
||||
arm_buttons += "~"*((4-len(supported_modes))*2)
|
||||
numpad = "enable"
|
||||
command = f"entityUpd~{title}~{navigation}~{item}{arm_buttons}~{icon}~{color}~{numpad}~disable~"
|
||||
self._send_mqtt_msg(command)
|
||||
|
||||
def generate_qr_page(self, navigation, heading, items, cardType, qrcode):
|
||||
qrcode = apis.ha_api.render_template(qrcode)
|
||||
@@ -614,7 +638,12 @@ class LuiPagesGen(object):
|
||||
speed = str(item.entity_input_config.get("speed", 1))
|
||||
speed = apis.ha_api.render_template(speed)
|
||||
unit = get_attr_safe(entity, "unit_of_measurement", "")
|
||||
command += f"~{icon_color}~{icon}~{speed}~{entity.state} {unit}"
|
||||
value = f"{entity.state} {unit}"
|
||||
# Overwrite for value
|
||||
ovalue = item.value
|
||||
if ovalue is not None:
|
||||
value = apis.ha_api.render_template(ovalue)
|
||||
command += f"~{icon_color}~{icon}~{speed}~{value}"
|
||||
elif item.entityId == "delete":
|
||||
command += f"~~~~"
|
||||
else:
|
||||
@@ -677,6 +706,12 @@ class LuiPagesGen(object):
|
||||
overwrite_supported_modes = card.raw_config.get("supportedModes")
|
||||
self.generate_alarm_page(navigation, card.title, card.entity, overwrite_supported_modes, alarmBtn)
|
||||
return
|
||||
if card.cardType == "cardUnlock":
|
||||
pin = card.raw_config.get("pin", 3830)
|
||||
destination = card.raw_config.get("destination")
|
||||
item = card.uuid
|
||||
self.generate_unlock_page(navigation, item, card.title, destination, pin)
|
||||
return
|
||||
if card.cardType == "screensaver":
|
||||
theme = card.raw_config.get("theme")
|
||||
self.update_screensaver_weather(theme)
|
||||
@@ -901,3 +936,4 @@ class LuiPagesGen(object):
|
||||
def send_message_page(self, ident, heading, msg, b1, b2):
|
||||
self._send_mqtt_msg(f"pageType~popupNotify")
|
||||
self._send_mqtt_msg(f"entityUpdateDetail~{ident}~{heading}~65535~{b1}~65535~{b2}~65535~{msg}~65535~0")
|
||||
|
||||
|
||||
@@ -7,46 +7,29 @@ default_screensaver_color_mapping = {
|
||||
"time": "65535",
|
||||
"timeAMPM": "65535",
|
||||
"date": "65535",
|
||||
"tMainIcon": "65535",
|
||||
"tMainText": "65535",
|
||||
"tForecast1": "65535",
|
||||
"tForecast2": "65535",
|
||||
"tForecast3": "65535",
|
||||
"tForecast4": "65535",
|
||||
"tF1Icon": "65535",
|
||||
"tF2Icon": "65535",
|
||||
"tF3Icon": "65535",
|
||||
"tF4Icon": "65535",
|
||||
"tForecast1Val": "65535",
|
||||
"tForecast2Val": "65535",
|
||||
"tForecast3Val": "65535",
|
||||
"tForecast4Val": "65535",
|
||||
"bar": "65535",
|
||||
"tMRIcon": "65535",
|
||||
"tMR": "65535",
|
||||
"tMainTextAlt2": "65535",
|
||||
"tTimeAdd": "65535"
|
||||
}
|
||||
|
||||
def get_screensaver_color_output(theme, state=None):
|
||||
color_output = "color"
|
||||
for key in default_screensaver_color_mapping:
|
||||
color_output += f"~{map_color(key=key, theme=theme, state=state)}"
|
||||
color_output += f"~{map_color(key=key, theme=theme)}"
|
||||
return color_output
|
||||
|
||||
def map_color(key, theme, state=None):
|
||||
def map_color(key, theme):
|
||||
config_color = default_screensaver_color_mapping[key]
|
||||
# Use theme color if set
|
||||
if key in theme:
|
||||
config_color = rgb_dec565(theme[key])
|
||||
# Use Autocolouring for weather
|
||||
elif state is not None:
|
||||
if key in ["tMainIcon", "tF1Icon", "tF2Icon", "tF3Icon", "tF4Icon"]:
|
||||
config_color = map_weather_icon_color(key=key, theme=theme, state=state)
|
||||
return config_color
|
||||
|
||||
def map_weather_icon_color(key, theme, state):
|
||||
if key in state and state[key] in theme:
|
||||
config_color = rgb_dec565(theme[state[key]])
|
||||
else:
|
||||
config_color = "65535"
|
||||
return config_color
|
||||
@@ -28,7 +28,7 @@ class NsPanelLovelaceUIManager(hass.Hass):
|
||||
|
||||
desired_tasmota_driver_version = 8
|
||||
desired_display_firmware_version = 49
|
||||
version = "v3.9.0"
|
||||
version = "v3.9.4"
|
||||
|
||||
model = cfg.get("model")
|
||||
if model == "us-l":
|
||||
|
||||
@@ -13,7 +13,7 @@ List of supported config keys of this card:
|
||||
|
||||
key | optional | type | default | description
|
||||
-- | -- | -- | -- | --
|
||||
`type` | False | string | `None` | Used by navigate items
|
||||
`type` | False | string | `None` | Type of the card
|
||||
`title` | True | string | `None` | Title of the Page
|
||||
`entity` | False | string | `None` | contains the entity of the current card
|
||||
`key` | True | string | `None` | Used by navigate items
|
||||
|
||||
@@ -12,7 +12,7 @@ List of supported config keys of this card:
|
||||
|
||||
key | optional | type | default | description
|
||||
-- | -- | -- | -- | --
|
||||
`type` | False | string | `None` | Used by navigate items
|
||||
`type` | False | string | `None` | Type of the card
|
||||
`title` | True | string | `None` | Title of the Page
|
||||
`entity` | False | string | `None` | contains the entity of the current card
|
||||
`entities` | False | complex | `None` | contains a list of entities shown in the bottom row, supports all entities supported by cardGrid
|
||||
|
||||
@@ -29,7 +29,7 @@ List of supported config keys of this card:
|
||||
|
||||
key | optional | type | default | description
|
||||
-- | -- | -- | -- | --
|
||||
`type` | False | string | `None` | Used by navigate items
|
||||
`type` | False | string | `None` | Type of the card
|
||||
`entities` | False | complex | `None` | contains entities of the card
|
||||
`title` | True | string | `None` | Title of the Page
|
||||
`key` | True | string | `None` | Used by navigate items
|
||||
|
||||
@@ -20,7 +20,7 @@ List of supported config keys of this card:
|
||||
|
||||
key | optional | type | default | description
|
||||
-- | -- | -- | -- | --
|
||||
`type` | False | string | `None` | Used by navigate items
|
||||
`type` | False | string | `None` | Type of the card
|
||||
`entities` | False | complex | `None` | contains entities of the card, only valid on cardEntities and cardGrid and cardQR
|
||||
`title` | True | string | `None` | Title of the Page
|
||||
`key` | True | string | `None` | Used by navigate items
|
||||
|
||||
29
docs/card-unlock.md
Normal file
29
docs/card-unlock.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Unlock Card (v4.0 and higher)
|
||||
|
||||
Can be used to navigate to create pin locked navigation to a hidden card.
|
||||
|
||||

|
||||
|
||||
```yaml
|
||||
cards:
|
||||
- type: cardUnlock
|
||||
pin: 1234
|
||||
title: Admin Page
|
||||
destination: navigate.adminpage
|
||||
hiddenCards:
|
||||
- type: cardGrid
|
||||
title: Admin Page
|
||||
key: adminpage
|
||||
entities:
|
||||
- entity: light.schreibtischlampe
|
||||
```
|
||||
|
||||
List of supported config keys of this card:
|
||||
|
||||
key | optional | type | default | description
|
||||
-- | -- | -- | -- | --
|
||||
`type` | False | string | `None` | Type of the card
|
||||
`title` | True | string | `None` | Title of the Page
|
||||
`destination` | False | string | `None` | contains the navigation entity this card should navigate to on unlock
|
||||
`pin` | False | string | 3830 | pin to unlock
|
||||
`key` | True | string | `None` | Used by navigate items
|
||||
@@ -12,7 +12,6 @@ key | optional | type | default | description
|
||||
`key` | True | string | `None` | Used by navigate items
|
||||
|
||||
Example for the a screensaver config with custom entities/overrides:
|
||||
Using a 6th entity will automatically activate the alternative layout.
|
||||
|
||||
```yaml
|
||||
screensaver:
|
||||
@@ -38,8 +37,7 @@ Using a 6th entity will automatically activate the alternative layout.
|
||||
- entity: weather.demo_weather_north
|
||||
type: 1
|
||||
- entity: sensor.energy_usage
|
||||
- entity: weather.demo_weather_north
|
||||
type: 2
|
||||
- entity: delete
|
||||
- entity: sensor.indoor_temp
|
||||
icon: mdi:home-thermometer-outline
|
||||
```
|
||||
@@ -54,7 +52,6 @@ key | option | type | default | description
|
||||
`time` | True | list | White | `[R, G, B]`
|
||||
`timeAMPM` | True | list | White | `[R, G, B]`
|
||||
`date` | True | list | White | `[R, G, B]`
|
||||
`tMainIcon` | True | list | White | `[R, G, B]`
|
||||
`tMainText` | True | list | White | `[R, G, B]`
|
||||
`tForecast1` | True | list | White | `[R, G, B]`
|
||||
`tForecast2` | True | list | White | `[R, G, B]`
|
||||
@@ -65,13 +62,9 @@ key | option | type | default | description
|
||||
`tForecast3Val` | True | list | White | `[R, G, B]`
|
||||
`tForecast4Val` | True | list | White | `[R, G, B]`
|
||||
`bar` | True | list | White | `[R, G, B]`
|
||||
`tMainIconAlt` | True | list | White | `[R, G, B]`
|
||||
`tMainTextAlt` | True | list | White | `[R, G, B]`
|
||||
`tMRIcon` | True | list | White | `[R, G, B]`
|
||||
`tMR` | True | list | White | `[R, G, B]`
|
||||
`tTimeAdd` | True | list | White | `[R, G, B]`
|
||||
|
||||
|
||||
Specify colours as red green and blue values from 0-255 e.g. `[255, 0, 0]` for red or `[0, 0, 255]` for blue. These are translated internally to RGB565 (note that this has lower color depth so the colours may not appear the same). Also note that the screen has a low contrast ratio, so colors look sigificantly different at full display brightness and lowest brightness.
|
||||
|
||||
Example for the theme config:
|
||||
|
||||
@@ -73,6 +73,11 @@ There probably not much cases where this is needed, but here is an exmaple to sh
|
||||
icon: 'ha:{{ state_attr("climate.wohnzimmer_boden","current_temperature")}}'
|
||||
```
|
||||
|
||||
You can use the acual chars for the icon in the above ha: template, however if you want to use the icon names you can use `ha-i` instead. This will be evaluated as HA Template first and then looked up as an icon.
|
||||
|
||||
```yaml
|
||||
icon: 'ha-i:{{ iif(is_state('light.kitchen', 'on'), 'mdi:flashlight', 'mdi:flashlight-off') }}'
|
||||
```
|
||||
|
||||
## Hide item based on state
|
||||
|
||||
|
||||
BIN
docs/img/card-unlock.png
Normal file
BIN
docs/img/card-unlock.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -26,6 +26,12 @@ Font 4 - Size 80 (Icons and limited chars)
|
||||
Font 5 - Size 128 (ascii only)
|
||||
```
|
||||
|
||||
You need to use the acual char for the icon instead of the icon name which is used in the configuration. You can get the char of the icon from the cheatsheet.
|
||||
|
||||
https://docs.nspanel.pky.eu/icon-cheatsheet.html
|
||||
|
||||
|
||||
|
||||
|
||||
It is possible to exit from the page by sending `exitPopup`
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -82,6 +82,7 @@ nav:
|
||||
- "Alarm Card": card-alarm.md
|
||||
- "Wifi/QR Card": card-qr.md
|
||||
- "Power Card": card-power.md
|
||||
- "Unlock Card": card-unlock.md
|
||||
- "Special Settings for Entities": entities.md
|
||||
- "Subpages": subpages.md
|
||||
- "Notifications": notifications.md
|
||||
|
||||
Reference in New Issue
Block a user