}
switch string(data[0]) {
case "DoorLockUpdate":
- event = DoorLockUpdate{}
- err = json.Unmarshal(data[1],&event)
+ newevent := new(DoorLockUpdate)
+ err = json.Unmarshal(data[1],newevent)
category = "door"
+ event = *newevent
case "DoorAjarUpdate":
- event := DoorAjarUpdate{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(DoorAjarUpdate)
+ err = json.Unmarshal(data[1], newevent)
category = "door"
+ event = *newevent
case "BackdoorAjarUpdate":
- event := DoorAjarUpdate{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(BackdoorAjarUpdate)
+ err = json.Unmarshal(data[1], newevent)
category = "door"
+ event = *newevent
case "DoorCommandEvent":
- event := DoorCommandEvent{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(DoorCommandEvent)
+ err = json.Unmarshal(data[1], newevent)
category = "door"
+ event = *newevent
case "DoorProblemEvent":
- event := DoorProblemEvent{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(DoorProblemEvent)
+ err = json.Unmarshal(data[1], newevent)
category = "door"
+ event = *newevent
+ case "DoorManualMovementEvent":
+ newevent := new(DoorManualMovementEvent)
+ err = json.Unmarshal(data[1], newevent)
+ category = "door"
+ event = *newevent
case "BoreDoomButtonPressEvent":
- event := BoreDoomButtonPressEvent{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(BoreDoomButtonPressEvent)
+ err = json.Unmarshal(data[1], newevent)
category = "buttons"
+ event = *newevent
case "TempSensorUpdate":
- event := TempSensorUpdate{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(TempSensorUpdate)
+ err = json.Unmarshal(data[1], newevent)
category = "sensors"
+ event = *newevent
case "IlluminationSensorUpdate":
- event := IlluminationSensorUpdate{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(IlluminationSensorUpdate)
+ err = json.Unmarshal(data[1], newevent)
+ category = "sensors"
+ event = *newevent
+ case "DustSensorUpdate":
+ newevent := new(DustSensorUpdate)
+ err = json.Unmarshal(data[1], newevent)
+ category = "sensors"
+ event = *newevent
+ case "RelativeHumiditySensorUpdate":
+ newevent := new(RelativeHumiditySensorUpdate)
+ err = json.Unmarshal(data[1], newevent)
category = "sensors"
+ event = *newevent
case "TimeTick":
- event := TimeTick{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(TimeTick)
+ err = json.Unmarshal(data[1], newevent)
category = "time"
+ event = *newevent
+ case "GasLeakAlert":
+ newevent := new(GasLeakAlert)
+ err = json.Unmarshal(data[1], newevent)
+ category = "sensors"
+ event = *newevent
case "MovementSensorUpdate":
- event := MovementSensorUpdate{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(MovementSensorUpdate)
+ err = json.Unmarshal(data[1], newevent)
category = "movement"
+ event = *newevent
case "PresenceUpdate":
- event := PresenceUpdate{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(PresenceUpdate)
+ err = json.Unmarshal(data[1], newevent)
category = "presence"
+ event = *newevent
case "SomethingReallyIsMoving":
- event := SomethingReallyIsMoving{}
- err = json.Unmarshal(data[1], &event)
+ newevent := new(SomethingReallyIsMoving)
+ err = json.Unmarshal(data[1], newevent)
category = "movement"
+ event = *newevent
+ case "TempSensorSpike":
+ newevent := new(TempSensorSpike)
+ err = json.Unmarshal(data[1], newevent)
+ category = "sensors"
+ event = *newevent
+ case "DustSensorSpike":
+ newevent := new(DustSensorSpike)
+ err = json.Unmarshal(data[1], newevent)
+ category = "sensors"
+ event = *newevent
+ case "NetDHCPACK":
+ newevent := new(NetDHCPACK)
+ err = json.Unmarshal(data[1], newevent)
+ category = "network"
+ event = *newevent
+ case "NetGWStatUpdate":
+ newevent := new(NetGWStatUpdate)
+ err = json.Unmarshal(data[1], newevent)
+ category = "network"
+ event = *newevent
default:
event = nil
err = errors.New("cannot unmarshal unknown type")