Notes: - p:internal parameters - v:state variables - m:methodes - n:notifications generic ======= p:devType p:address p:parent n:alive() n:stateChange(out v:+) n:error(out description, out code) m:isAlive() m:getDescription(out vendorId, out productId, out version, out parent) m:getState(out v:*) m:getBusConfig(in/out busAddr, in/out busPort, in/out TTL) lamp.basic (extends generic) ========== m:powerSwitch(in/out bool target) lamp.queryable (extends lamp.basic) ============== v:enlighten (bool) lamp.dimmer (extends lamp.queryable) =========== v:level (float, precent) m:dimmer(in/out float level) lamp.rgb (extends lamp.queryable) ======== v:level{red, green, blue} (float, precent)x3 v:mode [fixed,shuffle] ??? m:dimmer(in/out float red, green, blue) m:setMode(fixed|shuffle) shutter.simple (extends generic) ============== m:up() m:down() m:stop() shutter.queryable (extends shutter.simple) ================= v:position (open|closed|opening|closing) door.simple (extends generic) =========== v:position (open|closed) door.locker (extends generic) =========== v:position (locked|unLocked) m:lock() m:unLock() media.simple (extends generic) ============ v:activity (play|pause|stop) v:volume{left,right} (float percent / db ?) m:play() m:pause() m:next() m:previous() m:stop() media.spotify (extends media.simple) ============= v:url m:setUrl ?? composite.simple (extends generic) ================ v:embedded... composite.gateway (extends composite.simple) ================= do be done...