A library to access Android devices which run JPI
Project description
pyJPI - An asynchronous Python module to interact with Android devices running JPI
Overview
pyJPI is an asynchronous Python library designed to programmatically interact with Android devices running JPI.
This library is a key component for a core integration with Home Assistant.
More details on the integration can be found on the JPI page.
Features
- Asynchronous operations are built with ``aiohttp` for non-blocking I/O, which is perfect for integrations and background tasks.
- API:
battInfo - API:
get - API:
getDeviceName
Installation
You can install pyJPI from PyPI using pip:
pip install pyjpi
Usage
Here is a more detailed example of how to use the library to connect, fetch status, and perform an action on an Android device running JPI.
import aiohttp
from pyjpi import jpiInit
async def main():
"""Main function to demonstrate library usage."""
# Create an aiohttp session with SSL verification disabled.
# Be cautious with this setting; it's useful for self-signed certificates
# but not recommended for production environments without proper validation.
session = aiohttp.ClientSession( connector=aiohttp.TCPConnector( verify_ssl=False ))
# Get a handle on the pyJPI library.
handle = await jpiInit( session )
# Have an URL somewhere.
url = "http://myhost.example.com:8080"
# Then just has to call the library functions.
try:
res = await handle.get( url )
# returns a dict { resp: ClientResponse, text: str } or False
res = await handle.getDeviceName( url )
# returns the device name as set by the manufacturer (a single string) or False
res = await handle.battInfo( url )
# returns a dict { level: integer, charging: bool, power: bool }
if __name__ == "__main__":
main()
Available functions
async jpiInit( session: aiohttp.ClientSession ) -> JPILibrary:
Initializes the library.
Returns a handle on it.
Available classes
JPILibrary:
The class which manages the devices accesses.
Available JPILibrary methods
async get( url: str) -> dict:
Runs a HTTP GET method on the specified URL.
Returns a dict with:
resp: the `aiohttp.ClientResponse`
text: the resp.text() content
async getDeviceName( url: str) -> str:
Runs a HTTP GET method on f"{url}?action=getDeviceName" url.
Returns a string which contains the device name as set by the manufacturer.
async battInfo( url: str) -> dict:
Runs a HTTP GET method on on f"{url}?action=battInfo" url.
Returns a dict with:
level: an integer with the current battery level in %
charging: a boolean which says if the battery is currently charging
power: a boolean which says if the power is on on the device.
Contributing
We welcome contributions as well as additional codeowners to pyjpi.
Issues & help
In case of support or error, please report your issue request to our Issues tracker.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyjpi-0.1.13.tar.gz.
File metadata
- Download URL: pyjpi-0.1.13.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48f751cbb850ff8cf86e90c74a9ccdac5a14cf549a95fa33c80e5a2dd7b8349c
|
|
| MD5 |
888ece640240c49b4692ce638c047ad5
|
|
| BLAKE2b-256 |
5734dde190c5b687b68acfacb56461c670235886d03fc5f0f5233c0e5579e01c
|
File details
Details for the file pyjpi-0.1.13-py3-none-any.whl.
File metadata
- Download URL: pyjpi-0.1.13-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ccd895390574a542c7a4b09228d2d6c46c20b4b568a8de17e59ba096c14b352
|
|
| MD5 |
39a0f9db1df3baff5ce83db66f0da83e
|
|
| BLAKE2b-256 |
aa442b197e5ca79126ec19c37ae7c1e27ea4e6c6f79d6e2b87695120e26eb47a
|