Mascota de HectorziN
Blog de HectorziN

Meross MS700: Análisis, configuración e integración con Home Assistant y Matter

Controlar la domótica desde el smartphone o mediante comandos de voz está bien, pero en el día a día no siempre resulta práctico sacar el móvil, desbloquearlo, abrir una app y buscar la bombilla exacta. Para solucionar esto nace el Meross MS700, un mando inteligente multifunción pensado tanto para interiores como para exteriores gracias a su diseño resistente al agua. En esta guía a fondo repasamos sus especificaciones técnicas, cómo funciona su conectividad con Matter y el Hub MSH450P, y cómo integrarlo con Home Assistant para controlar luces WLED, bombillas Zigbee o cualquier escena de tu hogar inteligente.

En YouTube comparto más tutoriales, pruebas y domótica real. Suscribirme

Meross MS700: Análisis, configuración e integración con Home Assistant y Matter

Vídeo relacionado en YouTube

Video

1. Características principales del Meross MS700

El Meross MS700 destaca por reunir versatilidad, resistencia y autonomía en un cuerpo muy compacto que cabe en una mano:

  • 3 pantallas y 9 acciones directas: Cuenta con una pantalla configurable dividida en 3 vistas independientes. Cada pantalla dispone de 3 botones físicos dedicados, permitiendo asignar hasta 9 funciones distintas con iconos y textos personalizados.
  • Protección IP66 para exteriores: Está protegido contra polvo y chorros de agua intensos. Esto lo convierte en la opción ideal para dejar en pérgolas, terrazas, jardines o zonas de piscina sin temor a la intemperie.
  • Gran autonomía a pilas: Funciona con una pila reemplazable CR123A, ofreciendo una duración estimada por el fabricante de hasta 2 años y medio (dependiendo del uso diario).
  • Sensores de temperatura y humedad integrados: No solo envía órdenes; también monitoriza las condiciones ambientales del lugar donde lo dejes y puede reportar esos datos a tu sistema domótico.

2. Conectividad: Bluetooth, Hub MSH450P y compatibilidad con Matter

Un punto clave a tener en cuenta es que el Meross MS700 no se conecta directamente por Wi-Fi. Para comunicarse utiliza Bluetooth, lo que reduce drásticamente el consumo de batería.

Para vincularlo con el resto de la casa inteligente requiere el Hub Meross MSH450P:

  1. El Hub se conecta a la red doméstica mediante cable Ethernet o Wi-Fi.
  2. Recibe las pulsaciones del MS700 por Bluetooth y las transmite a la red local.
  3. El Hub es compatible con Matter, permitiendo exponer los controles a plataformas como Apple Home, Google Home, Amazon Alexa y Home Assistant.

3. Integración y configuración en Home Assistant

Al vincular el hub mediante Matter en Home Assistant, los 9 botones de las 3 pantallas quedan expuestos como eventos listos para ser utilizados como desencadenantes (triggers) en tus automatizaciones.

La gran ventaja es que no estás atado al ecosistema de Meross: puedes controlar cualquier dispositivo integrado en Home Assistant sin importar su protocolo o fabricante (Zigbee, Z-Wave, Wi-Fi, ESPHome, etc.).

Ejemplo práctico: control de pérgola y jardín

En una configuración real para exteriores, las 3 pantallas pueden organizarse de forma temática:

  • Pantalla 1 (Pérgola - Luz blanca):
    • Botón superior: encendido / apagado (toggle).
    • Botón medio: aumentar brillo.
    • Botón inferior: reducir brillo.
  • Pantalla 2 (Pérgola - Iluminación WLED RGB):
    • Botón superior: alternar entre paletas o colores predefinidos.
    • Botones inferiores: regulación fina de intensidad luminosa.
  • Pantalla 3 (Jardín - Iluminación Zigbee):
    • Botón superior: encendido / apagado general.
    • Botones inferiores: avanzar o retroceder en un bucle de colores definidos. (Al interactuar con bombillas que reportan ligeras variaciones en sus valores RGB, la automatización compara la tonalidad actual con la más cercana de la lista para pasar a la siguiente).
