# Application Configuration properties
#
# The default topology provider is DirectProvider.
topology.provider=org.apache.edgent.providers.development.DevelopmentProvider
#
application.name=SensorAnalytics
#

# =========================================================================
# Application stream logging configuration
# Where the app puts its stream logs.  
# The directory will be created when the topology
# runs if it doesn't already exist.
application.log.dir=/tmp/SensorAnalytics/logs

# =========================================================================
# Application "ranges" - e.g., for threshold detections
# Specify values generated by Range.toString():
#  <lowerBoundType><lowerBound>..<upperBound><upperBoundType>
#  where
#      lowerBoundType is "[" inclusive or "(" exclusive
#      upperBoundType is "]" inclusive or ")" exclusive
#      lowerBound or upperBound is "*" for open ranges,
#         e.g., [*..50]  for "atMost" 50
#
sensor1.range.outside1hzMeanRange=[124..129]

# =========================================================================
# MQTT Device and Connector configuration info.
#
# MQTT Device -- See org.apache.edgent.connectors.mqtt.device.MqttDevice for all
# of the properties.
#
# An optional topic prefix.  It can be used to isolate users or applications
# in shared MQTT broker configurations.  By default it is incorporated
# into device topics and the MQTT clientId.
# If you use a public MQTT broker you may want to change the topic
# prefix so it is still unique for you but doesn't include the
# user name or application name.
mqttDevice.topic.prefix=ibm.xyzzy-streams.samples/user/{user.name}/{application.name}/
#
# The device id used for identifying the device's events and commands
# in the MQTT topic namespace.
# By default it also gets incorporated into the MQTT clientId value.
mqttDevice.id=012345
#
# The MQTT clientId.  Only one instance of a MqttDevice can connect
# to the MQTT broker with a given clientId.
#mqttDevice.mqtt.clientId={mqttDevice.topic.prefix}id/{mqttDevice.id}
#
# MQTT Connector  See org.apache.edgent.connectors.mqtt.MqttConfig.fromProperties()
#
# The default configuration is for a local MQTT broker.
# See mosquitto.org for instructions on downloading a MQTT broker.
# Or use some other MQTT broker available in your environment.
mqtt.serverURLs=tcp://localhost:1883
#
# Alternatively, there are some public MQTT brokers available to experiment with.
# Their availability status isn't guaranteed.  If you're unable to connect
# to the broker, it's likely that it isn't up or your firewalls don't
# allow you to connect.  DO NOT PUBLISH ANYTHING SENSITIVE - anyone
# can be listing.
#mqtt.serverURLs=tcp://iot.eclipse.org:1883
#mqtt.serverURLs=tcp://test.mosquitto.org:1883
#
# default username is System.getProperty("user.name") value
#mqtt.userName=xyzzy
#mqtt.password=myMosquittoPw

# =========================================================================
# Patterns for identifying which streams to trace to System.out
# To enable use include.csv and/or includes.regex.
# To exclude an otherwise included file, use excludes.csv and/or excludes.regex
#
# Some tracing labels
# sensor1.raw1khz,sensor1.j1khz,sensor1.j1hzStats,sensor1.outside1hzMeanRange*,
# sensor1.periodicLastN*
#
#stream.tracing.includes.csv=sensor1.j1hzStats
stream.tracing.includes.regex=sensor1.outside1hzMeanRange.*
#stream.tracing.excludes.regex=.*
#stream.tracing.excludes.csv=sensor1.raw1khz
