Integración externa - Mammotion

Gracias Chris75 por las pruebas y las capturas
Correcciones en la 1.1.2

1. El mapa que desaparece y luego vuelve

El widget Cámara de Gladys toma cada nuevo valor del dispositivo para la imagen.
El mapa estaba en el dispositivo cortacésped: con cada nuevo valor (batería, estado, avance…), la imagen era reemplazada por este valor, por lo que no había mapa hasta la siguiente imagen.
El mapa ahora es un dispositivo aparte: « Luba-VPMBS8RA – Mapa ».

2. « Sin imagen » de vez en cuando

Gladys ya no muestra una imagen de más de una hora.
La cortadora en la base, nada se mueve, por lo que no hay nueva imagen: después de una hora, el widget estaba vacío.
La imagen ahora se envía al menos cada 45 minutos.

3. « Volver a la base » después de detener el corte

Cuando apagas Corte, Gladys pone la cortadora en pausa. Pero la integración esperaba a que la cortadora confirmara la pausa.
Si presionabas Volver a la base justo después, creía que la cortadora aún estaba cortando: simple retorno, sin Stop. La tarea permanecía en pausa.
Ahora la pausa se tiene en cuenta de inmediato: Volver a la base envía Stop y luego Retorno, como la aplicación.
Y si la cortadora ya está en la base con una tarea en pausa, Volver a la base envía solo Stop.
Si vuelve a ocurrir, ¿puedes enviarme el registro? Una nueva línea muestra lo que Gladys ha enviado, por ejemplo: dock = 1 -> stopAndDock (work mode 19).

4. Orden de las zonas

Las zonas ahora se cortan en el orden en que enciendes los interruptores, como en la aplicación.
Para cambiar el orden: apagar las zonas y luego encenderlas en el orden deseado.
El orden se mantiene incluso después de un reinicio de la integración.
En una escena: encender los interruptores « Zona a cortar – … » en el orden deseado, luego Corte.

Después de la actualización

  • Pestaña Descubrimiento → Actualizar en la cortadora (el antiguo mapa se elimina de la cortadora).
  • Siempre en Descubrimiento, añadir el nuevo dispositivo « Luba-VPMBS8RA – Mapa ».
  • En el tablero, en el widget Cámara, elegir este nuevo dispositivo en lugar de la cortadora.

@cicoub13 para información: el widget Cámara (updateDeviceStateWebsocket en Camera.jsx) toma cualquier nuevo estado del dispositivo para la imagen, sin importar la función. Una cámara que tiene otras funciones (batería, estado…) pierde por lo tanto su imagen con cada nuevo valor. Un filtro en la función camera/image solucionaría esto.

V 1.1.2

  • el dispositivo « imagen de las zonas » se muestra correctamente y se actualiza correctamente
  • el orden de las zonas funciona
  • sin embargo, el « regreso a la base » no envía el STOP
    Hay que ir a la aplicación mammotion para detener la tarea
    LOG
[2026-10-06T13:55:49.275Z] [INFO] [mammotion] Enviando "start" a Luba-VPMBS8RA
[2026-10-06T13:55:53.299Z] [INFO] [mammotion-mqtt] Luba-VPMBS8RA: configuración de ruta vista {"subCmd":2,"edgeMode":0,"knifeHeight":60,"channelWidth":27,"ultraWave":0,"channelMode":0,"toward":69,"speed":0.6,"zones":1,"reserved":[11,10,10,10,11,18,20,40],"towardMode":1,"towardIncludedAngle":0}
[2026-10-06T13:56:40.345Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:dock = 1
[2026-10-06T13:56:40.345Z] [INFO] Luba-VPMBS8RA: dock = 1 -> dock (modo de trabajo 13)
[2026-10-06T13:56:40.345Z] [INFO] [mammotion] Enviando "dock" a Luba-VPMBS8RA
[2026-10-06T13:59:08.789Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:dock = 0
[2026-10-06T13:59:08.789Z] [INFO] Luba-VPMBS8RA: dock = 0 -> cancelDock (modo de trabajo 14)
[2026-10-06T13:59:08.789Z] [INFO] [mammotion] Enviando "cancelDock" a Luba-VPMBS8RA
[2026-10-06T13:59:21.459Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-06T13:59:21.459Z] [INFO] Luba-VPMBS8RA: refresh = 1 -> refresh (modo de trabajo 19)

Gracias por la devolución y el registro, muestra bien el problema :+1:

En tu prueba, presionaste Volver a la base durante el corte, sin pausa antes (dock = 1 -> dock (modo de trabajo 13)). La corrección de la 1.1.2 solo cubría el caso «corte en pausa». Durante el corte, Gladys enviaba simplemente un Volver, y la cortadora mantenía la tarea en pausa.

En la próxima versión, Volver a la base enviará Detener luego Volver tan pronto como una tarea esté en progreso, ya sea cortando o en pausa. En el registro, deberías ver: dock = 1 -> stopAndDock (modo de trabajo 13).

Nota: Volver a la base siempre termina la tarea. No la reanuda después de la recarga.

¡Ups! Creo que no me expliqué bien y nos malentendimos, porque es más complicado.

Así es como funciona la aplicación mammotion:

Luego, si se presiona « pausa », se muestran los botones (caso 1) « recarga » y (caso 2) « detener » y « reanudar el corte »

Caso 1 >> si se presiona el botón 1 « recarga », el robot regresa a la base para recargarse y muestra los botones « detener » (cancelar el corte) y « reanudar el corte »


Caso 2 >> si se presiona el botón 2 « detener », el robot detiene el corte pero se queda en su lugar. Luego hay que presionar el botón « recarga » para que regrese a la base y se recargue

¡Mucha suerte, Claude!

¡Gracias, está claro! La próxima versión sigue la aplicación:

Volver a la base = « Recarga »: el cortacésped vuelve, la tarea se pausa, Tonte la reanuda.
Nuevo botón Detener la tarea = « Detener »: la tarea se completa, el cortacésped se queda en su lugar. Volver a la base lo devuelve luego.

Después de la actualización: Descubrimiento → Actualizar en el cortacésped para ver el nuevo botón.

Disponible en 1.1.4

Corrección en curso, gracias fix: only display the image feature string states in the camera widget by cicoub13 · Pull Request #3173 · GladysAssistant/Gladys · GitHub

Así está perfecto para mí: todo funciona correctamente y me viene perfecto

Gracias