/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.

Primary LanguagePythonApache License 2.0Apache-2.0

Endrpi logo

power on test unit tests coverage CodeQL

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.

Powered by Fast API, GPIO Zero, and others.

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

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 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

{
  "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.

Project documentation

Project documentation is hosted at https://endrpi.io.

The project documentation source can be found at https://github.com/persanix-llc/endrpi-docs.

License

Licensed under the Apache License, Version 2.0.

Copyright © 2020 - 2021 Persanix LLC. All rights reserved.