node-red-contrib-yamaha-gsp
Version:
Node-RED nodes for controlling Yamaha AV receivers via API
170 lines (155 loc) • 6.34 kB
HTML
<script type="text/javascript">
function registerYamahaNode(type, label, icon, color) {
RED.nodes.registerType(type, {
category: 'yamaha',
color: color || '#a6bbcf',
defaults: {
name: { value: '' },
ip: { value: '', required: true },
port: { value: 80, required: true }
},
inputs: 1,
outputs: 1,
icon: icon || 'white-globe.png',
label: function() {
return this.name || label;
},
paletteLabel: label,
oneditprepare: function() {
$('#node-input-port').spinner({ min: 1, max: 65535 });
}
});
}
registerYamahaNode('yamaha-power', 'Yamaha Power', 'font-awesome/fa-power-off', '#FFAAAA');
registerYamahaNode('yamaha-volume', 'Yamaha Volume', 'font-awesome/fa-volume-up', '#AAFFAA');
registerYamahaNode('yamaha-input', 'Yamaha Input', 'font-awesome/fa-exchange', '#AAAAFF');
registerYamahaNode('yamaha-mute', 'Yamaha Mute', 'font-awesome/fa-volume-off', '#FFFFAA');
registerYamahaNode('yamaha-program', 'Yamaha Program', 'font-awesome/fa-music', '#FFAAFF');
registerYamahaNode('yamaha-status', 'Yamaha Status', 'font-awesome/fa-info-circle', '#AAFFFF');
</script>
<script type="text/html" data-template-name="yamaha-power">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-ip"><i class="fa fa-desktop"></i> IP Address</label>
<input type="text" id="node-input-ip" placeholder="192.168.x.x">
</div>
<div class="form-row">
<label for="node-input-port"><i class="fa fa-plug"></i> Port</label>
<input type="number" id="node-input-port" placeholder="80" style="width: 70px;">
</div>
</script>
<script type="text/html" data-help-name="yamaha-power">
<p>Control Yamaha receiver power state</p>
<p>Input message should contain:</p>
<ul>
<li><code>payload</code> - "on" or "off"</li>
</ul>
</script>
<script type="text/html" data-template-name="yamaha-volume">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-ip"><i class="fa fa-desktop"></i> IP Address</label>
<input type="text" id="node-input-ip" placeholder="192.168.x.x">
</div>
<div class="form-row">
<label for="node-input-port"><i class="fa fa-plug"></i> Port</label>
<input type="number" id="node-input-port" placeholder="80" style="width: 70px;">
</div>
</script>
<script type="text/html" data-help-name="yamaha-volume">
<p>Control Yamaha receiver volume</p>
<p>Input message should contain:</p>
<ul>
<li><code>payload</code> - number between -80 and +16.5 (dB)</li>
</ul>
</script>
<script type="text/html" data-template-name="yamaha-input">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-ip"><i class="fa fa-desktop"></i> IP Address</label>
<input type="text" id="node-input-ip" placeholder="192.168.x.x">
</div>
<div class="form-row">
<label for="node-input-port"><i class="fa fa-plug"></i> Port</label>
<input type="number" id="node-input-port" placeholder="80" style="width: 70px;">
</div>
</script>
<script type="text/html" data-help-name="yamaha-input">
<p>Control Yamaha receiver input</p>
<p>Input message should contain:</p>
<ul>
<li><code>payload</code> - IN1, IN2, ...</li>
</ul>
</script>
<script type="text/html" data-template-name="yamaha-mute">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-ip"><i class="fa fa-desktop"></i> IP Address</label>
<input type="text" id="node-input-ip" placeholder="192.168.x.x">
</div>
<div class="form-row">
<label for="node-input-port"><i class="fa fa-plug"></i> Port</label>
<input type="number" id="node-input-port" placeholder="80" style="width: 70px;">
</div>
</script>
<script type="text/html" data-help-name="yamaha-mute">
<p>Control Yamaha receiver input</p>
<p>Input message should contain:</p>
<ul>
<li><code>payload</code> - true or false</li>
</ul>
</script>
<script type="text/html" data-template-name="yamaha-program">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-ip"><i class="fa fa-desktop"></i> IP Address</label>
<input type="text" id="node-input-ip" placeholder="192.168.x.x">
</div>
<div class="form-row">
<label for="node-input-port"><i class="fa fa-plug"></i> Port</label>
<input type="number" id="node-input-port" placeholder="80" style="width: 70px;">
</div>
</script>
<script type="text/html" data-help-name="yamaha-program">
<p>Control Yamaha receiver input</p>
<p>Input message should contain:</p>
<ul>
<li><code>payload</code> - 1, 2, ...</li>
</ul>
</script>
<script type="text/html" data-template-name="yamaha-status">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-ip"><i class="fa fa-desktop"></i> IP Address</label>
<input type="text" id="node-input-ip" placeholder="192.168.x.x">
</div>
<div class="form-row">
<label for="node-input-port"><i class="fa fa-plug"></i> Port</label>
<input type="number" id="node-input-port" placeholder="80" style="width: 70px;">
</div>
</script>
<script type="text/html" data-help-name="yamaha-status">
<p>Control Yamaha receiver input</p>
<p>Input message should contain:</p>
<ul>
<li><code>payload</code> - status</li>
</ul>
</script>