EVENT CUSTOM BUTTONS
Button numbers can be drag and dropped to a new position. While holding the ALT key (Windows) / OPTION (macOS) buttons are swapped
Column Description
Button Label Enter \n to create labels with multiple lines. \t is substituted by the event type.
Event Description Description of the Event to be recorded.
Event Type Event type to be recorded or leave blank for no event. '±' types add a chosen offset (positive or negative) to the present value of the chosen event.
Event Value Value of event (1-100) to be recorded.
Action Perform an action at the time of the event.
Documentation The action Command. Depends on the action type, '{}' is replaced by the event value and the offset in case of a ± event type.
Button Visibility Hides/shows individual button.


EVENT BUTTONS CONFIGURATION OPTIONS
Option Description
Max buttons per row Sets a maximum number of buttons to display on a single row.
Button size Sets a size for the buttons. Choices are tiny, small and large.
Color Pattern Applies one of 99 autogenerated color patterns to the buttons. Set to "0" to manually choose the button colors.
Mark Last Pressed Invert state and color of last button pressed
Tooltips Show button specification as tooltips on hovering a button
Add Adds a new button to the bottom of the table.
Insert Inserts a new button above the selected button.
Delete Deletes the selected button.
Copy Table Copy the button table in tab separated format to the clipboard. Option or ALT click to copy a tabular format to the clipboard.
Help Opens this window.


LABELS
The following substitutions are applied to button labels
String Substitution
\n New line character
\t Event name (translated if using default event names)
\q Event type 1
\w Event type 2
\e Event type 3
\r Event type 4
\0 OFF (translated)
\1 ON (translated)
\2 OFF (translated, respecting button state)
\3 ON (translated, respecting button state)
\p STOP (translated)
\s START (translated)
\P STOP (translated, respecting button state)
\S START (translated, respecting button state)
\c CLOSE (translated)
\o OPEN (translated)
\C CLOSE (translated, respecting button state)
\O OPEN (translated, respecting button state)
\a AUTO (translated)
\m MANUAL (translated)
\A AUTO (translated, respecting button state)
\M MANUAL (translated, respecting button state)
\i STIRRER
\f FILL
\r RELEASE
\h HEATING
\l COOLING


COMMANDS
Note: "{}" can be used as a placeholder, it will be substituted by the current button value plus the offset for ± event types. If a placeholder occurs several times in a description/command, all those occurrences are replaced by the value.

Note: The placeholders {ET}, {BT}, {time}, {ETB}, {BTB} will be substituted by the current ET, BT, time, ET background, BT background value in Serial/CallProgram/MODBUS/S7/WebSocket commands

Note: Commands can be sequenced, separated by semicolons like in “<cmd1>;<cmd2>;<cmd3>”

Note: All characters given as documentation to a Serial Command action are sent as one string to the connected device. If the device can interpret this string as separate commands separated by semicolon this is fine. Otherwise you can use a Multiple Event referencing a number of event buttons (using a comma separated list of event button numbers as documentation string) where each of the referenced event buttons issues one of the commands via a corresponding Serial Command action. Those event buttons can be hidden thus having the same effect as if the Serial Command allowed a sequence of commands.

Note: In PHIDGET commands, the optional parameter <sn> has the form <hub_serial>[:<hub_port>] allows to refer to a specific Phidget HUB by given its serial number, and optionally specifying the port number the addressed module is connected to.

