-DB1    last bit        = local_control
        -DB1    bit 2+3         = status_mode
        -DB1    bit 4           = auto send
        -DB1    bit 5+6+7       = mode
        -DB1    bit 8           = cool
        -DB2                    = program (not used)
        -DB3    last bit        = heater
        -DB3    bit 2           = boost
        -DB3    bit 3           = pump
        -DB3    bit 4           = pump
        -DB4    bit 5           = alarm 1
        -DB4    bit 6           = alarm 2
        -DB4    bit 7           = alarm 3
        -DB4    bit 8           = alarm 4
        -DB5    current temp    = current temp
        -DB6    target temp     = target temp
        -DB7-8  sleep timer     = 0=off >0=x min
        :return: None

def populate(self, priority, address, rtr, data):
        """
        -DB1    last bit        = local_control
        -DB1    bit 2+3         = status_mode
        -DB1    bit 4           = auto send
        -DB1    bit 5+6+7       = mode
        -DB1    bit 8           = cool
        -DB2                    = program (not used)
        -DB3    last bit        = heater
        -DB3    bit 2           = boost
        -DB3    bit 3           = pump
        -DB3    bit 4           = pump
        -DB4    bit 5           = alarm 1
        -DB4    bit 6           = alarm 2
        -DB4    bit 7           = alarm 3
        -DB4    bit 8           = alarm 4
        -DB5    current temp    = current temp
        -DB6    target temp     = target temp
        -DB7-8  sleep timer     = 0=off >0=x min
        :return: None
        """
        assert isinstance(data, bytes)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 7)
        self.set_attributes(priority, address, rtr)

        self.local_control = (data[0] & 0x01)
        self.status_mode = (data[0] & 0x206)
        self._status_str = DSTATUS[self.status_mode]
        self.auto_send = (data[0] & 0x08)
        self.mode = (data[0] & 0x70)
        self.mode_str = DMODE[self.mode]
        self.cool = (data[0] & 0x80)

        self.heater = (data[2] & 0x01)
        self.boost = (data[2] & 0x02)
        self.pump = (data[2] & 0x04)
        self.cool = (data[2] & 0x08)
        self.alarm1 = (data[2] & 0x10)
        self.alarm2 = (data[2] & 0x20)
        self.alarm3 = (data[2] & 0x40)
        self.alarm4 = (data[2] & 0x80)

        self.current_temp = data[3] / 2
        self.target_temp = data[4] / 2
       
        self.sleep_timer = (data[5] << 8) + data[6]