mausy5043-common
A Python 3.12+ library providing common functions and classes for interacting with various devices and services, including HomeWizard energy monitors, Sessy home batteries, SQLite3 databases, and meteorological calculations.
Requirements
- Python 3.12 or higher
- Dependencies:
numpy,pandas,pyarrow,python-homewizard-energy,sessypy,zeroconf
NOTE: Before using the SQLite3 functions, ensure the SQLite3 server/client and default Python package are installed.
Installation
python3 -m pip install mausy5043-common
Modules
funfile
File operation utilities.
cat(file_name: str) -> str: Read a file into a variable.
funmeteo
Meteorological calculations and conversions.
moisture(temperature, relative_humidity, pressure) -> np.ndarray: Calculate moisture content of air (kg/m³).wet_bulb_temperature(temperature, relative_humidity) -> float: Calculate wet bulb temperature (°C).saturation_vapor_pressure(temperature) -> ArrayLike: Compute saturation vapor pressure (hPa).dew_point_temperature(temperature, relative_humidity) -> ArrayLike: Compute dew point temperature (°C).relative_humidity_t2(T1, RH1, T2) -> ArrayLike: Calculate new relative humidity after a temperature change.
libsqlite3
SQLite3 database interaction.
SqlDatabase: A class to interact with SQLite3 databases, supporting data queuing, insertion, and retrieval.
funzeroconf
ZeroConf service discovery for network devices.
discover_devices(search_time: float = 60.0) -> dict: Discover services on the network using Zeroconf.get_ip(service: str, filtr: str = "", timeout: float = 60.0) -> list[str]: Retrieve IP addresses for a given service.prune_services(devices: dict, services: list[str]) -> dict: Filter devices by supported services.filter_properties(devices: dict, service: str, filtr: str) -> dict: Filter devices by property contents.
funhomewizard
HomeWizard energy monitor integration.
HomeWizard_V1: Class for interacting with HomeWizard P1-dongle (API v1).HomeWizard_V2: Class for interacting with HomeWizard devices (API v2).MyHomeWizard: High-level class to discover and connect to HomeWizard devices, supporting both API versions.
funsessy
Sessy home battery integration.
Sessy_v1: Class for interacting with Sessy batteries (API v1).MySessyBattery: High-level class to connect and retrieve data from Sessy batteries.
Usage Examples
Meteorological Calculations
from mausy5043_common.funmeteo import moisture, wet_bulb_temperature
# Calculate moisture content
temperature = 25.0 # °C
relative_humidity = 60.0 # %
pressure = 1013.25 # hPa
moisture_content = moisture(temperature, relative_humidity, pressure)
# Calculate wet bulb temperature
wet_bulb = wet_bulb_temperature(temperature, relative_humidity)
SQLite3 Database
from mausy5043_common.libsqlite3 import SqlDatabase
db = SqlDatabase(
database="example.db",
table="measurements",
insert="INSERT INTO measurements VALUES (?, ?, ?)"
)
db.queue({"timestamp": "2024-01-01", "value": 42})
db.insert()
HomeWizard Integration
from mausy5043_common.funhomewizard import MyHomeWizard
hw = MyHomeWizard(serial="YOUR_SERIAL", token="YOUR_TOKEN", debug=True)
hw.connect()
measurement = hw.get_measurement()
Sessy Battery Integration
from mausy5043_common.funsessy import MySessyBattery
battery = MySessyBattery(ip="192.168.1.100", user="admin", token="password", debug=True)
battery.connect()
measurement = battery.get_measurement()
ZeroConf Discovery
from mausy5043_common.funzeroconf import discover_devices, get_ip
# Discover all devices
devices = discover_devices(search_time=30.0)
# Get IP addresses for HomeWizard devices
homewizard_ips = get_ip(service="_homewizard", filtr="HWE-P1")
License
This project is licensed under the MIT License - see LICENSE for details.
Release files for mausy5043-common 2.13.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mausy5043_common-2.13.1.tar.gz | 123.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mausy5043_common-2.13.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 152.9 kB
Release files / mausy5043_common-2.13.1.tar.gz
| Download URL | mausy5043_common-2.13.1.tar.gz |
|---|---|
| Size | 123.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
79c034dfc489cd3c29aad94710a99bf4e2f99a6d780db62a43c085284652b1e5
|
|
BLAKE2b-256 checksum How to use checksums |
22ebc5bb1e95b59f81d15ff75af30458e8bce07beaabedfe2303608645dd69cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / mausy5043_common-2.13.1-py3-none-any.whl
| Download URL | mausy5043_common-2.13.1-py3-none-any.whl |
|---|---|
| Size | 29.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
33ec903526ebc374f3f79759316d126dcf59d43996e051a52189ba3f896a4291
|
|
BLAKE2b-256 checksum How to use checksums |
0115ec0e0fd963e4e459ef05c9a5bbec53b0b73da617280fd589a5410de6a337
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|