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') {
   ...