<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.vibhub.io/index.php?action=history&amp;feed=atom&amp;title=REST</id>
	<title>REST - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vibhub.io/index.php?action=history&amp;feed=atom&amp;title=REST"/>
	<link rel="alternate" type="text/html" href="https://wiki.vibhub.io/index.php?title=REST&amp;action=history"/>
	<updated>2026-05-23T23:29:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.vibhub.io/index.php?title=REST&amp;diff=35&amp;oldid=prev</id>
		<title>Jasx: /* vib */</title>
		<link rel="alternate" type="text/html" href="https://wiki.vibhub.io/index.php?title=REST&amp;diff=35&amp;oldid=prev"/>
		<updated>2026-03-26T14:57:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;vib&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:57, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l52&quot;&gt;Line 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 52:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|No&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|No&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|integer&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|integer&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Bitwise combination of ports to run the program on. 0x1 is the first port, 0x2 second and so forth. 0 or negative values will target ALL ports.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Bitwise combination of ports to run the program on. 0x1 is the first port, 0x2 second and so forth. 0 or negative values will target ALL ports&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Most devices handle this as a 16bit signed int, so you can use up to 15 ports on a device&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|highres&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|highres&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key VibHub?hWiki:diff:1.41:old-19:rev-35:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jasx</name></author>
	</entry>
	<entry>
		<id>https://wiki.vibhub.io/index.php?title=REST&amp;diff=19&amp;oldid=prev</id>
		<title>Jasx: /* vib */</title>
		<link rel="alternate" type="text/html" href="https://wiki.vibhub.io/index.php?title=REST&amp;diff=19&amp;oldid=prev"/>
		<updated>2026-01-29T16:50:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;vib&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:50, 29 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l53&quot;&gt;Line 53:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 53:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|integer&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|integer&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Bitwise combination of ports to run the program on. 0x1 is the first port, 0x2 second and so forth. 0 or negative values will target ALL ports.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Bitwise combination of ports to run the program on. 0x1 is the first port, 0x2 second and so forth. 0 or negative values will target ALL ports.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|highres&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|false&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|No&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|boolean&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|When set, we will use all supported bits in the program. Check the &quot;h&quot; response in whois for max nr of bits the device supports.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key VibHub?hWiki:diff:1.41:old-4:rev-19:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jasx</name></author>
	</entry>
	<entry>
		<id>https://wiki.vibhub.io/index.php?title=REST&amp;diff=4&amp;oldid=prev</id>
		<title>Jasx: Created page with &quot;The REST API allows you to send a set of tween instructions to a device. This is a good option if you want to send fewer requests that execute a program of pulses, turning on and off etc, or your platform can&#039;t do websockets.  To send a program to a device, simply send a GET request to: &lt;code&gt;&lt;nowiki&gt;https://vibhub.io/api?id=&lt;/nowiki&gt;&lt;device_id&gt;&amp;type=&lt;type&gt;&amp;data=&lt;json_data_here&gt;&lt;/code&gt;  (HTTP is also accepted but should only be used if your app can&#039;t use SSL)  Query para...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.vibhub.io/index.php?title=REST&amp;diff=4&amp;oldid=prev"/>
		<updated>2026-01-29T11:15:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;The REST API allows you to send a set of tween instructions to a device. This is a good option if you want to send fewer requests that execute a program of pulses, turning on and off etc, or your platform can&amp;#039;t do websockets.  To send a program to a device, simply send a GET request to: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://vibhub.io/api?id=&amp;lt;/nowiki&amp;gt;&amp;lt;device_id&amp;gt;&amp;amp;type=&amp;lt;type&amp;gt;&amp;amp;data=&amp;lt;json_data_here&amp;gt;&amp;lt;/code&amp;gt;  (HTTP is also accepted but should only be used if your app can&amp;#039;t use SSL)  Query para...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The REST API allows you to send a set of tween instructions to a device. This is a good option if you want to send fewer requests that execute a program of pulses, turning on and off etc, or your platform can&amp;#039;t do websockets.&lt;br /&gt;
