Skip to content

Commit

Permalink
Generate 2.5.0 docs
Browse files Browse the repository at this point in the history
  • Loading branch information
runner committed Jul 28, 2024
1 parent 121280b commit 8951888
Show file tree
Hide file tree
Showing 33 changed files with 5,096 additions and 3 deletions.
201 changes: 201 additions & 0 deletions docs/2.5.0/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Unreleased
==========
- Nothing!

.v2.4.0 - 2024-07-20
====================
- Bump tj-actions/branch-names from 2.2 to 7.0.7 in /.github/workflows by @dependabot in https://github.com/flyte/mqtt-io/pull/339
- # Fix for poetry/docutils related bug by @BenjiU in https://github.com/flyte/mqtt-io/pull/367
- upgrade DHT11/DHT22 backing library by @pansila in https://github.com/flyte/mqtt-io/pull/297
- Install gcc for slim docker to build rpi.gpio on demand by @BenjiU in https://github.com/flyte/mqtt-io/pull/368
- Remove lint warnings from bmp085.py by @BenjiU in https://github.com/flyte/mqtt-io/pull/375
- Add support for YF-S201 flow rate sensor by @linucks in https://github.com/flyte/mqtt-io/pull/370
- Support for ENS160 digital multi-gas sensor with multiple IAQ data (TVOC, eCO2, AQI) by @linucks in https://github.com/flyte/mqtt-io/pull/371
- feat: add MH-Z19 sensor module by @kleest in https://github.com/flyte/mqtt-io/pull/365
- Add Support for Sunxi Linux Boards by @fabys77 in https://github.com/flyte/mqtt-io/pull/100

.v2.3.0 - 2024-03-01
====================
- 324 pinned pyyaml version incompatible with latest cython 300 by @BenjiU in #325
- fix pipeline for tagging by @BenjiU in #323
- pin pyyaml to v6.0.1 by @BenjiU in #326
- Add new module for sensor adxl345 by @birdie1 in #223
- Sensor INA219: Use optional i2c_bus_num by @mschlenstedt in #328
- Update ads1x15.py by @maxthebuch in #329
- repeat subscribe when reconnected to MQTT broker by @JohannesHennecke in #337
- Fix non-unique identifiers reporting to HA by @dolai1 in #345
- docker: use a "slim" base image by @chatziko in #342
- Fix applying mqtt.reconnect_count by reordering except clauses by @zzeekk in #331
- Add PMS5003 Particulate Sensor by @johnwang16 in #346
- gpiod: enable pullup/pulldown by @chatziko in #341
- docker: slim image, use rustup, build deps only on armv7 by @chatziko in #352

.v2.2.9d - 2023-07-18
====================
- new sensors
- fix for reconnection problem

.v2.2.8 - 2023-01-19
====================
- Fix for #280 by @rlehfeld in #281
- Fix reconnects_remaining referenced before assignment by @SamLeatherdale in #274
- Only create one instance of sensor_module for ADS1x15 by @shbatm in #286
- PN532 NFC/RFID reader implementation by @vytautassurvila in #269
- Update README.md by @OzGav in #264
- FIX OrangePi module by @neatherweb in #285
- New DockerPi 4 Channel Relay GPIO module by @claudegel in #246
- Digital Output: fix initial state inconsistency by @hacker-cb in #238
- Add module mcp3xxx by @koleo9am in #227
- Always remove finished transient_tasks. by @gmsoft-tuxicoman in #301

.v2.2.7 - 2022-07-07
====================
- Fix some minor pylint issues and silence some others.
- Fix bug with changing reference to 'edge' in raspberrypi module. #268 @vytautassurvila
- Add INA219 sensor module. #221 @birdie1
- Implement PinPUD.OFF for pcf8574/5. #217 @IlmLV
- Ensure HCSR04 distance cannot be None. #215 @joseffallman
- Add GPIOZero module. #212 @fipwmaqzufheoxq92ebc
- Render config with confp to allow dynamic configuration based on environment/redis/etcd vars. #210 @fipwmaqzufheoxq92ebc
- Log uncaught exceptions to configured logging handlers. #206 @fipwmaqzufheoxq92ebc

v2.2.6 - 2021-04-23
===================
- Create docs in a tempdir to stop them from being clobbered when changing branches.

v2.2.5 - 2021-04-23
===================
- Sort versions in docs. Use git pull properly.

v2.2.4 - 2021-04-23
===================
- Generate docs versions and root index to strings and write them after switching branches

v2.2.3 - 2021-04-23
===================
- Add docs root index to git separately

v2.2.2 - 2021-04-23
===================
- Fix version regex for docs index generation

v2.2.1 - 2021-04-23
===================
- Handle tags in generate docs script.

