@mwittig i gave it a try… implemented both
class HarmonyHub extends env.plugins.Plugin
init: (app, @framework, @config) =>
...
registerStateDigestHandler: (hubIP, handler) =>
@getHubInstance(@hubIP).then () =>
@hubInstance.on 'stateDigest', handler
env.logger.debug("state digest handler")
sendHarmonyHubCommand: (hubIP, command, commandType, deviceId) =>
and
class HarmonyHubActivitiesButtonsDevice extends env.devices.ButtonsDevice
constructor: (@config, @plugin) ->
...
env.logger.debug("test eintrag")
@Plugin.registerStateDigestHandler('stateDigest', (activityId, activityStatus) =>
env.logger.debug("event ausgeloest")
)
super(@config)
but when i start pimatic a error is thrown:
19:08:42.852 [pimatic-harmonyhub] test eintrag
19:08:42.854 [pimatic] Error loading device "activities-192-168.188.23": Cannot read property 'registerStateDigestHandler' of undefined
19:08:42.864 [pimatic] TypeError: Cannot read property 'registerStateDigestHandler' of undefined
19:08:42.864 [pimatic]> at new HarmonyHubActivitiesButtonsDevice (/home/ubuntu/pimatic-dev/node_modules/pimatic-harmonyhub/harmonyhub.coffee:295:14)
19:08:42.864 [pimatic]> at Object.framework.deviceManager.registerDeviceClass.createCallback (/home/ubuntu/pimatic-dev/node_modules/pimatic-harmonyhub/harmonyhub.coffee:61:18)
19:08:42.864 [pimatic]> at DeviceManager._loadDevice (/home/ubuntu/pimatic-dev/node_modules/pimatic/lib/devices.coffee:1517:26)
19:08:42.864 [pimatic]> at /home/ubuntu/pimatic-dev/node_modules/pimatic/lib/devices.coffee:1546:16
19:08:42.864 [pimatic]> at tryCatcher (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/util.js:16:23)
19:08:42.864 [pimatic]> at Promise._settlePromiseFromHandler (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:512:31)
19:08:42.864 [pimatic]> at Promise._settlePromise (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:569:18)
19:08:42.864 [pimatic]> at Promise._fulfillPromises (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:669:14)
19:08:42.864 [pimatic]> at Promise._settlePromises (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:695:18)
19:08:42.864 [pimatic]> at _drainQueueStep (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/async.js:138:12)
19:08:42.864 [pimatic]> at _drainQueue (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/async.js:131:9)
19:08:42.864 [pimatic]> at Async._drainQueues (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/async.js:147:5)
19:08:42.864 [pimatic]> at Immediate.Async.drainQueues [as _onImmediate] (/home/ubuntu/pimatic-dev/node_modules/pimatic/node_modules/bluebird/js/release/async.js:17:14)
19:08:42.864 [pimatic]> at processImmediate [as _immediateCallback] (timers.js:383:17)
any ideas?