yaml
alias: 🎛️ Meross MS700 | Control pérgola y jardín
description: >-
  Control de la pérgola y las luces del jardín con tres pantallas. Cambio RGB
  mediante reconocimiento del color más cercano.
triggers:
  - trigger: state
    entity_id: event.screen_1_button_1_boton
    not_from:
      - unknown
      - unavailable
    id: p1_b1
  - trigger: state
    entity_id: event.screen_1_button_2_boton
    not_from:
      - unknown
      - unavailable
    id: p1_b2
  - trigger: state
    entity_id: event.screen_1_button_3_boton
    not_from:
      - unknown
      - unavailable
    id: p1_b3
  - trigger: state
    entity_id: event.screen_2_button_1_boton
    not_from:
      - unknown
      - unavailable
    id: p2_b1
  - trigger: state
    entity_id: event.screen_2_button_2_boton
    not_from:
      - unknown
      - unavailable
    id: p2_b2
  - trigger: state
    entity_id: event.screen_2_button_3_boton
    not_from:
      - unknown
      - unavailable
    id: p2_b3
  - trigger: state
    entity_id: event.screen_3_button_1_boton
    not_from:
      - unknown
      - unavailable
    id: p3_b1
  - trigger: state
    entity_id: event.screen_3_button_2_boton
    not_from:
      - unknown
      - unavailable
    id: p3_b2
  - trigger: state
    entity_id: event.screen_3_button_3_boton
    not_from:
      - unknown
      - unavailable
    id: p3_b3
