0.0.1 • Published 9 years ago

iobroker.sequence v0.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

#Sequence Adapter for ioBroker

##Description:

This adapter offers the configuration of command sequences (different commands, that are triggered after each other). The sequence is built of multiple steps ('outputs.sequence.xx' and 'inputs.sequence.xx') and a common control block ('outputs.cmd.xx' and 'inputs.cmd.xx'). Up to now, the sequence adapter supports one sequence chain, with up to 10 steps.

##The command unit contains:

  • 'inputs.cmd.start' Starts sequence
  • 'inputs.cmd.stop' Stops sequence
  • 'inputs.cmd.next' Manual switch to next step
  • 'inputs.cmd.noOfLastStep' Number of the last step. After this step, the sequence is finished.
  • 'outputs.cmd.started'
  • 'outputs.cmd.stopped'
  • 'outputs.cmd.error'
  • 'outputs.cmd.lastStepNo'
  • 'outputs.cmd.lastStepName'
  • 'outputs.cmd.currentStepNo'
  • 'outputs.cmd.currentStepName'
  • 'outputs.cmd.nextStepNo'
  • 'outputs.cmd.nextStepName'
  • 'outputs.cmd.remainingWaitingTime'
  • 'outputs.cmd.remainingMonitoringTime'

##Each step contains (xx is the step number 1..15):

  • A symbolic step name 'inputs.sequence.name_xx'
  • A monitoring time in mSec 'inputs.sequence.monitoringTime_xx'
  • A command string input 'inputs.sequence.commandString_xx'
  • A command output 'outputs.sequence.cmd_xx'
  • An input for command feedback 'inputs.sequence.condition_xx' or an waiting time 'T=' (mSec)

##Common step IOs:

  • 'outputs.sequence.cmd' always writes the command of the current step out. All step commands are written to this output sequentially.
  • 'inputs.sequence.condition' is a common condition input for all steps.

##Input values: All condition inputs accept any value (which is not null/undefined/0/false) as TRUE. If a condition value has ACK==true, it will be ignored. A configured waiting time will with ACK==true will not be ignored. After reading input values, the ACK is set to TRUE.

##Workflow:

  • If 'inputs.cmd.start' is set, the sequence switches to STEP1. The CMD outputs will be flushed. The condition inputs will not be touched!
  • The command from 'inputs.sequence.commandString_01' is written to 'outputs.sequence.cmd_01' and to 'outputs.sequence.cmd'
  • If 'inputs.sequence.monitoringTime_01' is larger than 0, the monitoring time is started.
  • If 'inputs.sequence.condition_01' or 'inputs.sequence.condition' is set, the sequence switches to STEP2
  • If the monitoring timeout exceeds, the sequence is STOPPED and 'outputs.cmd.error' is set.
  • 'Inputs.CMD.Stop' stops the sequence in case of an error
  • Instead of using a feedback value at 'inputs.sequence.condition_01', a waiting time in mSec can be configured (e.g. 1 second 'T=1000')

Inputs (Start, Stop, Next, conditions) accepts all values as TRUE ("null/NaN/undefinded/false/''" are interpreted as FALSE).

##Prerequirements:

##Change log:

###0.0.1 (2015-09-28)

  • Initial version

##LOP:

  • Acknowledge mode (manual acknowledge for each step)
  • Multiple sequences (inside one adapter instance)
  • More than 15 steps
  • Branches/jumps inside one sequence???