Giter VIP home page Giter VIP logo

node-samsung-airconditioner's Introduction

node-samsung-airconditioner

A node.js module to interface with Samsung SMART Airconditioners

Build Status

Install

npm install samsung-airconditioner

API

Load

var API = require('samsung-airconditioner').API;

Discover

new API().on('discover', function(aircon) {
  // now login!
}).on('error', function(err) {
  console.log('discovery error: ' + err.message);
});

Get Token

You need to physically authenticate with the aircon during your first setup.

  aircon.get_token(function(err, token) {
    if (!!err) return console.log('login error: ' + err.message);

    // remember token for next time!
  }).on('waiting', function() {
    console.log('please power on the device within the next 30 seconds');
  }).on('end', function() {
    console.log('aircon disconnected');
  }).on('err', function(err) {
    console.log('aircon error: ' + err.message);
  });

Login

Have a token? This time connect.

  aircon.login(token, function(err) {
    if (!!err) return console.log('login error: ' + err.message);

    // Drive the aircon!
    aircon.onoff(true);
  });

Drive the aircon after logging in

aircon.onoff(true);

aircon.mode(type);                   // one of 'auto', 'cool', 'dry', 'wind', or 'heat'

aircon.set_temperature(celcius);
aircon.get_temperature(function(err, celcius) {});

aircon.set_convenient_mode(mode);    // one of 'off', 'quiet', 'sleep', 'smart', 'softcool', 'turbomode',
                                     // 'windmode1', 'windmode2', 'windmode3'

aircon.sleep_mode(hours);

Responding to manual changes or confirming your changes

new API().on('discover', function(aircon) {
  aircon.login(token, function(err) {
    if (!!err) return console.log('login error: ' + err.message);

  }).on('stateChange', function(state) {
    // Responses, or user triggered state changes
    console.log(state);
  }).on('loginSuccess', function () {
    // Get current status
    aircon.status();

    // Drive the aircon!
    aircon.onoff(true);
  });
});

The air conditioner can be changed quite rapidly by a person with the physical controls or remote. For example, in about a minute the following were generated

  "AC_FUN_POWER": "On"
  "AC_FUN_OPMODE": "Cool" 
  "AC_FUN_TEMPSET": "24"
  "AC_FUN_OPMODE": "Dry"
  "AC_FUN_OPMODE": "Wind"
  "AC_FUN_WINDLEVEL": "Low"
  "AC_FUN_OPMODE": "Heat"
  "AC_FUN_WINDLEVEL": "Auto"
  "AC_FUN_OPMODE": "Auto" 
  "AC_FUN_TEMPSET": "23" 
  "AC_ADD_SPI": "On" 
  "AC_ADD_AUTOCLEAN": "On" 
  "AC_FUN_TEMPNOW": "28" 
  "AC_FUN_POWER": "Off" 
  "AC_FUN_POWER": "On" 
  "AC_ADD_SPI": "Off" 
  "AC_FUN_OPMODE": "Cool" 
  "AC_FUN_TEMPSET": "24" 
  "AC_FUN_DIRECTION": "SwingUD" 
  "AC_FUN_COMODE": "Smart" 
  "AC_FUN_DIRECTION": "Fixed" 
  "AC_FUN_COMODE": "Quiet" 
  "AC_FUN_DIRECTION": "SwingUD" 
  "AC_FUN_DIRECTION": "Rotation" 
  "AC_FUN_COMODE": "Off" 
  "AC_FUN_OPMODE": "Dry" 
  "AC_FUN_OPMODE": "Wind" 
  "AC_FUN_WINDLEVEL": "Low" 
  "AC_FUN_WINDLEVEL": "Mid" 
  "AC_FUN_WINDLEVEL": "Low" 
  "AC_FUN_WINDLEVEL": "Mid" 
  "AC_FUN_WINDLEVEL": "Low" 
  "AC_FUN_POWER": "Off"

node-samsung-airconditioner's People

Contributors

clockwerx avatar mrose17 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.