Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const mqtt = require('mqtt');
- const client = mqtt.connect('mqtt://gladys');
- client.on('connect', function() {
- client.subscribe('zigbee2mqtt/#', function(err) {
- if (!err) {
- // client.publish('zigbee2mqtt/bridge/config/permit_join', 'false');
- // client.publish('zigbee2mqtt/bridge/networkmap', 'graphviz');
- }
- });
- });
- const PREFIX = 'zigbee2mqtt/';
- const devices = {
- living: {
- addr: PREFIX + '0x0017880103d934ec',
- state: null,
- },
- bedroom: {
- addr: PREFIX + '0x001788010390c83d',
- state: null,
- },
- button: {
- addr: PREFIX + '0x00158d00030ab83e',
- },
- };
- client.on('message', function(topic, message) {
- console.log(topic, message.toString());
- if (message.indexOf('{') === 0) {
- const data = JSON.parse(message);
- switch (topic) {
- case devices.living.addr:
- devices.living.state = data.state;
- break;
- case devices.bedroom.addr:
- devices.bedroom.state = data.state;
- break;
- case devices.button.addr:
- const message = { state: devices.living.state === 'ON' ? 'OFF' : 'ON' };
- client.publish(devices.living.addr + '/set', JSON.stringify(message));
- client.publish(devices.bedroom.addr + '/set', JSON.stringify(message));
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement