Hey, I've worked at Splunk for many years and have been using it for all sorts of things (see
http://blogs.splunk.com/2013/10/22/go-splunk-yourself/)
I've been feeding it Indigo logs for quite awhile now and doing some fun stuff with it. Glad to see others are too!
As markf424 pointed out there is a free version of splunk that you can run on your own machine. Unless you have a crazy house, it's probably more than enough since it'll handle 500megs of logs a day. I also happen to work on the Splunk Cloud team, which can give you a free trial of both Splunk and the newer Splunk Light:
https://www.splunk.com/cloudHere's some of my searches:
Graph of Temp, Humidity, Lux from a Aeotec Multisensor (in screenshot above)
- Code: Select all
index=house location="Maya's Room" sensor update
| rex field=_raw "sensor update to (?<temp>.*) °F"
| rex field=_raw "sensor update to (?<humidity>.*)%"
| rex field=_raw "sensor update to (?<lux>.*) lux"
| eval lux=lux/10
| timechart avg(temp) as Temp avg(humidity) as Humidity avg(lux) as Lux/10 span=11m
Battery Levels (in screenshot above)
- Code: Select all
index=house eventtype=BatteryLevel
| rex field=interface "\"(?<device>.+([a-zA-z]+))\""
|search device!=""
| timechart span=1d avg(battery_level) by device
How many hours was the Bedroom light on?
- Code: Select all
index=house device="Bedroom Light"
| transaction startswith=on endswith=off maxspan=24h
| timechart eval(avg(duration)/60/60) as "Hours Lights On"
I have all my logs going into a dedicated "house" index. it's a bit faster than searching by source since I have other data in my Splunk.
I also stick to a standard naming convention for sensor devices to make field extraction easier:
(SensorType) Location
ex. "(Motion) Living Room", (Humidity) Bathroom", etc.
FWIW, here are my field extractions for the other Splunk users:
Example log lines:
- Code: Select all
2015-09-24 20:47:09.895 Z-Wave received "(Lux) Downstairs Bathroom" sensor update to 2 lux
2015-09-24 20:47:09.897 Z-Wave received "(Humidity) Downstairs Bathroom" sensor update to 51%
2015-09-24 20:47:09.914 Z-Wave received "(Temp) Downstairs Bathroom" sensor update to 74.5 °F
2015-09-24 20:47:09.950 Z-Wave received "(Lux) Living Room" sensor update to 50 lux
2015-09-24 20:47:20.998 Z-Wave received "(Lux) Bedroom" sensor update to 472 lux
2015-09-24 20:47:21.031 Z-Wave received "(Humidity) Bedroom" sensor update to 41%
2015-09-24 20:47:21.067 Z-Wave received "(Temp) Bedroom" sensor update to 75.7 °F
2015-09-24 20:47:24.293 Z-Wave received "(Temp) Server Closet" sensor update to 84.2 °F
- Code: Select all
host::house : EXTRACT-device Inline (?i)^(?:[^\t]*\t){2}"(?P<device>[^"]+)
host::house : EXTRACT-device_state Inline (?i) .*?" (?P<device_state>(on|off)).*
host::house : EXTRACT-indigo_event Inline (?i)^[^\t]*\t(?P<indigo_event>[^\t]+)
host::house : EXTRACT-interface Inline (?i)\tReceived (?P<interface>[^\t]+)
indigo : EXTRACT-battery_level Inline (?i) battery level (?P<battery_level>[^%]+)
indigo : EXTRACT-device Inline (?i)^[^"]*"(?P<FIELDNAME>[^"]+)
indigo : EXTRACT-location Inline (?i)^[^\)]*\)\s+(?P<location>[^"]+)
indigo : EXTRACT-reading Inline (?i) to (?P<reading>[^ ]+)
indigo : EXTRACT-sensor_type Inline (?i)\.*? "\((?P<sensor_type>\w+)(?=\))
I'm always more than happy to chat about Splunk and love to see what people do with it!