1 // (c) Bernhard Tittelbach, 2013
6 pubsub "github.com/tuxychandru/pubsub"
13 r3events "svn.spreadspace.org/realraum/go.svn/r3-eventbroker_zmq/r3events"
16 func ParseZMQr3Event(lines [][]byte, ps *pubsub.PubSub) { //, brn *brain.Brain) {
17 //log.Printf("ParseZMQr3Event: len: %d lines: %s", len(lines), lines)
21 switch string(lines[0]) {
22 case "PresenceUpdate":
23 evnt := new(r3events.PresenceUpdate)
24 err := json.Unmarshal(lines[1],evnt)
25 if err == nil {ps.Pub(*evnt, "presence")}
26 case "IlluminationSensorUpdate" :
27 evnt := new(r3events.IlluminationSensorUpdate)
28 err := json.Unmarshal(lines[1],evnt)
29 if err == nil {ps.Pub(*evnt, "sensors")}
30 case "TempSensorUpdate" :
31 evnt := new(r3events.TempSensorUpdate)
32 err := json.Unmarshal(lines[1],evnt)
33 if err == nil {ps.Pub(*evnt, "sensors")}
34 case "MovementSensorUpdate" :
35 evnt := new(r3events.MovementSensorUpdate)
36 err := json.Unmarshal(lines[1],evnt)
37 if err == nil {ps.Pub(*evnt, "movement")}
38 case "ButtonPressUpdate" :
39 evnt := new(r3events.ButtonPressUpdate)
40 err := json.Unmarshal(lines[1],evnt)
41 if err == nil {ps.Pub(*evnt, "buttons")}
42 case "DoorLockUpdate" :
43 log.Print("DoorLockUpdate received")
44 evnt := new(r3events.DoorLockUpdate)
45 err := json.Unmarshal(lines[1],evnt)
46 if err == nil {ps.Pub(*evnt, "door")}
47 case "DoorAjarUpdate" :
48 evnt := new(r3events.DoorAjarUpdate)
49 err := json.Unmarshal(lines[1],evnt)
50 if err == nil {ps.Pub(*evnt, "door")}
51 case "DoorCommandEvent" :
52 evnt := new(r3events.DoorCommandEvent)
53 err := json.Unmarshal(lines[1],evnt)
54 if err == nil {ps.Pub(*evnt, "door")}