conditions: []
actions:
  - variables:
      colores:
        - - 255
          - 0
          - 0
        - - 255
          - 100
          - 0
        - - 255
          - 255
          - 0
        - - 0
          - 255
          - 0
        - - 0
          - 0
          - 255
        - - 150
          - 0
          - 255
        - - 255
          - 0
          - 120
  - choose:
      - conditions:
          - condition: trigger
            id: p1_b1
        sequence:
          - if:
              - condition: state
                entity_id: light.pergola
                state: 'on'
            then:
              - action: light.turn_off
                target:
                  entity_id: light.pergola
            else:
              - action: light.turn_on
                target:
                  entity_id: light.pergola
                data:
                  rgb_color:
                    - 255
                    - 255
                    - 255
      - conditions:
          - condition: trigger
            id: p1_b2
        sequence:
          - condition: state
            entity_id: light.pergola
            state: 'on'
          - action: light.turn_on
            target:
              entity_id: light.pergola
            data:
              brightness_step_pct: -10
      - conditions:
          - condition: trigger
            id: p1_b3
        sequence:
          - condition: state
            entity_id: light.pergola
            state: 'on'
          - action: light.turn_on
            target:
              entity_id: light.pergola
            data:
              brightness_step_pct: 10
      - conditions:
          - condition: trigger
            id: p2_b1
        sequence:
          - variables:
              color_actual: |
                {{ state_attr('light.pergola', 'rgb_color') | list
                   if state_attr('light.pergola', 'rgb_color') != none
                   else [] }}
          - action: light.turn_on
            target:
              entity_id: light.pergola
            data:
              rgb_color: |
                {% if color_actual | length == 3 %}
                  {% set ns = namespace(indice=0, distancia=999999) %}
                  {% for color in colores %}
                    {% set d =
                      (color[0] - color_actual[0]) ** 2 +
                      (color[1] - color_actual[1]) ** 2 +
                      (color[2] - color_actual[2]) ** 2 %}
                    {% if d < ns.distancia %}
                      {% set ns.distancia = d %}
                      {% set ns.indice = loop.index0 %}
                    {% endif %}
                  {% endfor %}
                  {{ colores[(ns.indice + 1) % (colores | length)] }}
                {% else %}
                  {{ colores[0] }}
                {% endif %}
      - conditions:
          - condition: trigger
            id: p2_b2
        sequence:
          - condition: state
            entity_id: light.pergola
            state: 'on'
          - action: light.turn_on
            target:
              entity_id: light.pergola
            data:
              brightness_step_pct: -10
      - conditions:
          - condition: trigger
            id: p2_b3
        sequence:
          - condition: state
            entity_id: light.pergola
            state: 'on'
          - action: light.turn_on
            target:
              entity_id: light.pergola
            data:
              brightness_step_pct: 10
      - conditions:
          - condition: trigger
            id: p3_b1
        sequence:
          - action: light.toggle
            target:
              entity_id: light.luces_jardin
      - conditions:
          - condition: trigger
            id: p3_b2
        sequence:
          - variables:
              color_actual: |
                {{ state_attr('light.luces_jardin', 'rgb_color') | list
                   if state_attr('light.luces_jardin', 'rgb_color') != none
                   else [] }}
          - action: light.turn_on
            target:
              entity_id: light.luces_jardin
            data:
              rgb_color: |
                {% if color_actual | length == 3 %}
                  {% set ns = namespace(indice=0, distancia=999999) %}
                  {% for color in colores %}
                    {% set d =
                      (color[0] - color_actual[0]) ** 2 +
                      (color[1] - color_actual[1]) ** 2 +
                      (color[2] - color_actual[2]) ** 2 %}
                    {% if d < ns.distancia %}
                      {% set ns.distancia = d %}
                      {% set ns.indice = loop.index0 %}
                    {% endif %}
                  {% endfor %}
                  {{ colores[(ns.indice - 1) % (colores | length)] }}
                {% else %}
                  {{ colores[-1] }}
                {% endif %}
      - conditions:
          - condition: trigger
            id: p3_b3
        sequence:
          - variables:
              color_actual: |
                {{ state_attr('light.luces_jardin', 'rgb_color') | list
                   if state_attr('light.luces_jardin', 'rgb_color') != none
                   else [] }}
          - action: light.turn_on
            target:
              entity_id: light.luces_jardin
            data:
              rgb_color: |
                {% if color_actual | length == 3 %}
                  {% set ns = namespace(indice=0, distancia=999999) %}
                  {% for color in colores %}
                    {% set d =
                      (color[0] - color_actual[0]) ** 2 +
                      (color[1] - color_actual[1]) ** 2 +
                      (color[2] - color_actual[2]) ** 2 %}
                    {% if d < ns.distancia %}
                      {% set ns.distancia = d %}
                      {% set ns.indice = loop.index0 %}
                    {% endif %}
                  {% endfor %}
                  {{ colores[(ns.indice + 1) % (colores | length)] }}
                {% else %}
                  {{ colores[0] }}
                {% endif %}
mode: queued
max: 20

4. Ventajas y limitaciones a considerar

Puntos fuertes

  • Accesibilidad universal: Cualquier persona o invitado en casa puede encender luces o activar escenas sin necesidad de instalar apps ni tener permisos en el sistema domótico.
  • Resistencia real al exterior: La certificación IP66 asegura tranquilidad frente a la lluvia y la humedad exterior.
  • Consumo eficiente: La combinación de Bluetooth con la pila CR123A garantiza años de funcionamiento sin recargas constantes.
  • Sensores añadidos: Permite disparar automatizaciones basadas en la temperatura o humedad ambiental (por ejemplo, encender ventilación o calefacción localizada).

Puntos a mejorar

  • Dependencia del Hub: Requiere obligatoriamente el hub propietario para conectarse.
  • Tipo de pulsación: Admite únicamente pulsación simple por botón (no reconoce pulsación larga ni doble clic en la integración actual).

¿Dónde comprarlo?

Si te interesa alguna de las opciones comentadas, aquí tienes los enlaces disponibles:

Panel / Pantalla táctil

Otros dispositivos

  • Meross Smart Hub MSH450P — Analizado en el vídeo: Página oficial (cupón: )

Conclusión

El Meross MS700 es una de las soluciones más completas para quienes buscan un control físico versátil, elegante y resistente a la intemperie. Sus 9 botones configurables junto a la compatibilidad con Matter y Home Assistant abren un abanico casi infinito de automatizaciones para cualquier hogar inteligente.


Video relacionado