v2.2.0 - 2021-04-23
===================
- Multi-versioned documentation.
- Auto-reconnect to MQTT server on disconnection. #207 @fipwmaqzufheoxq92ebc

v2.1.8 - 2021-04-21
===================
- Fix broken hcsr04 sensor that I (@flyte) broke when rewriting for v2.x. #211 @r00tat
- Fix inversion not taken into account when publishing initial digital output value. #203 @r00tat
- Fix #198 where Future wasn't created from the right thread. #205 @fipwmaqzufheoxq92ebc

v2.1.7 - 2021-04-01
===================
- Add install_requirements config option to skip installing missing module requirements. #199

v2.1.6 - 2021-04-01
===================
- Add ADS1x15 module. #200 @r00tat

v2.1.5 - 2021-04-01
===================
- Update PyYAML version to 5.4 CVE-2020-14343

v2.1.4 - 2021-03-26
===================
- Add version to 'model' field of HA Discovery config payload. #196 @pbill2003

v2.1.3 - 2021-03-26
===================
- Add missing `spi_device` config schema entry for MCP3008 sensor module. #194

v2.1.2 - 2021-03-24
===================
- Remove config validation that checks usage of the same numbered pin used twice. #191

v2.1.1 - 2021-03-16
===================
- Fix bodged BH1750 sensor value reading code. #189

v2.1.0 - 2021-03-11
===================
- Add *OPT-IN* error reporting to sentry. Bumps minor version because it adds a config entry.

v2.0.1 - 2021-03-11
===================
- Fix bug where sensor config was retrieved from the wrong place https://github.com/flyte/mqtt-io/issues/185

