JSFiddle - React, Tailwind, and code Playground
JavaScript
/**
*
* pimatic adapter Copyright 2017, bluefox <[email protected]>
*
*/
/* jshint -W097 */
/* jshint strict:false */
/* jslint node: true */
'use strict';
// you have to require the utils module and call adapter function
var utils = require('@iobroker/adapter-core'); // Get common adapter utils
var request = require('request');
var adapter = utils.Adapter('pimatic');
var io = require('socket.io-client');
var client;
var objects = {};
var states = [];
var connected = false;
var url;
var getUrl;
var credentials;
// is called when adapter shuts down - callback has to be called under any circumstances!
adapter.on('unload', function (callback) {
try {
if (adapter.setState) adapter.setState('info.connection', false, true);
if (client) client.disconnect();
client = null;
adapter.log.info('cleaned everything up...');
callback();
} catch (e) {
callback();
}
});
// is called if a subscribed state changes
adapter.on('stateChange', function (id, state) {
if (state && !state.ack) {
if (objects[id]) {
if (objects[id].common.write && objects[id].native.control && objects[id].native.control.action) {
states[id] = state.val;
if (!connected) {
adapter.log.warn('Cannot control: no connection to pimatic "' + adapter.config.host + '"');
} else {
/*client.emit('call', {
id: id,
action: objects[id].native.control.action,
params: {
deviceId: objects[id].native.control.deviceId,
name: objects[id].native.name,
type: objects[id].common.type,
valueOrExpression: state.val
}
});*/
// convert values
if (objects[id].common.type === 'boolean') {
...