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

homebridge-advanced-thermostat

v1.1.4

Published

Plujin for Homebridge platform, this plujin allows HomeKit to use your own Thermostat in your House.

Downloads

7

Readme

homebridge-advanced-thermostat

This is a HomeBridge plugin. Allows HomeKit to use your own Thermostat under HTTP protocol.

Installation

You need to be root or use command "sudo" to install this packages.

*Is necessary has installed node.js with npm.

  1. Install homebridge using: npm install -g homebridge
  2. Install this plugin using: npm install -g homebridge-advanced-thermostat
  3. Update your configuration file. See bellow for a sample.

note If you are experimenting problems to install this plugin try to add "-unsafe--perm" (without ") - sudo npm install -g -unsafe--perm homebridge-advanced-thermostat -

Configuration

Configuration sample:

   {
       "bridge": {
           ...
       },
       
       "description": "...",

       "accessories": [
           {
               "accessory": "Thermostat",
               "name": "Thermostat name",
               "apiAdress": "http://url",
               "maxTemp": "25",                      // Optional Max Number 100
               "minTemp": "15",                      // Optional Min Numbber 0
               "username": "user",                   // Optional
               "password": "pass"                    // Optional
               "manufacturer": "manufacturer",       // Optional
               "model": "model",                     // Optional
               "serial_number": "serial number",     // Optional
               "units": "dispCelsius"                // Optional (Default dispCelsius = Celsius) dispFahrenheit = Fahrenheit 
               
           }
       ],

       "platforms":[]
   }

Node(API) Configuration or whatever be your Thermostat platform (What the plugin expects to receive)

The apiAdress is used for two main calls: Get and Set data to the Thermostat. Your Node(API) should provide

  1. Get Target and Current State from thermostat.

JSON Format with:

GET /status
{
    "currentState": SHORT_INT_VALUE,    // 0 OFF 1 HEAT 2 COOL
    "getTargetState": SHORT_INT_VALUE   // 0 OFF 1 HEAT 2 COOL 3 AUTO
}
  1. Set/Get Temperature, Humidity and Units(Temperature Units) from thermostat

JSON Format with:

GET /info
{
    "temperature": FLOAT_VALUE,         // Current Temperature 
    "tarTemperature": FLOAT_VALUE,      // Target Temperature 
    "heatThreshold": FLOAT_VALUE,       // Heat Threshold 
    "coolThreshold": FLOAT_VALUE,       // Cool Threshold 
    "humidity": FLOAT_VALUE,            // Current Humidity
    "units": SHORT_INT_VALUE            // 0 to SET Celsius 1 to SET Fahrenheit 
}
  1. Set target State
POST /setTargetState/{INT_VALUE}         // 0 OFF 1 HEAT 2 COOL 3 AUTO
OK (200)
  1. Set target Temperature
POST /targetTemperature/{FLOAT_VALUE}    // Target Temperature 
OK (200)
  1. Set target Heat Threshold
POST /heatThreshold/{FLOAT_VALUE}    // Target Heat Threshold 
OK (200)
  1. Set target Cool Threshold
POST /coolThreshold/{FLOAT_VALUE}    // Target Cool Threshold 
OK (200)
  1. Set Display Units
POST /units/{INT_VALUE}    // Set up Celsius or Fahrenheit, 0 to SET Celsius 1 to SET Fahrenheit 
OK (200)

Now you can SWAP between Cº to Fº.

To visualize the temperture in Fº, you must change your Display unit configuration in your Iphone.

You can do it going to

1º Settings 2º General 3º Language & Region 4º Temperature Unit

This function set up the node to display the units in Fº but internally HomeKit only works in Cº.

Here you can download an Arduino scketch for ESP8266 to get working your own Thermostat system https://github.com/SaMuELToLoKo/ESP8266-homebridge-advanced-thermostat.git

Thanks and hope this help someone to implement a cool Thermostat at home.