rename PanicButton to BoreDooomButton and eliminate door id
[svn42.git] / go / r3-netstatus / sockettoevent.go
1 // (c) Bernhard Tittelbach, 2013
2
3 package main
4
5 import (
6     pubsub "github.com/tuxychandru/pubsub"
7     //~ "bufio"
8     //~ "time"
9     //~ "./brain"
10     //~ "net"
11     "encoding/json"
12     "log"
13     r3events "svn.spreadspace.org/realraum/go.svn/r3-eventbroker_zmq/r3events"
14     )
15
16 func ParseZMQr3Event(lines [][]byte, ps *pubsub.PubSub) { //, brn *brain.Brain) {
17     //log.Printf("ParseZMQr3Event: len: %d lines: %s", len(lines), lines)
18     if len(lines) != 2 {
19         return
20     }
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 "BoreDoomButtonPressEvent" :
39             evnt := new(r3events.BoreDoomButtonPressEvent)
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")}
55     }
56 }