• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

[MMM-MQTTbridge] A module to publish and receive MQTT messages

Scheduled Pinned Locked Moved Utilities
16 Posts 3 Posters 2.3k Views 3 Watching
Loading More Posts
  • 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.
  • C Offline
    Cr4z33 @wishmaster270
    last edited by Jul 23, 2024, 9:05 AM

    @wishmaster270 thank you mate!

    Yeah I will add a timeout command as I don’t think it will take much to search for it. 🙂

    C 1 Reply Last reply Jul 23, 2024, 9:29 AM Reply Quote 0
    • C Offline
      Cr4z33 @Cr4z33
      last edited by Jul 23, 2024, 9:29 AM

      @wishmaster270 sorry to bother you again.

      Right now my mqtt Dictionary.js looks like this

      var mqttHook = [
        {
          mqttTopic: "zigbee2mqtt/BTicino F20T60A",
          mqttPayload: [
            {
              payloadValue: "",
              mqttNotiCmd: ["POWERMETER"],
              mqttPayload: ""
            },
          ],
        },
      ];
      
      var mqttNotiCommands = [
        {
          commandId: "POWERMETER",
          notiID: "POWERMETER_VALUES",
        },
      ];
      
      module.exports = { mqttHook,  mqttNotiCommands};
      

      so how should I add the new piece of code please?

      W 1 Reply Last reply Jul 23, 2024, 3:01 PM Reply Quote 0
      • W Offline
        wishmaster270 Module Developer @Cr4z33
        last edited by Jul 23, 2024, 3:01 PM

        @Cr4z33 The two datatstructures are arrays containing objects. So you can simply append the two objects…

        var mqttHook = [
          {
            mqttTopic: "zigbee2mqtt/BTicino F20T60A",
            mqttPayload: [
              {
                payloadValue: "",
                mqttNotiCmd: ["POWERMETER"],
                mqttPayload: ""
              },
            ],
          },
          {
              mqttTopic: "DahuaVTO/VideoTalkLog/Event",
              mqttPayload: [
                {
                   jsonpath: "Action", 
                   conditions: [
                               {
                                 type: "eq",
                                 value: "Pulse"
                               },
                             ],
                  mqttNotiCmd: ["doorbell"]
                },
              ],
            },
        ];
        
        var mqttNotiCommands = [
          {
            commandId: "POWERMETER",
            notiID: "POWERMETER_VALUES",
          },
          {
              commandId: "doorbell",
              notiID: "RTSP-PLAY",
              notiPayload: "YOUR-STREAM-URL" 
            },
        ];
        
        module.exports = { mqttHook,  mqttNotiCommands};
        
        
        C 1 Reply Last reply Jul 23, 2024, 3:16 PM Reply Quote 1
        • C Offline
          Cr4z33 @wishmaster270
          last edited by Cr4z33 Jul 23, 2024, 3:19 PM Jul 23, 2024, 3:16 PM

          @wishmaster270 thank you again!

          However nothing happens in the MagicMirror frontend (although I can see the MQTT event if running MM by npm start

          [23.07.2024 17:15.55.132] [LOG]   [MQTT bridge] MQTT message received. Topic: DahuaVTO/VideoTalkLog/Event, message: {"Action":"Pulse","Data":{"EndState":"Missed","LocalNumber":"9901","LocaleTime":"2024-07-23 17:15:55","RealUTC":1721747755,"TalkTime":0,"UTC":1721751355}}
          

          I suspect that I am entering the wrong data at

          "YOUR-STREAM-URL"
          

          What shall I enter? Just the IP address or something like ie.

          rtsp://username:password@IPADDRESS/cam/realmonitor?channel=1&subtype=1#backchannel=0
          
          S W 2 Replies Last reply Jul 23, 2024, 3:35 PM Reply Quote 0
          • S Offline
            sdetweil @Cr4z33
            last edited by Jul 23, 2024, 3:35 PM

            @Cr4z33 said in [MMM-MQTTbridge] A module to publish and receive MQTT messages:

            although I can see the MQTT event if running MM by npm start

            if using pm2 to autolaunch MM, then

            pm2 logs --lines=xxxx
            

            will show you the last xxxx of the output

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            C 1 Reply Last reply Jul 24, 2024, 9:55 AM Reply Quote 1
            • W Offline
              wishmaster270 Module Developer @Cr4z33
              last edited by Jul 23, 2024, 5:24 PM

              @Cr4z33 Hi,

              think I found the problem.
              You need to send streamX as value where X is the number of the stream in the configuration of MMM-RTSPStream.
              You will need to configure the camera information in the MMM-RTSPStream module and only will be able to start the stream by notification

              C 1 Reply Last reply Sep 23, 2024, 10:47 AM Reply Quote 1
              • C Offline
                Cr4z33 @sdetweil
                last edited by Cr4z33 Jul 24, 2024, 9:56 AM Jul 24, 2024, 9:55 AM

                @sdetweil said in [MMM-MQTTbridge] A module to publish and receive MQTT messages:

                @Cr4z33 said in [MMM-MQTTbridge] A module to publish and receive MQTT messages:

                although I can see the MQTT event if running MM by npm start

                if using pm2 to autolaunch MM, then

                pm2 logs --lines=xxxx
                

                will show you the last xxxx of the output

                @wishmaster270 said in [MMM-MQTTbridge] A module to publish and receive MQTT messages:

                @Cr4z33 Hi,

                think I found the problem.
                You need to send streamX as value where X is the number of the stream in the configuration of MMM-RTSPStream.
                You will need to configure the camera information in the MMM-RTSPStream module and only will be able to start the stream by notification

                Thank you both will do as soon as I am back at home again!

                1 Reply Last reply Reply Quote 0
                • C Offline
                  Cr4z33 @wishmaster270
                  last edited by Sep 23, 2024, 10:47 AM

                  @wishmaster270 said in [MMM-MQTTbridge] A module to publish and receive MQTT messages:

                  @Cr4z33 Hi,

                  think I found the problem.
                  You need to send streamX as value where X is the number of the stream in the configuration of MMM-RTSPStream.
                  You will need to configure the camera information in the MMM-RTSPStream module and only will be able to start the stream by notification

                  Hi mate I am coming back after a long time because real life was very busy lately and I could get back at this only in the last 2 days.

                  So based on your reply I set mqttDictionary.js like this

                  var mqttHook = [
                    {
                      mqttTopic: "zigbee2mqtt/BTicino F20T60A",
                      mqttPayload: [
                        {
                          payloadValue: "",
                          mqttNotiCmd: ["POWERMETER"],
                          mqttPayload: ""
                        },
                      ],
                    },
                    {
                        mqttTopic: "DahuaVTO/VideoTalkLog/Event",
                        mqttPayload: [
                          {
                             jsonpath: "Action", 
                             conditions: [
                                         {
                                           type: "eq",
                                           value: "Pulse"
                                         },
                                       ],
                            mqttNotiCmd: ["videocitofono"]
                          },
                        ],
                      },
                  ];
                  
                  var mqttNotiCommands = [
                    {
                      commandId: "POWERMETER",
                      notiID: "POWERMETER_VALUES",
                    },
                    {
                        commandId: "videocitofono",
                        notiID: "RTSP-PLAY",
                        notiPayload: "stream1" 
                      },
                  ];
                  
                  module.exports = { mqttHook,  mqttNotiCommands};
                  

                  Although stream1 is the one and only stream used in MMM-RTSPStream I still get no playback when the doorbell button is pressed, but if I start the stream by clicking on the module’s playback button then it works.

                  I paste here also the PM2 log line (note that sensitive data have been censored) when the doorbell button is pressed:

                  [23.09.2024 12:36.03.216] [LOG]   [MQTT bridge] MQTT message received. Topic: DahuaVTO/VideoTalkLog/Event, message: {
                      "Action": "Pulse",
                      "Code": "VideoTalkLog",
                      "Data": {
                          "EndState": "Missed",
                          "LocalNumber": "9901",
                          "LocaleTime": "2024-09-23 12:36:03",
                          "RealUTC": 1727087763,
                          "TalkTime": 0,
                          "UTC": 1727091363.0
                      },
                      "Index": 0,
                      "deviceType": "DHI-VTO2202F-P-S2",
                      "serialNumber": "*******"
                  }
                  

                  Can you please see why it’s not working yet? 🙏🏼

                  W 1 Reply Last reply Sep 23, 2024, 7:06 PM Reply Quote 0
                  • W Offline
                    wishmaster270 Module Developer @Cr4z33
                    last edited by Sep 23, 2024, 7:06 PM

                    @Cr4z33 Hi and welcome back.
                    I still do not have a glue about the RTSP module.

                    Can you please provide your RTSP config. I try to reproduce the problem but do not have much time to test at the moment.

                    C 1 Reply Last reply Sep 25, 2024, 7:54 AM Reply Quote 1
                    • C Offline
                      Cr4z33 @wishmaster270
                      last edited by Sep 25, 2024, 7:54 AM

                      @wishmaster270 here is the code of my RTSPStream module thanks. 🙂

                      I replaced my video doorbell RTSP stream with some testing live HTTPS camera one as I couldn’t find a working RTSP testing stream.

                      Take your time as long as it takes. 👍🏼

                      {
                      			module: "MMM-RTSPStream",
                      			position: "middle_center",
                      			disabled: false,
                      			config: {
                      				autoStart: false,
                      				rotateStreams: true,
                      				rotateStreamTimeout: 10,
                      				moduleWidth: 500,
                      				moduleHeight: 281,
                      				localPlayer: 'vlc',
                      				moduleOffset: { left: -170, top: -125 },
                      				remotePlayer: 'ffmpeg',
                      				showSnapWhenPaused: false,
                      				remoteSnaps: false,
                      				shutdownDelay: 12,
                      				stream1: {
                      						name: 'Videocitofono',
                      						url: 'https://99663300.hopto.org:19526/Jpeg/1?authToken=7f9c4ca8-e776-40c9-b242-6882b7b4775e&1727250645145',
                      						frameRate: 'undefined',
                      						width: 500,
                      						height: 281,
                      						muted: true,
                      						ffmpegPort: 9999,
                      						},
                      				}
                      		},
                      
                      1 Reply Last reply Reply Quote -1
                      • 1
                      • 2
                      • 1 / 2
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy