openhab-proxy-pattern

1.3.0 • Public • Published

JS wrapper to implement common used Proxy Item pattern

Pattern explanation

Usage examples

let proxy = require('openhab-proxy-pattern');

/*
proxy.bind(proxy_item_name, hardware_item_name).update([callback]).forward([callback]);
*/

// one direction proxy
proxy.bind('Equipment_WF_OutTemperature', 'SmartMAC_D105_1_T2').update();

// bi-directional proxy
proxy.bind("GF_Toilet_MirrorLight", "Shelly_25R_3_1Output")
    .forward()
    .update();

// proxy with custom values
proxy.bind('Equipment_ElectricityInverterBattery_Voltage', 'PZEM_1_Voltage')
    .update(function(value) {

        if (typeof value == 'string') {
            const v = parseInt(value) / 100;
            return `${v} V`;
        } else {
            return undefined;
        }
    });

// wide-options proxy
const v = function(value) {
    if (typeof value == 'string') {
        const v = parseInt(value);
        return `${v} V`;
    } else return undefined;
};

['A', 'B', 'C'].forEach(function(phase) {
    proxy.bind(`Equipment_ElectricityHomeV${phase}`, `Shelly_EM3_2_${phase}Voltage`, 15)
      .update(v, 15); // 15 seconds gap between updates. For too-fast hardware
});

Package Sidebar

Install

npm i openhab-proxy-pattern

Weekly Downloads

2

Version

1.3.0

License

ISC

Unpacked Size

6.81 kB

Total Files

3

Last publish

Collaborators

  • standov