• 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 1.8k 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 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
        • C Offline
          Cr4z33
          last edited by 28 days ago

          @wishmaster270 after I left this project abandoned for almost 1 year I went back to it, but I still can’t get it to work. 🥲

          To resume what I want to achieve is to have MMM-RTSPStream popping up a live doorbell video feed on my smart mirror whenever someone presses the button.

          The interested MQTT line is

          2025-04-16 10:30:07,536 INFO __main__ Publishing MQTT message DahuaVTO/Invite/Event: {'Action': 'Pulse', 'Code': 'Invite', 'Data': {'CallID': '2', 'IsEncryptedStream': False, 'LocaleTime': '2025-04-16 10:30:07', 'LockNum': 2, 'RealUTC': 1744792207, 'SupportPaas': False, 'TCPPort': 37777, 'UTC': 1744795807.0, 'UserID': '101'}, 'Index': 0, 'deviceType': 'DHI-VTO3311Q-WP', 'serialNumber': '********'}
          

          I therefore edited my current mqttDictionary.js by adding

          var mqttHook = [
            {
              mqttTopic: "zigbee2mqtt/BTicino F20T60A",
              mqttPayload: [
                {
                  payloadValue: "",
                  mqttNotiCmd: ["POWERMETER"],
                  mqttPayload: ""
                },
              ],
            },
            {
                mqttTopic: "DahuaVTO/Invite/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};
          

          I then edited in config.js the lines related to the MMM-RTSPStream module like this

          {
          			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: 'rtsp://username:password@ipaddress/cam/realmonitor?channel=1&subtype=1#backchannel=0',
          						frameRate: 'undefined',
          						width: 500,
          						height: 281,
          						muted: true,
          						ffmpegPort: 9999,
          						},
          				}
          		},
          

          Nothing happens when I press the doorbell button.

          Maybe we need to add some more data to mqttDictionary.js?

          W 1 Reply Last reply 28 days ago Reply Quote 0
          • W Offline
            wishmaster270 Module Developer @Cr4z33
            last edited by 28 days ago

            @Cr4z33 Sorry, but I am very busy at the moment.
            Did you find any response of the MQTT module in your logs of MagicMirror if you enable the debug option of it?

            C 1 Reply Last reply 27 days ago Reply Quote 0
            • C Offline
              Cr4z33 @wishmaster270
              last edited by 27 days ago

              @wishmaster270 hi and sorry for bothering you hehe.

              No there’s actually no sign of doorbell button pressing looking at the logs.

              All I can see is my BTicino power meter and that’s it…

              PM2 Log

              1 Reply Last reply Reply Quote 0
              • 1
              • 2
              • 2 / 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