node-red-contrib-roomba980-fw2
Version:
Node to control a Roomba980(v2 firmware) robot via dorita980 API
194 lines (157 loc) • 6.29 kB
HTML
<script type="text/javascript">
RED.nodes.registerType("dorita980Config",{
category:'config',
defaults: {
ip: {value: '', required: true},
username: {value: '', required: true},
password: {value: '', required: true},
name: {value: ''}
},
label: function(){
return this.name || 'Roomba980';
}
});
</script>
<script type="text/x-red" data-template-name="dorita980Config">
<div class="form-row">
<label for="node-config-input-ip"><i class="fa "></i> IP </label>
<input type="text" id="node-config-input-ip" placeholder="">
</div>
<div class="form-row">
<label for="node-config-input-username"><i class="fa "></i> Username </label>
<input type="text" id="node-config-input-username" placeholder="">
</div>
<div class="form-row">
<label for="node-config-input-password"><i class="fa "></i> Password </label>
<input type="text" id="node-config-input-password" placeholder="">
</div>
<div class="form-row">
<label for="node-config-input-name"><i class="fa "></i> Name</label>
<input type="text" id="node-config-input-name" placeholder="Roomba980">
</div>
</script>
<script type="text/x-red" data-help-name="dorita980Config">
<p>Details of the Roomba 980 connection</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('get',{
category: 'roomba980fw2',
color: '#5094d8',
defaults: {
connection: {type: 'dorita980Config', required: true},
method:{value:"",required: true},
name: {value:""}
},
inputs:1,
outputs:1,
icon: "roomba.png",
label: function() {
return this.name|| this.method ||"get";
}
});
</script>
<script type="text/x-red" data-template-name="get">
<div class="form-row">
<label for="node-input-connection"><i class="fa "></i> Connection</label>
<input type="text" id="node-input-connection" placeholder="">
</div>
<div class="form-row">
<label for="node-input-method"><i class="fa "></i> Method</label>
<select type="text" id="node-input-method" style="width:180px">
<option value="getTime">getTime()</option>
<option value="getBbrun">getBbrun()</option>
<option value="getLangs">getLangs()</option>
<option value="getSys">getSys()</option>
<option value="getWirelessLastStatus">getWirelessLastStatus()</option>
<option value="getWeek">getWeek()</option>
<option value="getPreferences">getPreferences()</option>
<option value="getMission">getMission()</option>
<option value="getWirelessStatus">getWirelessStatus()</option>
</select>
</div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="get">
<p>A simple node that triggers one of the get() functions of dorita980</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('set',{
category: 'roomba980fw2',
color: '#5094d8',
defaults: {
connection: {type: 'dorita980Config', required: true},
method:{value:"",required: true},
name: {value:""}
},
inputs:1,
outputs:1,
icon: "roomba.png",
align: 'right',
label: function() {
return this.name|| this.method ||"set";
}
});
</script>
<script type="text/x-red" data-template-name="set">
<div class="form-row">
<label for="node-input-connection"><i class="fa "></i> Connection</label>
<input type="text" id="node-input-connection" placeholder="">
</div>
<div class="form-row">
<label for="node-input-method"><i class="fa "></i> Method</label>
<select type="text" id="node-input-method" style="width:180px">
<option value="setCarpetBoostAuto">setCarpetBoostAuto()</option>
<option value="setCarpetBoostPerformance">setCarpetBoostPerformance()</option>
<option value="setCarpetBoostEco">setCarpetBoostEco()</option>
<option value="setEdgeCleanOn">setEdgeCleanOn()</option>
<option value="setEdgeCleanOff">setEdgeCleanOff()</option>
<option value="setCleaningPassesAuto">setCleaningPassesAuto()</option>
<option value="setCleaningPassesOne">setCleaningPassesOne()</option>
<option value="setCleaningPassesTwo">setCleaningPassesTwo()</option>
<option value="setAlwaysFinishOn">setAlwaysFinishOn()</option>
<option value="setAlwaysFinishOff">setAlwaysFinishOff()</option>
<option value="setWeek">setWeek()</option>
</select>
</div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="set">
<p>A simple node that triggers one of the set() functions of dorita980</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('basic',{
category: 'roomba980fw2',
color: '#5ac950',
defaults: {
connection: {type: 'dorita980Config', required: true},
name: {value:""}
},
inputs:1,
outputs:1,
icon: "roomba.png",
align: 'right',
label: function() {
return this.name|| "basic";
}
});
</script>
<script type="text/x-red" data-template-name="basic">
<div class="form-row">
<label for="node-input-connection"><i class="fa "></i> Connection</label>
<input type="text" id="node-input-connection" placeholder="">
</div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="basic">
<p>A simple node that triggers one of the basic functions of dorita980.</p>
<p>It accepts msg.payload as "start","pause","stop","resume" or "dock". </p>
</script>