Page climate
    Attributes
        ID                 : 0
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Locked             : no
        Swide up page ID   : disabled
        Swide down page ID : disabled
        Swide left page ID : disabled
        Swide right page ID: disabled
    
    Events
        Preinitialize Event
            if(api==1||embedded.val==1)
            {
                vis target_icon,0
                vis target_high,0
                vis target_low,0
                vis current_temp,0
                vis climateslider,0
                vis slider_high,0
                vis slider_low,0
                vis button01,0
                vis button02,0
                vis button03,0
                vis button04,0
                vis button05,0
                vis button06,0
                vis button07,0
            }else
            {
                page home
            }
            vis unavailable,0
        
        Postinitialize Event
            sendme
        
        Page Exit Event
            covx embedded.val,va2.txt,0,0
            if(timer0.en==1)
            {
                timer0.en=0
                covx temp_number0.val,va1.txt,0,0
                climatesetting.txt="{\"page\": \"climate\", \"key\": \"temperature\", \"value\": "+va1.txt+", \"embedded\": "+va2.txt+"}"
                printh 92
                prints "localevent",0
                printh 00
                prints climatesetting.txt,0
                printh 00
                printh FF FF FF
            }
            if(timer1.en==1)
            {
                timer1.en=0
                covx temp_number1.val,va1.txt,0,0
                climatesetting.txt="{\"page\": \"climate\", \"key\": \"target_temp_high\", \"value\": "+va1.txt+", \"embedded\": "+va2.txt+"}"
                printh 92
                prints "localevent",0
                printh 00
                prints climatesetting.txt,0
                printh 00
                printh FF FF FF
            }
            if(timer2.en==1)
            {
                timer2.en=0
                covx temp_number2.val,va1.txt,0,0
                climatesetting.txt="{\"page\": \"climate\", \"key\": \"target_temp_low\", \"value\": "+va1.txt+", \"embedded\": "+va2.txt+"}"
                printh 92
                prints "localevent",0
                printh 00
                prints climatesetting.txt,0
                printh 00
                printh FF FF FF
            }
        
Variable (string) va1
    Attributes
        ID            : 24
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) climatesetting
    Attributes
        ID            : 25
        Scope         : local
        Text          : 
        Max. Text Size: 255
    
Variable (string) lastclick
    Attributes
        ID            : 26
        Scope         : local
        Text          : 
        Max. Text Size: 255
    
Variable (int32) temp_offset
    Attributes
        ID   : 28
        Scope: local
        Value: 0
    
Variable (int32) temp_step
    Attributes
        ID   : 29
        Scope: local
        Value: 0
    
Variable (int32) temp_number0
    Attributes
        ID   : 33
        Scope: local
        Value: 0
    
Variable (int32) va0
    Attributes
        ID   : 34
        Scope: local
        Value: 0
    
Variable (int32) embedded
    Attributes
        ID   : 35
        Scope: global
        Value: 0
    
Variable (string) va2
    Attributes
        ID            : 36
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) click_comp
    Attributes
        ID            : 38
        Scope         : local
        Text          : 
        Max. Text Size: 8
    
Variable (int32) active_slider
    Attributes
        ID   : 42
        Scope: local
        Value: 1
    
Variable (int32) is_temp_range
    Attributes
        ID   : 44
        Scope: local
        Value: 0
    
Variable (int32) temp_number1
    Attributes
        ID   : 48
        Scope: local
        Value: 0
    
Variable (int32) temp_number2
    Attributes
        ID   : 49
        Scope: local
        Value: 0
    
Variable (string) temp_unit
    Attributes
        ID            : 50
        Scope         : local
        Text          : Â°
        Max. Text Size: 10
    
Variable (int32) temp_low_max
    Attributes
        ID   : 51
        Scope: local
        Value: 0
    
Variable (int32) temp_high_min
    Attributes
        ID   : 52
        Scope: local
        Value: 0
    
Variable (int32) temp_gap
    Attributes
        ID   : 53
        Scope: local
        Value: 0
    
Text current_temp
    Attributes
        ID                 : 3
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 25
    
Text page_label
    Attributes
        ID                 : 6
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 100
    
