node-red-contrib-kodi
Version:
Node-RED nodes for communicating with a Kodi (former XBMC).
135 lines (125 loc) • 4.43 kB
HTML
<script type="text/x-red" data-template-name="kodi-controller">
<div class="form-row">
<label for="node-config-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-config-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-config-input-host"><i class="icon-bookmark"></i> kodi Host</label>
<input type="text" id="node-config-input-host">
</div>
<div class="form-row">
<label for="node-config-input-port"><i class="icon-bookmark"></i> kodi Port</label>
<input type="text" id="node-config-input-port">
</div>
</script>
<script type="text/x-red" data-template-name="kodi-out">
<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>
<div class="form-row">
<label for="node-input-controller"><i class="icon-bookmark"></i> Kodi host</label>
<input type="text" id="node-input-controller">
</div>
<div class="form-row">
<label for="node-input-kodicommand"><i class="icon-bookmark"></i> Command</label>
<input type="text" id="node-input-kodicommand">
</div>
</script>
<script type="text/x-red" data-template-name="kodi-in">
<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>
<div class="form-row">
<label for="node-input-controller"><i class="icon-bookmark"></i> Controller</label>
<input type="text" id="node-input-controller">
</div>
</script>
<script type="text/x-red" data-help-name="kodi-out">
<p>
Use this to <b>send</b> JSON RPC commands to a Kodi player.<br/>
<b>msg.payload</b> must be a JavaScript object or a string
</p>
<p>
For example, simple string (command does not has arguments): <code>Input.Home</code><br/>
Or Javascript object (command + parameters):
<pre>{
"cmd": "Player.Stop",
"args" :{
"playerid": 0
}
}</pre>
</p>
<p>Look at official Kodi's JSON-RPC API: <a href="http://kodi.wiki/view/JSON-RPC_API/v6" target="_blank">http://kodi.wiki/view/JSON-RPC_API/v6</a></p>
</script>
<script type="text/x-red" data-help-name="kodi-in">
<p>
Use this to <b>inject</b> flows from Kodi player<br/>
Kodi notification being injected as a Javascript object, for example:
<pre>{
"data": {
"data": {
"item": {
"title": "Lounge FM Terrace ()",
"type": "song"
},
"playlistid": 0,
"position": 0
},
"sender": "xbmc"
},
"notification": "Playlist.OnAdd"
}</pre>
</p>
<p>Read more about official Kodi's JSON-RPC api here: http://kodi.wiki/view/JSON-RPC_API/v6</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('kodi-controller', {
category: 'config',
defaults: {
name: {value: ""},
host: {value: "127.0.0.1", required: true},
port: {value: 9090, required: false, validate: RED.validators.number()}
},
label: function () {
return (this.name || 'kodi' ) + "@" + this.host + ":" + this.port;
}
});
</script>
<script type="text/javascript">
RED.nodes.registerType('kodi-out', {
category: 'output',
color: '#26b050',
defaults: {
name: {value: ""},
controller: {value: "", type: "kodi-controller"},
unit_number: {value: "1", required: false},
output: {value: "1", required: false},
kodicommand: {value: ""}
},
inputs: 1,
outputs: 0,
align: 'right',
icon: "bridge-dash.png",
label: function () {
return (this.groupaddr || this.name || "kodi");
}
});
</script>
<script type="text/javascript">
RED.nodes.registerType('kodi-in', {
category: 'input',
color: '#26b050',
defaults: {
name: {value: ""},
controller: {value: "", type: "kodi-controller"}
},
inputs: 0,
outputs: 1,
icon: "bridge-dash.png",
label: function () {
return (this.groupaddr || this.name || "kodi");
}
});
</script>