+ case "BackdoorInfo(ajar):":
+ ps.Pub(r3events.BackdoorAjarUpdate{string(lines[len(lines)-1]) == "shut", ts},"door")
+ case "temp0:","temp1:", "temp2:", "temp3:":
+ sensorid, err := strconv.ParseInt(string(lines[0][4]), 10, 32)
+ if err != nil {return }
+ newtemp, err := strconv.ParseFloat(string(lines[1]), 10)
+ if err != nil {return }
+ ps.Pub(r3events.TempSensorUpdate{int(sensorid), newtemp, ts}, "sensors")
+ case "photo0:","photo1:", "photo2:", "photo3:":
+ sensorid, err := strconv.ParseInt(string(lines[0][5]), 10, 32)
+ if err != nil {return }
+ newphoto, err := strconv.ParseInt(string(lines[1]), 10, 32)
+ if err != nil {return }
+ ps.Pub(r3events.IlluminationSensorUpdate{int(sensorid), newphoto, ts}, "sensors")
+ case "rh0:":
+ //~ sensorid, err := strconv.ParseInt(string(lines[0][4]), 10, 32)
+ //~ if err != nil {return }
+ relhumid, err := strconv.ParseInt(string(lines[1]), 10, 32)
+ if err != nil {return }
+ ps.Pub(r3events.RelativeHumiditySensorUpdate{0, int(relhumid), ts}, "sensors")
+ case "dust0:","dust1:","dust2:":
+ sensorid, err := strconv.ParseInt(string(lines[0][4]), 10, 32)
+ if err != nil {return }
+ dustlvl, err := strconv.ParseInt(string(lines[1]), 10, 32)
+ if err != nil {return }
+ ps.Pub(r3events.DustSensorUpdate{int(sensorid), dustlvl, ts}, "sensors")