X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3-eventbroker_zmq%2Fsockettoevent.go;h=a6c479d7765ada79ede79bfdff90243ee5e0596f;hb=53647f4ca80b7c4cdbd029ae496dc9a2c4df211d;hp=7831ab88a035e14faaf2b2e28031bfb891f0f161;hpb=5af06899baaaf2c7f375bab319e6e13b7225c8fc;p=svn42.git diff --git a/go/r3-eventbroker_zmq/sockettoevent.go b/go/r3-eventbroker_zmq/sockettoevent.go index 7831ab8..a6c479d 100644 --- a/go/r3-eventbroker_zmq/sockettoevent.go +++ b/go/r3-eventbroker_zmq/sockettoevent.go @@ -6,6 +6,7 @@ import ( "regexp" "strconv" "time" + "bytes" //~ "./brain" pubsub "github.com/tuxychandru/pubsub" zmq "github.com/vaughan0/go-zmq" @@ -35,11 +36,16 @@ func parseSocketInputLine_State(lines [][]byte, ps *pubsub.PubSub, ts int64) { case "manual", "manual_movement": //movement ps.Pub(r3events.DoorManualMovementEvent{ts}, "door") case "error": - ps.Pub(r3events.DoorProblemEvent{100, ts}, "door") + ps.Pub(r3events.DoorProblemEvent{100, string(bytes.Join(lines,[]byte(" "))), ts}, "door") case "reset": ps.Pub(r3events.DoorLockUpdate{true, ts}, "door") - case "timeout", "timeout_after_open", "timeout_after_close": - ps.Pub(r3events.DoorProblemEvent{10, ts}, "door") + case "timeout_after_open": + ps.Pub(r3events.DoorProblemEvent{10, string(lines[0]), ts}, "door") + ps.Pub(r3events.DoorLockUpdate{false, ts}, "door") + case "timeout_after_close": + ps.Pub(r3events.DoorProblemEvent{20, string(lines[0]), ts}, "door") + // can't say for sure that door is locked if we ran into timeout while closing + //~ ps.Pub(r3events.DoorLockUpdate{true, ts}, "door") case "opening": case "closing": default: @@ -82,6 +88,8 @@ func ParseSocketInputLine(lines [][]byte, ps *pubsub.PubSub, keylookup_socket *z ps.Pub(r3events.DoorCommandEvent{string(lines[0]), string(lines[1]), string(lines[2]), ts},"doorcmd") case "BackdoorInfo(ajar):": ps.Pub(r3events.BackdoorAjarUpdate{string(lines[len(lines)-1]) == "shut", ts},"door") + case "GasLeakAlert": + ps.Pub(r3events.GasLeakAlert{ts},"sensors") case "temp0:","temp1:", "temp2:", "temp3:": sensorid, err := strconv.ParseInt(string(lines[0][4]), 10, 32) if err != nil {return }