Standard Plugins¶
Igor comes with a set of standard plugins. Some of these can be used as-is, and installed using (for example):
igorSetup addstd copytree
Some are more examples that you should copy and adapt to your own need, or use as inspiration.
Plugins take their name (for use in plugindata
, for example) from the name they are installed
under (which can be different than the standard name).
So you can install multiple independent copies (for example as say and sayInBedroom)
and use different plugindata to control each copy of the plugin.
Various plugins should be considered standard to Igor operations and usually installed:
- ca allows access to the Certificate Authority
- device allows adding and removing devices
- user allows adding and removing users
- systemHealth implements the self-checks and health-checks of Igor
- user allows managing users: adding new users, changing passwords, etc
ble¶
Listens to Bluetooth Low Energy advertisements to determine which devices are in range. See the ble readme for details.
buienradar¶
Stores rain forecast for the coming hour. See buienradar/readme.md for details.
ca¶
Certificate Authority. Programming interface to the Igor SSL certificate authority that allows https: access to local services (like Igor itself). See ca/readme.md for details.
copytree¶
Copies subtree src
to dst
. Both src and dst can be local or remote, allowing mirroring from one Igor to another (or actually between any two REST servers). Optional arguments mimetype
and method
are available.
device¶
Low level API to add devices and their capabilities and secret keys, and allow devices to call certain actions. User interface is provided.
dhcp¶
Queries database of DHCP server on local machine and stores all active dhcp leases. See dhcp/readme.md for details.
fitbit¶
Retrieves health data from Fitbit devices using the Fitbit cloud API and stores this in sensors/fitbit
. See fitbit/readme.md for details.
Note the underscore: the plugin is called fitbit
because otherwise it would have a name clash with the underlying Python module it uses.
As of October 2018 this is the first plugin to have a user interface through a setup.html
page, it can be used as an example of such. It is also currently the only plugin that implements OAuth2 to retrieve data from external websites.
iirfid¶
Example RFID reader integration. See iirfid/readme.md for details.
iotsaDiscovery¶
A plugin to discover devices based on the iotsa architecture and configure those devices (install certificates, install Igor capabilities, etc). The NeoClock, Plant and Smartmeter_iotsa devices below are examples of iotsa devices. User interface is provided.
kaku¶
Turns lights (or other devices) on and off using a KlikAanKlikUit device. See kaku/readme.md for details.
lan¶
Determines whether a local (or remote) internet service is up and running. See lan/readme.md for details.
lastFileAccess¶
Determine when a file was last modified or accessed (for example to check when some program was last used).
lcd¶
Displays messages on an LCD display. See lcd/readme.md for details.
logparse¶
Incomplete.
neoclock¶
Driver for NeoClock internet-connected clock. See neoclock/readme.md for details.
netatmo¶
Driver for NetAtmo weather stations. See netatmo/readme.md for details.
philips¶
Example of controlling a Philips television. See philips/readme.md for details.
plant¶
Move an internet-connected plant up and down. See plant/readme.md for details.
say¶
Speaks messages to the user. See say/readme.md for details.
smartmeter_iotsa¶
Reads current energy use in the household using a iotsa SmartMeter reader. See smartmeter_iotsa/readme.md for details.
smartmeter_rfduino¶
Older Bluetooth-based version of smartmeter___iotsa, reads current energy use in the household using a RFDuino-based SmartMeter reader.
systemHealth¶
Collects error messages from services/*
, devices/*
and sensors/*
and stores these in environment/systemHealth
. See systemHealth/readme.md for details.
testPlugin¶
A Python-based plugin that simply shows all the arguments it has been passed. This can be used as the starting point for a python-based plugin.
timemachine¶
Checks last time that Apple Time Machine backed up specific machines. See timemachine/readme.md for details.
user¶
Low-level interface to add and delete users, including capabilities and such, and change passwords. User interface is provided.