Python Wrapper to communicate with a Meteobridge Weather Data Logger
Project description
Python Wrapper for Meteobridge Datalogger
This module communicates with a Meteobridge Datalogger using their Template Script.
The module is primarily written for the purpose of being used in Home Assistant for the Custom Integration called meteobridge
but might be used for other purposes also.
When this is done, it will replace the previous module pymeteobridgeio
Install
pymeteobridgedata
is avaible on PyPi:
pip install pymeteobridgedata
Usage
This library is primarily designed to be used in an async context.
The main interface for the library is the pymeteobridgedata.MeteobridgeApiClient
. This interface takes 5 options:
username
: (required) The username to login to your Meteobridge device. Default this meteobridge.password
: (required) The password for your meteobridge device.ip_address
: (required) IP Address of the Meteobridge device.units
: (optional) Valid options here are metric or imperial. Metebridge devices always deliver data in metric units, so conversion will only take place if if metric is not selected. Default value is metricextra_sensors
: (optional) Number of extra sensors attached to the Meteobridge Logger (Default is 0, max is 7)homeassistant
: (optional) Valid options are True or False. If set to True, there will be some unit types that will not be converted, as Home Assistant will take care of that. Default value is True
Example Python script
import asyncio
import logging
import time
from pymeteobridgedata import MeteobridgeApiClient, Invalid, NotAuthorized, BadRequest
from pymeteobridgedata.data import DataLoggerDescription, ObservationDescription
_LOGGER = logging.getLogger(__name__)
async def main() -> None:
logging.basicConfig(level=logging.DEBUG)
start = time.time()
meteobridge = MeteobridgeApiClient(USERNAME, PASSWORD, IP_ADDRESS, homeassistant=False, units="imperial", extra_sensors=0)
try:
await meteobridge.initialize()
except Invalid as err:
_LOGGER.debug(err)
except NotAuthorized as err:
_LOGGER.debug(err)
except BadRequest as err:
_LOGGER.debug(err)
data: DataLoggerDescription = meteobridge.device_data
if data is not None:
for field in data.__dataclass_fields__:
value = getattr(data, field)
print(field,"-", value)
data: ObservationDescription = await meteobridge.update_observations()
if data is not None:
for field in data.__dataclass_fields__:
value = getattr(data, field)
print(field,"-", value)
end = time.time()
await meteobridge.req.close()
_LOGGER.info("Execution time: %s seconds", end - start)
asyncio.run(main())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pymeteobridgedata-0.1.6.tar.gz
.
File metadata
- Download URL: pymeteobridgedata-0.1.6.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 366a098ef1b2a657846369964b43355af4685cb11513403978ed083b90ced1c3 |
|
MD5 | d9f7307e46a80eaa28bf2e4fab352510 |
|
BLAKE2b-256 | 97a5bc688992022097a069b44da6c04449634714ab45cbad720119dd24cf8e18 |