Skip to main content

Homie 4.0.0 Implementation

Project description

Homie

Python 3 implementation of Homie 4.0.0

Class based system to easily add Homie 4.0.0 support to devices.

Supports the Meta, Statistics, and Firmware extensions

Includes ready to use common devices such as switch, dimmer, contact, thermostat, boolean, etc.

Install

pip install Homie4

Note: On Raspbian use

pip3 install Homie4

Temperature Probe Example

Creates a temperature device using a AM2302 sensor.

import Adafruit_DHT
import time

from homie.device_temperature import Device_Temperature

mqtt_settings = {
    'MQTT_BROKER' : 'OpenHAB',
    'MQTT_PORT' : 1883,
}

try:

    temperature_device = Device_Temperature(device_id="temperature-sensor-1",name = "Temperature_Sensor 1",mqtt_settings=mqtt_settings)
    sensor = Adafruit_DHT.AM2302
    pin = 4

    
    while True:
        humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        print(temperature)
        temperature_device.update_temperature(temperature)
        time.sleep(5)

except (KeyboardInterrupt, SystemExit):
    print("Quitting.")   

Dimmer Example

To create a dimmer device requires that a set_dimmer method be provided. When creating a device, all that is required is to provide the MQTT settings. All other requirements of the Homie specification are automatically handled.

import time

from homie.device_dimmer import Device_Dimmer

mqtt_settings = {
    'MQTT_BROKER' : 'QueenMQTT',
    'MQTT_PORT' : 1883,
}

class My_Dimmer(Device_Dimmer):

    def set_dimmer(self,percent):
        print('Received MQTT message to set the dimmer to {}. Must replace this method'.format(percent))
        super().set_dimmer(percent)        

try:

    dimmer = My_Dimmer(name = 'Test Dimmer',mqtt_settings=mqtt_settings)
    
    while True:
        dimmer.update_dimmer(0)
        time.sleep(5)
        dimmer.update_dimmer(50)
        time.sleep(5)
        dimmer.update_dimmer(100)
        time.sleep(5)

except (KeyboardInterrupt, SystemExit):
    print("Quitting.")      

If creating multiple homie devices, you can specify Homie to only use one MQTT connection. This can be an issue on devices with limited resources. For MQTT_SETTINGS add MQTT_SHARE_CLIENT: True.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Homie4-0.3.9.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Homie4-0.3.9-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file Homie4-0.3.9.tar.gz.

File metadata

  • Download URL: Homie4-0.3.9.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for Homie4-0.3.9.tar.gz
Algorithm Hash digest
SHA256 5f188de654e4804e665406f421475a3d605bce817606cfa3014983532f742dca
MD5 d6dd91b09b524e9d579c779b677242c1
BLAKE2b-256 5bd5d50de660c28bf7fb96f416ab5863d3689a1d619d033a59ecad29297ebeb0

See more details on using hashes here.

File details

Details for the file Homie4-0.3.9-py3-none-any.whl.

File metadata

  • Download URL: Homie4-0.3.9-py3-none-any.whl
  • Upload date:
  • Size: 36.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for Homie4-0.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c4c4bec848764d09470891f95e00619042a6782611162c7ca6c02d8a756fe5a6
MD5 cf6e40ddec76fd0fe5db78ea7aaa0e03
BLAKE2b-256 5b749dd8de8d29aba9c149d2b239acbe979d3a8d734caa7115a929b8243d8403

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page