# Tauron eLicznik Scraper This Python 3 package allows to read electric energy meter reading history from the [Tauron eLicznik](https://elicznik.tauron-dystrybucja.pl/) website. ## Installation The package can be installed using pip: ``` $ pip3 install elicznik ``` ## Command line usage With the package installed readings can be retrieved by simply running the `elicznik` command: ``` usage: elicznik [-h] [--format {raw,table,csv}] username password [start date] [end date] positional arguments: username tauron-dystrybucja.pl user name password tauron-dystrybucja.pl password start date Start date of date range to be retrieved, in ISO8601 format. If the end date is omitted, it's the only date for which measurements are retrieved. end date End date of date range to be retrieved, inclusive, in ISO8601 format. Can be omitted to only retrieve a single day's measurements. optional arguments: -h, --help show this help message and exit --format {raw,table,csv} Specify the output format ``` ### Example ``` $ elicznik freddy@example.com secretpassword 2021-07-10 timestamp consumed produced ------------------- ---------- ---------- 2021-07-03 01:00:00 0.116 0 2021-07-03 02:00:00 0.105 0 2021-07-03 03:00:00 0.117 0 2021-07-03 04:00:00 0.108 0 2021-07-03 05:00:00 0.125 0 2021-07-03 06:00:00 0.11 0 2021-07-03 07:00:00 0.025 0.107 2021-07-03 08:00:00 0 1.058 2021-07-03 09:00:00 0.26 0.846 2021-07-03 10:00:00 0.034 1.326 2021-07-03 11:00:00 0 1.523 2021-07-03 12:00:00 0 1.166 2021-07-03 13:00:00 0 0.637 2021-07-03 14:00:00 0.677 0.482 2021-07-03 15:00:00 0.741 0.46 2021-07-03 16:00:00 0.031 0.284 2021-07-03 17:00:00 0 0.393 2021-07-03 18:00:00 0.051 0.058 2021-07-03 19:00:00 0.347 0.02 2021-07-03 20:00:00 0.378 0.021 2021-07-03 21:00:00 0.246 0 2021-07-03 22:00:00 0.213 0 2021-07-03 23:00:00 0.269 0 2021-07-04 00:00:00 0.138 0 ``` ## API usage ``` import datetime import elicznik with elicznik.ELicznik("freddy@example.com", "secretpassword") as m: # date range print("July 2021") readings = m.get_readings(datetime.date(2021, 7, 1), datetime.date(2021, 7, 31)) for timestamp, consumed, produced in readings: print(timestamp, consumed, produced) # single day print("Yesterday") yesterday = datetime.date.today() - datetime.timedelta(days=1) readings = m.get_readings(yesterday) for timestamp, consumed, produced in readings: print(timestamp, consumed, produced) ``` ## TODO & bugs * Add support for accounts with multiple meters * Convert the dates to UTC and handle switches from and to DST properly * Make the dependency on tabulate optional ## Similar projects This project is based on the excellent [tauron-elicznik-scrapper](https://github.com/MichalZaniewicz/tauron-elicznik-scraper) project by [MichaƂ Zaniewicz](https://github.com/MichalZaniewicz), but there are several other available out there. Among the other [similar eLicznik projects on GitHub](https://github.com/search?q=elicznik) there's one especially worth checking out: the [Tauron AMIplus sensor](https://github.com/PiotrMachowski/Home-Assistant-custom-components-Tauron-AMIplus) -- it's an eLicznik Home Assistant integration.