openhab
Version:
JavaScript Library for openHAB Automation
497 lines • 13.9 kB
TypeScript
export type Item = {
rawItem: HostItem;
persistence: import("../items/item-persistence");
semantics: import("../items/item-semantics");
readonly type: string;
/** @private */
readonly groupType: string;
readonly name: string;
readonly label: string;
readonly state: string;
readonly numericState: number;
readonly quantityState: import("../quantity").Quantity;
readonly boolState: boolean;
readonly rawState: HostState; /**
* Item state changed from
*
* @param {string} value
* @returns {ItemTriggerConfig}
*/
readonly previousState: string;
readonly previousNumericState: number;
readonly previousQuantityState: import("../quantity").Quantity;
readonly previousRawState: any;
readonly lastStateUpdateTimestamp: any;
readonly lastStateUpdateInstant: any;
readonly lastStateChangeTimestamp: any;
readonly lastStateChangeInstant: any;
readonly members: any[];
readonly descendents: any[];
readonly isUninitialized: boolean;
getMetadata(namespace?: string): {
rawMetadata: any;
readonly value: string;
readonly configuration: any;
toString(): any; /**
* Specifies a time schedule for the rule to fire.
*
* @param {string} time the time expression (in `HH:mm`) defining the triggering schedule
* @returns {TimeOfDayTriggerConfig} the trigger config
*/
} | {
namespace: {
rawMetadata: any;
readonly value: string;
readonly configuration: any;
toString(): any; /**
* Specifies a time schedule for the rule to fire.
*
* @param {string} time the time expression (in `HH:mm`) defining the triggering schedule
* @returns {TimeOfDayTriggerConfig} the trigger config
*/
};
};
replaceMetadata(namespace: string, value: string, configuration?: any): {
rawMetadata: any;
readonly value: string;
readonly configuration: any;
toString(): any; /**
* Specifies a time schedule for the rule to fire.
*
* @param {string} time the time expression (in `HH:mm`) defining the triggering schedule
* @returns {TimeOfDayTriggerConfig} the trigger config
*/
};
removeMetadata(namespace?: string): {
rawMetadata: any;
readonly value: string;
readonly configuration: any;
toString(): any; /**
* Specifies a time schedule for the rule to fire.
*
* @param {string} time the time expression (in `HH:mm`) defining the triggering schedule
* @returns {TimeOfDayTriggerConfig} the trigger config
*/
};
sendCommand(value: any, expire?: JSJoda.Duration, onExpire?: any): void;
sendCommandIfDifferent(value: any): boolean;
sendIncreaseCommand(value: any): boolean;
sendDecreaseCommand(value: any): boolean;
getToggleState(): "OPEN" | "PLAY" | "ON" | "PAUSE" | "CLOSED" | "OFF";
sendToggleCommand(): void;
postToggleUpdate(): void;
postUpdate(value: any): void;
readonly groupNames: string[];
addGroups(...groupNamesOrItems: any[]): void;
removeGroups(...groupNamesOrItems: any[]): void;
readonly tags: string[];
addTags(...tagNames: string[]): void;
removeTags(...tagNames: string[]): void;
toString(): any;
};
/**
* The callback function to determine if the condition is met.
*/
export type ConditionCallback = () => boolean;
/**
* Cron based trigger
*
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
export class CronTriggerConfig extends TriggerConf {
constructor(timeStr: any, triggerBuilder: any);
/** @private */
private timeStr;
/** @private */
private _complete;
/** @private */
private _toOHTriggers;
/** @private */
private describe;
}
/**
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
export class ChannelTriggerConfig extends TriggerConf {
constructor(channelName: any, triggerBuilder: any);
channelName: any;
_toOHTriggers: () => HostTrigger[];
/** @private */
private describe;
/**
* channel triggered a specific event name
*
* @param {string} eventName
* @returns {ChannelTriggerConfig}
*/
to(eventName: string): ChannelTriggerConfig;
/**
* channel triggered a specific event name
*
* @param {string} eventName
* @returns {ChannelTriggerConfig}
*/
triggered(eventName: string): ChannelTriggerConfig;
eventName: string;
/** @private */
private _complete;
}
/**
* Item based trigger
*
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
export class ItemTriggerConfig extends TriggerConf {
constructor(itemOrName: any, isGroup: any, triggerBuilder: any);
type: string;
/** @private */
private item_name;
/** @private */
private describe;
of: (value: string) => ItemTriggerConfig;
/**
* Item received command or changed/updated state to
*
* @param {string} value
* @returns {ItemTriggerConfig}
*/
to(value: string): ItemTriggerConfig;
to_value: string;
/**
* Item state changed from
*
* @param {string} value
* @returns {ItemTriggerConfig}
*/
from(value: string): ItemTriggerConfig;
from_value: string;
/**
* Item received command OFF or changed/updated state to OFF
*
* @returns {ItemTriggerConfig}
*/
toOff(): ItemTriggerConfig;
/**
* Item received command ON or changed/updated state to ON
*
* @returns {ItemTriggerConfig}
*/
toOn(): ItemTriggerConfig;
/**
* Item changed state from OFF
*
* @returns {ItemTriggerConfig}
*/
fromOff(): ItemTriggerConfig;
/**
* Item changed state from ON
*
* @returns {ItemTriggerConfig}
*/
fromOn(): ItemTriggerConfig;
/**
* Item received command
*
* @returns {ItemTriggerConfig}
*/
receivedCommand(): ItemTriggerConfig;
op_type: string;
/**
* Item received update
*
* @returns {ItemTriggerConfig}
*/
receivedUpdate(): ItemTriggerConfig;
/**
* Item changed state
*
* @returns {ItemTriggerConfig}
*/
changed(): ItemTriggerConfig;
/**
* For timespan
* @param {*} timespan
* @returns {ItemTriggerConfig}
*/
for(timespan: any): ItemTriggerConfig;
/** @private */
private _complete;
/** @private */
private _toOHTriggers;
/** @private */
private _executeHook;
}
/**
* Thing-based trigger
*
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
export class ThingTriggerConfig extends TriggerConf {
constructor(thingUID: any, triggerBuilder: any);
/** @private */
private thingUID;
/** @private */
private _complete;
/** @private */
private describe;
/**
* Thing status changed
*
* @returns {ThingTriggerConfig}
*/
changed(): ThingTriggerConfig;
op_type: string;
/**
* Thing status updated
*
* @returns {ThingTriggerConfig}
*/
updated(): ThingTriggerConfig;
/**
* Thing status changed from
*
* @param {string} value
* @returns {ThingTriggerConfig}
*/
from(value: string): ThingTriggerConfig;
from_value: string;
/**
* Thing status changed to
*
* @param {string} value
* @returns {ThingTriggerConfig}
*/
to(value: string): ThingTriggerConfig;
to_value: string;
/** @private */
private _toOHTriggers;
}
/**
* System based trigger
*
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
export class SystemTriggerConfig extends TriggerConf {
_toOHTriggers: () => HostTrigger[];
describe: (compact: any) => string;
/** @private */
private _complete;
/**
* System trigger
*
* @returns {SystemTriggerConfig}
*/
rulesLoaded(): SystemTriggerConfig;
/**
* System trigger
*
* @returns {SystemTriggerConfig}
*/
ruleEngineStarted(): SystemTriggerConfig;
/**
* System trigger
*
* @returns {SystemTriggerConfig}
*/
userInterfacesStarted(): SystemTriggerConfig;
/**
* System trigger
*
* @returns {SystemTriggerConfig}
*/
thingsInitialized(): SystemTriggerConfig;
/**
* System trigger
*
* @returns {SystemTriggerConfig}
*/
startupComplete(): SystemTriggerConfig;
/**
* System trigger
*
* @param {number} level
* @returns {SystemTriggerConfig}
*/
startLevel(level: number): SystemTriggerConfig;
level: number;
}
/**
* @typedef { import("../items/items").Item } Item
* @private
*/
/**
* @callback ConditionCallback The callback function to determine if the condition is met.
* @returns {boolean} true if the condition is met, otherwise false
*/
/**
* Builder for rule Triggers
*
* @hideconstructor
*/
export class TriggerBuilder {
constructor(builder: any);
/** @private */
private _builder;
/** @private */
private _setTrigger;
currentTrigger: any;
/** @private */
private _or;
/** @private */
private _then;
/** @private */
private _if;
/**
* Specifies a channel event as a source for the rule to fire.
*
* @param {string} channelName the name of the channel
* @returns {ChannelTriggerConfig} the trigger config
*/
channel(channelName: string): ChannelTriggerConfig;
/**
* Specifies a cron schedule for the rule to fire.
*
* @param {string} cronExpression the cron expression
* @returns {CronTriggerConfig} the trigger config
*/
cron(cronExpression: string): CronTriggerConfig;
/**
* Specifies a time schedule for the rule to fire.
*
* @param {string} time the time expression (in `HH:mm`) defining the triggering schedule
* @returns {TimeOfDayTriggerConfig} the trigger config
*/
timeOfDay(time: string): TimeOfDayTriggerConfig;
/**
* Specifies an Item as the source of changes to trigger a rule.
*
* @param {Item|string} itemOrName the {@link Item} or the name of the Item
* @returns {ItemTriggerConfig} the trigger config
*/
item(itemOrName: Item | string): ItemTriggerConfig;
/**
* Specifies a group member as the source of changes to trigger a rule.
*
* @param {Item|string} groupOrName the {@link Item} or the name of the group
* @returns {ItemTriggerConfig} the trigger config
*/
memberOf(groupOrName: Item | string): ItemTriggerConfig;
/**
* Specifies a Thing status event as a source for the rule to fire.
*
* @param {string} thingUID the UID of the Thing
* @returns {ThingTriggerConfig} the trigger config
*/
thing(thingUID: string): ThingTriggerConfig;
/**
* Specifies a system event as a source for the rule to fire.
*
* @memberof TriggerBuilder
* @returns {SystemTriggerConfig} the trigger config
*/
system(): SystemTriggerConfig;
/**
* Specifies a DateTime Item whose (optional) date and time schedule the rule to fire.
*
* @param {Item|string} itemOrName the {@link Item} or the name of the Item
* @returns {DateTimeTriggerConfig} the trigger config
*/
dateTime(itemOrName: Item | string): DateTimeTriggerConfig;
}
/**
* {RuleBuilder} RuleBuilder triggers
* @memberof TriggerBuilder
*/
declare class TriggerConf {
constructor(triggerBuilder: any);
/** @private */
private triggerBuilder;
/**
* Adds an additional Trigger
*
* @returns {TriggerBuilder}
*/
or(): TriggerBuilder;
/**
* Move to the rule operations
*
* @param {*} [fn] the optional function to execute
* @returns {operations.OperationBuilder}
*/
then(fn?: any): operations.OperationBuilder;
/**
* Move to the rule condition
*
* @param {ConditionCallback} [fn] the optional function to execute
* @returns {conditions.ConditionBuilder}
*/
if(fn?: ConditionCallback): conditions.ConditionBuilder;
}
/**
* Time of day-based trigger
*
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
declare class TimeOfDayTriggerConfig extends TriggerConf {
constructor(timeStr: any, triggerBuilder: any);
/** @private */
private timeStr;
/** @private */
private _complete;
/** @private */
private _toOHTriggers;
/** @private */
private describe;
}
/**
* DateTime Item based trigger
*
* @memberof TriggerBuilder
* @extends TriggerConf
* @hideconstructor
*/
declare class DateTimeTriggerConfig extends TriggerConf {
constructor(itemName: any, triggerBuilder: any);
/** @private */
private _itemName;
/** @private */
private _timeOnly;
/** @private */
private _offset;
/** @private */
private _complete;
/** @private */
private _toOHTriggers;
/** @private */
private describe;
/**
* Specifies whether only the time of the Item should be compared or the date and time.
*
* @param {boolean} [timeOnly=true]
* @returns {DateTimeTriggerConfig}
*/
timeOnly(timeOnly?: boolean): DateTimeTriggerConfig;
/**
* Specifies the offset in seconds to add to the time of the DateTime Item.
*
* @param {number} offset
* @returns {DateTimeTriggerConfig}
*/
withOffset(offset: number): DateTimeTriggerConfig;
}
import operations = require("./operation-builder");
import conditions = require("./condition-builder");
export {};
//# sourceMappingURL=trigger-builder.d.ts.map