Requesting value from Domoticz



  • I understand Domoticz doesn't yet support MySensors smart sleep mode.
    As a workaround MySensors node could periodically request certain value from Domoticz.
    I cannot find any docs on how to define dummy device or user value in Domoticz those value could be retrieved by MySensor v.2 node.
    My setup: GW and Domoticz run on the same RPi. Node runs on a battery-powered Arduino.
    I understood node will use
    void request(uint8_t childSensorId, uint8_t variableType, uint8_t destination);
    where destination=0 (to address GW),
    but what should be used for childSensorId?
    Where in Domoticz I can see proper values for childSensorId?

    Could someone guide me through?

    Thanks a lot!



  • I would also like some clarification on this as it would help as you say with the fact that Domoticz does not support Smartsleep Yet.



  • @benya If I understand you right, you are looking to find the child IDs of a sensor node.

    Click on Setup > Hardware. Under Hardware find your MySensors Gateway and click the [Setup] button. From there, find the node that you want the child IDs from and click on it. Below the Nodes list you will see the list of Children with child IDs.

    Hope that helps.



  • Thanks.
    What if need to get value from dummy sensor controlled by Domoticz (not by another MySensors node)?
    Where is corresponding childSensorId?
    My RPi runs both MySensors gateway and Domoticz.



  • @benya said:

    Thanks.
    What if need to get value from dummy sensor controlled by Domoticz (not by another MySensors node)?
    Where is corresponding childSensorId?
    My RPi runs both MySensors gateway and Domoticz.

    Are you trying to get the value on, or send the value to one of your MySensors nodes?



  • The goal is to pass value to the sensor that could be sleeping. Domoticz doesn't support MySensors smart sleep mode and polling current value is only option now.



  • @benya I think I understand what you need. I have not worked with smart sleep, but I have passed dummy sensor information to a MySensors node. The key is to have the dummy sensor, and a corresponding MySensors child for the node. If you look at this post, I hve a response where you will see how I do this with my thermostat node to pass the thermostat mode from a dummy selector to my thermostat bridge node.



  • You are pushing value from controller to the node.
    But if node is sleeping, new value won't reach node.
    To get new value node has to request it from controller after waking up from sleep.



  • You can use that though to set the value that the node can grab. Are you wondering how to grab the value?



  • @dbemowsk said:

    You can use that though to set the value that the node can grab. Are you wondering how to grab the value?

    I am trying to figure what values to pass to
    void request(uint8_t childSensorId, uint8_t variableType, uint8_t destination);
    Where are the corresponding values show up in Domoticz UI?



  • I pull the thermostat mode from my thermostat bridge node like this:

        request( CHILD_ID_MODE, V_TEXT );
    

    I have never used the destination attribute, so I can't speak to it's use, but using the childSensorId and variableType works for me. You still need to use the technique I described to set the MySensors child node from the dummy sensor though.



  • Hi @dbemowsk,
    I'm trying to figure out the message format in the receive() function. Could you show an example of your receive() function ? I couldn't find the received message format.
    Thank's



  • You are going to use 2 things. message.type and message.data. The message.type in my scenario is V_TEXT, and message.data is the payload, which in my case is O, H, C or A, but can be whatever you pass from Domoticz. The code in your receive function would look something like this:

    if (message.type == V_TEXT) {
      Serial.println("Received data" + String(message.data));
      //Here you would do something with message.data
    }
    

    If you have more than one child sensor sending V_TEXT data, you would then use an if statement or a switch/case to check message.sensor for the child ID of the sensor and process each as above.

    if (message.type == V_TEXT) {
      if (message.sensor == 1) {
        Serial.println("Received data from child 1" + String(message.data));
        //Here you would do something with message.data for the first child
      } else if (message.sensor == 2) {
        Serial.println("Received data from child 2" + String(message.data));
        //Here you would do something with message.data for the second child
      }
    }
    

    Let us know if you have trouble.



  • That is perfect thanks a lot.



  • @dbemowsk

    At the moment I'm trying to send a text value from Domoticz with MySensors Gateway to one of my nodes.

    I need to implement the "request" function in this node. So here's my question: what value did you assign to "CHILD_ID_MODE". I presume that's the ID of the dummy selector described in another topic on this forum? How did you obtain this value? Is it available somewhere in Domoticz UI?

    Now I request a text value, but all I get is a blank message, cause I don't know what I should insert as "uint8_t childSensorId".


  • Mod

    The child ID is something you define when you present the sensors of the node



  • @gohan Yes, I understand, but when I create a dummy text sensor I can't define its child ID. Can I find it somewhere?


  • Mod

    You have to create a sensor in the sensor node sketch, assign a child ID to it and present it like the others sensors during setup, then it should show on the controller. I can't be more specific because I haven't worked on text sensors yet



  • @gohan Dummy sensors are created in Domoticz, they don't use the MySensors library, so one doesn't upload any sketches to Arduino :)

    What I want to achieve specifically is to send outside temperature received from WeatherUnderground to one of my MySensors nodes.


  • Mod

    I know, but if you don't create a sensor able to receive the value, you can't send anything to it through the mysensors network


Log in to reply
 

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.