Git Product home page Git Product logo

kodi2mqtt's Introduction

MQTT addon for Kodi

Written and (C) 2015-16 Oliver Wagner [email protected]

Provided under the terms of the MIT license.

Overview

This is a Kodi addon which acts as an adapter between a Kodi media center instance and MQTT. It publishes Kodi's playback state on MQTT topics, and provides remote control capability also via messages to MQTT topics.

It's intended as a building block in heterogenous smart home environments where an MQTT message broker is used as the centralized message bus. See https://github.com/mqtt-smarthome for a rationale and architectural overview.

Dependencies

Build Status Automatically built addons can be downloaded from the release page on GitHub at https://github.com/owagner/kodi2mqtt/releases

Settings

The addon has multiple settings:

  • the MQTT broker's host name or IP address (defaults to 127.0.0.1)
  • the MQTT broker's port. This defaults to 1883, which is the MQTT standard port for unencrypted connections.
  • the topic prefix which to use in all published and subscribed topics. Defaults to "kodi/".
  • MQTT authentication and TLS settings
  • update frequency intervals
  • keyword filtering on content details, to prevent certain kind of content to be e.g. displayed in a SmartHome visualization

Topics

The addon publishes on the following topics (prefixed with the configured topic prefix):

  • connected: 2 if the addon is currently connected to the broker, 0 otherwise. This topic is set to 0 with a MQTT will.
  • status/playbackstate: a JSON-encoded object with the fields
    • "val" for the current playback state with 0=stopped, 1=playing, 2=paused
    • "kodi_playbackdetails": an object with further details about the playback state. This is effectivly the result of the JSON-RPC call Player.GetItem with the properties "speed", "currentsubtitle", "currentaudiostream", "repeat" and "subtitleenabled"
    • "kodi_playerid": the ID of the active player
    • "kodi_playertype": the type of the active player (e.g. "video")
  • status/progress: a JSON-encoded object with the fields
    • "val" is the percentage of progress in playing back the current item
    • "kodi_time": the playback position in the current item
    • "kodi_totaltime": the total length of the current item
  • status/title: a JSON-encoded object with the fields
    • "val": the title of the current playback item
    • "kodi_details": an object with further details about the current playback items. This is effectivly the result of a JSON-RPC call Player.GetItem with the properties "title", "streamdetails", "file", "thumbnail" and "fanart"

The addon listens to the following topics (prefixed with the configured topic prefix):

  • command/notify: Either a simple string, or a JSON encoded object with the fields "message" and "title". Shows a popup notification in Kodi
  • command/play: Either a simple string which is a filename or URL, or a JSON encoded object which correspondents to the Player.Open() JSON_RPC call
  • command/playbackstate: A simple string or numeric with the values:
    • "0" or "stop" to stop playback
    • "1" or "resume" or "play" to resume playback (when paused or stopped)
    • "2" or "pause" to stop playback (when playing)
    • "toggle" to toggle between play and pause
    • "next" to play the next track
    • "previous" to play the previous track

See also

Changelog

Please see service.mqtt/changelog.txt for the change log

kodi2mqtt's People

Contributors

owagner avatar jvandenbroek avatar pimpajr avatar 2zero avatar drlobo avatar markferry avatar

Watchers

James Cloos avatar Sebastian Raff avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.