Files
NSPanel_HA_Blueprint/nspanel_eu_code/lightsettings.txt
Chris 6de0c44b14 Nspanel event (#689)
* upd: hmi2txt export

* upd: sync latest dev

* upd: currentpage

* upd: lightsettings

* upd: coversettings

* upd: touchevent

* Fix error preventing long click on button pages

* upd: climate

* upd: lastclick w.o. blueprint

* Upd: Long_press - Lights

* Update: Everything else (#688)

Still a bug with confirmation message and long press button.

* Fix: Notifications

* Fix: Button long press

* Fix: Climate page

* Fix: Indoor temp when no sensor defined

* fix: open climate from homepage triggers mulitple

---------

Co-authored-by: Edward Firmo <94725493+edwardtfn@users.noreply.github.com>
2023-04-18 21:54:04 +02:00

984 lines
28 KiB
Plaintext

Page lightsettings
Attributes
ID : 0
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
Width : 480
Effect : load
Effect Priority : 0
Effect Time : 300
Locked : no
Swide up page ID : disabled
Swide down page ID : disabled
Swide left page ID : disabled
Swide right page ID: disabled
Fill : solid color
Back. Color : 0
Events
Preinitialize Event
printh 92
prints "nspanelevent",0
printh 00
prints "{\"page\": \"lightsettings\", \"component\": \"currentpage\", \"value\": \"pagechange\"}",0
printh 00
printh FF FF FF
vis light_b_press,1
vis lightslider,1
vis light_value,1
vis temp_value_2,1
// #### OFF Button #####
vis temp_b_press,0
vis color_b_pres,0
// #### OFF Value #####
vis temp_value,0
vis light_value_2,0
// #### OFF Slider #####
vis tempslider,0
vis colorwheel,0
Touch Press Event
printh 92
prints "touchevent",0
printh 00
prints "{\"page\": \"lightsettings\", \"component\": \"touchevent\", \"value\": \"press\"}",0
printh 00
printh FF FF FF
Touch Release Event
printh 92
prints "touchevent",0
printh 00
prints "{\"page\": \"lightsettings\", \"component\": \"touchevent\", \"value\": \"release\"}",0
printh 00
printh FF FF FF
Variable (int32) rgb565
Attributes
ID : 22
Scope: local
Value: 0
Variable (string) va1
Attributes
ID : 23
Scope : local
Text : newtxt
Max. Text Size: 20
Variable (string) va2
Attributes
ID : 24
Scope : local
Text : newtxt
Max. Text Size: 10
Variable (string) va3
Attributes
ID : 25
Scope : local
Text : newtxt
Max. Text Size: 10
Variable (int32) currenttab
Attributes
ID : 26
Scope: local
Value: 0
Variable (string) lightsetting
Attributes
ID : 32
Scope : local
Text :
Max. Text Size: 100
Number ring
Attributes
ID : 4
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 459
y coordinate : 188
Width : 21
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 1
Back. Color : 0
Font Color : 0
Horizontal Alignment : right
Vertical Alignment : center
Value : 0
Significant digits shown: all
Format : decimal
Word wrap : enabled
Horizontal Spacing : 0
Vertical Spacing : 0
Number field
Attributes
ID : 5
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 459
y coordinate : 233
Width : 21
Height : 40
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 1
Back. Color : 0
Font Color : 0
Horizontal Alignment : right
Vertical Alignment : center
Value : 0
Significant digits shown: all
Format : decimal
Word wrap : enabled
Horizontal Spacing : 0
Vertical Spacing : 0
Text light_value
Attributes
ID : 1
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 183
y coordinate : 43
Width : 83
Height : 20
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 2
Back. Color : 0
Font Color : 65535
Horizontal Alignment: center
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Text light_name
Attributes
ID : 2
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 48
y coordinate : 8
Width : 300
Height : 30
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 2
Back. Color : 0
Font Color : 65535
Horizontal Alignment: left
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 25
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Text temp_value
Attributes
ID : 14
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 183
y coordinate : 43
Width : 83
Height : 20
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 2
Back. Color : 0
Font Color : 65535
Horizontal Alignment: center
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Text light_value_2
Attributes
ID : 27
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 73
y coordinate : 80
Width : 50
Height : 20
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 2
Back. Color : 0
Font Color : 65535
Horizontal Alignment: right
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Text temp_value_2
Attributes
ID : 28
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 331
y coordinate : 80
Width : 50
Height : 20
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 2
Back. Color : 0
Font Color : 65535
Horizontal Alignment: right
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Text icon_state
Attributes
ID : 31
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 12
y coordinate : 8
Width : 35
Height : 35
Effect : load
Effect Priority : 0
Effect Time : 300
Fill : solid color
Style : flat
Associated Keyboard : none
Font ID : 8
Back. Color : 0
Font Color : 65535
Horizontal Alignment: center
Vertical Alignment : center
Input Type : character
Text :
Max. Text Size : 10
Word wrap : disabled
Horizontal Spacing : 0
Vertical Spacing : 0
Picture light_button
Attributes
ID : 8
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 20
y coordinate : 67
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 69
Picture color_button
Attributes
ID : 9
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 389
y coordinate : 130
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 73
Picture temp_button
Attributes
ID : 10
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 389
y coordinate : 67
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 71
Picture light_b_press
Attributes
ID : 11
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 20
y coordinate : 67
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 70
Picture temp_b_press
Attributes
ID : 12
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 389
y coordinate : 67
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 72
Picture color_b_pres
Attributes
ID : 13
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 389
y coordinate : 130
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 74
Picture colorwheel
Attributes
ID : 16
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 125
y coordinate : 68
Width : 200
Height : 200
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 50
Events
Touch Press Event
// Circular Color Picker for Nextion (c) Max Zuidberg 2022
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
//
// Put this code in the touch press or release
// event of the pic component with the color wheel.
// Requires the two variables field.val and ring.val
//
// sya0 = x, sya1 = sya1
// Note the usage of the hidden sya0, sya1 variables
// within event code as local, temporary variable is fine.
sya0=tch0
sya1=tch1
//
// Convert absolute coordinates to coordinates relative to
// the color wheel center.
// sys0 = x_center, sys1 = y_center
sys0=colorwheel.w/2
sys0+=colorwheel.x
sys1=colorwheel.h/2
sys1+=colorwheel.y
sya0-=sys0
sya1-=sys1
//
// Determine ring
ring.val=0
// sys0 = r^2 = x^2 + y^2
sys0=sya0*sya0
sys1=sya1*sya1
sys0+=sys1
// repeat for all rings
if(sys0>=156)
{
ring.val++
}
if(sys0>=625)
{
ring.val++
}
if(sys0>=1406)
{
ring.val++
}
if(sys0>=2500)
{
ring.val++
}
if(sys0>=3906)
{
ring.val++
}
if(sys0>=5625)
{
ring.val++
}
if(sys0>=7656)
{
ring.val++
}
//
// Determine quadrant (0-3). Note: pixel y coords are inverted
// compared to mathematical y coords. But we want math. quadrants.
sya1*=-1
sys2=0
if(sya1<0)
{
sys2+=2
}
sys0=sya0*sya1
if(sys0<0)
{
sys2+=1
// In this case we also want to swap x and y otherwise the
// atan(abs(x/y)) (calculated below) gives values running
// "the wrong way" (cw instead of ccw).
sys1=sya1
sya1=sya0
sya0=sys1
}
//
field.val=sys2*6
//
// x,y sign is not required anymore
if(sya0<0)
{
sya0*=-1
}
if(sya1<0)
{
sya1*=-1
}
//
// Determine field in ring quadrant
// Factor 100000 chosen more or less arbitrarily.
// sys0 = 100000 * tan_a = 100000 * y / x
sys0=100000*sya1
sys0/=sya0
// repeat for all fields
if(sys0>=26794)
{
field.val++
}
if(sys0>=57735)
{
field.val++
}
if(sys0>=99999)
{
field.val++
}
if(sys0>=173205)
{
field.val++
}
if(sys0>=373205)
{
field.val++
}
covx r,va1.txt,0,0
covx g,va2.txt,0,0
covx b,va3.txt,0,0
va1.txt=""
va2.txt=""
va3.txt=""
Touch Release Event
// Adjust field.val "orientation" and offset to match the h value of the colors in the wheel
h=23-field.val// 0 <= field.val <= 23
// h is expected to be 0-6*256 (see hsv2rgb)
h*=6*256
h/=24// Number of fields
//
// s is expected to be 0-256 (see hsv2rgb)
s=ring.val*256
s/=8// Number of rings
// no "value" selectable; fix it to the maximum (matching the colors in the wheels shown.
v=255
click hsv2rgb,0
click rgb888to565,0
//colPreview.bco=rgb565.val
covx r,va1.txt,0,0
covx g,va2.txt,0,0
covx b,va3.txt,0,0
lightsetting.txt="{\"page\": \"lightsettings\", \"component\": \"rgb_color\", \"value\": ["+va1.txt+","+va2.txt+","+va3.txt+"]}"
printh 92
prints "nspanelevent",0
printh 00
prints lightsetting.txt,0
printh 00
printh FF FF FF
va1.txt=""
va2.txt=""
va3.txt=""
Picture light_exit
Attributes
ID : 29
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 415
y coordinate : 10
Width : 25
Height : 25
Effect : load
Effect Priority : 0
Effect Time : 300
Picture ID : 56
Slider lightslider
Attributes
ID : 3
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 183
y coordinate : 67
Width : 85
Height : 235
Effect : load
Effect Priority : 0
Effect Time : 300
Direction : vertical
Fill : image
Cursor width : auto
Cursor height : 255
Back. Picture ID : 75
Slided Back. Picture ID: 76
Position : 0
Upper range limit : 100
Lower range limit : 0
Events
Touch Release Event
covx lightslider.val,va1.txt,0,0
light_value.txt=va1.txt+"%"
light_value_2.txt=va1.txt+"%"
lightsetting.txt="{\"page\": \"lightsettings\", \"component\": \"brightness_pct\", \"value\": "+va1.txt+"}"
printh 92
prints "nspanelevent",0
printh 00
prints lightsetting.txt,0
printh 00
printh FF FF FF
Slider tempslider
Attributes
ID : 15
Scope : local
Dragging : 0
Send Component ID : disabled
Opacity : 127
x coordinate : 183
y coordinate : 67
Width : 85
Height : 235
Effect : load
Effect Priority : 0
Effect Time : 300
Direction : vertical
Fill : image
Cursor width : auto
Cursor height : 255
Back. Picture ID : 64
Slided Back. Picture ID: 64
Position : 0
Upper range limit : 500
Lower range limit : 153
Events
Touch Release Event
covx tempslider.val,va1.txt,0,0
temp_value.txt=va1.txt
temp_value_2.txt=va1.txt
lightsetting.txt="{\"page\": \"lightsettings\", \"component\": \"color_temp\", \"value\": "+va1.txt+"}"
printh 92
prints "nspanelevent",0
printh 00
prints lightsetting.txt,0
printh 00
printh FF FF FF
Hotspot hsv2rgb
Attributes
ID : 6
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 440
y coordinate : 278
Width : 40
Height : 20
Effect : load
Effect Priority : 0
Effect Time : 300
Events
Touch Release Event
// https://de.wikipedia.org/wiki/HSV-Farbraum#Umrechnung_HSV_in_RGB
// The values range from 0..255 instead of 0..1
// h ranges from 0..(6*256)
if(s>=256)
{
s=255
}else if(s<0)
{
s=0
}
if(v>=256)
{
v=255
}else if(v<0)
{
v=0
}
f=h&0xff
p=256-s
p*=v
p=p>>8// / 256
q=s*f// 0-256*256 = 0-65536
q=65536-q
q*=v
q=q>>16
t=256-f
t*=s
t=65536-t
t*=v
t=t>>16
//
f=h>>8
if(f==1)
{
r=q
g=v
b=p
}else if(f==2)
{
r=p
g=v
b=t
}else if(f==3)
{
r=p
g=q
b=v
}else if(f==4)
{
r=t
g=p
b=v
}else if(f==5)
{
r=v
g=p
b=q
}else
{
r=v
g=t
b=p
}
Hotspot rgb888to565
Attributes
ID : 7
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 440
y coordinate : 300
Width : 40
Height : 20
Effect : load
Effect Priority : 0
Effect Time : 300
Events
Touch Release Event
r=r&0xff
g=g&0xff
b=b&0xff
sys1=r>>3
sys2=sys1<<6
sys1=g>>2
sys2+=sys1
sys2=sys2<<5
sys1=b>>3
sys2+=sys1
rgb565.val=sys2
Hotspot light_touch
Attributes
ID : 17
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 20
y coordinate : 67
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Events
Touch Press Event
vis light_b_press,1
vis lightslider,1
vis light_value,1
vis temp_value_2,1
// #### OFF Button #####
vis temp_b_press,0
vis color_b_pres,0
// #### OFF Value #####
vis temp_value,0
vis light_value_2,0
// #### OFF Slider #####
vis tempslider,0
vis colorwheel,0
Hotspot temp_touch
Attributes
ID : 18
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 389
y coordinate : 67
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Events
Touch Press Event
vis temp_b_press,1
vis tempslider,1
vis temp_value,1
vis light_value_2,1
// #### OFF Button #####
vis light_b_press,0
vis color_b_pres,0
// #### OFF Value #####
vis light_value,0
vis temp_value_2,0
// #### OFF Slider #####
vis lightslider,0
vis colorwheel,0
Hotspot color_touch
Attributes
ID : 19
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 389
y coordinate : 130
Width : 50
Height : 50
Effect : load
Effect Priority : 0
Effect Time : 300
Events
Touch Press Event
vis color_b_pres,1
vis colorwheel,1
vis light_value_2,1
// #### OFF Button #####
vis light_b_press,0
vis temp_b_press,0
// #### OFF Value #####
vis light_value,0
vis temp_value,0
vis temp_value_2,0
// #### OFF Slider #####
vis lightslider,0
vis tempslider,0
// #### OFF Color #####
Hotspot light_back
Attributes
ID : 30
Scope : local
Dragging : 0
Send Component ID: disabled
Opacity : 127
x coordinate : 387
y coordinate : 0
Width : 60
Height : 60
Effect : load
Effect Priority : 0
Effect Time : 300
Events
Touch Press Event
lightsetting.txt="{\"page\": \"lightsettings\", \"component\": \"close\", \"value\": \"press\"}"
printh 92
prints "nspanelevent",0
printh 00
prints lightsetting.txt,0
printh 00
printh FF FF FF
Touch Release Event
lightsetting.txt="{\"page\": \"lightsettings\", \"component\": \"close\", \"value\": \"release\"}"
printh 92
prints "nspanelevent",0
printh 00
prints lightsetting.txt,0
printh 00
printh FF FF FF
Timer swipestore
Attributes
ID : 21
Scope : local
Period (ms): 50
Enabled : no
Events
Timer Event
swipex=tch0
swipey=tch1
TouchCap swipe
Attributes
ID : 20
Scope: local
Value: 0
Events
Touch Press Event
swipestore.en=1 // Start swipestore timer
Touch Release Event
swipestore.en=0
// Touch has ended, x
if(tch0==0)
{
swipec=swipex-tch2
// From Left to Right
if(swipec>swipedx)
{
//page
}
// Right to Left
swipec2=0-swipedx
if(swipec<swipec2)
{
//page
}
}
// Touch has ended, y
if(tch1==0)
{
swipec=swipey-tch3
// From Up to Down
if(swipec>100)
{
//page
}
// Down to Up
swipec2=0-swipedy
if(swipec<-100)
{
//page
}
}