{"id":18756493,"url":"https://github.com/octoprint/octoprint-pushbullet","last_synced_at":"2025-10-13T16:39:48.674Z","repository":{"id":33212126,"uuid":"36854940","full_name":"OctoPrint/OctoPrint-Pushbullet","owner":"OctoPrint","description":"Pushes notifications via Pushbullet","archived":false,"fork":false,"pushed_at":"2020-12-07T21:45:49.000Z","size":72,"stargazers_count":14,"open_issues_count":9,"forks_count":14,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-26T19:44:31.888Z","etag":null,"topics":["octoprint","octoprint-plugin"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OctoPrint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-04T07:24:41.000Z","updated_at":"2024-10-03T02:46:09.000Z","dependencies_parsed_at":"2022-08-07T20:15:44.716Z","dependency_job_id":null,"html_url":"https://github.com/OctoPrint/OctoPrint-Pushbullet","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctoPrint%2FOctoPrint-Pushbullet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctoPrint%2FOctoPrint-Pushbullet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctoPrint%2FOctoPrint-Pushbullet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctoPrint%2FOctoPrint-Pushbullet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OctoPrint","download_url":"https://codeload.github.com/OctoPrint/OctoPrint-Pushbullet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654045,"owners_count":21140235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["octoprint","octoprint-plugin"],"created_at":"2024-11-07T17:36:51.823Z","updated_at":"2025-10-13T16:39:43.639Z","avatar_url":"https://github.com/OctoPrint.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n**HEADS-UP: Needs OctoPrint 1.2.4 or later!**\n\n# OctoPrint Pushbullet Plugin\n\nThis is an OctoPrint Plugin that adds support for [Pushbullet notifications](https://www.pushbullet.com/) to OctoPrint.\n\nAt the current state OctoPrint will send a notification when a print job finishes. If a webcam is available, an image\nof the print result will be captured and included in the notification.\n\n![Configuration Dialog](http://i.imgur.com/AXnVLNC.png)\n\n![Example Push Notification](http://i.imgur.com/qgon1a3.png)\n\n## Installation\n\nInstall via the bundled [Plugin Manager](https://github.com/foosel/OctoPrint/wiki/Plugin:-Plugin-Manager) \nor manually using this URL:\n\n    https://github.com/OctoPrint/OctoPrint-Pushbullet/archive/master.zip\n\n## Configuration\n\nThe only thing that absolutely needs to be configured is the Access Token necessary to access Pushbullet's API. You\ncan find this in you Pushbullet Account Settings under \"Access Token\". Copy and paste the value there into the\n\"Access Token\" input field in the configuration dialog of the Pushbullet plugin.\n\nAll other settings can also be edited via the included configuration dialog. If you want to edit `config.yaml` manually,\nthis is the expected structure:\n\n``` yaml\nplugins:\n  octobullet:\n    # Pushbullet Access Token for your account\n    access_token: your_access_token\n\n    # Pushbullet Channel Tag to use for messages, may be left empty/null\n    push_channel: some_tag\n    \n    # message to send when a print is done\n    # available placeholders:\n    # - file: name of the file that was printed\n    # - elapsed_time: duration of the print, format \"[{days}d ]{hours}h {minutes}min\"\n    printDone:\n      # title of the notification\n      title: 'Print job finished'\n      \n      # body of the notification\n      body: '{file} finished printing in {elapsed_time}'\n\n    # message to send for regular progress messages\n    # available placeholders:\n    # - progress: current progress in percent\n    # - file: name of the file that is being printed\n    # - elapsed_time: duration of the print so far, format \"[{days}d ]{hours}h {minutes}min\"\n    # - remaining_time: expected remaining duration of the print, format \"[{days}d ]{hours}h {minutes}min\"\n    # - eta: expected finish time of the print, format \"[{year}-{month}-{day} ]{hour}:{minute}\"\n    printProgress:\n      # title of the notification\n      title: 'Print job {progress}% complete'\n\n      # body of the notification\n      body: '{progress}% on {file}\n\n        Time elapsed: {elapsed_time}\n\n        Time left: {remaining_time}\n\n        ETA: {eta}'\n```\n\n## Known Issues\n\n### The test message fails but my access token definitely is correct\n\nCheck your `octoprint.log`. If it contains an error that looks like this:\n\n    2017-04-12 09:59:35,161 - octoprint.plugins.octobullet - ERROR - Error while instantiating PushBullet\n    Traceback (most recent call last):\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/octoprint_octobullet/__init__.py\", line 214, in _create_sender\n        bullet = pushbullet.PushBullet(token)\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/pushbullet/pushbullet.py\", line 29, in __init__\n        self.refresh()\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/pushbullet/pushbullet.py\", line 288, in refresh\n        self._load_devices()\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/pushbullet/pushbullet.py\", line 42, in _load_devices\n        resp_dict = self._get_data(self.DEVICES_URL)\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/pushbullet/pushbullet.py\", line 32, in _get_data\n        resp = self._session.get(url)\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/requests-2.7.0-py2.7.egg/requests/sessions.py\", line 477, in get\n        return self.request('GET', url, **kwargs)\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/requests-2.7.0-py2.7.egg/requests/sessions.py\", line 465, in request\n        resp = self.send(prep, **send_kwargs)\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/requests-2.7.0-py2.7.egg/requests/sessions.py\", line 573, in send\n        r = adapter.send(request, **kwargs)\n      File \"/home/pi/oprint/local/lib/python2.7/site-packages/requests-2.7.0-py2.7.egg/requests/adapters.py\", line 431, in send\n        raise SSLError(e, request=request)\n    SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol\n\nyour version of Python and hence its built-in SSL support is too old to\nwork together with the Pushbullet API. This affects Python versions less\nthan 2.7.9. If you are still running OctoPi 0.12 which was based on\nRaspbian Wheezy, you only have Python 2.7.3 and this is the likely cause.\n\nThis can be fixed though. The following steps assume you are indeed running\nOctoPi - if not please substitute your virtual environment path (`~/oprint`\nhere) accordingly or better yet, update your Python version to at least\n2.7.9.\n\nSSH into OctoPi. Then execute the following:\n\n    sudo apt-get update\n    sudo apt-get install libffi-dev\n    source ~/oprint/bin/activate\n    pip install requests[security]\n    sudo service octoprint restart\n\nThis might take a bit since a bunch of security libraries have to be\ninstalled, at least one of which also needs compilation. On a Pi2 it takes\na couple of minutes. After the restart of OctoPrint your problems\nshould vanish.\n\nWhat are those commands doing? They basically update the SSL support for\nthe library the Pushbullet plugin is using to talk to the Pushbullet API.\nAnd why can't Pushbullet detect this and solve on its own? The problem is\nthat bit with `libffi-dev` up there - that's a dependency needed for the\nupdated library to successfully build on your system, and the plugin\ncan't install that for you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctoprint%2Foctoprint-pushbullet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctoprint%2Foctoprint-pushbullet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctoprint%2Foctoprint-pushbullet/lists"}