Text target_icon
    Attributes
        ID                 : 8
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
Text value01_icon
    Attributes
        ID                 : 9
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
Text value01
    Attributes
        ID                 : 10
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 6
    
Text value02_icon
    Attributes
        ID                 : 11
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
Text value02
    Attributes
        ID                 : 12
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 6
    
Text value03_icon
    Attributes
        ID                 : 13
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
Text value03
    Attributes
        ID                 : 14
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 6
    
Text value04_icon
    Attributes
        ID                 : 15
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
Text value04
    Attributes
        ID                 : 16
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 6
    
Text button01
    Attributes
        ID                 : 17
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : îº
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"auto\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button02
    Attributes
        ID                 : 18
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : î©
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"heat_cool\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button03
    Attributes
        ID                 : 19
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : îˆ·
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"heat\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button04
    Attributes
        ID                 : 20
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : îœ–
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"cool\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button05
    Attributes
        ID                 : 21
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : î–
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"dry\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button06
    Attributes
        ID                 : 22
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : îˆ
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"fan_only\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button07
    Attributes
        ID                 : 23
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : î¤
        Max. Text Size     : 3
    
    Events
        Touch Release Event
            covx embedded.val,va2.txt,0,0
            lastclick.txt="{\"page\": \"climate\", \"key\": \"hvac_mode\", \"value\": \"off\", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
        
Text button08
    Attributes
        ID                 : 30
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
    Events
        Touch Press Event
            click_comp.txt="button08"
            click_timer.en=1
        
        Touch Release Event
            if(click_timer.en==1)
            {
                click_timer.en=0
                lastclick.txt="{\"page\": \"climate\", \"event\": \"short_click\", \"component\": \""+click_comp.txt+"\"}"
                printh 92
                prints "localevent",0
                printh 00
                prints lastclick.txt,0
                printh 00
                printh FF FF FF
            }
        
Text button09
    Attributes
        ID                 : 31
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
    Events
        Touch Press Event
            click_comp.txt="button09"
            click_timer.en=1
        
        Touch Release Event
            if(click_timer.en==1)
            {
                click_timer.en=0
                lastclick.txt="{\"page\": \"climate\", \"event\": \"short_click\", \"component\": \""+click_comp.txt+"\"}"
                printh 92
                prints "localevent",0
                printh 00
                prints lastclick.txt,0
                printh 00
                printh FF FF FF
            }
        
Text target_high
    Attributes
        ID                 : 32
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
    Events
        Touch Release Event
            active_slider.val=is_temp_range.val
        
Text target_low
    Attributes
        ID                 : 43
        Scope              : local
        Dragging           : 0
        Send Component ID  : on press and release
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 10
    
    Events
        Touch Release Event
            active_slider.val=2
        
Text unavailable
    Attributes
        ID                 : 54
        Scope              : local
        Dragging           : 0
        Send Component ID  : disabled
        Associated Keyboard: none
        Text               : 
        Max. Text Size     : 1
    
Slider slider_high
    Attributes
        ID               : 7
        Scope            : local
        Dragging         : 0
        Send Component ID: on press and release
        Position         : 215
        Upper range limit: 400
        Lower range limit: 0
    
    Events
        Touch Press Event
            temp_gap.val=3*temp_step.val
            temp_high_min.val=slider_low.val+temp_gap.val
        
        Touch Release Event
            if(slider_high.val<temp_high_min.val)
            {
                slider_high.val=temp_high_min.val
            }
            temp_number1.val=slider_high.val*temp_step.val
            temp_number1.val+=temp_offset.val
            va0.val=temp_number1.val/10
            covx va0.val,target_high.txt,0,0
            va0.val=temp_number1.val%10
            covx va0.val,va1.txt,0,0
            target_high.txt+="."+va1.txt
            target_high.txt+=temp_unit.txt
            timer1.en=1
            active_slider.val=1
            temp_gap.val=3*temp_step.val
            temp_low_max.val=slider_high.val-temp_gap.val
        
