Zigbee devices and multiple polls (+modbus)

I'm a newbie with HE, zigbee and Z-wave, I'm more about industrial plc's and modbus.

Is it possible to poll zigbee sensors from different hubs or should a zigbee sensor have only one hub ?

The idea behind my question (if possible): link to my plc's a modbus-zigbee gateway to poll those sensors and integrate them into my modbus network, but keep them available as regular zigbee sensors into HE ?

Maybe the answer is obvious for you (1to1 connection and nothing else), but I prefer to ask. I read about Zigbee routers (multiple allowed) and Zigbee Coordinator (only one), but it seems that (and I quote) any node in the network can be a gateway, and in fact multiple nodes in the network can be gateways at the same time

I prefer to ask the pro here !

https://www.sciencedirect.com/topics/computer-science/zigbee-coordinator

Hi @PPz
In my home environment I have modbus device and hf2211 modbus->wifi bridge that I'm polling ever 1 second from node-red
I believe there is no way to pull zigbee devices from multiple hubs, but there is a way to pull from node-red or any other system that will receive zigbee signals as a hub

In hubitat there is a Maker API where you have ability to expose your devices to network and pull them as frequently as you wish.

There is also zigbee2mqtt thing where you may translate all your zigbee devices to mqtt and then pull from mqtt broker to you modbus system

1 Like

Zigbee devices can only be joined to one mesh network and any Zigbee mesh can have only one controller. Now, that's not to say that you can't have other things that issue commands, but that is only true for ZLL (Zigbee Light Link). For example, you can have a hue dimmer paired directly to a bulb that is still part of a mesh network also. But this same direct linking is not possible for ZHA (Zigbee Home automation) devices.

You can (and need) multiple routers in your mesh. But routers are just repeaters. They make up the backbone of the mesh. They don't do anything special, just repeat messages that are received so devices further away from the hub can receive commands and send reports.

3 Likes

Are you able with your hf2211 to poll multiple modbus addresses with that setup ? I have multiple wired 1-wire temperature sensors hooked to a modbus to 1-wire hub and some sensors cannot be replaced with wireless zigbee units (by example inside a geothermal unit, far inside the machine), and those sensors are running perfectly, so no real need for changes. Also, I have thermistors deep inside water tanks that I need to keep.
The idea is to harvest about 50+ important modbus addresses and display them into HE (and my plc will manage them as usual).
Thank you

I have no chance to test, because I have only one device(3phase power meter)
But the code it

var ModbusRTU = global.get('ModbusRTU');
var client = new ModbusRTU();
var mqttClient = global.get('mqtt');

//mqttClient = mqttClient.connect('mqtt://127.0.0.1');

client.connectTCP("192.168.1.7", { port: 8899 })
    .then(setClient)
    .then(function() {
        // console.log("Connected"); 
    })
    .catch(function(e) {
        console.log('Exception in connectTCP');
        console.log(e); 
    });

function setClient() {
    client.setID(1);
    client.setTimeout(5000);
    run();
}

function run() {
    client.readInputRegisters(48, 8)
        .then(function(d) {
            let demandSum = d.buffer.readFloatBE(8,8).toFixed(0);
            //mqttClient.publish('medova/demand', demandSum);
            //mqttClient.end();
            
    node.send(
      {
        payload: demandSum,
        topic: 'medova/demand'
      });

        })
        .catch(function(e) {
            console.log('Exception in run Demand 192.168.1.7');
            console.log(e.message); 
            close();
        })
        .then(close);
}

function close() {
    client.close();
}


See client.setID(1)
1 is an address. Should work for different addresses