MagicMirror² v2.14.0 is available! For more information about this release, check out this topic.

How to disable SSL check in python Request

  • Hi, guys.
    Hope i’m posting this on the right place.

    I’ll try to be as clear as possible.

    I have a Home Assistant on the same raspberry pi as my Magic Mirror. And I use MMM-HASS module ( to see the state of a few sensor on my Home Assistant (light, temperature, etc).

    I use my Home Assistant with a DuckDNS dns ( with Lets Encrypt SSL and everything worked fine, until I changed my router.

    My new router doesnt support a feature called NAT Loopback, that is:
    If I am outside my LAN (for example acessing from may phone 4G) I can access my home assistant with
    But if I am INSIDE my LAN (for example from my PC) I can’t access with I can only access it with the raspberry pi IP itself: 192.168.X.X.

    The thing is, these modules that integrate with home assistant with magic mirror (like MMM-HASS and MMM-homeassistant-sensors) expect a “host” variable.

    Since the MagicMirror is inside my LAN I have to access it with 192.168.X.X, but since I have a SSL encryption for, the magic mirror module get the connection error: “Hostname/IP does not match certificate’s altnames: IP: 192.168.X.X is not in the cert’s list:”

    With my old router I set the “host” variable to But since my new router doesn’t have this “NAT Loopback” thing, I have to set my LAN IP.

    The solution is: I have to set these modules so they doesnt check the SSL. The Python “Request” has this option: verify=False, as I saw here:

    But my knowledge in Python is null. So, can anyone help me setting this “verify=False” parameter in the PYthon HTTP Request?

    I tried editing this file “~/MagicMirror/modules/MMM-HASS/node_helper.js”, but I couldnt edit it the right way. I assume it is around these lines of code:

    request(get_options, function(error, response, body) {
              if(config.debuglogging) {
              outDevice[body.entity_id] = body.state;
              if (completed_requests == urls.length) {
                // All requests done for the device, process responses array
                // to retrieve all the states
                outDevice.label = device.deviceLabel;

    but I couldnt get it right.
    I tried changing the “get_options” var from

    var get_options = {
              url: urls[i],
              json: true


    var get_options = {
              url: urls[i],
              json: true,
              verify: false

    but no success either.

    Hope I made myself clear, and thanks in advance!

Log in to reply