Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '****************************************************************
- '* Name : Master.BAS *
- '* Author : [Mike Mummert] *
- '* Notice : Copyright (c) 2011 *
- '* : All Rights Reserved *
- '* Date : 02/11/2016 *
- '* Version : 2.0 18F2685 /DS1340C RTC (Gravitech) *
- '* Notes : X-Bee wireless communication *
- '* : PINK web Server *
- '****************************************************************
- INCLUDE "modedefs.bas"
- 'Include "bs2defs.bas"
- include "ALLDIGITAL.pbp"
- ' INCLUDE "DT_INTS-18.bas" ; Base Interrupt System
- ' INCLUDE "ReEnterPBP-18.bas" ; Include if using PBP interrupts
- OSCCON =$60 'clock speed
- '______________Defines
- DEFINE DEBUG_REG PORTC
- DEFINE DEBUG_BIT 5
- DEFINE DEBUG_BAUD 9600
- DEFINE DEBUG_MODE 1
- DEFINE OSC 4
- '---------------Ports
- ' TRISB.2=1
- ' trisb.3=0
- EpSDA var PortA.0
- EpSCL var PortA.1
- SDA var PortC.4
- SCL var PortC.3
- TX var PortC.6
- RX var PortC.7
- PinkRX var PortB.0 ' Serial Receieve Pin --> PINK.TX
- PinkTX var PortB.1 ' Serial Transmit Pin --> PINK.RX
- clock var PortC.0
- serdata var PortC.1
- Latch var PortC.2
- MiniSplit var PortB.2
- PinkReset var PortB.3
- high pinkreset
- '---------------Cons
- I2C_WR CON $D0 ' I2C write address
- I2C_RD CON $D1 ' I2C read address
- Baud CON 84 ' 9600 baud, non-inverted
- PinkBaud con 84' 9600 baud
- Insteon con 32 '19200
- '--------------Vars
- nbvar VAR Byte ' PINK Data Variable
- busy VAR nbvar.BIT2 ' E-Mail Busy Flag (Alias)
- complete VAR nbvar.BIT4 ' E-Mail Complete Flag (Alias)
- tank var byte
- panel var byte
- Nb_var79 var byte 'useful tank temp
- Nb_var78 var BYTE 'Tracker home temp
- NB_var82 var byte ' greenhouse temp
- Nb_Var83 var byte 'vent setting
- W var byte
- R var byte
- w=$af
- R=$ae
- Second VAR BYTE
- Minute VAR BYTE
- Hour VAR byte
- Day VAR BYTE
- date var byte
- Month VAR BYTE
- Year VAR BYTE
- modeSelect var word
- UnitWake var word
- UnitLeave var word
- UnitReturn var word
- UnitSleep VAr Word
- pinkhour var byte
- pinkminute var byte
- ' Attn var byte
- mem1 var byte
- mem2 var byte
- mem3 var byte
- mem1 = 254
- mem2 = 254
- 'index var byte
- result var byte
- timeout_bit var byte
- timeout_bit =0
- PauseBit var word 'timeout varialbel
- pauseBit = 1000
- sunrise_hour var byte
- hoursunset_hour var byte
- Sunrise_min var byte
- Sunset_hour var byte
- sunset_min var byte
- day_of_year var word
- month_multiplier var word
- backlight_bit var byte
- Busy_Bit var byte
- Busy_Bit = 5 'busy bit to reduce timeout
- 'Office Vars
- office_mode var byte
- office_mode = 0
- Office_Temp var byte
- Office_Setting var byte
- Nb_var02 var byte 'office setting
- Nb_varH03 var byte 'office wake hour
- Nb_varM03 var byte 'office wake min
- Nb_var04 var byte 'ofice wake temp
- Nb_varH05 var byte 'office leave hour
- Nb_varM05 var byte 'office leave min
- Nb_var06 var byte 'office leave temp
- Nb_varH07 var byte 'office return Hour
- Nb_varM07 var byte 'office return min
- Nb_var08 var byte 'office return temp
- Nb_varH09 var byte 'office sleep Hour
- Nb_varM09 var byte 'office sleep min
- Nb_var10 var byte 'office sleep temp
- 'bedroom
- bedroom_mode var byte
- bedroom_mode = 0
- bedroom_Temp var byte
- bedroom_Setting var byte
- Nb_var12 var byte
- Nb_varH13 var byte 'wake
- Nb_varM13 var byte
- Nb_var14 var byte '
- Nb_varH15 var byte'leave
- Nb_varM15 var byte
- Nb_var16 var byte
- Nb_varH17 var byte
- Nb_varM17 var byte
- Nb_var18 var byte
- Nb_varH19 var byte
- Nb_varM19 Var byte
- Nb_var20 var byte
- 'Dining room
- DiningRoom_mode var byte
- DiningRoom_mode = 0
- DiningRoom_Temp var byte
- DiningRoom_Setting var byte
- Nb_var22 var byte
- Nb_varH23 var byte 'wake
- Nb_varM23 var byte
- Nb_var24 var byte '
- Nb_varH25 var byte'leave
- Nb_varM25 var byte
- Nb_var26 var byte
- Nb_varH27 var byte
- Nb_varM27 var byte
- Nb_var28 var byte
- Nb_varH29 var byte
- Nb_varM29 Var byte
- Nb_var30 var byte
- 'sun room
- sunRoom_mode var byte
- sunRoom_mode = 0
- sunRoom_Temp var byte
- sunRoom_Setting var byte
- Nb_var32 var byte 'current setting
- Nb_varH33 var byte 'wake
- Nb_varM33 var byte
- Nb_var34 var byte '
- Nb_varH35 var byte'leave
- Nb_varM35 var byte
- Nb_var36 var byte
- Nb_varH37 var byte 'return
- Nb_varM37 var byte
- Nb_var38 var byte
- Nb_varH39 var byte
- Nb_varM39 Var byte
- Nb_var40 var byte
- 'Living room
- LivingRoom_mode var byte
- LivingRoom_mode = 0
- LivingRoom_Temp var byte
- LivingRoom_Setting var byte
- Nb_var42 var byte 'Current Temp
- Nb_varH43 var byte 'wake
- Nb_varM43 var byte
- Nb_var44 var byte '
- Nb_varH45 var byte'leave
- Nb_varM45 var byte
- Nb_var46 var byte
- Nb_varH47 var byte 'return
- Nb_varM47 var byte
- Nb_var48 var byte
- Nb_varH49 var byte 'sleep
- Nb_varM49 Var byte
- Nb_var50 var byte
- 'Sat&sun
- 'office
- Nb_varH51 var byte 'wake
- Nb_varM51 var byte
- Nb_var52 var byte '
- Nb_varH53 var byte'leave
- Nb_varM53 var byte
- Nb_var54 var byte
- 'bedroom
- Nb_varH55 var byte 'wake
- Nb_varM55 var byte
- Nb_var56 var byte '
- Nb_varH57 var byte'leave
- Nb_varM57 var byte
- Nb_var58 var byte
- 'dining room
- Nb_varH59 var byte 'wake
- Nb_varM59 var byte
- Nb_var60 var byte '
- Nb_varH61 var byte'leave
- Nb_varM61 var byte
- Nb_var62 var byte
- 'sun room
- Nb_varH63 var byte 'wake
- Nb_varM63 var byte
- Nb_var64 var byte '
- Nb_varH65 var byte'leave
- Nb_varM65 var byte
- Nb_var66 var byte
- 'Living room
- Nb_varH67 var byte 'wake
- Nb_varM67 var byte
- Nb_var68 var byte '
- Nb_varH69 var byte'leave
- Nb_varM69 var byte
- Nb_var70 var byte
- 'mini-split vars
- ' MS_HeatAC var byte
- MS_Office var byte
- MS_Bedroom var byte
- MS_DiningRoom var byte
- MS_SunRoom var byte
- MS_LivingRoom VAr byte
- Nb_var93 var bit 'mini split heat/ac 'heat="1" AC= 0
- Nb_var86 var bit 'office mini split on/off
- Nb_var88 var bit 'bedroom mini split on/off
- Nb_var90 var bit 'diningroom mini split on/off
- Nb_var92 var bit 'sunroom mini split on/off
- Nb_var71 var bit 'livingroom mini split on/off
- Nb_var72 Var byte 'Humidity in living room unit
- Nb_var74 Var byte 'attic setting
- bedroom_busy var byte
- office_busy var byte
- diningroom_busy var byte
- sunroom_busy var byte
- livingRoom_busy VAr byte
- atticUnit_busy var byte
- solarUnit_busy var byte
- greenhouse_busy var byte
- office_busy = %00000000
- bedroom_busy = %00000000
- diningroom_busy = %00000000
- sunroom_busy = %00000000
- LivingRoom_Busy = %00000000
- atticUnit_busy = %00000000
- solarUnit_busy = %00000000
- greenhouse_busy = %00000000
- attic_temp var byte
- Attic_Setting var byte
- OutdoorRH var byte
- OutdoorTF var byte
- SleepAlarmSwitch Var bit
- SAS_checksum var bit
- powerout var byte
- powerout = 0
- RH_Trend0 var byte
- RH_Trend15 var byte
- RH_Trend30 Var Byte
- RH_Trend45 var byte
- RH_result var word
- ERROR var byte
- ERROR = 0
- BR_MS_LT var byte
- Of_MS_LT var byte
- LR_MS_LT var byte
- DR_MS_LT var byte
- Su_MS_LT var byte
- BR_MS_LT=0
- Of_MS_LT=0
- LR_MS_LT=0
- DR_MS_LT=0
- Su_MS_LT=0
- LR_RH var byte
- RH_Set_Point var byte
- 'low pinkreset
- 'pause 3000
- ' high pinkreset
- debug " Sytem startup.................",cr,10
- setup:
- IF timeout_bit > 6 THEN timeout_bit =0
- timeout_bit = timeout_bit +1
- IF timeout_Bit = 3 THEN
- low pinkreset
- debug " Resetting PINK",cr,10
- pause 4000
- high pinkreset
- pause 5000
- low latch
- timeout_bit = 0
- endif
- 'gosub get_time
- I2CWRITE SDA,SCL, I2c_WR, [0] 'get time
- I2CREAD SDA,SCL, I2C_RD, [Second,Minute,Hour,Day,Date,Month,Year]
- date = 10*(date >>4) + (date & $0f) 'convert hex to bcd
- month = 10*(month >>4) + (month & $0f)
- pause 4000
- debug " Setup ",hex2 hour,":",hex2 minute," | ",dec2 month,"/",dec2 date,"/",hex2 year,Cr,10
- ' serout2 pinktx,pinkbaud, ["!NB0W97:",dec2 hour,":",dec2 minute, CLS]
- 'serout2 pinktx,pinkbaud, ["!NB0W98:",dec2 day,cls]
- 'SEROUT2 pinkTX,pinkBaud, ["!NB0W99:",dec2 month,":",dec2 date,":",hex2 year,cls] ' Command To Read system date
- serout2 pinktx,pinkbaud, ["!NB0W97:25:25", CLS]'clear set time
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' Get EEPROM Data and Populate PINK
- 'office
- shiftout serdata, clock,0,[%00000000]
- shiftout serdata, clock,0,[%01000000]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,3,[nb_varh03] 'wake
- I2cread Epsda,Epscl,$A0,4,[nb_varm03]
- serout2 pinktx,pinkbaud,["!NB0W03:",hex2 nb_varh03,":",hex2 nb_varm03,CLS]
- I2cread Epsda,Epscl,$A0,6,[nb_varh05] 'leave
- I2cread Epsda,Epscl,$A0,7,[nb_varm05]
- serout2 pinktx,pinkbaud,["!NB0W05:",hex2 nb_varh05,":",hex2 nb_varm05,CLS]
- I2cread Epsda,Epscl,$A0,9,[nb_varh07] 'return
- I2cread Epsda,Epscl,$A0,10,[nb_varm07]
- serout2 pinktx,pinkbaud,["!NB0W07:",hex2 nb_varh07,":",hex2 nb_varm07,CLS]
- I2cread Epsda,Epscl,$A0,12,[nb_varh09]
- I2cread Epsda,Epscl,$A0,13,[nb_varm09] 'sleep
- serout2 pinktx,pinkbaud,["!NB0W09:",hex2 nb_varh09,":",hex2 nb_varm09,CLS]
- I2cread Epsda,Epscl,$A0,63,[nb_varh51] 'weekend wake
- I2cread Epsda,Epscl,$A0,64,[nb_varm51]
- serout2 pinktx,pinkbaud,["!NB0W51:",hex2 nb_varh51,":",hex2 nb_varm51,CLS]
- I2cread Epsda,Epscl,$A0,66,[nb_varh53] 'weekend sleep
- I2cread Epsda,Epscl,$A0,67,[nb_varm53]
- serout2 pinktx,pinkbaud,["!NB0W53:",hex2 nb_varh53,":",hex2 nb_varm53,CLS]
- 'bedroom
- shiftout serdata, clock,0,[%00000000]
- shiftout serdata, clock,0,[%01010000]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,15,[nb_varh13] 'wake
- I2cread Epsda,Epscl,$A0,16,[nb_varm13]
- serout2 pinktx,pinkbaud,["!NB0W13:",hex2 nb_varh13,":",hex2 nb_varm13,CLS]
- I2cread Epsda,Epscl,$A0,18,[nb_varh15] 'leave
- I2cread Epsda,Epscl,$A0,19,[nb_varm15]
- serout2 pinktx,pinkbaud,["!NB0W15:",hex2 nb_varh15,":",hex2 nb_varm15,CLS]
- I2cread Epsda,Epscl,$A0,21,[nb_varh17] 'return
- I2cread Epsda,Epscl,$A0,22,[nb_varm17]
- serout2 pinktx,pinkbaud,["!NB0W17:",hex2 nb_varh17,":",hex2 nb_varm17,CLS]
- I2cread Epsda,Epscl,$A0,24,[nb_varh19]
- I2cread Epsda,Epscl,$A0,25,[nb_varm19] 'sleep
- serout2 pinktx,pinkbaud,["!NB0W19:",hex2 nb_varh19,":",hex2 nb_varm19,CLS]
- I2cread Epsda,Epscl,$A0,69,[nb_varh55] 'weekend wake
- I2cread Epsda,Epscl,$A0,70,[nb_varm55]
- serout2 pinktx,pinkbaud,["!NB0W55:",hex2 nb_varh55,":",hex2 nb_varm55,CLS]
- I2cread Epsda,Epscl,$A0,72,[nb_varh57] 'weekend sleep
- I2cread Epsda,Epscl,$A0,73,[nb_varm57]
- serout2 pinktx,pinkbaud,["!NB0W57:",hex2 nb_varh57,":",hex2 nb_varm57,CLS]
- 'Dining room
- shiftout serdata, clock,0,[%00000000]
- shiftout serdata, clock,0,[%01010100]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,27,[nb_varh23] 'wake
- I2cread Epsda,Epscl,$A0,28,[nb_varm23]
- serout2 pinktx,pinkbaud,["!NB0W23:",hex2 nb_varh23,":",hex2 nb_varm23,CLS]
- I2cread Epsda,Epscl,$A0,30,[nb_varh25] 'leave
- I2cread Epsda,Epscl,$A0,31,[nb_varm25]
- serout2 pinktx,pinkbaud,["!NB0W25:",hex2 nb_varh25,":",hex2 nb_varm25,CLS]
- I2cread Epsda,Epscl,$A0,33,[nb_varh27] 'return
- I2cread Epsda,Epscl,$A0,34,[nb_varm27]
- serout2 pinktx,pinkbaud,["!NB0W27:",hex2 nb_varh27,":",hex2 nb_varm27,CLS]
- I2cread Epsda,Epscl,$A0,36,[nb_varh29]
- I2cread Epsda,Epscl,$A0,37,[nb_varm29] 'sleep
- serout2 pinktx,pinkbaud,["!NB0W29:",hex2 nb_varh29,":",hex2 nb_varm29,CLS]
- I2cread Epsda,Epscl,$A0,75,[nb_varh59] 'weekend wake
- I2cread Epsda,Epscl,$A0,76,[nb_varm59]
- serout2 pinktx,pinkbaud,["!NB0W59:",hex2 nb_varh59,":",hex2 nb_varm59,CLS]
- I2cread Epsda,Epscl,$A0,78,[nb_varh61] 'weekend sleep
- I2cread Epsda,Epscl,$A0,79,[nb_varm61]
- serout2 pinktx,pinkbaud,["!NB0W61:",hex2 nb_varh61,":",hex2 nb_varm61,CLS]
- ' Sun room
- shiftout serdata, clock,0,[%00000000]
- shiftout serdata, clock,0,[%01010101]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,39,[nb_varh33] 'wake
- I2cread Epsda,Epscl,$A0,40,[nb_varm33]
- serout2 pinktx,pinkbaud,["!NB0W33:",hex2 nb_varh33,":",hex2 nb_varm33,CLS]
- I2cread Epsda,Epscl,$A0,42,[nb_varh35] 'leave
- I2cread Epsda,Epscl,$A0,43,[nb_varm35]
- serout2 pinktx,pinkbaud,["!NB0W35:",hex2 nb_varh35,":",hex2 nb_varm35,CLS]
- I2cread Epsda,Epscl,$A0,45,[nb_varh37] 'return
- I2cread Epsda,Epscl,$A0,46,[nb_varm37]
- serout2 pinktx,pinkbaud,["!NB0W37:",hex2 nb_varh37,":",hex2 nb_varm37,CLS]
- I2cread Epsda,Epscl,$A0,48,[nb_varh39]
- I2cread Epsda,Epscl,$A0,49,[nb_varm39] 'sleep
- serout2 pinktx,pinkbaud,["!NB0W39:",hex2 nb_varh39,":",hex2 nb_varm39,CLS]
- I2cread Epsda,Epscl,$A0,81,[nb_varh63] 'weekend wake
- I2cread Epsda,Epscl,$A0,82,[nb_varm63]
- serout2 pinktx,pinkbaud,["!NB0W63:",hex2 nb_varh63,":",hex2 nb_varm63,CLS]
- I2cread Epsda,Epscl,$A0,84,[nb_varh65] 'weekend sleep
- I2cread Epsda,Epscl,$A0,85,[nb_varm65]
- serout2 pinktx,pinkbaud,["!NB0W65:",hex2 nb_varh65,":",hex2 nb_varm65,CLS]
- 'livingroom
- shiftout serdata, clock,0,[%10000000]
- shiftout serdata, clock,0,[%01010101]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,51,[nb_varh43] 'wake
- I2cread Epsda,Epscl,$A0,52,[nb_varm43]
- serout2 pinktx,pinkbaud,["!NB0W43:",hex2 nb_varh43,":",hex2 nb_varm43,CLS]
- I2cread Epsda,Epscl,$A0,54,[nb_varh45] 'leave
- I2cread Epsda,Epscl,$A0,55,[nb_varm45]
- serout2 pinktx,pinkbaud,["!NB0W45:",hex2 nb_varh45,":",hex2 nb_varm45,CLS]
- I2cread Epsda,Epscl,$A0,57,[nb_varh47] 'return
- I2cread Epsda,Epscl,$A0,58,[nb_varm47]
- serout2 pinktx,pinkbaud,["!NB0W47:",hex2 nb_varh47,":",hex2 nb_varm47,CLS]
- I2cread Epsda,Epscl,$A0,60,[nb_varh49]
- I2cread Epsda,Epscl,$A0,61,[nb_varm49] 'sleep
- serout2 pinktx,pinkbaud,["!NB0W49:",hex2 nb_varh49,":",hex2 nb_varm49,CLS]
- I2cread Epsda,Epscl,$A0,87,[nb_varh67] 'weekend wake
- I2cread Epsda,Epscl,$A0,88,[nb_varm67]
- serout2 pinktx,pinkbaud,["!NB0W67:",hex2 nb_varh67,":",hex2 nb_varm67,CLS]
- I2cread Epsda,Epscl,$A0,90,[nb_varh69] 'weekend sleep
- I2cread Epsda,Epscl,$A0,91,[nb_varm69]
- serout2 pinktx,pinkbaud,["!NB0W69:",hex2 nb_varh69,":",hex2 nb_varm69,CLS]
- 'minisplit
- shiftout serdata, clock,0,[%10100000]
- shiftout serdata, clock,0,[%01010101]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,108,[nb_var93] 'system heat / AC
- IF nb_var93 = 1 THEN
- serout2 pinktx,pinkbaud,["!NB0W93:","1",CLS]
- endif
- IF nb_var93 = 0 THEN
- serout2 pinktx,pinkbaud,["!NB0W93:","0",CLS]
- endif
- 'debug dec nb_var93, cr
- I2cread Epsda,Epscl,$A0,101,[nb_var86] 'office on off
- serout2 pinktx,pinkbaud,["!NB0W86:",dec nb_var86,CLS]
- I2cread Epsda,Epscl,$A0,103,[nb_var88] 'bedroom on off
- serout2 pinktx,pinkbaud,["!NB0W88:",dec nb_var88,CLS]
- I2cread Epsda,Epscl,$A0,105,[nb_var90] 'diningroom on off
- serout2 pinktx,pinkbaud,["!NB0W90:",dec nb_var90,CLS]
- I2cread Epsda,Epscl,$A0,107,[nb_var92] 'sunroom on off
- serout2 pinktx,pinkbaud,["!NB0W92:",dec nb_var92,CLS]
- I2cread Epsda,Epscl,$A0,109,[nb_var71] 'livingroom on off
- serout2 pinktx,pinkbaud,["!NB0W71:",dec nb_var71,CLS]
- debug " ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
- 'Attic unit
- shiftout serdata, clock,0,[%10101000]
- shiftout serdata, clock,0,[%01010101]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,110,[attic_setting] 'Attic setting
- serout2 pinktx,pinkbaud,["!NB0W74:",dec attic_setting,CLS]
- I2cread Epsda,Epscl,$A0,111,[nb_var78] 'solar tracker home temp
- serout2 pinktx,pinkbaud,["!NB0W78:",dec nb_var78,CLS]
- I2cread Epsda,Epscl,$A0,112,[nb_var79] 'useful tank temp
- serout2 pinktx,pinkbaud,["!NB0W79:",dec nb_var79,CLS]
- I2cread Epsda,Epscl,$A0,113,[nb_var83] 'useful tank temp
- serout2 pinktx,pinkbaud,["!NB0W83:",dec nb_var83,CLS]
- pause 3000
- 'pause 4000
- '_________________________________________________________________________________
- Main:'-------Attempt to stop the errors/clear the crap out of pink
- ' I2cread Epsda,Epscl,$A0,3,[nb_varh03] 'wake
- 'I2cread Epsda,Epscl,$A0,4,[nb_varm03]
- ' serout2 pinktx,pinkbaud,["!NB0W03:",hex2 nb_varh03,":",hex2 nb_varm03,cls]
- ' SEROUT2 pinkTX, pinkBaud, ["!NB0R03"] ' Command To Read office Wake time
- ' SERIN2 pinkRX, pinkBaud,PauseBit,Office,[hex2 mem1,skip 1,hex2 mem2]
- '____________________________________________________________________________
- '_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X
- Office:
- GOSUB get_time
- 'Pause 750
- 'debug "office Error...", dec error,cr ,10
- shiftout serdata, clock,0,[livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[%01000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- '----------Get Pink Data
- 'Mon-Fri
- 'debug "office",cr
- IF sleepalarmswitch = 1 THEN
- modeSelect = hour*100+minute
- unitwake = Nb_varH03*100+Nb_varM03
- unitLeave = Nb_varH05*100+Nb_varM05
- unitreturn = Nb_varH07*100+Nb_varM07
- unitsleep = Nb_varH09*100+Nb_varM09
- 'if day <= 5 then
- SEROUT2 pinkTX, pinkBaud, ["!NB0R03"] ' Command To Read office Wake time
- ERROR = 3
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH03 THEN
- Nb_varH03 = mem1
- I2cwrite EpSDA,EpScl,$a0,3,[mem1]
- endif
- IF mem2 <> Nb_varM03 THEN
- Nb_varM03 = mem2
- I2cwrite EpSDA,EpScl,$a0,4,[mem2]
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R04"] ' Command To Read office Wake temp
- ERROR = 4
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var04 THEN
- Nb_var04 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,5,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,120,[mem1]
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R05"] ' Command To Read office Leave time
- ERROR = 5
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH05 THEN
- Nb_varH05 = mem1
- I2cwrite EpSDA,EpScl,$a0,6,[mem1]
- endif
- IF mem2 <> Nb_varM05 THEN
- Nb_varM05 = mem2
- I2cwrite EpSDA,EpScl,$a0,7,[mem2]
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R06"] ' Command To Read office Leave temp
- ERROR = 6
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var06 THEN
- Nb_var06 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,8,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,121,[mem1]
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R07"] ' Command To Read office Return time
- ERROR =7
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH07 THEN
- Nb_varH07 = mem1
- I2cwrite EpSDA,EpScl,$a0,9,[mem1]
- endif
- IF mem2 <> Nb_varM07 THEN
- Nb_varM07 = mem2
- I2cwrite EpSDA,EpScl,$a0,10,[mem2]
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R08"] ' Command To Read office Return Temp
- ERROR = 8
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var08 THEN
- Nb_var08 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,11,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,122,[mem1]
- 'pause 5
- ' debug "W-rtn tmp(11)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R09"] ' Command To Read office Sleep time
- ERROR = 9
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH09 THEN
- Nb_varH09 = mem1
- I2cwrite EpSDA,EpScl,$a0,12,[mem1]
- 'pause 5
- ' debug "W-sl hr(12)" ,cr
- endif
- IF mem2 <> Nb_varM09 THEN
- Nb_varM09 = mem2
- I2cwrite EpSDA,EpScl,$a0,13,[mem2]
- 'pause 5
- ' debug "W-sl mn(13)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R10"] ' Command To Read office Sleep Temp
- ERROR = 10
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var10 THEN
- Nb_var10 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,14,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,123,[mem1]
- 'pause 5
- ' debug "W-sl tmp(14)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R02"] ' Command To Read office current setting temp
- ERROR = 2
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var02 THEN
- Nb_var02 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,2,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,119,[mem1]
- IF office_busy = %00000000 THEN GOSUB minisplitoffice
- 'serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
- endif
- ' debug "MS-OFFICE ", hex2 result ,cr
- IF office_mode <>1 THEN
- IF modeselect => unitwake AND modeselect < unitleave THEN
- 'if hour = Nb_varH03 and minute = Nb_varM03 then 'Wake
- office_mode = 1
- IF nb_var02 <> Nb_var04 THEN
- nb_var02 = Nb_var04
- GOSUB minisplitoffice
- ' debug "AH-HA",cr
- endif
- endif
- endif
- IF office_mode <>2 THEN
- IF modeselect => unitleave AND modeselect < unitreturn THEN
- 'if hour = Nb_varH05 and minute = Nb_varM05 then 'leave
- office_mode = 2
- IF nb_var02 <> NB_var06 THEN
- nb_var02 = Nb_var06
- GOSUB minisplitoffice
- 'debug "ah-ha",cr
- 'serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
- endif
- endif
- endif
- IF office_mode <>3 THEN
- IF modeselect => unitreturn AND modeselect < unitsleep THEN
- 'if hour = Nb_varH07 and minute = Nb_varM07 then 'return
- office_mode = 3
- IF nb_var02 <> NB_var08 THEN
- nb_var02 = Nb_var08
- GOSUB minisplitoffice
- 'debug "ah-ha",cr
- 'serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
- endif
- ENDIF
- endif
- IF office_mode <>4 THEN
- IF modeselect => unitsleep THEN
- 'if hour = Nb_varH09 and minute = Nb_varM09 then 'sleep
- office_mode = 4
- IF nb_var02 <> NB_var10 THEN
- nb_var02 = Nb_var10
- GOSUB minisplitoffice
- 'debug "ah-ha",cr
- ' serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
- endif
- endif
- endif
- endif
- 'Sat&Sun
- 'if day >= 6 then
- IF sleepalarmswitch = 0 THEN
- modeSelect = hour*100+minute
- UnitWake = Nb_varH51*100+Nb_varM51
- UnitSleep = Nb_varH53*100+Nb_varM53
- 'Debug"S-S",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R51"] ' Command To Read office wake time
- ERROR = 51
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH51 THEN
- Nb_varH51 = mem1
- ' write 63 ,mem1
- I2cwrite EpSDA,EpScl,$a0,63,[mem1]
- 'pause 5
- ' debug "W-SS Wk Hr(63)" ,cr
- endif
- IF mem2 <> Nb_varM51 THEN
- Nb_varM51 = mem2
- ' write 64 ,mem2
- I2cwrite EpSDA,EpScl,$a0,64,[mem2]
- 'pause 5
- ' debug "W-SS Wk Mn(64)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R52"] ' Command To Read office wake Temp
- ERROR = 52
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var52 THEN
- Nb_var52 = mem1
- ' write 65 ,mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,65,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,124,[mem1]
- 'pause 5
- ' debug "W-SS wk tmp(65)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R53"] ' Command To Read office Sleep time
- ERROR = 53
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH53 THEN
- Nb_varH53 = mem1
- 'write 66 ,mem1
- I2cwrite EpSDA,EpScl,$a0,66,[mem1]
- 'pause 5
- ' debug "W-SS Sl hr(66)" ,cr
- endif
- IF mem2 <> Nb_varM53 THEN
- Nb_varM53 = mem2
- 'write 67 ,mem2
- I2cwrite EpSDA,EpScl,$a0,67,[mem2]
- 'pause 5
- ' debug "W-SS Sl Mn(67)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R54"] ' Command To Read office Sleep Temp
- ERROR = 54
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var54 THEN
- Nb_var54 = mem1
- ' write 68 ,mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,68,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,125,[mem1]
- 'pause 5
- ' debug "W-SS Sl tmp(68)" ,cr
- Endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R02"] ' Command To Read office current setting temp
- ERROR = 2
- SERIN2 pinkRX, pinkBaud,PauseBit,Office_error,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var02 THEN
- Nb_var02 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,2,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,119,[mem1]
- IF office_busy = %00000000 THEN GOSUB MiniSPlitOffice
- ' debug "Office Set" , cr
- ' debug "W-cnt set(2)" ,dec mem1,cr
- endif
- ' debug "MS-OFFICE ", hex2 ms_office , cr
- IF office_mode <>1 THEN
- IF modeselect => Unitwake AND modeselect < UnitSleep THEN
- 'if hour = Nb_varH51 and minute = Nb_varM51 then 'Wake
- office_mode = 1
- IF nb_var02<> nb_var52 THEN
- nb_var02 = Nb_var52
- GOSUB MiniSPlitOffice
- ' debug "Ah-Ha",hex2 MS_Office , cr
- endif
- endif
- endif
- IF office_mode <> 4 THEN
- IF modeselect => Unitsleep THEN
- 'if hour = Nb_varH53 and minute = Nb_varM53 then 'sleep
- office_mode = 4
- IF nb_var02<> nb_var54 THEN
- nb_var02 = Nb_var54
- GOSUB MiniSPlitOffice
- ' debug "Ah-Ha",hex2 ms_office, cr
- endif
- endif
- endif
- endif
- '----------set x-bee channel------------
- Office_set:
- 'debug "Office set", cr
- pause 50
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 1",CR] 'address office module "1" is office
- serout2 TX,baud,["ATDL 1" ,CR]
- serout2 TX,baud,["ATCN",CR]
- pause busy_bit
- SERIN2 RX,Baud,250,Office_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr,10
- pause 18000
- GOTO timeout3 'skip com with office for now
- Office_set1:
- '-----------send data to Office module------------------------
- serout2 TX,Baud, [" Office ",cr]
- pause 50
- serout2 TX,Baud, [":",Nb_var02,hex2 hour,hex2 minute,office_mode,day,backlight_bit,Nb_var93,OutdoorRH, OutdoorTF,NB_var72] 'send pink temp value to office module
- '----------Get data from Office module--------------------
- SERIN2 RX,Baud,PauseBit,timeout3,[Office_Temp, Office_Setting] 'get temperature and user set temp from office module
- office_busy = %00000000
- '----------send data from office module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W02:", dec Office_Setting, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W01:", dec Office_Temp, CLS] 'send current temp to Pink
- shiftout serdata, clock,0,[livingroom_busy + atticunit_busy + solarUnit_busy + greenhouse_busy]
- shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- 'debug "Office ", dec nb_var93, cr
- pulsout latch,5
- INPUT serdata
- '_______________________________________________________________________________
- '_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X
- BedRoom:
- '--------------mini split radio buttons
- GOSUB read_radioButtons
- Pause 200
- 'debug "Bedroom Error...", dec error,cr ,10
- shiftout serdata, clock,0,[livingroom_busy + atticunit_busy + solarUnit_busy + greenhouse_busy]
- shiftout serdata, clock,0,[%00010000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- '----------Get Pink Data
- 'Mon-Fri
- ' if day <= 5 then
- IF sleepalarmswitch = 1 THEN
- modeSelect = hour*100+minute
- unitwake = Nb_varH13*100+Nb_varM13
- unitLeave = Nb_varH15*100+Nb_varM15
- unitreturn = Nb_varH17*100+Nb_varM17
- unitsleep = Nb_varH19*100+Nb_varM19
- 'debug "M-F",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R13"] ' Command To Read Bedroom Wake time
- ERROR = 13
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH13 THEN
- Nb_varH13 = mem1
- I2cwrite EpSDA,EpScl,$a0,15,[mem1]
- 'pause 5
- ' debug "W-wk hr(15)" ,cr
- endif
- IF mem2 <> Nb_varM13 THEN
- Nb_varM13 = mem2
- I2cwrite EpSDA,EpScl,$a0,16,[mem2]
- 'pause 5
- ' debug "W-wk mn(16)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R14"] ' Command To Read Bedroom Wake temp
- ERROR = 14
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var14 THEN
- Nb_var14 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,17,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,127,[mem1]
- 'pause 5
- ' debug "W-wk tmp(17)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R15"] ' Command To Read Bedroom Leave time
- ERROR = 15
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH15 THEN
- Nb_varH15 = mem1
- I2cwrite EpSDA,EpScl,$a0,18,[mem1]
- 'pause 5
- ' debug "W-lv hr(18)" ,cr
- endif
- IF mem2 <> Nb_varM15 THEN
- Nb_varM15 = mem2
- I2cwrite EpSDA,EpScl,$a0,19,[mem2]
- 'pause 5
- ' debug "W-lv mn(19)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R16"] ' Command To Read Bedroom Leave temp
- ERROR = 16
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var16 THEN
- Nb_var16 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,20,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,128,[mem1]
- 'pause 5
- ' debug "W-lv tmp(20)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R17"] ' Command To Read bedroom Return time
- ERROR = 17
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH17 THEN
- Nb_varH17 = mem1
- I2cwrite EpSDA,EpScl,$a0,21,[mem1]
- 'pause 5
- 'debug "W-rtn hr(21)" ,cr
- endif
- IF mem2 <> Nb_varM17 THEN
- Nb_varM17 = mem2
- I2cwrite EpSDA,EpScl,$a0,22,[mem2]
- 'pause 5
- ' debug "W-rtn mn(22)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R18"] ' Command To Read bedroom Return Temp
- ERROR = 18
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var18 THEN
- Nb_var18 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,23,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,129,[mem1]
- 'pause 5
- ' debug "W-rtn tmp(23)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R19"] ' Command To Read bedroom Sleep time
- ERROR = 19
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH19 THEN
- Nb_varH19 = mem1
- I2cwrite EpSDA,EpScl,$a0,24,[mem1]
- 'pause 5
- ' debug "W-sl hr(24)" ,cr
- endif
- IF mem2 <> Nb_varM19 THEN
- Nb_varM19 = mem2
- I2cwrite EpSDA,EpScl,$a0,25,[mem2]
- 'pause 5
- ' debug "W-sl mn(25)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R20"] ' Command To Read bedroom Sleep Temp
- ERROR = 20
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var20 THEN
- Nb_var20 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,26,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,130,[mem1]
- 'pause 5
- ' debug "W-sl tmp(26)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R12"] ' Command To Read bedroom current setting temp
- ERROR= 12
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var12 THEN
- Nb_var12 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,93,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,126,[mem1]
- IF bedroom_busy = %00000000 THEN GOSUB minisplitbedroom
- 'pause 5
- 'write 2 ,mem1
- ' debug "W-cnt set(93)" ,dec mem1,cr
- 'debug "BedRoom Set",cr
- endif
- ' debug "MS-BEDROOM ", hex2 ms_Bedroom ,cr
- IF bedroom_mode <> 1 THEN
- IF modeselect => unitwake AND modeselect < unitleave THEN
- 'if hour = Nb_varH13 and minute = Nb_varM13 then 'Wake
- bedroom_mode = 1
- IF nb_var12<> nb_var14 THEN
- nb_var12 = Nb_var14
- GOSUB MiniSPlitbedroom
- ' debug "Ah-Ha BR",hex2 MS_bedroom , cr
- endif
- endif
- endif
- IF bedroom_mode <> 2 THEN
- IF modeselect => unitleave AND modeselect < unitreturn THEN
- 'if hour = Nb_varH15 and minute = Nb_varM15 then 'leave
- bedroom_mode = 2
- IF nb_var12<> nb_var16 THEN
- nb_var12 = Nb_var16
- GOSUB MiniSPlitbedroom
- ' debug "Ah-Ha",hex2 MS_bedroom , cr
- endif
- endif
- endif
- IF bedroom_mode <> 3 THEN
- IF modeselect => unitreturn AND modeselect < unitsleep THEN
- 'if hour = Nb_varH17 and minute = Nb_varM17 then 'return
- bedroom_mode = 3
- IF nb_var12<> nb_var18 THEN
- nb_var12 = Nb_var18
- GOSUB MiniSPlitbedroom
- ' debug "Ah-Ha",hex2 MS_bedroom , cr
- endif
- endif
- endif
- IF bedroom_mode <> 4 THEN
- IF modeselect => unitsleep THEN
- 'if hour = Nb_varH19 and minute = Nb_varM19 then 'sleep
- bedroom_mode = 4
- IF nb_var12<> nb_var20 THEN
- nb_var12 = Nb_var20
- GOSUB MiniSPlitbedroom
- ' debug "Ah-Ha",hex2 MS_bedroom , cr
- endif
- endif
- endif
- endif
- 'Sat&Sun
- 'if day >= 6 then
- IF sleepalarmswitch = 0 THEN
- modeSelect = hour*100+minute
- UnitWake = Nb_varH55*100+Nb_varM55
- UnitSleep = Nb_varH57*100+Nb_varM57
- 'Debug"S-S",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R55"] ' Command To Read bedroom wake time
- ERROR = 55
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH55 THEN
- Nb_varH55 = mem1
- ' write 63 ,mem1
- I2cwrite EpSDA,EpScl,$a0,69,[mem1]
- 'pause 5
- ' debug "W-SS Wk Hr(69)" ,cr
- endif
- IF mem2 <> Nb_varM55 THEN
- Nb_varM55 = mem2
- ' write 64 ,mem2
- I2cwrite EpSDA,EpScl,$a0,70,[mem2]
- 'pause 5
- ' debug "W-SS Wk Mn(70)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R56"] ' Command To Read bedroom wake Temp
- ERROR = 56
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var56 THEN
- Nb_var56 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,71,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,131,[mem1]
- 'pause 5
- ' debug "W-SS wk tmp(71)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R57"] ' Command To Read bedroom Sleep time
- ERROR = 57
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH57 THEN
- Nb_varH57 = mem1
- 'write 66 ,mem1
- I2cwrite EpSDA,EpScl,$a0,72,[mem1]
- 'pause 5
- ' debug "W-SS Sl hr(72)" ,cr
- endif
- IF mem2 <> Nb_varM57 THEN
- Nb_varM57 = mem2
- 'write 67 ,mem2
- I2cwrite EpSDA,EpScl,$a0,73,[mem2]
- 'pause 5
- 'debug "W-SS Sl Mn(73)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R58"] ' Command To Read Bedroom Sleep Temp
- ERROR = 28
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var58 THEN
- Nb_var58 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,74,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,132,[mem1]
- 'pause 5
- ' debug "W-SS Sl tmp(74)" ,cr
- Endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R12"] ' Command To Read bedroom current setting temp
- ERROR = 12
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var12 THEN
- Nb_var12 = mem1
- IF bedroom_busy = %00000000 THEN GOSUB minisplitbedroom
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,93,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,126,[mem1]
- 'pause 5
- ' Debug "BedRoom set",cr
- ' debug "W-cnt set(93)" ,dec mem1,cr
- endif
- ' debug "MS-BEDROOM ", hex2 ms_bedroom , cr
- IF bedroom_mode <> 1 THEN
- IF modeselect => Unitwake AND modeselect < UnitSleep THEN
- 'if hour = Nb_varH55 and minute = Nb_varM55 then 'Wake
- bedroom_mode = 1
- IF nb_var12<> nb_var56 THEN
- nb_var12 = Nb_var56
- GOSUB MiniSPlitbedroom
- ' debug "Ah-Ha",hex2 MS_bedroom , cr
- endif
- endif
- endif
- IF bedroom_mode <> 4 THEN
- IF modeselect => Unitsleep THEN
- 'if hour = Nb_varH57 and minute = Nb_varM57 then 'sleep
- bedroom_mode = 4
- IF nb_var12<> nb_var58 THEN
- nb_var12 = Nb_var58
- GOSUB MiniSPlitbedroom
- ' debug "Ah-Ha",hex2 MS_bedroom , cr
- endif
- endif
- endif
- endif
- '----------set x-bee channel------------
- bedroom_set:
- pause 50
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 2",CR] 'address office module "1" is office
- serout2 TX,baud,["ATDL 2",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,bedroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr,10
- pause 18000
- GOTO timeout5 'skip com with bedroom for now
- bedroom_set1:
- '-----------send data to BedRoom module------------------------
- serout2 TX,Baud, [" Bedroom "]
- pause 50
- serout2 TX,Baud, [":",Nb_var12,hex2 hour,hex2 minute, bedroom_mode,day,backlight_bit,Nb_var93,OutdoorRH, OutdoorTF,NB_var72] 'send pink temp value to office module
- '----------Get data from BedRoom module--------------------
- 'debug "bedroom ", dec nb_var93, cr
- SERIN2 RX,Baud,PauseBit,timeout5,[ bedroom_Temp,bedroom_Setting] 'get temperature and user set temp from office module
- bedroom_busy = %00000000
- '----------send data from office module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W12:", dec bedroom_Setting, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W11:", dec bedroom_Temp, CLS] 'send current temp to Pink
- timeout_bit =0
- shiftout serdata, clock,0,[livingroom_busy+atticunit_busy+solarUnit_busy + greenhouse_busy]
- shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- '_______________________________________________________________________________
- '_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X
- DiningRoom:
- '--------------mini split radio buttons
- GOSUB read_radioButtons
- Pause 200
- 'debug "Diningroom Error...", dec error,cr ,10
- shiftout serdata, clock,0,[Livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[%00000100 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- '----------Get Pink Data
- 'Mon-Fri
- 'if day <= 5 then
- IF sleepalarmswitch = 1 THEN
- modeSelect = hour*100+minute
- unitwake = Nb_varH23*100+Nb_varM23
- unitLeave = Nb_varH25*100+Nb_varM25
- unitreturn = Nb_varH27*100+Nb_varM27
- unitsleep = Nb_varH29*100+Nb_varM29
- 'debug "M-F",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R23"] ' Command To Read Diningroom Wake time
- ERROR = 23
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH23 THEN
- Nb_varH23 = mem1
- I2cwrite EpSDA,EpScl,$a0,27,[mem1]
- 'pause 5
- ' debug "W-wk hr(27)" ,cr
- endif
- IF mem2 <> Nb_varM23 THEN
- Nb_varM23 = mem2
- I2cwrite EpSDA,EpScl,$a0,28,[mem2]
- 'pause 5
- ' debug "W-wk mn(28)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R24"] ' Command To Read Diningroom Wake temp
- ERROR = 24
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var24 THEN
- Nb_var24 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,29,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,134,[mem1]
- 'pause 5
- ' debug "W-wk tmp(29)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R25"] ' Command To Read DiningRoom Leave time
- ERROR = 25
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH25 THEN
- Nb_varH25 = mem1
- I2cwrite EpSDA,EpScl,$a0,30,[mem1]
- 'pause 5
- ' debug "W-lv hr(30)" ,cr
- endif
- IF mem2 <> Nb_varM25 THEN
- Nb_varM25 = mem2
- I2cwrite EpSDA,EpScl,$a0,31,[mem2]
- 'pause 5
- ' debug "W-lv mn(31)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R26"] ' Command To Read DiningRoom Leave temp
- ERROR = 26
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var26 THEN
- Nb_var26 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,32,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,135,[mem1]
- 'pause 5
- ' debug "W-lv tmp(32)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R27"] ' Command To Read Diningroom Return time
- ERROR = 27
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH27 THEN
- Nb_varH27 = mem1
- I2cwrite EpSDA,EpScl,$a0,33,[mem1]
- 'pause 5
- 'debug "W-rtn hr(33)" ,cr
- endif
- IF mem2 <> Nb_varM27 THEN
- Nb_varM27 = mem2
- I2cwrite EpSDA,EpScl,$a0,34,[mem2]
- 'pause 5
- ' debug "W-rtn mn(34)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R28"] ' Command To Read diningroom Return Temp
- ERROR = 28
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var28 THEN
- Nb_var28 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,35,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,136,[mem1]
- 'pause 5
- ' debug "W-rtn tmp(35)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R29"] ' Command To Read Diningroom Sleep time
- ERROR = 29
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH29 THEN
- Nb_varH29 = mem1
- I2cwrite EpSDA,EpScl,$a0,36,[mem1]
- 'pause 5
- 'debug "W-sl hr(24)" ,cr
- endif
- IF mem2 <> Nb_varM29 THEN
- Nb_varM29 = mem2
- I2cwrite EpSDA,EpScl,$a0,37,[mem2]
- 'pause 5
- ' debug "W-sl mn(25)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R30"] ' Command To Read DiningRoom Sleep Temp
- ERROR = 30
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var30 THEN
- Nb_var30 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,38,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,137,[mem1]
- 'pause 5
- ' debug "W-sl tmp(26)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R22"] ' Command To Read Diningroom current setting temp
- ERROR = 22
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var22 THEN
- Nb_var22 = mem1
- IF diningroom_busy = %00000000 THEN GOSUB minisplitdiningroom
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,94,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,133,[mem1]
- 'pause 5
- 'debug "DR Set",cr
- ' debug "W-cnt set(94)",hex2 mem1 ,cr
- endif
- ' debug "MS-Diningroom ", hex2 ms_diningroom ,cr
- IF diningroom_mode <> 1 THEN
- IF modeselect => unitwake AND modeselect < unitleave THEN
- 'if hour = Nb_varH23 and minute = Nb_varM23 then 'Wake
- diningroom_mode = 1
- IF nb_var22<> nb_var24 THEN
- nb_var22 = Nb_var24
- GOSUB MiniSPlitdiningroom
- ' DEBUG "Ah-Ha",hex2 MS_diningroom , cr
- ENDIF
- ENDIF
- endif
- IF diningroom_mode <> 2 THEN
- IF modeselect => unitleave AND modeselect < unitreturn THEN
- 'if hour = Nb_varH25 and minute = Nb_varM25 then 'leave
- diningroom_mode = 2
- IF nb_var22<> nb_var26 THEN
- nb_var22 = Nb_var26
- GOSUB MiniSPlitdiningroom
- ' DEBUG "Ah-Ha",hex2 MS_diningroom , cr
- ENDIF
- endif
- endif
- IF diningroom_mode <> 3 THEN
- IF modeselect => unitreturn AND modeselect < unitsleep THEN
- 'if hour = Nb_varH27 and minute = Nb_varM27 then 'return
- diningroom_mode = 3
- IF nb_var22<> nb_var28 THEN
- nb_var22 = Nb_var28
- GOSUB MiniSPlitdiningroom
- 'DEBUG "Ah-Ha",hex2 MS_diningroom , cr
- ENDIF
- endif
- endif
- IF diningroom_mode <> 4 THEN
- IF modeselect => unitsleep THEN
- 'if hour = Nb_varH29 and minute = Nb_varM29 then 'sleep
- diningroom_mode = 4
- IF nb_var22<> nb_var30 THEN
- nb_var22 = Nb_var30
- GOSUB MiniSPlitdiningroom
- ' DEBUG "Ah-Ha",hex2 MS_diningroom , cr
- ENDIF
- endif
- endif
- endif
- 'Sat&Sun
- 'if day >= 6 then
- IF sleepalarmswitch = 0 THEN
- modeSelect = hour*100+minute
- UnitWake = Nb_varH59*100+Nb_varM59
- UnitSleep = Nb_varH61*100+Nb_varM61
- 'Debug"S-S",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R59"] ' Command To Read Diningroom wake time
- ERROR = 59
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH59 THEN
- Nb_varH59 = mem1
- ' write 63 ,mem1
- I2cwrite EpSDA,EpScl,$a0,75,[mem1]
- 'pause 5
- ' debug "W-SS Wk Hr(75)" ,cr
- endif
- IF mem2 <> Nb_varM59 THEN
- Nb_varM59 = mem2
- ' write 64 ,mem2
- I2cwrite EpSDA,EpScl,$a0,76,[mem2]
- 'pause 5
- ' debug "W-SS Wk Mn(76)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R60"] ' Command To Read DiningRoomwake Temp
- ERROR = 60
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var60 THEN
- Nb_var60 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,77,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,138,[mem1]
- 'pause 5
- ' debug "W-SS wk tmp(77)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R61"] ' Command To Read Diningroom Sleep time
- ERROR = 61
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH61 THEN
- Nb_varH61 = mem1
- 'write 66 ,mem1
- I2cwrite EpSDA,EpScl,$a0,78,[mem1]
- 'pause 5
- ' debug "W-SS Sl hr(78)" ,cr
- endif
- IF mem2 <> Nb_varM61 THEN
- Nb_varM61 = mem2
- 'write 67 ,mem2
- I2cwrite EpSDA,EpScl,$a0,79,[mem2]
- 'pause 5
- ' debug "W-SS Sl Mn(79)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R62"] ' Command To Read Diningroom Sleep Temp
- ERROR = 62
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var62 THEN
- Nb_var62 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,80,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,139,[mem1]
- 'pause 5
- ' debug "W-SS Sl tmp(80)" ,cr
- Endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R22"] ' Command To Read diningRoom current setting temp
- ERROR = 22
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var22 THEN
- Nb_var22 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,94,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,133,[mem1]
- IF diningroom_busy = %00000000 THEN GOSUB minisplitdiningroom
- 'pause 5
- ' Debug "DiningRoom set" , cr
- ' debug "W-cnt set(93)",hex2 mem1 ,cr
- endif
- ' debug "MS-DiningRoom ", hex2 ms_diningroom,cr
- IF diningroom_mode <> 1 THEN
- IF modeselect => Unitwake AND modeselect < UnitSleep THEN
- 'if hour = Nb_varH59 and minute = Nb_varM59 then 'Wake
- diningroom_mode = 1
- IF nb_var22<> nb_var60 THEN
- nb_var22 = Nb_var60
- GOSUB MiniSPlitdiningroom
- ' DEBUG "Ah-Ha",hex2 MS_diningroom , cr
- ENDIF
- endif
- endif
- IF diningroom_mode <> 4 THEN
- IF modeselect => Unitsleep THEN
- 'if hour = Nb_varH61 and minute = Nb_varM61 then 'sleep
- diningroom_mode = 4
- IF nb_var22<> nb_var62 THEN
- nb_var22 = Nb_var62
- GOSUB MiniSPlitdiningroom
- 'DEBUG "Ah-Ha",hex2 MS_diningroom , cr
- ENDIF
- endif
- endif
- endif
- '----------set x-bee channel------------
- DiningRoom_set:
- pause 200
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 3",CR] 'address diningroom module "3" is diningroom
- serout2 TX,baud,["ATDL 3",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,diningroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr,10
- pause 18000
- GOTO timeout6 'skip com with diningroom for now
- diningroom_set1:
- '-----------send data to Diningroom module------------------------
- serout2 TX,Baud, [" Diningroom "] 'this is fluff to wait for ":"
- pause 50
- serout2 TX,Baud, [":",Nb_var22,hex2 hour,hex2 minute, diningroom_mode,day,backlight_bit,Nb_var93,OutdoorRH, OutdoorTF,NB_var72] 'send pink temp value to office module
- '----------Get data from Diningroom module--------------------
- ' debug "Diningroom ", dec nb_var93, cr
- SERIN2 RX,Baud,PauseBit,timeout6,[Diningroom_Temp,Diningroom_Setting] 'get temperature and user set temp from office module
- diningroom_busy = %00000000
- 'Debug "Passed DR", CR
- '----------send data from Diningroom module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W22:", dec Diningroom_Setting, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W21:", dec Diningroom_Temp, CLS] 'send current temp to Pink
- timeout_bit =0
- shiftout serdata, clock,0,[Livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- 'Sun Room
- ____________________________________________________________________
- '_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X
- SunRoom:
- '--------------mini split radio buttons
- GOSUB read_radioButtons
- pause 200
- 'debug "SunRoom Error...", dec error,cr ,10
- shiftout serdata, clock,0,[livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[%00000001 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- '----------Get Pink Data
- 'get humidity setting
- 'SEROUT2 pinkTX, pinkBaud, ["!NB0R78"] ' Command To Read Sun humidity setting
- 'SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- 'if mem1 <> Nb_var78 then
- 'Nb_var78 = mem1
- 'pause 5
- ' debug "W-wk tmp(41)" ,cr
- ' endif
- 'Mon-Fri
- 'if day <= 5 then
- IF sleepalarmswitch = 1 THEN
- modeSelect = hour*100+minute
- unitwake = Nb_varH33*100+Nb_varM33
- unitLeave = Nb_varH35*100+Nb_varM35
- unitreturn = Nb_varH37*100+Nb_varM37
- unitsleep = Nb_varH39*100+Nb_varM39
- 'debug "M-F",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R33"] ' Command To Read Sunroom Wake time
- ERROR = 33
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH33 THEN
- Nb_varH33 = mem1
- I2cwrite EpSDA,EpScl,$a0,39,[mem1]
- 'pause 5
- ' debug "W-wk hr(39)" ,cr
- endif
- IF mem2 <> Nb_varM33 THEN
- Nb_varM33 = mem2
- I2cwrite EpSDA,EpScl,$a0,40,[mem2]
- 'pause 5
- ' debug "W-wk mn(40)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R34"] ' Command To Read Sun Wake temp
- ERROR = 34
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var34 THEN
- Nb_var34 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,41,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,141,[mem1]
- 'pause 5
- ' debug "W-wk tmp(41)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R35"] ' Command To Read Sun Leave time
- ERROR = 35
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH35 THEN
- Nb_varH35 = mem1
- I2cwrite EpSDA,EpScl,$a0,42,[mem1]
- 'pause 5
- ' debug "W-lv hr(42)" ,cr
- endif
- IF mem2 <> Nb_varM35 THEN
- Nb_varM35 = mem2
- I2cwrite EpSDA,EpScl,$a0,43,[mem2]
- 'pause 5
- ' debug "W-lv mn(43)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R36"] ' Command To Read SunRoom Leave temp
- ERROR = 36
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var36 THEN
- Nb_var36 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,44,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,142,[mem1]
- 'pause 5
- ' debug "W-lv tmp(44)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R37"] ' Command To Read Sunroom Return time
- ERROR = 37
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH37 THEN
- Nb_varH37 = mem1
- I2cwrite EpSDA,EpScl,$a0,45,[mem1]
- 'pause 5
- ' debug "W-rtn hr(45)" ,cr
- endif
- IF mem2 <> Nb_varM37 THEN
- Nb_varM37 = mem2
- I2cwrite EpSDA,EpScl,$a0,46,[mem2]
- 'pause 5
- ' debug "W-rtn mn(46)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R38"] ' Command To Read Sunroom Return Temp
- ERROR = 38
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var38 THEN
- Nb_var38 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,47,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,143,[mem1]
- 'pause 5
- ' debug "W-rtn tmp(47)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R39"] ' Command To Read Sunroom Sleep time
- ERROR = 39
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH39 THEN
- Nb_varH39 = mem1
- I2cwrite EpSDA,EpScl,$a0,48,[mem1]
- 'pause 5
- ' debug "W-sl hr(48)" ,cr
- endif
- IF mem2 <> Nb_varM39 THEN
- Nb_varM39 = mem2
- I2cwrite EpSDA,EpScl,$a0,49,[mem2]
- 'pause 5
- ' debug "W-sl mn(49)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R40"] ' Command To Read SunRoom Sleep Temp
- ERROR = 40
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var40 THEN
- Nb_var40 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,50,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,144,[mem1]
- 'pause 5
- ' debug "W-sl tmp(50)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R32"] ' Command To Read Sunroom current setting temp
- ERROR = 32
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var32 THEN
- Nb_var32 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,95,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,140,[mem1]
- IF sunroom_busy = %00000000 THEN GOSUB minisplitsunroom
- ' debug "Sunroom Set", cr
- ' debug "W-cnt set(95)" ,dec mem1 ,cr
- endif
- ' DEBUG "MS-SUNROOM ", HEX2 ms_sunroom , cr
- IF sunroom_mode <> 1 THEN
- IF modeselect => unitwake AND modeselect < unitleave THEN
- 'if hour = Nb_varH33 and minute = Nb_varM33 then 'Wake
- sunroom_mode = 1
- IF nb_var32<> nb_var34 THEN
- nb_var32 = Nb_var34
- GOSUB MiniSPlitsunroom
- ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
- ENDIF
- endif
- endif
- IF sunroom_mode <> 2 THEN
- IF modeselect => unitleave AND modeselect < unitreturn THEN
- 'if hour = Nb_varH35 and minute = Nb_varM35 then 'leave
- sunroom_mode = 2
- IF nb_var32<> nb_var36 THEN
- nb_var32 = Nb_var36
- GOSUB MiniSPlitsunroom
- ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
- ENDIF
- endif
- endif
- IF sunroom_mode <> 3 THEN
- IF modeselect => unitreturn AND modeselect < unitsleep THEN
- 'if hour = Nb_varH37 and minute = Nb_varM37 then 'return
- sunroom_mode = 3
- IF nb_var32<> nb_var38 THEN
- nb_var32 = Nb_var38
- GOSUB MiniSPlitsunroom
- ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
- ENDIF
- endif
- endif
- IF sunroom_mode <> 4 THEN
- IF modeselect => unitsleep THEN
- 'if hour = Nb_varH39 and minute = Nb_varM39 then 'sleep
- sunroom_mode = 4
- IF nb_var32<> nb_var40 THEN
- nb_var32 = Nb_var40
- GOSUB MiniSPlitsunroom
- 'DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
- ENDIF
- endif
- endif
- endif
- 'Sat&Sun
- 'if day >= 6 then
- IF sleepalarmswitch = 0 THEN
- modeSelect = hour*100+minute
- UnitWake = Nb_varH63*100+Nb_varM63
- UnitSleep = Nb_varH65*100+Nb_varM65
- SEROUT2 pinkTX, pinkBaud, ["!NB0R63"] ' Command To Read sunroom wake time
- ERROR = 63
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH63 THEN
- Nb_varH63 = mem1
- I2cwrite EpSDA,EpScl,$a0,81,[mem1]
- 'pause 5
- ' debug "W-SS Wk Hr(81)" ,cr
- endif
- IF mem2 <> Nb_varM63 THEN
- Nb_varM63 = mem2
- I2cwrite EpSDA,EpScl,$a0,82,[mem2]
- 'pause 5
- ' debug "W-SS Wk Mn(82)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R64"] ' Command To Read sunRoomwake Temp
- ERROR = 64
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var64 THEN
- Nb_var64 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,83,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,145,[mem1]
- 'pause 5
- ' debug "W-SS wk tmp(83)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R65"] ' Command To Read sunroom Sleep time
- ERROR = 65
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH65 THEN
- Nb_varH65 = mem1
- I2cwrite EpSDA,EpScl,$a0,84,[mem1]
- 'pause 5
- ' debug "W-SS Sl hr(84)" ,cr
- endif
- IF mem2 <> Nb_varM65 THEN
- Nb_varM65 = mem2
- I2cwrite EpSDA,EpScl,$a0,85,[mem2]
- 'pause 5
- ' debug "W-SS Sl Mn(85)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R66"] ' Command To Read sunroom Sleep Temp
- ERROR = 66
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var66 THEN
- Nb_var66 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,86,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,146,[mem1]
- 'pause 5
- 'debug "W-SS Sl tmp(86)" ,cr
- Endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R32"] ' Command To Read sunRoom current setting temp
- ERROR = 32
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var32 THEN
- Nb_var32 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,95,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,140,[mem1]
- IF sunroom_busy = %00000000 THEN GOSUB minisplitsunroom
- ' debug "sunroom set",cr
- 'write 2 ,mem1
- ' debug "W-cnt set(95)" ,hex2 mem1,cr
- endif
- ' DEBUG "MS-SunRoom ", HEX2 ms_sunroom , cr
- IF sunroom_mode <> 1 THEN
- IF modeselect => Unitwake AND modeselect < UnitSleep THEN
- 'if hour = Nb_varH63 and minute = Nb_varM63 then 'Wake
- Sunroom_mode = 1
- IF nb_var32<> nb_var64 THEN
- nb_var32 = Nb_var64
- GOSUB MiniSPlitsunroom
- ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
- ENDIF
- ENDIF
- endif
- IF sunroom_mode <> 4 THEN
- IF modeselect => Unitsleep THEN
- 'if hour = Nb_varH65 and minute = Nb_varM65 then 'sleep
- Sunroom_mode = 4
- IF nb_var32<> nb_var66 THEN
- nb_var32 = Nb_var66
- GOSUB MiniSPlitsunroom
- 'DEBUG "Ah-Ha",hex2 MS_sunroom , cr
- ENDIF
- endif
- ENDIF
- 'sleep temp set
- endif
- '----------set x-bee channel------------
- SunRoom_set:
- pause 50
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 4",CR] 'address module "4" is Sunroom
- serout2 TX,baud,["ATDL 4",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,sunroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr ,10
- pause 18000
- GOTO timeout7 'skip com with sunroom for now
- sunroom_set1:
- '-----------send data to Sunroom module------------------------
- serout2 TX,Baud, [" Sunroom "]
- pause 50
- serout2 TX,Baud, [":",Nb_var32,hex2 hour,hex2 minute, sunroom_mode,day,backlight_bit,Nb_var93,OutdoorRH, OutdoorTF,NB_var72,0] 'send pink temp value to office module
- '--------------------------------------------------------------------------------------------------------------Nb_var72 = LR_RH Set point^
- '----------Get data from Sunroom module--------------------
- 'pause 50
- ' debug "Sunroom ", dec nb_var93, cr
- SERIN2 RX,Baud,PauseBit,timeout7,[Sunroom_Temp,Sunroom_Setting] 'get temperature and user set temp from office module
- sunroom_busy = %00000000
- '----------send data from Sunroom module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W32:", dec Sunroom_Setting, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W31:", dec Sunroom_Temp, CLS] 'send current temp to Pink
- timeout_bit =0
- shiftout serdata, clock,0,[livingroom_busy +atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- 'LivingRoom
- ' ____________________________________________________________________
- '_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X
- 'livingroom
- 'debug "here1",cr
- LivingRoom:
- '--------------mini split radio buttons
- GOSUB read_radioButtons
- Pause 200
- 'debug "LivingRoom Error...", dec error,cr ,10
- shiftout serdata, clock,0,[%01000000+ livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- '----------Get Pink Data
- 'Mon-Fri
- 'debug dec sleepalarmswitch, cr
- IF sleepalarmswitch = 1 THEN
- modeSelect = hour*100+minute
- unitwake = Nb_varH43*100+Nb_varM43
- unitLeave = Nb_varH45*100+Nb_varM45
- unitreturn = Nb_varH47*100+Nb_varM47
- unitsleep = Nb_varH49*100+Nb_varM49
- 'if day <= 5 then
- 'debug "M-F",cr
- SEROUT2 pinkTX, pinkBaud, ["!NB0R43"] ' Command To Read Livingroom Wake time
- ERROR = 43
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH43 THEN
- Nb_varH43 = mem1
- I2cwrite EpSDA,EpScl,$a0,51,[mem1]
- 'pause 5
- ' debug "W-wk hr(51)" ,cr
- endif
- IF mem2 <> Nb_varM43 THEN
- Nb_varM43 = mem2
- I2cwrite EpSDA,EpScl,$a0,52,[mem2]
- 'pause 5
- ' debug "W-wk mn(52)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R44"] ' Command To Read living Wake temp
- ERROR = 44
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var44 THEN
- Nb_var44 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,53,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,148,[mem1]
- 'pause 5
- ' debug "W-wk tmp(41)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R45"] ' Command To Read living Leave time
- ERROR = 45
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH45 THEN
- Nb_varH45 = mem1
- I2cwrite EpSDA,EpScl,$a0,54,[mem1]
- 'pause 5
- ' debug "W-lv hr(54)" ,cr
- endif
- IF mem2 <> Nb_varM45 THEN
- Nb_varM45 = mem2
- I2cwrite EpSDA,EpScl,$a0,55,[mem2]
- 'pause 5
- ' debug "W-lv mn(55)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R46"] ' Command To Read livingRoom Leave temp
- ERROR = 46
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var46 THEN
- Nb_var46 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,56,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,149,[mem1]
- 'pause 5
- ' debug "W-lv tmp(56)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R47"] ' Command To Read Livingroom Return time
- ERROR = 47
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH47 THEN
- Nb_varH47 = mem1
- I2cwrite EpSDA,EpScl,$a0,57,[mem1]
- 'pause 5
- ' debug "W-rtn hr(57)" ,cr
- endif
- IF mem2 <> Nb_varM47 THEN
- Nb_varM47 = mem2
- I2cwrite EpSDA,EpScl,$a0,58,[mem2]
- 'pause 5
- ' debug "W-rtn mn(58)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R48"] ' Command To Read Livingroom Return Temp
- ERROR = 48
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var48 THEN
- Nb_var48 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,59,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,150,[mem1]
- 'pause 5
- ' debug "W-rtn tmp(59)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R49"] ' Command To Read livingroom Sleep time
- ERROR = 49
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH49 THEN
- Nb_varH49 = mem1
- I2cwrite EpSDA,EpScl,$a0,60,[mem1]
- 'pause 5
- ' debug "W-sl hr(60)" ,cr
- endif
- IF mem2 <> Nb_varM49 THEN
- Nb_varM49 = mem2
- I2cwrite EpSDA,EpScl,$a0,61,[mem2]
- 'pause 5
- ' debug "W-sl mn(61)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R50"] ' Command To Read LivingRoom Sleep Temp
- ERROR = 50
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var50 THEN
- Nb_var50 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,62,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,151,[mem1]
- ''pause 5
- ' debug "W-sl tmp(62)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R42"] ' Command To Read Livingroom current setting temp
- ERROR = 42
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var42 THEN
- Nb_var42 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,96,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,147,[mem1]
- IF livingroom_busy = %00000000 THEN GOSUB minisplitlivingroom
- ' debug "Livingroom Set", cr
- ' debug "W-cnt set(96)" ,dec mem1 ,cr
- endif
- ' DEBUG "MS-LIVINGROOM ", HEX2 ms_sunroom , cr
- IF livingroom_mode <> 1 THEN
- IF modeselect => unitwake AND modeselect < unitleave THEN
- 'if hour = Nb_varH43 and minute = Nb_varM43 then 'Wake
- livingroom_mode = 1
- IF nb_var42<> nb_var44 THEN
- nb_var42 = Nb_var44
- GOSUB MiniSPlitLivingroom
- ' DEBUG "Ah-Ha",hex2 MS_LivingRoom , cr
- ENDIF
- endif
- endif
- IF livingroom_mode <> 2 THEN
- IF modeselect => unitleave AND modeselect < unitreturn THEN
- ' if hour = Nb_varH45 and minute = Nb_varM45 then 'leave
- livingroom_mode = 2
- IF nb_var42<> nb_var46 THEN
- nb_var42 = Nb_var46
- GOSUB MiniSPlitlivingroom
- ' DEBUG "Ah-Ha",hex2 MS_LivnigRoom , cr
- ENDIF
- endif
- endif
- IF livingroom_mode <> 3 THEN
- IF modeselect => unitreturn AND modeselect < unitsleep THEN
- ' if hour = Nb_varH47 and minute = Nb_varM47 then 'return
- livingroom_mode = 3
- IF nb_var42<> nb_var48 THEN
- nb_var42 = Nb_var48
- GOSUB MiniSPlitlivingroom
- ' DEBUG "Ah-Ha",hex2 MS_livingRoom , cr
- ENDIF
- endif
- endif
- IF livingroom_mode <> 3 THEN
- IF modeselect => unitsleep THEN
- 'if hour = Nb_varH49 and minute = Nb_varM49 then 'sleep
- livingroom_mode = 4
- IF nb_var42<> nb_var50 THEN
- nb_var42 = Nb_var50
- GOSUB MiniSPlitlivingroom
- 'DEBUG "Ah-Ha",hex2 MS_livingRoom , cr
- ENDIF
- endif
- endif
- endif
- 'Sat&Sun
- 'if day >= 6 then
- IF sleepalarmswitch = 0 THEN
- modeSelect = hour*100+minute
- UnitWake = Nb_varH67*100+Nb_varM67
- UnitSleep = Nb_varH69*100+Nb_varM69
- SEROUT2 pinkTX, pinkBaud, ["!NB0R67"] ' Command To Read livingroom wake time
- ERROR = 67
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH67 THEN
- Nb_varH67 = mem1
- I2cwrite EpSDA,EpScl,$a0,87,[mem1]
- ''pause 5
- ' debug "W-SS Wk Hr(87)" ,cr
- endif
- IF mem2 <> Nb_varM67 THEN
- Nb_varM67 = mem2
- I2cwrite EpSDA,EpScl,$a0,88,[mem2]
- ' 'pause 5
- ' debug "W-SS Wk Mn(88)" ,cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R68"] ' Command To Read livingRoomwake Temp
- ERROR = 68
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var68 THEN
- Nb_var68 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,89,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,152,[mem1]
- ''pause 5
- ' debug "W-SS wk tmp(89)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R69"] ' Command To Read livingroom Sleep time
- ERROR = 69
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
- IF mem1 <> Nb_varH69 THEN
- Nb_varH69 = mem1
- I2cwrite EpSDA,EpScl,$a0,90,[mem1]
- ' 'pause 5
- ' debug "W-SS Sl hr(90)" ,cr
- endif
- IF mem2 <> Nb_varM69 THEN
- Nb_varM69 = mem2
- I2cwrite EpSDA,EpScl,$a0,91,[mem2]
- ''pause 5
- ' debug "W-SS Sl Mn(91)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R70"] ' Command To Read livingroom Sleep Temp
- ERROR = 70
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var70 THEN
- Nb_var70 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,92,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,153,[mem1]
- ''pause 5
- 'debug "W-SS Sl tmp(92)" ,cr
- Endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R42"] ' Command To Read livingRoom current setting temp
- ERROR = 42
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
- IF mem1 <> Nb_var42 THEN
- Nb_var42 = mem1
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,96,[mem1]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,147,[mem1]
- IF livingroom_busy = %00000000 THEN GOSUB minisplitlivingroom
- ' debug "livingroom set",cr
- 'write 2 ,mem1
- ' debug "W-cnt set(96)" ,hex2 mem1,cr
- endif
- ' DEBUG "MS-LivingRoom ", HEX2 ms_sunroom , cr
- IF livingroom_mode <> 1 THEN
- IF modeselect => Unitwake AND modeselect < UnitSleep THEN
- 'if hour = Nb_varH67 and minute = Nb_varM67 then 'Wake
- livingroom_mode = 1
- IF nb_var42<> nb_var68 THEN
- nb_var42 = Nb_var68
- GOSUB MiniSPlitlivingroom
- ' DEBUG "Ah-Ha",hex2 MS_LivingRoom , cr
- ENDIF
- ENDIF
- endif
- IF livingroom_mode <> 4 THEN
- IF modeselect => Unitsleep THEN
- 'if hour = Nb_varH69 and minute = Nb_varM69 then 'sleep
- livingroom_mode = 4
- IF nb_var42<> nb_var70 THEN
- nb_var42 = Nb_var70
- GOSUB MiniSPlitlivingroom
- 'DEBUG "Ah-Ha",hex2 MS_livingroom , cr
- ENDIF
- endif
- ENDIF
- endif
- 'sleep temp set
- '----------set x-bee channel------------
- LivingRoom_set:
- ' debug"here",cr
- 'pause 50
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 11",CR] 'address module "6" is livingroom
- serout2 TX,baud,["ATDL 11",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,livingroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr ,10
- pause 18000
- GOTO timeout8 'skip com with livingroom for now
- Livingroom_set1:
- '-----------send data to Livingroom module------------------------
- serout2 TX,Baud, [" Livingroom "]
- pause 50
- serout2 TX,Baud, [":",Nb_var42,hex2 hour,hex2 minute, livingroom_mode,day,backlight_bit,Nb_var93,OutdoorRH, OutdoorTF] 'send pink temp value to office module
- '----------Get data from Livingroom module--------------------
- pause 50
- 'debug "livingroom ", dec nb_var93, cr
- SERIN2 RX,Baud,PauseBit,timeout8,[Livingroom_Temp,Livingroom_Setting,NB_var72] 'get temperature and user set temp + humidity from livingroom module
- livingroom_busy = %00000000
- ' serout2 pinktx,pinkbaud,["!NB0W72:",dec nb_var72,cls]
- '-----------Put NB_var72 in PINK (Humidity reading from living room unit)
- serout2 pinktx,pinkbaud,["!NB0W72:",dec nb_var72,CLS]
- '----------send data from LIvingroom module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W42:", dec Livingroom_Setting, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W41:", dec Livingroom_Temp, CLS] 'send current temp to Pink
- timeout_bit =0
- shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- ' SAS_checksum = SleepAlarmSwitch
- 'gosub Attic_outdoor_unit
- powerout = 1 ' you made it through the program without timing out,
- 'the pic and web page are talking : if you timed out see timeout and timeout1
- Attic_outdoor_unit:
- GOSUB read_radioButtons
- Pause 200
- 'debug "Attic Error...", dec error,cr ,10
- shiftout serdata, clock,0,[%00010000+ livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
- pulsout latch,5
- INPUT serdata
- 'pause 1500
- SEROUT2 pinkTX, pinkBaud, ["!NB0R74"] ' Command To Read Attic current setting temp
- ERROR = 74
- SERIN2 pinkRX, pinkBaud,1000,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> attic_setting THEN
- attic_setting = mem1
- I2cwrite EpSDA,EpScl,$a0,110,[mem1]
- debug " attic setting set to ", dec mem1,cr ,10
- endif
- 'debug "attic ", dec nb_var93, cr
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 10",CR] 'address module "10" is attic
- serout2 TX,baud,["ATDL 10",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,attic_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr ,10
- pause 18000
- GOTO timeout9 'skip com with diningroom for now
- attic_set1:
- '-----------send data to Attic module------------------------
- serout2 TX,Baud, [" Attic "]
- 'pause 50
- serout2 TX,Baud, [":",attic_setting,hex2 hour,hex2 minute,backlight_bit] 'send pink temp value to office module
- '----------Get data from Attic module--------------------
- SERIN2 RX,Baud,PauseBit,timeout9,[ Attic_Temp, Attic_Setting,outdoorRH,outdoortf,sleepalarmswitch ] 'get temperature and user set temp from office module
- AtticUnit_busy = %00000000
- '----------send data from Atticroom module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W74:", dec Attic_Setting, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W73:", dec attic_Temp, CLS] 'send current temp to Pink
- IF minute = 0 THEN RH_Trend0 = outdoorRH
- IF minute = 15 THEN RH_Trend15 = outdoorRH
- IF minute = 30 THEN RH_Trend30 = outdoorRH
- IF minute = 45 THEN RH_Trend45 = outdoorRH
- RH_result= (RH_Trend0 + RH_Trend15 + RH_Trend30 + RH_Trend45 )/4
- IF RH_Result > outdoorRH THEN serout2 pinktx,pinkbaud,["!NB0W75:","< ",dec outdoorRH,CLS]
- IF RH_Result < outdoorRH THEN serout2 pinktx,pinkbaud,["!NB0W75:",dec outdoorRH," >",CLS]
- IF RH_Result = outdoorRH THEN serout2 pinktx,pinkbaud,["!NB0W75:","= ",dec outdoorRH,CLS]
- 'debug dec RH_Trend0,";",dec RH_Trend15,";",dec RH_Trend30,";",dec RH_Trend45, cr ,10
- 'debug dec RH_result, cr,10
- serout2 pinktx,pinkbaud, ["!NB0W76:", dec outdoortf, CLS]
- IF sleepalarmswitch = 1 THEN serout2 pinktx,pinkbaud, ["!NB0W77:","On", CLS]
- IF sleepalarmswitch = 0 THEN serout2 pinktx,pinkbaud, ["!NB0W77:","Off", CLS]
- timeout_bit =0
- shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy+solarUnit_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- Pause 200
- solar:
- shiftout serdata, clock,0,[%00000100+ livingroom_busy+atticUnit_busy+solarUnit_busy+greenhouse_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- SEROUT2 pinkTX, pinkBaud, ["!NB0R78"] ' Command To Read tracker home temp
- ERROR = 78
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var78 THEN
- Nb_var78 = mem1
- I2cwrite EpSDA,EpScl,$a0,111,[mem1]
- ''pause 5
- ' debug "W-SS wk tmp(89)",cr
- endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R79"] ' Command To Read tracker home temp
- ERROR = 79
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var79 THEN
- Nb_var79 = mem1
- I2cwrite EpSDA,EpScl,$a0,112,[mem1]
- ''pause 5
- ' debug "W-SS wk tmp(89)",cr
- endif
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 15",CR] 'address module "15" is solar
- serout2 TX,baud,["ATDL 15",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,solar_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr ,10
- pause 18000
- GOTO timeout10 'skip com for now
- solar_set1:
- '-----------send data to solar module------------------------
- serout2 TX,Baud, [" Solar "]
- 'debug "sending data", cr,10
- pause 50
- serout2 TX,Baud, [" Solar "]'more buffer
- pause 50
- serout2 TX,baud, ["ABC",Diningroom_temp,Nb_var22,Nb_varH23,Nb_varM23,Nb_var24,Nb_varH27,Nb_varM27,Nb_var28,Nb_varH59,Nb_varM59,Nb_var60,Nb_Var72 ]
- pause 50
- serout2 TX,baud, ["DEF",sunroom_temp ,Nb_var32,Nb_varH33,Nb_varM33,Nb_var34,Nb_varH37,Nb_varM37,Nb_var38,Nb_varH63,Nb_varM63,Nb_var64,outdoortf,Nb_var78 ,Nb_var79]
- pause 50
- serout2 TX,baud, ["GHI",livingroom_temp, Nb_var42,Nb_varH43,Nb_varM43,Nb_var44,Nb_varH47,Nb_varM47,Nb_var48,Nb_varH67,Nb_varM67,Nb_var68, hour, minute,SleepAlarmSwitch ]
- '----------Get data from Solar module--------------------
- SERIN2 RX,Baud,PauseBit,timeout10,[ tank, panel] 'get temperature and user set temp from office module
- '----------send data from Solar module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W80:", dec tank, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W81:", dec panel, CLS] 'send current temp to Pink
- solarUnit_busy = %00000000
- shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy +solarUnit_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- Greenhouse:
- pause 500
- shiftout serdata, clock,0,[%00000001+ livingroom_busy+atticUnit_busy+solarUnit_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- 'SEROUT2 pinkTX, pinkBaud, ["!NB0R82"] ' Command To Read greenhouse temp
- ' error = 82
- 'SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- 'if mem1 <> Nb_var82 then
- ' Nb_var82 = mem1
- ' endif
- SEROUT2 pinkTX, pinkBaud, ["!NB0R83"] ' Command To Read vent setting
- ERROR = 83
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
- IF mem1 <> Nb_var83 THEN
- IF mem1 > 82 THEN
- Nb_var83 = Nb_var83
- ELSE
- Nb_var83 = mem1
- I2cwrite EpSDA,EpScl,$a0,113,[mem1]
- endif
- endif
- serout2 TX,baud,["+++"]
- pause 1000
- serout2 TX,baud,["ATMY 17",CR] 'address module "17" is greenhouse
- serout2 TX,baud,["ATDL 17",CR]
- serout2 TX,baud,["ATCN",CR]
- pause Busy_Bit
- SERIN2 RX,Baud,250,greenhouseSet1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
- debug " Bootloader programming in Progress",dec mem1,dec mem2,dec mem3, cr ,10
- pause 18000
- GOTO timeout10 'skip com for now
- greenhouseSet1:
- serout2 TX,Baud, [" Greenhouse "]
- 'debug "sending data", cr,10
- serout2 TX,baud, [":",Nb_var83]
- ' pause 50
- '----------Get data from Solar module--------------------
- SERIN2 RX,Baud,PauseBit,timeout11,[nb_var82,mem1] 'get temperature and user set temp from greenhouse module
- '----------send data from Solar module to pink---------------
- serout2 pinktx,pinkbaud, ["!NB0W82:", dec nb_var82, CLS]
- serout2 pinktx,pinkbaud, ["!NB0W83:", dec nb_var83, CLS] 'send current temp to Pink
- greenhouse_busy = %00000000
- shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy +solarUnit_busy]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- '--------------load default temps depending on heat of AC button
- 'System Heat / AC 0 = AC 1 = heat
- system1:
- SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read minisplit radio button
- ERROR = 93
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout93,[dec mem2]
- IF mem2 <> Nb_var93 THEN
- Nb_var93 = mem2
- IF Nb_var93 =>3 THEN
- debug " wrong value in NbVar_93 ",dec nb_var93,cr,10
- GOSUB read_radioButtons
- endif
- debug " write ", dec Nb_var93, " to eeprom",cr ,10
- 'serout2 pinktx,pinkbaud,["!NB0W93:",dec mem2,cls]
- I2cwrite EpSDA,EpScl,$a0,108,[mem2]
- '
- debug " change",cr ,10
- GOSUB system2
- GOSUB minisplitoffice
- GOSUB minisplitbedroom
- GOSUB minisplitdiningroom
- GOSUB minisplitsunroom
- GOSUB minisplitlivingroom
- pause 3000
- endif
- IF outdoortf <= 19 THEN
- IF nb_var86 = 1 THEN
- Of_MS_LT = 1
- serout2 pinktx,pinkbaud,["!NB0W86:","0",CLS]
- endif
- IF nb_var88 = 1 THEN
- BR_MS_LT = 1
- serout2 pinktx,pinkbaud,["!NB0W88:","0",CLS]
- endif
- IF nb_var90 = 1 THEN
- dr_MS_LT = 1
- serout2 pinktx,pinkbaud,["!NB0W90:","0",CLS]
- endif
- IF nb_var92 = 1 THEN
- su_MS_LT = 1
- serout2 pinktx,pinkbaud,["!NB0W92:","0",CLS]
- endif
- IF nb_var71 = 1 THEN
- lr_MS_LT = 1
- serout2 pinktx,pinkbaud,["!NB0W71:","0",CLS]
- endif
- ' nb_var86=0
- ' nb_var88=0
- ' nb_var90=0
- ' nb_var92=0
- 'nb_var71=0
- endif
- IF outdoortf >21 THEN
- IF Of_MS_LT = 1 THEN
- 'nb_var86 = 1
- serout2 pinktx,pinkbaud,["!NB0W86:","1",CLS]
- endif
- IF br_MS_LT = 1 THEN
- 'nb_var88 = 1
- serout2 pinktx,pinkbaud,["!NB0W88:","1",CLS]
- endif
- IF dr_MS_LT = 1 THEN
- ' nb_var90 = 1
- serout2 pinktx,pinkbaud,["!NB0W90:","1",CLS]
- endif
- IF su_MS_LT = 1 THEN
- 'nb_var92 = 1
- serout2 pinktx,pinkbaud,["!NB0W92:","1",CLS]
- endif
- IF lr_MS_LT = 1 THEN
- 'nb_var71 = 1
- serout2 pinktx,pinkbaud,["!NB0W71:","1",CLS]
- endif
- BR_MS_LT=0
- Of_MS_LT=0
- LR_MS_LT=0
- DR_MS_LT=0
- Su_MS_LT=0
- endif
- IF powerout = 0 THEN
- RH_Trend0 = outdoorrh
- RH_Trend15 = outdoorrh
- RH_Trend30 = outdoorrh
- RH_Trend45 = outdoorrh
- endif
- GOSUB read_radioButtons
- GOSUB Get_time
- GOTO main
- Get_Time:
- pause 1000
- I2CWRITE SDA,SCL, I2c_WR, [0] 'get time
- I2CREAD SDA,SCL, I2C_RD, [Second,Minute,Hour,Day,Date,Month,Year]
- date = 10*(date >>4) + (date & $0f) 'convert hex to bcd
- month = 10*(month >>4) + (month & $0f)
- '----------read Pink system time----------------
- '_________' Command To Read system time CLEAR THE CRAP FROM WEB PAGE INTERRUPT__________________________________________________
- SEROUT2 pinkTX, pinkBaud, ["!NB0R97"]
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout,[hex2 mem1, SKIP 1,hex2 mem2]'
- ' --------------------------------------------------------------------------
- SEROUT2 pinkTX, pinkBaud, ["!NB0R97"] ' Command To Read system time
- ERROR = 97
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout,[hex2 pinkhour, SKIP 1,hex2 pinkminute]' Get Data With Timeout
- pinkHour = pinkHour & %00111111
- Second = Second & %01111111 ' Enable oscillator
- IF pinkhour <> 37 THEN ' = dec 25----see if time has been set on pink
- second =0
- SEROUT2 pinkTX, pinkBaud, ["!NB0R98"] ' Command To Read system day
- ERROR =98
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout,[skip 1, dec day]
- ' serout2 pinktx,pinkbaud, ["!NB0W98:",,"0",dec day,cls]
- SEROUT2 pinkTX, pinkBaud, ["!NB0R99"] ' Command To Read system date
- ERROR = 99
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout,[hex2 month,skip 1,hex2 date,skip 1,hex2 year]
- I2CWRITE SDA,SCL, I2C_WR, [0, Second, pinkMinute, pinkHour,Day,Date,Month,Year]
- serout2 pinktx,pinkbaud, ["!NB0W97:25:25", CLS]'clear set time
- serout2 pinktx,pinkbaud, ["!NB0W98:","0" ,dec day,CLS]
- endif
- SEROUT2 pinkTX,pinkBaud, ["!NB0W99:",dec2 month,":",dec2 date,":",hex2 year,CLS]
- serout2 pinktx,pinkbaud, ["!NB0W96:", hex2 hour,":",hex2 Minute, CLS]'put time on webpage
- serout2 pinktx,pinkbaud, ["!NB0W98:","0" ,dec day,CLS]
- ' debug hex2 hour,":",hex2 minute,cr
- ' debug hex2 month,"/",hex2 date,"/",hex2 year,cr
- '--------SUNRISE/SUNSET LCD BACKLIGHT-----------------------------------
- 'sunrise hour
- IF month =1 THEN month_multiplier =0
- IF month =2 THEN month_multiplier =31
- IF month =3 THEN month_multiplier =59
- IF month =4 THEN month_multiplier =90
- IF month =5 THEN month_multiplier =120
- IF month =6 THEN month_multiplier =151
- IF month =7 THEN month_multiplier =181
- IF month =8 THEN month_multiplier =212
- IF month =9 THEN month_multiplier =243
- IF month =10 THEN month_multiplier =273
- IF month =11 THEN month_multiplier =304
- IF month =12 THEN month_multiplier =334
- day_of_year = date + month_multiplier
- 'sunrise hr
- IF month <=6 THEN
- Lookup day_of_year,[0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,_ 'jan
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,_'Feb
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,_'mar
- 7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,_'april
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,_'may
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6],sunrise_hour'june
- endif
- IF month >=7 THEN
- lookup day_of_year-181,[0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,_'July
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,_'aug
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,_'sept
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,_'oct
- 8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,_'nov
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8], sunrise_hour
- endif
- 'sunrise min
- IF month <=6 THEN
- lookup day_of_year,[0,01,01,01,02,02,01,01,01,01,01,01,00,00,00,59,59,58,58,57,57,56,55,55,54,53,53,52,51,50,49,48,_'Jan
- 47,46,45,44,43,42,41,40,38,37,36,35,33,32,31,29,28,27,25,24,22,21,19,18,16,15,13,12,_'Feb
- 10,9,7,6,4,2,1,59,57,56,54,52,51,49,47,46,44,42,41,39,37,36,34,32,30,29,27,25,24,22,20,_'mar
- 19,17,15,13,12,10,8,7,5,4,2,0,59,57,56,54,52,51,49,48,46,45,43,42,40,39,37,36,35,33,_ 'april
- 32,31,29,28,27,26,24,23,22,21,20,19,18,16,15,14,14,13,12,11,10,9,8,8,7,6,6,5,4,4,3,_'may
- 3,2,2,1,1,1,0,0,0,0,0,59,59,59,59,59,59,59,0,0,0,0,0,1,1,1,2,2,2,3],sunrise_min'june
- endif
- IF month >=7 THEN
- lookup day_of_year-181,[0,4,4,5,5,6,6,7,8,8,9,10,10,11,12,13,14,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,_'july
- 28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,59,_'aug
- 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,_'sept
- 30,31,33,34,35,36,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,54,55,56,57,58,59,0,2,3,4,_'oct
- 5,7,8,9,10,12,13,14,15,16,18,19,20,21,23,24,25,26,27,29,30,31,32,33,34,35,37,38,39,40,_'Nov
- 41,42,43,44,45,46,47,48,49,50,51,51,52,53,54,54,55,56,56,57,58,58,59,59,59,0,0,0,1,1,1],sunrise_min'dec
- endif
- 'sunset hour (24 hr)
- IF month <=6 THEN
- lookup day_of_year,[0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,_'jan
- 17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,_'feb
- 18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,_'mar
- 19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,_'april
- 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,_'may
- 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21],sunset_hour'june
- endif
- IF month >=7 THEN
- lookup day_of_year-181,[0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,20,20,20,20,20,_'july
- 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,_'aug
- 20,20,20,20,20,20,20,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,_'sept
- 19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,_'oct
- 18,18,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,_'nov
- 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17],sunset_hour
- endif
- 'sunset minute
- IF month <=6 THEN
- lookup day_of_year,[0,14,15,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,34,35,36,37,38,40,41,42,43,45,46,47,_'jan
- 48,50,51,52,54,55,56,57,59,0,1,2,4,5,6,8,9,10,11,12,14,15,16,17,19,20,21,22,_'feb
- 23,25,26,27,28,29,30,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,_'mar
- 58,59,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,_'april
- 31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,56,57,58,59,0,1,_'may
- 1,2,3,4,4,5,6,6,7,7,8,9,9,10,10,10,11,11,11,12,12,12,12,13,13,13,13,13,13,13],sunset_min'june
- endif
- IF month >=7 THEN
- lookup day_of_year-181,[0,13,13,12,12,12,12,11,11,11,10,10,9,9,8,8,7,7,6,5,4,4,3,2,1,0,59,58,57,56,55,54,_'july
- 54,52,51,50,49,48,46,45,44,43,41,40,39,37,36,34,33,32,30,29,27,26,24,22,21,19,18,16,15,13,11,_'Aug
- 10,8,6,5,3,1,0,58,56,55,53,51,49,48,46,44,42,41,39,37,35,34,32,30,29,27,25,23,22,20,_'sept
- 18,16,15,13,11,10,8,6,5,3,1,0,58,57,55,53,52,50,49,47,46,44,43,41,40,39,37,36,34,33,32,_'oct
- 30,29,28,27,26,24,23,22,21,20,19,18,17,16,15,14,13,13,12,11,10,10,9,8,8,7,7,6,6,6,_'nov
- 5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,6,6,7,7,8,8,9,9,10,11,11,12,13],sunset_min
- endif
- hoursunset_hour = sunset_hour -$C
- sunrise_hour =(((sunrise_hour / 10) << 4) + (sunrise_hour // 10))'convert dec to bcd
- sunrise_min = (((sunrise_min / 10) << 4) + (sunrise_min // 10))
- sunset_hour = (((sunset_hour / 10) << 4) + (sunset_hour // 10))
- sunset_min = (((sunset_min / 10) << 4) + (sunset_min // 10))
- IF hour = sunrise_hour AND minute = sunrise_min THEN backlight_bit = 1
- IF hour = sunset_hour AND minute = sunset_min THEN backlight_bit = 0
- serout2 pinktx,pinkbaud, ["!NB0W94:",hex2 Sunrise_hour,":",hex2 Sunrise_min,CLS]
- serout2 pinktx,pinkbaud, ["!NB0W95:",hex2 Sunset_hour,":",hex2 Sunset_min, CLS]
- RETURN
- timeout:
- GOSUB system2
- debug " (timeout)" ,cr ,10
- Debug " Error ", dec ERROR, cr,10
- 'debug hex2 hour,":",hex2 minute,cr ,cr
- 'I2cread Epsda,Epscl,$A0,108,[nb_var93]
- ' debug "Epprom", dec nb_var93, cr
- pause 5000
- GOTO setup
- timeout1:
- GOSUB system2
- Pause 5000
- ' SleepAlarmSwitch = SAS_checksum
- Debug " Error ", dec ERROR, cr,10
- timeout_bit = timeout_bit + 1
- IF timeout_bit =5 THEN
- debug " (Timeout 1) " ,hex2 hour,":",hex2 minute,cr ,10
- timeout_bit =0
- debug " Rebooting..............",cr ,10
- @ RESET
- ' Debug bin nb_var93,",",bin nb_var86,",",bin nb_var88,",",bin nb_var90,",",bin nb_var92,",",bin nb_var71 ,cr
- 'goto Setup
- endif
- pause 500
- SERIN2 pinkRX, pinkBaud,PauseBit,main,[ mem1,mem2,mem3,mem1,mem2,mem3]
- debug " PINK stuff",cr,10
- timeout_bit =0
- GOTO main
- timeout93:
- pause 5000
- GOSUB system2
- debug " Radio-Button error ", cr,10
- Debug " Error ", dec ERROR, cr,10
- debug " ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
- timeout_bit = timeout_bit + 1
- shiftout serdata, clock,0,[%01010000]
- shiftout serdata, clock,0,[%01010101]
- pulsout latch,5
- INPUT serdata
- I2cread Epsda,Epscl,$A0,108,[mem1] 'system heat / AC
- serout2 pinktx,pinkbaud,["!NB0W93:",dec mem1,CLS]
- nb_var93 = mem1
- I2cread Epsda,Epscl,$A0,101,[mem1] 'office on off
- serout2 pinktx,pinkbaud,["!NB0W86:",dec mem1,CLS]
- nb_var86 = mem1
- I2cread Epsda,Epscl,$A0,103,[mem1] 'bedroom on off
- serout2 pinktx,pinkbaud,["!NB0W88:",dec mem1,CLS]
- nb_var88 = mem1
- I2cread Epsda,Epscl,$A0,105,[mem1] 'diningroom on off
- serout2 pinktx,pinkbaud,["!NB0W90:",dec mem1,CLS]
- nb_var90 = mem1
- I2cread Epsda,Epscl,$A0,107,[mem1] 'sunroom on off
- serout2 pinktx,pinkbaud,["!NB0W92:",dec mem1,CLS]
- nb_var92 = mem1
- I2cread Epsda,Epscl,$A0,109,[mem1] 'livingroom on off
- serout2 pinktx,pinkbaud,["!NB0W71:",dec mem1,CLS]
- nb_var71 = mem1
- debug " ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
- IF timeout_bit =15 THEN
- timeout_bit =0
- debug " Rebooting-------------",cr ,10
- @ RESET
- endif
- GOTO main
- timeout2:
- 'SleepAlarmSwitch = SAS_checksum
- pause 5000
- GOSUB system2
- debug " Web " ,hex2 hour,":",hex2 minute,cr,10
- Debug " Error ", dec ERROR, cr,10
- SERIN2 pinkRX, pinkBaud,PauseBit,main,[ mem1, mem2,mem3]
- debug " PINK stuff",cr,10
- 'low pinkreset
- 'debug " Resetting PINK",cr,10
- 'pause 4000
- 'high pinkreset
- ' pause 5000
- GOTO setup
- timeout3:
- pause 5000
- ' debug "Office Busy" ,cr
- shiftout serdata, clock,0,[Livingroom_busy]
- shiftout serdata, clock,0,[%10000000]
- pulsout latch,5
- INPUT serdata
- office_busy = %10000000
- 'debug hex2 hour,":",hex2 minute,cr,cr
- GOTO bedroom
- timeout5:
- pause 5000
- ' debug "Bedroom Busy",cr
- shiftout serdata, clock,0,[Livingroom_busy+ Atticunit_busy+solarUnit_busy]
- shiftout serdata, clock,0,[%00100000]
- pulsout latch,5
- INPUT serdata
- bedroom_busy = %00100000
- GOTO diningroom
- timeout6:
- pause 5000
- ' debug "DR Busy",cr
- shiftout serdata, clock,0,[Livingroom_busy+ Atticunit_busy+solarUnit_busy]
- shiftout serdata, clock,0,[%00001000]
- pulsout latch,5
- INPUT serdata
- diningroom_busy = %00001000
- GOTO sunroom
- timeout7:
- pause 5000
- ' debug "Sunroom Busy", Cr
- shiftout serdata, clock,0,[Livingroom_busy+ Atticunit_busy+solarUnit_busy]
- shiftout serdata, clock,0,[%00000010]
- pulsout latch,5
- INPUT serdata
- sunroom_busy = %00000010
- GOTO livingroom
- timeout8:
- pause 5000
- 'debug "Livingroom Busy", Cr
- shiftout serdata, clock,0,[%10000000]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- Livingroom_busy = %10000000
- GOTO attic_outdoor_unit
- timeout9:
- pause 5000
- shiftout serdata, clock,0,[%00100000]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- atticUnit_busy = %00100000
- GOTO solar
- timeout10:
- 'debug " timeout ",cr,10
- pause 1000
- shiftout serdata, clock,0,[%00001000]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- solarUnit_busy = %00001000
- GOTO greenhouse
- timeout11:
- pause 1000
- shiftout serdata, clock,0,[%00000010]
- shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
- pulsout latch,5
- INPUT serdata
- greenhouse_Busy = %00000010
- GOTO system1
- Office_error:
- pause 5000
- debug " Office Error ",dec ERROR," | " ,hex2 hour,":",hex2 minute," | ",dec2 month,"/",dec2 date,"/",hex2 year,cr,10
- GOSUB system2
- GOSUB get_time
- GOTO bedroom
- MiniSPlitOffice:
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,2,[nb_var02]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,119,[nb_var02]
- debug " Set office ",hex2 hour,":",hex2 minute," | ",dec nb_var02," Mode-",dec Office_mode,Cr,10
- IF Nb_var86 =0 THEN RETURN 'unit on/off
- 'pause 1000
- IF Nb_var93 = 0 THEN 'AC
- MS_Office = Nb_var02
- IF MS_Office > 78 THEN MS_Office =78
- IF MS_Office =< 72 THEN MS_Office = 72
- MS_Office = MS_Office-72
- LOOKUP MS_Office,[$3A,$3A,$3B,$3B,$3C,$3C,$3D,$3D], result
- endif
- IF Nb_var93 = 1 THEN 'heat
- MS_Office = Nb_var02
- IF MS_Office > 70 THEN MS_Office =70
- IF MS_Office =< 60 THEN MS_Office = 60
- MS_Office = MS_Office-60
- LOOKUP MS_Office,[$33,$33,$34,$34,$35,$35,$36,$36,$37,$37,$38,$38], result
- endif
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- pause 2500
- ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- 'pause 5000
- debug " Office set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var02,"(",hex2 result,")", cr ,10
- RETURN
- minisplitbedroom:
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,93,[Nb_var12]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,126,[Nb_var12]
- debug " Set Bedroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var12,Cr,10
- IF Nb_var88 =0 THEN RETURN
- 'SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read minisplit radio button
- ' SERIN2 pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
- IF Nb_var93 = 0 THEN 'AC
- MS_Bedroom = Nb_var12
- IF MS_Bedroom > 78 THEN MS_Bedroom =78
- IF MS_Bedroom =< 72 THEN MS_Bedroom = 72
- MS_Bedroom = MS_Bedroom-72
- 'debug dec MS_Bedroom,cr
- LOOKUP MS_Bedroom,[$45,$45,$46,$46,$47,$47,$48,$48], result
- endif
- IF Nb_var93 = 1 THEN 'heat
- MS_Bedroom = Nb_var12
- IF MS_Bedroom > 70 THEN MS_Bedroom =70
- IF MS_Bedroom =< 60 THEN MS_Bedroom = 60
- MS_Bedroom = MS_Bedroom-60
- 'debug dec MS_Bedroom,cr
- LOOKUP MS_Bedroom,[$43,$43,$42,$42,$41,$41,$40,$40,$3F,$3F,$3E,$3E], result
- endif
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- pause 2500
- 'serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- ' pause 5000
- debug " Bedroom set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var12,"(",hex2 result,")", cr ,10
- RETURN
- minisplitdiningroom:
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,94,[Nb_var22]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,133,[Nb_var22]
- debug " Set Diningroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var22,Cr,10
- IF Nb_var90 =0 THEN RETURN
- ' SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read minisplit radio button
- ' SERIN2 pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
- IF Nb_var93 = 0 THEN 'AC
- MS_diningroom = Nb_var22
- IF MS_diningroom > 78 THEN MS_diningroom =78
- IF MS_diningroom =< 72 THEN MS_diningroom = 72
- MS_diningroom = MS_diningroom-72
- LOOKUP MS_diningroom,[$27,$27,$26,$26,$25,$25,$24,$24], result
- endif
- IF Nb_var93 = 1 THEN 'heat
- MS_diningroom = Nb_var22
- IF MS_diningroom > 70 THEN MS_diningroom = 70
- IF MS_diningroom =< 60 THEN MS_diningroom = 60
- MS_diningroom = MS_diningroom-60
- 'debug dec MS_diningroom,cr
- LOOKUP MS_diningroom,[$1D,$1D,$1E,$1E,$4E,$4E,$20,$20,$21,$21,$22,$22],result
- endif
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- pause 2500
- ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- 'pause 5000
- debug " DiningRoom set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var22,"(",hex2 result,")", cr,10
- RETURN
- MiniSplitSunRoom:
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,95,[Nb_var32]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,140,[Nb_var32]
- debug " Set Sunroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var32,Cr,10
- IF Nb_var92 =0 THEN RETURN
- ' SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read minisplit radio button
- ' SERIN2 pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
- IF Nb_var93 = 0 THEN 'AC
- MS_SunRoom = Nb_var32
- IF MS_SunRoom > 78 THEN MS_SunRoom =78
- IF MS_SunRoom =< 72 THEN MS_SunRoom = 72
- MS_SunRoom = MS_SunRoom-72
- LOOKUP MS_SunRoom,[$2B,$2B,$2A,$2A,$29,$29,$28,$28], result
- endif
- IF Nb_var93 = 1 THEN 'heat
- MS_SunRoom = Nb_var32
- IF MS_SunRoom > 70 THEN MS_SunRoom = 70
- IF MS_SunRoom =< 60 THEN MS_SunRoom = 60
- MS_SunRoom = MS_SunRoom-60
- LOOKUP MS_SunRoom,[$32,$32,$31,$31,$30,$30,$2F,$2F,$2E,$2E,$2D,$2D], result
- endif
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- pause 2500
- ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- ' pause 5000
- debug " SunRoom set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var32,"(",hex2 result,")", cr ,10
- RETURN
- MiniSplitlivingRoom:
- IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,96,[Nb_var42]
- IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,147,[Nb_var42]
- debug " Set Livingroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var42,Cr,10
- IF Nb_var71 =0 THEN RETURN
- 'SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read minisplit radio button
- ' SERIN2 pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
- IF Nb_var93 = 0 THEN 'AC
- MS_LivingRoom = Nb_var42
- IF MS_LivingRoom > 78 THEN MS_LivingRoom =78
- IF MS_LivingRoom =< 72 THEN MS_LivingRoom = 72
- MS_LivingRoom = MS_LivingRoom-72
- LOOKUP MS_LivingRoom,[$12,$12,$13,$13,$4A,$4A,$49,$49], result
- endif
- IF Nb_var93 = 1 THEN 'heat
- MS_LivingRoom = Nb_var42
- IF MS_LivingRoom > 70 THEN MS_LivingRoom = 70
- IF MS_LivingRoom =< 60 THEN MS_LivingRoom = 60
- MS_LivingRoom = MS_LivingRoom-60
- LOOKUP MS_LivingRoom,[$1B,$1B,$1A,$1A,$4B,$4B,$18,$18,$4D,$4D,$4C,$4C], result
- endif
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- pause 3500
- ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
- 'pause 5000
- debug " LivingRoom set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var42,"(",hex2 result,")", cr,10
- ' Set MESSAGE CONTENT
- 'SEROUT2 pinkTX, pinkBaud, ["!NB0WEC:Livingroom set at ", hex2 hour,":",hex2 minute," To: ",dec Nb_var42," (",hex2 result,")", CLS]
- 'SEROUT2 pinkTX, pinkBaud, ["!NB0SM"] ' Command To Send E-Mail
- RETURN
- read_radioButtons:
- 'pause 200
- 'debug "read radio buttons...", dec error,cr ,10
- 'office ON/OFF 1 = on 0 = off
- SEROUT2 pinkTX, pinkBaud, ["!NB0R86"] ' Command To Read office minisplit radio button
- ERROR = 86
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
- IF mem1>1 THEN GOSUB radioButton_correction
- IF mem1 <> Nb_var86 THEN
- Nb_var86 = mem1
- I2cwrite EpSDA,EpScl,$a0,101,[mem1]
- IF Nb_var86 =0 THEN
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,$39,$CF,$11,$00]
- pause 2500
- serout2 PortB.2,Insteon, [$02,$62,$00,$00,$39,$CF,$11,$00]
- debug " Office off ",hex2 hour,":",hex2 minute,cr,10
- Pause 1000
- endif
- IF Nb_var86 =1 THEN GOSUB minisplitoffice
- endif
- 'bedroom ON/OFF
- SEROUT2 pinkTX, pinkBaud, ["!NB0R88"] ' Command To Read bedroom minisplit radio button
- ERROR = 88
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
- IF mem1>1 THEN GOSUB radioButton_correction
- IF mem1 <> Nb_var88 THEN
- Nb_var88 = mem1
- I2cwrite EpSDA,EpScl,$a0,103,[mem1]
- IF Nb_var88 =0 THEN
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$44,$CF,$11,$00]
- Pause 2500
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$44,$CF,$11,$00]
- debug " Bedroom off ",hex2 hour,":",hex2 minute,cr,10
- Pause 1000
- endif
- IF Nb_var88 =1 THEN GOSUB minisplitbedroom
- endif
- 'dining room ON/OFF
- SEROUT2 pinkTX, pinkBaud, ["!NB0R90"] ' Command To Read office minisplit radio button
- ERROR = 90
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
- IF mem1>1 THEN GOSUB radioButton_correction
- IF mem1 <> Nb_var90 THEN
- Nb_var90 = mem1
- I2cwrite EpSDA,EpScl,$a0,105,[mem1]
- IF Nb_var90 =0 THEN
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$23,$CF,$11,$00]
- pause 2500
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$23,$CF,$11,$00]
- debug " DiningRoom off ",hex2 hour,":",hex2 minute,cr,10
- Pause 1000
- endif
- IF Nb_var90 =1 THEN GOSUB minisplitdiningroom
- endif
- 'sunroom ON/OFF
- SEROUT2 pinkTX, pinkBaud, ["!NB0R92"] ' Command To Read office minisplit radio button
- ERROR = 92
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
- IF mem1>1 THEN GOSUB radioButton_correction
- IF mem1 <> Nb_var92 THEN
- Nb_var92 = mem1
- I2cwrite EpSDA,EpScl,$a0,107,[mem1]
- IF Nb_var92 =0 THEN
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$2C,$CF,$11,$00]
- Pause 2500
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$2C,$CF,$11,$00]
- debug " Sunroom off ",hex2 hour,":",hex2 minute,cr,10
- pause 1000
- endif
- IF Nb_var92 =1 THEN GOSUB minisplitsunroom
- endif
- 'livingroom ON/OFF
- SEROUT2 pinkTX, pinkBaud, ["!NB0R71"] ' Command To Read office minisplit radio button
- ERROR = 71
- SERIN2 pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
- IF mem1>1 THEN GOSUB radioButton_correction
- IF mem1 <> Nb_var71 THEN
- 'debug dec nb_var71, cr
- Nb_var71 = mem1
- I2cwrite EpSDA,EpScl,$a0,109,[mem1]
- IF Nb_var71 =0 THEN
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$1C,$CF,$11,$00]
- Pause 3500
- serout2 PortB.2,Insteon,[$02,$62,$00,$00,$1C,$CF,$11,$00]
- debug " Livingroom off ",hex2 hour,":",hex2 minute,cr,10
- pause 1000
- endif
- IF Nb_var71 =1 THEN GOSUB minisplitlivingroom
- endif
- RETURN
- radioButton_correction:
- Debug " Radio Button Correction in progress"
- debug " ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
- I2cread Epsda,Epscl,$A0,108,[nb_var93] 'system heat / AC
- IF nb_var93 = 1 THEN
- serout2 pinktx,pinkbaud,["!NB0W93:","1",CLS]
- endif
- IF nb_var93 = 0 THEN
- serout2 pinktx,pinkbaud,["!NB0W93:","0",CLS]
- endif
- 'debug dec nb_var93, cr
- I2cread Epsda,Epscl,$A0,101,[nb_var86] 'office on off
- serout2 pinktx,pinkbaud,["!NB0W86:",dec nb_var86,CLS]
- I2cread Epsda,Epscl,$A0,103,[nb_var88] 'bedroom on off
- serout2 pinktx,pinkbaud,["!NB0W88:",dec nb_var88,CLS]
- I2cread Epsda,Epscl,$A0,105,[nb_var90] 'diningroom on off
- serout2 pinktx,pinkbaud,["!NB0W90:",dec nb_var90,CLS]
- I2cread Epsda,Epscl,$A0,107,[nb_var92] 'sunroom on off
- serout2 pinktx,pinkbaud,["!NB0W92:",dec nb_var92,CLS]
- I2cread Epsda,Epscl,$A0,109,[nb_var71] 'livingroom on off
- serout2 pinktx,pinkbaud,["!NB0W71:",dec nb_var71,CLS]
- debug " ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
- RETURN
- system2:
- IF Nb_var93 = 0 THEN
- 'office
- I2cread Epsda,Epscl,$A0,2,[nb_var02] 'current temp
- serout2 pinktx,pinkbaud,["!NB0W02:",dec nb_var02,CLS]
- I2cread Epsda,Epscl,$A0,5,[nb_var04] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W04:",dec nb_var04,CLS]
- I2cread Epsda,Epscl,$A0,8,[nb_var06] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W06:",dec nb_var06,CLS]
- I2cread Epsda,Epscl,$A0,11,[nb_var08] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W08:",dec nb_var08,CLS]
- I2cread Epsda,Epscl,$A0,14,[nb_var10] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W10:",dec nb_var10,CLS]
- I2cread Epsda,Epscl,$A0,65,[nb_var52]
- serout2 pinktx,pinkbaud,["!NB0W52:",dec nb_var52,CLS]
- I2cread Epsda,Epscl,$A0,68,[nb_var54]
- serout2 pinktx,pinkbaud,["!NB0W54:",dec nb_var54,CLS]
- 'bedroom
- I2cread Epsda,Epscl,$A0,93,[nb_var12] 'current temp
- serout2 pinktx,pinkbaud,["!NB0W12:",dec nb_var12,CLS]
- I2cread Epsda,Epscl,$A0,17,[nb_var14] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W14:",dec nb_var14,CLS]
- I2cread Epsda,Epscl,$A0,20,[nb_var16] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W16:",dec nb_var16,CLS]
- I2cread Epsda,Epscl,$A0,23,[nb_var18] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W18:",dec nb_var18,CLS]
- I2cread Epsda,Epscl,$A0,26,[nb_var20] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W20:",dec nb_var20,CLS]
- I2cread Epsda,Epscl,$A0,71,[nb_var56]
- serout2 pinktx,pinkbaud,["!NB0W56:",dec nb_var56,CLS]
- I2cread Epsda,Epscl,$A0,74,[nb_var58]
- serout2 pinktx,pinkbaud,["!NB0W58:",dec nb_var58,CLS]
- 'diningroom
- I2cread Epsda,Epscl,$A0,94,[nb_var22] 'current temp
- serout2 pinktx,pinkbaud,["!NB0W22:",dec nb_var22,CLS]
- I2cread Epsda,Epscl,$A0,29,[nb_var24] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W24:",dec nb_var24,CLS]
- I2cread Epsda,Epscl,$A0,32,[nb_var26] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W26:",dec nb_var26,CLS]
- I2cread Epsda,Epscl,$A0,35,[nb_var28] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W28:",dec nb_var28,CLS]
- I2cread Epsda,Epscl,$A0,38,[nb_var30] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W30:",dec nb_var30,CLS]
- I2cread Epsda,Epscl,$A0,77,[nb_var60]
- serout2 pinktx,pinkbaud,["!NB0W60:",dec nb_var60,CLS]
- I2cread Epsda,Epscl,$A0,80,[nb_var62]
- serout2 pinktx,pinkbaud,["!NB0W62:",dec nb_var62,CLS]
- 'sunroom
- I2cread Epsda,Epscl,$A0,95,[nb_var32] 'current setting
- serout2 pinktx,pinkbaud,["!NB0W32:",dec nb_var32,CLS]
- I2cread Epsda,Epscl,$A0,41,[nb_var34] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W34:",dec nb_var34,CLS]
- I2cread Epsda,Epscl,$A0,44,[nb_var36] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W36:",dec nb_var36,CLS]
- I2cread Epsda,Epscl,$A0,47,[nb_var38] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W38:",dec nb_var38,CLS]
- I2cread Epsda,Epscl,$A0,50,[nb_var40] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W40:",dec nb_var40,CLS]
- I2cread Epsda,Epscl,$A0,83,[nb_var64]
- serout2 pinktx,pinkbaud,["!NB0W64:",dec nb_var64,CLS]
- I2cread Epsda,Epscl,$A0,86,[nb_var66]
- serout2 pinktx,pinkbaud,["!NB0W66:",dec nb_var66,CLS]
- 'livingroom
- I2cread Epsda,Epscl,$A0,96,[nb_var42] 'current setting
- serout2 pinktx,pinkbaud,["!NB0W42:",dec nb_var42,CLS]
- I2cread Epsda,Epscl,$A0,53,[nb_var44] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W44:",dec nb_var44,CLS]
- I2cread Epsda,Epscl,$A0,56,[nb_var46] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W46:",dec nb_var46,CLS]
- I2cread Epsda,Epscl,$A0,59,[nb_var48] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W48:",dec nb_var48,CLS]
- I2cread Epsda,Epscl,$A0,62,[nb_var50] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W50:",dec nb_var50,CLS]
- I2cread Epsda,Epscl,$A0,89,[nb_var68]
- serout2 pinktx,pinkbaud,["!NB0W68:",dec nb_var68,CLS]
- I2cread Epsda,Epscl,$A0,92,[nb_var70]
- serout2 pinktx,pinkbaud,["!NB0W70:",dec nb_var70,CLS]
- endif
- IF Nb_var93 = 1 THEN
- 'office
- I2cread Epsda,Epscl,$A0,119,[nb_var02] 'current temp
- serout2 pinktx,pinkbaud,["!NB0W02:",dec nb_var02,CLS]
- I2cread Epsda,Epscl,$A0,120,[nb_var04] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W04:",dec nb_var04,CLS]
- I2cread Epsda,Epscl,$A0,121,[nb_var06] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W06:",dec nb_var06,CLS]
- I2cread Epsda,Epscl,$A0,122,[nb_var08] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W08:",dec nb_var08,CLS]
- I2cread Epsda,Epscl,$A0,123,[nb_var10] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W10:",dec nb_var10,CLS]
- I2cread Epsda,Epscl,$A0,124,[nb_var52]
- serout2 pinktx,pinkbaud,["!NB0W52:",dec nb_var52,CLS]
- I2cread Epsda,Epscl,$A0,125,[nb_var54]
- serout2 pinktx,pinkbaud,["!NB0W54:",dec nb_var54,CLS]
- 'bedroom
- I2cread Epsda,Epscl,$A0,126,[nb_var12] 'current temp
- serout2 pinktx,pinkbaud,["!NB0W12:",dec nb_var12,CLS]
- I2cread Epsda,Epscl,$A0,127,[nb_var14] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W14:",dec nb_var14,CLS]
- I2cread Epsda,Epscl,$A0,128,[nb_var16] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W16:",dec nb_var16,CLS]
- I2cread Epsda,Epscl,$A0,129,[nb_var18] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W18:",dec nb_var18,CLS]
- I2cread Epsda,Epscl,$A0,130,[nb_var20] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W20:",dec nb_var20,CLS]
- I2cread Epsda,Epscl,$A0,131,[nb_var56]
- serout2 pinktx,pinkbaud,["!NB0W56:",dec nb_var56,CLS]
- I2cread Epsda,Epscl,$A0,132,[nb_var58]
- serout2 pinktx,pinkbaud,["!NB0W58:",dec nb_var58,CLS]
- 'diningroom
- I2cread Epsda,Epscl,$A0,133,[nb_var22] 'current temp
- serout2 pinktx,pinkbaud,["!NB0W22:",dec nb_var22,CLS]
- I2cread Epsda,Epscl,$A0,134,[nb_var24] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W24:",dec nb_var24,CLS]
- I2cread Epsda,Epscl,$A0,135,[nb_var26] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W26:",dec nb_var26,CLS]
- I2cread Epsda,Epscl,$A0,136,[nb_var28] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W28:",dec nb_var28,CLS]
- I2cread Epsda,Epscl,$A0,137,[nb_var30] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W30:",dec nb_var30,CLS]
- I2cread Epsda,Epscl,$A0,138,[nb_var60]
- serout2 pinktx,pinkbaud,["!NB0W60:",dec nb_var60,CLS]
- I2cread Epsda,Epscl,$A0,139,[nb_var62]
- serout2 pinktx,pinkbaud,["!NB0W62:",dec nb_var62,CLS]
- 'sunroom
- I2cread Epsda,Epscl,$A0,140,[nb_var32] 'current setting
- serout2 pinktx,pinkbaud,["!NB0W32:",dec nb_var32,CLS]
- I2cread Epsda,Epscl,$A0,141,[nb_var34] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W34:",dec nb_var34,CLS]
- I2cread Epsda,Epscl,$A0,142,[nb_var36] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W36:",dec nb_var36,CLS]
- I2cread Epsda,Epscl,$A0,143,[nb_var38] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W38:",dec nb_var38,CLS]
- I2cread Epsda,Epscl,$A0,144,[nb_var40] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W40:",dec nb_var40,CLS]
- I2cread Epsda,Epscl,$A0,145,[nb_var64]
- serout2 pinktx,pinkbaud,["!NB0W64:",dec nb_var64,CLS]
- I2cread Epsda,Epscl,$A0,146,[nb_var66]
- serout2 pinktx,pinkbaud,["!NB0W66:",dec nb_var66,CLS]
- ' I2cread Epsda,Epscl,$A0,111,[nb_var78]
- ' serout2 pinktx,pinkbaud,["!NB0W78:",dec nb_var78,cls]
- 'livingroom
- I2cread Epsda,Epscl,$A0,147,[nb_var42] 'current setting
- serout2 pinktx,pinkbaud,["!NB0W42:",dec nb_var42,CLS]
- I2cread Epsda,Epscl,$A0,148,[nb_var44] 'wake temp
- serout2 pinktx,pinkbaud,["!NB0W44:",dec nb_var44,CLS]
- I2cread Epsda,Epscl,$A0,149,[nb_var46] 'leave temp
- serout2 pinktx,pinkbaud,["!NB0W46:",dec nb_var46,CLS]
- I2cread Epsda,Epscl,$A0,150,[nb_var48] 'return temp
- serout2 pinktx,pinkbaud,["!NB0W48:",dec nb_var48,CLS]
- I2cread Epsda,Epscl,$A0,151,[nb_var50] 'sleep temp
- serout2 pinktx,pinkbaud,["!NB0W50:",dec nb_var50,CLS]
- I2cread Epsda,Epscl,$A0,152,[nb_var68]
- serout2 pinktx,pinkbaud,["!NB0W68:",dec nb_var68,CLS]
- I2cread Epsda,Epscl,$A0,153,[nb_var70]
- serout2 pinktx,pinkbaud,["!NB0W70:",dec nb_var70,CLS]
- endif
- RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement