Communication with Lektrico's chargers
Project description
LektricoWifi
This is a package for communicating with Lektrico's chargers (1P7K, 3P22K) and devices (EM, 3EM) when they are in your wifi network.
You have to know the IP of your device.
What is this package offering:
- Identify your device by IP
type, serial_number, board_revision
- Ready the device's parameters
currents, voltages, powers, errors, ...
see the output in the examples below
- Command the device
commands for charger:
- start charging: send_charge_start
- stop charging: send_charge_stop
- reset the device: send_reset
- enable/disable authorisation: set_auth with bool parameter
- set leds brightness: set_led_max_brightness with int parameter 10->100
- set the dynamic current: set_dynamic_current with int parameter 0 or 6->32
- set the user current: set_user_current with int parameter 6->32
- lock/unlock the device: set_charger_locked with bool parameter
commands for em:
- set the load balancing mode (OFF, POWER, HYBRID, GREEN): set_load_balancing_mode with int parameter 0->3
- reset the device: send_reset
How to use it:
-
Find the IP of your Lektrico device in your local wifi network
-
Install it in your python project's environment
pip install lektricowifi==0.0.25
-
Install the required library
pip install aiohttp
-
Python example for charger: (python 3.11.0)
import asyncio from lektricowifi import Device from lektricowifi.models import Info, Settings async def main(): """Example of communicating with a Lektrico charger.""" # use your device's IP! async with Device("192.168.100.11") as device: # identify your device's type settings: Settings = await device.device_config() print(settings) """output: Settings(type='1p7k', serial_number=500006, board_revision='E')""" print(settings.type) """output: 1p7k""" # read your device's parameters info: Info = await device.device_info(Device.TYPE_1P7K) print(info) """output: InfoForCharger(current_l1=0.0, current_l2=0.0, current_l3=0.0, voltage_l1=0.0, voltage_l2=0.0, voltage_l3=0.0, fw_version='1.45_beta', charger_state='Available', session_energy=0.0, charging_time=0, instant_power=0.0, temperature=39.8, dynamic_current=32, require_auth=False, install_current=6, led_max_brightness=100, total_charged_energy=18.0, has_active_errors=False, state_e_activated=False, overtemp=False, critical_temp=False, overcurrent=False, meter_fault=False, undervoltage_error=False, overvoltage_error=False, rcd_error=False, cp_diode_failure=False, contactor_failure=False, user_current=32, current_limit_reason='Installation current')""" # command the charger to start charging answer: bool = await device.send_charge_start() print(answer) """output: {'id': 57130362, 'src': '1p7k_500006', 'dst': 'HASS', 'result': True}""" if __name__ == "__main__": loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) loop.run_until_complete(main())
-
Python example for em device: (python 3.11.0)
import asyncio from lektricowifi import Device, LBMode from lektricowifi.models import Info, Settings async def main(): """Example of communicating with a Lektrico device.""" # use your device's IP! async with Device("192.168.100.201") as device: # identify your device's type settings: Settings = await device.device_config() print(settings) """output: Settings(type='em', serial_number=810172, board_revision='A')""" print(settings.type) """output: em""" # read your device's parameters info: Info = await device.device_info(Device.TYPE_EM) print(info) """output: InfoForM2W(current_l1=0.0, current_l2=0.0, current_l3=0.0, voltage_l1=230.968, voltage_l2=230.968, voltage_l3=0.1,fw_version='1.15', power_l1=0.0, power_l2=0.0, power_l3=0.0, breaker_curent=32, power_factor_l1=0.0, power_factor_l2=0.0, power_factor_l3=0.0, lb_mode=0)""" # command the em to change the load balancing mode answer: bool = await device.set_load_balancing_mode(LBMode.GREEN.value) print(answer) """output: {'id': 32647575, 'src': 'm2w_810172', 'dst': 'HASS', 'result': True}""" if __name__ == "__main__": loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) loop.run_until_complete(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
Built Distribution
File details
Details for the file lektricowifi-0.0.36.tar.gz
.
File metadata
- Download URL: lektricowifi-0.0.36.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac68aaee0bcaa5760c63f716745c545162684e5d735afca038dcccbcbed85207 |
|
MD5 | 1252346afefb287c388173c677f641f7 |
|
BLAKE2b-256 | b0a549cc049ee914d786388969d7d8d36402f56c379f8bf010f65c2049d85dff |
File details
Details for the file lektricowifi-0.0.36-py3-none-any.whl
.
File metadata
- Download URL: lektricowifi-0.0.36-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4166bd8aefe8186726e0031accb80d14c91e0139f6491f9cfb305af84bfcd51 |
|
MD5 | 7f45d18ccbf2817ade435201233ac004 |
|
BLAKE2b-256 | 3968242200f4f2aff998dca5eab02ecfc8f56ef135a10c14733ffe531e5dc119 |