Own action on heatbeat request
-
Hi,
I would like to capture the heartbeat request send by a controller (in my case Domoticz).
However this does not work within the receive funtction.
What did I overlook?void receive(const MyMessage &message) { if (message.type == I_HEARTBEAT_REQUEST) { Serial.println("heartbeat request"); } }```
-
Afaik, heartbeat (and other internal messages) are designed for "internal" use, so the automatics behind that is - without further changes in the internal coding - not meant to be used by "regular" receive function.
Why don't you just use other data types like S_CUSTOM to get the same result?
-
@wimd said in Own action on heatbeat request:
I_HEARTBEAT_REQUEST
It looks is done automatically:
MySensorsCore.cpp
bool _processInternalMessages(void) . . . } else if (type == I_HEARTBEAT_REQUEST) { (void)sendHeartbeat(); } else if (type == I_TIME) { // Deliver time to callback if (receiveTime) { receiveTime(_msg.getULong());
-
All works fine.
I can update Text sensor or send a switch command.
But when it comes to the heartbeat request there is no response form the gateway.
I
-
@wimd In case you are looking for an option to check if the GW is available: There somewhere is an option to check, if uplink is available. Don't have a link by hand, but search for that, there's somewhere at least one sketch in the forum offering that (light-switch afai remember).
-
I have now a heartbeat response form the gateway.
For my test stetup I did not define any transport layer and this is probably the reason why the gateway did not respond to the heatbeatrequest from domoticz.
-
@wimd Could you share how you done that?
I also want to check if gate is alive (backup-batterypowered node - if mains or gateway died, send me a message).
I also use domoticz.