Skip to main content

Entrez

Struct Entrez 

Source
pub struct Entrez { /* private fields */ }
Expand description

Main client for the Enphase Entrez service.

This client provides authentication and token generation for accessing Envoy devices via JWT tokens.

Implementations§

Source§

impl Entrez

Source

pub fn new(url: impl Into<String>) -> Self

Create a new Entrez client with the given URL.

§Arguments
  • url - The base URL of the Entrez service
§Returns

Returns a new Entrez client configured for the given URL.

§Example
use enphase_api::Entrez;

let client = Entrez::new("https://entrez.enphaseenergy.com");
Source

pub fn with_client(url: impl Into<String>, client: Client) -> Self

Create a new Entrez client with the given URL and HTTP client.

This allows you to provide a custom reqwest::Client with specific configuration.

§Arguments
  • url - The base URL of the Entrez service
  • client - A configured reqwest::Client. The client should have cookie storage enabled to maintain session state.
§Example
use enphase_api::Entrez;

let client = reqwest::Client::new();
let entrez = Entrez::with_client("https://entrez.enphaseenergy.com", client);
Source

pub async fn login( &self, username: impl AsRef<str>, password: impl AsRef<str>, ) -> Result<()>

Log in to the Enphase Entrez service.

This authenticates your account and maintains the session for subsequent API calls. The session is maintained automatically by the HTTP agent.

§Arguments
  • username - Your Enphase account username
  • password - Your Enphase account password
§Returns

Returns Ok(()) if login is successful.

§Errors

Returns an error if the login fails due to invalid credentials or network issues.

§Example
use enphase_api::Entrez;

let client = Entrez::default();
client.login("user@example.com", "password").await?;
Source

pub async fn login_with_env(&self) -> Result<()>

Log in to the Enphase Entrez service using environment variables.

This authenticates your account using credentials from ENTREZ_USERNAME and ENTREZ_PASSWORD environment variables. The session is maintained automatically by the HTTP agent for subsequent API calls.

§Returns

Returns Ok(()) if login is successful.

§Errors

Returns an error if:

  • The ENTREZ_USERNAME or ENTREZ_PASSWORD environment variables are not set
  • The login fails due to invalid credentials or network issues
§Example
use enphase_api::Entrez;

// Set ENTREZ_USERNAME and ENTREZ_PASSWORD environment variables
let client = Entrez::default();
client.login_with_env().await?;
Source

pub async fn generate_token( &self, site_name: impl AsRef<str>, serial_number: impl AsRef<str>, commissioned: bool, ) -> Result<String>

Generate a JWT token for accessing an Envoy device.

This generates a token that can be used to authenticate with a specific Envoy device. The token is typically valid for a limited time period.

§Arguments
  • site_name - The name of the site
  • serial_number - The serial number of the Envoy device
  • commissioned - Whether the device is commissioned (true) or not (false)
§Returns

Returns the JWT token string on success.

§Errors

Returns an error if:

  • The request fails
  • The site or serial number is not found
  • You are not logged in
§Example
use enphase_api::Entrez;

let client = Entrez::default();
client.login("user@example.com", "password").await?;

let token = client.generate_token("My Site", "121212121212", true).await?;
println!("Token: {}", token);

Trait Implementations§

Source§

impl Clone for Entrez

Source§

fn clone(&self) -> Entrez

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Entrez

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Entrez

Source§

fn default() -> Self

Create a new Entrez client with the default URL.

This connects to the official Enphase Entrez service at https://entrez.enphaseenergy.com.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more