This version of the API shipped with Indigo 6 beta 12 - check the API Version Chart to see what version of the API is available in which Indigo versions.
activeZone
to activeZoneIndex
to more correctly reflect what it is. The activeZone
state is actually a 1-based index into your zone list (1 represents zone 1, 2 represents zone 2 - 0 represents no zone running). However, because there are three sprinkler device properties (zoneNames
, zoneMaxDurations
, and zoneScheduledDurations
) that are 0-based Python arrays, we thought it would be more convenient to use the activeZoneIndex
directly (dev.zoneName[dev.activeZoneIndex]
). However, we needed to distinguish the activeZone
state from the activeZoneIndex
attribute to reduce confusion. Note: this change will cause any plugin or script that is using the device activeZone
attribute to throw an error.activeZoneIndex
attribute has been removed and activeZone
restored. All sprinkler zone indices in attributes, states, and properties will be 1 based: zone 1 will be index 1, zone 2 will be index 2, and using an index value of 0 will represent all zones off.energyInputCount, energyInputs, accumEnergyTotals, accumEnergyBaseTimes, accumEnergyTimeDeltas
) from the sensor device object, and the resetAccumEnergyTotals()
method from the indigo.sensor commmand space. They no longer exist at the sensor device level, so scripts and plugins should call the newer methods on the base device object instead (see next item). Note: this change will cause any plugin or script that is using the attributes or method to throw an error.energyCurLevel, energyAccumTotal, energyAccumBaseTime, energyAccumTimeDelta
) to the base device object, and the reset method resetEnergyAccumTotal()
to the indigo.device command space.actionControlGeneral
action callback, GeneralDeviceAction
action class and indigo.kDeviceGeneralAction
enumeration for handling generic device actions such as status requests, energy meter reading, energy usage resetting, beep request, etc. If the plugin does not define the actionControlGeneral
callback, then device status request actions will continue to be dispatched to the device specific callbacks: actionControlDimmerRelay, actionControlSensor, actionControlSpeedControl, actionControlThermostat, actionControlIO, actionControlSprinkler.
indigo.kDeviceAction
enumeration to indigo.kDimmerRelayAction
. The previous enumeration still exists for backwards compatibility but should no longer be used.self.substituteDeviceState(inString, validateOnly=False)
method to the plugin base class. It works basically like substituteVariable()
except it substitutes the value of the specified device state. The markup is %%d:DEVICEID:stateId%%
validateOnly
is optional and False
by default. If validateOnly
is true it returns a tuple (also like the variable substitution) where the first element is a boolean representing whether it validates and if not it has a second element that's the error message.
self.substitute(inString, validateOnly=True)
method to the plugin base class. It first calls self.substituteVariable()
and then calls self.substituteDeviceState()
with the appropriate parameters (all three methods have exactly the same parameters with the same purpose). It also returns exactly the same format of values as these two methods depending on whether validateOnly
is True
or False
. The ordering was carefully chosen such that the variable substitution could, in fact, add more device markup before the device substitution happens. So the user can even more dynamically generate content by inserting device markup into a variable value. However, only device markup will be honored in variable values - we don't recursively call variable markup on variable values.if status string is equal to "playing" show the play icon if status string is equal to "paused" show the pause icon if status string is equal to "stopped" show the stop icon if status string is equal to "on" show the device on icon if status string is equal to "off" show the device off icon if status string contains one of ["inactive", "disabled", "closed", "disconnected", "unavailable"] or if the state value is a boolean and false show a gray dot if status string contains one of ["active", "enabled", "open", "connected", "available"] or if the state value is a boolean and true show a green dot if status string contains "delay" show the timer on icon if status string contains "tripped" or "faulted" show a red dot