Note: In YOCTOPUCE commands, the optional parameter <sn> holds either the modules serial number or its name
Action Command Description
Serial Command ASCII serial command or binary a2b_uu(serial command)  
Call Program A program/script path (absolute or relative) start an external program
Multiple Event button numbers or sleep(<float>) separated by a comma: 1,2,sleep(2.5), 3.. triggers other buttons
Modbus Command _ variable holding the last value read via MODBUS
  $ variable holding the last state of the button pressed (1 or 0)
  sleep(<float>) sleep: add a delay of <float> seconds
  button(i,b) sets button i to pressed if value b is yes, true, t, or 1, otherwise to normal
  button(<bool>) sets calling button to “pressed” if argument is 1 or True
  button() toggles the state of the button
  read(slaveID,register) reads 1 16bit register from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as unsigned integer. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  readSigned(slaveId,register) reads 1 16bit register from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as signed integer. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  readBCD(slaveID,register) reads 1 16bit register from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as BCD. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  read32(slaveID,register) reads 2 16bit registers from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as unsigned integer. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  read32Signed(slaveID,register) reads 2 16bit registers from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as signed integer. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  read32BCD(slaveID,register) reads 2 16bit register from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as BCD. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  readFloat(slaveID,register) reads 2 16bit registers from slave slaveID using function 3 (Read Multiple Holding Registers) interpreted as float. The result is bound to the placeholder `_` and thus can be accessed in later commands.
  write(slaveId,register,value) or write([slaveId,register,value],..,[slaveId,register,value]) write register: MODBUS function 6 (int) or function 16 (float)
  wcoil(slaveId,register,<bool>) write coil: MODBUS function 5
  wcoils(slaveId,register,[<bool>,..,<bool>]) write coils: MODBUS function 15
  mwrite(slaveId,register,andMask,orMask) or mwrite(s,r,am,om,v) mask write register: MODBUS function 22 or simulates function 22 with function 6 and the given value v
  writem(slaveId,register,value) or writem(slaveId,register,[<int>,..,<int>]) write registers: MODBUS function 16
  writeBCD(s,r,v) or writeBCD([s,r,v],..,[s,r,v]) write 16bit BCD encoded value v to register r of slave s
  writeWord(slaveId,register,value) or writeWord([slaveId,register,value],..,[slaveId,register,value]) write 32bit float to two 16bit int registers: MODBUS function 16
  writeLong(slaveId,register,value) or writeLong([slaveId,register,value],..,[slaveId,register,value]) write 32bit integer to two 16bit int registers: MODBUS function 16
  writeSingle(slaveId,register,value) or writeSingle([slaveId,register,value],..,[slaveId,register,value]) write 16bit integer to a single 16bit register: MODBUS function 6 (int)
DTA Command Insert Data address : value, ex. 4701:1000 and sv is 100.
Always multiply with 10 if value Unit: 0.1 / ex. 4719:0 stops heating
 
IO Command _ variable holding the last result value
  $ variable holding the last state of the button pressed (1 or 0)
  set(c,b[,sn]) PHIDGET Binary Output: switches channel c off (b=0) and on (b=1)
  toggle(c[,sn]) PHIDGET Binary Output: toggles channel c
  pulse(c,t[,sn]) PHIDGET Binary Output: sets the output of channel c to on for time t in milliseconds
  out(c,v[,sn]) PHIDGET Voltage Output: sets voltage output of channel c to v (float)
  accel(c,v[,sn]) PHIDGET DCMotor: sets acceleration of channel c to v (float)
  vel(c,v[,sn]) PHIDGET DCMotor: sets target velocity of channel c to v (float)
  limit(c,v[,sn]) PHIDGET DCMotor: sets current limit of channel c to v (float)
  on(c[,sn]) YOCTOPUCE Relay Output: turn channel c of the relay module on
  off(c[,sn]) YOCTOPUCE Relay Output: turn channel c of the relay module off
  yset(c,b[,sn]) YOCTOPUCE Relay Output: switches channel c of the relay module off (b=0) and on (b=1)
  flip(c[,sn]) YOCTOPUCE Relay Output: toggle the state of channel c
  pip(c,delay,duration[,sn]) YOCTOPUCE Relay Output: pulse the channel c on after a delay of delay milliseconds for the duration of duration milliseconds
  powerReset([sn]) YOCTOPUCE resets the power counter of the Yocto-Watt module
  slider(c,v) move slider c to value v
  button(i,c,b[,sn]) switches PHIDGET Binary Output channel c off (b=0) and on (b=1) and sets button i to pressed or normal depending on the value b
  button(i,b) sets button i to pressed if value b is yes, true, t, or 1, otherwise to normal
  button(b) sets button to pressed if value b is yes, true, t, or 1, otherwise to normal
  button() toggles the state of the button
  sleep(<float>) sleep: add a delay of <float> seconds
  santoker(<target>,<value>) sends integer <value> to <target> register specified by as byte in hex notation like “fa” via the Santoker Network protocol
  kaleido(<target>,<value>) sends <value> to <target> via the Kaleido Serial or Network protocol
