freedomotic

Events

Freedomotic and its plugins send events when anything relevant happens.

Any event is sent on a messaging channel. A channel address is a simple string with a hierarchical structure like app.sensors.event.object.behavior.changed.

You can subscribe an event channel from a trigger which is a filter of events.

For example if your event is an object changed state you can filter it using a trigger if a light in the kitchen changed its powered state.

Freedomotic events have a set of standard properties plus a list of properties related to the specific event.

Generic event properties

The following properties are common to all events and can be intercepted and filtered by any trigger:

PROPERTY POSSIBLE VALUES DESCRIPTION
date.dayname eg: Sunday English name of the day in which the event is throwed
date.day eg: 4 for Thursday The day number in which the event is throwed
date.month eg: October The month name in which the event is throwed
date.year eg: 2016 The year number in which the event is throwed
time.hour eg: 0-23 The hour number in 24h format in which the event is throwed
time.minute eg: 0-59 The minute of the current hour in which the event is throwed
time.second eg: 0-59 The second of the current minute in which the event is throwed
sender   The name of the module that have generated the event

Predefined events

Here a list of predefined events:

EVENT CHANNEL DESCRIPTION
AccountEvent app.event.sensor.account.change Account status changed
GenericEvent app.event.sensor Generic event. Use ONLY if there is not a specific event
LocationEvent app.event.sensor.person.movement.detected Person position detected
LuminosityEvent app.event.sensor.luminosity Luminosity changed
MessageEvent app.event.sensor.messages.MESSAGE_TYPE Message notified
ObjectHasChangedBehavior app.event.sensor.object.behavior.change Object behavior changed
ObjectReceiveClick app.event.sensor.object.behavior.clicked Object clicked
PersonEntersZone app.event.sensor.person.zone.enter Person enters a zone
PersonExitsZone app.event.sensor.person.zone.exit Person exits a zone
PluginHasChanged app.event.sensor.plugin.change Plugin status changed
ProtocolRead app.event.sensor.protocol.read.PROTOCOL_NAME Protocol read
ScheduledEvent app.event.sensor.calendar.event.schedule Time related event
TemperatureEvent app.event.sensor.temperature Temperature changed
ZoneHasChanged app.event.sensor.environment.zone.change Zone changed

More info in Javadoc

For event specific data please refer to the Javadocs of the event classes https://freedomotic.github.io/javadoc/freedomotic-core/com/freedomotic/events/package-summary.html

For example this is the list of properties available to a trigger that listen to ObjectReceiveClick events

  • date.day.name EQUALS Thursday
  • date.day EQUALS 4
  • date.month.name EQUALS October
  • date.month EQUALS 10
  • date.year EQUALS 2012
  • time.hour EQUALS 18
  • time.minute EQUALS 15
  • time.second EQUALS 15
  • sender EQUALS UnknownSender
  • click EQUALS SINGLE_CLICK
  • object.type EQUALS EnvObject.ElectricDevice.Light
  • object.name EQUALS Light one
  • object.protocol EQUALS X10
  • object.address EQUALS A01