diff --git a/src/triggers.js b/src/triggers.js index 70bd8e13..cfeacb4d 100644 --- a/src/triggers.js +++ b/src/triggers.js @@ -323,19 +323,23 @@ const GenericEventTrigger = (eventTopic, eventSource, eventTypes, triggerName) = * }); * * @memberof triggers - * @param {string} dutycycleItem Item (PercentType) to read the duty cycle from + * @param {Item|string} dutycycleItemOrName the Item or name of the Item (PercentType) to read the duty cycle from * @param {number} interval constant interval in which the output is switch ON and OFF again (in sec) * @param {number} [minDutyCycle] any duty cycle below this value will be increased to this value * @param {number} [maxDutyCycle] any duty cycle above this value will be decreased to this value * @param {number} [deadManSwitch] output will be switched off, when the duty cycle is not updated within this time (in ms) + * @param {boolean} [equateMinToZero=false] whether the duty cycle below `minDutyCycle` should be set to 0 + * @param {boolean} [equateMaxToHundred=true] whether the duty cycle above `maxDutyCycle` should be set to 100 * @param {string} [triggerName] the optional name of the trigger to create */ -const PWMTrigger = (dutycycleItem, interval, minDutyCycle, maxDutyCycle, deadManSwitch, triggerName) => +const PWMTrigger = (dutycycleItemOrName, interval, minDutyCycle, maxDutyCycle, deadManSwitch, equateMinToZero = false, equateMaxToHundred = true, triggerName) => _createTrigger('pwm.trigger', triggerName, { - dutycycleItem, + dutycycleItem: _isItem(dutycycleItemOrName) ? dutycycleItemOrName.name : dutycycleItemOrName, interval, minDutyCycle, + equateMinToZero, maxDutyCycle, + equateMaxToHundred, deadManSwitch }); diff --git a/test/triggers.spec.js b/test/triggers.spec.js index ab6f17e0..6020945d 100644 --- a/test/triggers.spec.js +++ b/test/triggers.spec.js @@ -367,6 +367,8 @@ describe('triggers.js', () => { minDutyCycle, maxDutyCycle, deadManSwitch, + undefined, + undefined, triggerName ); @@ -379,7 +381,9 @@ describe('triggers.js', () => { dutycycleItem, interval, minDutyCycle, + equateMinToZero: false, maxDutyCycle, + equateMaxToHundred: true, deadManSwitch } }) diff --git a/types/triggers.d.ts b/types/triggers.d.ts index fd43fd9e..efada417 100644 --- a/types/triggers.d.ts +++ b/types/triggers.d.ts @@ -265,14 +265,16 @@ export function DateTimeTrigger(itemOrName: Item | string, timeOnly?: boolean, o * }); * * @memberof triggers - * @param {string} dutycycleItem Item (PercentType) to read the duty cycle from + * @param {Item|string} dutycycleItemOrName the Item or name of the Item (PercentType) to read the duty cycle from * @param {number} interval constant interval in which the output is switch ON and OFF again (in sec) * @param {number} [minDutyCycle] any duty cycle below this value will be increased to this value * @param {number} [maxDutyCycle] any duty cycle above this value will be decreased to this value * @param {number} [deadManSwitch] output will be switched off, when the duty cycle is not updated within this time (in ms) + * @param {boolean} [equateMinToZero=false] whether the duty cycle below `minDutyCycle` should be set to 0 + * @param {boolean} [equateMaxToHundred=true] whether the duty cycle above `maxDutyCycle` should be set to 100 * @param {string} [triggerName] the optional name of the trigger to create */ -export function PWMTrigger(dutycycleItem: string, interval: number, minDutyCycle?: number, maxDutyCycle?: number, deadManSwitch?: number, triggerName?: string): HostTrigger; +export function PWMTrigger(dutycycleItemOrName: Item | string, interval: number, minDutyCycle?: number, maxDutyCycle?: number, deadManSwitch?: number, equateMinToZero?: boolean, equateMaxToHundred?: boolean, triggerName?: string): HostTrigger; /** * Creates a trigger for the {@link https://www.openhab.org/addons/automation/pidcontroller/ PID Controller Automation} add-on. * diff --git a/types/triggers.d.ts.map b/types/triggers.d.ts.map index fe118596..e3aee937 100644 --- a/types/triggers.d.ts.map +++ b/types/triggers.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../src/triggers.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA;;;;;;;;;;;GAWG;AACH,6CALW,MAAM,SACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;;;;;GAcG;AACH,mDALW,IAAI,GAAC,MAAM,aACX,MAAM,aACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;;GAWG;AACH,mDAJW,IAAI,GAAC,MAAM,UACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;;GAWG;AACH,+CAJW,IAAI,GAAC,MAAM,YACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;;GAWG;AACH,qDALW,IAAI,GAAC,MAAM,aACX,MAAM,aACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;GAUG;AACH,qDAJW,IAAI,GAAC,MAAM,UACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;GAUG;AACH,iDAJW,IAAI,GAAC,MAAM,YACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;GAUG;AACH,mDAJW,MAAM,WACN,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;;GAWG;AACH,mDALW,MAAM,WACN,MAAM,mBACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;;;;GAaG;AACH,oDAHW,MAAM,GAAC,MAAM,gBACb,MAAM,eAKb;AAEJ;;;;;;;;;GASG;AACH,+CAHW,MAAM,gBACN,MAAM,eAKb;AA2CJ;;;;;;;;;;;;;;;;;GAiBG;AACH,gDALW,MAAM,eACN,MAAM,cACN,MAAM,GAAC,MAAM,EAAE,gBACf,MAAM,eAQb;AAjEJ;;;;;;;;;GASG;AACH,uCAHW,MAAM,gBACN,MAAM,eAKb;AAEJ;;;;;;;;;;;GAWG;AACH,4CALW,IAAI,GAAC,MAAM,aACX,OAAO,WACP,MAAM,gBACN,MAAM,eAchB;AA4BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,0CAPW,MAAM,YACN,MAAM,iBACN,MAAM,iBACN,MAAM,kBACN,MAAM,gBACN,MAAM,eASb;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,sCAhBW,MAAM,gBACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,mBACN,MAAM,aACN,MAAM,gBACN,MAAM,qBACN,MAAM,qBACN,MAAM,mBACN,MAAM,mBACN,MAAM,mBACN,MAAM,uBACN,MAAM,gBACN,MAAM,eAkBb"} \ No newline at end of file +{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../src/triggers.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA;;;;;;;;;;;GAWG;AACH,6CALW,MAAM,SACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;;;;;GAcG;AACH,mDALW,IAAI,GAAC,MAAM,aACX,MAAM,aACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;;GAWG;AACH,mDAJW,IAAI,GAAC,MAAM,UACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;;GAWG;AACH,+CAJW,IAAI,GAAC,MAAM,YACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;;GAWG;AACH,qDALW,IAAI,GAAC,MAAM,aACX,MAAM,aACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;GAUG;AACH,qDAJW,IAAI,GAAC,MAAM,UACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;GAUG;AACH,iDAJW,IAAI,GAAC,MAAM,YACX,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;GAUG;AACH,mDAJW,MAAM,WACN,MAAM,gBACN,MAAM,eAMb;AAEJ;;;;;;;;;;;GAWG;AACH,mDALW,MAAM,WACN,MAAM,mBACN,MAAM,gBACN,MAAM,eAOb;AAEJ;;;;;;;;;;;;;GAaG;AACH,oDAHW,MAAM,GAAC,MAAM,gBACb,MAAM,eAKb;AAEJ;;;;;;;;;GASG;AACH,+CAHW,MAAM,gBACN,MAAM,eAKb;AA2CJ;;;;;;;;;;;;;;;;;GAiBG;AACH,gDALW,MAAM,eACN,MAAM,cACN,MAAM,GAAC,MAAM,EAAE,gBACf,MAAM,eAQb;AAjEJ;;;;;;;;;GASG;AACH,uCAHW,MAAM,gBACN,MAAM,eAKb;AAEJ;;;;;;;;;;;GAWG;AACH,4CALW,IAAI,GAAC,MAAM,aACX,OAAO,WACP,MAAM,gBACN,MAAM,eAchB;AA4BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,gDATW,IAAI,GAAC,MAAM,YACX,MAAM,iBACN,MAAM,iBACN,MAAM,kBACN,MAAM,oBACN,OAAO,uBACP,OAAO,gBACP,MAAM,eAWb;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,sCAhBW,MAAM,gBACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,mBACN,MAAM,aACN,MAAM,gBACN,MAAM,qBACN,MAAM,qBACN,MAAM,mBACN,MAAM,mBACN,MAAM,mBACN,MAAM,uBACN,MAAM,gBACN,MAAM,eAkBb"} \ No newline at end of file