Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. eedomus as controller

eedomus as controller

Scheduled Pinned Locked Moved Controllers
12 Posts 2 Posters 4.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • godestalbinG Offline
    godestalbinG Offline
    godestalbin
    wrote on last edited by
    #3

    Hello,

    I asked for support eedomus team and in eedomus forum but got no reply at all.

    eedomus box has an USB port. I wonder, if I build a serial gateway (http://www.mysensors.org/build/serial_gateway) and connect the USB port to my eedomus box, is there any chance my box will recognize it ?

    I think I have no possibility to build a plug-in for eedomus as Connected Objects does not provide any kind of API to extend the features of their box.

    1 Reply Last reply
    0
    • godestalbinG Offline
      godestalbinG Offline
      godestalbin
      wrote on last edited by
      #4

      Hello,

      Here is the status on my project to connect my eedomus controller to MySensors:
      I am limited to make HTTP request to update some virtual state on my eedomus box.
      I build an Arduino (mega) with an Ethernet shield to validate I can update a virtual state on eedomus.
      I built a MySensor serial gateway with a temp/humidity sensor. Using hard-coded sensor's ID, I managed to get temp/humidity on the gateway.
      I am now stuck to make both working together.
      I have my sketch gateway: MySensorsGateway (http://www.mysensors.org/build/serial_gateway) using the library MyGateway and I have the library Ethernet.
      In MySensorsGateway, I can use Ethernet library but I cannot access the message received.
      In MyGateway library, I can view/display the message received but I cannot use Ethernet library.
      I would like to access received message in MySensorsGateway in order to forward them by HTTP requests to my eedomus controller.
      Can you point me in the right direction ? Some sample code would be great.

      1 Reply Last reply
      0
      • hekH Offline
        hekH Offline
        hek
        Admin
        wrote on last edited by
        #5

        You'll have to define a callback-function when calling gw.begin(). This function will receive all incoming messages. You can have a look at RelayActuator as an example of defining a callback.

        The SerialGateway already uses this callback and should be possible to update.

        1 Reply Last reply
        0
        • godestalbinG Offline
          godestalbinG Offline
          godestalbin
          wrote on last edited by
          #6

          Thank you, that seems to perfectly answer my need.
          However I have one question: I will use the MyGateway::begin which takes void (*inDataCallback)(char ) parameter which seems less convenient to use than the void (_msgCallback)(const MyMessage &) parameter of the MySensor::begin.
          Why is it like this ? Would it be not more convenient to have a callback with a MyMessage ?

          1 Reply Last reply
          0
          • hekH Offline
            hekH Offline
            hek
            Admin
            wrote on last edited by
            #7

            You don't need the gateway class. Just initialise the MySensors with static id 0.

            (A suggestion is to have a look at the development branch instead.)

            1 Reply Last reply
            0
            • godestalbinG Offline
              godestalbinG Offline
              godestalbin
              wrote on last edited by
              #8

              Hello,
              Thanx to your help, it is now a few months I have a temp/humidity MySensor with the data updated in my eedomus domotic box.
              Now the next challenge is to make a relay actuator. I did not buy the hardware yet, thus I wish to validate the transfer of the message from the box->gateway->sensor.

              • I have made the first step getting the command (O=Off, 1=On) from my eedomux box to my gateway node.
              • Now I am trying to send the message from gateway (ID=0) to my existing temp/humidity sensor node (ID=10). I have written the following code:
              void loop() 
              {
                // Alway process incoming messages whenever possible
                gw.process(); //Read radio message, and display in serial window
              
               //Create a test messge to send to node
                MyMessage msg;
                boolean ok = false;
                msg.sender = 0; //0=gateway ID
                msg.destination = 10; //node ID
                msg.sensor = 2; //To be set later: CHILD_ID_HUM 0/CHILD_ID_TEMP 1
                msg.type = 1; //set=This message is sent from or to a sensor when a sensor value should be updated
                mSetRequestAck(msg,0); //What is the difference with the one after ?
                mSetAck(msg,false); //For now no ack, later it would be better to get one
                mSetCommand(msg,S_LIGHT);
                msg.set(1);
                ok = gw.send(msg);
                  if (!ok) {
              //      //errBlink(1);
                    Serial.println("Error sending message");
              

              For now the gw.send returns not OK.
              Am I doing right by creating the message manually or is there a better way to do ?
              What is wrong that the message is not sent ?

              1 Reply Last reply
              0
              • hekH Offline
                hekH Offline
                hek
                Admin
                wrote on last edited by
                #9

                Shouldn't msg.type be S_LIGHT and command be 1?

                gw.send() actually sets command to C_SET for you
                https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/MySensor.cpp#L483-L487

                Not sure why send returns false.. indicates that no ack was received from the other radio.

                1 Reply Last reply
                0
                • godestalbinG Offline
                  godestalbinG Offline
                  godestalbin
                  wrote on last edited by
                  #10

                  I am still trying to make it work. I uploaded on my temp/humidity sensor the code of the relay actuator (sketch:47534). I just updated this line to set the ID=10:

                  gw.begin(incomingMessage, 10, true); //Set ID=10 instead of AUTO
                  

                  On the serial window of the temp/humidity everything looks fine:

                  read: 0-0-10 s=0,c=1,t=3,pt=2,l=2:18
                  send: 10-10-0-0 s=0,c=1,t=3,pt=2,l=2,st=ok:18
                  

                  But on my node (gateway) I still have error

                  send: 0-0-255-10 s=0,c=1,t=3,pt=2,l=2,st=fail:18
                  Error sending message
                  

                  The code is now as below:

                    // Alway process incoming messages whenever possible
                    gw.process(); //Read radio message, and display in serial window
                    
                    //Create a test messge to send to node
                    MyMessage msg;
                    boolean ok = false;
                    msg.sender = 0;
                    msg.destination = 10;
                    msg.sensor = 0; //To be set later
                    msg.type = S_LIGHT;
                    //mSetRequestAck(msg,0); //No ack
                    //mSetAck(msg,false);
                    //mSetCommand(msg,S_LIGHT);
                    msg.set(18);
                    ok = gw.send(msg, true);
                      if (!ok) {
                        //errBlink(1);
                        Serial.println("Error sending message");
                      }
                      else  
                        Serial.println("Success !!!!");
                    delay(5000);
                  
                  1 Reply Last reply
                  0
                  • hekH Offline
                    hekH Offline
                    hek
                    Admin
                    wrote on last edited by
                    #11

                    @godestalbin said:

                    read: 0-0-10 s=0,c=1,t=3,pt=2,l=2:18

                    Message seem to reach node... Did you add a capacitor to the node? It seems to have some problem sending ack back to gateway. Usually indicates a powering issue.

                    1 Reply Last reply
                    0
                    • godestalbinG Offline
                      godestalbinG Offline
                      godestalbin
                      wrote on last edited by
                      #12

                      Yes, I have capacitor on both radio.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      23

                      Online

                      11.7k

                      Users

                      11.2k

                      Topics

                      113.1k

                      Posts


                      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • MySensors
                      • OpenHardware.io
                      • Categories
                      • Recent
                      • Tags
                      • Popular