Write Serial Monitor text to I2C

I am attempting to write user input text from the Serial Monitor to an I2C device.
I receive text from the remote I2C device with no problem.
However, I cannot send the text that is entered into the Serial Monitor?

My Sketch is:

#include <Wire.h>

void setup()
{
  Wire.begin(101); // join i2c bus 
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(115200);  // start serial for output
}

void receiveEvent(int howMany)
{
  Serial.print("Got Bytes: ");
  Serial.println(howMany);

  while(0 < Wire.available()) // loop through all but the last
  {
    char c = Wire.read(); // receive byte as a character
    Serial.print(c);         // print the character
  }
}

void loop()
{
  // Write User Input from Serial Monitor to I2C 
  if (Serial.available()) {
    while (Serial.available() > 0) {
      Wire.beginTransmission(1); // transmit to device #1
      Wire.write(Serial.read()); // write Serial Monitor text to I2C
      Wire.endTransmission();    // stop transmitting
    }
  }
}

I don't know what I am doing incorrectly?

What is the "device" that is to receive the data? Have you confirmed the address of the device (1)?

How can you tell that the bytes are not going out?

1 is an unusual I2C address. It's within the range of addresses reserved by the standard for future uses. You can use it in your own freestanding system, but no commercial device will use that address.

What is the "device" that is to receive the data? Have you confirmed the address of the device (1)?

1 is an unusual I2C address. It's within the range of addresses reserved by the standard for future uses. You can use it in your own freestanding system, but no commercial device will use that address.

The device is a Thermocouple device with an Arduino Mini ( 1 of 12) that is within a freestanding system.
The devices addresses are from 1 to 12.
The "Master" device is an Arduino UNO that has the 12 devices connected via the I2C bus.
I am able to send to each device, connected to an Arduino UNO, using hardcoded messages.
What I would like to do is to be able to enter the message in the Serial Monitor of the UNO and send these "soft" messages to each device.

Show us the receive (slave) sketch.

A link to the data sheet/manual of the "Thermocouple device" would be helpful. Usually, to send to an I2C device, you begin the transmission by sending the device address, then a byte that defines the register to receive the data then the data. Without knowing what the thermocouple device expects, it is not possible to tell how to write to it.

Show us the receive (slave) sketch.

void receiveEvent(int howMany)
{
  Serial.print("Got Bytes: "); // DEBUG to "see" how many bytes were received.
  Serial.println(howMany);

  if (howMany == 3){
    // This is a REQUEST from the Master to send the device Status message - Rx Text == "R,1"
    writeI2C();
  }
  if (howMany == 7){
    digitalWrite(RX_PIN, HIGH);   // sets the Rx LED on
    int i = 0;
    while(Wire.available() > 0)
    {
      message[i] = Wire.read();
      i++;
    }
    message[i] = '\0';
    rxMaster = message; // Set NEW Setpoint Temperature from the Master - Rx Text == "T,1,265" 

    //Serial.println(rxMaster);  // DEBUG

    int commaIndex = rxMaster.indexOf(',');
    int secondCommaIndex = rxMaster.indexOf(',', commaIndex+1);
    int lastCommaIndex = rxMaster.lastIndexOf(',');
    String Header = rxMaster.substring(0, commaIndex);
    String Zone = rxMaster.substring(commaIndex+1, secondCommaIndex);
    String Temp = rxMaster.substring(lastCommaIndex+1); // To the end of the string
    setTemp  = Temp.toInt();
    Serial.println(rxMaster);  // DEBUG
    Serial.println(setTemp);   // DEBUG
    // Write setTemp to EEPROM
    Setpoint  = setTemp;
    EEPROM.writeLong(4,Setpoint);
    digitalWrite(RX_PIN, LOW);   // sets the Rx LED off
  }
}

As can be seen from the above code, a number of strings can be received by the "slaves" (each message has a different number of bytes), two of which are:
"R,1" which is 3 bytes. - this is a Request for a status message from the slave.
"T,1,265" which is 7 bytes. - this is a change of Setpoint Temperature within the slave
I would like to enter into the "master's" Serial monitor either of these messages and Write to the I2C.
If I "hardcode" Wire.write("T,1,265"); OR Wire.write("R,1");
It works.
BUT I would like to send via the Serial monitor so that it is easier for me as I write the "slave" sketch.

A link to the data sheet/manual of the "Thermocouple device" would be helpful. Usually, to send to an I2C device, you begin the transmission by sending the device address, then a byte that defines the register to receive the data then the data. Without knowing what the thermocouple device expects, it is not possible to tell how to write to it.

No need, the ATMEGA328P takes care of reading the temperature and all working great.

I meant all the code, not just a snippet.

I meant all the code, not just a snippet.

All the other code in the sketch pertains to the Temperature reading, PID, Phase Control etc.

Declan:
All the other code in the sketch pertains to the Temperature reading, PID, Phase Control etc.

There is no I2C setup?

I2C setup:

  Wire.begin(zoneNumber);       // join i2c bus with address of the Zone (Device)
  Wire.onReceive(receiveEvent); // register event

I know this works, when I use:
Wire.write("T,1,265"); OR Wire.write("R,1");
The message is received by the "slave" device.

I suspect the problem is in:

void loop()
{
  // Write User Input from Serial Monitor to I2C 
  if (Serial.available()) {
    while (Serial.available() > 0) {
      Wire.beginTransmission(1); // transmit to device #1
      Wire.write(Serial.read()); // write Serial Monitor text to I2C
      Wire.endTransmission();    // stop transmitting
      Serial.print(Serial.read()); // DEBUG
    }
  }
}