https://github.com/persanix-llc/endrpi-server
Endpoints for Raspberry Pi (Endrpi) is a web API server for the Raspberry Pi that provides basic statuses and GPIO controls through a collection of HTTP endpoints.
https://github.com/persanix-llc/endrpi-server
api fastapi gpio http-server python3 raspberry-pi rest-api websocket
Last synced: about 1 year ago
JSON representation
Endpoints for Raspberry Pi (Endrpi) is a web API server for the Raspberry Pi that provides basic statuses and GPIO controls through a collection of HTTP endpoints.
- Host: GitHub
- URL: https://github.com/persanix-llc/endrpi-server
- Owner: persanix-llc
- License: apache-2.0
- Created: 2021-09-11T14:27:15.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-05-23T02:14:30.000Z (about 3 years ago)
- Last Synced: 2025-04-19T19:05:27.989Z (about 1 year ago)
- Topics: api, fastapi, gpio, http-server, python3, raspberry-pi, rest-api, websocket
- Language: Python
- Homepage: https://endrpi.io
- Size: 457 KB
- Stars: 3
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://github.com/persanix-llc/endrpi-server/actions/workflows/power-on-test.yml)
[](https://github.com/persanix-llc/endrpi-server/actions/workflows/unit-tests.yml)
[](https://github.com/persanix-llc/endrpi-server/actions/workflows/coverage.yml)
[](https://github.com/persanix-llc/endrpi-server/actions/workflows/codeql-analysis.yml)
Endpoints for Raspberry Pi (Endrpi) is a web API server for the [Raspberry Pi](https://raspberrypi.org)
that provides basic statuses and GPIO controls through a collection of HTTP endpoints.
Powered by [Fast API](https://github.com/tiangolo/fastapi),
[GPIO Zero](https://github.com/gpiozero/gpiozero),
and [others](requirements.txt).
## Features
#### REST API
* Reads system statuses such as temperature, memory usage, throttling, etc.
* Reads/updates GPIO pin state, function, and pull
* Generates interactive documentation via [Swagger UI](https://swagger.io/tools/swagger-ui)
#### Websocket
* Maintains a persistent, low-latency connection
* Mirrors the REST API through a request/response action pattern
## Requirements
≥ Python 3.7
≥ Raspberry Pi 3
* Compatible with the standard [Raspberry Pi OS](https://www.raspberrypi.com/documentation/computers/os.html) image
* Previous Raspberry Pi versions may work but have not been verified
## Quickstart
```
pip3 install -U endrpi && endrpi
```
## Example Request
The following request returns the temperature of the Raspberry Pi® System on Chip.
Request
```GET http://localhost:5000/system/temperature```
Response
```javascript
{
"systemOnChip": {
"quantity": 45.622,
"prefix": null,
"unitOfMeasurement": "CELSIUS"
}
}
```
Endrpi generates live, interactive API documentation. A complete list of REST endpoints can be found hosted at [localhost:5000/docs](http://localhost:5000/docs).
## Project documentation
Project documentation is hosted at [https://endrpi.io](https://endrpi.io).
The project documentation source can be found at
[https://github.com/persanix-llc/endrpi-docs](https://github.com/persanix-llc/endrpi-docs).
## License
Licensed under the Apache License, Version 2.0.
Copyright © 2020 - 2021 Persanix LLC. All rights reserved.