v2.0.0 - 2021-03-07
===================
- Rewrite core with asyncio
- Change MQTT client to asyncio-mqtt
- Add better validation for config
- [Move some config values around](https://flyte.github.io/mqtt-io/#/config/v2-changes), but mostly stay compatible with existing configs
- Add MCP23017 module
- [Rework interrupts](https://flyte.github.io/mqtt-io/#/config/interrupts) to allow for pins to be interrupts for other pins on other modules
- Enable extra values to be added to the [Home Assistant Discovery](https://flyte.github.io/mqtt-io/#/config/ha_discovery) config payloads
- Rename package from pi-mqtt-gpio to mqtt-io since it's not just for Raspberry Pi, and not just for GPIO
- Create generated documentation for the config file options ("Section Reference" section of [the documentation](https://flyte.github.io/mqtt-io/#/))
- Tons more stuff, too varied to list here. It's safe to say that almost everything has been improved (hopefully) in some way

v0.5.3 - 2020-10-17
===================
- Add PCF8575 support. #121
- Add MCP3008 sensor support. #115
- Add AHT20 sensor support. #122
- Add BME280 sensor support. #132
- Install requirements using current Python executable. #134
- Add sensors to HASS discovery. #133
- Add option to publish output value on startup. #125

v0.5.2 - 2020-10-17
===================
- Update PyYAML to a version that doesn't suffer from CVE-2020-1747 vulnerability.
- Add 'stream' IO.

v0.3.1 - 2019-03-10
===================
- Pin safe version of PyYAML in requirements.

v0.3.0 - 2019-03-10
===================
- Merge PR from @BenjiU which implements a new sensor interface. #52

v0.0.12 - 2017-07-26
====================
- Add cleanup function to modules which are called before program exit. #16

v0.0.11 - 2017-07-26
====================
- Decode received MQTT message payload as utf8 before trying to match with on/off payload values. #14

v0.0.10 - 2017-07-26
====================
- Fix bug with selection of pullup value in raspberrypi module when none set. #15

v0.0.9 - 2017-07-26
===================
- Successful fix for bug with loading config schema. #13

v0.0.8 - 2017-07-26
===================
- Failed fix for bug with loading config schema. #13

v0.0.7 - 2017-07-17
===================

- Implement `set_on_ms` and `set_off_ms` topic suffixes. Closes #10

v0.0.6 - 2017-07-17
===================

- Large refactor and tidyup.
- Implement config validation using cerberus.
- Enable configuration of MQTT protocol. Closes #11.
- Deploy Python Wheel as well as source package.
- Add some (not exhaustive) tests.
177 changes: 177 additions & 0 deletions docs/2.5.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
<!--
***************************************************************************************
DO NOT EDIT README.md DIRECTLY, IT'S GENERATED FROM README.md.j2 USING generate_docs.py
***************************************************************************************
-->

# MQTT IO

_Documentation version: `2.5.0`_

[![Discord](https://img.shields.io/discord/713749043662290974.svg?label=Chat%20on%20Discord&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/gWyV9W4)

Exposes general purpose inputs and outputs (GPIO), hardware sensors and serial devices to an MQTT server. Ideal for single-board computers such as the Raspberry Pi.

## Supported Hardware

Hardware support is provided by specific GPIO, Sensor and Stream modules. It's easy to add support for new hardware and the list is growing fast.

### GPIO Modules

- Beaglebone GPIO (`beaglebone`)
- DockerPi 4 Channel Relay GPIO (`dockerpi`)
- Linux Kernel 4.8+ libgpiod (`gpiod`)
- GPIO Zero (`gpiozero`)
- MCP23017 IO expander (`mcp23017`)
- Orange Pi GPIO (`orangepi`)
- PCF8574 IO expander (`pcf8574`)
- PCF8575 IO expander (`pcf8575`)
- PiFace Digital IO 2 (`piface2`)
- Raspberry Pi GPIO (`raspberrypi`)
- Sunxi Board (`sunxi`)

### Sensors

- ADS1x15 analog to digital converters (`ads1x15`)
- ADXL345 Digital Accelerometer Sensor

Mandatory:
- chip_addr

Optional:
- output_g (set True if output in g). default:m*

Output:
- x (in m*s²)
- y (in m*s²)
- z (in m*s²) (`adxl345`)
- AHT20 temperature and humidity sensor (`aht20`)
- BH1750 light level sensor (`bh1750`)
- BME280 temperature, humidity and pressure sensor (`bme280`)
- BME680 temperature, humidity and pressure sensor (`bme680`)
- BMP085 temperature and pressure sensor (`bmp085`)
- DHT11/DHT22/AM2302 temperature and humidity sensors (`dht22`)
- DS18S20/DS1822/DS18B20/DS1825/DS28EA00/MAX31850K temperature sensors (`ds18b`)
- ENS160 Air Quality Sensor

sensor_modules:
- name: ens160
module: ens160
chip_addr: 0x53
temperature_compensation: 25
humidity_compensation: 50

sensor_inputs:
- name: air_quality
module: ens160
interval: 10
digits: 0
type: aqi

- name: volatile_organic_compounds
module: ens160
interval: 10
digits: 0
type: tvoc

- name: eco2
module: ens160
interval: 10
digits: 0
type: eco2 (`ens160`)
- HCSR04 ultrasonic range sensor (connected to the Raspberry Pi on-board GPIO) (`hcsr04`)
- INA219 DC current sensor (`ina219`)
- LM75 temperature sensor (`lm75`)
- MCP3008 analog to digital converter (`mcp3008`)
- MCP3xxx analog to digital converter via GPIOZero (`mcp3xxx`)
- MH-Z19 NDIR CO2 sensor (`mhz19`)
- PMS5003 Particulate Matter Sensor (`pms5003`)
- SHT4x temperature and humidity sensor (`sht4x`)
- YF-S201 Flow Rate Sensor

Example configuration:

sensor_modules:
- name: yfs201
module: yfs201

sensor_inputs:
- name: flow_rate1
module: yfs201
pin: 0
digits: 0
interval: 10 (`yfs201`)

### Streams

- PN532 NFC/RFID reader (`pn532`)
- Serial port (`serial`)

## Installation

_Requires Python 3.6+_

`pip3 install mqtt-io`

## Execution

`python3 -m mqtt_io config.yml`

## Configuration Example

Configuration is written in a YAML file which is passed as an argument to the server on startup.



The following example will configure the software to do the following:

- Publish MQTT messages on the `home/input/doorbell` topic when the doorbell is pushed and released.
- Subscribe to the MQTT topic `home/output/port_light/set` and change the output when messages are received on it.
- Periodically read the value of the LM75 sensor and publish it on the MQTT topic `home/sensor/porch_temperature`.
- Publish any data received on the `/dev/ttyUSB0` serial port to the MQTT topic `home/serial/alarm_system`.
- Subscribe to the MQTT topic `home/serial/alarm_system/send` and send any data received on that topic to the serial port.

```yaml
mqtt:
host: localhost
topic_prefix: home

# GPIO
gpio_modules:
# Use the Raspberry Pi built-in GPIO
- name: rpi
module: raspberrypi

digital_inputs:
# Pin 0 is an input connected to a doorbell button
- name: doorbell
module: rpi
pin: 0

digital_outputs:
# Pin 1 is an output connected to a light
- name: porch_light
module: rpi
pin: 1

# Sensors
sensor_modules:
# An LM75 sensor attached to the I2C bus
- name: lm75_sensor
module: lm75
i2c_bus_num: 1
chip_addr: 0x48

sensor_inputs:
# The configuration of the specific sensor value to use (LM75 only has temperature)
- name: porch_temperature
module: lm75_sensor

# Streams
stream_modules:
# A serial port to communicate with the house alarm system
- name: alarm_system
module: serial
device: /dev/ttyUSB0
baud: 9600
```
Loading

0 comments on commit 8951888

Please sign in to comment.