You are reading single ASCII characters (not values) without first checking whether any characters are there to be read.
This writes a single 8 bit binary value (not the integer value of "weather"):
int weather = 800;
BT.write(weather);
There is a good introduction to serial communications on this forum at Serial Input Basics - updated