Skip to main content

Communication with Lektrico's chargers

Project description

LEKTRI.CO

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:

  1. Identify your device by IP

type, serial_number, board_revision

  1. Ready the device's parameters

currents, voltages, powers, errors, ...

see the output in the examples below

  1. 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:

  1. Find the IP of your Lektrico device in your local wifi network

  2. Install it in your python project's environment

    pip install lektricowifi==0.0.25

  3. Install the required library

    pip install aiohttp

  4. 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())
    
  5. 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


Download files

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

Source Distribution

lektricowifi-0.0.31.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

lektricowifi-0.0.31-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file lektricowifi-0.0.31.tar.gz.

File metadata

  • Download URL: lektricowifi-0.0.31.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.0

File hashes

Hashes for lektricowifi-0.0.31.tar.gz
Algorithm Hash digest
SHA256 366ee6a9e08786d53b444f817e77a94a099dcb082dce2551b5d2dabaab626556
MD5 61c584c7abcc59993631ec419fa2dc2b
BLAKE2b-256 3592e688fcfbf1122c9a9c3b9130ab96ec5351bb6ddd728efa4d7299197f4344

See more details on using hashes here.

File details

Details for the file lektricowifi-0.0.31-py3-none-any.whl.

File metadata

File hashes

Hashes for lektricowifi-0.0.31-py3-none-any.whl
Algorithm Hash digest
SHA256 0f531a4dac1b24fabd611979ab00b002f1ba8e6c844971f9208f8be163fbd4a3
MD5 c7ad9300c9f5c8e3d3d920d12febe92e
BLAKE2b-256 c187ce8e67aaa1cc293a12fffe342a187321b67d6b16b08d444f5202a15e159f

See more details on using hashes here.

Supported by

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