Multi level dynamic key setting?

How do you set a multi-level deep update on an object with a dynamic key in javascript? When i try a typical dynamic update, it adds another key/value pair instead of updating the correct parameter.

let home = {
  street: {
    house: {
      room: {
        window: true
      }
    }
  }
}

let update = {
  key: "house.room.window",
  value: "false"
}

home.street[update.key] = update.value;
console.log(home);

expected:

home = {
    street:{
        house: {
            room: {
                window: false
            }
        }
    }
}

instead i get:

home = {
    street:{
        house: {
            room: {
                window: true
            }
        }
        "house.room.window": false
    }
}