Advertisement
mike2545

Master 8/14/2016

Aug 14th, 2016
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 133.54 KB | None | 0 0
  1. '****************************************************************
  2. '*  Name    : Master.BAS                                        *
  3. '*  Author  : [Mike]                                    *
  4. '*  Notice  : Copyright (c) 2011                                *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 12/4/2010                                         *
  7. '*  Version : 2.0 18F2685 /DS1340C RTC (Gravitech)              *
  8. '*  Notes   : X-Bee wireless communication                      *
  9. '*          : PINK web Server                                   *
  10. '****************************************************************
  11.     INCLUDE "modedefs.bas"
  12.     'Include "bs2defs.bas"
  13.     include "ALLDIGITAL.pbp"
  14.    ' INCLUDE "DT_INTS-18.bas"     ; Base Interrupt System
  15.    ' INCLUDE "ReEnterPBP-18.bas"     ; Include if using PBP interrupts
  16.     OSCCON =$60 'clock speed
  17. '______________Defines
  18.     DEFINE DEBUG_REG PORTC  
  19.     DEFINE DEBUG_BIT 5
  20.    
  21.     DEFINE DEBUG_BAUD 9600
  22.     DEFINE DEBUG_MODE 1
  23.     DEFINE OSC 4
  24. '---------------Ports
  25.    TRISB.0=1
  26.    TRISC.7=1
  27.    EpSDA        var PortA.0
  28.    EpSCL        var PortA.1
  29.    SDA          var PortC.4
  30.    SCL          var PortC.3
  31.    TX           var PortC.6
  32.    RX           var PortC.7
  33.    PinkRX       var PortB.0         ' Serial Receieve Pin --> PINK.TX
  34.    PinkTX       var PortB.1         ' Serial Transmit Pin --> PINK.RX
  35.    clock        var PortC.0
  36.    serdata      var PortC.1
  37.    Latch        var PortC.2
  38.    MiniSplit    var PortB.2
  39.    PinkReset    var PortB.3
  40.    high pinkreset
  41.  '---------------Cons
  42.    I2C_WR   CON $D0 ' I2C write address
  43.    I2C_RD   CON $D1 ' I2C read address
  44.    Baud     CON 84 ' 9600 baud, non-inverted
  45.    PinkBaud con 396' 2400 baud
  46.    Insteon  con 32 '19200
  47.    '--------------Vars
  48.     nbvar           VAR     Byte            ' PINK Data Variable
  49.     busy            VAR     nbvar.BIT2      ' E-Mail Busy Flag (Alias)
  50.     complete        VAR     nbvar.BIT4      ' E-Mail Complete Flag (Alias)
  51.     tank            var byte
  52.     panel           var byte
  53.     Nb_var79        var byte 'useful tank temp
  54.     Nb_var78        var BYTE 'Tracker home temp
  55.     NB_var82        var byte ' greenhouse temp
  56.     Nb_Var83        var byte 'vent setting
  57.    W                var byte
  58.    R                var byte
  59.    X                var Byte
  60.    w=$af
  61.    R=$ae
  62.    Second           VAR BYTE
  63.    Minute           VAR BYTE
  64.    Hour             VAR byte
  65.    Day              VAR BYTE
  66.    date             var byte
  67.    Month            VAR BYTE
  68.    Year             VAR BYTE
  69.    modeSelect       var word
  70.    UnitWake       var word
  71.    UnitLeave      var word
  72.    UnitReturn     var word
  73.    UnitSleep      VAr Word
  74.    pinkhour         var byte
  75.    pinkminute       var byte
  76.   ' Attn var byte
  77.    mem1             var byte
  78.    mem2             var byte
  79.    mem3             var byte
  80.    mem1 = 254
  81.    mem2 = 254
  82.    'index var byte
  83.    result           var byte
  84.    timeout_bit      var byte
  85.    timeout_bit =0
  86.    PauseBit         var word 'timeout varialbel
  87.    pauseBit = 2500
  88.    sunrise_hour     var byte
  89.    hoursunset_hour  var byte
  90.    Sunrise_min      var byte
  91.    Sunset_hour      var byte
  92.    sunset_min       var byte
  93.    day_of_year      var word
  94.    month_multiplier var word
  95.    backlight_bit    var byte
  96.    Busy_Bit         var byte
  97.    Busy_Bit = 50 'busy bit to reduce timeout
  98. 'Office Vars
  99.    office_mode      var byte
  100.   ' office_mode  = 0
  101.    Office_Temp      var byte
  102.    Office_Setting   var byte
  103.    Nb_var02         var byte 'office setting
  104.    Nb_varH03        var byte  'office wake hour
  105.    Nb_varM03        var byte 'office wake min
  106.    Nb_var04         var byte 'ofice wake temp
  107.    Nb_varH05        var byte 'office leave hour
  108.    Nb_varM05        var byte 'office leave min
  109.    Nb_var06         var byte 'office leave temp
  110.    Nb_varH07        var byte 'office return Hour
  111.    Nb_varM07        var byte 'office return min
  112.    Nb_var08         var byte 'office return temp
  113.    Nb_varH09        var byte 'office sleep Hour
  114.    Nb_varM09        var byte 'office sleep min
  115.    Nb_var10         var byte 'office sleep temp
  116.     'bedroom
  117.    bedroom_mode     var byte
  118.   ' bedroom_mode = 0
  119.    bedroom_Temp     var byte
  120.    bedroom_Setting  var byte
  121.    Nb_var12         var byte
  122.    Nb_varH13        var byte 'wake
  123.    Nb_varM13        var byte
  124.    Nb_var14         var byte '
  125.    Nb_varH15        var byte'leave
  126.    Nb_varM15        var byte
  127.    Nb_var16         var byte
  128.    Nb_varH17        var byte
  129.    Nb_varM17        var byte
  130.    Nb_var18         var byte
  131.    Nb_varH19        var byte
  132.    Nb_varM19        Var byte
  133.    Nb_var20         var byte
  134.    'Dining room
  135.    DiningRoom_mode  var byte
  136.    'DiningRoom_mode = 0
  137.    DiningRoom_Temp  var byte
  138.    DiningRoom_Setting var byte
  139.    Nb_var22         var byte
  140.    Nb_varH23        var byte 'wake
  141.    Nb_varM23        var byte
  142.    Nb_var24         var byte '
  143.    Nb_varH25        var byte'leave
  144.    Nb_varM25        var byte
  145.    Nb_var26         var byte
  146.    Nb_varH27        var byte
  147.    Nb_varM27        var byte
  148.    Nb_var28         var byte
  149.    Nb_varH29        var byte
  150.    Nb_varM29        Var byte
  151.    Nb_var30         var byte
  152.    'sun room
  153.    sunRoom_mode     var byte
  154.   ' sunRoom_mode = 0
  155.    sunRoom_Temp     var byte
  156.    sunRoom_Setting  var byte
  157.    Nb_var32         var byte  'current setting
  158.    Nb_varH33        var byte 'wake
  159.    Nb_varM33        var byte
  160.    Nb_var34         var byte '
  161.    Nb_varH35        var byte'leave
  162.    Nb_varM35        var byte
  163.    Nb_var36         var byte
  164.    Nb_varH37        var byte 'return
  165.    Nb_varM37        var byte
  166.    Nb_var38         var byte
  167.    Nb_varH39        var byte
  168.    Nb_varM39        Var byte
  169.    Nb_var40         var byte
  170.   'Living room
  171.    
  172.    LivingRoom_mode  var byte
  173.    'LivingRoom_mode = 0
  174.    LivingRoom_Temp  var byte
  175.    LivingRoom_Setting var byte
  176.    Nb_var42         var byte   'Current Temp
  177.    Nb_varH43        var byte 'wake
  178.    Nb_varM43        var byte
  179.    Nb_var44         var byte '
  180.    Nb_varH45        var byte'leave
  181.    Nb_varM45        var byte
  182.    Nb_var46         var byte
  183.    Nb_varH47        var byte 'return
  184.    Nb_varM47        var byte
  185.    Nb_var48         var byte
  186.    Nb_varH49        var byte 'sleep
  187.    Nb_varM49        Var byte
  188.    Nb_var50         var byte
  189.  'Sat&sun
  190.  
  191.    'office
  192.    Nb_varH51    var byte 'wake
  193.    Nb_varM51    var byte
  194.    Nb_var52     var byte '
  195.    Nb_varH53    var byte'leave
  196.    Nb_varM53    var byte
  197.    Nb_var54     var byte
  198.    'bedroom
  199.    Nb_varH55    var byte 'wake
  200.    Nb_varM55    var byte
  201.    Nb_var56     var byte '
  202.    Nb_varH57    var byte'leave
  203.    Nb_varM57    var byte
  204.    Nb_var58     var byte
  205.    'dining room
  206.    Nb_varH59    var byte 'wake
  207.    Nb_varM59    var byte
  208.    Nb_var60     var byte '
  209.    Nb_varH61    var byte'leave
  210.    Nb_varM61    var byte
  211.    Nb_var62     var byte
  212.    'sun room
  213.    Nb_varH63    var byte 'wake
  214.    Nb_varM63    var byte
  215.    Nb_var64     var byte '
  216.    Nb_varH65    var byte'leave
  217.    Nb_varM65    var byte
  218.    Nb_var66     var byte
  219. 'Living room
  220.    Nb_varH67    var byte 'wake
  221.    Nb_varM67    var byte
  222.    Nb_var68     var byte '
  223.    Nb_varH69    var byte'leave
  224.    Nb_varM69    var byte
  225.    Nb_var70     var byte  
  226.      
  227.  'mini-split vars
  228.   ' MS_HeatAC var byte
  229.    MS_Office        var byte
  230.    MS_Bedroom       var byte
  231.    MS_DiningRoom    var byte
  232.    MS_SunRoom       var byte
  233.    MS_LivingRoom    VAr byte
  234.    Nb_var93         var bit   'mini split heat/ac  'heat="1"   AC= 0
  235.    Nb_var86         var bit   'office mini split on/off
  236.    Nb_var88         var bit  'bedroom mini split on/off
  237.    Nb_var90         var bit   'diningroom mini split on/off
  238.    Nb_var92         var bit   'sunroom mini split on/off
  239.    Nb_var71         var bit  'livingroom mini split on/off
  240.    Nb_var72         Var byte 'Humidity in living room unit
  241.    Nb_var74         Var byte  'attic setting
  242.  
  243.    bedroom_busy     var byte
  244.    office_busy      var byte
  245.    diningroom_busy  var byte
  246.    sunroom_busy     var byte
  247.    livingRoom_busy  VAr byte
  248.    atticUnit_busy   var byte
  249.    solarUnit_busy   var byte
  250.    greenhouse_busy  var byte
  251.    office_busy     = %00000000
  252.    bedroom_busy    = %00000000
  253.    diningroom_busy = %00000000
  254.    sunroom_busy    = %00000000
  255.    LivingRoom_Busy = %00000000
  256.    atticUnit_busy  = %00000000
  257.    solarUnit_busy  = %00000000
  258.    greenhouse_busy = %00000000
  259.    attic_temp       var byte
  260.    Attic_Setting    var byte
  261.    OutdoorRH        var byte
  262.    OutdoorTF        var byte
  263.    SleepAlarmSwitch Var bit
  264.    SAS_checksum     var bit
  265.    powerout         var byte  
  266.    powerout  = 0
  267.    RH_Trend0        var byte
  268.    RH_Trend15       var byte
  269.    RH_Trend30       Var Byte
  270.    RH_Trend45       var byte
  271.    RH_result        var word
  272.    ERROR            var byte
  273.    ERROR = 0
  274.    BR_MS_LT     var byte
  275.    Of_MS_LT     var byte
  276.    LR_MS_LT     var byte
  277.    DR_MS_LT     var byte
  278.    Su_MS_LT     var byte
  279.    BR_MS_LT=0
  280.    Of_MS_LT=0
  281.    LR_MS_LT=0
  282.    DR_MS_LT=0
  283.    Su_MS_LT=0
  284.    LR_RH var byte
  285.    RH_Set_Point var byte  
  286.   'low pinkreset
  287.   'pause 3000
  288.  ' high pinkreset  
  289.    
  290.    
  291.    
  292. setup:
  293. IF timeout_bit > 6 THEN timeout_bit =0
  294. timeout_bit = timeout_bit +1
  295. IF timeout_Bit = 3 THEN
  296.    low pinkreset
  297.    debug "   Resetting PINK (in setup)",cr,10
  298.    pause 4000
  299.    high pinkreset
  300.   pause 5000
  301. low latch
  302. timeout_bit = 0
  303. endif
  304.  'gosub get_time
  305.  
  306.  
  307.     I2CWRITE SDA,SCL, I2c_WR, [0]       'get time
  308.     I2CREAD SDA,SCL, I2C_RD, [Second,Minute,Hour,Day,Date,Month,Year]
  309.       date = 10*(date >>4) + (date & $0f) 'convert hex to bcd
  310.       month = 10*(month >>4) + (month & $0f)
  311.  pause 4000
  312.  debug cr,10,"<Setup     Loading Data in Pink @",hex2 hour,":",hex2 minute," | ",dec2 month,"/",dec2 date,"/",hex2 year
  313. ' serout2 pinktx,pinkbaud, ["!NB0W97:",dec2 hour,":",dec2 minute,  CLS]
  314.  'serout2 pinktx,pinkbaud, ["!NB0W98:",dec2 day,cls]
  315.  'SEROUT2 pinkTX,pinkBaud, ["!NB0W99:",dec2 month,":",dec2 date,":",hex2 year,cls]  ' Command To Read system date
  316.  serout2 pinktx,pinkbaud, ["!NB0W97:25:25",  CLS]'clear set time    
  317. 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  318. ' Get EEPROM Data and Populate PINK
  319.      'office  
  320.        debug "."
  321.         shiftout serdata, clock,LSBFIRST,[%00000000]
  322.         shiftout serdata, clock,LSBFIRST,[%01000000]
  323.         pulsout latch,5
  324.         'input serdata  
  325.         I2cread Epsda,Epscl,$A0,3,[nb_varh03]  'wake
  326.         I2cread Epsda,Epscl,$A0,4,[nb_varm03]
  327.        serout2 pinktx,pinkbaud,["!NB0W03:",hex2 nb_varh03,":",hex2 nb_varm03,CLS]
  328.          I2cread Epsda,Epscl,$A0,6,[nb_varh05]   'leave
  329.          I2cread Epsda,Epscl,$A0,7,[nb_varm05]
  330.        serout2 pinktx,pinkbaud,["!NB0W05:",hex2 nb_varh05,":",hex2 nb_varm05,CLS]
  331.          I2cread Epsda,Epscl,$A0,9,[nb_varh07]    'return
  332.          I2cread Epsda,Epscl,$A0,10,[nb_varm07]
  333.        serout2 pinktx,pinkbaud,["!NB0W07:",hex2 nb_varh07,":",hex2 nb_varm07,CLS]
  334.          I2cread Epsda,Epscl,$A0,12,[nb_varh09]
  335.          I2cread Epsda,Epscl,$A0,13,[nb_varm09]   'sleep
  336.        serout2 pinktx,pinkbaud,["!NB0W09:",hex2 nb_varh09,":",hex2 nb_varm09,CLS]
  337.          I2cread Epsda,Epscl,$A0,63,[nb_varh51]    'weekend wake
  338.          I2cread Epsda,Epscl,$A0,64,[nb_varm51]
  339.        serout2 pinktx,pinkbaud,["!NB0W51:",hex2 nb_varh51,":",hex2 nb_varm51,CLS]
  340.          I2cread Epsda,Epscl,$A0,66,[nb_varh53]    'weekend sleep
  341.          I2cread Epsda,Epscl,$A0,67,[nb_varm53]
  342.        serout2 pinktx,pinkbaud,["!NB0W53:",hex2 nb_varh53,":",hex2 nb_varm53,CLS]
  343.        'debug "  " , hex2 nb_varh53, cr
  344. 'bedroom
  345.          debug "."
  346.         shiftout serdata, clock,LSBFIRST,[%00000000]
  347.         shiftout serdata, clock,LSBFIRST,[%01010000]
  348.         pulsout latch,1
  349.         'input serdata
  350.         I2cread Epsda,Epscl,$A0,15,[nb_varh13]  'wake
  351.         I2cread Epsda,Epscl,$A0,16,[nb_varm13]
  352.        serout2 pinktx,pinkbaud,["!NB0W13:",hex2 nb_varh13,":",hex2 nb_varm13,CLS]
  353.          I2cread Epsda,Epscl,$A0,18,[nb_varh15]   'leave
  354.          I2cread Epsda,Epscl,$A0,19,[nb_varm15]
  355.        serout2 pinktx,pinkbaud,["!NB0W15:",hex2 nb_varh15,":",hex2 nb_varm15,CLS]
  356.          I2cread Epsda,Epscl,$A0,21,[nb_varh17]    'return
  357.          I2cread Epsda,Epscl,$A0,22,[nb_varm17]
  358.        serout2 pinktx,pinkbaud,["!NB0W17:",hex2 nb_varh17,":",hex2 nb_varm17,CLS]
  359.          I2cread Epsda,Epscl,$A0,24,[nb_varh19]
  360.          I2cread Epsda,Epscl,$A0,25,[nb_varm19]   'sleep
  361.        serout2 pinktx,pinkbaud,["!NB0W19:",hex2 nb_varh19,":",hex2 nb_varm19,CLS]
  362.          I2cread Epsda,Epscl,$A0,69,[nb_varh55]    'weekend wake
  363.          I2cread Epsda,Epscl,$A0,70,[nb_varm55]
  364.        serout2 pinktx,pinkbaud,["!NB0W55:",hex2 nb_varh55,":",hex2 nb_varm55,CLS]
  365.          I2cread Epsda,Epscl,$A0,72,[nb_varh57]    'weekend sleep
  366.          I2cread Epsda,Epscl,$A0,73,[nb_varm57]
  367.        serout2 pinktx,pinkbaud,["!NB0W57:",hex2 nb_varh57,":",hex2 nb_varm57,CLS]
  368. 'Dining room
  369.         debug "."
  370.         shiftout serdata, clock,LSBFIRST,[%00000000]
  371.         shiftout serdata, clock,LSBFIRST,[%01010100]
  372.         pulsout latch,1
  373.         'input serdata      
  374.         I2cread Epsda,Epscl,$A0,27,[nb_varh23]  'wake
  375.         I2cread Epsda,Epscl,$A0,28,[nb_varm23]
  376.        serout2 pinktx,pinkbaud,["!NB0W23:",hex2 nb_varh23,":",hex2 nb_varm23,CLS]
  377.          I2cread Epsda,Epscl,$A0,30,[nb_varh25]   'leave
  378.          I2cread Epsda,Epscl,$A0,31,[nb_varm25]
  379.        serout2 pinktx,pinkbaud,["!NB0W25:",hex2 nb_varh25,":",hex2 nb_varm25,CLS]  
  380.          I2cread Epsda,Epscl,$A0,33,[nb_varh27]    'return
  381.          I2cread Epsda,Epscl,$A0,34,[nb_varm27]
  382.        serout2 pinktx,pinkbaud,["!NB0W27:",hex2 nb_varh27,":",hex2 nb_varm27,CLS]
  383.          I2cread Epsda,Epscl,$A0,36,[nb_varh29]
  384.          I2cread Epsda,Epscl,$A0,37,[nb_varm29]   'sleep
  385.        serout2 pinktx,pinkbaud,["!NB0W29:",hex2 nb_varh29,":",hex2 nb_varm29,CLS]
  386.          I2cread Epsda,Epscl,$A0,75,[nb_varh59]    'weekend wake
  387.          I2cread Epsda,Epscl,$A0,76,[nb_varm59]
  388.        serout2 pinktx,pinkbaud,["!NB0W59:",hex2 nb_varh59,":",hex2 nb_varm59,CLS]
  389.          I2cread Epsda,Epscl,$A0,78,[nb_varh61]    'weekend sleep
  390.          I2cread Epsda,Epscl,$A0,79,[nb_varm61]
  391.        serout2 pinktx,pinkbaud,["!NB0W61:",hex2 nb_varh61,":",hex2 nb_varm61,CLS]      
  392.  ' Sun room
  393.          debug "."
  394.         shiftout serdata, clock,LSBFIRST,[%00000000]
  395.         shiftout serdata, clock,LSBFIRST,[%01010101]
  396.         pulsout latch,1
  397.         'input serdata
  398.         I2cread Epsda,Epscl,$A0,39,[nb_varh33]  'wake
  399.         I2cread Epsda,Epscl,$A0,40,[nb_varm33]
  400.        serout2 pinktx,pinkbaud,["!NB0W33:",hex2 nb_varh33,":",hex2 nb_varm33,CLS]
  401.          I2cread Epsda,Epscl,$A0,42,[nb_varh35]   'leave
  402.          I2cread Epsda,Epscl,$A0,43,[nb_varm35]
  403.        serout2 pinktx,pinkbaud,["!NB0W35:",hex2 nb_varh35,":",hex2 nb_varm35,CLS]
  404.          I2cread Epsda,Epscl,$A0,45,[nb_varh37]    'return      
  405.          I2cread Epsda,Epscl,$A0,46,[nb_varm37]
  406.        serout2 pinktx,pinkbaud,["!NB0W37:",hex2 nb_varh37,":",hex2 nb_varm37,CLS]
  407.          I2cread Epsda,Epscl,$A0,48,[nb_varh39]
  408.          I2cread Epsda,Epscl,$A0,49,[nb_varm39]   'sleep
  409.        serout2 pinktx,pinkbaud,["!NB0W39:",hex2 nb_varh39,":",hex2 nb_varm39,CLS]
  410.          I2cread Epsda,Epscl,$A0,81,[nb_varh63]    'weekend wake
  411.          I2cread Epsda,Epscl,$A0,82,[nb_varm63]
  412.        serout2 pinktx,pinkbaud,["!NB0W63:",hex2 nb_varh63,":",hex2 nb_varm63,CLS]
  413.          I2cread Epsda,Epscl,$A0,84,[nb_varh65]    'weekend sleep
  414.          I2cread Epsda,Epscl,$A0,85,[nb_varm65]
  415.        serout2 pinktx,pinkbaud,["!NB0W65:",hex2 nb_varh65,":",hex2 nb_varm65,CLS]          
  416. 'livingroom      
  417.          debug "."
  418.         shiftout serdata, clock,LSBFIRST,[%01000000]
  419.         shiftout serdata, clock,LSBFIRST,[%01010101]
  420.         pulsout latch,1
  421.         'input serdata        
  422.         I2cread Epsda,Epscl,$A0,51,[nb_varh43]  'wake
  423.         I2cread Epsda,Epscl,$A0,52,[nb_varm43]
  424.        serout2 pinktx,pinkbaud,["!NB0W43:",hex2 nb_varh43,":",hex2 nb_varm43,CLS]
  425.          I2cread Epsda,Epscl,$A0,54,[nb_varh45]   'leave
  426.          I2cread Epsda,Epscl,$A0,55,[nb_varm45]
  427.        serout2 pinktx,pinkbaud,["!NB0W45:",hex2 nb_varh45,":",hex2 nb_varm45,CLS]
  428.          I2cread Epsda,Epscl,$A0,57,[nb_varh47]    'return      
  429.          I2cread Epsda,Epscl,$A0,58,[nb_varm47]
  430.        serout2 pinktx,pinkbaud,["!NB0W47:",hex2 nb_varh47,":",hex2 nb_varm47,CLS]
  431.          I2cread Epsda,Epscl,$A0,60,[nb_varh49]
  432.          I2cread Epsda,Epscl,$A0,61,[nb_varm49]   'sleep
  433.        serout2 pinktx,pinkbaud,["!NB0W49:",hex2 nb_varh49,":",hex2 nb_varm49,CLS]
  434.          I2cread Epsda,Epscl,$A0,87,[nb_varh67]    'weekend wake
  435.          I2cread Epsda,Epscl,$A0,88,[nb_varm67]
  436.        serout2 pinktx,pinkbaud,["!NB0W67:",hex2 nb_varh67,":",hex2 nb_varm67,CLS]
  437.          I2cread Epsda,Epscl,$A0,90,[nb_varh69]    'weekend sleep
  438.          I2cread Epsda,Epscl,$A0,91,[nb_varm69]
  439.        serout2 pinktx,pinkbaud,["!NB0W69:",hex2 nb_varh69,":",hex2 nb_varm69,CLS]
  440.            
  441.        
  442.    'minisplit
  443.             debug "."
  444.             pause 50
  445.         shiftout serdata, clock,LSBFIRST,[%00101000]
  446.         shiftout serdata, clock,LSBFIRST,[%01010101]
  447.         pulsout latch,1
  448.         'input serdata
  449.          I2cread Epsda,Epscl,$A0,108,[nb_var93]   'system heat / AC
  450.          IF nb_var93 = 1 THEN
  451.        serout2 pinktx,pinkbaud,["!NB0W93:","1",CLS]
  452.        endif
  453.                 IF nb_var93 = 0 THEN
  454.        serout2 pinktx,pinkbaud,["!NB0W93:","0",CLS]
  455.        endif
  456.        'debug dec nb_var93, cr
  457.           I2cread Epsda,Epscl,$A0,101,[nb_var86]   'office  on off
  458.        serout2 pinktx,pinkbaud,["!NB0W86:",dec nb_var86,CLS]
  459.           I2cread Epsda,Epscl,$A0,103,[nb_var88]   'bedroom on off
  460.        serout2 pinktx,pinkbaud,["!NB0W88:",dec nb_var88,CLS]
  461.           I2cread Epsda,Epscl,$A0,105,[nb_var90]   'diningroom  on off
  462.        serout2 pinktx,pinkbaud,["!NB0W90:",dec nb_var90,CLS]
  463.           I2cread Epsda,Epscl,$A0,107,[nb_var92]   'sunroom    on off
  464.        serout2 pinktx,pinkbaud,["!NB0W92:",dec nb_var92,CLS]
  465.           I2cread Epsda,Epscl,$A0,109,[nb_var71]   'livingroom   on off
  466.        serout2 pinktx,pinkbaud,["!NB0W71:",dec nb_var71,CLS]
  467.      'debug "   ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
  468.   'Attic unit
  469.             debug "."
  470.             pause 50
  471.         shiftout serdata, clock,LSBFIRST,[%00101010]
  472.         shiftout serdata, clock,LSBFIRST,[%01010101]
  473.         pulsout latch,1
  474.         'input serdata
  475.            I2cread Epsda,Epscl,$A0,110,[attic_setting]   'Attic setting
  476.       serout2 pinktx,pinkbaud,["!NB0W74:",dec attic_setting,CLS]
  477.       pause 150
  478.               shiftout serdata, clock,0,[%01010101]
  479.               shiftout serdata, clock,0,[%01010101]
  480.         pulsout latch,1
  481.        ' input serdata
  482.            debug "."
  483.            I2cread Epsda,Epscl,$A0,111,[nb_var78]   'solar tracker home temp
  484.       serout2 pinktx,pinkbaud,["!NB0W78:",dec nb_var78,CLS]
  485.            I2cread Epsda,Epscl,$A0,112,[nb_var79]   'useful tank temp
  486.       serout2 pinktx,pinkbaud,["!NB0W79:",dec nb_var79,CLS]
  487.       debug ". </Setup>",cr,10
  488.            I2cread Epsda,Epscl,$A0,113,[nb_var83]   'vent setting
  489.       serout2 pinktx,pinkbaud,["!NB0W83:",dec nb_var83,CLS]
  490.      
  491.    GOSUB system2
  492.  pause 1000
  493.               shiftout serdata, clock,LSBFIRST,[%00000000]
  494.               shiftout serdata, clock,LSBFIRST,[%00000000]
  495.         pulsout latch,1
  496.        ' input serdata
  497. '_________________________________________________________________________________
  498.    
  499. Main:
  500.    debug "<MAIN   "
  501.   GOSUB get_time
  502.    debug hex2 hour,":",hex2 minute,"  ", hex2 month,"/",dec2 date,"/",hex2 year,">",cr,10
  503. '-------Attempt to stop the errors/clear the crap out of pink
  504.         ' I2cread Epsda,Epscl,$A0,3,[nb_varh03]  'wake
  505.         'I2cread Epsda,Epscl,$A0,4,[nb_varm03]
  506.       ' serout2 pinktx,pinkbaud,["!NB0W03:",hex2 nb_varh03,":",hex2 nb_varm03,cls]  
  507.     ' SEROUT2 pinkTX, pinkBaud, ["!NB0R03"] ' Command To Read office Wake time
  508.    ' SERIN2  pinkRX, pinkBaud,PauseBit,Office,[hex2 mem1,skip 1,hex2 mem2]
  509.    
  510.   '____________________________________________________________________________
  511.  
  512. '_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
  513.  
  514. Office:
  515.  
  516. 'gosub read_radioButtons    
  517.  
  518.  debug "   Office "
  519. Pause 200
  520. 'debug "office Error...", dec error,cr  ,10
  521.  shiftout serdata, clock,0,[livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  522.  shiftout serdata, clock,0,[%01000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  523.  pulsout latch,5
  524.  INPUT serdata
  525.     '----------Get Pink Data
  526.  'Mon-Fri
  527. 'debug "office",cr
  528.  
  529.  IF sleepalarmswitch = 1 THEN
  530.  '''''''this little block of code adjusts the systme to the correct time block wake/leace/return/sleep
  531.     modeSelect  =  hour*100+minute
  532.     unitwake     =  Nb_varH03*100+Nb_varM03
  533.     unitLeave    =  Nb_varH05*100+Nb_varM05
  534.     unitreturn   =  Nb_varH07*100+Nb_varM07
  535.     unitsleep    =  Nb_varH09*100+Nb_varM09
  536.  'if day <= 5 then
  537.     SEROUT2 pinkTX, pinkBaud, ["!NB0R03"] ' Command To Read office Wake time
  538.     ERROR = 3
  539.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  540.         IF mem1 <> Nb_varH03 THEN
  541.             Nb_varH03 = mem1
  542.              I2cwrite EpSDA,EpScl,$a0,3,[mem1]
  543.            
  544.             endif
  545.            
  546.         IF mem2 <> Nb_varM03 THEN
  547.             Nb_varM03 = mem2
  548.             I2cwrite EpSDA,EpScl,$a0,4,[mem2]
  549.             endif
  550.     SEROUT2 pinkTX, pinkBaud, ["!NB0R04"] ' Command To Read office Wake temp
  551.     ERROR = 4
  552.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  553.    
  554.         IF mem1 <> Nb_var04 THEN
  555.                 Nb_var04 = mem1
  556.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,5,[mem1]
  557.                  IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,120,[mem1]
  558.                 endif
  559.                
  560.     SEROUT2 pinkTX, pinkBaud, ["!NB0R05"] ' Command To Read office Leave time
  561.     ERROR = 5
  562.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  563.         IF mem1 <> Nb_varH05 THEN
  564.             Nb_varH05 = mem1
  565.             I2cwrite EpSDA,EpScl,$a0,6,[mem1]
  566.             endif
  567.         IF mem2 <> Nb_varM05 THEN
  568.             Nb_varM05 = mem2
  569.              I2cwrite EpSDA,EpScl,$a0,7,[mem2]
  570.             endif
  571.     SEROUT2 pinkTX, pinkBaud, ["!NB0R06"] ' Command To Read office Leave temp
  572.     ERROR = 6
  573.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  574.            IF mem1 <> Nb_var06 THEN
  575.                 Nb_var06 = mem1
  576.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,8,[mem1]
  577.                  IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,121,[mem1]
  578.                 endif
  579.     SEROUT2 pinkTX, pinkBaud, ["!NB0R07"] ' Command To Read office Return time
  580.     ERROR =7
  581.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  582.             IF mem1 <> Nb_varH07 THEN
  583.                 Nb_varH07 = mem1
  584.                 I2cwrite EpSDA,EpScl,$a0,9,[mem1]
  585.                 endif
  586.             IF mem2 <> Nb_varM07 THEN
  587.                 Nb_varM07 = mem2
  588.                 I2cwrite EpSDA,EpScl,$a0,10,[mem2]
  589.                 endif
  590.     SEROUT2 pinkTX, pinkBaud, ["!NB0R08"] ' Command To Read office Return Temp
  591.     ERROR = 8
  592.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  593.                IF mem1 <> Nb_var08 THEN
  594.                 Nb_var08 = mem1
  595.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,11,[mem1]
  596.                  IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,122,[mem1]
  597.                 'pause 5
  598.               '  debug "W-rtn tmp(11)" ,cr
  599.                 endif
  600.     SEROUT2 pinkTX, pinkBaud, ["!NB0R09"] ' Command To Read office Sleep time
  601.     ERROR = 9
  602.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  603.             IF mem1 <> Nb_varH09 THEN
  604.                 Nb_varH09 = mem1
  605.                I2cwrite EpSDA,EpScl,$a0,12,[mem1]
  606.                'pause 5
  607.               ' debug "W-sl hr(12)" ,cr
  608.                 endif
  609.             IF mem2 <> Nb_varM09 THEN
  610.                 Nb_varM09 = mem2
  611.                 I2cwrite EpSDA,EpScl,$a0,13,[mem2]
  612.                 'pause 5
  613.                ' debug "W-sl mn(13)",cr
  614.                 endif
  615.     SEROUT2 pinkTX, pinkBaud, ["!NB0R10"] ' Command To Read office Sleep Temp
  616.     ERROR = 10
  617.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  618.               IF mem1 <> Nb_var10 THEN
  619.                 Nb_var10 = mem1
  620.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,14,[mem1]
  621.                  IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,123,[mem1]
  622.                  'pause 5
  623.                 ' debug "W-sl tmp(14)" ,cr
  624.                endif
  625.              
  626.      SEROUT2 pinkTX, pinkBaud, ["!NB0R02"] ' Command To Read office current setting temp
  627.      ERROR = 2
  628.      SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  629.          IF mem1 <> Nb_var02 THEN
  630.             Nb_var02 = mem1
  631.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,2,[mem1]
  632.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,119,[mem1]
  633.             'debug " Office temp change to " , dec Nb_var02 ,cr
  634.            IF office_busy = %00000000 THEN GOSUB minisplitoffice          
  635.            
  636.             'serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]        
  637.         endif
  638.       ' debug "MS-OFFICE ", hex2 result ,cr  
  639.   ''''''''''''''''MOde select
  640.      IF office_mode <>1 THEN
  641.     IF modeselect => unitwake AND modeselect < unitleave THEN        
  642.     'if hour = Nb_varH03  and minute = Nb_varM03 then 'Wake
  643.    
  644.         office_mode = 1
  645.         IF nb_var02 <>   Nb_var04 THEN
  646.         nb_var02 = Nb_var04
  647.         GOSUB minisplitoffice
  648.        ' debug "AH-HA",cr
  649.        
  650.         endif
  651.      endif
  652.      endif
  653.    IF office_mode <>2 THEN
  654.     IF modeselect => unitleave AND modeselect < unitreturn THEN
  655.     'if hour = Nb_varH05 and minute = Nb_varM05 then 'leave
  656.          office_mode = 2
  657.          IF nb_var02 <>  NB_var06 THEN
  658.         nb_var02 = Nb_var06
  659.      
  660.         GOSUB minisplitoffice
  661.         'debug "ah-ha",cr
  662.         'serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
  663.         endif
  664.      endif
  665.     endif
  666.     IF office_mode <>3 THEN
  667.     IF modeselect => unitreturn AND modeselect < unitsleep THEN
  668.     'if hour = Nb_varH07 and minute = Nb_varM07 then  'return
  669.         office_mode = 3
  670.          IF nb_var02 <>  NB_var08 THEN
  671.         nb_var02 = Nb_var08
  672.         GOSUB minisplitoffice
  673.         'debug "ah-ha",cr
  674.         'serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
  675.         endif
  676.    ENDIF
  677.     endif
  678.     IF office_mode <>4 THEN
  679.     IF modeselect => unitsleep  THEN
  680.     'if hour = Nb_varH09 and minute = Nb_varM09 then 'sleep
  681.         office_mode = 4
  682.          IF nb_var02 <>  NB_var10 THEN
  683.         nb_var02 = Nb_var10
  684.         GOSUB minisplitoffice
  685.         'debug "ah-ha",cr
  686.        ' serout2 PortB.2,32, [$02,$62,$00,$00,result,$CF,$11,$00]
  687.         endif
  688.     endif
  689.     endif
  690.  
  691. endif
  692.  
  693.  
  694. 'Sat&Sun
  695.  'if day >= 6 then
  696.  IF sleepalarmswitch = 0 THEN
  697.     modeSelect = hour*100+minute
  698.     UnitWake =  Nb_varH51*100+Nb_varM51
  699.     UnitSleep =  Nb_varH53*100+Nb_varM53  
  700. 'Debug"S-S",cr
  701.        SEROUT2 pinkTX, pinkBaud, ["!NB0R51"] ' Command To Read office wake time
  702.        ERROR = 51
  703.        SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  704.         IF mem1 <> Nb_varH51 THEN
  705.             Nb_varH51 = mem1
  706.            ' write 63 ,mem1
  707.             I2cwrite EpSDA,EpScl,$a0,63,[mem1]
  708.             'pause 5
  709.             debug "W-SS Wk Hr(63)" ,cr
  710.          endif
  711.         IF mem2 <> Nb_varM51 THEN
  712.             Nb_varM51 = mem2
  713.            ' write 64 ,mem2
  714.              I2cwrite EpSDA,EpScl,$a0,64,[mem2]
  715.              'pause 5
  716.              debug "W-SS Wk Mn(64)" ,cr
  717.          endif
  718.         SEROUT2 pinkTX, pinkBaud, ["!NB0R52"] ' Command To Read office wake Temp
  719.        ERROR = 52
  720.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  721.          
  722.          IF mem1 <> Nb_var52 THEN
  723.             Nb_var52 = mem1
  724.            ' write 65 ,mem1
  725.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,65,[mem1]
  726.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,124,[mem1]
  727.             'pause 5
  728.             debug "W-SS wk tmp(65)",cr
  729.            endif
  730.         SEROUT2 pinkTX, pinkBaud, ["!NB0R53"] ' Command To Read office Sleep time
  731.         ERROR = 53
  732.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  733.          IF mem1 <> Nb_varH53 THEN
  734.             Nb_varH53 = mem1
  735.             'write 66 ,mem1
  736.              I2cwrite EpSDA,EpScl,$a0,66,[mem1]
  737.              'pause 5
  738.              debug "W-SS Sl hr(66)" ,cr
  739.            endif
  740.          IF mem2 <> Nb_varM53 THEN
  741.             Nb_varM53 = mem2
  742.             'write 67 ,mem2
  743.             I2cwrite EpSDA,EpScl,$a0,67,[mem2]
  744.             'pause 5
  745.             debug "W-SS Sl Mn(67)",cr
  746.            endif
  747.         SEROUT2 pinkTX, pinkBaud, ["!NB0R54"] ' Command To Read office Sleep Temp
  748.         ERROR = 54
  749.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  750.           IF mem1 <> Nb_var54 THEN
  751.             Nb_var54 = mem1
  752.            ' write 68 ,mem1
  753.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,68,[mem1]
  754.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,125,[mem1]
  755.            'pause 5
  756.             debug "W-SS Sl tmp(68)" ,cr
  757.            Endif
  758.              
  759.            
  760.         SEROUT2 pinkTX, pinkBaud, ["!NB0R02"] ' Command To Read office current setting temp
  761.         ERROR = 2
  762.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  763.          IF mem1 <> Nb_var02 THEN
  764.             Nb_var02 = mem1
  765.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,2,[mem1]
  766.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,119,[mem1]
  767.             IF office_busy = %00000000  THEN GOSUB MiniSPlitOffice
  768.              ' debug "Office Set" , cr
  769.              debug "W-cnt set(2)" ,dec mem1,cr
  770.         endif  
  771.  
  772.        ' debug "MS-OFFICE ", hex2 ms_office , cr
  773.             IF office_mode <>1 THEN
  774.             IF modeselect => Unitwake AND modeselect < UnitSleep THEN      
  775.             'if hour = Nb_varH51  and minute = Nb_varM51 then 'Wake
  776.                 office_mode = 1
  777.                
  778.                IF nb_var02<> nb_var52 THEN
  779.                  nb_var02 = Nb_var52
  780.                 GOSUB MiniSPlitOffice
  781.                ' debug "Ah-Ha",hex2 MS_Office , cr
  782.                endif
  783.             endif
  784.             endif
  785.            
  786.             IF office_mode <> 4 THEN
  787.            IF modeselect => Unitsleep THEN  
  788.             'if hour = Nb_varH53 and minute = Nb_varM53 then 'sleep
  789.                  office_mode = 4
  790.                  
  791.                 IF nb_var02<> nb_var54 THEN
  792.                  nb_var02 = Nb_var54
  793.                  GOSUB MiniSPlitOffice  
  794.                ' debug "Ah-Ha",hex2 ms_office, cr
  795.                endif
  796.             endif
  797.             endif
  798.    endif
  799.      
  800. '----------set x-bee channel------------
  801.  
  802.      
  803. Office_set:
  804.  'debug "Office set", cr    
  805.     'pause 200
  806.     serout2 TX,baud,["+++"]
  807.     pause 1000
  808.     serout2 TX,baud,["ATMY 1",CR] 'address office module "1" is office
  809.     serout2 TX,baud,["ATDL 1" ,CR]
  810.     serout2 TX,baud,["ATCN",CR]
  811.     pause 5  
  812.     SERIN2 RX,Baud,50,Office_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  813.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr,10
  814.      pause 18000
  815.     GOTO timeout3  'skip com with office for now
  816. Office_set1:    
  817. '-----------send data to Office module------------------------
  818.     serout2 TX,Baud, [" Office ",cr]  
  819.     pause busy_bit  
  820.     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
  821.    
  822. '----------Get data from Office module--------------------
  823.    
  824.     SERIN2 RX,Baud,PauseBit,timeout3,[Office_Temp, Office_Setting] 'get temperature and user set temp from office module
  825.     office_busy = %00000000
  826. '----------send data from office module to pink---------------      
  827.     serout2 pinktx,pinkbaud, ["!NB0W02:", dec  Office_Setting, CLS]
  828.     serout2 pinktx,pinkbaud, ["!NB0W01:", dec  Office_Temp, CLS] 'send current temp to Pink
  829.     IF Nb_var02 <>   Office_Setting THEN GOTO office
  830.   shiftout serdata, clock,0,[livingroom_busy + atticunit_busy + solarUnit_busy + greenhouse_busy]
  831.   shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  832.   debug 9, " Pass  " ,Cr,10
  833.  pulsout latch,5
  834.  INPUT serdata
  835. '_______________________________________________________________________________
  836. '_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
  837. BedRoom:
  838.  
  839. '--------------mini split radio buttons
  840.      ' gosub read_radioButtons
  841.   debug "   Bedroom "    
  842.      
  843. Pause 200
  844. 'debug "Bedroom Error...", dec error,cr  ,10
  845.  
  846. shiftout serdata, clock,0,[livingroom_busy + atticunit_busy + solarUnit_busy + greenhouse_busy]
  847. shiftout serdata, clock,0,[%00010000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  848.  
  849. pulsout latch,5
  850. INPUT serdata
  851.     '----------Get Pink Data
  852.  'Mon-Fri
  853. ' if day <= 5 then
  854. IF sleepalarmswitch = 1 THEN
  855.     modeSelect = hour*100+minute
  856.     unitwake =  Nb_varH13*100+Nb_varM13
  857.     unitLeave = Nb_varH15*100+Nb_varM15
  858.     unitreturn = Nb_varH17*100+Nb_varM17
  859.     unitsleep =  Nb_varH19*100+Nb_varM19
  860. 'debug "M-F",cr
  861.     SEROUT2 pinkTX, pinkBaud, ["!NB0R13"] ' Command To Read Bedroom Wake time
  862.      ERROR = 13
  863.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  864.         IF mem1 <> Nb_varH13 THEN
  865.             Nb_varH13 = mem1
  866.             I2cwrite EpSDA,EpScl,$a0,15,[mem1]
  867.             'pause 5
  868.            ' debug "W-wk hr(15)" ,cr
  869.             endif
  870.         IF mem2 <> Nb_varM13 THEN
  871.             Nb_varM13 = mem2
  872.             I2cwrite EpSDA,EpScl,$a0,16,[mem2]
  873.             'pause 5
  874.            ' debug "W-wk mn(16)"  ,cr
  875.             endif
  876.     SEROUT2 pinkTX, pinkBaud, ["!NB0R14"] ' Command To Read Bedroom Wake temp
  877.     ERROR = 14
  878.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  879.         IF mem1 <> Nb_var14 THEN
  880.                 Nb_var14 = mem1
  881.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,17,[mem1]
  882.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,127,[mem1]
  883.                 'pause 5
  884.               '  debug "W-wk tmp(17)" ,cr
  885.                 endif
  886.     SEROUT2 pinkTX, pinkBaud, ["!NB0R15"] ' Command To Read Bedroom Leave time
  887.     ERROR = 15
  888.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  889.         IF mem1 <> Nb_varH15 THEN
  890.             Nb_varH15 = mem1
  891.             I2cwrite EpSDA,EpScl,$a0,18,[mem1]
  892.             'pause 5
  893.           '  debug "W-lv hr(18)" ,cr
  894.             endif
  895.         IF mem2 <> Nb_varM15 THEN
  896.             Nb_varM15 = mem2
  897.              I2cwrite EpSDA,EpScl,$a0,19,[mem2]
  898.              'pause 5
  899.             ' debug "W-lv mn(19)" ,cr
  900.             endif
  901.     SEROUT2 pinkTX, pinkBaud, ["!NB0R16"] ' Command To Read Bedroom Leave temp
  902.     ERROR = 16
  903.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  904.            IF mem1 <> Nb_var16 THEN
  905.                 Nb_var16 = mem1
  906.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,20,[mem1]
  907.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,128,[mem1]
  908.                 'pause 5
  909.                ' debug "W-lv tmp(20)",cr
  910.                 endif
  911.     SEROUT2 pinkTX, pinkBaud, ["!NB0R17"] ' Command To Read bedroom Return time
  912.     ERROR = 17
  913.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  914.             IF mem1 <> Nb_varH17 THEN
  915.                 Nb_varH17 = mem1
  916.                 I2cwrite EpSDA,EpScl,$a0,21,[mem1]
  917.                 'pause 5
  918.                 'debug "W-rtn hr(21)" ,cr
  919.                 endif
  920.             IF mem2 <> Nb_varM17 THEN
  921.                 Nb_varM17 = mem2
  922.                 I2cwrite EpSDA,EpScl,$a0,22,[mem2]
  923.                 'pause 5
  924.                ' debug "W-rtn mn(22)" ,cr
  925.                 endif
  926.     SEROUT2 pinkTX, pinkBaud, ["!NB0R18"] ' Command To Read bedroom Return Temp
  927.     ERROR = 18
  928.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  929.                IF mem1 <> Nb_var18 THEN
  930.                 Nb_var18 = mem1
  931.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,23,[mem1]
  932.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,129,[mem1]
  933.                 'pause 5
  934.                ' debug "W-rtn tmp(23)" ,cr
  935.                 endif
  936.     SEROUT2 pinkTX, pinkBaud, ["!NB0R19"] ' Command To Read bedroom Sleep time
  937.     ERROR = 19
  938.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  939.             IF mem1 <> Nb_varH19 THEN
  940.                 Nb_varH19 = mem1
  941.                I2cwrite EpSDA,EpScl,$a0,24,[mem1]
  942.                'pause 5
  943.               ' debug "W-sl hr(24)" ,cr
  944.                 endif
  945.             IF mem2 <> Nb_varM19 THEN
  946.                 Nb_varM19 = mem2
  947.                 I2cwrite EpSDA,EpScl,$a0,25,[mem2]
  948.                 'pause 5
  949.               '  debug "W-sl mn(25)",cr
  950.                 endif
  951.     SEROUT2 pinkTX, pinkBaud, ["!NB0R20"] ' Command To Read bedroom Sleep Temp
  952.     ERROR = 20
  953.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  954.               IF mem1 <> Nb_var20 THEN
  955.                 Nb_var20 = mem1
  956.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,26,[mem1]
  957.                  IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,130,[mem1]
  958.                  'pause 5
  959.               '   debug "W-sl tmp(26)" ,cr
  960.                endif
  961.      SEROUT2 pinkTX, pinkBaud, ["!NB0R12"] ' Command To Read bedroom current setting temp
  962.      ERROR= 12  
  963.      SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  964.      IF mem1 <> Nb_var12 THEN
  965.             Nb_var12 = mem1
  966.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,93,[mem1]
  967.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,126,[mem1]
  968.             IF bedroom_busy = %00000000 THEN GOSUB minisplitbedroom
  969.              'pause 5
  970.              'write 2 ,mem1
  971.            ' debug "W-cnt set(93)" ,dec mem1,cr
  972.             'debug "BedRoom Set",cr
  973.         endif
  974.     ' debug "MS-BEDROOM ", hex2 ms_Bedroom ,cr
  975.     IF bedroom_mode <> 1 THEN  
  976.         IF modeselect => unitwake AND modeselect < unitleave THEN              
  977.     'if hour = Nb_varH13  and minute = Nb_varM13 then 'Wake
  978.         bedroom_mode = 1
  979.             IF nb_var12<> nb_var14 THEN
  980.             nb_var12 = Nb_var14
  981.                GOSUB MiniSPlitbedroom
  982.                ' debug "Ah-Ha BR",hex2 MS_bedroom , cr
  983.             endif
  984.         endif
  985.      endif
  986.     IF bedroom_mode <> 2 THEN
  987.         IF modeselect => unitleave AND modeselect < unitreturn THEN
  988.     'if hour = Nb_varH15 and minute = Nb_varM15 then 'leave
  989.          bedroom_mode = 2
  990.             IF nb_var12<> nb_var16 THEN
  991.             nb_var12 = Nb_var16
  992.                GOSUB MiniSPlitbedroom
  993.                ' debug "Ah-Ha",hex2 MS_bedroom , cr
  994.             endif
  995.        endif
  996.     endif
  997.     IF bedroom_mode <> 3 THEN
  998.         IF modeselect => unitreturn AND modeselect < unitsleep THEN
  999.     'if hour = Nb_varH17 and minute = Nb_varM17 then  'return
  1000.         bedroom_mode = 3
  1001.             IF nb_var12<> nb_var18 THEN
  1002.             nb_var12 = Nb_var18
  1003.                GOSUB MiniSPlitbedroom
  1004.                ' debug "Ah-Ha",hex2 MS_bedroom , cr
  1005.             endif
  1006.         endif
  1007.     endif
  1008.     IF bedroom_mode <> 4 THEN
  1009.         IF modeselect => unitsleep  THEN
  1010.     'if hour = Nb_varH19 and minute = Nb_varM19 then 'sleep
  1011.         bedroom_mode = 4
  1012.             IF nb_var12<> nb_var20 THEN
  1013.             nb_var12 = Nb_var20
  1014.                GOSUB MiniSPlitbedroom
  1015.                ' debug "Ah-Ha",hex2 MS_bedroom , cr
  1016.             endif
  1017.         endif
  1018.     endif
  1019. endif
  1020.    
  1021. 'Sat&Sun
  1022.  'if day >= 6 then
  1023. IF sleepalarmswitch = 0 THEN
  1024.      modeSelect = hour*100+minute
  1025.     UnitWake =  Nb_varH55*100+Nb_varM55
  1026.     UnitSleep =  Nb_varH57*100+Nb_varM57
  1027. 'Debug"S-S",cr
  1028.        SEROUT2 pinkTX, pinkBaud, ["!NB0R55"] ' Command To Read bedroom wake time
  1029.        ERROR = 55
  1030.        SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1031.         IF mem1 <> Nb_varH55 THEN
  1032.             Nb_varH55 = mem1
  1033.            ' write 63 ,mem1
  1034.             I2cwrite EpSDA,EpScl,$a0,69,[mem1]
  1035.             'pause 5
  1036.             debug "W-SS Wk Hr(69)" ,cr
  1037.          endif
  1038.         IF mem2 <> Nb_varM55 THEN
  1039.             Nb_varM55 = mem2
  1040.            ' write 64 ,mem2
  1041.              I2cwrite EpSDA,EpScl,$a0,70,[mem2]
  1042.              'pause 5
  1043.              debug "W-SS Wk Mn(70)" ,cr
  1044.          endif
  1045.         SEROUT2 pinkTX, pinkBaud, ["!NB0R56"] ' Command To Read bedroom wake Temp
  1046.         ERROR = 56
  1047.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1048.          IF mem1 <> Nb_var56 THEN
  1049.             Nb_var56 = mem1
  1050.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,71,[mem1]
  1051.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,131,[mem1]
  1052.             'pause 5
  1053.             debug "W-SS wk tmp(71)",cr
  1054.            endif
  1055.         SEROUT2 pinkTX, pinkBaud, ["!NB0R57"] ' Command To Read bedroom Sleep time
  1056.         ERROR = 57
  1057.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1058.          IF mem1 <> Nb_varH57 THEN
  1059.             Nb_varH57 = mem1
  1060.             'write 66 ,mem1
  1061.              I2cwrite EpSDA,EpScl,$a0,72,[mem1]
  1062.              'pause 5
  1063.              debug "W-SS Sl hr(72)" ,cr
  1064.            endif
  1065.          IF mem2 <> Nb_varM57 THEN
  1066.             Nb_varM57 = mem2
  1067.             'write 67 ,mem2
  1068.             I2cwrite EpSDA,EpScl,$a0,73,[mem2]
  1069.             'pause 5
  1070.             debug "W-SS Sl Mn(73)",cr
  1071.            endif
  1072.         SEROUT2 pinkTX, pinkBaud, ["!NB0R58"] ' Command To Read Bedroom Sleep Temp
  1073.         ERROR = 28
  1074.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1075.           IF mem1 <> Nb_var58 THEN
  1076.             Nb_var58 = mem1
  1077.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,74,[mem1]
  1078.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,132,[mem1]
  1079.             'pause 5
  1080.             debug "W-SS Sl tmp(74)" ,cr
  1081.            Endif
  1082.         SEROUT2 pinkTX, pinkBaud, ["!NB0R12"] ' Command To Read bedroom current setting temp
  1083.         ERROR = 12
  1084.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1085.          IF mem1 <> Nb_var12 THEN
  1086.             Nb_var12 = mem1
  1087.             IF bedroom_busy = %00000000 THEN GOSUB minisplitbedroom
  1088.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,93,[mem1]
  1089.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,126,[mem1]
  1090.              'pause 5
  1091.             ' Debug "BedRoom set",cr
  1092.             debug "W-cnt set(93)" ,dec mem1,cr
  1093.         endif
  1094.           ' debug "MS-BEDROOM ", hex2 ms_bedroom , cr
  1095.     IF bedroom_mode <> 1 THEN
  1096.         IF modeselect => Unitwake AND modeselect < UnitSleep THEN              
  1097.             'if hour = Nb_varH55  and minute = Nb_varM55 then 'Wake
  1098.                 bedroom_mode = 1
  1099.             IF nb_var12<> nb_var56 THEN
  1100.                     nb_var12 = Nb_var56
  1101.                 GOSUB MiniSPlitbedroom
  1102.                ' debug "Ah-Ha",hex2 MS_bedroom , cr
  1103.             endif
  1104.         endif
  1105.     endif
  1106.     IF bedroom_mode <> 4 THEN
  1107.         IF modeselect => Unitsleep THEN
  1108.             'if hour = Nb_varH57 and minute = Nb_varM57 then 'sleep
  1109.              bedroom_mode = 4
  1110.             IF nb_var12<> nb_var58 THEN
  1111.                  nb_var12 = Nb_var58
  1112.                 GOSUB MiniSPlitbedroom
  1113.                ' debug "Ah-Ha",hex2 MS_bedroom , cr
  1114.             endif
  1115.         endif
  1116.     endif
  1117. endif    
  1118. '----------set x-bee channel------------
  1119.  bedroom_set:
  1120.      
  1121.    
  1122.      'pause 200
  1123.     serout2 TX,baud,["+++"]
  1124.     pause 1000
  1125.     serout2 TX,baud,["ATMY 2",CR] 'address office module "1" is office
  1126.     serout2 TX,baud,["ATDL 2",CR]
  1127.     serout2 TX,baud,["ATCN",CR]
  1128.     pause 5  
  1129.     SERIN2 RX,Baud,550,bedroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  1130.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr,10
  1131.      pause 18000
  1132.     GOTO timeout5  'skip com with bedroom for now
  1133. bedroom_set1:
  1134.                                
  1135. '-----------send data to BedRoom module------------------------
  1136.     serout2 TX,Baud, [" Bedroom "]
  1137.     pause Busy_Bit  
  1138.     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
  1139. '----------Get data from BedRoom module--------------------
  1140.   'debug "bedroom ", dec nb_var93, cr  
  1141.    
  1142.    SERIN2 RX,Baud,PauseBit,timeout5,[ bedroom_Temp,bedroom_Setting] 'get temperature and user set temp from office module
  1143. bedroom_busy = %00000000
  1144. '----------send data from office module to pink---------------      
  1145.     serout2 pinktx,pinkbaud, ["!NB0W12:", dec  bedroom_Setting, CLS]
  1146.     serout2 pinktx,pinkbaud, ["!NB0W11:", dec  bedroom_Temp, CLS] 'send current temp to Pink
  1147.     IF Nb_var12 <>   bedroom_Setting THEN GOTO bedroom
  1148.    timeout_bit =0
  1149. shiftout serdata, clock,0,[livingroom_busy+atticunit_busy+solarUnit_busy + greenhouse_busy]
  1150. shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  1151. pulsout latch,5
  1152. debug 9, " Pass"
  1153. INPUT serdata
  1154. '_______________________________________________________________________________
  1155. '_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  
  1156.  
  1157.  DiningRoom:
  1158.  
  1159.  '--------------mini split radio buttons
  1160.       GOSUB read_radioButtons
  1161.  debug "   Diningroom "      
  1162.  Pause 200
  1163.  'debug "Diningroom Error...", dec error,cr  ,10
  1164.  shiftout serdata, clock,0,[Livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  1165.  shiftout serdata, clock,0,[%00000100 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  1166.  pulsout latch,5
  1167.  INPUT serdata
  1168.  
  1169.     '----------Get Pink Data
  1170.  'Mon-Fri
  1171.  'if day <= 5 then
  1172. IF sleepalarmswitch = 1 THEN
  1173.     modeSelect = hour*100+minute
  1174.     unitwake =  Nb_varH23*100+Nb_varM23
  1175.     unitLeave = Nb_varH25*100+Nb_varM25
  1176.     unitreturn = Nb_varH27*100+Nb_varM27
  1177.     unitsleep =  Nb_varH29*100+Nb_varM29
  1178. 'debug "M-F",cr
  1179.     SEROUT2 pinkTX, pinkBaud, ["!NB0R23"] ' Command To Read Diningroom Wake time
  1180.     ERROR = 23
  1181.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1182.         IF mem1 <> Nb_varH23 THEN
  1183.             Nb_varH23 = mem1
  1184.             I2cwrite EpSDA,EpScl,$a0,27,[mem1]
  1185.             'pause 5
  1186.            ' debug "W-wk hr(27)" ,cr
  1187.             endif
  1188.         IF mem2 <> Nb_varM23 THEN
  1189.             Nb_varM23 = mem2
  1190.             I2cwrite EpSDA,EpScl,$a0,28,[mem2]
  1191.             'pause 5
  1192.            ' debug "W-wk mn(28)"  ,cr
  1193.             endif
  1194.     SEROUT2 pinkTX, pinkBaud, ["!NB0R24"] ' Command To Read Diningroom Wake temp
  1195.     ERROR = 24
  1196.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  1197.         IF mem1 <> Nb_var24 THEN
  1198.                 Nb_var24 = mem1
  1199.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,29,[mem1]
  1200.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,134,[mem1]
  1201.                 'pause 5
  1202.                ' debug "W-wk tmp(29)" ,cr
  1203.                 endif
  1204.     SEROUT2 pinkTX, pinkBaud, ["!NB0R25"] ' Command To Read DiningRoom Leave time
  1205.     ERROR = 25
  1206.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1207.         IF mem1 <> Nb_varH25 THEN
  1208.             Nb_varH25 = mem1
  1209.             I2cwrite EpSDA,EpScl,$a0,30,[mem1]
  1210.             'pause 5
  1211.            ' debug "W-lv hr(30)" ,cr
  1212.             endif
  1213.         IF mem2 <> Nb_varM25 THEN
  1214.             Nb_varM25 = mem2
  1215.              I2cwrite EpSDA,EpScl,$a0,31,[mem2]
  1216.              'pause 5
  1217.             ' debug "W-lv mn(31)" ,cr
  1218.             endif
  1219.     SEROUT2 pinkTX, pinkBaud, ["!NB0R26"] ' Command To Read DiningRoom Leave temp
  1220.     ERROR = 26
  1221.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1222.            IF mem1 <> Nb_var26 THEN
  1223.                 Nb_var26 = mem1
  1224.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,32,[mem1]
  1225.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,135,[mem1]
  1226.                 'pause 5
  1227.                ' debug "W-lv tmp(32)",cr
  1228.                 endif
  1229.     SEROUT2 pinkTX, pinkBaud, ["!NB0R27"] ' Command To Read Diningroom Return time
  1230.     ERROR = 27
  1231.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1232.             IF mem1 <> Nb_varH27 THEN
  1233.                 Nb_varH27 = mem1
  1234.                 I2cwrite EpSDA,EpScl,$a0,33,[mem1]
  1235.                 'pause 5
  1236.                 'debug "W-rtn hr(33)" ,cr
  1237.                 endif
  1238.             IF mem2 <> Nb_varM27 THEN
  1239.                 Nb_varM27 = mem2
  1240.                 I2cwrite EpSDA,EpScl,$a0,34,[mem2]
  1241.                 'pause 5
  1242.                ' debug "W-rtn mn(34)" ,cr
  1243.                 endif
  1244.     SEROUT2 pinkTX, pinkBaud, ["!NB0R28"] ' Command To Read diningroom Return Temp
  1245.     ERROR = 28
  1246.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1247.                IF mem1 <> Nb_var28 THEN
  1248.                 Nb_var28 = mem1
  1249.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,35,[mem1]
  1250.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,136,[mem1]
  1251.                 'pause 5
  1252.                ' debug "W-rtn tmp(35)" ,cr
  1253.                 endif
  1254.     SEROUT2 pinkTX, pinkBaud, ["!NB0R29"] ' Command To Read Diningroom Sleep time
  1255.     ERROR = 29
  1256.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1257.             IF mem1 <> Nb_varH29 THEN
  1258.                 Nb_varH29 = mem1
  1259.                I2cwrite EpSDA,EpScl,$a0,36,[mem1]
  1260.                'pause 5
  1261.                'debug "W-sl hr(24)" ,cr
  1262.                 endif
  1263.             IF mem2 <> Nb_varM29 THEN
  1264.                 Nb_varM29 = mem2
  1265.                 I2cwrite EpSDA,EpScl,$a0,37,[mem2]
  1266.                 'pause 5
  1267.                ' debug "W-sl mn(25)",cr
  1268.                 endif
  1269.     SEROUT2 pinkTX, pinkBaud, ["!NB0R30"] ' Command To Read DiningRoom Sleep Temp
  1270.     ERROR = 30
  1271.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1272.               IF mem1 <> Nb_var30 THEN
  1273.                 Nb_var30 = mem1
  1274.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,38,[mem1]
  1275.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,137,[mem1]
  1276.                  'pause 5
  1277.                 ' debug "W-sl tmp(26)" ,cr
  1278.                endif
  1279.         SEROUT2 pinkTX, pinkBaud, ["!NB0R22"] ' Command To Read Diningroom current setting temp
  1280.         ERROR = 22
  1281.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1282.         IF mem1 <> Nb_var22 THEN
  1283.             Nb_var22 = mem1
  1284.            IF diningroom_busy = %00000000 THEN GOSUB minisplitdiningroom
  1285.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,94,[mem1]
  1286.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,133,[mem1]
  1287.              'pause 5
  1288.              'debug "DR Set",cr
  1289.             ' debug "W-cnt set(94)",hex2 mem1 ,cr
  1290.         endif
  1291.     ' debug "MS-Diningroom ", hex2 ms_diningroom ,cr
  1292.     IF diningroom_mode <> 1 THEN  
  1293.         IF modeselect => unitwake AND modeselect < unitleave THEN            
  1294.     'if hour = Nb_varH23  and minute = Nb_varM23 then 'Wake
  1295.         diningroom_mode = 1
  1296.             IF nb_var22<> nb_var24 THEN
  1297.                  nb_var22 = Nb_var24
  1298.                 GOSUB MiniSPlitdiningroom
  1299.                ' DEBUG "Ah-Ha",hex2 MS_diningroom  , cr
  1300.             ENDIF
  1301.         ENDIF
  1302.     endif
  1303.     IF diningroom_mode <> 2 THEN
  1304.         IF modeselect => unitleave AND modeselect < unitreturn THEN
  1305.     'if hour = Nb_varH25 and minute = Nb_varM25 then 'leave
  1306.          diningroom_mode = 2
  1307.             IF nb_var22<> nb_var26 THEN
  1308.                  nb_var22 = Nb_var26
  1309.                 GOSUB MiniSPlitdiningroom
  1310.                ' DEBUG "Ah-Ha",hex2 MS_diningroom  , cr
  1311.             ENDIF
  1312.         endif
  1313.     endif
  1314.     IF diningroom_mode <> 3 THEN
  1315.         IF modeselect => unitreturn AND modeselect < unitsleep THEN
  1316.     'if hour = Nb_varH27 and minute = Nb_varM27 then  'return
  1317.         diningroom_mode = 3
  1318.             IF nb_var22<> nb_var28 THEN
  1319.                  nb_var22 = Nb_var28
  1320.                 GOSUB MiniSPlitdiningroom
  1321.                 'DEBUG "Ah-Ha",hex2 MS_diningroom  , cr
  1322.             ENDIF
  1323.         endif
  1324.     endif
  1325.     IF diningroom_mode <> 4 THEN
  1326.         IF modeselect => unitsleep  THEN
  1327.    'if hour = Nb_varH29 and minute = Nb_varM29 then 'sleep
  1328.         diningroom_mode = 4
  1329.             IF nb_var22<> nb_var30 THEN
  1330.                  nb_var22 = Nb_var30
  1331.                 GOSUB MiniSPlitdiningroom
  1332.                ' DEBUG "Ah-Ha",hex2 MS_diningroom  , cr
  1333.             ENDIF
  1334.         endif
  1335.     endif
  1336.    
  1337. endif
  1338.    
  1339. 'Sat&Sun
  1340.  'if day >= 6 then
  1341. IF sleepalarmswitch = 0 THEN
  1342.     modeSelect = hour*100+minute
  1343.     UnitWake =  Nb_varH59*100+Nb_varM59
  1344.     UnitSleep =  Nb_varH61*100+Nb_varM61
  1345. 'Debug"S-S",cr
  1346.        SEROUT2 pinkTX, pinkBaud, ["!NB0R59"] ' Command To Read Diningroom wake time
  1347.        ERROR = 59
  1348.        SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1349.         IF mem1 <> Nb_varH59 THEN
  1350.             Nb_varH59 = mem1
  1351.            ' write 63 ,mem1
  1352.             I2cwrite EpSDA,EpScl,$a0,75,[mem1]
  1353.             'pause 5
  1354.            ' debug "W-SS Wk Hr(75)" ,cr
  1355.          endif
  1356.         IF mem2 <> Nb_varM59 THEN
  1357.             Nb_varM59 = mem2
  1358.            ' write 64 ,mem2
  1359.              I2cwrite EpSDA,EpScl,$a0,76,[mem2]
  1360.              'pause 5
  1361.             ' debug "W-SS Wk Mn(76)" ,cr
  1362.          endif
  1363.         SEROUT2 pinkTX, pinkBaud, ["!NB0R60"] ' Command To Read DiningRoomwake Temp
  1364.         ERROR = 60
  1365.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1366.          IF mem1 <> Nb_var60 THEN
  1367.             Nb_var60 = mem1
  1368.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,77,[mem1]
  1369.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,138,[mem1]
  1370.             'pause 5
  1371.            ' debug "W-SS wk tmp(77)",cr
  1372.            endif
  1373.         SEROUT2 pinkTX, pinkBaud, ["!NB0R61"] ' Command To Read Diningroom Sleep time
  1374.         ERROR = 61
  1375.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1376.          IF mem1 <> Nb_varH61 THEN
  1377.             Nb_varH61 = mem1
  1378.             'write 66 ,mem1
  1379.              I2cwrite EpSDA,EpScl,$a0,78,[mem1]
  1380.              'pause 5
  1381.             ' debug "W-SS Sl hr(78)" ,cr
  1382.            endif
  1383.          IF mem2 <> Nb_varM61 THEN
  1384.             Nb_varM61 = mem2
  1385.             'write 67 ,mem2
  1386.             I2cwrite EpSDA,EpScl,$a0,79,[mem2]
  1387.             'pause 5
  1388.            ' debug "W-SS Sl Mn(79)",cr
  1389.            endif
  1390.         SEROUT2 pinkTX, pinkBaud, ["!NB0R62"] ' Command To Read Diningroom Sleep Temp
  1391.         ERROR = 62
  1392.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1393.           IF mem1 <> Nb_var62 THEN
  1394.             Nb_var62 = mem1
  1395.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,80,[mem1]
  1396.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,139,[mem1]
  1397.             'pause 5
  1398.            ' debug "W-SS Sl tmp(80)" ,cr
  1399.            Endif
  1400.         SEROUT2 pinkTX, pinkBaud, ["!NB0R22"] ' Command To Read diningRoom current setting temp
  1401.         ERROR = 22
  1402.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1403.          IF mem1 <> Nb_var22 THEN
  1404.             Nb_var22 = mem1
  1405.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,94,[mem1]
  1406.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,133,[mem1]
  1407.            IF diningroom_busy = %00000000  THEN GOSUB minisplitdiningroom
  1408.              'pause 5
  1409.             ' Debug "DiningRoom set" , cr
  1410.            '  debug "W-cnt set(93)",hex2 mem1 ,cr
  1411.         endif
  1412.          ' debug "MS-DiningRoom ", hex2 ms_diningroom,cr
  1413.     IF diningroom_mode <> 1 THEN
  1414.         IF modeselect => Unitwake AND modeselect < UnitSleep THEN
  1415.             'if hour = Nb_varH59  and minute = Nb_varM59 then 'Wake
  1416.                 diningroom_mode = 1
  1417.             IF nb_var22<> nb_var60 THEN
  1418.                  nb_var22 = Nb_var60
  1419.                 GOSUB MiniSPlitdiningroom
  1420.                ' DEBUG "Ah-Ha",hex2 MS_diningroom  , cr
  1421.             ENDIF
  1422.         endif
  1423.     endif
  1424.     IF diningroom_mode <> 4 THEN
  1425.         IF modeselect => Unitsleep THEN
  1426.             'if hour = Nb_varH61 and minute = Nb_varM61 then 'sleep
  1427.              diningroom_mode = 4
  1428.             IF nb_var22<> nb_var62 THEN
  1429.                  nb_var22 = Nb_var62
  1430.                 GOSUB MiniSPlitdiningroom
  1431.                 'DEBUG "Ah-Ha",hex2 MS_diningroom  , cr
  1432.             ENDIF
  1433.         endif
  1434.     endif
  1435. endif    
  1436. '----------set x-bee channel------------
  1437.  DiningRoom_set:
  1438.      
  1439.    
  1440.     ' pause 200
  1441.     serout2 TX,baud,["+++"]
  1442.     pause 1000
  1443.     serout2 TX,baud,["ATMY 3",CR] 'address diningroom module "3" is diningroom
  1444.     serout2 TX,baud,["ATDL 3",CR]
  1445.     serout2 TX,baud,["ATCN",CR]
  1446.      pause 5
  1447.      SERIN2 RX,Baud,50,diningroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  1448.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr,10
  1449.      pause 18000
  1450.     GOTO timeout6  'skip com with diningroom for now
  1451. diningroom_set1:
  1452. '-----------send data to Diningroom module------------------------
  1453.      serout2 TX,Baud, [" Diningroom "]   'this is fluff to wait for ":"
  1454.       pause Busy_bit
  1455.      
  1456.     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
  1457. '----------Get data from Diningroom module--------------------
  1458.   ' debug "Diningroom ", dec nb_var93, cr
  1459.        
  1460.    
  1461.    SERIN2 RX,Baud,PauseBit,timeout6,[Diningroom_Temp,Diningroom_Setting] 'get temperature and user set temp from office module
  1462.    diningroom_busy = %00000000
  1463.    'Debug "Passed DR", CR
  1464. '----------send data from Diningroom module to pink---------------      
  1465.     serout2 pinktx,pinkbaud, ["!NB0W22:", dec  Diningroom_Setting, CLS]
  1466.     serout2 pinktx,pinkbaud, ["!NB0W21:", dec  Diningroom_Temp, CLS] 'send current temp to Pink
  1467.     IF Nb_var22 <>   diningroom_Setting THEN GOTO diningroom
  1468.    timeout_bit =0  
  1469.   shiftout serdata, clock,0,[Livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  1470.   shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  1471.   pulsout latch,5
  1472.   debug 9," Pass",Cr,10  
  1473.   INPUT serdata
  1474.  
  1475.  'Sun Room
  1476.  ____________________________________________________________________
  1477. '_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  
  1478.  
  1479. SunRoom:
  1480.      
  1481. '--------------mini split radio buttons
  1482.      ' gosub read_radioButtons
  1483.    debug "   Sunroom "    
  1484.    
  1485. pause 200
  1486. 'debug "SunRoom Error...", dec error,cr  ,10
  1487.  
  1488. shiftout serdata, clock,0,[livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  1489. shiftout serdata, clock,0,[%00000001 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  1490.  
  1491. pulsout latch,5
  1492. INPUT serdata
  1493.  
  1494.     '----------Get Pink Data
  1495.     'get humidity setting
  1496.         'SEROUT2 pinkTX, pinkBaud, ["!NB0R78"] ' Command To Read Sun humidity setting
  1497.    
  1498.     'SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  1499.         'if mem1 <> Nb_var78 then
  1500.                 'Nb_var78 = mem1
  1501.  
  1502.                 'pause 5
  1503.                ' debug "W-wk tmp(41)" ,cr
  1504.                ' endif
  1505.  'Mon-Fri
  1506.  
  1507.  'if day <= 5 then
  1508. IF sleepalarmswitch = 1 THEN
  1509.     modeSelect = hour*100+minute
  1510.     unitwake =  Nb_varH33*100+Nb_varM33
  1511.     unitLeave = Nb_varH35*100+Nb_varM35
  1512.     unitreturn = Nb_varH37*100+Nb_varM37
  1513.     unitsleep =  Nb_varH39*100+Nb_varM39  
  1514. 'debug "M-F",cr
  1515.     SEROUT2 pinkTX, pinkBaud, ["!NB0R33"] ' Command To Read Sunroom Wake time
  1516.     ERROR = 33
  1517.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1518.         IF mem1 <> Nb_varH33 THEN
  1519.             Nb_varH33 = mem1
  1520.             I2cwrite EpSDA,EpScl,$a0,39,[mem1]
  1521.             'pause 5
  1522.            ' debug "W-wk hr(39)" ,cr
  1523.             endif
  1524.         IF mem2 <> Nb_varM33 THEN
  1525.             Nb_varM33 = mem2
  1526.             I2cwrite EpSDA,EpScl,$a0,40,[mem2]
  1527.             'pause 5
  1528.            ' debug "W-wk mn(40)"  ,cr
  1529.             endif
  1530.     SEROUT2 pinkTX, pinkBaud, ["!NB0R34"] ' Command To Read Sun Wake temp
  1531.     ERROR = 34
  1532.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  1533.         IF mem1 <> Nb_var34 THEN
  1534.                 Nb_var34 = mem1
  1535.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,41,[mem1]
  1536.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,141,[mem1]
  1537.                 'pause 5
  1538.                ' debug "W-wk tmp(41)" ,cr
  1539.                 endif
  1540.     SEROUT2 pinkTX, pinkBaud, ["!NB0R35"] ' Command To Read Sun Leave time
  1541.     ERROR = 35
  1542.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1543.         IF mem1 <> Nb_varH35 THEN
  1544.             Nb_varH35 = mem1
  1545.             I2cwrite EpSDA,EpScl,$a0,42,[mem1]
  1546.             'pause 5
  1547.            ' debug "W-lv hr(42)" ,cr
  1548.             endif
  1549.         IF mem2 <> Nb_varM35 THEN
  1550.             Nb_varM35 = mem2
  1551.              I2cwrite EpSDA,EpScl,$a0,43,[mem2]
  1552.              'pause 5
  1553.             ' debug "W-lv mn(43)" ,cr
  1554.             endif
  1555.     SEROUT2 pinkTX, pinkBaud, ["!NB0R36"] ' Command To Read SunRoom Leave temp
  1556.     ERROR = 36
  1557.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1558.            IF mem1 <> Nb_var36 THEN
  1559.                 Nb_var36 = mem1
  1560.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,44,[mem1]
  1561.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,142,[mem1]
  1562.                 'pause 5
  1563.                ' debug "W-lv tmp(44)",cr
  1564.                 endif
  1565.     SEROUT2 pinkTX, pinkBaud, ["!NB0R37"] ' Command To Read Sunroom Return time
  1566.     ERROR = 37
  1567.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1568.             IF mem1 <> Nb_varH37 THEN
  1569.                 Nb_varH37 = mem1
  1570.                 I2cwrite EpSDA,EpScl,$a0,45,[mem1]
  1571.                 'pause 5
  1572.                ' debug "W-rtn hr(45)" ,cr
  1573.                 endif
  1574.             IF mem2 <> Nb_varM37 THEN
  1575.                 Nb_varM37 = mem2
  1576.                 I2cwrite EpSDA,EpScl,$a0,46,[mem2]
  1577.                 'pause 5
  1578.                ' debug "W-rtn mn(46)" ,cr
  1579.                 endif
  1580.     SEROUT2 pinkTX, pinkBaud, ["!NB0R38"] ' Command To Read Sunroom Return Temp
  1581.     ERROR = 38
  1582.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1583.                IF mem1 <> Nb_var38 THEN
  1584.                 Nb_var38 = mem1
  1585.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,47,[mem1]
  1586.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,143,[mem1]
  1587.                 'pause 5
  1588.               '  debug "W-rtn tmp(47)" ,cr
  1589.                 endif
  1590.     SEROUT2 pinkTX, pinkBaud, ["!NB0R39"] ' Command To Read Sunroom Sleep time
  1591.     ERROR = 39
  1592.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1593.             IF mem1 <> Nb_varH39 THEN
  1594.                 Nb_varH39 = mem1
  1595.                I2cwrite EpSDA,EpScl,$a0,48,[mem1]
  1596.                'pause 5
  1597.               ' debug "W-sl hr(48)" ,cr
  1598.                 endif
  1599.             IF mem2 <> Nb_varM39 THEN
  1600.                 Nb_varM39 = mem2
  1601.                 I2cwrite EpSDA,EpScl,$a0,49,[mem2]
  1602.                 'pause 5
  1603.                ' debug "W-sl mn(49)",cr
  1604.                 endif
  1605.     SEROUT2 pinkTX, pinkBaud, ["!NB0R40"] ' Command To Read SunRoom Sleep Temp
  1606.     ERROR = 40
  1607.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1608.               IF mem1 <> Nb_var40 THEN
  1609.                 Nb_var40 = mem1
  1610.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,50,[mem1]
  1611.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,144,[mem1]
  1612.                  'pause 5
  1613.                 ' debug "W-sl tmp(50)" ,cr
  1614.                endif
  1615.      SEROUT2 pinkTX, pinkBaud, ["!NB0R32"] ' Command To Read Sunroom current setting temp
  1616.      ERROR = 32
  1617.      SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1618.          IF mem1 <> Nb_var32 THEN
  1619.             Nb_var32 = mem1
  1620.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,95,[mem1]
  1621.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,140,[mem1]
  1622.             IF sunroom_busy = %00000000 THEN GOSUB minisplitsunroom
  1623.             ' debug "Sunroom Set", cr
  1624.             ' debug "W-cnt set(95)" ,dec mem1 ,cr
  1625.         endif
  1626.       ' DEBUG "MS-SUNROOM ", HEX2 ms_sunroom , cr
  1627.     IF sunroom_mode <> 1 THEN
  1628.         IF modeselect => unitwake AND modeselect < unitleave THEN              
  1629.     'if hour = Nb_varH33  and minute = Nb_varM33 then 'Wake
  1630.         sunroom_mode = 1
  1631.             IF nb_var32<> nb_var34 THEN
  1632.                  nb_var32 = Nb_var34
  1633.                 GOSUB MiniSPlitsunroom
  1634.                ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
  1635.             ENDIF
  1636.         endif
  1637.     endif
  1638.     IF sunroom_mode <> 2 THEN
  1639.         IF modeselect => unitleave AND modeselect < unitreturn THEN
  1640.     'if hour = Nb_varH35 and minute = Nb_varM35 then 'leave
  1641.          sunroom_mode = 2
  1642.             IF nb_var32<> nb_var36 THEN
  1643.                  nb_var32 = Nb_var36
  1644.                 GOSUB MiniSPlitsunroom
  1645.                ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
  1646.             ENDIF
  1647.         endif
  1648.     endif
  1649.     IF sunroom_mode <> 3 THEN
  1650.         IF modeselect => unitreturn AND modeselect < unitsleep THEN
  1651.     'if hour = Nb_varH37 and minute = Nb_varM37 then  'return
  1652.         sunroom_mode = 3
  1653.             IF nb_var32<> nb_var38 THEN
  1654.                  nb_var32 = Nb_var38
  1655.                 GOSUB MiniSPlitsunroom
  1656.                ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
  1657.             ENDIF
  1658.         endif
  1659.     endif
  1660.     IF sunroom_mode <> 4 THEN
  1661.         IF modeselect => unitsleep  THEN
  1662.      'if hour = Nb_varH39 and minute = Nb_varM39 then 'sleep
  1663.         sunroom_mode = 4
  1664.             IF nb_var32<> nb_var40 THEN
  1665.                  nb_var32 = Nb_var40
  1666.                 GOSUB MiniSPlitsunroom
  1667.                 'DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
  1668.             ENDIF
  1669.         endif      
  1670.     endif
  1671.    
  1672. endif
  1673.    
  1674. 'Sat&Sun
  1675.  'if day >= 6 then
  1676. IF sleepalarmswitch = 0 THEN
  1677.       modeSelect = hour*100+minute
  1678.     UnitWake =  Nb_varH63*100+Nb_varM63
  1679.     UnitSleep =  Nb_varH65*100+Nb_varM65
  1680.        SEROUT2 pinkTX, pinkBaud, ["!NB0R63"] ' Command To Read sunroom wake time
  1681.        ERROR = 63
  1682.        SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1683.         IF mem1 <> Nb_varH63 THEN
  1684.             Nb_varH63 = mem1
  1685.             I2cwrite EpSDA,EpScl,$a0,81,[mem1]
  1686.             'pause 5
  1687.            ' debug "W-SS Wk Hr(81)" ,cr
  1688.          endif
  1689.         IF mem2 <> Nb_varM63 THEN
  1690.             Nb_varM63 = mem2
  1691.              I2cwrite EpSDA,EpScl,$a0,82,[mem2]
  1692.              'pause 5
  1693.             ' debug "W-SS Wk Mn(82)" ,cr
  1694.          endif
  1695.         SEROUT2 pinkTX, pinkBaud, ["!NB0R64"] ' Command To Read sunRoomwake Temp
  1696.         ERROR = 64
  1697.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1698.          IF mem1 <> Nb_var64 THEN
  1699.             Nb_var64 = mem1
  1700.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,83,[mem1]
  1701.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,145,[mem1]
  1702.             'pause 5
  1703.            ' debug "W-SS wk tmp(83)",cr
  1704.            endif
  1705.         SEROUT2 pinkTX, pinkBaud, ["!NB0R65"] ' Command To Read sunroom Sleep time
  1706.         ERROR = 65
  1707.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1708.          IF mem1 <> Nb_varH65 THEN
  1709.             Nb_varH65 = mem1
  1710.              I2cwrite EpSDA,EpScl,$a0,84,[mem1]
  1711.              'pause 5
  1712.             ' debug "W-SS Sl hr(84)" ,cr
  1713.            endif
  1714.          IF mem2 <> Nb_varM65 THEN
  1715.             Nb_varM65 = mem2
  1716.             I2cwrite EpSDA,EpScl,$a0,85,[mem2]
  1717.             'pause 5
  1718.            ' debug "W-SS Sl Mn(85)",cr
  1719.            endif
  1720.         SEROUT2 pinkTX, pinkBaud, ["!NB0R66"] ' Command To Read sunroom Sleep Temp
  1721.         ERROR = 66
  1722.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1723.           IF mem1 <> Nb_var66 THEN
  1724.             Nb_var66 = mem1
  1725.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,86,[mem1]
  1726.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,146,[mem1]
  1727.             'pause 5
  1728.             'debug "W-SS Sl tmp(86)" ,cr
  1729.            Endif
  1730.         SEROUT2 pinkTX, pinkBaud, ["!NB0R32"] ' Command To Read sunRoom current setting temp
  1731.         ERROR = 32
  1732.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1733.          IF mem1 <> Nb_var32 THEN
  1734.             Nb_var32 = mem1
  1735.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,95,[mem1]
  1736.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,140,[mem1]
  1737.             IF sunroom_busy = %00000000 THEN GOSUB minisplitsunroom
  1738.             ' debug "sunroom set",cr
  1739.              'write 2 ,mem1
  1740.             ' debug "W-cnt set(95)" ,hex2 mem1,cr
  1741.         endif
  1742.        ' DEBUG "MS-SunRoom ", HEX2 ms_sunroom , cr
  1743.     IF sunroom_mode <> 1 THEN
  1744.         IF modeselect => Unitwake AND modeselect < UnitSleep THEN          
  1745.             'if hour = Nb_varH63  and minute = Nb_varM63 then 'Wake
  1746.                 Sunroom_mode = 1
  1747.             IF nb_var32<> nb_var64 THEN
  1748.                  nb_var32 = Nb_var64
  1749.                 GOSUB MiniSPlitsunroom
  1750.                ' DEBUG "Ah-Ha",hex2 MS_SunRoom , cr
  1751.             ENDIF
  1752.         ENDIF
  1753.     endif
  1754.              
  1755.     IF sunroom_mode <> 4 THEN
  1756.         IF modeselect => Unitsleep THEN
  1757.             'if hour = Nb_varH65 and minute = Nb_varM65 then 'sleep
  1758.              Sunroom_mode = 4
  1759.             IF nb_var32<> nb_var66 THEN
  1760.                  nb_var32 = Nb_var66
  1761.                 GOSUB MiniSPlitsunroom
  1762.                 'DEBUG "Ah-Ha",hex2 MS_sunroom , cr
  1763.             ENDIF
  1764.         endif
  1765.     ENDIF
  1766.  'sleep temp set
  1767. endif            
  1768.                
  1769. '----------set x-bee channel------------
  1770.  SunRoom_set:
  1771.      
  1772.    
  1773.      pause 50
  1774.     serout2 TX,baud,["+++"]
  1775.     pause 1000
  1776.     serout2 TX,baud,["ATMY 4",CR] 'address module "4" is Sunroom
  1777.     serout2 TX,baud,["ATDL 4",CR]
  1778.     serout2 TX,baud,["ATCN",CR]
  1779.     pause 5  
  1780.     SERIN2 RX,Baud,50,sunroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  1781.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr ,10
  1782.      pause 18000
  1783.     GOTO timeout7  'skip com with sunroom for now
  1784. sunroom_set1:
  1785. '-----------send data to Sunroom module------------------------
  1786.      serout2 TX,Baud, [" Sunroom "]
  1787.      pause Busy_Bit
  1788.            
  1789.     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
  1790.  '--------------------------------------------------------------------------------------------------------------Nb_var72 = LR_RH  Set point^
  1791. '----------Get data from Sunroom module--------------------
  1792.       'pause 50
  1793.    ' debug "Sunroom ", dec nb_var93, cr
  1794.    SERIN2 RX,Baud,PauseBit,timeout7,[Sunroom_Temp,Sunroom_Setting] 'get temperature and user set temp from office module
  1795.  sunroom_busy = %00000000
  1796. '----------send data from Sunroom module to pink---------------      
  1797.     serout2 pinktx,pinkbaud, ["!NB0W32:", dec  Sunroom_Setting, CLS]
  1798.     serout2 pinktx,pinkbaud, ["!NB0W31:", dec  Sunroom_Temp, CLS] 'send current temp to Pink
  1799.     IF Nb_var32 <>   SunRoom_Setting THEN GOTO Sunroom
  1800.    timeout_bit =0
  1801.    shiftout serdata, clock,0,[livingroom_busy +atticunit_busy+solarUnit_busy+greenhouse_busy]
  1802.    shiftout serdata, clock,0,[%00000000 + office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  1803.    pulsout latch,5
  1804.    debug 9," Pass"  
  1805.    INPUT serdata
  1806.  
  1807.              
  1808.   'LivingRoom
  1809. ' ____________________________________________________________________
  1810. '_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  
  1811.   'livingroom      
  1812.  'debug "here1",cr      
  1813.  
  1814. LivingRoom:
  1815.  
  1816. '--------------mini split radio buttons
  1817.       GOSUB read_radioButtons
  1818.     debug "   Living room "    
  1819.        
  1820. Pause 200
  1821. 'debug "LivingRoom Error...", dec error,cr  ,10
  1822. shiftout serdata, clock,0,[%01000000+ livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  1823. shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  1824. pulsout latch,5
  1825. INPUT serdata
  1826.  
  1827.     '----------Get Pink Data
  1828.  'Mon-Fri
  1829.  'debug dec   sleepalarmswitch, cr
  1830. IF sleepalarmswitch = 1 THEN
  1831.       modeSelect = hour*100+minute
  1832.     unitwake =  Nb_varH43*100+Nb_varM43
  1833.     unitLeave = Nb_varH45*100+Nb_varM45
  1834.     unitreturn = Nb_varH47*100+Nb_varM47
  1835.     unitsleep =  Nb_varH49*100+Nb_varM49
  1836.  
  1837.  'if day <= 5 then
  1838. 'debug "M-F",cr
  1839.     SEROUT2 pinkTX, pinkBaud, ["!NB0R43"] ' Command To Read Livingroom Wake time
  1840.     ERROR = 43
  1841.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1842.         IF mem1 <> Nb_varH43 THEN
  1843.             Nb_varH43 = mem1
  1844.             I2cwrite EpSDA,EpScl,$a0,51,[mem1]
  1845.             'pause 5
  1846.            ' debug "W-wk hr(51)" ,cr
  1847.             endif
  1848.         IF mem2 <> Nb_varM43 THEN
  1849.             Nb_varM43 = mem2
  1850.             I2cwrite EpSDA,EpScl,$a0,52,[mem2]
  1851.             'pause 5
  1852.            ' debug "W-wk mn(52)"  ,cr
  1853.             endif
  1854.          
  1855.     SEROUT2 pinkTX, pinkBaud, ["!NB0R44"] ' Command To Read living Wake temp
  1856.     ERROR = 44
  1857.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  1858.         IF mem1 <> Nb_var44 THEN
  1859.                 Nb_var44 = mem1
  1860.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,53,[mem1]
  1861.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,148,[mem1]
  1862.                 'pause 5
  1863.                ' debug "W-wk tmp(41)" ,cr
  1864.              
  1865.                endif
  1866.                  
  1867.     SEROUT2 pinkTX, pinkBaud, ["!NB0R45"] ' Command To Read living Leave time
  1868.     ERROR = 45
  1869.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1870.         IF mem1 <> Nb_varH45 THEN
  1871.             Nb_varH45 = mem1
  1872.             I2cwrite EpSDA,EpScl,$a0,54,[mem1]
  1873.             'pause 5
  1874.            ' debug "W-lv hr(54)" ,cr
  1875.             endif
  1876.         IF mem2 <> Nb_varM45 THEN
  1877.             Nb_varM45 = mem2
  1878.              I2cwrite EpSDA,EpScl,$a0,55,[mem2]
  1879.              'pause 5
  1880.             ' debug "W-lv mn(55)" ,cr
  1881.             endif
  1882.     SEROUT2 pinkTX, pinkBaud, ["!NB0R46"] ' Command To Read livingRoom Leave temp
  1883.     ERROR = 46
  1884.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1885.            IF mem1 <> Nb_var46 THEN
  1886.                 Nb_var46 = mem1
  1887.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,56,[mem1]
  1888.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,149,[mem1]
  1889.                 'pause 5
  1890.                ' debug "W-lv tmp(56)",cr
  1891.                 endif
  1892.     SEROUT2 pinkTX, pinkBaud, ["!NB0R47"] ' Command To Read Livingroom Return time
  1893.     ERROR = 47
  1894.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1895.             IF mem1 <> Nb_varH47 THEN
  1896.                 Nb_varH47 = mem1
  1897.                 I2cwrite EpSDA,EpScl,$a0,57,[mem1]
  1898.                 'pause 5
  1899.                ' debug "W-rtn hr(57)" ,cr
  1900.                 endif
  1901.             IF mem2 <> Nb_varM47 THEN
  1902.                 Nb_varM47 = mem2
  1903.                 I2cwrite EpSDA,EpScl,$a0,58,[mem2]
  1904.                 'pause 5
  1905.                ' debug "W-rtn mn(58)" ,cr
  1906.                 endif
  1907.     SEROUT2 pinkTX, pinkBaud, ["!NB0R48"] ' Command To Read Livingroom Return Temp
  1908.     ERROR = 48
  1909.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1910.                IF mem1 <> Nb_var48 THEN
  1911.                 Nb_var48 = mem1
  1912.                 IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,59,[mem1]
  1913.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,150,[mem1]
  1914.                 'pause 5
  1915.               '  debug "W-rtn tmp(59)" ,cr
  1916.                 endif
  1917.                
  1918.     SEROUT2 pinkTX, pinkBaud, ["!NB0R49"] ' Command To Read livingroom Sleep time
  1919.     ERROR = 49
  1920.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  1921.             IF mem1 <> Nb_varH49 THEN
  1922.                 Nb_varH49 = mem1
  1923.                I2cwrite EpSDA,EpScl,$a0,60,[mem1]
  1924.                'pause 5
  1925.               ' debug "W-sl hr(60)" ,cr
  1926.                 endif
  1927.             IF mem2 <> Nb_varM49 THEN
  1928.                 Nb_varM49 = mem2
  1929.                 I2cwrite EpSDA,EpScl,$a0,61,[mem2]
  1930.                 'pause 5
  1931.                ' debug "W-sl mn(61)",cr
  1932.                 endif
  1933.     SEROUT2 pinkTX, pinkBaud, ["!NB0R50"] ' Command To Read LivingRoom Sleep Temp
  1934.     ERROR = 50
  1935.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1936.               IF mem1 <> Nb_var50 THEN
  1937.                 Nb_var50 = mem1
  1938.                  IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,62,[mem1]
  1939.                 IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,151,[mem1]
  1940.                  pause 5
  1941.                 ' debug "W-sl tmp(62)" ,cr
  1942.                endif
  1943.      
  1944.      SEROUT2 pinkTX, pinkBaud, ["!NB0R42"] ' Command To Read Livingroom current setting temp
  1945.      ERROR = 42
  1946.      SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  1947.          IF mem1 <> Nb_var42 THEN
  1948.             Nb_var42 = mem1
  1949.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,96,[mem1]
  1950.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,147,[mem1]
  1951.             IF livingroom_busy = %00000000 THEN GOSUB minisplitlivingroom
  1952.             ' debug "Livingroom Set", cr
  1953.             ' debug "W-cnt set(96)" ,dec mem1 ,cr
  1954.         endif
  1955.       ' DEBUG "MS-LIVINGROOM ", HEX2 ms_sunroom , cr
  1956.     IF livingroom_mode <> 1 THEN
  1957.         IF modeselect => unitwake AND modeselect < unitleave THEN            
  1958.     'if hour = Nb_varH43  and minute = Nb_varM43 then 'Wake
  1959.         livingroom_mode = 1
  1960.             IF nb_var42<> nb_var44 THEN
  1961.                  nb_var42 = Nb_var44
  1962.                 GOSUB MiniSPlitLivingroom
  1963.                ' DEBUG "Ah-Ha",hex2 MS_LivingRoom , cr
  1964.             ENDIF
  1965.         endif      
  1966.      endif
  1967.     IF livingroom_mode <> 2 THEN
  1968.         IF modeselect => unitleave AND modeselect < unitreturn THEN
  1969.     ' if hour = Nb_varH45 and minute = Nb_varM45 then 'leave
  1970.          livingroom_mode = 2
  1971.             IF nb_var42<> nb_var46 THEN
  1972.                  nb_var42 = Nb_var46
  1973.                 GOSUB MiniSPlitlivingroom
  1974.                ' DEBUG "Ah-Ha",hex2 MS_LivnigRoom , cr
  1975.             ENDIF
  1976.         endif
  1977.     endif
  1978.     IF livingroom_mode <> 3 THEN
  1979.         IF modeselect => unitreturn AND modeselect < unitsleep THEN
  1980.    ' if hour = Nb_varH47 and minute = Nb_varM47 then  'return
  1981.         livingroom_mode = 3
  1982.             IF nb_var42<> nb_var48 THEN
  1983.                  nb_var42 = Nb_var48
  1984.                 GOSUB MiniSPlitlivingroom
  1985.                ' DEBUG "Ah-Ha",hex2 MS_livingRoom , cr
  1986.             ENDIF
  1987.         endif
  1988.     endif
  1989.     IF livingroom_mode <> 4 THEN
  1990.         IF modeselect => unitsleep  THEN
  1991.     'if hour = Nb_varH49 and minute = Nb_varM49 then 'sleep
  1992.         livingroom_mode = 4
  1993.             IF nb_var42<> nb_var50 THEN
  1994.                  nb_var42 = Nb_var50
  1995.                 GOSUB MiniSPlitlivingroom
  1996.                 'DEBUG "Ah-Ha",hex2 MS_livingRoom , cr
  1997.             ENDIF
  1998.         endif        
  1999.     endif
  2000.    
  2001. endif
  2002.  
  2003. 'Sat&Sun
  2004.  'if day >= 6 then
  2005. IF sleepalarmswitch = 0 THEN
  2006.     modeSelect = hour*100+minute
  2007.     UnitWake =  Nb_varH67*100+Nb_varM67
  2008.     UnitSleep =  Nb_varH69*100+Nb_varM69
  2009.        SEROUT2 pinkTX, pinkBaud, ["!NB0R67"] ' Command To Read livingroom wake time
  2010.        ERROR = 67
  2011.        SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  2012.         IF mem1 <> Nb_varH67 THEN
  2013.             Nb_varH67 = mem1
  2014.             I2cwrite EpSDA,EpScl,$a0,87,[mem1]
  2015.             pause 5
  2016.            ' debug "W-SS Wk Hr(87)" ,cr
  2017.          endif
  2018.         IF mem2 <> Nb_varM67 THEN
  2019.             Nb_varM67 = mem2
  2020.              I2cwrite EpSDA,EpScl,$a0,88,[mem2]
  2021.             pause 5
  2022.             ' debug "W-SS Wk Mn(88)" ,cr
  2023.          endif
  2024.         SEROUT2 pinkTX, pinkBaud, ["!NB0R68"] ' Command To Read livingRoomwake Temp
  2025.         ERROR = 68
  2026.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  2027.          IF mem1 <> Nb_var68 THEN
  2028.             Nb_var68 = mem1
  2029.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,89,[mem1]
  2030.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,152,[mem1]
  2031.             pause 5
  2032.            ' debug "W-SS wk tmp(89)",cr
  2033.           endif
  2034.         SEROUT2 pinkTX, pinkBaud, ["!NB0R69"] ' Command To Read livingroom Sleep time
  2035.         ERROR = 69
  2036.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 mem1,skip 1,hex2 mem2]' Get Data With Timeout
  2037.          IF mem1 <> Nb_varH69 THEN
  2038.             Nb_varH69 = mem1
  2039.              I2cwrite EpSDA,EpScl,$a0,90,[mem1]
  2040.             ' 'pause 5
  2041.             ' debug "W-SS Sl hr(90)" ,cr
  2042.            endif
  2043.          IF mem2 <> Nb_varM69 THEN
  2044.             Nb_varM69 = mem2
  2045.             I2cwrite EpSDA,EpScl,$a0,91,[mem2]
  2046.             ''pause 5
  2047.            ' debug "W-SS Sl Mn(91)",cr
  2048.            endif
  2049.         SEROUT2 pinkTX, pinkBaud, ["!NB0R70"] ' Command To Read livingroom Sleep Temp
  2050.         ERROR = 70
  2051.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  2052.           IF mem1 <> Nb_var70 THEN
  2053.             Nb_var70 = mem1
  2054.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,92,[mem1]
  2055.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,153,[mem1]
  2056.             ''pause 5
  2057.             'debug "W-SS Sl tmp(92)" ,cr
  2058.            Endif
  2059.         SEROUT2 pinkTX, pinkBaud, ["!NB0R42"] ' Command To Read livingRoom current setting temp
  2060.         ERROR = 42
  2061.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec2 mem1]' Get Data With Timeout
  2062.          IF mem1 <> Nb_var42 THEN
  2063.             Nb_var42 = mem1
  2064.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,96,[mem1]
  2065.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,147,[mem1]
  2066.             IF livingroom_busy = %00000000 THEN GOSUB minisplitlivingroom
  2067.             ' debug "livingroom set",cr
  2068.              'write 2 ,mem1
  2069.             ' debug "W-cnt set(96)" ,hex2 mem1,cr
  2070.           endif
  2071.        ' DEBUG "MS-LivingRoom ", HEX2 ms_sunroom , cr
  2072.            IF livingroom_mode <> 1 THEN
  2073.             IF modeselect => Unitwake AND modeselect < UnitSleep THEN          
  2074.             'if hour = Nb_varH67  and minute = Nb_varM67 then 'Wake
  2075.                 livingroom_mode = 1
  2076.                 IF nb_var42<> nb_var68 THEN
  2077.                  nb_var42 = Nb_var68
  2078.                 GOSUB MiniSPlitlivingroom
  2079.                ' DEBUG "Ah-Ha",hex2 MS_LivingRoom , cr
  2080.                 ENDIF
  2081.             ENDIF
  2082.            endif
  2083.        
  2084.             IF livingroom_mode <> 4 THEN
  2085.              IF modeselect => Unitsleep THEN
  2086.             'if hour = Nb_varH69 and minute = Nb_varM69 then 'sleep
  2087.                livingroom_mode = 4
  2088.                IF nb_var42<> nb_var70 THEN
  2089.                  nb_var42 = Nb_var70
  2090.                 GOSUB MiniSPlitlivingroom
  2091.                 'DEBUG "Ah-Ha",hex2 MS_livingroom , cr
  2092.                ENDIF
  2093.               endif
  2094.             ENDIF
  2095.   endif          
  2096.  'sleep temp set
  2097.              
  2098.                
  2099. '----------set x-bee channel------------
  2100.  LivingRoom_set:
  2101.   ' debug"here",cr  
  2102.    
  2103.      'pause 50
  2104.     serout2 TX,baud,["+++"]
  2105.     pause 1000
  2106.     serout2 TX,baud,["ATMY 11",CR] 'address module "6" is livingroom
  2107.     serout2 TX,baud,["ATDL 11",CR]
  2108.     serout2 TX,baud,["ATCN",CR]
  2109.     pause 5  
  2110.      SERIN2 RX,Baud,50,livingroom_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  2111.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr ,10
  2112.      pause 18000
  2113.     GOTO timeout8  'skip com with livingroom for now
  2114. Livingroom_set1:
  2115. '-----------send data to Livingroom module------------------------
  2116.      serout2 TX,Baud, [" Livingroom "]
  2117.      pause Busy_Bit  
  2118.     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
  2119. '----------Get data from Livingroom module--------------------
  2120.       pause 50
  2121.     'debug "livingroom ", dec nb_var93, cr
  2122.     SERIN2 RX,Baud,PauseBit,timeout8,[Livingroom_Temp,Livingroom_Setting,NB_var72] 'get temperature and user set temp + humidity from livingroom module
  2123.  livingroom_busy = %00000000
  2124.    
  2125.    ' serout2 pinktx,pinkbaud,["!NB0W72:",dec nb_var72,cls]
  2126. '-----------Put NB_var72 in PINK (Humidity reading from living room unit)
  2127.     serout2 pinktx,pinkbaud,["!NB0W72:",dec nb_var72,CLS]
  2128. '----------send data from LIvingroom module to pink---------------      
  2129.     serout2 pinktx,pinkbaud, ["!NB0W42:", dec  Livingroom_Setting, CLS]
  2130.     serout2 pinktx,pinkbaud, ["!NB0W41:", dec  Livingroom_Temp, CLS] 'send current temp to Pink
  2131.     IF Nb_var42 <>   LivingRoom_Setting THEN GOTO livingroom  
  2132.    timeout_bit =0  
  2133.    shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  2134.    shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2135.    pulsout latch,5
  2136.    debug 9, " Pass" ,Cr,10
  2137.    INPUT serdata  
  2138.  ' SAS_checksum =  SleepAlarmSwitch
  2139.   'gosub Attic_outdoor_unit  
  2140.  powerout = 1 ' you made it through the program without timing out,
  2141.    'the pic and web page are talking : if you timed out see timeout and timeout1  
  2142.      
  2143. Attic_outdoor_unit:
  2144.  
  2145. 'gosub read_radioButtons
  2146. debug "   Attic "
  2147. Pause 200
  2148. 'debug "Attic Error...", dec error,cr  ,10
  2149.        
  2150.          shiftout serdata, clock,0,[%00010000+ livingroom_busy+atticunit_busy+solarUnit_busy+greenhouse_busy]
  2151.          shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy ]
  2152.          pulsout latch,5
  2153.          INPUT serdata
  2154.          'pause 1500
  2155.         SEROUT2 pinkTX, pinkBaud, ["!NB0R74"] ' Command To Read Attic current setting temp
  2156.         ERROR = 74
  2157.         SERIN2  pinkRX, pinkBaud,1000,timeout2,[dec mem1]' Get Data With Timeout
  2158.          IF mem1 <> attic_setting THEN
  2159.             attic_setting = mem1
  2160.             I2cwrite EpSDA,EpScl,$a0,110,[mem1]
  2161.            debug "   attic setting set to ", dec mem1,cr ,10
  2162.            
  2163.         endif
  2164.       'debug "attic ", dec nb_var93, cr
  2165.      
  2166.  
  2167.  
  2168.    serout2 TX,baud,["+++"]
  2169.     pause 1000
  2170.     serout2 TX,baud,["ATMY 10",CR] 'address module "10" is attic
  2171.     serout2 TX,baud,["ATDL 10",CR]
  2172.     serout2 TX,baud,["ATCN",CR]
  2173.     pause 5  
  2174.     SERIN2 RX,Baud,250,attic_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  2175.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr ,10
  2176.      pause 18000
  2177.     GOTO timeout9  'skip com with diningroom for now
  2178. attic_set1:
  2179.    
  2180. '-----------send data to Attic module------------------------
  2181.      serout2 TX,Baud, [" Attic "]
  2182.      pause Busy_Bit
  2183.     serout2 TX,Baud, [":",attic_setting,hex2 hour,hex2 minute,backlight_bit] 'send pink temp value to office module
  2184. '----------Get data from Attic module--------------------
  2185.      
  2186.      
  2187.     SERIN2 RX,Baud,PauseBit,timeout9,[ Attic_Temp, Attic_Setting,outdoorRH,outdoortf,sleepalarmswitch ] 'get temperature and user set temp from office module
  2188.  AtticUnit_busy = %00000000
  2189.      
  2190.  
  2191.    
  2192. '----------send data from Atticroom module to pink---------------      
  2193.     serout2 pinktx,pinkbaud, ["!NB0W74:", dec  Attic_Setting, CLS]
  2194.     serout2 pinktx,pinkbaud, ["!NB0W73:", dec  attic_Temp, CLS] 'send current temp to Pink
  2195.      IF minute = 0 THEN RH_Trend0 = outdoorRH
  2196.      IF minute = 15 THEN RH_Trend15 = outdoorRH
  2197.      IF minute = 30 THEN RH_Trend30 = outdoorRH
  2198.      IF minute = 45 THEN RH_Trend45 = outdoorRH
  2199.     RH_result= (RH_Trend0 + RH_Trend15 +  RH_Trend30 + RH_Trend45 )/4
  2200.     IF RH_Result > outdoorRH THEN serout2 pinktx,pinkbaud,["!NB0W75:","< ",dec outdoorRH,CLS]
  2201.     IF RH_Result < outdoorRH THEN serout2 pinktx,pinkbaud,["!NB0W75:",dec outdoorRH," >",CLS]
  2202.     IF RH_Result = outdoorRH THEN serout2 pinktx,pinkbaud,["!NB0W75:","= ",dec outdoorRH,CLS]
  2203.     'debug dec RH_Trend0,";",dec RH_Trend15,";",dec RH_Trend30,";",dec RH_Trend45, cr ,10
  2204.     'debug dec RH_result, cr,10
  2205.     serout2 pinktx,pinkbaud, ["!NB0W76:", dec  outdoortf, CLS]
  2206.     IF sleepalarmswitch  = 1 THEN  serout2 pinktx,pinkbaud, ["!NB0W77:","On", CLS]
  2207.     IF sleepalarmswitch  = 0 THEN  serout2 pinktx,pinkbaud, ["!NB0W77:","Off", CLS]
  2208.    
  2209.    timeout_bit =0  
  2210.    shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy+solarUnit_busy]
  2211.    shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2212.    pulsout latch,5
  2213.    debug 9," Pass"
  2214.    INPUT serdata
  2215. Pause 200
  2216. solar:
  2217. GOSUB read_radioButtons
  2218. debug "   Solar "
  2219.          shiftout serdata, clock,0,[%00000100+ livingroom_busy+atticUnit_busy+solarUnit_busy+greenhouse_busy]
  2220.          shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2221.          pulsout latch,5
  2222.          INPUT serdata
  2223.         SEROUT2 pinkTX, pinkBaud, ["!NB0R78"] ' Command To Read tracker home temp
  2224.         ERROR = 78
  2225.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  2226.          IF mem1 <> Nb_var78 THEN
  2227.             Nb_var78 = mem1
  2228.              I2cwrite EpSDA,EpScl,$a0,111,[mem1]
  2229.            
  2230.             ''pause 5
  2231.            ' debug "W-SS wk tmp(89)",cr
  2232.            endif        
  2233.          SEROUT2 pinkTX, pinkBaud, ["!NB0R79"] ' Command To Read tracker home temp
  2234.         ERROR = 79
  2235.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  2236.          IF mem1 <> Nb_var79 THEN
  2237.             Nb_var79 = mem1
  2238.              I2cwrite EpSDA,EpScl,$a0,112,[mem1]
  2239.            
  2240.             ''pause 5
  2241.            ' debug "W-SS wk tmp(89)",cr
  2242.            endif        
  2243.   serout2 TX,baud,["+++"]
  2244.     pause 1000
  2245.     serout2 TX,baud,["ATMY 15",CR] 'address module "15" is solar
  2246.     serout2 TX,baud,["ATDL 15",CR]
  2247.     serout2 TX,baud,["ATCN",CR]
  2248.     pause 5
  2249.     SERIN2 RX,Baud,50,solar_set1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  2250.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr ,10
  2251.     pause 18000
  2252.     GOTO timeout10  'skip com  for now
  2253. solar_set1:
  2254.    
  2255. '-----------send data to solar module------------------------
  2256.     serout2 TX,Baud, [" Solar "]
  2257.      'debug "sending data", cr,10
  2258.      pause Busy_Bit
  2259.     'serout2 TX,Baud, [" Solar "]'more buffer
  2260.     'pause 50  
  2261.     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,Nb_var93,date,month,year  ]      
  2262.      pause 50
  2263.     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]
  2264.     pause 50
  2265.     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 ]
  2266. '----------Get data from Solar module--------------------
  2267.      
  2268.      
  2269.     SERIN2 RX,Baud,PauseBit,timeout10,[ tank, panel] 'get temperature and user set temp from office module
  2270. '----------send data from Solar module to pink---------------      
  2271.     serout2 pinktx,pinkbaud, ["!NB0W80:", dec  tank, CLS]
  2272.     serout2 pinktx,pinkbaud, ["!NB0W81:", dec  panel, CLS] 'send current temp to Pink    
  2273.      solarUnit_busy = %00000000
  2274.     shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy +solarUnit_busy]
  2275.     shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2276.      pulsout latch,5
  2277.      debug 9," Pass",Cr,10  
  2278.      INPUT serdata
  2279. Greenhouse:
  2280. debug "   Greenhouse "
  2281. pause 200
  2282.          shiftout serdata, clock,0,[%00000001+ livingroom_busy+atticUnit_busy+solarUnit_busy]
  2283.          shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2284.          pulsout latch,5
  2285.          
  2286.          INPUT serdata
  2287.         'SEROUT2 pinkTX, pinkBaud, ["!NB0R82"] ' Command To Read greenhouse temp
  2288.        ' error = 82
  2289.         'SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  2290.          'if mem1 <> Nb_var82 then
  2291.            ' Nb_var82 = mem1
  2292.              
  2293.           ' endif        
  2294.          SEROUT2 pinkTX, pinkBaud, ["!NB0R83"] ' Command To Read vent setting
  2295.         ERROR = 83
  2296.         SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[dec mem1]' Get Data With Timeout
  2297.          IF mem1 <> Nb_var83 THEN
  2298.          IF mem1 > 82 THEN
  2299.            Nb_var83   = Nb_var83
  2300.            ELSE
  2301.             Nb_var83 = mem1
  2302.              
  2303.              I2cwrite EpSDA,EpScl,$a0,113,[mem1]
  2304.            endif
  2305.            endif  
  2306.    serout2 TX,baud,["+++"]
  2307.     pause 1000
  2308.     serout2 TX,baud,["ATMY 17",CR] 'address module "17" is greenhouse
  2309.     serout2 TX,baud,["ATDL 17",CR]
  2310.     serout2 TX,baud,["ATCN",CR]
  2311.      pause 5
  2312.     SERIN2 RX,Baud,50,greenhouseSet1 ,[mem1,mem2,mem3] 'listen to the line to check for bootloader activity
  2313.      debug "   Line Busy",dec mem1,dec mem2,dec mem3, cr ,10
  2314.     pause 18000
  2315.     GOTO timeout10  'skip com  for now
  2316. greenhouseSet1:
  2317.  
  2318.   serout2 TX,Baud, [" Greenhouse "]
  2319.      'debug "sending data", cr,10
  2320.      pause Busy_Bit
  2321.     serout2 TX,baud, [":",Nb_var83]      
  2322.     ' pause 50
  2323.    
  2324. '----------Get data from Solar module--------------------
  2325.      
  2326.      
  2327.     SERIN2 RX,Baud,PauseBit,timeout11,[nb_var82,mem1] 'get temperature and user set temp from greenhouse module
  2328.  
  2329. '----------send data from Solar module to pink---------------      
  2330.     serout2 pinktx,pinkbaud, ["!NB0W82:", dec  nb_var82, CLS]
  2331.     serout2 pinktx,pinkbaud, ["!NB0W83:", dec  nb_var83, CLS] 'send current temp to Pink    
  2332.      greenhouse_busy = %00000000
  2333.     shiftout serdata, clock,0,[%00000000+ livingroom_busy+atticunit_busy +solarUnit_busy]
  2334.     shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2335.      pulsout latch,5
  2336.      debug 9," Pass"
  2337.      INPUT serdata
  2338.  
  2339. '--------------load default temps depending on heat of AC button
  2340. 'System Heat / AC    0 = AC 1 = heat
  2341. timeout_bit = 0
  2342. system1:
  2343. GOSUB read_radioButtons
  2344.       debug "</MAIN> ",cr,10,cr
  2345.      
  2346.      SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read  minisplit radio button
  2347.      ERROR = 93
  2348.      
  2349.      SERIN2  pinkRX, pinkBaud,PauseBit,timeout93,[dec mem2]
  2350.       IF mem2 <> Nb_var93 THEN
  2351.                 Nb_var93 = mem2
  2352.        IF Nb_var93 =>3 THEN
  2353.            debug "   wrong value in NbVar_93 ",dec nb_var93,cr,10
  2354.            
  2355.        GOSUB read_radioButtons
  2356.        endif  
  2357.            
  2358.                 debug "   write ", dec Nb_var93, " to eeprom",cr ,10
  2359.                
  2360.                  'serout2 pinktx,pinkbaud,["!NB0W93:",dec mem2,cls]
  2361.                  
  2362.                I2cwrite EpSDA,EpScl,$a0,108,[mem2]
  2363.                
  2364.  '
  2365.       debug "   change",cr ,10
  2366.      
  2367.       GOSUB system2
  2368.      
  2369.       GOSUB minisplitoffice
  2370.      
  2371.       GOSUB minisplitbedroom  
  2372.      
  2373.       GOSUB minisplitdiningroom
  2374.      
  2375.       GOSUB minisplitsunroom
  2376.      
  2377.       GOSUB minisplitlivingroom
  2378.   pause 3000    
  2379.  endif  
  2380.  IF outdoortf <= 19 THEN
  2381.     IF nb_var86 = 1 THEN
  2382.      Of_MS_LT = 1
  2383.       serout2 pinktx,pinkbaud,["!NB0W86:","0",CLS]
  2384.       endif
  2385.     IF nb_var88 = 1 THEN
  2386.      BR_MS_LT = 1
  2387.       serout2 pinktx,pinkbaud,["!NB0W88:","0",CLS]
  2388.       endif
  2389.     IF nb_var90 = 1 THEN
  2390.     dr_MS_LT = 1
  2391.           serout2 pinktx,pinkbaud,["!NB0W90:","0",CLS]
  2392.       endif
  2393.     IF nb_var92 = 1 THEN
  2394.      su_MS_LT = 1
  2395.            serout2 pinktx,pinkbaud,["!NB0W92:","0",CLS]
  2396.       endif
  2397.     IF nb_var71 = 1 THEN
  2398.      lr_MS_LT = 1
  2399.            serout2 pinktx,pinkbaud,["!NB0W71:","0",CLS]
  2400.       endif
  2401.    ' nb_var86=0
  2402.    ' nb_var88=0
  2403.    ' nb_var90=0
  2404.    ' nb_var92=0
  2405.     'nb_var71=0
  2406.    endif
  2407.  IF outdoortf >21 THEN
  2408.     IF  Of_MS_LT = 1  THEN
  2409.     'nb_var86 = 1
  2410.           serout2 pinktx,pinkbaud,["!NB0W86:","1",CLS]
  2411.       endif
  2412.     IF  br_MS_LT = 1  THEN
  2413.      'nb_var88 = 1
  2414.            serout2 pinktx,pinkbaud,["!NB0W88:","1",CLS]
  2415.       endif
  2416.     IF  dr_MS_LT = 1  THEN
  2417.     ' nb_var90 = 1
  2418.            serout2 pinktx,pinkbaud,["!NB0W90:","1",CLS]
  2419.       endif
  2420.     IF  su_MS_LT = 1  THEN
  2421.     'nb_var92 = 1
  2422.           serout2 pinktx,pinkbaud,["!NB0W92:","1",CLS]
  2423.       endif
  2424.     IF  lr_MS_LT = 1  THEN
  2425.     'nb_var71 = 1
  2426.           serout2 pinktx,pinkbaud,["!NB0W71:","1",CLS]
  2427.       endif
  2428.    BR_MS_LT=0
  2429.    Of_MS_LT=0
  2430.    LR_MS_LT=0
  2431.    DR_MS_LT=0
  2432.    Su_MS_LT=0
  2433.     endif
  2434. IF powerout = 0 THEN
  2435.  RH_Trend0 = outdoorrh
  2436.  RH_Trend15 = outdoorrh
  2437.  RH_Trend30 = outdoorrh
  2438.  RH_Trend45 = outdoorrh
  2439.  endif
  2440.  INPUT pinkrx
  2441. 'gosub Get_time
  2442. timeout_bit =0
  2443.    GOTO main  
  2444.    
  2445.  
  2446.    
  2447.    
  2448. Get_Time:
  2449. PAUSE 200
  2450. 'debug "   Get Time",cr,10
  2451. INPUT SDA
  2452. INPUT SCL
  2453. low SDA
  2454. DO : LOOP UNTIL (SCL=1)
  2455.    I2CWRITE SDA,SCL, I2c_WR, [0]       'get time
  2456.    I2CREAD SDA,SCL, I2C_RD, [Second,Minute,Hour,Day,Date,Month,Year]
  2457.   date = 10*(date >>4) + (date & $0f) 'convert hex to bcd
  2458.  month = 10*(month >>4) + (month & $0f)    
  2459.      '----------read Pink system time----------------    
  2460. '_________' Command To Read system time CLEAR THE CRAP FROM WEB PAGE INTERRUPT__________________________________________________
  2461. 'debug hex2 hour,":",hex2 minute," | ",dec2 month,"/",dec2 date,"/",hex2 year,Cr,10
  2462.       SEROUT2 pinkTX, pinkBaud, ["!NB0R97"]
  2463.      ERROR = 97  
  2464.       SERIN2  pinkRX, pinkBaud,PauseBit,timeout,[hex2 mem1, SKIP 1,hex2 mem2]'                                
  2465. '     --------------------------------------------------------------------------
  2466.       SEROUT2 pinkTX, pinkBaud, ["!NB0R97"] ' Command To Read system time
  2467.      
  2468.       SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 pinkhour, SKIP 1,hex2 pinkminute]' Get Data With Timeout
  2469.         pinkHour = pinkHour & %00111111
  2470.          Second = Second & %01111111  ' Enable oscillator
  2471.       IF pinkhour < 37 THEN ' = dec 25----see if time has been set on pink
  2472.         second =0
  2473.         SEROUT2 pinkTX, pinkBaud, ["!NB0R98"] ' Command To Read system day
  2474.          ERROR =98
  2475.          SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[ dec day]
  2476.         ' serout2 pinktx,pinkbaud, ["!NB0W98:",,"0",dec day,cls]
  2477.         SEROUT2 pinkTX, pinkBaud, ["!NB0R99"] ' Command To Read system date
  2478.          ERROR = 99
  2479.          SERIN2  pinkRX, pinkBaud,PauseBit,timeout2,[hex2 month,skip 1,hex2 date,skip 1,hex2 year]  
  2480.         I2CWRITE SDA,SCL, I2C_WR, [0, Second, pinkMinute, pinkHour,Day,Date,Month,Year]
  2481.           serout2 pinktx,pinkbaud, ["!NB0W97:25:25",  CLS]'clear set time
  2482.           serout2 pinktx,pinkbaud, ["!NB0W98:","0" ,dec day,CLS]
  2483.           Debug "  Time Set",dec day ,cr,10
  2484.           'goto get_time
  2485.       endif
  2486.      
  2487.       SEROUT2 pinkTX,pinkBaud, ["!NB0W99:",dec2 month,":",dec2 date,":",hex2 year,CLS]
  2488.       serout2 pinktx,pinkbaud, ["!NB0W96:", hex2 hour,":",hex2 Minute, CLS]'put time on webpage
  2489.       serout2 pinktx,pinkbaud, ["!NB0W98:","0" ,dec day,CLS]
  2490.    ' debug  hex2 hour,":",hex2 minute,cr
  2491.     'debug hex2 hour,":",hex2 minute,"  ", hex2 month,"/",hex2 date,"/",hex2 year,cr,10
  2492.  '--------SUNRISE/SUNSET LCD BACKLIGHT-----------------------------------
  2493.                
  2494. 'sunrise hour
  2495. IF month =1 THEN month_multiplier =0
  2496. IF month =2 THEN month_multiplier =31
  2497. IF month =3 THEN month_multiplier =59
  2498. IF month =4 THEN month_multiplier =90
  2499. IF month =5 THEN month_multiplier =120
  2500. IF month =6 THEN month_multiplier =151
  2501. IF month =7 THEN month_multiplier =181
  2502. IF month =8 THEN month_multiplier =212
  2503. IF month =9 THEN month_multiplier =243
  2504. IF month =10 THEN month_multiplier =273
  2505. IF month =11 THEN month_multiplier =304
  2506. IF month =12 THEN month_multiplier =334
  2507.  
  2508. day_of_year = date + month_multiplier
  2509. 'sunrise hr
  2510. IF month <=6 THEN
  2511. 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
  2512. 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
  2513. 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
  2514. 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
  2515. 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
  2516. 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
  2517. endif
  2518.  IF month >=7 THEN
  2519. 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
  2520. 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
  2521. 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
  2522. 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
  2523. 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
  2524. 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
  2525.  endif
  2526.  
  2527. 'sunrise min
  2528. IF month <=6 THEN
  2529. 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
  2530. 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
  2531. 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
  2532. 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
  2533. 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
  2534. 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
  2535. endif
  2536. IF month >=7 THEN
  2537. 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
  2538. 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
  2539. 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
  2540. 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
  2541. 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
  2542. 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
  2543. endif
  2544. 'sunset hour (24 hr)
  2545. IF month <=6 THEN
  2546. 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
  2547. 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
  2548. 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
  2549. 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
  2550. 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
  2551. 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
  2552. endif
  2553.  IF month >=7 THEN
  2554. 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
  2555. 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
  2556. 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
  2557. 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
  2558. 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
  2559. 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
  2560.  endif
  2561. 'sunset minute
  2562. IF month <=6 THEN
  2563. 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
  2564. 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
  2565. 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
  2566. 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
  2567. 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
  2568. 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
  2569. endif
  2570. IF month >=7 THEN
  2571. 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
  2572. 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
  2573. 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
  2574. 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
  2575. 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
  2576. 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
  2577. endif
  2578. hoursunset_hour = sunset_hour -$C
  2579.  
  2580. sunrise_hour =(((sunrise_hour / 10) << 4) + (sunrise_hour // 10))'convert dec to bcd
  2581. sunrise_min = (((sunrise_min / 10) << 4) + (sunrise_min // 10))
  2582. sunset_hour = (((sunset_hour / 10) << 4) + (sunset_hour // 10))
  2583. sunset_min = (((sunset_min / 10) << 4) + (sunset_min // 10))
  2584. IF hour = sunrise_hour AND minute = sunrise_min THEN backlight_bit = 1
  2585. IF hour = sunset_hour AND minute = sunset_min THEN backlight_bit = 0
  2586.  
  2587.  
  2588. serout2 pinktx,pinkbaud, ["!NB0W94:",hex2 Sunrise_hour,":",hex2 Sunrise_min,CLS]  
  2589. serout2 pinktx,pinkbaud, ["!NB0W95:",hex2 Sunset_hour,":",hex2 Sunset_min, CLS]  
  2590.    
  2591.    RETURN
  2592.    
  2593. timeout:  
  2594. GOSUB crankit                                    
  2595.   'gosub system2
  2596.  debug "   (Timeout)",hex2 hour,":",hex2 minute," | ",dec2 month,"/",dec2 date,"/",hex2 year,Cr,10  
  2597.  Debug "  Get time Error ", dec ERROR, cr,10
  2598.  timeout_bit = timeout_bit + 1
  2599.  IF timeout_bit =5 THEN  
  2600.     debug "   (Timeout ) " ,hex2 hour,":",hex2 minute,cr ,10
  2601.         timeout_bit =0
  2602.     debug "   Rebooting..............",cr ,10
  2603.      low pinkreset
  2604.     debug "   Resetting PINK",cr,10
  2605.     pause 4000
  2606.     high pinkreset
  2607.     pause 5000
  2608. @ RESET
  2609.        
  2610.  endif
  2611.     pause 500
  2612.     SERIN2  pinkRX, pinkBaud,PauseBit,office,[ mem1,mem2,mem3,mem1,mem2,mem3]
  2613.     debug "   PINK stuff",cr,10
  2614.      timeout_bit =0
  2615.   GOTO office
  2616.  
  2617.  
  2618.  
  2619. timeout2:                                                  
  2620.   INPUT pinkrx
  2621.     debug cr,"(timeout2) " ,hex2 hour,":",hex2 minute,"   Error # ", dec ERROR,cr,10
  2622.    
  2623.      
  2624.         timeout_bit = timeout_bit + 1
  2625.    IF timeout_bit =<3 THEN
  2626.        SERIN2  pinkRX, pinkBaud,PauseBit,endtimeout,[ mem1]
  2627.        endif
  2628.      
  2629.     IF timeout_bit = 4 THEN GOSUB crankit    
  2630.     IF timeout_bit = 5 THEN GOTO setup
  2631.      
  2632.      
  2633.        
  2634.                              
  2635.     ' if timeout_bit = 6 then
  2636.      
  2637.      ' PAUSE 500
  2638.    ' SERIN2  pinkRX, pinkBaud,PauseBit,endtimeout,[ mem1]
  2639.          'debug "   PINK stuff ",dec mem1, cr,10
  2640. endtimeout:    
  2641.    
  2642.    ' endif
  2643. ' if timeout_bit = 7 then goto setup
  2644.  IF timeout_bit = 8 THEN
  2645.  debug "ReSetting.......",cr,10
  2646. @ RESET
  2647.   endif
  2648.  IF timeout_bit =6 THEN  
  2649.      low pinkreset
  2650.    debug "   Resetting PINK",cr,10
  2651.    pause 4000
  2652.    high pinkreset
  2653.   pause 5000    
  2654.        
  2655.     debug "   Rebooting..............",cr ,10
  2656.   timeout_bit =0
  2657. @ RESET
  2658.        
  2659.   endif
  2660.  
  2661.  
  2662.    'TIMEOUT_BIT = 0
  2663. SELECT CASE ERROR
  2664. CASE 2,3,4,5,6,7,8,9,10,51,52,53,54,86
  2665.     GOTO bedroom
  2666. CASE 11,12,13,14,15,16,17,18,19,20,55,56,57,58,88
  2667.     GOTO diningroom
  2668. CASE 21,22,23,24,25,26,27,28,29,30,59,60,61,62,90
  2669.     GOTO sunroom
  2670. CASE 31,32,33,34,35,36,37,38,39,40,63,64,65,66,92
  2671.     GOTO livingroom
  2672. CASE 41,42,43,44,45,46,47,48,49,50,67,68,69,70,93
  2673.     GOTO attic_outdoor_unit
  2674. CASE 97
  2675.     GOTO office
  2676.  END SELECT
  2677.  GOTO main
  2678.  
  2679. timeout3:
  2680. 'pause 5000
  2681.  
  2682. ' debug "Office Busy" ,cr
  2683.  shiftout serdata, clock,0,[Livingroom_busy]
  2684.  shiftout serdata, clock,0,[%10000000]
  2685.  pulsout latch,5
  2686.  INPUT serdata
  2687.    office_busy = %10000000
  2688.  'debug hex2 hour,":",hex2 minute,cr,cr
  2689.  debug 9,"*Fail*" ,cr,10  
  2690.   GOTO bedroom
  2691.  
  2692. timeout5:
  2693. 'pause 5000
  2694.  
  2695.  ' debug "Bedroom Busy",cr
  2696.   shiftout serdata, clock,0,[Livingroom_busy+ Atticunit_busy+solarUnit_busy]
  2697.   shiftout serdata, clock,0,[%00100000]
  2698.  pulsout latch,5
  2699.  INPUT serdata
  2700.   bedroom_busy = %00100000
  2701.   debug 9,"*Fail*"  
  2702.   GOTO diningroom  
  2703. timeout6:
  2704.  'pause 5000  
  2705.  ' debug "DR Busy",cr
  2706.   shiftout serdata, clock,0,[Livingroom_busy+ Atticunit_busy+solarUnit_busy]
  2707.   shiftout serdata, clock,0,[%00001000]
  2708.  pulsout latch,5
  2709.  INPUT serdata
  2710.   diningroom_busy = %00001000
  2711.   debug 9,"*Fail*" ,cr,10  
  2712.   GOTO  sunroom
  2713. timeout7:
  2714. 'pause 5000
  2715.  ' debug "Sunroom Busy", Cr
  2716.   shiftout serdata, clock,0,[Livingroom_busy+ Atticunit_busy+solarUnit_busy]
  2717.   shiftout serdata, clock,0,[%00000010]
  2718.  pulsout latch,5
  2719.  INPUT serdata
  2720.    sunroom_busy = %00000010
  2721.    debug 9,"*Fail*"  
  2722.   GOTO livingroom
  2723. timeout8:
  2724. 'pause 5000
  2725.   'debug "Livingroom Busy", Cr
  2726.   shiftout serdata, clock,0,[%10000000]
  2727.   shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2728.  pulsout latch,5
  2729.  INPUT serdata
  2730.    Livingroom_busy = %10000000
  2731.    debug 9,"*Fail*" ,cr,10  
  2732.   GOTO attic_outdoor_unit    
  2733.  timeout9:
  2734.   'pause 5000
  2735.   shiftout serdata, clock,0,[%00100000]
  2736.   shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2737.  pulsout latch,5
  2738.  INPUT serdata
  2739.    atticUnit_busy = %00100000
  2740.    debug 9,"*Fail*"  
  2741.   GOTO solar
  2742.  timeout10:
  2743.  'debug "   timeout ",cr,10
  2744.   ' pause 1000
  2745.   shiftout serdata, clock,0,[%00001000]
  2746.   shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2747.  pulsout latch,5
  2748.  INPUT serdata
  2749.    solarUnit_busy = %00001000
  2750.    debug 9,"*Fail*" ,cr,10  
  2751.   GOTO greenhouse
  2752. timeout11:
  2753.    ' pause 1000
  2754.   shiftout serdata, clock,0,[%00000010]
  2755.   shiftout serdata, clock,0,[ office_busy + bedroom_busy + diningroom_Busy + Sunroom_busy]
  2756.  pulsout latch,5
  2757.  INPUT serdata
  2758.    greenhouse_Busy = %00000010
  2759.    debug 9,"*Fail*"  
  2760.   GOTO system1  
  2761.  timeout93:
  2762.  
  2763. 'gosub system2
  2764.  
  2765. debug "*Fail*", cr,10
  2766. Debug "   Error ", dec ERROR, cr,10
  2767. debug "   ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
  2768. GOSUB crankit
  2769. timeout_bit = timeout_bit + 1
  2770.   shiftout serdata, clock,0,[%01010000]
  2771.         shiftout serdata, clock,0,[%01010101]
  2772.         pulsout latch,5
  2773.         INPUT serdata
  2774.          I2cread Epsda,Epscl,$A0,108,[mem1]   'system heat / AC
  2775.          pause 5
  2776.        serout2 pinktx,pinkbaud,["!NB0W93:",dec mem1,CLS]
  2777.        nb_var93 = mem1
  2778.           I2cread Epsda,Epscl,$A0,101,[mem1]   'office  on off
  2779.         pause 5  
  2780.        serout2 pinktx,pinkbaud,["!NB0W86:",dec mem1,CLS]
  2781.        nb_var86 = mem1
  2782.  
  2783.           I2cread Epsda,Epscl,$A0,103,[mem1]   'bedroom on off
  2784.           pause 5
  2785.        serout2 pinktx,pinkbaud,["!NB0W88:",dec mem1,CLS]
  2786.        nb_var88 = mem1
  2787.           I2cread Epsda,Epscl,$A0,105,[mem1]   'diningroom  on off
  2788.           pause 5
  2789.        serout2 pinktx,pinkbaud,["!NB0W90:",dec mem1,CLS]
  2790.        nb_var90 = mem1
  2791.  
  2792.           I2cread Epsda,Epscl,$A0,107,[mem1]   'sunroom    on off
  2793.            pause 5
  2794.        serout2 pinktx,pinkbaud,["!NB0W92:",dec mem1,CLS]
  2795.        nb_var92 = mem1
  2796.  
  2797.           I2cread Epsda,Epscl,$A0,109,[mem1]   'livingroom   on off
  2798.           pause 5
  2799.        serout2 pinktx,pinkbaud,["!NB0W71:",dec mem1,CLS]
  2800.        
  2801.        nb_var71 = mem1
  2802.  
  2803.        debug "   ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10
  2804.  IF timeout_bit = 3 THEN
  2805.  GOSUB radioButton_correction
  2806.  endif
  2807.  IF timeout_bit = 4 THEN  
  2808.   timeout_bit =0
  2809.   debug "   Rebooting-------------",cr ,10
  2810.      low pinkreset
  2811.    debug "   Resetting PINK",cr,10
  2812.    pause 4000
  2813.    high pinkreset
  2814.   pause 5000
  2815. '@ reset
  2816.        
  2817.  
  2818.   endif
  2819.   'gosub system2
  2820.   GOTO main
  2821.        
  2822.  
  2823.  MiniSPlitOffice:
  2824.  debug "   MS Office ",Cr,10
  2825.         IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,2,[nb_var02]
  2826.         IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,119,[nb_var02]
  2827. debug "   Set office ",hex2 hour,":",hex2 minute," | ",dec nb_var02," Mode-",dec Office_mode,Cr,10  
  2828.  IF Nb_var86 =0  THEN  RETURN 'unit on/off
  2829. 'pause 1000  
  2830.  
  2831.   IF Nb_var93 = 0 THEN    'AC
  2832.        MS_Office = Nb_var02
  2833.        
  2834.             IF MS_Office > 78 THEN MS_Office =78
  2835.             IF  MS_Office =< 72 THEN  MS_Office = 72
  2836.             MS_Office = MS_Office-72
  2837.        
  2838. LOOKUP  MS_Office,[$3A,$3A,$3B,$3B,$3C,$3C,$3D,$3D], result
  2839.             endif        
  2840. IF Nb_var93 = 1 THEN    'heat
  2841.         MS_Office = Nb_var02
  2842.        
  2843.             IF MS_Office > 70 THEN MS_Office =70
  2844.             IF  MS_Office =< 60 THEN  MS_Office = 60
  2845.             MS_Office = MS_Office-60
  2846.          
  2847. LOOKUP  MS_Office,[$33,$33,$34,$34,$35,$35,$36,$36,$37,$37,$38,$38], result
  2848.             endif          
  2849.   serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2850.   pause 2500
  2851.  ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2852.   'pause 5000
  2853.   debug "   Office set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var02,"(",hex2 result,")", cr ,10        
  2854. RETURN
  2855.  
  2856. minisplitbedroom:
  2857. debug "   MS Bedroom ",Cr,10
  2858.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,93,[Nb_var12]
  2859.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,126,[Nb_var12]
  2860. debug "   Set Bedroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var12,Cr,10  
  2861.  IF Nb_var88 =0  THEN RETURN
  2862. 'SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read  minisplit radio button
  2863.    ' SERIN2  pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]    
  2864. IF Nb_var93 = 0 THEN    'AC
  2865.         MS_Bedroom = Nb_var12
  2866.        
  2867.             IF MS_Bedroom > 78 THEN MS_Bedroom =78
  2868.             IF MS_Bedroom =< 72 THEN  MS_Bedroom = 72
  2869.             MS_Bedroom = MS_Bedroom-72
  2870.            'debug dec MS_Bedroom,cr
  2871. LOOKUP  MS_Bedroom,[$45,$45,$46,$46,$47,$47,$48,$48], result
  2872.             endif        
  2873. IF Nb_var93 = 1 THEN    'heat
  2874.         MS_Bedroom = Nb_var12
  2875.        
  2876.             IF MS_Bedroom > 70 THEN MS_Bedroom =70
  2877.             IF MS_Bedroom =< 60 THEN MS_Bedroom = 60
  2878.             MS_Bedroom = MS_Bedroom-60
  2879.            'debug dec MS_Bedroom,cr
  2880. LOOKUP  MS_Bedroom,[$43,$43,$42,$42,$41,$41,$40,$40,$3F,$3F,$3E,$3E], result
  2881.             endif          
  2882.   serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2883.   pause 2500
  2884.   'serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2885.  ' pause 5000
  2886.   debug "   Bedroom set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var12,"(",hex2 result,")", cr ,10          
  2887. RETURN
  2888.  
  2889. minisplitdiningroom:
  2890. debug "   MS Diningroom ",Cr,10
  2891.             IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,94,[Nb_var22]
  2892.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,133,[Nb_var22]
  2893. debug "   Set Diningroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var22,Cr,10
  2894. IF Nb_var90 =0  THEN RETURN
  2895. ' SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read  minisplit radio button
  2896.    ' SERIN2  pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
  2897. IF Nb_var93 = 0 THEN    'AC
  2898.         MS_diningroom = Nb_var22
  2899.        
  2900.             IF MS_diningroom > 78 THEN MS_diningroom =78
  2901.             IF MS_diningroom =< 72 THEN MS_diningroom = 72
  2902.             MS_diningroom = MS_diningroom-72
  2903.            
  2904. LOOKUP  MS_diningroom,[$27,$27,$26,$26,$25,$25,$24,$24], result
  2905.             endif        
  2906. IF Nb_var93 = 1 THEN    'heat
  2907.         MS_diningroom = Nb_var22
  2908.        
  2909.             IF MS_diningroom > 70 THEN MS_diningroom = 70
  2910.             IF MS_diningroom =< 60 THEN MS_diningroom = 60
  2911.            MS_diningroom = MS_diningroom-60
  2912.            'debug dec MS_diningroom,cr
  2913. LOOKUP  MS_diningroom,[$1D,$1D,$1E,$1E,$4E,$4E,$20,$20,$21,$21,$22,$22],result
  2914.             endif          
  2915.    serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2916.    pause 2500
  2917.   ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2918.    'pause 5000
  2919.    debug "   DiningRoom set at: ", hex2 hour,":",hex2 minute," To: ",dec Nb_var22,"(",hex2 result,")", cr,10        
  2920. RETURN
  2921.  
  2922. MiniSplitSunRoom:
  2923. debug "   MS Sunroom ",Cr,10
  2924.              IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,95,[Nb_var32]
  2925.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,140,[Nb_var32]
  2926. debug "   Set Sunroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var32,Cr,10
  2927. IF Nb_var92 =0  THEN RETURN
  2928.  ' SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read  minisplit radio button
  2929.   '  SERIN2  pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
  2930.   IF Nb_var93 = 0 THEN    'AC
  2931.         MS_SunRoom  = Nb_var32
  2932.        
  2933.             IF MS_SunRoom > 78 THEN MS_SunRoom =78
  2934.             IF MS_SunRoom =< 72 THEN MS_SunRoom = 72
  2935.             MS_SunRoom = MS_SunRoom-72
  2936.            
  2937. LOOKUP  MS_SunRoom,[$2B,$2B,$2A,$2A,$29,$29,$28,$28], result
  2938.             endif        
  2939. IF Nb_var93 = 1 THEN    'heat
  2940.         MS_SunRoom = Nb_var32
  2941.        
  2942.             IF MS_SunRoom > 70 THEN MS_SunRoom = 70
  2943.             IF MS_SunRoom =< 60 THEN MS_SunRoom = 60
  2944.            MS_SunRoom = MS_SunRoom-60
  2945.            
  2946. LOOKUP  MS_SunRoom,[$32,$32,$31,$31,$30,$30,$2F,$2F,$2E,$2E,$2D,$2D], result
  2947.             endif
  2948.      serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2949.      pause 2500
  2950.     ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2951.     ' pause 5000                
  2952.      debug "   SunRoom set at: ",  hex2 hour,":",hex2 minute," To: ",dec Nb_var32,"(",hex2 result,")", cr ,10
  2953.              
  2954. RETURN
  2955.   MiniSplitlivingRoom:
  2956.   debug "   MS Livingroom ",Cr,10
  2957.               IF Nb_var93 = 0 THEN I2cwrite EpSDA,EpScl,$a0,96,[Nb_var42]
  2958.             IF Nb_var93 = 1 THEN I2cwrite EpSDA,EpScl,$a0,147,[Nb_var42]
  2959. debug "   Set Livingroom ",hex2 hour,":",hex2 minute," | ",dec Nb_var42,Cr,10
  2960. IF Nb_var71 =0  THEN RETURN
  2961.   'SEROUT2 pinkTX, pinkBaud, ["!NB0R93"] ' Command To Read  minisplit radio button
  2962.    ' SERIN2  pinkRX, pinkBaud,PauseBit,timeout1,[dec Nb_var93]
  2963.   IF Nb_var93 = 0 THEN    'AC
  2964.         MS_LivingRoom  = Nb_var42
  2965.        
  2966.             IF MS_LivingRoom > 78 THEN MS_LivingRoom =78
  2967.             IF MS_LivingRoom =< 72 THEN MS_LivingRoom = 72
  2968.             MS_LivingRoom = MS_LivingRoom-72
  2969.            
  2970. LOOKUP  MS_LivingRoom,[$12,$12,$13,$13,$4A,$4A,$49,$49], result
  2971.             endif        
  2972. IF Nb_var93 = 1 THEN    'heat
  2973.         MS_LivingRoom = Nb_var42
  2974.        
  2975.             IF MS_LivingRoom > 70 THEN MS_LivingRoom = 70
  2976.             IF MS_LivingRoom =< 60 THEN MS_LivingRoom = 60
  2977.            MS_LivingRoom = MS_LivingRoom-60
  2978.            
  2979. LOOKUP  MS_LivingRoom,[$1B,$1B,$1A,$1A,$4B,$4B,$18,$18,$4D,$4D,$4C,$4C], result
  2980.             endif
  2981.      serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]
  2982.      pause 3500
  2983.     ' serout2 PortB.2,Insteon, [$02,$62,$00,$00,result,$CF,$11,$00]  
  2984.      'pause 5000                
  2985.      debug "   LivingRoom set at: ",  hex2 hour,":",hex2 minute," To: ",dec Nb_var42,"(",hex2 result,")", cr,10
  2986.        
  2987.  
  2988.   ' Set MESSAGE CONTENT
  2989.   'SEROUT2 pinkTX, pinkBaud, ["!NB0WEC:Livingroom set at ",  hex2 hour,":",hex2 minute," To: ",dec Nb_var42," (",hex2 result,")", CLS]        
  2990.   'SEROUT2 pinkTX, pinkBaud, ["!NB0SM"]           ' Command To Send E-Mail
  2991.  
  2992.  
  2993. RETURN
  2994.  
  2995. read_radioButtons:
  2996. debug 9,  "Read Radio buttons "
  2997. 'pause 200  
  2998. 'debug "read radio buttons...", dec error,cr  ,10        
  2999. 'office ON/OFF       1 = on      0 = off
  3000.   'pause 100  
  3001.    SEROUT2 pinkTX, pinkBaud, ["!NB0R86"] ' Command To Read office minisplit radio button
  3002.       ERROR = 86
  3003.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
  3004.       IF mem1>1 THEN GOSUB radioButton_correction
  3005.       IF mem1 <> Nb_var86 THEN
  3006.                 Nb_var86 = mem1
  3007.                 I2cwrite EpSDA,EpScl,$a0,101,[mem1]
  3008.                 IF Nb_var86 =0  THEN
  3009.                  serout2 PortB.2,Insteon, [$02,$62,$00,$00,$39,$CF,$11,$00]
  3010.                  pause 2500
  3011.                  serout2 PortB.2,Insteon, [$02,$62,$00,$00,$39,$CF,$11,$00]
  3012.                  debug "   Office off ",hex2 hour,":",hex2 minute,cr,10
  3013.                  Pause 1000
  3014.                  endif
  3015.                 IF Nb_var86 =1 THEN GOSUB minisplitoffice
  3016.                 endif      
  3017.     'bedroom ON/OFF
  3018.    ' pause 100
  3019.    SEROUT2 pinkTX, pinkBaud, ["!NB0R88"] ' Command To Read bedroom minisplit radio button
  3020.     ERROR = 88
  3021.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
  3022.     IF mem1>1 THEN GOSUB radioButton_correction  
  3023.       IF mem1 <> Nb_var88 THEN
  3024.                 Nb_var88 = mem1
  3025.                 I2cwrite EpSDA,EpScl,$a0,103,[mem1]
  3026.                 IF Nb_var88 =0  THEN
  3027.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$44,$CF,$11,$00]
  3028.                 Pause 2500
  3029.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$44,$CF,$11,$00]
  3030.                
  3031.                  debug "   Bedroom off ",hex2 hour,":",hex2 minute,cr,10
  3032.                 Pause 1000
  3033.                 endif
  3034.                 IF Nb_var88 =1 THEN GOSUB minisplitbedroom
  3035.                 endif
  3036.              
  3037.     'dining room ON/OFF
  3038.    ' pause 100
  3039.    SEROUT2 pinkTX, pinkBaud, ["!NB0R90"] ' Command To Read office minisplit radio button
  3040.     ERROR = 90
  3041.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
  3042.       IF mem1>1 THEN GOSUB radioButton_correction        
  3043.       IF mem1 <> Nb_var90 THEN
  3044.                 Nb_var90 = mem1
  3045.                 I2cwrite EpSDA,EpScl,$a0,105,[mem1]
  3046.                 IF Nb_var90 =0  THEN
  3047.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$23,$CF,$11,$00]
  3048.                 pause 2500
  3049.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$23,$CF,$11,$00]
  3050.                  debug "   DiningRoom off ",hex2 hour,":",hex2 minute,cr,10
  3051.                 Pause 1000
  3052.                 endif
  3053.                 IF Nb_var90 =1 THEN GOSUB minisplitdiningroom
  3054.                 endif
  3055.                
  3056.  'sunroom ON/OFF
  3057.  'pause 100
  3058.    SEROUT2 pinkTX, pinkBaud, ["!NB0R92"] ' Command To Read office minisplit radio button
  3059.     ERROR = 92
  3060.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
  3061.           IF mem1>1 THEN GOSUB radioButton_correction      
  3062.       IF mem1 <> Nb_var92 THEN
  3063.                 Nb_var92 = mem1
  3064.                 I2cwrite EpSDA,EpScl,$a0,107,[mem1]
  3065.                 IF Nb_var92 =0  THEN
  3066.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$2C,$CF,$11,$00]
  3067.                 Pause 2500
  3068.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$2C,$CF,$11,$00]
  3069.                  debug "   Sunroom off ",hex2 hour,":",hex2 minute,cr,10
  3070.                 pause 1000
  3071.                 endif
  3072.                 IF Nb_var92 =1 THEN GOSUB minisplitsunroom
  3073.                 endif                
  3074.  'livingroom ON/OFF
  3075.  'pause 100
  3076.    SEROUT2 pinkTX, pinkBaud, ["!NB0R71"] ' Command To Read office minisplit radio button
  3077.    ERROR = 71
  3078.     SERIN2  pinkRX, pinkBaud,PauseBit,timeout93,[dec mem1]
  3079.             IF mem1>1 THEN GOSUB radioButton_correction    
  3080.       IF mem1 <> Nb_var71 THEN
  3081.                  'debug dec nb_var71, cr
  3082.                 Nb_var71 = mem1
  3083.                 I2cwrite EpSDA,EpScl,$a0,109,[mem1]
  3084.                 IF Nb_var71 =0  THEN
  3085.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$1C,$CF,$11,$00]
  3086.                 Pause 3500
  3087.                 serout2 PortB.2,Insteon,[$02,$62,$00,$00,$1C,$CF,$11,$00]
  3088.                  debug "   Livingroom off ",hex2 hour,":",hex2 minute,cr,10
  3089.                 pause 1000
  3090.                 endif
  3091.                 IF Nb_var71 =1 THEN GOSUB minisplitlivingroom
  3092.                 endif
  3093.                  
  3094.  debug 9, " Pass",Cr,10
  3095. RETURN
  3096.      
  3097.    
  3098. radioButton_correction:
  3099.          Debug "   Radio Button Correction in progress"
  3100.          debug "   ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10    
  3101.    
  3102.          I2cread Epsda,Epscl,$A0,108,[nb_var93]   'system heat / AC
  3103.          IF nb_var93 = 1 THEN
  3104.        serout2 pinktx,pinkbaud,["!NB0W93:","1",CLS]
  3105.        endif
  3106.                 IF nb_var93 = 0 THEN
  3107.        serout2 pinktx,pinkbaud,["!NB0W93:","0",CLS]
  3108.        endif
  3109.        'debug dec nb_var93, cr
  3110.           I2cread Epsda,Epscl,$A0,101,[nb_var86]   'office  on off
  3111.        serout2 pinktx,pinkbaud,["!NB0W86:",dec nb_var86,CLS]
  3112.           I2cread Epsda,Epscl,$A0,103,[nb_var88]   'bedroom on off
  3113.        serout2 pinktx,pinkbaud,["!NB0W88:",dec nb_var88,CLS]
  3114.           I2cread Epsda,Epscl,$A0,105,[nb_var90]   'diningroom  on off
  3115.        serout2 pinktx,pinkbaud,["!NB0W90:",dec nb_var90,CLS]
  3116.           I2cread Epsda,Epscl,$A0,107,[nb_var92]   'sunroom    on off
  3117.        serout2 pinktx,pinkbaud,["!NB0W92:",dec nb_var92,CLS]
  3118.           I2cread Epsda,Epscl,$A0,109,[nb_var71]   'livingroom   on off
  3119.        serout2 pinktx,pinkbaud,["!NB0W71:",dec nb_var71,CLS]
  3120.        debug "   ",dec nb_var93," ",dec nb_var86," ",dec nb_var88," ",dec nb_var90," ",dec nb_var92," ",dec nb_var71,cr,10    
  3121.    
  3122.       RETURN
  3123.    
  3124.  system2:
  3125.  
  3126.      
  3127.    debug "<System 2- Loading temps in pink "      
  3128.         IF Nb_var93 = 0 THEN
  3129.  'office  
  3130.    
  3131.         I2cread Epsda,Epscl,$A0,2,[nb_var02]   'current temp
  3132.        serout2 pinktx,pinkbaud,["!NB0W02:",dec nb_var02,CLS]
  3133.         I2cread Epsda,Epscl,$A0,5,[nb_var04]   'wake temp
  3134.        serout2 pinktx,pinkbaud,["!NB0W04:",dec nb_var04,CLS]
  3135.          I2cread Epsda,Epscl,$A0,8,[nb_var06]  'leave temp
  3136.        serout2 pinktx,pinkbaud,["!NB0W06:",dec nb_var06,CLS]
  3137.          I2cread Epsda,Epscl,$A0,11,[nb_var08]   'return temp
  3138.        serout2 pinktx,pinkbaud,["!NB0W08:",dec nb_var08,CLS]
  3139.          I2cread Epsda,Epscl,$A0,14,[nb_var10]      'sleep temp
  3140.        serout2 pinktx,pinkbaud,["!NB0W10:",dec nb_var10,CLS]
  3141.          I2cread Epsda,Epscl,$A0,65,[nb_var52]
  3142.        serout2 pinktx,pinkbaud,["!NB0W52:",dec nb_var52,CLS]
  3143.           I2cread Epsda,Epscl,$A0,68,[nb_var54]
  3144.        serout2 pinktx,pinkbaud,["!NB0W54:",dec nb_var54,CLS]
  3145.        debug "."
  3146. 'bedroom
  3147.         I2cread Epsda,Epscl,$A0,93,[nb_var12]   'current temp
  3148.        serout2 pinktx,pinkbaud,["!NB0W12:",dec nb_var12,CLS]
  3149.         I2cread Epsda,Epscl,$A0,17,[nb_var14]   'wake temp
  3150.        serout2 pinktx,pinkbaud,["!NB0W14:",dec nb_var14,CLS]
  3151.        I2cread Epsda,Epscl,$A0,20,[nb_var16]  'leave temp
  3152.        serout2 pinktx,pinkbaud,["!NB0W16:",dec nb_var16,CLS]
  3153.        I2cread Epsda,Epscl,$A0,23,[nb_var18]   'return temp
  3154.        serout2 pinktx,pinkbaud,["!NB0W18:",dec nb_var18,CLS]
  3155.        I2cread Epsda,Epscl,$A0,26,[nb_var20]      'sleep temp
  3156.        serout2 pinktx,pinkbaud,["!NB0W20:",dec nb_var20,CLS]
  3157.         I2cread Epsda,Epscl,$A0,71,[nb_var56]
  3158.        serout2 pinktx,pinkbaud,["!NB0W56:",dec nb_var56,CLS]
  3159.        I2cread Epsda,Epscl,$A0,74,[nb_var58]
  3160.        serout2 pinktx,pinkbaud,["!NB0W58:",dec nb_var58,CLS]
  3161.        debug "."
  3162. 'diningroom
  3163.         I2cread Epsda,Epscl,$A0,94,[nb_var22]   'current temp
  3164.        serout2 pinktx,pinkbaud,["!NB0W22:",dec nb_var22,CLS]
  3165.        I2cread Epsda,Epscl,$A0,29,[nb_var24]   'wake temp
  3166.        serout2 pinktx,pinkbaud,["!NB0W24:",dec nb_var24,CLS]
  3167.         I2cread Epsda,Epscl,$A0,32,[nb_var26]  'leave temp
  3168.        serout2 pinktx,pinkbaud,["!NB0W26:",dec nb_var26,CLS]
  3169.         I2cread Epsda,Epscl,$A0,35,[nb_var28]   'return temp
  3170.        serout2 pinktx,pinkbaud,["!NB0W28:",dec nb_var28,CLS]
  3171.         I2cread Epsda,Epscl,$A0,38,[nb_var30]      'sleep temp
  3172.        serout2 pinktx,pinkbaud,["!NB0W30:",dec nb_var30,CLS]
  3173.          I2cread Epsda,Epscl,$A0,77,[nb_var60]
  3174.        serout2 pinktx,pinkbaud,["!NB0W60:",dec nb_var60,CLS]
  3175.          I2cread Epsda,Epscl,$A0,80,[nb_var62]
  3176.        serout2 pinktx,pinkbaud,["!NB0W62:",dec nb_var62,CLS]
  3177.        debug "."  
  3178. 'sunroom
  3179.  
  3180.          I2cread Epsda,Epscl,$A0,95,[nb_var32]   'current setting
  3181.        serout2 pinktx,pinkbaud,["!NB0W32:",dec nb_var32,CLS]      
  3182.         I2cread Epsda,Epscl,$A0,41,[nb_var34]   'wake temp
  3183.        serout2 pinktx,pinkbaud,["!NB0W34:",dec nb_var34,CLS]      
  3184.         I2cread Epsda,Epscl,$A0,44,[nb_var36]  'leave temp
  3185.        serout2 pinktx,pinkbaud,["!NB0W36:",dec nb_var36,CLS]      
  3186.         I2cread Epsda,Epscl,$A0,47,[nb_var38]   'return temp
  3187.        serout2 pinktx,pinkbaud,["!NB0W38:",dec nb_var38,CLS]
  3188.         I2cread Epsda,Epscl,$A0,50,[nb_var40]      'sleep temp
  3189.        serout2 pinktx,pinkbaud,["!NB0W40:",dec nb_var40,CLS]
  3190.         I2cread Epsda,Epscl,$A0,83,[nb_var64]
  3191.        serout2 pinktx,pinkbaud,["!NB0W64:",dec nb_var64,CLS]        
  3192.         I2cread Epsda,Epscl,$A0,86,[nb_var66]
  3193.        serout2 pinktx,pinkbaud,["!NB0W66:",dec nb_var66,CLS]
  3194.        debug "."
  3195. 'livingroom      
  3196.         I2cread Epsda,Epscl,$A0,96,[nb_var42]   'current setting
  3197.        serout2 pinktx,pinkbaud,["!NB0W42:",dec nb_var42,CLS]
  3198.         I2cread Epsda,Epscl,$A0,53,[nb_var44]   'wake temp
  3199.        serout2 pinktx,pinkbaud,["!NB0W44:",dec nb_var44,CLS]
  3200.         I2cread Epsda,Epscl,$A0,56,[nb_var46]  'leave temp
  3201.        serout2 pinktx,pinkbaud,["!NB0W46:",dec nb_var46,CLS]
  3202.         I2cread Epsda,Epscl,$A0,59,[nb_var48]   'return temp
  3203.        serout2 pinktx,pinkbaud,["!NB0W48:",dec nb_var48,CLS]
  3204.         I2cread Epsda,Epscl,$A0,62,[nb_var50]      'sleep temp
  3205.        serout2 pinktx,pinkbaud,["!NB0W50:",dec nb_var50,CLS]
  3206.         I2cread Epsda,Epscl,$A0,89,[nb_var68]
  3207.        serout2 pinktx,pinkbaud,["!NB0W68:",dec nb_var68,CLS]
  3208.         I2cread Epsda,Epscl,$A0,92,[nb_var70]
  3209.        serout2 pinktx,pinkbaud,["!NB0W70:",dec nb_var70,CLS]
  3210.        debug "."      
  3211.        endif
  3212. IF Nb_var93 = 1 THEN
  3213.  'office
  3214.  
  3215.         I2cread Epsda,Epscl,$A0,119,[nb_var02]   'current temp
  3216.        serout2 pinktx,pinkbaud,["!NB0W02:",dec nb_var02,CLS]
  3217.         I2cread Epsda,Epscl,$A0,120,[nb_var04]   'wake temp
  3218.        serout2 pinktx,pinkbaud,["!NB0W04:",dec nb_var04,CLS]
  3219.          I2cread Epsda,Epscl,$A0,121,[nb_var06]  'leave temp
  3220.        serout2 pinktx,pinkbaud,["!NB0W06:",dec nb_var06,CLS]
  3221.          I2cread Epsda,Epscl,$A0,122,[nb_var08]   'return temp
  3222.        serout2 pinktx,pinkbaud,["!NB0W08:",dec nb_var08,CLS]
  3223.          I2cread Epsda,Epscl,$A0,123,[nb_var10]      'sleep temp
  3224.        serout2 pinktx,pinkbaud,["!NB0W10:",dec nb_var10,CLS]
  3225.          I2cread Epsda,Epscl,$A0,124,[nb_var52]
  3226.        serout2 pinktx,pinkbaud,["!NB0W52:",dec nb_var52,CLS]
  3227.           I2cread Epsda,Epscl,$A0,125,[nb_var54]
  3228.        serout2 pinktx,pinkbaud,["!NB0W54:",dec nb_var54,CLS]
  3229.        debug "."    
  3230.       'bedroom
  3231.         I2cread Epsda,Epscl,$A0,126,[nb_var12]   'current temp
  3232.        serout2 pinktx,pinkbaud,["!NB0W12:",dec nb_var12,CLS]
  3233.         I2cread Epsda,Epscl,$A0,127,[nb_var14]   'wake temp
  3234.        serout2 pinktx,pinkbaud,["!NB0W14:",dec nb_var14,CLS]
  3235.        I2cread Epsda,Epscl,$A0,128,[nb_var16]  'leave temp
  3236.        serout2 pinktx,pinkbaud,["!NB0W16:",dec nb_var16,CLS]
  3237.        I2cread Epsda,Epscl,$A0,129,[nb_var18]   'return temp
  3238.        serout2 pinktx,pinkbaud,["!NB0W18:",dec nb_var18,CLS]
  3239.        I2cread Epsda,Epscl,$A0,130,[nb_var20]      'sleep temp
  3240.        serout2 pinktx,pinkbaud,["!NB0W20:",dec nb_var20,CLS]
  3241.         I2cread Epsda,Epscl,$A0,131,[nb_var56]
  3242.        serout2 pinktx,pinkbaud,["!NB0W56:",dec nb_var56,CLS]
  3243.        I2cread Epsda,Epscl,$A0,132,[nb_var58]
  3244.        serout2 pinktx,pinkbaud,["!NB0W58:",dec nb_var58,CLS]
  3245.        debug "."    
  3246. 'diningroom
  3247.        I2cread Epsda,Epscl,$A0,133,[nb_var22]   'current temp
  3248.        serout2 pinktx,pinkbaud,["!NB0W22:",dec nb_var22,CLS]
  3249.        I2cread Epsda,Epscl,$A0,134,[nb_var24]   'wake temp
  3250.        serout2 pinktx,pinkbaud,["!NB0W24:",dec nb_var24,CLS]
  3251.         I2cread Epsda,Epscl,$A0,135,[nb_var26]  'leave temp
  3252.        serout2 pinktx,pinkbaud,["!NB0W26:",dec nb_var26,CLS]
  3253.         I2cread Epsda,Epscl,$A0,136,[nb_var28]   'return temp
  3254.        serout2 pinktx,pinkbaud,["!NB0W28:",dec nb_var28,CLS]
  3255.         I2cread Epsda,Epscl,$A0,137,[nb_var30]      'sleep temp
  3256.        serout2 pinktx,pinkbaud,["!NB0W30:",dec nb_var30,CLS]
  3257.          I2cread Epsda,Epscl,$A0,138,[nb_var60]
  3258.        serout2 pinktx,pinkbaud,["!NB0W60:",dec nb_var60,CLS]
  3259.          I2cread Epsda,Epscl,$A0,139,[nb_var62]
  3260.        serout2 pinktx,pinkbaud,["!NB0W62:",dec nb_var62,CLS]
  3261.        
  3262.         debug "."
  3263. 'sunroom      
  3264.         I2cread Epsda,Epscl,$A0,140,[nb_var32]   'current setting
  3265.        serout2 pinktx,pinkbaud,["!NB0W32:",dec nb_var32,CLS]      
  3266.         I2cread Epsda,Epscl,$A0,141,[nb_var34]   'wake temp
  3267.        serout2 pinktx,pinkbaud,["!NB0W34:",dec nb_var34,CLS]      
  3268.         I2cread Epsda,Epscl,$A0,142,[nb_var36]  'leave temp
  3269.        serout2 pinktx,pinkbaud,["!NB0W36:",dec nb_var36,CLS]      
  3270.         I2cread Epsda,Epscl,$A0,143,[nb_var38]   'return temp
  3271.        serout2 pinktx,pinkbaud,["!NB0W38:",dec nb_var38,CLS]
  3272.         I2cread Epsda,Epscl,$A0,144,[nb_var40]      'sleep temp
  3273.        serout2 pinktx,pinkbaud,["!NB0W40:",dec nb_var40,CLS]
  3274.         I2cread Epsda,Epscl,$A0,145,[nb_var64]
  3275.        serout2 pinktx,pinkbaud,["!NB0W64:",dec nb_var64,CLS]        
  3276.         I2cread Epsda,Epscl,$A0,146,[nb_var66]
  3277.        serout2 pinktx,pinkbaud,["!NB0W66:",dec nb_var66,CLS]
  3278.        debug "."
  3279.       ' I2cread Epsda,Epscl,$A0,111,[nb_var78]
  3280.       ' serout2 pinktx,pinkbaud,["!NB0W78:",dec nb_var78,cls]
  3281. 'livingroom      
  3282.         I2cread Epsda,Epscl,$A0,147,[nb_var42]   'current setting
  3283.        serout2 pinktx,pinkbaud,["!NB0W42:",dec nb_var42,CLS]
  3284.         I2cread Epsda,Epscl,$A0,148,[nb_var44]   'wake temp
  3285.        serout2 pinktx,pinkbaud,["!NB0W44:",dec nb_var44,CLS]
  3286.         I2cread Epsda,Epscl,$A0,149,[nb_var46]  'leave temp
  3287.        serout2 pinktx,pinkbaud,["!NB0W46:",dec nb_var46,CLS]
  3288.         I2cread Epsda,Epscl,$A0,150,[nb_var48]   'return temp
  3289.        serout2 pinktx,pinkbaud,["!NB0W48:",dec nb_var48,CLS]
  3290.         I2cread Epsda,Epscl,$A0,151,[nb_var50]      'sleep temp
  3291.        serout2 pinktx,pinkbaud,["!NB0W50:",dec nb_var50,CLS]
  3292.         I2cread Epsda,Epscl,$A0,152,[nb_var68]
  3293.        serout2 pinktx,pinkbaud,["!NB0W68:",dec nb_var68,CLS]
  3294.         I2cread Epsda,Epscl,$A0,153,[nb_var70]
  3295.        serout2 pinktx,pinkbaud,["!NB0W70:",dec nb_var70,CLS]
  3296.        debug "."      
  3297.        endif
  3298.        debug ".</System 2>"  ,cr,10
  3299. RETURN  
  3300.    
  3301. crankit:
  3302. x = 0
  3303.  debug cr,"Crank-it "
  3304.  pause 2000
  3305. crankit1:
  3306.  serout2 pinktx,pinkbaud,["!NB0W00:","1",CLS]
  3307.  
  3308. x =x +1
  3309. debug "-"
  3310. IF X = 25 THEN
  3311.  debug cr
  3312.  serout2 pinktx,pinkbaud,["!NB0W00:","0",CLS]
  3313.  'gosub system2
  3314. RETURN
  3315. endif
  3316. pause 750 + (x*10)
  3317.  INPUT pinkrx
  3318.      
  3319.     SEROUT2 pinkTX, pinkBaud, ["!NB0R00"] ' Command To Read office minisplit radio button
  3320.     SERIN2  pinkRX, pinkBaud,250,crankit1,[ mem1]
  3321.   debug  ". mem1 value:" ,mem1
  3322.    IF mem1 = "1" THEN
  3323.    serout2 pinktx,pinkbaud,["!NB0W00:","0",CLS]
  3324.    pause 2000
  3325.     'gosub system2
  3326.     RETURN
  3327.   endif
  3328.  GOTO crankit1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement