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 2.1k 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
          • B Offline
            B 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

            B 1 Reply Last reply
            0
            • B 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

              B Offline
              B 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

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      15

                      Online

                      12.0k

                      Users

                      11.2k

                      Topics

                      113.4k

                      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