# QSB36

Query SunnyBoy 3.6 inverter for current output in watts, total yield and other information via the inverter's internal web interface.


* the inverter only supports http, not https
* the inverter limits the number of active sessions, so it is a good idea to log out when your program terminates 
* the inverter may close your session after a period of inactivity
* in your application, you probably want to poll the current ouput every n seconds, where n is small
* you probably want to poll the other values much less frequently
* be careful not to put too much pressure on the inverter's web server by excessive querying of historical yields
* you will have to interpret the data yourself and calculate your own deltas
* there is currently next to no input value verification; use carefully
* this module has so far only been tested on one specific actual device; there is no guarantee that this module is fit for your purpose / inverter; use at your own risk

## Example

    iex> {:ok, session} = QSB36.user_login("", "password_for_user_group")
    {:ok, %QSB36.Session{host: "", sid: "mOi0Eg_N4kaNhg_R"}}

    iex> QSB36.device_info(session)
    {:ok, {"SB3.6-1AV-40 231", 1234567890}}

    iex> QSB36.health_status(session)                      
    {:ok, {307, :ok}}

    iex> QSB36.current_time(session)
    {:ok, {1584382357, 0}}

    iex> QSB36.current_watts(session)
    {:ok, 262}

    iex> QSB36.total_yield(session)
    {:ok, 3388801}

    iex> QSB36.yield_daily(session, 1584309600, 1584410400) 
    {:ok, [{1584316800, 3356183}, {1584403200, 3370444}]}

    iex> QSB36.yield_5min(session, 1584316800, 1584403200)  
        {1584316800, 3356183},
        {1584403200, 3370444}

    iex> QSB36.logout(session)

## Installation

Add `qsb36` to your list of dependencies in `mix.exs`:

def deps do
    {:qsb36, "~> 0.1.0"}

The docs can be found at [](