Slider slider_low
    Attributes
        ID               : 41
        Scope            : local
        Dragging         : 0
        Send Component ID: on press and release
        Position         : 185
        Upper range limit: 400
        Lower range limit: 0
    
    Events
        Touch Press Event
            temp_gap.val=3*temp_step.val
            temp_low_max.val=slider_high.val-temp_gap.val
        
        Touch Release Event
            if(slider_low.val>temp_low_max.val)
            {
                slider_low.val=temp_low_max.val
            }
            temp_number2.val=slider_low.val*temp_step.val
            temp_number2.val+=temp_offset.val
            va0.val=temp_number2.val/10
            covx va0.val,target_low.txt,0,0
            va0.val=temp_number2.val%10
            covx va0.val,va1.txt,0,0
            target_low.txt+="."+va1.txt
            target_low.txt+=temp_unit.txt
            timer2.en=1
            active_slider.val=2
            temp_gap.val=3*temp_step.val
            temp_high_min.val=slider_low.val+temp_gap.val
        
Slider climateslider
    Attributes
        ID               : 45
        Scope            : local
        Dragging         : 0
        Send Component ID: on press and release
        Position         : 200
        Upper range limit: 400
        Lower range limit: 0
    
    Events
        Touch Release Event
            temp_number0.val=climateslider.val*temp_step.val
            temp_number0.val+=temp_offset.val
            va0.val=temp_number0.val/10
            covx va0.val,target_high.txt,0,0
            va0.val=temp_number0.val%10
            covx va0.val,va1.txt,0,0
            target_high.txt+="."+va1.txt
            target_high.txt+=temp_unit.txt
            active_slider.val=0
            timer0.en=1
        
Button button_back
    Attributes
        ID               : 37
        Scope            : local
        Dragging         : 0
        Send Component ID: on press and release
        State            : unpressed
        Text             : î…˜
        Max. Text Size   : 3
    
    Events
        Touch Press Event
            page back_page_id
        
Hotspot decrease_temp
    Attributes
        ID               : 4
        Scope            : local
        Dragging         : 0
        Send Component ID: on press and release
    
    Events
        Touch Press Event
            if(active_slider.val==0)
            {
                if(climateslider.val>0)
                {
                    climateslider.val--
                    temp_number0.val=climateslider.val*temp_step.val
                    temp_number0.val+=temp_offset.val
                    va0.val=temp_number0.val/10
                    covx va0.val,target_high.txt,0,0
                    va0.val=temp_number0.val%10
                    covx va0.val,va1.txt,0,0
                    target_high.txt+="."+va1.txt
                    target_high.txt+=temp_unit.txt
                }
            }else if(active_slider.val==1)
            {
                if(slider_high.val>0)
                {
                    slider_high.val--
                    temp_number1.val=slider_high.val*temp_step.val
                    temp_number1.val+=temp_offset.val
                    va0.val=temp_number1.val/10
                    covx va0.val,target_high.txt,0,0
                    va0.val=temp_number1.val%10
                    covx va0.val,va1.txt,0,0
                    target_high.txt+="."+va1.txt
                    target_high.txt+=temp_unit.txt
                }
            }else if(active_slider.val==2)
            {
                if(slider_low.val>0)
                {
                    slider_low.val--
                    temp_number2.val=slider_low.val*temp_step.val
                    temp_number2.val+=temp_offset.val
                    va0.val=temp_number2.val/10
                    covx va0.val,target_low.txt,0,0
                    va0.val=temp_number2.val%10
                    covx va0.val,va1.txt,0,0
                    target_low.txt+="."+va1.txt
                    target_low.txt+=temp_unit.txt
                }
            }
        
        Touch Release Event
            if(active_slider.val==0)
            {
                timer0.en=1
            }else if(active_slider.val==1)
            {
                timer1.en=1
            }else if(active_slider.val==2)
            {
                timer2.en=1
            }
        
