06-sep: [aspiradora] pack2: vaciado, auto, stats, consumibles, potencia, agua, voz
This commit is contained in:
@@ -811,8 +811,8 @@ def procesar(texto, chat_id):
|
||||
"<b>10.</b> <code>termo on|off|estado</code> — controla el enchufe Tapo\n"
|
||||
" ✏️ Ej: <code>/termo estado</code>\n\n"
|
||||
"━━━ 🏠 DOMÓTICA ━━━\n"
|
||||
"<b>10b.</b> <code>aspiradora estado|start|stop|home|pause|locate</code> — Dreame D10 Plus\n"
|
||||
" ✏️ Ej: <code>/aspiradora estado</code>\n\n"
|
||||
"<b>10b.</b> <code>aspiradora ...</code> — Dreame D10 Plus\n"
|
||||
" ✏️ Ej: <code>/aspiradora estado</code>, <code>/aspiradora vaciar</code>, <code>/aspiradora stats</code>, <code>/aspiradora potencia 3</code>, <code>/aspiradora agua 2</code>, <code>/aspiradora voz</code>\n\n"
|
||||
"━━━ 📺 TV ━━━\n"
|
||||
"<b>11.</b> <code>tv <mensaje></code> — mensaje rápido a la tele\n"
|
||||
" ✏️ Ej: <code>/tv la cena está lista</code>\n"
|
||||
@@ -1028,11 +1028,18 @@ def procesar_novedades(chat_id):
|
||||
|
||||
|
||||
def procesar_aspiradora(argumento, chat_id):
|
||||
"""Comandos de la Dreame D10 Plus: estado|start|stop|home|pause|locate."""
|
||||
accion = (argumento or "estado").lower().strip()
|
||||
if accion not in ("estado", "start", "stop", "home", "pause", "locate"):
|
||||
enviar("Uso: <code>/aspiradora estado|start|stop|home|pause|locate</code>.",
|
||||
chat_id)
|
||||
"""Dreame D10 Plus: estado|start|stop|home|pause|locate|vaciar|
|
||||
auto on|off|stats|consumibles|potencia 0-3|agua 1-3|voz [id]."""
|
||||
partes = (argumento or "estado").lower().strip().split(None, 1)
|
||||
accion = partes[0]
|
||||
arg = partes[1].strip() if len(partes) > 1 else ""
|
||||
validas = ("estado", "start", "stop", "home", "pause", "locate",
|
||||
"vaciar", "auto", "stats", "consumibles", "potencia",
|
||||
"agua", "voz")
|
||||
if accion not in validas:
|
||||
enviar("Uso: <code>/aspiradora estado|start|stop|home|pause|locate|"
|
||||
"vaciar|auto on|off|stats|consumibles|potencia 0-3|agua 1-3|"
|
||||
"voz [id]</code>.", chat_id)
|
||||
return
|
||||
try:
|
||||
import aspiradora
|
||||
@@ -1043,6 +1050,14 @@ def procesar_aspiradora(argumento, chat_id):
|
||||
try:
|
||||
if accion == "estado":
|
||||
enviar(aspiradora.estado(), chat_id)
|
||||
elif accion == "stats":
|
||||
enviar(aspiradora.stats(), chat_id)
|
||||
elif accion == "consumibles":
|
||||
enviar(aspiradora.consumibles(), chat_id)
|
||||
elif accion == "auto" and not arg:
|
||||
enviar(aspiradora.auto_estado(), chat_id)
|
||||
elif accion == "voz" and not arg:
|
||||
enviar(aspiradora.voz_estado(), chat_id)
|
||||
else:
|
||||
vac = aspiradora.conectar()
|
||||
if accion == "start":
|
||||
@@ -1055,12 +1070,44 @@ def procesar_aspiradora(argumento, chat_id):
|
||||
vac.home()
|
||||
enviar("🏠 Volviendo a la base.", chat_id)
|
||||
elif accion == "pause":
|
||||
vac.pause()
|
||||
vac.call_action("pause")
|
||||
enviar("⏸️ Pausada.", chat_id)
|
||||
elif accion == "locate":
|
||||
vac.play_sound()
|
||||
vac.call_action("play_sound")
|
||||
enviar("🔊 Emitiendo sonido de localización.", chat_id)
|
||||
log(f"ASPIRADORA {accion} ok")
|
||||
elif accion == "vaciar":
|
||||
vac.call_action("start_collect")
|
||||
enviar("🗑️ Vaciando en la base.", chat_id)
|
||||
elif accion == "auto":
|
||||
if arg in ("on", "1"):
|
||||
vac.set_property_by(15, 1, 1)
|
||||
enviar("🗑️ Vaciado automático <b>activado</b>.", chat_id)
|
||||
else:
|
||||
vac.set_property_by(15, 1, 0)
|
||||
enviar("🗑️ Vaciado automático <b>desactivado</b>.",
|
||||
chat_id)
|
||||
elif accion == "potencia":
|
||||
if arg.isdigit() and int(arg) in aspiradora.MODOS:
|
||||
vac.set_property_by(4, 4, int(arg))
|
||||
enviar(f"⚡ Potencia: "
|
||||
f"<b>{aspiradora.MODOS[int(arg)]}</b>.", chat_id)
|
||||
else:
|
||||
enviar("Uso: <code>/aspiradora potencia 0-3</code> "
|
||||
"(0 silencioso, 1 estándar, 2 medio, 3 fuerte).",
|
||||
chat_id)
|
||||
elif accion == "agua":
|
||||
if arg.isdigit() and int(arg) in aspiradora.AGUAS:
|
||||
vac.set_property_by(4, 5, int(arg))
|
||||
enviar(f"💧 Agua: <b>{aspiradora.AGUAS[int(arg)]}</b>.",
|
||||
chat_id)
|
||||
else:
|
||||
enviar("Uso: <code>/aspiradora agua 1-3</code> "
|
||||
"(1 bajo, 2 medio, 3 alto).", chat_id)
|
||||
elif accion == "voz":
|
||||
vac.set_voice(arg)
|
||||
enviar(f"🔊 Voz cambiada a <b>{arg}</b> "
|
||||
f"(si el pack existe).", chat_id)
|
||||
log(f"ASPIRADORA {accion} {arg} ok")
|
||||
except Exception as e:
|
||||
log(f"aspiradora error: {e}")
|
||||
enviar(f"❌ Error con la aspiradora: {e}", chat_id)
|
||||
|
||||
Reference in New Issue
Block a user