Hottop Heater   sets heater to value
Hottop Fan   sets fan to value
Hottop Command motor(n),solenoid(n),stirrer(n),heater(h),fan(f) with n={0 ,1},h={0,..100},f={0,..10}
p-i-d <p>;<i>;<d> configures PID to the values <p>;<i>;<d>
Fuji Command write(<unitId>,<register>,<value>)  
PWM Command out(<channel>,<value>[,<sn>]) PHIDGET PWM Output: <value> in [0-100]
  toggle(<channel>[,<sn>]) PHIDGET PWM Output: toggles <channel>
  pulse(<channel>,<millis>[,<sn>]) PHIDGET PWM Output: turn <channel> on for <millis> milliseconds
  outhub(<channel>,<value>[,<sn>]) PHIDGET HUB PWM Output: <value> in [0-100]
  togglehub(<channel>[,<sn>]) PHIDGET HUB PWM Output: toggles <channel>
  pulsehub(<channel>,<millis>[,<sn>]) PHIDGET HUB PWM Output: turn <channel> on for <millis> milliseconds
  enabled(c,b[,sn]) YOCTOPUCE PWM Output: PWM running state
  freq(c,f[,sn]) YOCTOPUCE PWM Output: set PWM frequency to f (Hz)
  duty(c,d[,sn]) YOCTOPUCE PWM Output: set PWM period with the duty cycle in % as a float [0.0-100.0]
  move(c,d,t[,sn]) YOCTOPUCE PWM Output: changes progressively the PWM to the specified value over the given time interval
VOUT Command range(c,r[,sn]) for PHIDGET OUTPUT modules: sets voltage voltage range (r=5 for 5V and r=10 for 10V)
  out(<n>,<v>[,<sn>]) for PHIDGET OUTPUT modules: set analog output channel n to output voltage value v in V (eg. 5.5 for 5.5V)
  vout(c,v[,sn]) for YOCTOPUCE VOLTAGE OUT modules with c the channel (1 or 2),v the voltage as float [0.0-10.0]
  cout(c[,sn]) for YOCTOPUCE CURRENT OUT modules with c the current as float [3.0-21.0]
  sleep(<float>) sleep: add a delay of <float> seconds
S7 Command _ variable holding the last value read via S7
  $ variable holding the last state of the button pressed (1 or 0)
  sleep(<float>) sleep: add a delay of <float> seconds
  button(i,b) sets button i to pressed if value b is yes, true, t, or 1, otherwise to normal
  button(<bool>) sets calling button to “pressed” if argument is 1 or True
  button() toggles the state of the button
  getDBbool(<dbnumber>,<start>,<index>) read bool from S7 DB
  getDBint(<dbnumber>,<start>) read int from S7 DB
  getDBfloat(<dbnumber>,<start>) read float from S7 DB
  setDBbool(<dbnumber>,<start>,<index>,<value>) write bool to S7 DB
  setDBint(<dbnumber>,<start>,<value>) write int to S7 DB
  msetDBint(<dbnumber>,<start>,<andMask>,<orMask>,<value>) write value where bits are replaced by those from orMask at positions where andMask bits are not set
  setDBfloat(<dbnumber>,<start>,<value>) write float to S7 DB
