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. Troubleshooting
  3. Domoticz TEXT sensor triggering

Domoticz TEXT sensor triggering

Scheduled Pinned Locked Moved Troubleshooting
45 Posts 10 Posters 8.4k Views 10 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.
  • gohanG Offline
    gohanG Offline
    gohan
    Mod
    wrote on last edited by
    #7

    Life sucks, I know 😁

    I see your point, my suggestion was merely a workaround to the node running but if you foresee domoticz limitations a problem for the future, maybe it could be worth moving to another controller now that you don't have too many nodes around

    SushukkaS 1 Reply Last reply
    0
    • SushukkaS Sushukka

      @nca78 Thanks for the feedback. I have had similar feeling towards Domoticz for some while. What controller would you suggest? Have been watching OpenHab more closely now, but the conversion work required... :confounded:

      tbowmoT Offline
      tbowmoT Offline
      tbowmo
      Admin
      wrote on last edited by
      #8

      @sushukka

      you could try the different controllers out, checking their capabilities.

      For my part, I switched off domoticz more than one month ago, after I had converted my limited automation scripts over to node-red. Today I deleted the domoticz docker container as well.. No need for it to take up disk space :) I have kept the configuration volume for domoticz, so I can spin up a new instance of it in minutes..

      1 Reply Last reply
      0
      • monteM Offline
        monteM Offline
        monte
        wrote on last edited by monte
        #9

        @sushukka You can use netcat or socket connection from python script to send message directly to mysensors GW, omitting domoticz. Then you can link this script to your dummy switch in domoticz. It works.

        netcat:

        netcat <gw ip> <port>
        

        python:

        #!/usr/bin/python3
        
        import socket
        from time import sleep
        
        def gwsend(hostname, port, content):
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((hostname, port))
            sleep(1)
            s.sendall(content)
            s.shutdown(socket.SHUT_WR)
            s.close()
        
        
        string = str.encode("some text")  # Your TEXT message
        gwsend("127.0.0.1", 5003, b"2;1;1;1;47;" + string + b"\n")
        
        
        
        SushukkaS 1 Reply Last reply
        0
        • gohanG gohan

          Life sucks, I know 😁

          I see your point, my suggestion was merely a workaround to the node running but if you foresee domoticz limitations a problem for the future, maybe it could be worth moving to another controller now that you don't have too many nodes around

          SushukkaS Offline
          SushukkaS Offline
          Sushukka
          wrote on last edited by Sushukka
          #10

          @gohan said in Domoticz TEXT sensor triggering:

          Life sucks, I know 😁

          I see your point, my suggestion was merely a workaround to the node running but if you foresee domoticz limitations a problem for the future, maybe it could be worth moving to another controller now that you don't have too many nodes around

          Around a hundred sensors now and growing...not very excited of the conversion work... :confused: However, started some planning already and now MySensors GW is converted from serial to W5100/MQTT and Node-red has been installed. Have had plans to test it for a some while, but now really started playing with it. Seems that you can do all kind of nice middle-level stuff with it. :muscle:

          Plan now is to test some other controller via MQTT but only by subscribing to the MySensors queue.

          Also interesting to hear that people have switched totally to Nodered ( @tbowmo do you still have some controller or just Node-red gui/dashboard). Is there some ready-made interpreters for MySensors messages or need one define them all manually?

          And @monte, I definitely think your solution is the coolest one...but I know that if I take this alluring path, I'll end even deeper with the domo hacking I want to get rid off. :grin:

          1 Reply Last reply
          0
          • tbowmoT Offline
            tbowmoT Offline
            tbowmo
            Admin
            wrote on last edited by
            #11

            @Sushukka

            I have switched completely to nodered, my automation is done in flows (you can check it out on github).

            There is a set of mysensors nodes for nodered, that decode / encode MySensors serial protocol, and MySensors MQTT topics, and also enables you to create dummy mysensors nodes, and inject that data into your streams, they can be found on the forum here, or on npmjs.com.

            What I do not have, is the ability to hand out new node-id's (yet) I am investigating how to do that in a sensible way, so that data is persisted across restarts / re-deploys of node-red.

            1 Reply Last reply
            0
            • monteM monte

              @sushukka You can use netcat or socket connection from python script to send message directly to mysensors GW, omitting domoticz. Then you can link this script to your dummy switch in domoticz. It works.

              netcat:

              netcat <gw ip> <port>
              

              python:

              #!/usr/bin/python3
              
              import socket
              from time import sleep
              
              def gwsend(hostname, port, content):
                  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                  s.connect((hostname, port))
                  sleep(1)
                  s.sendall(content)
                  s.shutdown(socket.SHUT_WR)
                  s.close()
              
              
              string = str.encode("some text")  # Your TEXT message
              gwsend("127.0.0.1", 5003, b"2;1;1;1;47;" + string + b"\n")
              
              
              
              SushukkaS Offline
              SushukkaS Offline
              Sushukka
              wrote on last edited by
              #12

              @monte I need to move to a next project so before conversion to Node-red and/or OpenHAB, how would you use netcat type of injection with MQTT? I mean now I have MySensors in W5100/MQTT mode and I want to send an update to my V_TEXT sensor via MQTT. Easiest way to do this with Domoticz would be by triggering some script. Sending an MQTT update via Python is probably easy (dunno, haven't done yet), but I have no idea how to form the message so that it would be in correct MySensors format...My node id is 31 and the text sensor child is 1:

              #define MY_NODE_ID     31
              #define LED_MODE_ID     1 
              MyMessage msgLedMode(LED_MODE_ID, V_TEXT);
              

              The payload is some number between -1 to 56. Really appreciate your help. :relieved:

              monteM 1 Reply Last reply
              0
              • SushukkaS Sushukka

                @monte I need to move to a next project so before conversion to Node-red and/or OpenHAB, how would you use netcat type of injection with MQTT? I mean now I have MySensors in W5100/MQTT mode and I want to send an update to my V_TEXT sensor via MQTT. Easiest way to do this with Domoticz would be by triggering some script. Sending an MQTT update via Python is probably easy (dunno, haven't done yet), but I have no idea how to form the message so that it would be in correct MySensors format...My node id is 31 and the text sensor child is 1:

                #define MY_NODE_ID     31
                #define LED_MODE_ID     1 
                MyMessage msgLedMode(LED_MODE_ID, V_TEXT);
                

                The payload is some number between -1 to 56. Really appreciate your help. :relieved:

                monteM Offline
                monteM Offline
                monte
                wrote on last edited by
                #13

                @sushukka I have limited knowledge of mqtt, I'm not using it in my setup, with ncat you can only talk directly to tcp/udp socket and mqtt is built above it. But there is mqtt library for python, and guides for using it. http://www.steves-internet-guide.com/into-mqtt-python-client/ try to follow those steps, I will try too :)

                1 Reply Last reply
                0
                • tbowmoT Offline
                  tbowmoT Offline
                  tbowmo
                  Admin
                  wrote on last edited by
                  #14

                  @Sushukka

                  mqtt publish example in python

                  import paho.mqtt.publish as publish
                  payload = 'Hey there'
                  publish.single('mys-out/1/1/1/0/47', payload, hostname=<mqtthost>, port=<mqttport, retain=False)
                  

                  'mys-out/99/1/1/0/47' is the MQTT topic, and is decoded as follows:
                  99: Node ID
                  1: ChildId
                  1: command (Set in this case)
                  0: ACK (None in this case)
                  47: V_TYPE (V_TEXT in this case)

                  Above pretty much follows the MySensors serial protocol, as found here, only difference is that sensor payload, and sensor id / msg type etc. is split into two parameters in MQTT (as in payload and topic), and doesn't come in as a single string.

                  SushukkaS 1 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    pjr
                    wrote on last edited by
                    #15

                    How about presenting additional S_BINARY/V_STATUS in your node. In domoticz when text changes set this to ON/OFF. From there you now its time to request text from domoticz.

                    1 Reply Last reply
                    0
                    • gohanG Offline
                      gohanG Offline
                      gohan
                      Mod
                      wrote on last edited by
                      #16

                      That's what I suggest 2 days ago 😁

                      1 Reply Last reply
                      0
                      • K Offline
                        K Offline
                        kimot
                        wrote on last edited by
                        #17

                        I think, all this is not Domoticz problem, but mysensors problem.
                        Mysensors gateways has not got any universal input interface.
                        This is, why I am not using pure mysensors solution.
                        Imagine, that your gateway understood something like this:

                        http://MS_GATEWAY/cmd?node=10&sensor=1&value=80

                        And translate it to mysensors network message, which sends value 80 to sensor number 1 of node number 10.
                        Then you can send into your node everything not only from Domoticz, but from simply Android application and etc.
                        With ESP8266 gateway you need only "ESP8266HTTPClient" library to parse this http call for example.

                        monteM 1 Reply Last reply
                        0
                        • gohanG Offline
                          gohanG Offline
                          gohan
                          Mod
                          wrote on last edited by
                          #18

                          If the node requests the TEXT to domoticz, it gets the value, so domoticz can actually handle it, the problem is that it does not send the TEXT value if something changes the variable but only if the node requests it.

                          K 1 Reply Last reply
                          0
                          • K kimot

                            I think, all this is not Domoticz problem, but mysensors problem.
                            Mysensors gateways has not got any universal input interface.
                            This is, why I am not using pure mysensors solution.
                            Imagine, that your gateway understood something like this:

                            http://MS_GATEWAY/cmd?node=10&sensor=1&value=80

                            And translate it to mysensors network message, which sends value 80 to sensor number 1 of node number 10.
                            Then you can send into your node everything not only from Domoticz, but from simply Android application and etc.
                            With ESP8266 gateway you need only "ESP8266HTTPClient" library to parse this http call for example.

                            monteM Offline
                            monteM Offline
                            monte
                            wrote on last edited by
                            #19

                            @kimot then it would be a controller itself, not a gateway. You need gateway anyway (sick rhyme), or you would need to use only powerful enough hardware to implement web server to handle requests as you suggest. But it wouldn't be backward compatible with arduino gateways, thus it's not the way for now, maybe in the future we will come to it.

                            K 1 Reply Last reply
                            0
                            • gohanG gohan

                              If the node requests the TEXT to domoticz, it gets the value, so domoticz can actually handle it, the problem is that it does not send the TEXT value if something changes the variable but only if the node requests it.

                              K Offline
                              K Offline
                              kimot
                              wrote on last edited by
                              #20

                              @gohan
                              But this is what I wrote.
                              If anything changes in Domoticz ( not only TEXT value, but anything ), Domoticz sends http call into gateway and thats all.
                              For example - you changed setpoint in Domoticz and it seds it immediately into mysensors gateway.

                              1 Reply Last reply
                              0
                              • gohanG Offline
                                gohanG Offline
                                gohan
                                Mod
                                wrote on last edited by
                                #21

                                But that's out of mysensors protocol and making it an even more complicated workaround

                                1 Reply Last reply
                                0
                                • monteM monte

                                  @kimot then it would be a controller itself, not a gateway. You need gateway anyway (sick rhyme), or you would need to use only powerful enough hardware to implement web server to handle requests as you suggest. But it wouldn't be backward compatible with arduino gateways, thus it's not the way for now, maybe in the future we will come to it.

                                  K Offline
                                  K Offline
                                  kimot
                                  wrote on last edited by
                                  #22

                                  @monte
                                  It can be implemented into existing ethernet gateways, I think.
                                  I experimenting with ESP8266 gateway only, not W5100.

                                  For inspiration look at code line 24 to 56 here:

                                  https://diyprojects.io/driving-gpio-esp8266-web-server-domoticz-tcp-ip-wireless/

                                  monteM 1 Reply Last reply
                                  0
                                  • K kimot

                                    @monte
                                    It can be implemented into existing ethernet gateways, I think.
                                    I experimenting with ESP8266 gateway only, not W5100.

                                    For inspiration look at code line 24 to 56 here:

                                    https://diyprojects.io/driving-gpio-esp8266-web-server-domoticz-tcp-ip-wireless/

                                    monteM Offline
                                    monteM Offline
                                    monte
                                    wrote on last edited by monte
                                    #23

                                    @kimot I know, that you can make web server on esp8266, but now gateway code works on almost everything that is supported by arduino IDE and has enough memory. If you will make version of gw that only works on esp or raspberry pi it won't be right. For my taste we need affordable microcontroller based on ARM Cortex-M0 (M3, M4) with built-in Ethernet controller and hardware TCP/IP stack. For now there is one chip but it isn't nor affordable nor widely spread, and almost no one knows how to work with it (because no one has it). http://www.wiznet.io/product-item/w7500p/

                                    1 Reply Last reply
                                    0
                                    • tbowmoT tbowmo

                                      @Sushukka

                                      mqtt publish example in python

                                      import paho.mqtt.publish as publish
                                      payload = 'Hey there'
                                      publish.single('mys-out/1/1/1/0/47', payload, hostname=<mqtthost>, port=<mqttport, retain=False)
                                      

                                      'mys-out/99/1/1/0/47' is the MQTT topic, and is decoded as follows:
                                      99: Node ID
                                      1: ChildId
                                      1: command (Set in this case)
                                      0: ACK (None in this case)
                                      47: V_TYPE (V_TEXT in this case)

                                      Above pretty much follows the MySensors serial protocol, as found here, only difference is that sensor payload, and sensor id / msg type etc. is split into two parameters in MQTT (as in payload and topic), and doesn't come in as a single string.

                                      SushukkaS Offline
                                      SushukkaS Offline
                                      Sushukka
                                      wrote on last edited by Sushukka
                                      #24

                                      @tbowmo Thanks @tbowmo and everybody! This active community has really saved my day so many times. You rule guys and gals! :+1: :blush:
                                      Here is a working script:

                                      import paho.mqtt.client as mqttClient
                                      import sys
                                      
                                      irCommand = sys.argv[1]
                                      print("Parameter is: " + irCommand)
                                      
                                      client = mqttClient.Client("Python")  
                                      client.username_pw_set(username="xxx",password="xxx")
                                      client.connect("nnn.nnn.nnn.nnn", 1883)
                                      client.publish('domoticz/out/HomeNum_IR/0/0/1/0/47', irCommand, retain=False)
                                      # (ESP8266 "gateway" MQTT client -> node=0)
                                      

                                      And call it from Domoticz virtual selector switch:

                                      script:///home/pi/domoticz/scripts/python/hnumber_led_mode.py 7
                                      

                                      Parameter is the desired mode for led animation. Made a similar on for IR remote commands.

                                      Is there same ~25bit payload limit with MQTT too? I mean those NEC IR commands tend to be 32bit so probably cannot send them directly but need to be hardcoded in the sketch? Also planned to create a universal script for these needs where you could give also node number, child ids etc but then again...I chain myself even tighter to Domoticz shackles and again Domoticz should support this without scripting.

                                      Couple of more questions:

                                      • If you have several ESP8266 MQTT gateways, should one create a different topic for everyone or put them in the same MySensors queue? If so, will the MY_MQTT_CLIENT_ID make the separation?
                                      • I installed nodered-contrib-mysensors and it seems very promising. Definitely going to play around with it. I probably still need some actual controller but Node-red seems to be important part whatever you're gonna do especially when using MQTT queues.
                                      • When using MQTT instead of Ethernet GW, I lose small but very important check: node pinging. I can see from Domoticz log warning messages when some of my ESP8266 Ethernet nodes are down, but when using MQTT there are no warnings, just no data received. I assume this is quite logical because the MQTT node's address in Domoticz is actually broker's (Mosquitto) address + right MQTT topic. However, when sniffing Domoticz MQTT traffic, it seems to send PING messages quite regularly (but don't know if this triggers anything if the ping success or fails...):
                                      // MQTT topic: domoticz/out/HomeNum_IR/#
                                      PING
                                      qos : 0, retain : false, cmd : publish, dup : false, topic : domoticz/out/HomeNum_IR/0/0/3/0/18, messageId : , length : 40
                                      

                                      Update: Seems that the Domo has it's own requirements for MQTT queues and for preventing overlapping ESP8266 = GW = Node ID 0 have an option to have also Node ID in the MQTT queue definition. Still would be nice to be able to define the MQTT queue names freely in Domo...

                                      Also my bad: MySensors payload size is 25 bytes, not bits... This seems to be because of NFR24L01 limitations. However, it would be nice to see an extended payload size for passing eg. longer text information with more advanced microcontrollers like ESP8266 in the future releases. Minor need though.

                                      1 Reply Last reply
                                      2
                                      • tbowmoT Offline
                                        tbowmoT Offline
                                        tbowmo
                                        Admin
                                        wrote on last edited by
                                        #25

                                        @kimot
                                        So MQTT is not a common protocol? Or serial? What would the benefit be of a http request, over any of the other transport options, when the controller doesn't transmit when changed?

                                        In my opinion then http requests aren't that usable as a transport in a home automation setup. MQTT is much better for this, if you really want to go over tcp/ip.

                                        1 Reply Last reply
                                        2
                                        • SushukkaS Offline
                                          SushukkaS Offline
                                          Sushukka
                                          wrote on last edited by Sushukka
                                          #26

                                          And update here about V_TEXT and OpenHAB: Yes it works like it should. When I update the V_TEXT sensor in OpenHAB, it will send the update without any extra scripts or hacks to the MySensors node.

                                          However, after spending several days and nights setting up OpenHAB I have to say that it is far from being ready. MySensors seems not to be qualified yet in the list of "downloadable ready" bindings in PaperUI. Had several errors with MQTT nodes. It is customizable yes, but requires way too much time to set up and maintain. It seems to be more like an architectural masterpiece than easy-to-use home controller.

                                          You can define nearly everything in PaperUI or HABmin like me (a hell of mouse clicking and scrolling) or define everything in multiple configuration files. When you finally have all the nodes and sensors defined (bindings, things, items), you have to build your own gui to see them in usable format. You can either use HabPanel for dashboards or configuration files for sitemaps. Dashboards, which has the best outlook imo, seems to have a problem of working with different devices. I tried to avoid the manual sitemap building by installing Imperihome binding. Connection ok, but alas, you have to manually tag every damn item you have to show them in Imperihome. With all manual configurations you actually need to define quite much of information and they are nicely connected making bigger future changes complicated. Having now around 100 sensors, all this stuff really takes time. Moreover it seemed that the reliability at least with MySensors Ethernet Gateways (one main for NFR24L01 nodes and several ESP8266s) was not in par with Domoticz. Startup problems, rebooting, lost nodes etc...And this was the last drop --> changed back to Domoticz.

                                          Have to say that after a couple of years OpenHAB could maybe be the number one open source home automation controller, but it requires lots of more work for getting there. Now it's too much of engineering and configuration porn vs. the real benefits it gives. Also I'm little bit afraid that the they are getting lost to this super elegancy by trying to be everything and pleasing everybody. PaperUI, HABmin, HomeBuilder, HabPanel, Basic UI, Classic UI, some third party UIs, configuration files... The concept is nice, but as with any product, you need to focus somewhere or otherwise you are just semicore in all areas. Domoticz has its problems, but at least it is reliable and allows putting the most of the available tinkering time to the actual node building than tuning the controller.

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


                                          28

                                          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