&lt;br /&gt;
To send a program to a device, simply send a GET request to: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://vibhub.io/api?id=&amp;lt;/nowiki&amp;gt;&amp;lt;device_id&amp;gt;&amp;amp;type=&amp;lt;type&amp;gt;&amp;amp;data=&amp;lt;json_data_here&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(HTTP is also accepted but should only be used if your app can&amp;#039;t use SSL)&lt;br /&gt;
&lt;br /&gt;
Query params explained:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Param&lt;br /&gt;
!Type&lt;br /&gt;
!Explanation&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|string&lt;br /&gt;
|The deviceID you want to run the program on&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|string&lt;br /&gt;
|The task to send. See Tasks below.&lt;br /&gt;
|-&lt;br /&gt;
|data&lt;br /&gt;
|varies&lt;br /&gt;
|Depends on the type, see below.&lt;br /&gt;
|}&lt;br /&gt;
Don&amp;#039;t forget to URL encode.&lt;br /&gt;
&lt;br /&gt;
= Types =&lt;br /&gt;
&lt;br /&gt;
=== vib ===&lt;br /&gt;
The &amp;quot;vib&amp;quot; task expects data to be a URL encoded array of objects with the following params:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Param&lt;br /&gt;
!Default&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
!Explanation&lt;br /&gt;
|-&lt;br /&gt;
|stages&lt;br /&gt;
|N/A&lt;br /&gt;
|Yes&lt;br /&gt;
|Array&lt;br /&gt;
|An array of stage objects to be tweened beetween. See below for stage objects&lt;br /&gt;
|-&lt;br /&gt;
|repeats&lt;br /&gt;
|0&lt;br /&gt;
|No&lt;br /&gt;
|integer&lt;br /&gt;
|Nr times the animation should repeat. 0 plays it once, 1 plays it twice etc. Use -1 for infinity&lt;br /&gt;
|-&lt;br /&gt;
|port&lt;br /&gt;
|0&lt;br /&gt;
|No&lt;br /&gt;
|integer&lt;br /&gt;
|Bitwise combination of ports to run the program on. 0x1 is the first port, 0x2 second and so forth. 0 or negative values will target ALL ports.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stages ===&lt;br /&gt;
The stage is an object containing tweening information for that stage of the program. It has the following properties:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Param&lt;br /&gt;
!Default&lt;br /&gt;
!Type&lt;br /&gt;
!Explanation&lt;br /&gt;
|-&lt;br /&gt;
|i&lt;br /&gt;
|0&lt;br /&gt;
|integer/obj/boolean&lt;br /&gt;
|A value between 0 and 255. Higher value = faster vibrations. Or false to use the previous value. Or a RandObject (see below).&lt;br /&gt;
|-&lt;br /&gt;
|d&lt;br /&gt;
|0&lt;br /&gt;
|integer/obj&lt;br /&gt;
|Time in milliseconds to reach specified intensity. 0 = instant. Or a RandObject (see below).&lt;br /&gt;
|-&lt;br /&gt;
|e&lt;br /&gt;
|&amp;quot;Linear.None&amp;quot;&lt;br /&gt;
|string&lt;br /&gt;
|A string denoting the tween.js easing type. See this example for the supported types.&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|0&lt;br /&gt;
|integer/object&lt;br /&gt;
|Repeats. 0 = play this stage once, 1 = play this stage twice and so forth. Or a RandObject (see below)&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|false&lt;br /&gt;
|boolean/truthy/falsy value&lt;br /&gt;
|Go back and forth. Requires repeats to work. Repeats of 1 goes back and forth once, repeats of 3 goes back and forth twice etc. An even number such as 2 will go forth, back, forth, and then start at forth on the next stage.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== RandObject ===&lt;br /&gt;
A RandObject can be used in certain places of a vib call. It&amp;#039;ll generate a random value. This value will be randomized at the start of each program loop, but not program stage loop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Param&lt;br /&gt;
!Default&lt;br /&gt;
!Type&lt;br /&gt;
!Explanation&lt;br /&gt;
|-&lt;br /&gt;
|min&lt;br /&gt;
|0&lt;br /&gt;
|integer&lt;br /&gt;
|Min value to randomize&lt;br /&gt;
|-&lt;br /&gt;
|max&lt;br /&gt;
|varying&lt;br /&gt;
|integer&lt;br /&gt;
|Max value to randomize. The default value for this depends on the stage param you put it in. i=255, d=10000, r=9&lt;br /&gt;
|-&lt;br /&gt;
|offset&lt;br /&gt;
|0&lt;br /&gt;
|integer&lt;br /&gt;
|Adds an offset to the randomly generated value. Useful in yoyo type steps where you always want an odd number of repeats (combine with multi of 2).&lt;br /&gt;
|-&lt;br /&gt;
|multi&lt;br /&gt;
|1&lt;br /&gt;
|integer&lt;br /&gt;
|Multiplies the random value by this. Useful together with offset to generate pulses going up and down n times&lt;br /&gt;
|}&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;min&amp;quot;:0, &amp;quot;max&amp;quot;:3, &amp;quot;offset&amp;quot;:1, &amp;quot;multi&amp;quot;:2}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is useful in repeats with yoyo, as it always generates an odd number. In practice, the above line means &amp;quot;generate 1-4 pulses.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
Run a program on device id &amp;quot;JasTestBullet&amp;quot;. The program resets the vibration level to 0, then goes up to 50% and down again 3 times, then resets back to 0.&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GET &amp;lt;nowiki&amp;gt;https://vibhub.io/api/?id=JasTestBullet&amp;amp;type=vib&amp;amp;data=&amp;lt;/nowiki&amp;gt;[{&amp;quot;stages&amp;quot;:[{&amp;quot;i&amp;quot;:0,&amp;quot;d&amp;quot;:0},{&amp;quot;i&amp;quot;:50,&amp;quot;d&amp;quot;:500,&amp;quot;r&amp;quot;:5,&amp;quot;y&amp;quot;:1},{&amp;quot;i&amp;quot;:0,&amp;quot;d&amp;quot;:0}]}]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;message&amp;quot;:&amp;quot;OK&amp;quot;,&amp;quot;success&amp;quot;:true}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== whois ==&lt;br /&gt;
Lets you get meta information about a connected device:&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
Request:&lt;br /&gt;
&amp;lt;code&amp;gt;GET &amp;lt;nowiki&amp;gt;https://vibhub.io/api/?id=JasTestBullet&amp;amp;type=whois&amp;amp;data=&amp;lt;/nowiki&amp;gt;[]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;message&amp;quot;:{&amp;quot;numPorts&amp;quot;:4,&amp;quot;version&amp;quot;:&amp;quot;0.3.0&amp;quot;,&amp;quot;hwversion&amp;quot;:&amp;quot;esp32&amp;quot;,&amp;quot;custom&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;capabilities&amp;quot;:{&amp;quot;p&amp;quot;:true,&amp;quot;ps&amp;quot;:true,&amp;quot;vib&amp;quot;:&amp;quot;true&amp;quot;}},&amp;quot;success&amp;quot;:true}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jasx</name></author>
	</entry>
</feed>