npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@samthegeek/frigidaire

v3.0.0

Published

Frigidaire Appliance Node.js Module

Downloads

22

Readme

Frigidaire Cloud Node.js Module

This is a quick and dirty client to talk to the Frigidaire cloud services for C&C of Frigidiare Wifi enabled devices. Ultimate goal is to integreate with HomeKit for Siri and better UI/UX expereince! (the Frigidare App is terrible)

Update 2023-06-26

Frigidaire once again updated their API (to V3) in June 2023, meaning the module had to be largely rewritten. The new V3 API uses a standard OAuth flow for authentication, and appears to be much simpler in architecture.

Another benefit of the V3 API is the auto-discovery process for geography. All you need is a working username/password, and it will automatically determine the correct endpoint (US/EU/LATAM/etc) to use.

While the only device I had available to test with is an AC unit, the V3 API gives me confidence that additional device types can be easily implemented.

This module has been updated so that it fully utilizes the V3 API, leaving no dependency on the old V2 API.

So as to maintain backwards compatibility, the old V2 API code has not been removed, and remains fully usable. To specify the use of the V2 API, when instantiating a new Frigidaire object, specify false as the second parameter, ie:

var ac = new Frigidaire({
  username: '[email protected]',
  password: 'frigidaire1492915@!',
}, false);

That second parameter is set to default to true (see line 42 in lib/frigidaire.js), so the plugin will default to using the new V3 API. This means that any downstream modules (ie homebridge-frigidaire) can test against the new API with a minimum of code refactoring.

New configuration option: refresh token caching

Because the V3 API uses standard OAuth for authentication, it uses refresh tokens as a 'shortcut' to obtain an access token. This refresh token can be cached on disk, enabling the module to start faster, as well as be a better API citizen.

To enable this functionality, provide a writable directory path with the cacheDir option when instantiating a Frigidaire object. The refresh token will be saved in this directory, with filename .frigidaireRefreshToken_<applianceSN>.

The homebridge-frigidaire plugin has been updated to take advantage of this new functionality; see the respective documentation for information on how to enable.