#!/bin/bash
. /home/jesus/.hass
. /home/jesus/.autocompose/bin/activate

# Ruta al archivo donde se almacenará la salida del comando w
OUTPUT_FILE="/home/jesus/salida_w.txt"

# Comprobar si el archivo de salida existe
if [ ! -f "$OUTPUT_FILE" ]; then
    touch "$OUTPUT_FILE"
fi

# 1. Obtención y limpieza de datos
# Guardamos la salida raw para el backup
w > /tmp/salida_w_tmp.txt

# Procesamos para obtener solo usuarios (quitando cabecera)
# Nota: La opción -h en w quita la cabecera en muchos Linux, pero mantenemos tu awk por compatibilidad
awk 'NR>1 { print $1, $3, $4 }' /tmp/salida_w_tmp.txt > /tmp/usuarios_tmp.txt

# 2. Contar usuarios y aplicar la lógica "Resta 1"
# Contamos líneas y limpiamos espacios
RAW_COUNT=$(wc -l < /tmp/salida_w_tmp.txt | tr -cd '0-9')

# Lógica matemática: Si es mayor que 0, restamos 1. Si no, se queda en 0.
if [ "$RAW_COUNT" -gt 0 ]; then
    FINAL_COUNT=$((RAW_COUNT - 2))
else
    FINAL_COUNT=0
fi

# 3. Enviar a Home Assistant (usando el número calculado)
# Ya no hace falta limpiar espacios aquí, FINAL_COUNT es un número puro generado por bash
hass-cli -x service call input_number.set_value --arguments "entity_id=input_number.usuarios_conectados_a_omvnas,value=$FINAL_COUNT"

# 4. Comprobación de cambios (lógica original intacta)
if ! cmp -s "$OUTPUT_FILE" /tmp/usuarios_tmp.txt; then
    echo "¡Se ha detectado un cambio en la lista de usuarios conectados!"
    
    # Backup con fecha
    FECHA=$(date +%Y-%m-%d-%H-%M-%S)
    cp /tmp/usuarios_tmp.txt "${OUTPUT_FILE}_${FECHA}"
    cp /tmp/salida_w_tmp.txt "${OUTPUT_FILE}_w_${FECHA}" 

    # Actualizar archivo de referencia
    cp /tmp/usuarios_tmp.txt "$OUTPUT_FILE"

    # Avisar a Alexas (solo si hay usuarios reales, opcionalmente podrías poner un if aquí también)
    # El & al final hace que se ejecute en segundo plano para no bloquear el script
    hass-cli service call script.message_to_all_alexas &
fi

# Limpieza final
rm /tmp/salida_w_tmp.txt /tmp/usuarios_tmp.txt
deactivate