Advertisement
mike2545

New Master

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