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. Mozilla WebThings Gateway
  4. MQTT Support

MQTT Support

Scheduled Pinned Locked Moved Mozilla WebThings Gateway
14 Posts 4 Posters 1.2k Views 3 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.
  • alowhumA alowhum

    I've tried to add the required code. But as I'm not an MQTT user, I'm not sure I've implemented it properly.

    You mentioned:
    It should be asking for the mqtt server address, credentials and topic prefix?

    • The IP address can be filled in at the same spot where you fill it in for the ethernet gateway.
    • Are credentials required?
    • Topic prefix seems to be hardcoded to the mysensors ones? Right now I have:
                    MQTTC = MQTT(ip_address, 1883, 60)
                    MQTTC.start()
                    
                    #self.GATEWAY = mysensors.AsyncMQTTGateway(ip_address, event_callback=self.mysensors_message, 
                    #    persistence=True, persistence_file=self.persistence_file_path, 
                    #    protocol_version='2.2')
                    
                    self.GATEWAY = mysensors.AsyncMQTTGateway(MQTTC.publish, MQTTC.subscribe, in_prefix='mygateway1-out',
                        out_prefix='mygateway1-in', retain=True, event_callback=event,
                        persistence=True, persistence_file=self.persistence_file_path, 
                        protocol_version='2.2')
    
    mfalkviddM Offline
    mfalkviddM Offline
    mfalkvidd
    Mod
    wrote on last edited by mfalkvidd
    #5

    @alowhum on a MySensors mqtt gateway, username, password and topic prefix can be configured by defines. Since they are configurable on a MySensors gateway, I think it would make sense to also support configuration of these parameters in Webthings gateway.

    1 Reply Last reply
    0
    • alowhumA Offline
      alowhumA Offline
      alowhum
      Plugin Developer
      wrote on last edited by alowhum
      #6

      I've added support for username and password (in theory). It should be available in the next version.

      1 Reply Last reply
      1
      • alowhumA Offline
        alowhumA Offline
        alowhum
        Plugin Developer
        wrote on last edited by
        #7

        I've been trying to test it. I got to the point where in theory it's connected to Mosquitto. But I don't have any MySensors MQTT devices, so nothing is happening after that.

        Could someone help me craft a test message? Something like:

        mosquitto_pub -h localhost -t mygateway1-out -m "4;255;3;0;6;0"

        mfalkviddM 1 Reply Last reply
        0
        • alowhumA alowhum

          I've been trying to test it. I got to the point where in theory it's connected to Mosquitto. But I don't have any MySensors MQTT devices, so nothing is happening after that.

          Could someone help me craft a test message? Something like:

          mosquitto_pub -h localhost -t mygateway1-out -m "4;255;3;0;6;0"

          mfalkviddM Offline
          mfalkviddM Offline
          mfalkvidd
          Mod
          wrote on last edited by
          #8

          @alowhum I don't use mqtt either, but https://www.mysensors.org/build/mqtt_gateway#setup-and-test-gateway has instructions for how to send a test message. Can you use that?

          1 Reply Last reply
          1
          • bjacobseB Offline
            bjacobseB Offline
            bjacobse
            wrote on last edited by
            #9

            I don't use Webthings, but MQTT shall work similar, on my RPI I have Domoticz and Mosquitto broker running, check in a prompt:
            Is the broker running? ps -ef |grep mosq
            you can also check the logfile: sudo tail /var/log/mosquitto/mosquitto.log

            Then if above is ok, then your test message shall appear in the logfile, then Mosquitto is working. Then next check Mosquitto WebThings connection. I would assume a logfile must be present in WebThings that shows if a sensor is providing something

            bjacobseB 1 Reply Last reply
            0
            • bjacobseB bjacobse

              I don't use Webthings, but MQTT shall work similar, on my RPI I have Domoticz and Mosquitto broker running, check in a prompt:
              Is the broker running? ps -ef |grep mosq
              you can also check the logfile: sudo tail /var/log/mosquitto/mosquitto.log

              Then if above is ok, then your test message shall appear in the logfile, then Mosquitto is working. Then next check Mosquitto WebThings connection. I would assume a logfile must be present in WebThings that shows if a sensor is providing something

              bjacobseB Offline
              bjacobseB Offline
              bjacobse
              wrote on last edited by
              #10

              @bjacobse
              did you setup Node-RED?
              Maybe this can help you: https://diyprojects.io/mqtt-mosquitto-communicating-connected-objects-iot/#.XTBAKiZJFCU

              1 Reply Last reply
              0
              • R Offline
                R Offline
                Ryanmt
                wrote on last edited by
                #11

                I don't have webthings setup anymore but am happy to spin it up in a docker container and test for you. Just let me know what the steps are to install the test version and i'll give it a go.

                1 Reply Last reply
                0
                • alowhumA Offline
                  alowhumA Offline
                  alowhum
                  Plugin Developer
                  wrote on last edited by
                  #12

                  @Ryanmt thanks, that would be great.

                  I've tried to do some testing. Things look promising.

                  The Paho MQTT client seems to connect to a lot of topics:

                  Started MQTT client
                  subscribing to topicmygateway1-out/+/+/0/+/+
                  subscribing to topicmygateway1-out/+/+/3/+/+
                  subscribing to topicmygateway1-out/7/1/1/+/+
                  subscribing to topicmygateway1-out/7/1/2/+/+
                  subscribing to topicmygateway1-out/7/10/1/+/+
                  subscribing to topicmygateway1-out/7/10/2/+/+
                  subscribing to topicmygateway1-out/7/11/1/+/+
                  subscribing to topicmygateway1-out/7/11/2/+/+
                  

                  etc.

                  Then, this:
                  mosquitto_pub -t 'mygateway1-out/7/1/2/0/47' -m '0,test'
                  gives:
                  Not a valid message: not a valid value for dictionary value @ data['payload']

                  So there is a communication path. I'm just not recreating the correct message.

                  1 Reply Last reply
                  0
                  • alowhumA Offline
                    alowhumA Offline
                    alowhum
                    Plugin Developer
                    wrote on last edited by
                    #13

                    Does this look correct?
                    in_prefix='mygateway1-out', out_prefix='mygateway1-in'

                    Shouldn't that be reversed?

                    1 Reply Last reply
                    0
                    • alowhumA Offline
                      alowhumA Offline
                      alowhum
                      Plugin Developer
                      wrote on last edited by
                      #14

                      I saw the same pattern in the original example code at PyMySensors, so I'm assuming it's ok.

                      I've uploaded version 0.1.2 of the MySensors add-on, Mozilla should accept it in a work day or two.

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


                      20

                      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