Aillio R1 Heater   sets heater to value
Aillio R1 Fan   sets fan to value
Aillio R1 Drum   sets drum speed to value
Aillio R1 Command PRS Sends PRS command
Artisan Command $ variable holding the last state of the button pressed (1 or 0)
  alarms(<bool>) enables/disables alarms
  autoCHARGE(<bool>) enables/disables autoCHARGE
  autoDROP(<bool>) enables/disables autoDROP
  sleep(<float>) sleep: add a delay of <float> seconds
  tare(<int>) tare channel <int> with 1 => ET, 2 => BT, 3 => E1c1, 4: E1c2,..
  PIDon turns PID on
  PIDoff turns PID off
  PIDtoggle toggles the PID state
  pidmode(<int>) sets PID mode to 0: manual, 1: RS, 2: background follow
  p-i-d(<p>,<i>,<d>) sets the p-i-d parameters of the PID
  adjustSV(<int>) increases or decreases the current target SV value by <int>
  pidSV(<int>) sets the PID target set value SV
  pidSVC(<int>) sets the PID target set value SV given in C
  pidRS(<rs>) activates the PID Ramp-Soak pattern number <rs> (1-based!) or the one labeled <rs>
  pidSource(<int>) selects the PID input source with <n> 0: BT, 1: ET (Software PID); <n> in {0,..,3} (Arduino PID)
  pidLookahead(<int>) sets the PID lookahead
  popup(<msg>[,<int>]) shows popup with message <msg> which optionally automatically closes after <int> seconds
  message(<msg>) shows message <msg> in the message line
  notifications(<bool>) enables/disables notifications; while disabled issued notifications are ignored
  notify(<title>,[<msg>]) sends notification with title <title> and optional message <msg>
  setCanvasColor(<color>) sets canvas color to the RGB-hex <color> like #27f1d3
  resetCanvasColor resets canvas color
  button(i,b) sets button i to pressed if value of b is yes, true, t, or 1, otherwise to normal
  button(<name>|<bool>) activates button <name> from { START, CHARGE, DRY, FCs, FCe, SCs, SCe, DROP, COOL, OFF } ; sets calling button to “pressed” if argument is 1 or True
  button() toggles the state of the button
  visible(i,b) sets button i to visible if value of b is yes, true, t, or 1, otherwise to hidden
  palette(<p>) activates palette <p> with <p> either a number 0-9 or a palette label
  playbackmode(<int>) sets playback mode to 0: off, 1: time, 2: BT, 3: ET
  openProperties opens the Roast Properties dialog
  loadBackground(<filepath>) loads the .alog profile at the given filepath as background profile
  clearBackground clears the current background profile
  alarmset(<as>) activates the alarmset with the given number or label
  moveBackground(<direction>,<int>) moves the background profile the indicated number of steps towards <direction>, with <direction> one of up, down, left, right
  keyboard(<bool>) enables/disables keyboard mode
  keepON(<bool>) enables/disables the Keep ON flag
  showCurve(<name>,<bool>) shows/hides the curve indicated by <name> which is one of { ET, BT, DeltaET, DeltaBT, BackgroundET, BackgroundBT}
  showExtraCurve(<extra_device>,<curve>,<bool>) shows/hides the <curve> (one of {T1,T2}) of the zero-based <extra_device> number
  showEvents(<event_type>, <bool>) shows/hides the events of <event_type> in [1,..,5]
  showBackgroundEvents(<bool>) shows/hides the events of the background profile
RC Command pulse(ch,min,max[,sn]) for PHIDGET RC modules: sets the min/max pulse width in microseconds
  pos(ch,min,max[,sn]) for PHIDGET RC modules: sets the min/max position
  engaged(ch,b[,sn]) for PHIDGET RC modules: engage (b=1) or disengage (b = 0)
  ramp(ch,b[,sn]) for PHIDGET RC modules: activates or deactivates the speed ramping state
  volt(ch,v[,sn]) for PHIDGET RC modules: set the voltage to one of 5, 6 or 7.4 in Volt
  accel(ch,a[,sn]) for PHIDGET RC modules: set the acceleration
  veloc(ch,v[,sn]) for PHIDGET RC modules: set the velocity
  set(ch,pos[,sn]) for PHIDGET RC modules: set the target position
  enabled(c,b[,sn]) for YOCTOPUCE RC modules: with c:int the channel, b a bool (eg. enabled(0,1) or enabled(0,True))
  move(c,p[,t][,sn]) for YOCTOPUCE RC modules: with c:int the channel, p:int the target position, the optional t the duration in ms, sn the optional modules serial number or logical name
  neutral(c,n[,sn]) for YOCTOPUCE RC modules: with n an int [0..65000] in us
  range(c,r[,sn]) for YOCTOPUCE RC modules: with r an int in %
WebSocket Command $ variable holding the last state of the button pressed (1 or 0)
  send(<json>) If {} substitutions are used, json brackets need to be duplicated to escape them like in send({{ “value”: {}}})
  sleep(<float>) sleep: add a delay of <float> seconds
  button(i,b) sets button i to pressed if value b is yes, true, t, or 1, otherwise to normal
  button(<bool>) sets calling button to “pressed” if argument evaluates to 1 or True
  button() toggles the state of the button
  read(<json>) if the `<json>` text respects the JSON format it is send to the connected WebSocket server and the response is bound to the variable `_`