Exemple #1
0
// Find the device name
func (self *Config) LookupDeviceName(ev *pubsub.Event) string {
	// silly question: is device set on the event
	if ev.Device() != "" {
		return ev.Device()
	}
	topic := ev.Topic
	source := ev.Source()
	// try: protocol.id
	if device, ok := self.Protocols[topic][source]; ok {
		return device
	}
	// fallback: topic.source
	// ignore dynamic topics (prefix _)
	if topic != "" && source != "" && !strings.HasPrefix(topic, "_") {
		return topic + "." + source
	}
	return ""
}