Spark Core as I2C Slave

I hope so. It’s probably my coding!

The Arduino (Master) code:

#include <Wire.h>

int xSpark = 0;

void setup()
{
  Wire.begin(); // join i2c bus 
}

void loop()
{
  if (xSpark > 7)
  {
    xSpark=0;
  }
  Wire.beginTransmission(4);
  Wire.write(xSpark);               // sends one byte
  Wire.endTransmission();
  xSpark++;
  delay(500);
}

The Spark Core (Slave) code:

int bedTemp;

void setup()
{
    Spark.variable("bedtemp", &bedTemp, INT);
    Wire.begin(4);                // join i2c bus with address #4
    Wire.onReceive(receiveEvent);    // register event
}

void loop()
{
}

void receiveEvent(int howMany)
{
    int bedTemp = Wire.read();        // receive byte as an integer
}

Any help would (again) be very much appreciated!!
Col