• @Daniele That is the opposite of what I have - here my GW is 'up' in mycontroller but node 0 is 'down' and yet it is working perfectly with myc and all nodes!

    If this is a random thing I would suggest triple checking all connections individually to ensure they are tight and no movement at all can happen. I took out a DC barrel connector and replaced it and things got a lot better from just that one change.

    I also put the arduino watchdog on the GW node as another way to recover from any 'hangs'.

    I added the previously posted operations as another way to tackle problems with the gw, but not sure how to tell if it is working as expected!

    Finally I upgraded the pi from stretch to buster and fully updated everything.

    Since then I have had 7-8 weeks without any issues (previously 1-2 weeks was about all I could hope for).

    I still have a ups on my to do list. That will happen soon I hope.

  • @Daniele some example to send the payload.
    Note: I didn't test this in practice. Please let me know if you face an issue.

    var myImports = new JavaImporter(java.lang, java.util, org.mycontroller.standalone.utils.McUtils);
    with(myImports) {
      // get your node/sensor/variable via uuid
      var mySensorVariable = mcApi.uidTag().getByUid("abc").getResource();
      // set new value
      mySensorVariable.value  = 2
      // send paylaod

  • @jkandasa thank you for the example, but how can I leverage it to reboot a node?
    I mean, as far as I understand the reboot payload is not a regular sensor that I can map through a uid.

  • @Daniele I have modified the script and here is your request,

    var myImports = new JavaImporter(java.lang, java.util, org.mycontroller.standalone.utils.McUtils, org.mycontroller.standalone.message.IMessage);
    with(myImports) {
      // get your gateway via uuid
      var myGateway = mcApi.uidTag().getByUid("my-test-gateway").getResource();
      // Import message type
      var Message = Java.type("org.mycontroller.standalone.message.IMessage")
      // create message object
      var message = Message.getInstance()
      // update gateway id.
      // update message type
      // update message sub type
      // set sensor id as 255 for node message
      // set acknowledgement status
      // set empty payload, but json conversion throws excepton for empty, so set it as "0"
      // update your node EUI
      // send Raw Message

  • Amazing, thank you!

  • Hi all,

    I have a similar problem with Raspberry PI and MySensors Serial Node with NRF radio.
    After a random time the node service on RPI stops working:


    To restart the service I need to run 'sudo systemctl restart mysgw.service'.
    Currently, I have scheduled a script to do that, which decrease problem frequency, however, it still happens.

    Q: Is there a way to run this console command from the MyController script when the selected node is down?

    jkandasa it would be great if you can provide an example.

    Many Thanks.

  • @Radi-M can you try this and let me know,

    var myImports = new JavaImporter(java.lang, java.util);
    with(myImports) {
      // your command to execute
      var command = "sudo systemctl restart mysgw.service";
      // execute your command

  • Hi,

    It works.

    Many thanks.

  • Probably a stupid question, but will this reboot all mys GW attached to the pi?

  • Probably a stupid question, but will this reboot all mys GW attached to the pi?

    @skywatch Yes, it will. if your mys GW powered by RPI

Suggested Topics