{
"info": {
"author": "confirm IT solutions",
"author_email": "",
"bugtrack_url": null,
"classifiers": [
"Environment :: No Input/Output (Daemon)",
"Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2",
"Topic :: Multimedia :: Sound/Audio :: Players"
],
"description": "Mopidy Pummeluff\n================\n\nPummeluff is a `Mopidy `_ extension which allows you to control Mopidy via RFID tags. It is as simple as that:\n\n- Register an action to an RFID tag\n- Touch that tag on the RFID reader and the action will be executed \n\nThus, the Mopidy Pummeluff extension adds the following features to Mopidy:\n\n- A radically simple web UI which can be used to manage the RFID tags\n- A daemon which continuously reads RFID tags in the background and executes the assigned actions\n\nThere are several actions included, such as replacing the tracklist with a desired URI, setting the volume to a specific level or controlling the playback state.\n\nHardware\n========\n\nRequirements\n------------\n\nTo get the whole thing working, you need at least the following hardware:\n\n- A Raspberry Pi 3 Model B\n- An ``RC522`` RFID module (`RC522 on AliExpress `_ for approx. *USD 1*)\n- RFID tags (``ISO 14443A`` & ``Mifare`` should work, `14443A tags on AliExpress `_ for approx. *0.4 USD* per tag)\n- Female dupont jumper wires (`female dupont jumper cables on AliExpress `_ for approx. *1 USD*)\n\nOptionally you can also add two buttons to the RPi, which can be used for power & playback control:\n\n- Two momentary push buttons (`momentary push buttons on AliExpress `_ for approx. *USD 1-2*) \n\nPummeluff also supports a status LED, which lights up when Pummeluff (i.e. Mopidy) is running. You can go with a separate LED, just make sure it can handle 3.3V or add a resistor. There are also push buttons with integrated LED's available, for example `these 5V momentary push buttons on AliExpress `_.\n\n.. note::\n\n The project will probably run on other RPi models, but I've only tested it on the ``3B``. The RPi ``3B+`` should also work fine, as the GPIO pins are identical. I don't know about RPi ``1`` or ``2``, but you can give it a shot.\n\nConnecting the RC522 module\n---------------------------\n\nPlease connect the ``RC522`` RFID module to the RPi as follows:\n\n- ``RC522 pin 1 [SDA ]`` \u2013\u2013\u2013 ``RPi pin 24 [SPI0 CE0 ]``\n- ``RC522 pin 2 [SCK ]`` \u2013\u2013\u2013 ``RPi pin 23 [SPI0 SCLK]``\n- ``RC522 pin 3 [MOSI]`` \u2013\u2013\u2013 ``RPi pin 19 [SPI0 MOSI]``\n- ``RC522 pin 4 [MISO]`` \u2013\u2013\u2013 ``RPi pin 21 [SPI0 MISO]``\n- ``RC522 pin 5 [IRQ ]`` \u2013\u2013\u2013 ``RPi pin 18 [ GPIO 24 ]``\n- ``RC522 pin 6 [GND ]`` \u2013\u2013\u2013 ``RPi pin 20 [ GND ]``\n- ``RC522 pin 7 [RST ]`` \u2013\u2013\u2013 ``RPi pin 22 [ GPIO 25 ]``\n- ``RC522 pin 8 [3.3V]`` \u2013\u2013\u2013 ``RPi pin 17 [3.3V PWR ]``\n\nPlease have a look at the `Raspberry Pi SPI pinout `_ if you want to have a graphical view of the RPi GPIO pins. \n\n.. note::\n\n This connections are only valid for the RPi model ``3B`` and ``3B+``. If you want to use another RPI model, make sure you're using the correct pins.\n\nConnecting the buttons (optional)\n---------------------------------\n\nYou can connect two buttons to the RPi:\n\n- ``RPi pin 5`` - Power button: Shutdown the Raspberry Pi into halt state & wake it up again from halt state\n- ``RPi pin 7`` - Playback button: Pause and resume the playback\n\nThe buttons must shortcut their corresponding pins against ``GND`` (e.g. pin ``6``) when pressed. This means you want to connect one pin of the button (i.e. ``C``) to RPI's ``GND``, and the other one (i.e. ``NO``) to RPi's pin ``5`` or ``7``.\n\nConnecting the status LED (optional)\n------------------------------------\n\nIf you want to have a status LED which is turned on when the RPi is running, you can connect an LED to a ``GND`` pin (e.g. pin ``6``) & to pin ``8``.\n\nInstallation\n============\n\nPrepare Raspberry Pi\n--------------------\n\nBefore you can install and use Mopidy Pummeluff, you need to configure your Raspberry Pi properly.\n\nWe want to enable the ``SPI`` interface and give the ``mopidy`` user access to it. This is required for the communication to the RFID module. Enter this command:\n\n.. code-block:: bash\n\n sudo raspi-config\n\nIn the configuraton utility, **Enable the SPI** under ``5 Interfacing Options \u2013 P4 SPI``. \n\nAfter that, add your ``mopidy`` user to the ``spi`` and ``gpio`` group:\n\n.. code-block:: bash\n\n sudo usermod -a -G spi,gpio mopidy\n\nIf you're planning to use a button or RFID tag to shutdown the system, you also need to create a sudo rule, so that the ``mopidy`` user can shutdown the system without a password prompt:\n\n.. code-block:: bash\n\n echo \"mopidy ALL = NOPASSWD: /sbin/shutdown\" > /etc/sudoers.d/mopidy\n\nInstall via pip\n---------------\n\nThe recommended way to install Mopidy Pummeluff by using ``pip`` and thus by executing the following command:\n\n.. code-block:: bash\n\n sudo pip install mopidy-pummeluff\n\n.. hint::\n\n If you get an error that ``spidev`` could not be found, run ``pip install spidev`` first. This is an issue related to the ``pi-rc522`` Pypi package.\n\nInstall from source\n-------------------\n\nAlternatively, you can also install Mopidy Pummeluff from source, by running this command:\n\n.. code-block:: bash\n\n sudo su -\n cd /usr/src\n git clone https://github.com/confirm/mopidy-pummeluff.git\n cd mopidy-pummeluff\n python setup.py install\n\n.. hint::\n\n If you get an error that ``spidev`` could not be found, run ``pip install spidev`` first. This is an issue related to the ``pi-rc522`` Pypi package.\n\nConfiguration\n=============\n\nActivate and configure the `Mopidy HTTP `_ extension and make sure you can connect to the Web UI. The minimal config looks like this:\n\n.. code-block::\n\n [http]\n enabled = true\n hostname = 0.0.0.0\n\nUsage\n=====\n\nOpen the Mopidy Web UI (i.e. ``http://{MOPIDY_IP}:6680/``).\nYou should see a ``pummeluff`` web client which can be used to regsiter new RFID tags.\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/confirm/mopidy-pummeluff",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "Mopidy-Pummeluff",
"package_url": "https://pypi.org/project/Mopidy-Pummeluff/",
"platform": "",
"project_url": "https://pypi.org/project/Mopidy-Pummeluff/",
"project_urls": {
"Homepage": "https://github.com/confirm/mopidy-pummeluff"
},
"release_url": "https://pypi.org/project/Mopidy-Pummeluff/1.0.0/",
"requires_dist": [
"setuptools",
"Mopidy (>=2.2.2)",
"pi-rc522 (==2.2.1)",
"pycodestyle (==2.5.0); extra == 'develop'",
"pylint (==1.9.4); extra == 'develop'"
],
"requires_python": "",
"summary": "Pummeluff is a Mopidy extension which allows you to control Mopidy via RFID tags",
"version": "1.0.0"
},
"last_serial": 4989585,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "5270b74d44b63a5fa57d298cc7c7cdcf",
"sha256": "6ead5135b43b31922c85c2914842133b79d5cd859c63e283be4940ed41e3950a"
},
"downloads": -1,
"filename": "Mopidy_Pummeluff-0.1.0-py2-none-any.whl",
"has_sig": true,
"md5_digest": "5270b74d44b63a5fa57d298cc7c7cdcf",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 14831,
"upload_time": "2019-02-24T21:53:18",
"url": "https://files.pythonhosted.org/packages/cf/39/d76d998485a2dc7054bec8605f593748d6ca4f5b9a6d7a8d2c8afb69d29f/Mopidy_Pummeluff-0.1.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6f31c9cdb391bf8f7e5cda545d33b70b",
"sha256": "05f39ea5bce1bcbbf3479c8c608796e7a72383325b12378d9bdd2b7d4a5abd8a"
},
"downloads": -1,
"filename": "Mopidy-Pummeluff-0.1.0.tar.gz",
"has_sig": true,
"md5_digest": "6f31c9cdb391bf8f7e5cda545d33b70b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19162,
"upload_time": "2019-02-24T21:53:20",
"url": "https://files.pythonhosted.org/packages/33/4a/2806586673e03f415c96de3286e5497cdaf8c716807535904a2d239b02f4/Mopidy-Pummeluff-0.1.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "f9cd08cc2aecc3f9d9d3fa91e87cd40f",
"sha256": "88343478ea6232e23005b4c9550afeac01c55074e9bbfba77ad0b98cd06bb65a"
},
"downloads": -1,
"filename": "Mopidy_Pummeluff-0.2.1-py2-none-any.whl",
"has_sig": true,
"md5_digest": "f9cd08cc2aecc3f9d9d3fa91e87cd40f",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 57280,
"upload_time": "2019-02-27T20:49:36",
"url": "https://files.pythonhosted.org/packages/7a/05/ffe1bbb3678ef5f9ed8415ba395218243833b71c5de34ae6f614a8b837fb/Mopidy_Pummeluff-0.2.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6060046513f1509c10de7fc0be6f4667",
"sha256": "77d943eb549ead454ab36730186de4b44f049e2b31b8a61692dd2845dc1690c8"
},
"downloads": -1,
"filename": "Mopidy-Pummeluff-0.2.1.tar.gz",
"has_sig": true,
"md5_digest": "6060046513f1509c10de7fc0be6f4667",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63043,
"upload_time": "2019-02-27T20:49:38",
"url": "https://files.pythonhosted.org/packages/33/1c/29b8188eb0ac3822731356b1318769b15defb6b8e2b9034133ee16d8372b/Mopidy-Pummeluff-0.2.1.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "13b2091f4d531aba319656e62d16dcf3",
"sha256": "6b74f375ae715c91524256d5412eea96c7edacfae117ce275434a95cff329d55"
},
"downloads": -1,
"filename": "Mopidy_Pummeluff-1.0.0-py2-none-any.whl",
"has_sig": true,
"md5_digest": "13b2091f4d531aba319656e62d16dcf3",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 63268,
"upload_time": "2019-03-26T21:20:49",
"url": "https://files.pythonhosted.org/packages/84/6b/03abfeb4e97c7febc234d9790c953750aeb2b392fafe9ff0f3600885e7e0/Mopidy_Pummeluff-1.0.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "222333027750b14545ed4d04b4085a0e",
"sha256": "69c2775a765d1c080ef66f8bc0ee4fcf695de45f60324b417146359a3554f4c6"
},
"downloads": -1,
"filename": "Mopidy-Pummeluff-1.0.0.tar.gz",
"has_sig": true,
"md5_digest": "222333027750b14545ed4d04b4085a0e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65425,
"upload_time": "2019-03-26T21:20:51",
"url": "https://files.pythonhosted.org/packages/2f/00/d4be1e0d946484edc5bf66b9692d76d77172c98e1503e261a0263eeabea1/Mopidy-Pummeluff-1.0.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "13b2091f4d531aba319656e62d16dcf3",
"sha256": "6b74f375ae715c91524256d5412eea96c7edacfae117ce275434a95cff329d55"
},
"downloads": -1,
"filename": "Mopidy_Pummeluff-1.0.0-py2-none-any.whl",
"has_sig": true,
"md5_digest": "13b2091f4d531aba319656e62d16dcf3",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 63268,
"upload_time": "2019-03-26T21:20:49",
"url": "https://files.pythonhosted.org/packages/84/6b/03abfeb4e97c7febc234d9790c953750aeb2b392fafe9ff0f3600885e7e0/Mopidy_Pummeluff-1.0.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "222333027750b14545ed4d04b4085a0e",
"sha256": "69c2775a765d1c080ef66f8bc0ee4fcf695de45f60324b417146359a3554f4c6"
},
"downloads": -1,
"filename": "Mopidy-Pummeluff-1.0.0.tar.gz",
"has_sig": true,
"md5_digest": "222333027750b14545ed4d04b4085a0e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65425,
"upload_time": "2019-03-26T21:20:51",
"url": "https://files.pythonhosted.org/packages/2f/00/d4be1e0d946484edc5bf66b9692d76d77172c98e1503e261a0263eeabea1/Mopidy-Pummeluff-1.0.0.tar.gz"
}
]
}