Hotspot increase_temp
    Attributes
        ID               : 5
        Scope            : local
        Dragging         : 0
        Send Component ID: on press and release
    
    Events
        Touch Press Event
            if(active_slider.val==0)
            {
                if(climateslider.val<climateslider.maxval)
                {
                    climateslider.val++
                    temp_number0.val=climateslider.val*temp_step.val
                    temp_number0.val+=temp_offset.val
                    va0.val=temp_number0.val/10
                    covx va0.val,target_high.txt,0,0
                    va0.val=temp_number0.val%10
                    covx va0.val,va1.txt,0,0
                    target_high.txt+="."+va1.txt
                    target_high.txt+=temp_unit.txt
                }
            }else if(active_slider.val==1)
            {
                if(slider_high.val<slider_high.maxval)
                {
                    slider_high.val++
                    temp_number1.val=slider_high.val*temp_step.val
                    temp_number1.val+=temp_offset.val
                    va0.val=temp_number1.val/10
                    covx va0.val,target_high.txt,0,0
                    va0.val=temp_number1.val%10
                    covx va0.val,va1.txt,0,0
                    target_high.txt+="."+va1.txt
                    target_high.txt+=temp_unit.txt
                }
            }else if(active_slider.val==2)
            {
                if(slider_low.val<slider_low.maxval)
                {
                    slider_low.val++
                    temp_number2.val=slider_low.val*temp_step.val
                    temp_number2.val+=temp_offset.val
                    va0.val=temp_number2.val/10
                    covx va0.val,target_low.txt,0,0
                    va0.val=temp_number2.val%10
                    covx va0.val,va1.txt,0,0
                    target_low.txt+="."+va1.txt
                    target_low.txt+=temp_unit.txt
                }
            }
        
        Touch Release Event
            if(active_slider.val==0)
            {
                timer0.en=1
            }else if(active_slider.val==1)
            {
                timer1.en=1
            }else if(active_slider.val==2)
            {
                timer2.en=1
            }
        
Timer swipestore
    Attributes
        ID         : 2
        Scope      : local
        Period (ms): 50
        Enabled    : no
    
    Events
        Timer Event
            swipex=tch0
            swipey=tch1
        
Timer timer0
    Attributes
        ID         : 27
        Scope      : local
        Period (ms): 1000
        Enabled    : no
    
    Events
        Timer Event
            timer0.en=0
            covx embedded.val,va2.txt,0,0
            covx temp_number0.val,va1.txt,0,0
            climatesetting.txt="{\"page\": \"climate\", \"key\": \"temperature\", \"value\": "+va1.txt+", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints climatesetting.txt,0
            printh 00
            printh FF FF FF
        
Timer click_timer
    Attributes
        ID         : 39
        Scope      : local
        Period (ms): 800
        Enabled    : no
    
    Events
        Timer Event
            lastclick.txt="{\"page\": \"climate\", \"event\": \"long_click\", \"component\": \""+click_comp.txt+"\"}"
            printh 92
            prints "localevent",0
            printh 00
            prints lastclick.txt,0
            printh 00
            printh FF FF FF
            click_timer.en=0
        
Timer wakeup_timer
    Attributes
        ID         : 40
        Scope      : local
        Period (ms): 100
        Enabled    : yes
    
    Events
        Timer Event
            if(dim<brightness)
            {
                dimdelta=brightness-dim
                dimdelta/=10
                if(dimdelta<1)
                {
                    dimdelta=1
                }
                dim+=dimdelta
            }else
            {
                wakeup_timer.en=0
            }
        
Timer timer1
    Attributes
        ID         : 46
        Scope      : local
        Period (ms): 1000
        Enabled    : no
    
    Events
        Timer Event
            timer1.en=0
            covx embedded.val,va2.txt,0,0
            covx temp_number1.val,va1.txt,0,0
            climatesetting.txt="{\"page\": \"climate\", \"key\": \"target_temp_high\", \"value\": "+va1.txt+", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints climatesetting.txt,0
            printh 00
            printh FF FF FF
        
Timer timer2
    Attributes
        ID         : 47
        Scope      : local
        Period (ms): 1000
        Enabled    : no
    
    Events
        Timer Event
            timer2.en=0
            covx embedded.val,va2.txt,0,0
            covx temp_number2.val,va1.txt,0,0
            climatesetting.txt="{\"page\": \"climate\", \"key\": \"target_temp_low\", \"value\": "+va1.txt+", \"embedded\": "+va2.txt+"}"
            printh 92
            prints "localevent",0
            printh 00
            prints climatesetting.txt,0
            printh 00
            printh FF FF FF
        
TouchCap swipe
    Attributes
        ID   : 1
        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
                }
            }
        
