Multiple Arduino's using I2C

I've been reading up on the I2C protocol as I want to use it in a project I am working on.

I have 3 Arduinos each handling a few specific tasks.

The first one has a LCD menu system driven by a rotary encoder with a DS1307 breakout so the menu and the time/date are displayed on the LCD.

The second one is reading from a thermistor, displaying the temperature on a 7 segment bubble display and driving a PID loop that controls a heating element.

The third one reads from a HX711 load cell amplifier, also reads the state of a 120VAC switch, and also controls a pump and a valve.

I want to use I2C and have the first Arduino as the master (I think?) and have the other two report to it. However I only want the third one to report when it detects a state change on the 120VAC switch, as this is a infrequent occurance.

From what I have been reading, the master can request data from a slave, but a slave cannot request to send data to a mater. Is this correct?

If that is the case, perhaps Arduino #3 could have a output connected to an input on Arduino #1. That way Arduino #1 would know when to request data?

Is there anything I am missing? Or a better way to go about this?

I've got it working now and sending chars, but I want to send a double.

I found the I2C_Anything library, and while it sends floats and longs, it hangs when I try to send a double. I've been searching for ways to convert a double to a float (I don't mind the loss of precision as I'm just displaying a value to 2 decimal places).

I thought maybe I could use I2C_writeAnything to send a string, so I tested it first with an int cast as a String. That wouldn't print to the serial window, just hangs again.

Can anyone recommend another way to write a double over I2C?

Finally figured it out, I realised I wasn't sending the doubles :-X