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:

date.dayname eg: Sunday English name of the day in which the event is throwed 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:

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 Person enters a zone
PersonExitsZone Person exits a zone
PluginHasChanged app.event.sensor.plugin.change Plugin status changed
ProtocolRead Protocol read
ScheduledEvent app.event.sensor.calendar.event.schedule Time related event
TemperatureEvent app.event.sensor.temperature Temperature changed
ZoneHasChanged Zone changed

More info in Javadoc

For event specific data please refer to the Javadocs of the event classes

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

  • EQUALS Thursday
  • EQUALS 4
  • 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
  • object.type EQUALS EnvObject.ElectricDevice.Light
  • EQUALS Light one
  • object.protocol EQUALS X10
  • object.address EQUALS A01