1.4.0 • Published 7 months ago

panasonic-comfort-cloud-api v1.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

panasonic-comfort-cloud-api

DeepScan grade GitHub last commit Travis (.com) npm npm NPM

Client for Panasonic Comfort Cloud API to control air conditioners.

Features

  • Get groups of devices.
  • Get information on specific device.
  • Control specific devices depending on its capabilities.

Install

Using npm:

$ npm install panasonic-comfort-cloud-api

Examples

Login

import { ComfortCloud } from 'panasonic-comfort-cloud-api';

const client = new ComfortCloud('username', 'password');

const token = await client.login();
console.log(token);

Get Groups

const groups = await client.getGroups();
console.log(groups);
const deviceId = groups[0].deviceList[0].deviceGuid;

Get Device

const device = await client.getDevice(deviceId);
console.log(device);

Set Device parameters

// Set single parameters based on device ID without knowing the device parameters.
const par: DeviceParameters = { temperatureSet: 21.5 };
const parRes = await client.setParameters(deviceId, par);
console.log(parRes);

// Set parameters from device. First get device, then manipulate the values.
device.parameters.temperatureSet = 22;
device.parameters.ecoMode = EcoMode.Quiet;
const parDev = await client.setDevice(device);
console.log(parDev);

Setting parameters

// Use enums for correct values.
const par: DeviceParameters = {
    operate: Power.On,
    operationMode: OperationMode.Auto,
    ecoMode: EcoMode.Auto,
    temperatureSet: 22,
    airSwingUD: AirSwingUD.Mid,
    airSwingLR: AirSwingLR.Mid,
    fanAutoMode: FanAutoMode.AirSwingAuto,
    fanSpeed: FanSpeed.Auto
};
const parRes = await client.setParameters(deviceId, par);

Full code example

import { ComfortCloud, DeviceParameters, AirSwingLR, AirSwingUD, EcoMode, FanAutoMode, FanSpeed, OperationMode, Power } from 'panasonic-comfort-cloud-api';
import { exit } from 'process';
import * as dotenv from 'dotenv';

dotenv.config();

const runner = new Promise<any>(async (resolve, reject) => {
    const client = new ComfortCloud(process.env.USERNAME as string, process.env.PASSWORD as string);

    const token = await client.login();
    console.log(token);

    const groups = await client.getGroups();
    console.log(groups);

    const deviceId = groups[0].deviceList[0].deviceGuid;
    const device = await client.getDevice(deviceId);
    console.log(device);

    const deviceNow = await client.getDeviceNow(deviceId);
    console.log(deviceNow);

    const par: DeviceParameters = {
        operate: Power.On,
        operationMode: OperationMode.Auto,
        ecoMode: EcoMode.Auto,
        temperatureSet: 22,
        airSwingUD: AirSwingUD.Mid,
        airSwingLR: AirSwingLR.Mid,
        fanAutoMode: FanAutoMode.AirSwingAuto,
        fanSpeed: FanSpeed.Auto
    };
    const parRes = await client.setParameters(deviceId, par);
    console.log(parRes);

    device.parameters.temperatureSet = 22;
    device.parameters.ecoMode = EcoMode.Quiet;
    const parDev = await client.setDevice(device);
    console.log(parDev);

    resolve('OK');
});

runner.then(x => {
    console.log(x);
    exit();
}).catch(x => {
    console.error(x);
    exit();
});
1.3.4

7 months ago

1.4.0

7 months ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago