Skip to main content

homie-power-supply-node is a Python package that uses homie-spec to provide a homie node implementation that can be used to create Homie-compliant messages from your power supply device.

Project description

homie-power-supply-node

homie-power-supply-node is a Python package that uses homie-spec to provide a homie node implementation that can be used to create Homie-compliant messages from your power supply device.

This package has no dependencies other than Python >=3.6 and homie-spec. Only Linux is supported at the moment, as it uses /sys/class/power_supply/*/uevent to read the power supply properties.

Installation

Use the package manager pip to install homie-power-supply-node.

pip install homie-power-supply-node

Usage

from homie_spec import Device
from homie_power_supply_node import PowerSupply

desktop = Device(
    id="desktop",
    name="Desktop Computer",
    nodes={"battery": PowerSupply("BAT0").node(whitelist_properties=["capacity"])},
)

messages = desktop.messages()
assert next(messages).topic == "homie/desktop/$state"
assert next(messages).topic == "homie/desktop/$name"
assert next(messages).topic == "homie/desktop/$homie"
assert next(messages).topic == "homie/desktop/$implementation"
assert next(messages).topic == "homie/desktop/$nodes"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/$name"
assert msg.payload == "BAT0"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/$type"
assert msg.payload == "power-supply"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/$properties"
assert msg.payload == "capacity"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/capacity/$name"
assert msg.payload == "Capacity"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/capacity/$datatype"
assert msg.payload == "integer"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/capacity/$unit"
assert msg.payload == "%"

msg = next(messages)
assert msg.topic == "homie/desktop/battery/capacity/$format"
assert msg.payload == "0:100"


print(
    "Current battery capacity: "
    f"{format(desktop.getter_message('battery/capacity').payload)}%"
)
"""

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

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

homie-power-supply-node-0.1.2.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

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

homie_power_supply_node-0.1.2-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file homie-power-supply-node-0.1.2.tar.gz.

File metadata

  • Download URL: homie-power-supply-node-0.1.2.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.8.0 Linux/4.15.0-1028-gcp

File hashes

Hashes for homie-power-supply-node-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ad3df175cd4751277bbe7ce14955f2856523a2df618c1bfd2aca4df012dddf85
MD5 bb8d4cb59a51450d297773b23b5f6102
BLAKE2b-256 6388d8e0dd5eb3c5b120d40d7b2a51446ccc5aedcb9d9ea2c2a7f4989df813ff

See more details on using hashes here.

File details

Details for the file homie_power_supply_node-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for homie_power_supply_node-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7371ea04c9b9a2ead187b6c8bc021371532150fea305ca2ef9955d14b8eb07c1
MD5 df0acc343f7b30dbc786294c54e24d44
BLAKE2b-256 b7681fd6b5bd98373b6aab51c750f1ace551adb6ffd24d58a1c18b28dd00de2d

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