Package: elicznik
Tauron eLicznik ScraperThis Python 3 package allows to read electric energy meter reading history from theTauron eLicznikwebsite.InstallationThe package can be installed using pip:$ pip3 install elicznikCommand line usageWith the package installed readings can be retrieved by simply running theelicznikcommand:usage: elicznik [-h] [--format {table,csv}] [--api {chart,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.

options:
  -h, --help            show this help message and exit
  --format {table,csv}  Specify the output format
  --api {chart,csv}     Specify which Tauron API to use to get the measurements.Example$ elicznik freddy@example.com secretpassword 2022-07-20
timestamp              consumed    produced    net consumption    net production
-------------------  ----------  ----------  -----------------  ----------------
2022-07-20 00:00:00       0.133       0                  0.133             0
2022-07-20 01:00:00       0.127       0                  0.127             0
2022-07-20 02:00:00       0.119       0                  0.119             0
2022-07-20 03:00:00       0.119       0                  0.119             0
2022-07-20 04:00:00       0.124       0                  0.124             0
2022-07-20 05:00:00       0.02        0.226              0                 0.206
2022-07-20 06:00:00       0           1.058              0                 1.058
2022-07-20 07:00:00       0.086       1.607              0                 1.521
2022-07-20 08:00:00       0           2.09               0                 2.09
2022-07-20 09:00:00       0           2.302              0                 2.302
2022-07-20 10:00:00       0.223       2.427              0                 2.204
2022-07-20 11:00:00       0.031       2.723              0                 2.692
2022-07-20 12:00:00       0           2.818              0                 2.818
2022-07-20 13:00:00       0           2.735              0                 2.735
2022-07-20 14:00:00       0           2.413              0                 2.413
2022-07-20 15:00:00       0           1.953              0                 1.953
2022-07-20 16:00:00       0.316       1.407              0                 1.091
2022-07-20 17:00:00       0.183       1.2                0                 1.017
2022-07-20 18:00:00       0.001       0.843              0                 0.842
2022-07-20 19:00:00       0.446       0.274              0.172             0
2022-07-20 20:00:00       0.712       0                  0.712             0
2022-07-20 21:00:00       0.225       0                  0.225             0
2022-07-20 22:00:00       0.207       0                  0.207             0
2022-07-20 23:00:00       0.15        0                  0.15              0API usageimport 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)Notes on APIs and the--apicommand line switchTauron exposes two API endpoints for retrieving meter readings -- one for downloading CSV (and XLS) data,
the other is a back-end supporting the charts in the Web UI.  In theory, both endpoints are equivalent.
They can be used to get exactly the same data.  In practice, the endpoint for downloading CSV data seems
more stable -- in contrast to the chart one, which changed a few times in the past.  The CSV endpoint is
also more robust and allows downloading more data with fewer requests.This project supports fetching data from both.  CSV is the default and recommended one, but it's possible
to switch to the chart API endpoint in case of problems.This can be done by adding--api=charton the command line:$ elicznik --api=chart freddy@example.com secretpassword 2021-07-10Both APIs can also be used explicitly from code.  Theelicznikmodule defines two classes for thatELicznikChartandELicznikCSV.ELicznikis just an alias forELicznikCSV:import elicznik

with elicznik.ELicznikChart("freddy@example.com", "secretpassword") as m:
    ...TODO & bugsAdd support for accounts with multiple metersConvert the dates to UTC and handle switches from and to DST properlyMake the dependency on tabulate optionalSimilar projectsThis project is based on the excellenttauron-elicznik-scrapperproject byMichał Zaniewicz, but there are several other available out there.Among the othersimilar eLicznik projects on GitHubthere's one especially
worth checking out:
theTauron AMIplus sensor-- it's
an eLicznik Home Assistant integration.