A javascript implementation of [ZCL over IP](https://www.silabs.com/documents/public/user-guides/ug278-zcl-over-ip.pdf).
npm install zclipA javascript implementation of ZCL over IP.
* Installation
* Examples
* API
* Supported Clusters
* Run the tests
* Support
``sh`
npm install zclip
Examples are located in /examples
`sh
var coap = require('coap');
var zcl = require('../.')(coap);
var deviceIp = '::1';
var clusterEndpoint = 1;
var onOff = zcl.clusters.OnOff({
ip: deviceIp,
endpoint: clusterEndpoint
});
onOff.on({}, (err, response) => {
if (err) {
console.error(err);
}
console.log(response.code);
});
`
---
`javascript`
var alarmsCluster = zcl.clusters.Alarms({
ip:
endpoint:
});
#### alarms.bind
`javascript`
alarmsCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### alarms.read
`javascript`
alarmsCluster.read(args, callback);
* args - None
* callback
* err
* response
* alarmCount \
* responseCode
#### alarms.alarm
`javascript`
alarms.alarm(args, callback);
* args
* alarmCode \
* clusterId \
* callback
* err
* response
* responseCode
#### alarms.getAlarmResponse
`javascript`
alarms.getAlarmResponse(args, callback);
* args
* status \
* alarmCode \
* clusterId \
* timeStamp \
* callback
* err
* response
* responseCode
#### alarms.getAlarm
`javascript`
alarms.getAlarm(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### alarms.resetAlarmLog
`javascript`
alarms.resetAlarmLog(args, callback);
* args - None
* callback
* err
* response
* responseCode
---
`javascript`
var applianceControlCluster = zcl.clusters.ApplianceControl({
ip:
endpoint:
});
#### applianceControl.bind
`javascript`
applianceControlCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### applianceControl.read
`javascript`
applianceControlCluster.read(args, callback);
* args - None
* callback
* err
* response
* startTime \
* finishTime \
* remainingTime \
* responseCode
#### applianceControl.signalStateResponse
`javascript`
applianceControl.signalStateResponse(args, callback);
* args
* applianceStatus \
* remoteEnableFlagsAndDeviceStatus2 \
* applianceStatus2 \
* callback
* err
* response
* responseCode
#### applianceControl.signalStateNotification
`javascript`
applianceControl.signalStateNotification(args, callback);
* args
* applianceStatus \
* remoteEnableFlagsAndDeviceStatus2 \
* applianceStatus2 \
* callback
* err
* response
* responseCode
#### applianceControl.writeFunctions
`javascript`
applianceControl.writeFunctions(args, callback);
* args
* functionId \
* functionDataType \
* functionData \
* callback
* err
* response
* responseCode
#### applianceControl.overloadPauseResume
`javascript`
applianceControl.overloadPauseResume(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### applianceControl.overloadPause
`javascript`
applianceControl.overloadPause(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### applianceControl.overloadWarning
`javascript`
applianceControl.overloadWarning(args, callback);
* args
* warningEvent \
* callback
* err
* response
* responseCode
---
`javascript`
var applianceEventsAndAlertCluster = zcl.clusters.ApplianceEventsAndAlert({
ip:
endpoint:
});
#### applianceEventsAndAlert.bind
`javascript`
applianceEventsAndAlertCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### applianceEventsAndAlert.read
`javascript`
applianceEventsAndAlertCluster.read(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### applianceEventsAndAlert.getAlertsResponse
`javascript`
applianceEventsAndAlert.getAlertsResponse(args, callback);
* args
* alertsCount \
* alertStructures \
* callback
* err
* response
* responseCode
#### applianceEventsAndAlert.alertsNotification
`javascript`
applianceEventsAndAlert.alertsNotification(args, callback);
* args
* alertsCount \
* alertStructures \
* callback
* err
* response
* responseCode
#### applianceEventsAndAlert.eventsNotification
`javascript`
applianceEventsAndAlert.eventsNotification(args, callback);
* args
* eventHeader \
* eventId \
* callback
* err
* response
* responseCode
---
`javascript`
var applianceIdentificationCluster = zcl.clusters.ApplianceIdentification({
ip:
endpoint:
});
#### applianceIdentification.bind
`javascript`
applianceIdentificationCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### applianceIdentification.read
`javascript`
applianceIdentificationCluster.read(args, callback);
* args - None
* callback
* err
* response
* basicIdentification \
* companyName \
* companyId \
* brandName \
* brandId \
* model \
* partNumber \
* productRevision \
* softwareRevision \
* productTypeName \
* productTypeId \
* cecedSpecificationVersion \
* responseCode
---
`javascript`
var applianceStatisticsCluster = zcl.clusters.ApplianceStatistics({
ip:
endpoint:
});
#### applianceStatistics.bind
`javascript`
applianceStatisticsCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### applianceStatistics.read
`javascript`
applianceStatisticsCluster.read(args, callback);
* args - None
* callback
* err
* response
* logMaxSize \
* logQueueMaxSize \
* responseCode
#### applianceStatistics.logRequest
`javascript`
applianceStatistics.logRequest(args, callback);
* args
* logId \
* callback
* err
* response
* responseCode
#### applianceStatistics.logQueueRequest
`javascript`
applianceStatistics.logQueueRequest(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### applianceStatistics.logQueueResponse
`javascript`
applianceStatistics.logQueueResponse(args, callback);
* args
* logQueueSize \
* logIds \
* callback
* err
* response
* responseCode
#### applianceStatistics.statisticsAvailable
`javascript`
applianceStatistics.statisticsAvailable(args, callback);
* args
* logQueueSize \
* logIds \
* callback
* err
* response
* responseCode
---
`javascript`
var ballastConfigurationCluster = zcl.clusters.BallastConfiguration({
ip:
endpoint:
});
#### ballastConfiguration.bind
`javascript`
ballastConfigurationCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### ballastConfiguration.read
`javascript`
ballastConfigurationCluster.read(args, callback);
* args - None
* callback
* err
* response
* physicalMinLevel \
* physicalMaxLevel \
* ballastStatus \
* minLevel \
* maxLevel \
* powerOnLevel \
* powerOnFadeTime \
* intrinsicBallastFactor \
* ballastFactorAdjustment \
* lampQuality \
* lampType \
* lampManufacturer \
* lampRatedHours \
* lampBurnHours \
* lampAlarmMode \
* lampBurnHoursTripPoint \
* responseCode
---
`javascript`
var basicCluster = zcl.clusters.Basic({
ip:
endpoint:
});
#### basic.bind
`javascript`
basicCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### basic.read
`javascript`
basicCluster.read(args, callback);
* args - None
* callback
* err
* response
* zclVersion \
* applicationVersion \
* stackVersion \
* hardwareVersion \
* manufacturerName \
* modelIdentifier \
* dateCode \
* powerSource \
* genericDeviceClass \
* genericDeviceType \
* productCode \
* productUrl \
* locationDescription \
* physicalEnvironment \
* deviceEnabled \
* alarmMask \
* disableLocalConfig \
* responseCode
#### basic.resetToFactoryDefaults
`javascript`
basic.resetToFactoryDefaults(args, callback);
* args - None
* callback
* err
* response
* responseCode
---
`javascript`
var binaryInputBasicCluster = zcl.clusters.BinaryInputBasic({
ip:
endpoint:
});
#### binaryInputBasic.bind
`javascript`
binaryInputBasicCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### binaryInputBasic.read
`javascript`
binaryInputBasicCluster.read(args, callback);
* args - None
* callback
* err
* response
* activeText \
* description \
* inactiveText \
* outOfService \
* polarity \
* presentValue \
* reliability \
* statusFlags \
* applicationType \
* responseCode
---
`javascript`
var colorControlCluster = zcl.clusters.ColorControl({
ip:
endpoint:
});
#### colorControl.bind
`javascript`
colorControlCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### colorControl.read
`javascript`
colorControlCluster.read(args, callback);
* args - None
* callback
* err
* response
* currentHue \
* currentSaturation \
* remainingTime \
* currentX \
* currentY \
* driftCompensation \
* compensationText \
* colorTemperature \
* colorMode \
* colorControlOptions \
* numberOfPrimaries \
* primary1X \
* primary1Y \
* primary1Intensity \
* primary2X \
* primary2Y \
* primary2Intensity \
* primary3X \
* primary3Y \
* primary3Intensity \
* primary4X \
* primary4Y \
* primary4Intensity \
* primary5X \
* primary5Y \
* primary5Intensity \
* primary6X \
* primary6Y \
* primary6Intensity \
* whitePointX \
* whitePointY \
* colorPointRX \
* colorPointRY \
* colorPointRIntensity \
* colorPointGX \
* colorPointGY \
* colorPointGIntensity \
* colorPointBX \
* colorPointBY \
* colorPointBIntensity \
* coupleColorTempToLevelMinMireds \
* startUpColorTemperatureMireds \
* responseCode
#### colorControl.moveToColorTemperature
`javascript`
colorControl.moveToColorTemperature(args, callback);
* args
* colorTemperature \
* transitionTime \
* callback
* err
* response
* responseCode
#### colorControl.moveHue
`javascript`
colorControl.moveHue(args, callback);
* args
* moveMode \
* rate \
* callback
* err
* response
* responseCode
#### colorControl.stepHue
`javascript`
colorControl.stepHue(args, callback);
* args
* stepMode \
* stepSize \
* transitionTime \
* callback
* err
* response
* responseCode
#### colorControl.moveToSaturation
`javascript`
colorControl.moveToSaturation(args, callback);
* args
* saturation \
* transitionTime \
* callback
* err
* response
* responseCode
#### colorControl.moveSaturation
`javascript`
colorControl.moveSaturation(args, callback);
* args
* moveMode \
* rate \
* callback
* err
* response
* responseCode
#### colorControl.stepSaturation
`javascript`
colorControl.stepSaturation(args, callback);
* args
* stepMode \
* stepSize \
* transitionTime \
* callback
* err
* response
* responseCode
#### colorControl.moveToHueAndSaturation
`javascript`
colorControl.moveToHueAndSaturation(args, callback);
* args
* hue \
* saturation \
* transitionTime \
* callback
* err
* response
* responseCode
#### colorControl.moveToColor
`javascript`
colorControl.moveToColor(args, callback);
* args
* colorx \
* colory \
* transitionTime \
* callback
* err
* response
* responseCode
#### colorControl.moveColor
`javascript`
colorControl.moveColor(args, callback);
* args
* ratex \
* ratey \
* callback
* err
* response
* responseCode
#### colorControl.stepColor
`javascript`
colorControl.stepColor(args, callback);
* args
* stepx \
* stepy \
* transitionTime \
* callback
* err
* response
* responseCode
---
`javascript`
var commissioningCluster = zcl.clusters.Commissioning({
ip:
endpoint:
});
#### commissioning.bind
`javascript`
commissioningCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### commissioning.read
`javascript`
commissioningCluster.read(args, callback);
* args - None
* callback
* err
* response
* shortAddress \
* extendedPanId \
* panId \
* channelMask \
* protocolVersion \
* stackProfile \
* startupControl \
* trustCenterAddress \
* trustCenterMasterKey \
* networkKey \
* useInsecureJoin \
* preconfiguredLinkKey \
* networkKeySequenceNumber \
* networkKeyType \
* networkManagerAddress \
* scanAttempts \
* timeBetweenScans \
* rejoinInterval \
* maxRejoinInterval \
* indirectPollRate \
* parentRetryThreshold \
* concentratorFlag \
* concentratorRadius \
* concentratorDiscoveryTime \
* responseCode
#### commissioning.restartDeviceResponse
`javascript`
commissioning.restartDeviceResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### commissioning.saveStartupParametersResponse
`javascript`
commissioning.saveStartupParametersResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### commissioning.restoreStartupParametersResponse
`javascript`
commissioning.restoreStartupParametersResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### commissioning.resetStartupParametersResponse
`javascript`
commissioning.resetStartupParametersResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
---
`javascript`
var dehumidificationControlCluster = zcl.clusters.DehumidificationControl({
ip:
endpoint:
});
#### dehumidificationControl.bind
`javascript`
dehumidificationControlCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### dehumidificationControl.read
`javascript`
dehumidificationControlCluster.read(args, callback);
* args - None
* callback
* err
* response
* relativeHumidity \
* dehumidificationCooling \
* rhDehumidificationSetpoint \
* relativeHumidityMode \
* dehumidificationLockout \
* dehumidificationHysteresis \
* dehumidificationMaxCool \
* relativeHumidityDisplay \
* responseCode
---
`javascript`
var deviceTemperatureConfigurationCluster = zcl.clusters.DeviceTemperatureConfiguration({
ip:
endpoint:
});
#### deviceTemperatureConfiguration.bind
`javascript`
deviceTemperatureConfigurationCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### deviceTemperatureConfiguration.read
`javascript`
deviceTemperatureConfigurationCluster.read(args, callback);
* args - None
* callback
* err
* response
* currentTemperature \
* minTempExperienced \
* maxTempExperienced \
* overTempTotalDwell \
* deviceTempAlarmMask \
* lowTempThreshold \
* highTempThreshold \
* lowTempDwellTripPoint \
* highTempDwellTripPoint \
* responseCode
---
`javascript`
var diagnosticsCluster = zcl.clusters.Diagnostics({
ip:
endpoint:
});
#### diagnostics.bind
`javascript`
diagnosticsCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### diagnostics.read
`javascript`
diagnosticsCluster.read(args, callback);
* args - None
* callback
* err
* response
* numberOfResets \
* persistentMemoryWrites \
* macRxBroadcast \
* macTxBroadcast \
* macRxUnicast \
* macTxUnicast \
* macTxUnicastRetry \
* macTxUnicastFail \
* apsRxBroadcast \
* apsTxBroadcast \
* apsRxUnicast \
* apsUnicastSuccess \
* apsTxUnicastRetries \
* apsTxUnicastFailures \
* routeDiscoveryInitiated \
* neighborAdded \
* neighborMoved \
* neighborStale \
* joinIndication \
* childMoved \
* networkFrameControlFailure \
* apsFrameControlFailure \
* apsUnauthorizedKey \
* networkDecryptionFailure \
* apsDecryptionFailure \
* packetBufferAllocationFailures \
* relayedUnicasts \
* phyToMacQueueLimitReached \
* packetValidateDropCount \
* averageMacRetryPerApsMessageSent \
* lastMessageLqi \
* lastMessageRssi \
* responseCode
---
`javascript`
var doorLockCluster = zcl.clusters.DoorLock({
ip:
endpoint:
});
#### doorLock.bind
`javascript`
doorLockCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### doorLock.read
`javascript`
doorLockCluster.read(args, callback);
* args - None
* callback
* err
* response
* lockState \
* lockType \
* actuatorEnabled \
* doorState \
* doorOpenEvents \
* doorClosedEvents \
* openPeriod \
* numLockRecordsSupported \
* numTotalUsersSupported \
* numPinUsersSupported \
* numRfidUsersSupported \
* numWeekdaySchedulesSupportedPerUser \
* numYeardaySchedulesSupportedPerUser \
* numHolidaySchedulesSupportedPerUser \
* maxPinLength \
* minPinLength \
* maxRfidCodeLength \
* minRfidCodeLength \
* enableLogging \
* language \
* ledSettings \
* autoRelockTime \
* soundVolume \
* operatingMode \
* supportedOperatingModes \
* defaultConfigurationRegister \
* enableLocalProgramming \
* enableOneTouchLocking \
* enableInsideStatusLed \
* enablePrivacyModeButton \
* wrongCodeEntryLimit \
* userCodeTemporaryDisableTime \
* sendPinOverTheAir \
* requirePinForRfOperation \
* zigbeeSecurityLevel \
* alarmMask \
* keypadOperationEventMask \
* rfOperationEventMask \
* manualOperationEventMask \
* rfidOperationEventMask \
* keypadProgrammingEventMask \
* rfProgrammingEventMask \
* rfidProgrammingEventMask \
* responseCode
#### doorLock.getYeardayScheduleResponse
`javascript`
doorLock.getYeardayScheduleResponse(args, callback);
* args
* scheduleId \
* userId \
* status \
* localStartTime \
* localEndTime \
* callback
* err
* response
* responseCode
#### doorLock.unlockDoorResponse
`javascript`
doorLock.unlockDoorResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.toggleResponse
`javascript`
doorLock.toggleResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.unlockWithTimeoutResponse
`javascript`
doorLock.unlockWithTimeoutResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.getLogRecordResponse
`javascript`
doorLock.getLogRecordResponse(args, callback);
* args
* logEntryId \
* timestamp \
* eventType \
* source \
* eventIdOrAlarmCode \
* userId \
* pin \
* callback
* err
* response
* responseCode
#### doorLock.setPinResponse
`javascript`
doorLock.setPinResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.getPinResponse
`javascript`
doorLock.getPinResponse(args, callback);
* args
* userId \
* userStatus \
* userType \
* pin \
* callback
* err
* response
* responseCode
#### doorLock.clearPinResponse
`javascript`
doorLock.clearPinResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.clearAllPinsResponse
`javascript`
doorLock.clearAllPinsResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.setUserStatusResponse
`javascript`
doorLock.setUserStatusResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.clearYeardayScheduleResponse
`javascript`
doorLock.clearYeardayScheduleResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.setHolidayScheduleResponse
`javascript`
doorLock.setHolidayScheduleResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.getHolidayScheduleResponse
`javascript`
doorLock.getHolidayScheduleResponse(args, callback);
* args
* scheduleId \
* status \
* localStartTime \
* localEndTime \
* operatingModeDuringHoliday \
* callback
* err
* response
* responseCode
#### doorLock.clearHolidayScheduleResponse
`javascript`
doorLock.clearHolidayScheduleResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.setUserTypeResponse
`javascript`
doorLock.setUserTypeResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.getUserTypeResponse
`javascript`
doorLock.getUserTypeResponse(args, callback);
* args
* userId \
* userType \
* callback
* err
* response
* responseCode
#### doorLock.setRfidResponse
`javascript`
doorLock.setRfidResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.getRfidResponse
`javascript`
doorLock.getRfidResponse(args, callback);
* args
* userId \
* userStatus \
* userType \
* rfid \
* callback
* err
* response
* responseCode
#### doorLock.clearRfidResponse
`javascript`
doorLock.clearRfidResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.clearAllRfidsResponse
`javascript`
doorLock.clearAllRfidsResponse(args, callback);
* args
* status \
* callback
* err
* response
* responseCode
#### doorLock.operationEventNotification
`javascript`
doorLock.operationEventNotification(args, callback);
* args
* source \
* eventCode \
* userId \
* pin \
* timeStamp \
* data \
* callback
* err
* response
* responseCode
#### doorLock.programmingEventNotification
`javascript`
doorLock.programmingEventNotification(args, callback);
* args
* source \
* eventCode \
* userId \
* pin \
* userType \
* userStatus \
* timeStamp \
* data \
* callback
* err
* response
* responseCode
---
`javascript`
var electricalMeasurementCluster = zcl.clusters.ElectricalMeasurement({
ip:
endpoint:
});
#### electricalMeasurement.bind
`javascript`
electricalMeasurementCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### electricalMeasurement.read
`javascript`
electricalMeasurementCluster.read(args, callback);
* args - None
* callback
* err
* response
* measurementType \
* dcVoltage \
* dcVoltageMin \
* dcVoltageMax \
* dcCurrent \
* dcCurrentMin \
* dcCurrentMax \
* dcPower \
* dcPowerMin \
* dcPowerMax \
* dcVoltageMultiplier \
* dcVoltageDivisor \
* dcCurrentMultiplier \
* dcCurrentDivisor \
* dcPowerMultiplier \
* dcPowerDivisor \
* acFrequency \
* acFrequencyMin \
* acFrequencyMax \
* neutralCurrent \
* totalActivePower \
* totalReactivePower \
* totalApparentPower \
* measured1stHarmonicCurrent \
* measured3rdHarmonicCurrent \
* measured5thHarmonicCurrent \
* measured7thHarmonicCurrent \
* measured9thHarmonicCurrent \
* measured11thHarmonicCurrent \
* measuredPhase1stHarmonicCurrent \
* measuredPhase3rdHarmonicCurrent \
* measuredPhase5thHarmonicCurrent \
* measuredPhase7thHarmonicCurrent \
* measuredPhase9thHarmonicCurrent \
* measuredPhase11thHarmonicCurrent \
* acFrequencyMultiplier \
* acFrequencyDivisor \
* powerMultiplier \
* powerDivisor \
* harmonicCurrentMultiplier \
* phaseHarmonicCurrentMultiplier \
* instantaneousVoltage \
* instantaneousLineCurrent \
* instantaneousActiveCurrent \
* instantaneousReactiveCurrent \
* instantaneousPower \
* rmsVoltage \
* rmsVoltageMin \
* rmsVoltageMax \
* rmsCurrent \
* rmsCurrentMin \
* rmsCurrentMax \
* activePower \
* activePowerMin \
* activePowerMax \
* reactivePower \
* apparentPower \
* powerFactor \
* averageRmsVoltageMeasurementPeriod \
* averageRmsUnderVoltageCounter \
* rmsExtremeOverVoltagePeriod \
* rmsExtremeUnderVoltagePeriod \
* rmsVoltageSagPeriod \
* rmsVoltageSwellPeriod \
* acVoltageMultiplier \
* acVoltageDivisor \
* acCurrentMultiplier \
* acCurrentDivisor \
* acPowerMultiplier \
* acPowerDivisor \
* overloadAlarmsMask \
* voltageOverload \
* currentOverload \
* acOverloadAlarmsMask \
* acVoltageOverload \
* acCurrentOverload \
* acActivePowerOverload \
* acReactivePowerOverload \
* averageRmsOverVoltage \
* averageRmsUnderVoltage \
* rmsExtremeOverVoltage \
* rmsExtremeUnderVoltage \
* rmsVoltageSag \
* rmsVoltageSwell \
* lineCurrentPhaseB \
* activeCurrentPhaseB \
* reactiveCurrentPhaseB \
* rmsVoltagePhaseB \
* rmsVoltageMinPhaseB \
* rmsVoltageMaxPhaseB \
* rmsCurrentPhaseB \
* rmsCurrentMinPhaseB \
* rmsCurrentMaxPhaseB \
* activePowerPhaseB \
* activePowerMinPhaseB \
* activePowerMaxPhaseB \
* reactivePowerPhaseB \
* apparentPowerPhaseB \
* powerFactorPhaseB \
* averageRmsVoltageMeasurementPeriodPhaseB \
* averageRmsOverVoltageCounterPhaseB \
* averageRmsUnderVoltageCounterPhaseB \
* rmsExtremeOverVoltagePeriodPhaseB \
* rmsExtremeUnderVoltagePeriodPhaseB \
* rmsVoltageSagPeriodPhaseB \
* rmsVoltageSwellPeriodPhaseB \
* lineCurrentPhaseC \
* activeCurrentPhaseC \
* reactiveCurrentPhaseC \
* rmsVoltagePhaseC \
* rmsVoltageMinPhaseC \
* rmsVoltageMaxPhaseC \
* rmsCurrentPhaseB \
* rmsCurrentMinPhaseC \
* rmsCurrentMaxPhaseC \
* activePowerPhaseC \
* activePowerMinPhaseC \
* activePowerMaxPhaseC \
* reactivePowerPhaseC \
* apparentPowerPhaseC \
* powerFactorPhaseC \
* averageRmsVoltageMeasurementPeriodPhaseC \
* averageRmsOverVoltageCounterPhaseC \
* averageRmsUnderVoltageCounterPhaseC \
* rmsExtremeOverVoltagePeriodPhaseC \
* rmsExtremeUnderVoltagePeriodPhaseC \
* rmsVoltageSagPeriodPhaseC \
* rmsVoltageSwellPeriodPhaseC \
* responseCode
#### electricalMeasurement.getProfileInfoCommand
`javascript`
electricalMeasurement.getProfileInfoCommand(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### electricalMeasurement.getMeasurementProfileCommand
`javascript`
electricalMeasurement.getMeasurementProfileCommand(args, callback);
* args
* attributeId \
* startTime \
* numberOfIntervals \
* callback
* err
* response
* responseCode
---
`javascript`
var fanControlCluster = zcl.clusters.FanControl({
ip:
endpoint:
});
#### fanControl.bind
`javascript`
fanControlCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### fanControl.read
`javascript`
fanControlCluster.read(args, callback);
* args - None
* callback
* err
* response
* fanMode \
* fanModeSequence \
* responseCode
---
`javascript`
var flowMeasurementCluster = zcl.clusters.FlowMeasurement({
ip:
endpoint:
});
#### flowMeasurement.bind
`javascript`
flowMeasurementCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### flowMeasurement.read
`javascript`
flowMeasurementCluster.read(args, callback);
* args - None
* callback
* err
* response
* measuredValue \
* minMeasuredValue \
* maxMeasuredValue \
* tolerance \
* responseCode
---
`javascript`
var groupsCluster = zcl.clusters.Groups({
ip:
endpoint:
});
#### groups.bind
`javascript`
groupsCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### groups.read
`javascript`
groupsCluster.read(args, callback);
* args - None
* callback
* err
* response
* nameSupport \
* responseCode
#### groups.addGroupResponse
`javascript`
groups.addGroupResponse(args, callback);
* args
* status \
* groupId \
* callback
* err
* response
* responseCode
#### groups.viewGroupResponse
`javascript`
groups.viewGroupResponse(args, callback);
* args
* status \
* groupId \
* groupName \
* callback
* err
* response
* responseCode
#### groups.getGroupMembershipResponse
`javascript`
groups.getGroupMembershipResponse(args, callback);
* args
* capacity \
* groupCount \
* groupList \
* callback
* err
* response
* responseCode
#### groups.removeGroupResponse
`javascript`
groups.removeGroupResponse(args, callback);
* args
* status \
* groupId \
* callback
* err
* response
* responseCode
#### groups.removeAllGroups
`javascript`
groups.removeAllGroups(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### groups.addGroupIfIdentifying
`javascript`
groups.addGroupIfIdentifying(args, callback);
* args
* groupId \
* groupName \
* callback
* err
* response
* responseCode
---
`javascript`
var iasAceCluster = zcl.clusters.IasAce({
ip:
endpoint:
});
#### iasAce.bind
`javascript`
iasAceCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### iasAce.read
`javascript`
iasAceCluster.read(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### iasAce.armResponse
`javascript`
iasAce.armResponse(args, callback);
* args
* armNotification \
* callback
* err
* response
* responseCode
#### iasAce.getZoneIdMapResponse
`javascript`
iasAce.getZoneIdMapResponse(args, callback);
* args
* section0 \
* section1 \
* section2 \
* section3 \
* section4 \
* section5 \
* section6 \
* section7 \
* section8 \
* section9 \
* section10 \
* section11 \
* section12 \
* section13 \
* section14 \
* section15 \
* callback
* err
* response
* responseCode
#### iasAce.getZoneInformationResponse
`javascript`
iasAce.getZoneInformationResponse(args, callback);
* args
* zoneId \
* zoneType \
* ieeeAddress \
* zoneLabel \
* callback
* err
* response
* responseCode
#### iasAce.zoneStatusChanged
`javascript`
iasAce.zoneStatusChanged(args, callback);
* args
* zoneId \
* zoneStatus \
* audibleNotification \
* zoneLabel \
* callback
* err
* response
* responseCode
#### iasAce.panelStatusChanged
`javascript`
iasAce.panelStatusChanged(args, callback);
* args
* panelStatus \
* secondsRemaining \
* audibleNotification \
* alarmStatus \
* callback
* err
* response
* responseCode
#### iasAce.getPanelStatusResponse
`javascript`
iasAce.getPanelStatusResponse(args, callback);
* args
* panelStatus \
* secondsRemaining \
* audibleNotification \
* alarmStatus \
* callback
* err
* response
* responseCode
#### iasAce.setBypassedZoneList
`javascript`
iasAce.setBypassedZoneList(args, callback);
* args
* numberOfZones \
* zoneIds \
* callback
* err
* response
* responseCode
#### iasAce.bypassResponse
`javascript`
iasAce.bypassResponse(args, callback);
* args
* numberOfZones \
* bypassResult \
* callback
* err
* response
* responseCode
#### iasAce.getZoneStatusResponse
`javascript`
iasAce.getZoneStatusResponse(args, callback);
* args
* zoneStatusComplete \
* numberOfZones \
* zoneStatusResult \
* callback
* err
* response
* responseCode
#### iasAce.getZoneStatus
`javascript`
iasAce.getZoneStatus(args, callback);
* args
* startingZoneId \
* maxNumberOfZoneIds \
* zoneStatusMaskFlag \
* zoneStatusMask \
* callback
* err
* response
* responseCode
---
`javascript`
var iasWdCluster = zcl.clusters.IasWd({
ip:
endpoint:
});
#### iasWd.bind
`javascript`
iasWdCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### iasWd.read
`javascript`
iasWdCluster.read(args, callback);
* args - None
* callback
* err
* response
* maxDuration \
* responseCode
#### iasWd.startWarning
`javascript`
iasWd.startWarning(args, callback);
* args
* warningInfo \
* warningDuration \
* strobeDutyCycle \
* strobeLevel \
* callback
* err
* response
* responseCode
#### iasWd.squawk
`javascript`
iasWd.squawk(args, callback);
* args
* squawkInfo \
* callback
* err
* response
* responseCode
---
`javascript`
var iasZoneCluster = zcl.clusters.IasZone({
ip:
endpoint:
});
#### iasZone.bind
`javascript`
iasZoneCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### iasZone.read
`javascript`
iasZoneCluster.read(args, callback);
* args - None
* callback
* err
* response
* zoneState \
* zoneType \
* zoneStatus \
* iasCieAddress \
* zoneId \
* numberOfZoneSensitivityLevelsSupported \
* currentZoneSensitivityLevel \
* responseCode
#### iasZone.zoneStatusChangeNotification
`javascript`
iasZone.zoneStatusChangeNotification(args, callback);
* args
* zoneStatus \
* extendedStatus \
* zoneId \
* delay \
* callback
* err
* response
* responseCode
#### iasZone.zoneEnrollRequest
`javascript`
iasZone.zoneEnrollRequest(args, callback);
* args
* zoneType \
* manufacturerCode \
* callback
* err
* response
* responseCode
#### iasZone.initiateNormalOperationModeResponse
`javascript`
iasZone.initiateNormalOperationModeResponse(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### iasZone.initiateTestModeResponse
`javascript`
iasZone.initiateTestModeResponse(args, callback);
* args - None
* callback
* err
* response
* responseCode
---
`javascript`
var identifyCluster = zcl.clusters.Identify({
ip:
endpoint:
});
#### identify.bind
`javascript`
identifyCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### identify.read
`javascript`
identifyCluster.read(args, callback);
* args - None
* callback
* err
* response
* identifyTime \
* commissionState \
* responseCode
#### identify.identifyQueryResponse
`javascript`
identify.identifyQueryResponse(args, callback);
* args
* timeout \
* callback
* err
* response
* responseCode
#### identify.identifyQuery
`javascript`
identify.identifyQuery(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### identify.ezModeInvoke
`javascript`
identify.ezModeInvoke(args, callback);
* args
* action \
* callback
* err
* response
* responseCode
#### identify.updateCommissionState
`javascript`
identify.updateCommissionState(args, callback);
* args
* action \
* commissionStateMask \
* callback
* err
* response
* responseCode
---
`javascript`
var illuminanceLevelSensingCluster = zcl.clusters.IlluminanceLevelSensing({
ip:
endpoint:
});
#### illuminanceLevelSensing.bind
`javascript`
illuminanceLevelSensingCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### illuminanceLevelSensing.read
`javascript`
illuminanceLevelSensingCluster.read(args, callback);
* args - None
* callback
* err
* response
* levelStatus \
* lightSensorType \
* illuminanceLevelTarget \
* responseCode
---
`javascript`
var illuminanceMeasurementCluster = zcl.clusters.IlluminanceMeasurement({
ip:
endpoint:
});
#### illuminanceMeasurement.bind
`javascript`
illuminanceMeasurementCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### illuminanceMeasurement.read
`javascript`
illuminanceMeasurementCluster.read(args, callback);
* args - None
* callback
* err
* response
* measuredValue \
* minMeasuredValue \
* maxMeasuredValue \
* tolerance \
* lightSensorType \
* responseCode
---
`javascript`
var levelControlCluster = zcl.clusters.LevelControl({
ip:
endpoint:
});
#### levelControl.bind
`javascript`
levelControlCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### levelControl.read
`javascript`
levelControlCluster.read(args, callback);
* args - None
* callback
* err
* response
* currentLevel \
* remainingTime \
* options \
* onOffTransitionTime \
* onLevel \
* onTransitionTime \
* offTransitionTime \
* defaultMoveRate \
* startUpCurrentLevel \
* responseCode
#### levelControl.moveToLevel
`javascript`
levelControl.moveToLevel(args, callback);
* args
* level \
* transitionTime \
* callback
* err
* response
* responseCode
#### levelControl.move
`javascript`
levelControl.move(args, callback);
* args
* moveMode \
* rate \
* callback
* err
* response
* responseCode
#### levelControl.step
`javascript`
levelControl.step(args, callback);
* args
* stepMode \
* stepSize \
* transitionTime \
* callback
* err
* response
* responseCode
#### levelControl.stop
`javascript`
levelControl.stop(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### levelControl.moveToLevelWithOnOff
`javascript`
levelControl.moveToLevelWithOnOff(args, callback);
* args
* level \
* transitionTime \
* callback
* err
* response
* responseCode
#### levelControl.moveWithOnOff
`javascript`
levelControl.moveWithOnOff(args, callback);
* args
* moveMode \
* rate \
* callback
* err
* response
* responseCode
#### levelControl.stepWithOnOff
`javascript`
levelControl.stepWithOnOff(args, callback);
* args
* stepMode \
* stepSize \
* transitionTime \
* callback
* err
* response
* responseCode
#### levelControl.stopWithOnOff
`javascript`
levelControl.stopWithOnOff(args, callback);
* args - None
* callback
* err
* response
* responseCode
---
`javascript`
var meterIdentificationCluster = zcl.clusters.MeterIdentification({
ip:
endpoint:
});
#### meterIdentification.bind
`javascript`
meterIdentificationCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### meterIdentification.read
`javascript`
meterIdentificationCluster.read(args, callback);
* args - None
* callback
* err
* response
* companyName \
* meterTypeId \
* dataQualityId \
* customerName \
* model \
* partNumber \
* productRevision \
* softwareRevision \
* utilityName \
* pod \
* availablePower \
* powerThreshold \
* responseCode
---
`javascript`
var occupancySensingCluster = zcl.clusters.OccupancySensing({
ip:
endpoint:
});
#### occupancySensing.bind
`javascript`
occupancySensingCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### occupancySensing.read
`javascript`
occupancySensingCluster.read(args, callback);
* args - None
* callback
* err
* response
* occupancy \
* occupancySensorType \
* pirOccupiedToUnoccupiedDelay \
* pirUnoccupiedToOccupiedDelay \
* pirUnoccupiedToOccupiedThreshold \
* ultrasonicOccupiedToUnoccupiedDelay \
* ultrasonicUnoccupiedToOccupiedDelay \
* ultrasonicUnoccupiedToOccupiedThreshold \
* responseCode
---
`javascript`
var onOffCluster = zcl.clusters.OnOff({
ip:
endpoint:
});
#### onOff.bind
`javascript`
onOffCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### onOff.read
`javascript`
onOffCluster.read(args, callback);
* args - None
* callback
* err
* response
* onOff \
* startUpOnOff \
* responseCode
#### onOff.off
`javascript`
onOff.off(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### onOff.on
`javascript`
onOff.on(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### onOff.toggle
`javascript`
onOff.toggle(args, callback);
* args - None
* callback
* err
* response
* responseCode
---
`javascript`
var onOffSwitchConfigurationCluster = zcl.clusters.OnOffSwitchConfiguration({
ip:
endpoint:
});
#### onOffSwitchConfiguration.bind
`javascript`
onOffSwitchConfigurationCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### onOffSwitchConfiguration.read
`javascript`
onOffSwitchConfigurationCluster.read(args, callback);
* args - None
* callback
* err
* response
* switchType \
* switchActions \
* responseCode
---
`javascript`
var overTheAirBootloadingCluster = zcl.clusters.OverTheAirBootloading({
ip:
endpoint:
});
#### overTheAirBootloading.bind
`javascript`
overTheAirBootloadingCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### overTheAirBootloading.read
`javascript`
overTheAirBootloadingCluster.read(args, callback);
* args - None
* callback
* err
* response
* otaUpgradeServerId \
* offsetAddressIntoTheFile \
* otaCurrentFileVersion \
* otaCurrentZigBeeStackVersion \
* otaDownloadedFileVersion \
* otaDownloadedZigBeeStackVersion \
* otaUpgradeStatus \
* manufacturerId \
* imageTypeId \
* minimumBlockRequestPeriod \
* imageStamp \
* upgradeActivationPolicy \
* upgradeTimeoutPolicy \
* responseCode
#### overTheAirBootloading.imageNotify
`javascript`
overTheAirBootloading.imageNotify(args, callback);
* args
* payloadType \
* queryJitter \
* manufacturerId \
* imageType \
* newFileVersion \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.queryNextImageRequest
`javascript`
overTheAirBootloading.queryNextImageRequest(args, callback);
* args
* fieldControl \
* manufacturerId \
* imageType \
* currentFileVersion \
* hardwareVersion \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.queryNextImageResponse
`javascript`
overTheAirBootloading.queryNextImageResponse(args, callback);
* args
* status \
* manufacturerId \
* imageType \
* fileVersion \
* imageSize \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.imageBlockRequest
`javascript`
overTheAirBootloading.imageBlockRequest(args, callback);
* args
* fieldControl \
* manufacturerId \
* imageType \
* fileVersion \
* fileOffset \
* maxDataSize \
* requestNodeAddress \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.imagePageRequest
`javascript`
overTheAirBootloading.imagePageRequest(args, callback);
* args
* fieldControl \
* manufacturerId \
* imageType \
* fileVersion \
* fileOffset \
* maxDataSize \
* pageSize \
* responseSpacing \
* requestNodeAddress \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.imageBlockResponse
`javascript`
overTheAirBootloading.imageBlockResponse(args, callback);
* args
* status \
* manufacturerId \
* imageType \
* fileVersion \
* fileOffset \
* dataSize \
* imageData \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.upgradeEndRequest
`javascript`
overTheAirBootloading.upgradeEndRequest(args, callback);
* args
* status \
* manufacturerId \
* imageType \
* fileVersion \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.upgradeEndResponse
`javascript`
overTheAirBootloading.upgradeEndResponse(args, callback);
* args
* manufacturerId \
* imageType \
* fileVersion \
* currentTime \
* upgradeTime \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.querySpecificFileRequest
`javascript`
overTheAirBootloading.querySpecificFileRequest(args, callback);
* args
* requestNodeAddress \
* manufacturerId \
* imageType \
* fileVersion \
* currentZigbeeStackVersion \
* callback
* err
* response
* responseCode
#### overTheAirBootloading.querySpecificFileResponse
`javascript`
overTheAirBootloading.querySpecificFileResponse(args, callback);
* args
* status \
* manufacturerId \
* imageType \
* fileVersion \
* imageSize \
* callback
* err
* response
* responseCode
---
`javascript`
var pollControlCluster = zcl.clusters.PollControl({
ip:
endpoint:
});
#### pollControl.bind
`javascript`
pollControlCluster.bind(args, callback);
* args
* uid
* ip
* port
* endpoint
* callback
* err
* response
* responseCode
#### pollControl.read
`javascript`
pollControlCluster.read(args, callback);
* args - None
* callback
* err
* response
* checkInInterval \
* longPollInterval \
* shortPollInterval \
* fastPollTimeout \
* checkInIntervalMin \
* longPollIntervalMin \
* fastPollTimeoutMax \
* responseCode
#### pollControl.checkInResponse
`javascript`
pollControl.checkInResponse(args, callback);
* args
* startFastPolling \
* fastPollTimeout \
* callback
* err
* response
* responseCode
#### pollControl.fastPollStop
`javascript`
pollControl.fastPollStop(args, callback);
* args - None
* callback
* err
* response
* responseCode
#### pollControl.setLongPollInterval
`javascript``
pollControl.setLongPollInterval(args, callback);
* args
* newLongPollIn