[
 {
  "id": "z2m-zha-dongle",
  "titulo": "Zigbee2MQTT y ZHA se pelean por el mismo dongle Sonoff",
  "categoria": "homeassistant",
  "tags": [
   "zigbee",
   "zigbee2mqtt",
   "z2m",
   "zha",
   "sonoff",
   "dongle",
   "coordinador",
   "home assistant",
   "docker"
  ],
  "sinonimos": [
   "zigbee no funciona",
   "dispositivos zigbee no responden",
   "network settings don't match backup",
   "coordinador ocupado"
  ],
  "nivel": "intermedio",
  "confianza": "verificado",
  "actualizado": "2026-10",
  "problema": "Tras reiniciar la Raspberry, los dispositivos Zigbee dejan de responder y ZHA muestra el error «network settings don't match backup».",
  "diagnostico": [
   "Zigbee2MQTT (contenedor con restart=always/unless-stopped) arranca antes que ZHA y toma el dongle; los dos escriben configuración distinta en el coordinador.",
   "El backup de red de ZHA ya no coincide con lo que hay en el dongle.",
   "Puerto serie /dev/ttyUSB* compartido por dos integraciones."
  ],
  "solucion": [
   "Decide qué stack usas (en este caso ZHA) y para el otro: <code>docker stop zigbee2mqtt</code>.",
   "Evita que vuelva al reiniciar: <code>docker update --restart=no zigbee2mqtt</code>.",
   "En Home Assistant, reconfigura ZHA y elige restaurar el backup automático de red de ZHA.",
   "Reinicia la integración ZHA y comprueba que los dispositivos vuelven a reportar."
  ],
  "requisitos": {
   "hardware": [
    "Dongle Zigbee Sonoff (ZBDongle-P/E)",
    "Raspberry Pi o servidor"
   ],
   "software": [
    "Home Assistant con ZHA",
    "Docker"
   ]
  },
  "compatibilidad": [
   "Home Assistant Container 2026.x",
   "Sonoff ZBDongle"
  ],
  "verificacion": "Probado en un servidor doméstico real con Raspberry Pi 5: tras restaurar el backup los dispositivos volvieron a funcionar y el reinicio ya no reproduce el fallo.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración ZHA",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial"
   },
   {
    "titulo": "Docker — docker update",
    "url": "https://docs.docker.com/reference/cli/docker/container/update/",
    "tipo": "oficial"
   }
  ],
  "sub": "zigbee",
  "saberMas": [
   {
    "fuente": "Domótica Compatible (podcast)",
    "titulo": "Zigbee2MQTT Nunca mais!",
    "url": "https://sahuquillo.org/podcast/zigbee2mqtt-nunca-mais/",
    "fecha": "2025-04-04",
    "nota": "Un error de configuración en Zigbee2MQTT y la migración a ZHA."
   },
   {
    "fuente": "Jonatan Castro (YouTube)",
    "titulo": "Como Instalar y configurar ZHA y Zigbee2MQTT sin estrés + cómo migrar y cambiar de coordinador (Jonatan Castro, YouTube)",
    "url": "https://www.youtube.com/watch?v=750cCXFIfmg",
    "nota": "ZHA o Zigbee2MQTT, y cómo migrar o cambiar de coordinador."
   }
  ],
  "publicado": "2026-10-07"
 },
 {
  "id": "wakeword-tele",
  "titulo": "El asistente de voz de Home Assistant se activa solo con la tele",
  "categoria": "homeassistant",
  "tags": [
   "voz",
   "assist",
   "openwakeword",
   "wake word",
   "falsos positivos",
   "tele",
   "home assistant"
  ],
  "sinonimos": [
   "se despierta solo",
   "asistente salta solo",
   "se activa sin decir nada"
  ],
  "nivel": "basico",
  "confianza": "verificado",
  "actualizado": "2026-10",
  "problema": "El satélite de voz detecta la palabra de activación sin que nadie la diga, sobre todo con la televisión encendida.",
  "diagnostico": [
   "Umbral de detección de openWakeWord demasiado bajo.",
   "Varias wake words activas a la vez: más probabilidad de falso positivo.",
   "Micrófono cerca del altavoz de la tele."
  ],
  "solucion": [
   "Sube el umbral (threshold) de la wake word; prueba en pasos pequeños (p. ej. 0,5 → 0,7).",
   "Deja una sola palabra de activación y quita las extra.",
   "Aleja el micrófono de la tele.",
   "Opcional: «ducking», bajar el volumen de la tele mientras el asistente escucha."
  ],
  "requisitos": {
   "hardware": [
    "Satélite de voz (Pi, ESP32...)"
   ],
   "software": [
    "Home Assistant Assist",
    "openWakeWord"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x",
   "openWakeWord"
  ],
  "verificacion": "Probado en casa: con umbral más alto y una sola wake word desaparecieron las activaciones con la tele.",
  "fuentes": [
   {
    "titulo": "openWakeWord (GitHub)",
    "url": "https://github.com/dscripka/openWakeWord",
    "tipo": "github"
   },
   {
    "titulo": "Home Assistant — Voice control",
    "url": "https://www.home-assistant.io/voice_control/",
    "tipo": "oficial"
   }
  ],
  "sub": "voz",
  "publicado": "2026-10-07"
 },
 {
  "id": "conversacion-bucle",
  "titulo": "Conversación continua en bucle con la tele (Linux Voice Assistant)",
  "categoria": "homeassistant",
  "tags": [
   "voz",
   "continue_conversation",
   "conversación continua",
   "bucle",
   "linux voice assistant",
   "llm",
   "tele"
  ],
  "sinonimos": [
   "no para de hablar",
   "responde a la tele",
   "asistente en bucle"
  ],
  "nivel": "intermedio",
  "confianza": "experimental",
  "actualizado": "2026-10",
  "problema": "Con la conversación continua activada, el asistente termina sus respuestas con una pregunta, vuelve a escuchar, oye la tele y responde sin fin.",
  "diagnostico": [
   "La conversación continua reabre el micrófono cuando la respuesta acaba en pregunta.",
   "El audio de la tele se transcribe como si fuera una orden.",
   "El prompt del LLM le invita a ofrecer más ayuda con preguntas."
  ],
  "solucion": [
   "Corte inmediato: parar el servicio del satélite.",
   "Limitar la conversación seguida a 2 turnos.",
   "Descartar transcripciones muy largas (parecen tele, no una orden).",
   "Ajustar el prompt para que no termine en pregunta salvo que haga falta."
  ],
  "requisitos": {
   "hardware": [
    "Satélite de voz"
   ],
   "software": [
    "Linux Voice Assistant",
    "Home Assistant con agente LLM"
   ]
  },
  "compatibilidad": [
   "Linux Voice Assistant (2026)"
  ],
  "verificacion": "En curso: el problema está reproducido y el corte funciona; las mitigaciones aún no están probadas.",
  "fuentes": [
   {
    "titulo": "Linux Voice Assistant (GitHub)",
    "url": "https://github.com/OHF-Voice/linux-voice-assistant",
    "tipo": "github"
   }
  ],
  "sub": "voz",
  "publicado": "2026-10-07"
 },
 {
  "id": "wyoming-continua",
  "titulo": "Wyoming satellite no soporta conversación continua",
  "categoria": "homeassistant",
  "tags": [
   "wyoming",
   "satellite",
   "conversación continua",
   "linux voice assistant",
   "esphome",
   "voz"
  ],
  "sinonimos": [
   "no sigue la conversación",
   "hay que repetir la wake word"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Con wyoming-satellite hay que decir la palabra de activación en cada frase: no hay conversación seguida.",
  "diagnostico": [
   "wyoming-satellite está obsoleto y no implementa la conversación continua.",
   "Su sucesor recomendado es Linux Voice Assistant (protocolo ESPHome)."
  ],
  "solucion": [
   "Para y desactiva wyoming-satellite.",
   "Instala Linux Voice Assistant en el mismo equipo.",
   "Añádelo en Home Assistant como dispositivo ESPHome.",
   "Prueba una pregunta y comprueba que puedes responder sin repetir la wake word."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi con micro y altavoz"
   ],
   "software": [
    "Linux Voice Assistant",
    "Home Assistant (integración ESPHome)"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x"
  ],
  "verificacion": "Migración hecha en casa: la conversación continua funciona con Linux Voice Assistant.",
  "fuentes": [
   {
    "titulo": "wyoming-satellite (GitHub)",
    "url": "https://github.com/rhasspy/wyoming-satellite",
    "tipo": "github"
   },
   {
    "titulo": "Linux Voice Assistant (GitHub)",
    "url": "https://github.com/OHF-Voice/linux-voice-assistant",
    "tipo": "github"
   }
  ],
  "sub": "voz",
  "publicado": "2026-10-07"
 },
 {
  "id": "ssh-publickey",
  "titulo": "SSH «Permission denied (publickey)» desde un Mac nuevo",
  "categoria": "redes",
  "tags": [
   "ssh",
   "clave",
   "ed25519",
   "authorized_keys",
   "mac",
   "permisos",
   "chmod"
  ],
  "sinonimos": [
   "no puedo entrar por ssh",
   "bad owner or permissions",
   "ssh rechaza la clave"
  ],
  "nivel": "basico",
  "confianza": "verificado",
  "actualizado": "2026-10",
  "problema": "Desde un ordenador nuevo, SSH al servidor falla con «Permission denied (publickey)» o «Bad owner or permissions on ~/.ssh/config».",
  "diagnostico": [
   "El equipo nuevo no tiene clave o su clave pública no está en <code>authorized_keys</code> del servidor.",
   "El archivo <code>~/.ssh/config</code> tiene permisos demasiado abiertos."
  ],
  "solucion": [
   "Crea una clave: <code>ssh-keygen -t ed25519</code>.",
   "Copia la pública al servidor: <code>ssh-copy-id USER@IP_LOCAL</code> (o pégala en <code>~/.ssh/authorized_keys</code>).",
   "Corrige permisos: <code>chmod 600 ~/.ssh/config</code> y <code>chmod 700 ~/.ssh</code>.",
   "Prueba con <code>ssh -v USER@IP_LOCAL</code> para ver qué clave ofrece."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "OpenSSH"
   ]
  },
  "compatibilidad": [
   "macOS",
   "Linux (Debian/Raspberry Pi OS)"
  ],
  "verificacion": "Probado en casa al configurar un Mac nuevo contra la Raspberry Pi.",
  "fuentes": [
   {
    "titulo": "ssh-keygen(1) — OpenBSD manual",
    "url": "https://man.openbsd.org/ssh-keygen",
    "tipo": "oficial"
   },
   {
    "titulo": "ssh_config(5) — permisos",
    "url": "https://man.openbsd.org/ssh_config",
    "tipo": "oficial"
   }
  ],
  "sub": "ssh",
  "saberMas": [
   {
    "fuente": "Pelado Nerd (YouTube)",
    "titulo": "Aprendiendo SSH en 8 minutos - Parte 1 (Pelado Nerd, YouTube)",
    "url": "https://www.youtube.com/watch?v=RMS5zBYQIqA",
    "fecha": "2019-12-19",
    "nota": "Claves con ssh-keygen, authorized_keys y el aviso de clave del servidor."
   }
  ],
  "publicado": "2026-10-07"
 },
 {
  "id": "pi5-nvme",
  "titulo": "Mi Raspberry Pi 5 no detecta el SSD NVMe",
  "categoria": "raspberrypi",
  "tags": [
   "raspberry pi 5",
   "nvme",
   "ssd",
   "pcie",
   "m.2",
   "hat",
   "firmware",
   "eeprom",
   "arranque"
  ],
  "sinonimos": [
   "no detecta ssd",
   "no ve el disco",
   "nvme no aparece",
   "no arranca desde ssd"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "El SSD NVMe conectado por M.2 a la Pi 5 no aparece (<code>ls /dev/nvme*</code> vacío) o la Pi no arranca desde él.",
  "diagnostico": [
   "Adaptador que no es HAT+: el conector PCIe no se activa solo.",
   "Cable plano FPC mal colocado o dañado.",
   "Enlace PCIe inestable (dmesg muestra «link down»).",
   "El bootloader no tiene NVMe en el orden de arranque."
  ],
  "solucion": [
   "Arranca desde la SD y comprueba: <code>ls -l /dev/nvme*</code>, <code>lspci</code> y <code>dmesg | grep -i pcie</code>.",
   "Revisa el cable FPC en ambos extremos.",
   "Si no es HAT+, añade <code>dtparam=pciex1</code> en <code>/boot/firmware/config.txt</code> y reinicia.",
   "Si el enlace falla, fuerza Gen1: <code>dtparam=pciex1_gen=1</code> (la doc oficial solo garantiza Gen2).",
   "Para arrancar del SSD: <code>sudo rpi-eeprom-config --edit</code>, <code>BOOT_ORDER=0xf416</code> y, si no es HAT+, <code>PCIE_PROBE=1</code>."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi 5",
    "M.2 HAT+ o adaptador PCIe→M.2",
    "SSD NVMe M.2"
   ],
   "software": [
    "Raspberry Pi OS actualizado",
    "EEPROM al día"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi 5",
   "CM5 IO Board"
  ],
  "verificacion": "Basado en la documentación oficial de Raspberry Pi.",
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Conector PCIe",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-connector-for-pcie",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Arranque desde NVMe",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#nvme-ssd-boot",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — M.2 HAT+",
    "url": "https://www.raspberrypi.com/documentation/accessories/m2-hat-plus.html",
    "tipo": "oficial"
   }
  ],
  "sub": "arranque",
  "publicado": "2026-10-07",
  "tienda": {
   "nombre": "Waveshare PCIe TO M.2 HAT+ (Raspberry Pi 5)",
   "url": "https://www.waveshare.com/pcie-to-m.2-hat-plus.htm",
   "texto": "tienda oficial de Waveshare · uno de los adaptadores posibles, no lo hemos probado"
  }
 },
 {
  "id": "safari-sw-http",
  "titulo": "Safari no activa el service worker de mi web-app",
  "categoria": "redes",
  "tags": [
   "pwa",
   "service worker",
   "safari",
   "ios",
   "https",
   "offline",
   "web-app"
  ],
  "sinonimos": [
   "no funciona sin conexión",
   "pwa offline no va",
   "service worker no registra"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "La web-app instalada en el iPhone no funciona sin conexión: el service worker no se registra.",
  "diagnostico": [
   "Los service workers solo funcionan en «contextos seguros»: HTTPS o localhost. Por HTTP con IP no se activan."
  ],
  "solucion": [
   "Sirve la web por HTTPS (p. ej. certificado de Tailscale con <code>tailscale cert</code> o un proxy con TLS).",
   "Vuelve a añadirla a la pantalla de inicio desde la URL https."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Servidor web con HTTPS"
   ]
  },
  "compatibilidad": [
   "Safari iOS / macOS",
   "Chrome, Firefox (misma regla)"
  ],
  "verificacion": "Comportamiento documentado por MDN.",
  "fuentes": [
   {
    "titulo": "MDN — Service Worker API",
    "url": "https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API",
    "tipo": "oficial"
   },
   {
    "titulo": "MDN — Secure contexts",
    "url": "https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts",
    "tipo": "oficial"
   }
  ],
  "sub": "web",
  "publicado": "2026-10-07"
 },
 {
  "id": "pi-bajo-voltaje",
  "titulo": "Aviso de bajo voltaje (rayo) o Raspberry Pi que se ralentiza",
  "categoria": "raspberrypi",
  "tags": [
   "raspberry pi",
   "voltaje",
   "undervoltage",
   "throttling",
   "vcgencmd",
   "get_throttled",
   "fuente",
   "temperatura"
  ],
  "sinonimos": [
   "rayo amarillo",
   "low voltage",
   "va lenta",
   "se reinicia sola"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "La Pi muestra el aviso de bajo voltaje, va lenta o se reinicia sin motivo aparente.",
  "diagnostico": [
   "Fuente de alimentación insuficiente o cable USB-C de mala calidad (caída de tensión).",
   "Temperatura alta: el SoC limita la frecuencia (límite térmico suave).",
   "Periféricos USB que consumen demasiado."
  ],
  "solucion": [
   "Ejecuta <code>vcgencmd get_throttled</code>. <code>0x0</code> = todo bien.",
   "Interpreta los bits: <code>0x1</code> bajo voltaje ahora, <code>0x10000</code> bajo voltaje ocurrido desde el arranque; <code>0x4</code>/<code>0x40000</code> limitación de frecuencia; <code>0x8</code>/<code>0x80000</code> límite de temperatura.",
   "Mira la temperatura con <code>vcgencmd measure_temp</code>.",
   "Si hay bajo voltaje: usa la fuente oficial (27 W en la Pi 5) y un cable corto y decente; alimenta discos USB con un hub con alimentación propia.",
   "Si es temperatura: disipador o ventilador activo y buena ventilación."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi",
    "Fuente de alimentación adecuada"
   ],
   "software": [
    "Raspberry Pi OS (vcgencmd)"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi 4",
   "Raspberry Pi 5"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — vcgencmd get_throttled",
    "url": "https://www.raspberrypi.com/documentation/computers/os.html#get_throttled",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Fuente de alimentación",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#power-supply",
    "tipo": "oficial"
   }
  ],
  "sub": "energia",
  "publicado": "2026-10-15"
 },
 {
  "id": "pi5-boot-order",
  "titulo": "Arrancar la Raspberry Pi 5 desde USB o SSD (BOOT_ORDER)",
  "categoria": "raspberrypi",
  "tags": [
   "raspberry pi 5",
   "arranque",
   "boot_order",
   "eeprom",
   "usb",
   "ssd",
   "nvme",
   "rpi-eeprom-config"
  ],
  "sinonimos": [
   "no arranca desde usb",
   "arrancar sin sd",
   "boot desde ssd"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres que la Pi 5 arranque desde un disco USB o un SSD en lugar de la tarjeta SD, pero sigue usando la SD o no arranca.",
  "diagnostico": [
   "El orden de arranque del bootloader (EEPROM) no prioriza el dispositivo que quieres.",
   "EEPROM antigua.",
   "El disco no tiene un sistema arrancable (no se flasheó con Raspberry Pi Imager)."
  ],
  "solucion": [
   "Actualiza: <code>sudo apt update && sudo apt full-upgrade</code> y reinicia (incluye el firmware estable).",
   "Edita la configuración del bootloader: <code>sudo rpi-eeprom-config --edit</code>.",
   "Ajusta <code>BOOT_ORDER</code>: se lee de derecha a izquierda (1 = SD, 4 = USB, 6 = NVMe, f = reintentar). Ej.: <code>0xf41</code> prueba SD y luego USB.",
   "Flashea el disco con Raspberry Pi Imager, quita la SD y reinicia."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi 5",
    "Disco USB o SSD NVMe"
   ],
   "software": [
    "Raspberry Pi OS",
    "rpi-eeprom"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi 5",
   "Raspberry Pi 4"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Configuración del bootloader (BOOT_ORDER)",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — EEPROM de arranque",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-boot-eeprom",
    "tipo": "oficial"
   }
  ],
  "sub": "arranque",
  "publicado": "2026-10-15"
 },
 {
  "id": "ha-tipo-instalacion",
  "titulo": "¿Home Assistant OS o Container? Qué instalar",
  "categoria": "homeassistant",
  "tags": [
   "home assistant",
   "instalación",
   "ha os",
   "container",
   "docker",
   "apps",
   "add-ons",
   "supervisor"
  ],
  "sinonimos": [
   "no me salen los add-ons",
   "no aparecen las apps",
   "qué home assistant instalo"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "No sabes qué tipo de instalación de Home Assistant elegir, o has instalado Container y no encuentras la tienda de apps (antes «add-ons»).",
  "diagnostico": [
   "Home Assistant ofrece dos tipos de instalación: Operating System y Container.",
   "Las apps (add-ons) solo existen en Home Assistant OS; en Container no hay Supervisor."
  ],
  "solucion": [
   "Si quieres lo más sencillo y apps integradas: instala <b>Home Assistant OS</b> (la opción recomendada por el proyecto).",
   "Si ya tienes un servidor con Docker y quieres controlar tú cada servicio: <b>Container</b>.",
   "En Container, cada «app» se monta como otro contenedor tuyo (p. ej. Mosquitto, Zigbee2MQTT) con Docker Compose.",
   "Antes de cambiar de tipo: haz copia de seguridad desde Ajustes → Sistema → Copias de seguridad."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi, mini PC o Home Assistant Green"
   ],
   "software": [
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Installation / About installation types",
    "url": "https://www.home-assistant.io/installation/",
    "tipo": "oficial"
   }
  ],
  "sub": "instalacion",
  "saberMas": [
   {
    "fuente": "Enreta Domotica (YouTube)",
    "titulo": "Cómo Instalar Home Assistant MODO ULTRA FÁCIL ( 6 opciones ) - Geekom A8 Max (Enreta Domotica, YouTube)",
    "url": "https://www.youtube.com/watch?v=HLP7zcQSk4U",
    "nota": "Seis formas de instalar Home Assistant, paso a paso."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "esp32-brownout",
  "titulo": "ESP32: «Brownout detector was triggered» y se reinicia",
  "categoria": "esp",
  "tags": [
   "esp32",
   "brownout",
   "alimentación",
   "reinicio",
   "wifi",
   "consumo"
  ],
  "sinonimos": [
   "se reinicia en bucle",
   "brownout",
   "se resetea al conectar wifi"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "El ESP32 imprime «Brownout detector was triggered» por el puerto serie y se reinicia, a menudo justo al activar el Wi-Fi.",
  "diagnostico": [
   "La tensión de alimentación cae por debajo del umbral: el chip se resetea a propósito.",
   "Cable USB largo/fino, puerto USB débil o regulador insuficiente.",
   "Picos de consumo del Wi-Fi o de periféricos (relés, LEDs, servos) en la misma alimentación."
  ],
  "solucion": [
   "Prueba otro cable USB corto y otro puerto o un cargador de calidad.",
   "Alimenta motores, relés o tiras LED con una fuente aparte (masa común).",
   "Añade un condensador de desacoplo cerca de la alimentación de la placa.",
   "No desactives el detector de brownout para «arreglarlo»: solo esconde el problema."
  ],
  "requisitos": {
   "hardware": [
    "ESP32",
    "Fuente/cable USB de calidad"
   ],
   "software": [
    "ESP-IDF, Arduino o ESPHome"
   ]
  },
  "compatibilidad": [
   "ESP32 (familia)"
  ],
  "verificacion": "Basado en la documentación oficial de Espressif sobre el error; los pasos de alimentación son la práctica habitual derivada de ella.",
  "fuentes": [
   {
    "titulo": "ESP-IDF — Fatal Errors: Brownout",
    "url": "https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/fatal-errors.html",
    "tipo": "oficial"
   }
  ],
  "sub": "alimentacion",
  "publicado": "2026-10-15"
 },
 {
  "id": "esp32-wrong-boot-mode",
  "titulo": "ESP32: «Wrong boot mode detected» al flashear",
  "categoria": "esp",
  "tags": [
   "esp32",
   "esptool",
   "flashear",
   "boot",
   "download mode",
   "failed to connect"
  ],
  "sinonimos": [
   "failed to connect to esp32",
   "no flashea",
   "wrong boot mode"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Al subir el firmware, esptool falla con «Failed to connect… Wrong boot mode detected (0xXX)! The chip needs to be in download mode».",
  "diagnostico": [
   "La comunicación serie funciona, pero la placa no entra sola en modo descarga.",
   "Circuito de auto-reset ausente o que no funciona (habitual en placas baratas o con ciertos adaptadores USB-serie)."
  ],
  "solucion": [
   "Entra en modo descarga a mano: mantén pulsado <b>BOOT</b> (GPIO0 a masa), pulsa y suelta <b>EN/RST</b>, y suelta BOOT.",
   "Lanza la subida justo después.",
   "Si se repite siempre, revisa el circuito de auto-reset de la placa (DTR/RTS)."
  ],
  "requisitos": {
   "hardware": [
    "ESP32 con botones BOOT y EN",
    "Cable USB de datos"
   ],
   "software": [
    "esptool (Arduino IDE, PlatformIO, ESPHome)"
   ]
  },
  "compatibilidad": [
   "ESP32 (familia)"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "esptool — Troubleshooting (Common errors)",
    "url": "https://docs.espressif.com/projects/esptool/en/latest/esp32/troubleshooting.html",
    "tipo": "oficial"
   }
  ],
  "sub": "flasheo",
  "publicado": "2026-10-15"
 },
 {
  "id": "docker-permission-socket",
  "titulo": "Docker: «permission denied … docker.sock» sin sudo",
  "categoria": "linux",
  "tags": [
   "docker",
   "permission denied",
   "docker.sock",
   "grupo docker",
   "usermod",
   "sudo"
  ],
  "sinonimos": [
   "docker sin sudo",
   "got permission denied while trying to connect to the docker daemon socket"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Cualquier comando <code>docker</code> sin sudo falla con «permission denied while trying to connect to the Docker daemon socket».",
  "diagnostico": [
   "Tu usuario no pertenece al grupo <code>docker</code>.",
   "Lo añadiste pero no has cerrado sesión, así que el grupo aún no se aplica."
  ],
  "solucion": [
   "Crea el grupo (si no existe): <code>sudo groupadd docker</code>.",
   "Añádete: <code>sudo usermod -aG docker $USER</code>.",
   "Cierra sesión y vuelve a entrar (o <code>newgrp docker</code>).",
   "Comprueba: <code>docker run hello-world</code>.",
   "Ojo: el grupo docker da privilegios equivalentes a root."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Docker Engine"
   ]
  },
  "compatibilidad": [
   "Linux (Debian/Ubuntu/Raspberry Pi OS)"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Documentación de Docker — Pasos tras instalar en Linux",
    "url": "https://docs.docker.com/engine/install/linux-postinstall/",
    "tipo": "oficial"
   }
  ],
  "sub": "docker",
  "publicado": "2026-10-15"
 },
 {
  "id": "docker-disco-lleno",
  "titulo": "Disco lleno por Docker (imágenes, caché y logs)",
  "categoria": "linux",
  "tags": [
   "docker",
   "disco lleno",
   "prune",
   "logs",
   "json-file",
   "max-size",
   "espacio"
  ],
  "sinonimos": [
   "no queda espacio",
   "docker ocupa mucho",
   "no space left on device"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "El disco se llena y la culpa es de Docker: imágenes viejas, caché de compilación o logs de contenedores que crecen sin límite.",
  "diagnostico": [
   "Docker no borra objetos sin usar a menos que se lo pidas.",
   "El driver de logs <code>json-file</code> no rota por defecto."
  ],
  "solucion": [
   "Mira qué ocupa: <code>docker system df</code>.",
   "Limpia lo no usado: <code>docker system prune</code> (revisa lo que va a borrar antes de confirmar; con <code>-a</code> borra también imágenes no usadas).",
   "Activa la rotación de logs en <code>/etc/docker/daemon.json</code>: <code>{\"log-driver\":\"json-file\",\"log-opts\":{\"max-size\":\"10m\",\"max-file\":\"3\"}}</code>.",
   "Reinicia Docker; la rotación aplica a contenedores <b>creados</b> después del cambio."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Docker Engine"
   ]
  },
  "compatibilidad": [
   "Linux"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Documentación de Docker — Limpiar objetos de Docker sin usar",
    "url": "https://docs.docker.com/engine/manage-resources/pruning/",
    "tipo": "oficial"
   },
   {
    "titulo": "Documentación de Docker — Driver de registros JSON File",
    "url": "https://docs.docker.com/engine/logging/drivers/json-file/",
    "tipo": "oficial"
   }
  ],
  "sub": "docker",
  "saberMas": [
   {
    "fuente": "atareao (YouTube)",
    "titulo": "759 - He liberado 600 GB de Docker! El comando que NO conoces (atareao, YouTube)",
    "url": "https://www.youtube.com/watch?v=FrxU5xb3h-I",
    "fecha": "2026-01-08",
    "nota": "docker system df y la caché de build."
   },
   {
    "fuente": "atareao (YouTube)",
    "titulo": "672 - Docker lo puede llenar todo (atareao, YouTube)",
    "url": "https://www.youtube.com/watch?v=A4lecxkAXXM",
    "fecha": "2025-02-21",
    "nota": "Mover el directorio de datos de Docker a otro disco."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "docker-restart-policy",
  "titulo": "Un contenedor no arranca solo tras reiniciar",
  "categoria": "linux",
  "tags": [
   "docker",
   "restart",
   "unless-stopped",
   "reinicio",
   "arranque",
   "compose"
  ],
  "sinonimos": [
   "el contenedor no se levanta",
   "tras reiniciar no arranca"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Después de reiniciar el equipo, algunos contenedores siguen parados.",
  "diagnostico": [
   "El contenedor no tiene política de reinicio (por defecto <code>no</code>).",
   "Se paró a mano con <code>unless-stopped</code>: entonces no vuelve tras reiniciar el demonio.",
   "El servicio Docker no arranca con el sistema."
  ],
  "solucion": [
   "Añade la política: <code>docker update --restart unless-stopped NOMBRE</code> o <code>restart: unless-stopped</code> en Compose.",
   "Usa <code>always</code> si quieres que vuelva aunque lo pararas a mano (tras reiniciar el demonio).",
   "Asegura que Docker arranca: <code>sudo systemctl enable docker</code>."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Docker Engine"
   ]
  },
  "compatibilidad": [
   "Linux"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Documentación de Docker — Arrancar contenedores automáticamente",
    "url": "https://docs.docker.com/engine/containers/start-containers-automatically/",
    "tipo": "oficial"
   }
  ],
  "sub": "docker",
  "publicado": "2026-10-15"
 },
 {
  "id": "fstab-nofail",
  "titulo": "Montar un disco USB al arrancar sin que bloquee el arranque",
  "categoria": "linux",
  "tags": [
   "fstab",
   "uuid",
   "nofail",
   "montar",
   "disco usb",
   "arranque"
  ],
  "sinonimos": [
   "el sistema no arranca si quito el disco",
   "montaje automático"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres que un disco externo se monte siempre en el mismo sitio, sin que el sistema se quede colgado al arrancar si el disco no está.",
  "diagnostico": [
   "Montar por <code>/dev/sdX</code>: el nombre puede cambiar entre arranques.",
   "Sin la opción <code>nofail</code>, un disco ausente da error de arranque."
  ],
  "solucion": [
   "Obtén el UUID: <code>lsblk -f</code> o <code>sudo blkid</code>.",
   "Crea el punto de montaje: <code>sudo mkdir -p /mnt/datos</code>.",
   "Añade a <code>/etc/fstab</code>: <code>UUID=xxxx /mnt/datos ext4 defaults,nofail 0 2</code>.",
   "Prueba sin reiniciar: <code>sudo mount -a</code> (si da error, corrígelo antes de reiniciar)."
  ],
  "requisitos": {
   "hardware": [
    "Disco USB"
   ],
   "software": [
    "Linux (util-linux)"
   ]
  },
  "compatibilidad": [
   "Debian, Ubuntu, Raspberry Pi OS"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "fstab(5) — Linux manual page",
    "url": "https://man7.org/linux/man-pages/man5/fstab.5.html",
    "tipo": "oficial"
   }
  ],
  "sub": "disco",
  "publicado": "2026-10-15"
 },
 {
  "id": "ollama-no-gpu",
  "titulo": "Ollama no usa la GPU",
  "categoria": "ia",
  "tags": [
   "ollama",
   "gpu",
   "cuda",
   "nvidia",
   "amd",
   "rocm",
   "vram",
   "llm local"
  ],
  "sinonimos": [
   "ollama va lento",
   "ollama usa cpu",
   "no detecta la gráfica"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Ollama responde muy lento y la gráfica no hace nada: está tirando de CPU.",
  "diagnostico": [
   "La GPU no está soportada (NVIDIA necesita compute capability 5.0 o superior).",
   "Driver demasiado antiguo (NVIDIA 550+, o 570+ para compute capability 5.0–6.2; AMD en Linux necesita ROCm v7).",
   "El modelo no cabe en la VRAM y se reparte entre GPU y CPU."
  ],
  "solucion": [
   "Comprueba si tu tarjeta está en la lista de soportadas de la doc de Ollama.",
   "Actualiza el driver de la GPU a la versión exigida.",
   "Con un modelo cargado, ejecuta <code>ollama ps</code> y mira la columna de procesador (GPU/CPU).",
   "Si no cabe: usa un modelo más pequeño o con más cuantización."
  ],
  "requisitos": {
   "hardware": [
    "GPU NVIDIA/AMD compatible"
   ],
   "software": [
    "Ollama",
    "Driver NVIDIA o ROCm"
   ]
  },
  "compatibilidad": [
   "Ollama (2026)"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Documentación de Ollama — Hardware compatible (GPU)",
    "url": "https://docs.ollama.com/gpu",
    "tipo": "oficial"
   }
  ],
  "sub": "gpu",
  "publicado": "2026-10-15"
 },
 {
  "id": "impresora-primera-capa",
  "titulo": "La primera capa no se pega en la impresora 3D",
  "categoria": "maker",
  "tags": [
   "impresión 3d",
   "primera capa",
   "adherencia",
   "z-offset",
   "cama",
   "isopropílico",
   "pla"
  ],
  "sinonimos": [
   "no se pega a la cama",
   "se despega la pieza",
   "warping primera capa"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "La primera capa no se adhiere a la cama, se arrastra o se despega a mitad de impresión.",
  "diagnostico": [
   "Boquilla demasiado alta (o tan baja que no deja salir plástico).",
   "Superficie de impresión sucia (grasa de los dedos).",
   "Temperatura de cama o primera capa inadecuada para el material."
  ],
  "solucion": [
   "Calibra la altura de la primera capa (Z-offset / «Live Adjust Z» en Prusa).",
   "Limpia la cama con alcohol isopropílico al 90 % sin tocarla después con los dedos.",
   "No compenses la falta de limpieza aplastando más la primera capa.",
   "Revisa las temperaturas recomendadas para tu filamento."
  ],
  "requisitos": {
   "hardware": [
    "Impresora 3D FDM"
   ],
   "software": [
    "Laminador (PrusaSlicer, Cura, OrcaSlicer…)"
   ]
  },
  "compatibilidad": [
   "Impresoras FDM (guía de Prusa)"
  ],
  "verificacion": "Basado en la base de conocimiento oficial de Prusa Research; aplicable a otras FDM.",
  "fuentes": [
   {
    "titulo": "Prusa Knowledge Base — First layer issues",
    "url": "https://help.prusa3d.com/article/first-layer-issues_1804",
    "tipo": "oficial"
   }
  ],
  "sub": "calidad",
  "publicado": "2026-10-15"
 },
 {
  "id": "ssh-host-key-changed",
  "titulo": "SSH: «REMOTE HOST IDENTIFICATION HAS CHANGED» tras reinstalar la Pi",
  "categoria": "redes",
  "tags": [
   "ssh",
   "known_hosts",
   "host key",
   "reinstalar",
   "ssh-keygen"
  ],
  "sinonimos": [
   "warning remote host identification has changed",
   "host key verification failed"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tras reflashear la Raspberry Pi (o cambiar el equipo de esa IP), SSH se niega a conectar con un aviso enorme de que la identidad del host ha cambiado.",
  "diagnostico": [
   "El servidor tiene una clave de host nueva y tu <code>~/.ssh/known_hosts</code> guarda la antigua.",
   "Si NO has reinstalado nada, podría ser un ataque man-in-the-middle: no lo ignores."
  ],
  "solucion": [
   "Confirma que el cambio es esperado (reinstalaste el sistema o cambió el equipo).",
   "Borra la entrada antigua: <code>ssh-keygen -R IP_LOCAL</code>.",
   "Vuelve a conectar y acepta la huella nueva comprobándola si puedes."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "OpenSSH"
   ]
  },
  "compatibilidad": [
   "macOS",
   "Linux",
   "Windows (OpenSSH)"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "ssh-keygen(1) — OpenBSD manual (-R)",
    "url": "https://man.openbsd.org/ssh-keygen",
    "tipo": "oficial"
   }
  ],
  "sub": "ssh",
  "saberMas": [
   {
    "fuente": "Pelado Nerd (YouTube)",
    "titulo": "Aprendiendo SSH en 8 minutos - Parte 1 (Pelado Nerd, YouTube)",
    "url": "https://www.youtube.com/watch?v=RMS5zBYQIqA",
    "fecha": "2019-12-19",
    "nota": "Claves con ssh-keygen, authorized_keys y el aviso de clave del servidor."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "nmcli-ip-fija",
  "titulo": "IP fija en Raspberry Pi OS Bookworm/Trixie con nmcli",
  "categoria": "raspberrypi",
  "tags": [
   "ip fija",
   "ip estática",
   "nmcli",
   "networkmanager",
   "bookworm",
   "dhcpcd",
   "raspberry pi"
  ],
  "sinonimos": [
   "dhcpcd.conf no funciona",
   "poner ip estatica",
   "cambia la ip"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Editas <code>/etc/dhcpcd.conf</code> como dicen las guías antiguas y la IP no cambia.",
  "diagnostico": [
   "Desde Bookworm, Raspberry Pi OS usa NetworkManager; dhcpcd ya no gestiona la red."
  ],
  "solucion": [
   "Lista conexiones: <code>nmcli con show</code>.",
   "Configura (ajusta nombre y red): <code>sudo nmcli con mod \"NOMBRE\" ipv4.method manual ipv4.addresses IP_LOCAL/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1</code>.",
   "Aplica: <code>sudo nmcli con up \"NOMBRE\"</code> (si vas por SSH, perderás la sesión si la IP cambia).",
   "Alternativa sin tocar la Pi: reserva DHCP en el router."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "NetworkManager (nmcli)"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi OS Bookworm",
   "Raspberry Pi OS Trixie"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "nmcli — NetworkManager reference",
    "url": "https://networkmanager.dev/docs/api/latest/nmcli.html",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Red",
    "url": "https://www.raspberrypi.com/documentation/computers/configuration.html#networking",
    "tipo": "oficial"
   }
  ],
  "sub": "red-acceso",
  "publicado": "2026-10-15"
 },
 {
  "id": "journald-logs-grandes",
  "titulo": "Los logs de systemd (journal) se comen el disco",
  "categoria": "linux",
  "tags": [
   "journalctl",
   "journald",
   "logs",
   "disco lleno",
   "SystemMaxUse",
   "vacuum"
  ],
  "sinonimos": [
   "var log journal ocupa mucho",
   "logs gigantes"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "<code>/var/log/journal</code> ocupa varios GB y la tarjeta o el disco se llena.",
  "diagnostico": [
   "El journal persistente crece hasta su límite por defecto (un porcentaje del sistema de ficheros)."
  ],
  "solucion": [
   "Mira cuánto ocupa: <code>journalctl --disk-usage</code>.",
   "Libera ya: <code>sudo journalctl --vacuum-size=200M</code>.",
   "Pon un límite fijo en <code>/etc/systemd/journald.conf</code>: <code>SystemMaxUse=200M</code>.",
   "Reinicia el servicio: <code>sudo systemctl restart systemd-journald</code>."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "systemd-journald"
   ]
  },
  "compatibilidad": [
   "Debian, Ubuntu, Raspberry Pi OS"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "journald.conf(5) — Linux manual page",
    "url": "https://man7.org/linux/man-pages/man5/journald.conf.5.html",
    "tipo": "oficial"
   }
  ],
  "sub": "systemd",
  "publicado": "2026-10-15"
 },
 {
  "id": "pi-encontrar-ip",
  "titulo": "No encuentro la IP de la Raspberry Pi en la red",
  "categoria": "raspberrypi",
  "tags": [
   "raspberry pi",
   "ip",
   "hostname.local",
   "mdns",
   "imager",
   "ssh",
   "router"
  ],
  "sinonimos": [
   "no encuentro la pi",
   "cual es la ip de mi raspberry",
   "no aparece en la red"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has flasheado la Pi sin pantalla y no sabes a qué IP conectarte por SSH.",
  "diagnostico": [
   "La Pi aún no se ha unido a la red (Wi-Fi mal configurado en Imager).",
   "Tu equipo no resuelve nombres <code>.local</code> (mDNS).",
   "SSH no se activó al preparar la tarjeta."
  ],
  "solucion": [
   "Prueba por nombre: <code>ping NOMBRE.local</code> (el hostname que pusiste en Raspberry Pi Imager).",
   "Mira la lista de dispositivos conectados en el router.",
   "Si tienes pantalla: <code>hostname -I</code> en la Pi.",
   "Si no aparece: reflashea con Imager revisando Wi-Fi (país incluido) y activando SSH en la personalización."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "Raspberry Pi Imager"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi OS"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Encontrar la dirección IP",
    "url": "https://www.raspberrypi.com/documentation/computers/remote-access.html#ip-address",
    "tipo": "oficial"
   }
  ],
  "sub": "red-acceso",
  "publicado": "2026-10-15"
 },
 {
  "id": "ha-backup",
  "titulo": "Copias de seguridad de Home Assistant que de verdad sirven",
  "categoria": "homeassistant",
  "tags": [
   "home assistant",
   "backup",
   "copia de seguridad",
   "restaurar",
   "emergency kit",
   "nas"
  ],
  "sinonimos": [
   "cómo hago backup de home assistant",
   "restaurar home assistant"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes Home Assistant funcionando y no quieres perderlo todo el día que muera la tarjeta o el disco.",
  "diagnostico": [
   "Las copias están en el mismo disco que acaba de morir.",
   "Las copias van cifradas y no tienes la clave (el emergency kit): así no hay forma de restaurarlas."
  ],
  "solucion": [
   "Ve a Ajustes → Sistema → Copias de seguridad y configura las copias automáticas.",
   "Activa al menos una ubicación fuera del equipo (NAS, Home Assistant Cloud, nube).",
   "Guarda el <b>kit de emergencia</b> con la clave de cifrado en un sitio seguro.",
   "Haz una restauración de prueba alguna vez: una copia no probada no es una copia."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Backups",
    "url": "https://www.home-assistant.io/common-tasks/general/",
    "tipo": "oficial"
   },
   {
    "titulo": "AguacaTEC — Copias de seguridad en Home Assistant (en español)",
    "url": "https://aguacatec.es/copias-de-seguridad-en-home-assistant-3/",
    "tipo": "comunidad",
    "lang": "es"
   }
  ],
  "sub": "instalacion",
  "saberMas": [
   {
    "fuente": "Jonatan Castro (YouTube)",
    "titulo": "Protege tu Home Assistant con backups gratis en la nube (Jonatan Castro, YouTube)",
    "url": "https://www.youtube.com/watch?v=LLVbDVSDV80",
    "nota": "Guardar las copias fuera del propio equipo, en la nube."
   }
  ],
  "exito": "tras restaurar e iniciar sesión con el usuario y la contraseña de cuando hiciste la copia, el panel muestra todo como estaba entonces. Los dispositivos a pilas pueden salir como no disponibles hasta que se despierten.",
  "publicado": "2026-10-15"
 },
 {
  "id": "ha-acceso-remoto",
  "titulo": "Acceso remoto a Home Assistant sin abrir puertos",
  "categoria": "homeassistant",
  "tags": [
   "home assistant",
   "acceso remoto",
   "vpn",
   "tailscale",
   "nabu casa",
   "cloud",
   "puertos"
  ],
  "sinonimos": [
   "entrar a home assistant desde fuera",
   "abrir puertos router"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres controlar Home Assistant fuera de casa sin exponer tu red a internet.",
  "diagnostico": [
   "Abrir puertos (port forwarding) expone Home Assistant directamente a internet."
  ],
  "solucion": [
   "Opción más sencilla según la doc oficial: Home Assistant Cloud (de pago), sin abrir puertos.",
   "Opción gratis: una VPN (p. ej. Tailscale o WireGuard) y entrar como si estuvieras en casa.",
   "Si aun así expones Home Assistant, sigue antes la lista de seguridad oficial."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant",
    "VPN opcional"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x"
  ],
  "verificacion": "Basado en la documentación oficial. Kike usa Tailscale en su servidor, pero falta registrar la prueba como evidencia para subirla a VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Remote access",
    "url": "https://www.home-assistant.io/docs/configuration/remote/",
    "tipo": "oficial"
   },
   {
    "titulo": "AguacaTEC — Acceder a Home Assistant desde fuera de casa con Cloudflare (en español)",
    "url": "https://aguacatec.es/acceder-a-home-assistant-desde-fuera-de-casa-con-cloudflare/",
    "tipo": "comunidad",
    "lang": "es"
   }
  ],
  "sub": "acceso",
  "saberMas": [
   {
    "fuente": "Jonatan Castro (YouTube)",
    "titulo": "Accede a Home Assistant con túneles de Cloudflare desde fuera de casa, seguro y sin abrir puertos (Jonatan Castro, YouTube)",
    "url": "https://www.youtube.com/watch?v=Gt5KtmQKdVI",
    "nota": "Túnel de Cloudflare para entrar desde fuera sin abrir puertos."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "zigbee-interferencias",
  "titulo": "Dispositivos Zigbee que se caen: interferencias del coordinador USB",
  "categoria": "homeassistant",
  "tags": [
   "zigbee",
   "interferencias",
   "usb",
   "alargador",
   "usb 3",
   "wifi",
   "zha",
   "zigbee2mqtt"
  ],
  "sinonimos": [
   "zigbee se desconecta",
   "dispositivos no disponibles",
   "zigbee inestable"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Sensores Zigbee que se quedan «no disponibles» o tardan en responder.",
  "diagnostico": [
   "Coordinador pinchado directamente en el equipo: interferencias del propio ordenador, puertos USB 3 o SSD.",
   "Coordinador cerca del router Wi-Fi (ambos en 2,4 GHz).",
   "Pocos routers Zigbee (dispositivos con corriente) en la red."
  ],
  "solucion": [
   "Conecta el coordinador con un alargador USB (unos 50 cm ya ayudan), lejos de USB 3, SSD y router Wi-Fi.",
   "Añade dispositivos router Zigbee (enchufes, bombillas con corriente) entre el coordinador y los sensores lejanos.",
   "Evita solapar el canal Zigbee con el canal Wi-Fi que usas."
  ],
  "requisitos": {
   "hardware": [
    "Coordinador Zigbee USB",
    "Alargador USB"
   ],
   "software": [
    "ZHA o Zigbee2MQTT"
   ]
  },
  "compatibilidad": [
   "Zigbee 3.0"
  ],
  "verificacion": "Basado en la documentación oficial de Zigbee2MQTT (aplica igual a ZHA).",
  "fuentes": [
   {
    "titulo": "Zigbee2MQTT — Mejorar el alcance y la estabilidad de la red",
    "url": "https://www.zigbee2mqtt.io/advanced/zigbee/02_improve_network_range_and_stability.html",
    "tipo": "oficial"
   }
  ],
  "sub": "zigbee",
  "saberMas": [
   {
    "fuente": "Enreta Domotica (YouTube)",
    "titulo": "El GRAN PROBLEMA de Zigbee: por qué falla y cómo arreglarlo! (Enreta Domotica, YouTube)",
    "url": "https://www.youtube.com/watch?v=GSw4wmxPmjA",
    "nota": "Por qué se desconectan los sensores Zigbee y cómo estabilizar la red."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "esphome-primer-dispositivo",
  "titulo": "Primer dispositivo ESPHome en Home Assistant",
  "categoria": "esp",
  "tags": [
   "esphome",
   "esp32",
   "home assistant",
   "device builder",
   "flashear",
   "adoptar"
  ],
  "sinonimos": [
   "empezar con esphome",
   "cómo meto un esp32 en home assistant"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes un ESP32 y quieres verlo en Home Assistant sin escribir ni una línea de C.",
  "diagnostico": [
   "ESPHome usa ficheros YAML y su Device Builder para generar y flashear el firmware."
  ],
  "solucion": [
   "Instala ESPHome Device Builder (app en HA OS o contenedor).",
   "Crea un dispositivo nuevo y conecta el ESP32 por USB para el primer flasheo.",
   "Añade componentes (switch, binary_sensor…) en el YAML y actualiza por Wi-Fi (OTA).",
   "Home Assistant lo descubre: acéptalo en Ajustes → Dispositivos."
  ],
  "requisitos": {
   "hardware": [
    "ESP32",
    "Cable USB de datos"
   ],
   "software": [
    "ESPHome",
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "ESPHome 2026.x"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "ESPHome — Primeros pasos con Home Assistant",
    "url": "https://esphome.io/guides/getting_started_hassio/",
    "tipo": "oficial"
   },
   {
    "titulo": "AguacaTEC — Instalar ESPHome en Home Assistant (en español)",
    "url": "https://aguacatec.es/instalar-esphome-en-home-assistant/",
    "tipo": "comunidad",
    "lang": "es"
   }
  ],
  "sub": "esphome",
  "exito": "la tarjeta del dispositivo en el panel de ESPHome con la etiqueta <b>Online</b>.",
  "publicado": "2026-10-15"
 },
 {
  "id": "esp32-wifi-desconecta",
  "titulo": "El ESP32 no conecta al Wi-Fi o se desconecta (ESPHome)",
  "categoria": "esp",
  "tags": [
   "esp32",
   "wifi",
   "desconecta",
   "5 ghz",
   "power_save_mode",
   "esphome"
  ],
  "sinonimos": [
   "esp32 no se conecta",
   "se cae el wifi del esp32"
  ],
  "nivel": "basico",
  "confianza": "probable",
  "actualizado": "2026-10",
  "problema": "El ESP32 no encuentra la red o se desconecta cada poco.",
  "diagnostico": [
   "Red solo de 5 GHz: el ESP32 clásico solo usa 2,4 GHz.",
   "Ahorro de energía del Wi-Fi activado (en ESPHome, LIGHT por defecto en ESP32).",
   "Señal débil."
  ],
  "solucion": [
   "Asegura una red de 2,4 GHz disponible (o un SSID separado).",
   "En ESPHome prueba <code>wifi: power_save_mode: none</code>.",
   "Acerca el dispositivo o añade un punto de acceso."
  ],
  "requisitos": {
   "hardware": [
    "ESP32"
   ],
   "software": [
    "ESPHome"
   ]
  },
  "compatibilidad": [
   "ESP32 (clásico)"
  ],
  "verificacion": "Opción y valores por defecto confirmados en la doc oficial de ESPHome; que desactivar el ahorro resuelva las desconexiones es consenso de la comunidad, no garantía oficial.",
  "fuentes": [
   {
    "titulo": "ESPHome — WiFi Component (power_save_mode)",
    "url": "https://esphome.io/components/wifi/",
    "tipo": "oficial"
   }
  ],
  "sub": "wifi",
  "publicado": "2026-10-15"
 },
 {
  "id": "esp32-no-detecta-usb",
  "titulo": "El ordenador no detecta el ESP32 por USB",
  "categoria": "esp",
  "tags": [
   "esp32",
   "usb",
   "cp210x",
   "ch340",
   "driver",
   "puerto com",
   "cable"
  ],
  "sinonimos": [
   "no aparece el puerto",
   "esp32 no sale en arduino",
   "no detecta esp32"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Conectas el ESP32 y no aparece ningún puerto serie (COM en Windows, <code>/dev/ttyUSB*</code> o <code>/dev/cu.*</code>).",
  "diagnostico": [
   "El cable solo carga y no lleva datos. Pasa muchísimo.",
   "A tu sistema le falta el driver del puente USB-UART (CP210x, CH34x o FTDI)."
  ],
  "solucion": [
   "Prueba otro cable que sepas que transmite datos.",
   "Mira qué chip USB-serie lleva tu placa (guía de la placa) e instala su driver si el sistema no lo trae.",
   "Comprueba el puerto: Administrador de dispositivos (Windows), <code>ls /dev/tty*</code> (Linux/macOS)."
  ],
  "requisitos": {
   "hardware": [
    "ESP32",
    "Cable USB de datos"
   ],
   "software": [
    "Driver CP210x/CH34x/FTDI si hace falta"
   ]
  },
  "compatibilidad": [
   "Windows",
   "macOS",
   "Linux"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "ESP-IDF — Establecer conexión serie con ESP32",
    "url": "https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/establish-serial-connection.html",
    "tipo": "oficial"
   }
  ],
  "sub": "flasheo",
  "exito": "en Windows, un puerto COM nuevo en el Administrador de dispositivos que desaparece al desconectar la placa y vuelve al conectarla. En macOS, <code>ls /dev/cu.*</code> lista un puerto como <code>/dev/cu.SLAB_USBtoUART</code> (el nombre depende del chip USB).",
  "publicado": "2026-10-15"
 },
 {
  "id": "ollama-home-assistant",
  "titulo": "Usar Ollama (LLM local) como agente de conversación en Home Assistant",
  "categoria": "ia",
  "tags": [
   "ollama",
   "home assistant",
   "llm",
   "assist",
   "agente de conversación",
   "local"
  ],
  "sinonimos": [
   "ia local en home assistant",
   "chatgpt local home assistant"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres que Assist responda con un modelo local en vez de un servicio en la nube.",
  "diagnostico": [
   "La integración Ollama necesita un servidor Ollama externo ya funcionando.",
   "El control de dispositivos por la IA es experimental y depende de las entidades expuestas."
  ],
  "solucion": [
   "Arranca un servidor Ollama accesible en tu red.",
   "Añade la integración Ollama en Home Assistant con la URL del servidor y elige modelo.",
   "Selecciónalo como agente de conversación en tu asistente de voz.",
   "Si quieres que controle la casa, activa el acceso a la Assist API y expón solo las entidades necesarias."
  ],
  "requisitos": {
   "hardware": [
    "Equipo para Ollama (idealmente con GPU)"
   ],
   "software": [
    "Home Assistant",
    "Ollama"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Ollama integration",
    "url": "https://www.home-assistant.io/integrations/ollama/",
    "tipo": "oficial"
   }
  ],
  "sub": "integraciones",
  "publicado": "2026-10-15"
 },
 {
  "id": "matter-no-empareja",
  "titulo": "Un dispositivo Matter no se empareja en Home Assistant",
  "categoria": "homeassistant",
  "tags": [
   "matter",
   "thread",
   "ipv6",
   "home assistant",
   "emparejar",
   "companion app"
  ],
  "sinonimos": [
   "matter no se añade",
   "no puedo añadir dispositivo matter"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Intentas añadir un dispositivo Matter y el proceso falla o no avanza.",
  "diagnostico": [
   "IPv6 desactivado en Home Assistant (Matter lo usa en la red local).",
   "Dispositivo Thread sin un border router disponible.",
   "Intentar emparejar desde el navegador en lugar de la app Companion."
  ],
  "solucion": [
   "En Ajustes → Sistema → Red, pon IPv6 en Automático.",
   "Empareja desde la app Home Assistant Companion en el móvil.",
   "Para dispositivos Thread, asegúrate de tener un border router Thread en la red."
  ],
  "requisitos": {
   "hardware": [
    "Dispositivo Matter",
    "Border router Thread (si el dispositivo es Thread)"
   ],
   "software": [
    "Home Assistant",
    "Companion app"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Matter integration (troubleshooting)",
    "url": "https://www.home-assistant.io/integrations/matter/",
    "tipo": "oficial"
   }
  ],
  "sub": "zigbee",
  "saberMas": [
   {
    "fuente": "Enreta Domotica (YouTube)",
    "titulo": "Qué es MATTER y Por Qué Cambiará tu Casa (Explicación Fácil) (Enreta Domotica, YouTube)",
    "url": "https://www.youtube.com/watch?v=lbK2x3TT7Qs",
    "nota": "Qué es Matter explicado desde cero (curso de domótica, vídeo 7)."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "matter-deja-de-responder",
  "titulo": "Un dispositivo Matter deja de responder en Home Assistant",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "matter",
   "thread",
   "home assistant",
   "unavailable",
   "mapa matter",
   "border router",
   "ipv6",
   "mdns"
  ],
  "sinonimos": [
   "matter no disponible",
   "matter offline",
   "dispositivo matter no responde",
   "mapa matter home assistant",
   "thread deja de funcionar"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Un dispositivo Matter que ya funcionaba aparece como no disponible o deja de responder en Home Assistant.",
  "diagnostico": [
   "Offline o con enlace débil en el mapa Matter (nodo rojo / línea discontinua).",
   "IPv6 desactivado en Home Assistant, o IPv6/mDNS filtrado (VLANs, IGMP snooping, Wi‑Fi mesh).",
   "Thread sin border router cercano, o Wi‑Fi en otra VLAN/SSID que Home Assistant.",
   "Sensor a pilas sin batería, o interferencia del canal Thread con el Wi‑Fi 2,4 GHz."
  ],
  "solucion": [
   "Ajustes → Conectividad → Matter → <b>Mostrar mapa</b>. Mira red (Thread/Wi‑Fi), zona y «visto por última vez». Si está desfasado, <b>Actualizar topología</b> (solo si hace falta).",
   "En la ficha del dispositivo revisa tipo de red e IPs; comprueba la pila si es un sensor a pilas.",
   "Ajustes → Sistema → Red: IPv6 en <b>Automático</b>. Matter necesita IPv6 y mDNS en la LAN (no hace falta IPv6 en Internet).",
   "Thread: al menos un border router en marcha en la misma LAN. Wi‑Fi: misma VLAN/SSID que Home Assistant (suele ser 2,4 GHz).",
   "Si fallan varios Thread a la vez, revisa el canal Thread (errores <code>ChannelAccessFailure</code> en el OTBR) y valora el canal 25 o 26. Descarga el diagnóstico (⋮) si sigue igual."
  ],
  "requisitos": {
   "hardware": [
    "Dispositivo Matter ya emparejado",
    "Border router Thread (si aplica)"
   ],
   "software": [
    "Home Assistant + Matter",
    "Matter Server ≥ 9.2.0 (mapa)"
   ]
  },
  "compatibilidad": [
   "Home Assistant 2026.x",
   "Matter Server app ≥ 9.2.0 (mapa)"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Matter (mapa de red y diagnóstico)",
    "url": "https://www.home-assistant.io/integrations/matter/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Thread (IPv6, canal y border routers)",
    "url": "https://www.home-assistant.io/integrations/thread/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "saberMas": [
   {
    "fuente": "Domótica Compatible (podcast)",
    "titulo": "Cómo identificar fallos en un dispositivo Matter",
    "url": "https://sahuquillo.org/que-falla-cuando-matter-deja-de-responder/",
    "fecha": "2026-10-01",
    "nota": "Mapa Matter/Thread de HA para localizar fallos (Aqara, Eve, Meross, Tedee)."
   }
  ],
  "publicado": "2026-10-19"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "Raspberry Pi OS Bookworm o Trixie"
   ]
  },
  "id": "pi-pip-externally-managed",
  "titulo": "pip install falla con «externally-managed-environment» en Raspberry Pi OS",
  "categoria": "raspberrypi",
  "sub": "so-software",
  "tags": [
   "pip",
   "python",
   "venv",
   "bookworm",
   "trixie",
   "pep 668",
   "raspberry pi os"
  ],
  "sinonimos": [
   "error externally managed environment",
   "no puedo instalar con pip",
   "pip no funciona raspberry"
  ],
  "problema": "Al ejecutar <code>pip install paquete</code> sale <code>error: externally-managed-environment</code> y no se instala nada.",
  "diagnostico": [
   "Desde Bookworm, el Python del sistema está protegido (PEP 668): pip ya no puede instalar fuera de un entorno virtual.",
   "Es un cambio de la comunidad de Python, no un fallo de la Pi."
  ],
  "solucion": [
   "Si el paquete existe en apt, instálalo así: <code>sudo apt install python3-nombre</code> (p. ej. <code>python3-numpy</code>).",
   "Si no, crea un entorno virtual en tu proyecto: <code>python -m venv env</code>.",
   "Actívalo: <code>source env/bin/activate</code> y ahora sí <code>pip install paquete</code>.",
   "Si necesitas también librerías del sistema (GPIO, cámara), créalo con <code>python -m venv --system-site-packages env</code>.",
   "Evita <code>--break-system-packages</code>: puede romper el sistema."
  ],
  "compatibilidad": [
   "Raspberry Pi OS Bookworm",
   "Raspberry Pi OS Trixie",
   "Debian 12+"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Usar Python (pip y venv)",
    "url": "https://www.raspberrypi.com/documentation/computers/os.html#use-python-on-a-raspberry-pi",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "Raspberry Pi OS"
   ]
  },
  "id": "pi-temperatura-throttling",
  "titulo": "Mi Raspberry Pi va lenta: ¿se está calentando o le falta corriente?",
  "categoria": "raspberrypi",
  "sub": "energia",
  "tags": [
   "temperatura",
   "throttling",
   "vcgencmd",
   "get_throttled",
   "calor",
   "ventilador",
   "rendimiento",
   "calienta"
  ],
  "sinonimos": [
   "raspberry lenta",
   "pi se calienta",
   "termometro amarillo",
   "cpu limitada",
   "raspberry se calienta",
   "pi caliente",
   "temperatura alta"
  ],
  "problema": "La Pi va a tirones bajo carga (compilar, Home Assistant, vídeo) y no sabes si es temperatura o alimentación.",
  "diagnostico": [
   "El SoC baja la frecuencia al llegar al límite térmico.",
   "Bajo voltaje: la fuente no da suficiente corriente.",
   "Sin disipador o ventilador (en la Pi 5 se recomienda el Active Cooler)."
  ],
  "solucion": [
   "Mira la temperatura: <code>vcgencmd measure_temp</code>.",
   "Mira el estado de limitación: <code>vcgencmd get_throttled</code>. <code>0x0</code> = todo bien.",
   "Interpreta los bits: <code>0x1</code> bajo voltaje ahora, <code>0x4</code> limitada ahora, <code>0x8</code> límite térmico suave; <code>0x10000</code>, <code>0x40000</code>, <code>0x80000</code> = ha ocurrido desde el arranque.",
   "Si hay bajo voltaje, usa la fuente oficial (27 W en la Pi 5) y un cable corto y bueno.",
   "Si es calor, añade disipador/ventilador y deja aire alrededor de la caja."
  ],
  "compatibilidad": [
   "Raspberry Pi 3, 4 y 5"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — vcgencmd (get_throttled, measure_temp)",
    "url": "https://www.raspberrypi.com/documentation/computers/os.html#vcgencmd",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Gestión de frecuencia y temperatura",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#frequency-management-and-thermal-control",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi 4/400/5"
   ],
   "software": [
    "Raspberry Pi OS",
    "Raspberry Pi Imager (opcional)"
   ]
  },
  "id": "pi-actualizar-eeprom",
  "titulo": "Actualizar el bootloader (EEPROM) de la Raspberry Pi 4/5",
  "categoria": "raspberrypi",
  "sub": "arranque",
  "tags": [
   "eeprom",
   "bootloader",
   "rpi-eeprom-update",
   "firmware",
   "arranque usb",
   "nvme"
  ],
  "sinonimos": [
   "actualizar firmware raspberry",
   "no arranca desde usb",
   "bootloader viejo"
  ],
  "problema": "La Pi 4 o 5 no arranca desde USB/NVMe o le faltan opciones de arranque nuevas porque el bootloader está desactualizado.",
  "diagnostico": [
   "Las Pi 4 y 5 guardan el bootloader en una EEPROM, separada de la SD.",
   "Bootloaders antiguos no soportan todos los modos de arranque."
  ],
  "solucion": [
   "Actualiza el sistema primero: <code>sudo apt update</code> y <code>sudo apt full-upgrade</code>.",
   "Comprueba la versión: <code>sudo rpi-eeprom-update</code>.",
   "Aplica la actualización: <code>sudo rpi-eeprom-update -a</code> y reinicia con <code>sudo reboot</code>.",
   "Alternativa sin sistema: en Raspberry Pi Imager, «Misc utility images» → «Bootloader» y graba una SD de recuperación.",
   "Revisa el orden de arranque con <code>sudo rpi-eeprom-config</code>."
  ],
  "compatibilidad": [
   "Raspberry Pi 4, 400, 5, CM4, CM5"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — EEPROM de arranque",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-boot-eeprom",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Configuración del bootloader",
    "url": "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-bootloader-configuration",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi",
    "Tarjeta microSD"
   ],
   "software": [
    "Raspberry Pi Imager"
   ]
  },
  "id": "pi-ssh-headless",
  "titulo": "Raspberry Pi sin pantalla: SSH rechaza la conexión la primera vez",
  "categoria": "raspberrypi",
  "sub": "red-acceso",
  "tags": [
   "ssh",
   "headless",
   "imager",
   "sin pantalla",
   "connection refused",
   "usuario"
  ],
  "sinonimos": [
   "ssh connection refused raspberry",
   "no puedo entrar por ssh",
   "configurar raspberry sin monitor"
  ],
  "problema": "Grabas Raspberry Pi OS, enciendes la Pi sin monitor y <code>ssh</code> responde «Connection refused» o no pide usuario.",
  "diagnostico": [
   "SSH viene desactivado por defecto.",
   "Ya no existe el usuario por defecto <code>pi/raspberry</code>: hay que crear uno al grabar la imagen.",
   "La Pi no está en la red (Wi‑Fi mal configurado o país Wi‑Fi sin poner)."
  ],
  "solucion": [
   "Vuelve a grabar con Raspberry Pi Imager y, en la personalización del SO, activa SSH, crea usuario y contraseña y pon tu Wi‑Fi y país.",
   "Espera un par de minutos tras el primer arranque (redimensiona la partición y reinicia).",
   "Busca la IP en tu router o prueba <code>ssh USER@nombre.local</code>.",
   "Si ya tienes acceso con teclado, actívalo con <code>sudo raspi-config</code> → Interface Options → SSH."
  ],
  "compatibilidad": [
   "Raspberry Pi OS Bookworm y Trixie"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Acceso por SSH",
    "url": "https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Instalar con Imager",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#install",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi con escritorio"
   ],
   "software": [
    "Raspberry Pi OS con escritorio"
   ]
  },
  "id": "pi-vnc-wayland",
  "titulo": "VNC no funciona en Raspberry Pi OS con Wayland",
  "categoria": "raspberrypi",
  "sub": "red-acceso",
  "tags": [
   "vnc",
   "wayland",
   "wayvnc",
   "escritorio remoto",
   "realvnc",
   "connect"
  ],
  "sinonimos": [
   "no puedo ver el escritorio",
   "vnc pantalla negra",
   "escritorio remoto raspberry"
  ],
  "problema": "El cliente VNC no conecta o la configuración antigua de RealVNC Server ya no aparece en el escritorio nuevo.",
  "diagnostico": [
   "Las versiones recientes de Raspberry Pi OS usan Wayland y un servidor VNC distinto (WayVNC).",
   "VNC está desactivado por defecto.",
   "Algunos clientes no son compatibles con el cifrado de WayVNC."
  ],
  "solucion": [
   "Activa VNC: <code>sudo raspi-config</code> → Interface Options → VNC (o en el Panel de control → Interfaces).",
   "Conéctate con un cliente compatible; la doc oficial recomienda RealVNC Viewer o TigerVNC.",
   "Alternativa sin abrir puertos: Raspberry Pi Connect (pantalla compartida y shell desde el navegador)."
  ],
  "compatibilidad": [
   "Raspberry Pi OS Bookworm y Trixie (Wayland)"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Pantalla compartida con VNC",
    "url": "https://www.raspberrypi.com/documentation/computers/remote-access.html#vnc",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Raspberry Pi Connect",
    "url": "https://www.raspberrypi.com/documentation/services/connect.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi",
    "Camera Module"
   ],
   "software": [
    "Raspberry Pi OS actual"
   ]
  },
  "id": "pi-camara-no-detectada",
  "titulo": "La cámara de la Raspberry Pi no se detecta (libcamera / rpicam)",
  "categoria": "raspberrypi",
  "sub": "perifericos",
  "tags": [
   "camara",
   "camera module",
   "rpicam",
   "libcamera",
   "raspistill",
   "csi",
   "cable"
  ],
  "sinonimos": [
   "no camera available",
   "camara no funciona raspberry",
   "raspistill no existe"
  ],
  "problema": "<code>rpicam-hello</code> dice que no hay cámaras, o tutoriales antiguos usan <code>raspistill</code>, que ya no existe.",
  "diagnostico": [
   "Cable plano CSI al revés o mal insertado (la Pi 5 usa un conector más estrecho y necesita otro cable).",
   "Comandos antiguos: el stack legacy se sustituyó por libcamera y las <code>rpicam-apps</code>.",
   "Cámara de terceros que requiere overlay manual en <code>config.txt</code>."
  ],
  "solucion": [
   "Apaga la Pi y revisa el cable en ambos extremos y su orientación.",
   "Lista las cámaras: <code>rpicam-hello --list-cameras</code>.",
   "Prueba la vista previa: <code>rpicam-hello</code>; foto: <code>rpicam-jpeg -o test.jpg</code>.",
   "Las cámaras oficiales se autodetectan con <code>camera_auto_detect=1</code> en <code>/boot/firmware/config.txt</code>; las de terceros pueden necesitar su <code>dtoverlay</code> (ver la doc del fabricante)."
  ],
  "compatibilidad": [
   "Raspberry Pi OS Bookworm y Trixie",
   "Pi 5 necesita cable de 22 pines"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Software de cámara (rpicam-apps)",
    "url": "https://www.raspberrypi.com/documentation/computers/camera_software.html",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Instalar una cámara",
    "url": "https://www.raspberrypi.com/documentation/accessories/camera.html#install-a-raspberry-pi-camera",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi 5"
   ],
   "software": [
    "Python 3",
    "gpiozero"
   ]
  },
  "id": "pi5-gpio-rpi-gpio",
  "titulo": "RPi.GPIO no funciona en la Raspberry Pi 5",
  "categoria": "raspberrypi",
  "sub": "perifericos",
  "tags": [
   "gpio",
   "rpi.gpio",
   "gpiozero",
   "python",
   "raspberry pi 5",
   "rp1",
   "led",
   "boton"
  ],
  "sinonimos": [
   "cannot determine soc peripheral base address",
   "gpio pi 5 error",
   "script gpio no va"
  ],
  "problema": "Scripts de Python que funcionaban en la Pi 4 con <code>RPi.GPIO</code> fallan en la Pi 5.",
  "diagnostico": [
   "En la Pi 5 los GPIO cuelgan del chip RP1, y la librería RPi.GPIO clásica accede al hardware de forma que ya no sirve.",
   "La documentación oficial recomienda GPIO Zero."
  ],
  "solucion": [
   "Usa GPIO Zero (viene instalada en Raspberry Pi OS): <code>from gpiozero import LED</code>.",
   "Ejemplo: <code>led = LED(17)</code> y <code>led.on()</code>; botón: <code>Button(2)</code> con <code>when_pressed</code>.",
   "Si usas entorno virtual, créalo con <code>--system-site-packages</code> para ver gpiozero.",
   "Para scripts que no puedas reescribir, busca un sustituto compatible en la doc de GPIO Zero/lgpio."
  ],
  "compatibilidad": [
   "Raspberry Pi 5",
   "También funciona en Pi 3/4"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Usar GPIO desde Python",
    "url": "https://www.raspberrypi.com/documentation/computers/os.html#use-gpio-from-python",
    "tipo": "oficial"
   },
   {
    "titulo": "Documentación de GPIO Zero",
    "url": "https://gpiozero.readthedocs.io/en/latest/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "Raspberry Pi OS",
    "ufw"
   ]
  },
  "id": "pi-ufw-firewall",
  "titulo": "Poner un cortafuegos (UFW) en la Raspberry Pi sin quedarte fuera",
  "categoria": "raspberrypi",
  "sub": "red-acceso",
  "tags": [
   "ufw",
   "firewall",
   "cortafuegos",
   "seguridad",
   "ssh",
   "puertos"
  ],
  "sinonimos": [
   "me quede sin ssh al activar ufw",
   "cerrar puertos raspberry",
   "firewall raspberry"
  ],
  "problema": "Quieres cerrar puertos en la Pi, pero al activar el firewall puedes perder la conexión SSH.",
  "diagnostico": [
   "En cuanto activas UFW, bloquea por defecto todo lo que entra.",
   "Si no has permitido SSH antes, te quedas fuera."
  ],
  "solucion": [
   "Instala: <code>sudo apt install ufw</code>.",
   "Permite SSH ANTES de activar: <code>sudo ufw allow ssh</code> (o <code>sudo ufw allow 22/tcp</code>).",
   "Permite lo que uses, p. ej. Home Assistant: <code>sudo ufw allow 8123/tcp</code>.",
   "Activa: <code>sudo ufw enable</code>.",
   "Revisa: <code>sudo ufw status verbose</code>. Ojo: Docker publica puertos saltándose UFW en muchas configuraciones; revísalo si usas contenedores."
  ],
  "compatibilidad": [
   "Raspberry Pi OS",
   "Debian",
   "Ubuntu"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Cortafuegos con UFW",
    "url": "https://www.raspberrypi.com/documentation/security/ufw.html",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Seguridad operativa",
    "url": "https://www.raspberrypi.com/documentation/security/operational-security.html",
    "tipo": "oficial"
   }
  ],
  "exito": "<code>sudo ufw status verbose</code> indica que UFW está activo y lista tus reglas, entre ellas la que permite SSH (22/tcp), además de las políticas por defecto.",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "id": "ha-base-datos-grande",
  "titulo": "La base de datos de Home Assistant ocupa demasiado",
  "categoria": "homeassistant",
  "sub": "rendimiento",
  "tags": [
   "recorder",
   "base de datos",
   "sqlite",
   "purge",
   "home-assistant_v2.db",
   "disco",
   "historial"
  ],
  "sinonimos": [
   "home assistant ocupa mucho",
   "home-assistant_v2.db enorme",
   "ha lento historial"
  ],
  "problema": "El archivo <code>home-assistant_v2.db</code> crece sin parar, llena la SD/SSD y el historial va lento.",
  "diagnostico": [
   "El recorder guarda cada cambio de estado de todas las entidades (por defecto 10 días).",
   "Sensores que actualizan cada segundo (potencia, señal Wi‑Fi) generan muchísimas filas."
  ],
  "solucion": [
   "Reduce los días en <code>configuration.yaml</code>: <code>recorder:</code> con <code>purge_keep_days: 5</code>.",
   "Excluye entidades ruidosas con <code>exclude:</code> → <code>entities:</code> o <code>entity_globs:</code>.",
   "Reinicia Home Assistant.",
   "Para limpiar ya: Herramientas de desarrollador → Acciones → <code>recorder.purge</code> con <code>repack: true</code>.",
   "Haz un backup antes de tocar la base de datos."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración Recorder",
    "url": "https://www.home-assistant.io/integrations/recorder/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant",
    "Proxy inverso"
   ]
  },
  "id": "ha-proxy-400",
  "titulo": "Home Assistant da «400: Bad Request» detrás de un proxy inverso",
  "categoria": "homeassistant",
  "sub": "acceso",
  "tags": [
   "reverse proxy",
   "nginx",
   "proxy inverso",
   "400 bad request",
   "trusted_proxies",
   "use_x_forwarded_for",
   "caddy",
   "npm"
  ],
  "sinonimos": [
   "400 bad request home assistant",
   "nginx proxy manager home assistant",
   "proxy no funciona ha"
  ],
  "problema": "Accedes a Home Assistant a través de Nginx, Nginx Proxy Manager, Caddy o similar y sale «400: Bad Request».",
  "diagnostico": [
   "Home Assistant rechaza peticiones con cabecera X-Forwarded-For de proxies que no conoce.",
   "Falta activar el soporte de WebSockets en el proxy."
  ],
  "solucion": [
   "En <code>configuration.yaml</code> añade <code>http:</code> con <code>use_x_forwarded_for: true</code>.",
   "Añade <code>trusted_proxies:</code> con la IP o red de tu proxy (p. ej. <code>172.30.33.0/24</code> o la IP del servidor).",
   "Activa WebSockets en el proxy.",
   "Reinicia Home Assistant y revisa el registro si sigue fallando (indica la IP rechazada)."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración HTTP (trusted proxies)",
    "url": "https://www.home-assistant.io/integrations/http/",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "Jonatan Castro (YouTube)",
    "titulo": "Acceso seguro a tus servicios locales y remotos: Nginx Proxy Manager Reverse proxy (Jonatan Castro, YouTube)",
    "url": "https://www.youtube.com/watch?v=0ghEc_R6png",
    "nota": "Instalar y configurar Nginx Proxy Manager como proxy inverso."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "id": "ha-config-invalida",
  "titulo": "Home Assistant arranca en modo recuperación tras editar el YAML",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "yaml",
   "configuracion",
   "modo seguro",
   "recovery mode",
   "check config",
   "configuration.yaml"
  ],
  "sinonimos": [
   "configuracion invalida",
   "home assistant no arranca",
   "error yaml"
  ],
  "problema": "Después de tocar <code>configuration.yaml</code>, Home Assistant no carga integraciones o entra en modo de recuperación.",
  "diagnostico": [
   "Hay un error de sangría o de sintaxis en el YAML.",
   "Una clave de una integración está mal escrita o se ha quitado en una versión nueva."
  ],
  "solucion": [
   "Antes de reiniciar, usa Herramientas de desarrollador → YAML → «Comprobar configuración».",
   "En HA OS/Supervised, por consola: <code>ha core check</code>.",
   "Lee la notificación y el registro: indican archivo y línea.",
   "Corrige y reinicia. Usa siempre espacios, nunca tabuladores."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Resolución de problemas de configuración",
    "url": "https://www.home-assistant.io/docs/configuration/troubleshooting/",
    "tipo": "oficial"
   }
  ],
  "exito": "la comprobación de configuración (Ajustes → Herramientas → YAML → Comprobar configuración) ya no muestra ningún error «Invalid config for…».",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Acceso físico o consola"
   ],
   "software": [
    "Home Assistant"
   ]
  },
  "id": "ha-olvide-contrasena",
  "titulo": "He olvidado la contraseña de Home Assistant",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "contraseña",
   "password",
   "login",
   "bloqueado",
   "owner",
   "auth reset"
  ],
  "sinonimos": [
   "no puedo entrar home assistant",
   "recuperar contraseña ha",
   "olvide el usuario"
  ],
  "problema": "No recuerdas la contraseña del usuario propietario y no puedes entrar.",
  "diagnostico": [
   "Si otro usuario administrador puede entrar, que te la cambie desde Ajustes → Personas.",
   "Si no, toca hacerlo desde la consola del sistema."
  ],
  "solucion": [
   "Con otro administrador: Ajustes → Personas → Usuarios → cambiar contraseña.",
   "En Home Assistant OS, conecta teclado y pantalla (o consola) y ejecuta <code>auth reset --interactive</code> en el prompt <code>ha &gt;</code>.",
   "Para otras instalaciones (Container/Core) sigue la sección correspondiente de la guía oficial «locked out»."
  ],
  "compatibilidad": [
   "Home Assistant OS",
   "Container y Core (ver guía)"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Si te quedas fuera (locked out)",
    "url": "https://www.home-assistant.io/docs/locked_out/",
    "tipo": "oficial"
   }
  ],
  "exito": "un cuadro de confirmación con el texto «Password was changed successfully».",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "id": "ha-secrets-yaml",
  "titulo": "Sacar contraseñas y claves del configuration.yaml con secrets.yaml",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "secrets",
   "secrets.yaml",
   "contraseñas",
   "yaml",
   "seguridad",
   "!secret"
  ],
  "sinonimos": [
   "ocultar contraseñas home assistant",
   "compartir configuracion sin claves"
  ],
  "problema": "Quieres compartir o subir tu configuración a GitHub sin publicar contraseñas, tokens o tu ubicación.",
  "diagnostico": [
   "Las claves escritas directamente en <code>configuration.yaml</code> quedan expuestas al compartir el archivo."
  ],
  "solucion": [
   "Crea <code>secrets.yaml</code> en la carpeta de configuración.",
   "Guarda ahí cada valor: <code>mqtt_password: tu_clave</code>.",
   "En la configuración usa <code>password: !secret mqtt_password</code>.",
   "Añade <code>secrets.yaml</code> a tu <code>.gitignore</code>.",
   "Comprueba la configuración y reinicia."
  ],
  "compatibilidad": [
   "Todas las instalaciones de Home Assistant"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Almacenar secretos",
    "url": "https://www.home-assistant.io/docs/configuration/secrets/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "id": "ha-automatizacion-no-dispara",
  "titulo": "Mi automatización de Home Assistant no se ejecuta",
  "categoria": "homeassistant",
  "sub": "automatizaciones",
  "tags": [
   "automatizacion",
   "trigger",
   "disparador",
   "condicion",
   "traza",
   "trace"
  ],
  "sinonimos": [
   "automatizacion no funciona",
   "no salta la automatizacion",
   "automation not working"
  ],
  "problema": "Una automatización debería saltar y no hace nada, o salta pero el dispositivo no cambia.",
  "diagnostico": [
   "El disparador nunca se cumple: el estado no es el que esperas (por ejemplo, <code>on</code> frente a <code>On</code>).",
   "Una condición está bloqueando la ejecución.",
   "La automatización está desactivada.",
   "La acción falla porque la entidad no está disponible."
  ],
  "solucion": [
   "Abre la automatización y mira las <b>trazas</b> (Traces): muestran qué paso falló.",
   "Si no hay traza nueva, el problema está en el disparador: revisa el estado real en Herramientas de desarrollador → Estados.",
   "Si la traza se para en una condición, revísala.",
   "Prueba solo las acciones con «Ejecutar acciones»."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Resolver problemas de automatizaciones",
    "url": "https://www.home-assistant.io/docs/automation/troubleshooting/",
    "tipo": "oficial"
   }
  ],
  "exito": "una traza nueva en la automatización cada vez que ocurre el disparador.",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant",
    "Mosquitto"
   ]
  },
  "id": "ha-mqtt-mosquitto",
  "titulo": "Conectar Home Assistant a un broker MQTT (Mosquitto)",
  "categoria": "homeassistant",
  "sub": "automatizaciones",
  "tags": [
   "mqtt",
   "mosquitto",
   "broker",
   "zigbee2mqtt",
   "tasmota",
   "autodescubrimiento"
  ],
  "sinonimos": [
   "mqtt no conecta",
   "configurar mqtt home assistant",
   "dispositivos tasmota no aparecen"
  ],
  "problema": "Tus dispositivos Tasmota, Zigbee2MQTT u otros que hablan MQTT no aparecen en Home Assistant.",
  "diagnostico": [
   "No tienes un broker MQTT instalado, o la integración MQTT no está configurada.",
   "El usuario o la contraseña del broker no son correctos.",
   "El dispositivo publica en otro prefijo de descubrimiento."
  ],
  "solucion": [
   "Instala un broker (en HA OS, la app/complemento «Mosquitto broker»).",
   "Añade la integración MQTT en Ajustes → Dispositivos y servicios.",
   "Crea un usuario de HA (o del broker) para los dispositivos y úsalo en ellos.",
   "Verifica con «Escuchar un tema» <code>#</code> en la configuración de MQTT si llegan mensajes.",
   "El prefijo de autodescubrimiento por defecto es <code>homeassistant</code>."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración MQTT",
    "url": "https://www.home-assistant.io/integrations/mqtt/",
    "tipo": "oficial"
   },
   {
    "titulo": "AguacaTEC — Instalar MQTT en Home Assistant (en español)",
    "url": "https://aguacatec.es/instalar-mqtt-en-home-assistant/",
    "tipo": "comunidad",
    "lang": "es"
   }
  ],
  "exito": "en la configuración de MQTT, al escuchar el tema <code>#</code> y publicar una prueba, aparecen mensajes como «Message 23 received on homeassistant/switch/1/power/stat/POWER … ON».",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Coordinador Zigbee"
   ],
   "software": [
    "Zigbee2MQTT"
   ]
  },
  "id": "z2m-no-empareja",
  "titulo": "Zigbee2MQTT: el dispositivo no se empareja",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "zigbee2mqtt",
   "z2m",
   "emparejar",
   "permit join",
   "pairing",
   "interferencias",
   "alargador usb"
  ],
  "sinonimos": [
   "no puedo emparejar zigbee",
   "zigbee no aparece",
   "permit join no funciona"
  ],
  "problema": "Pones el dispositivo en modo emparejamiento y nunca aparece en Zigbee2MQTT.",
  "diagnostico": [
   "No has activado «Permit join».",
   "Hay interferencias del USB 3 o del Wi‑Fi cerca del coordinador. En la Raspberry Pi 4 es un clásico.",
   "El dispositivo está demasiado lejos o tiene la pila baja.",
   "Ya estaba emparejado con otra red."
  ],
  "solucion": [
   "Activa «Permit join (All)» en el frontend de Z2M (dura un tiempo limitado).",
   "Conecta el dongle con un alargador USB, lejos de puertos USB 3 y del router.",
   "Empareja cerca del coordinador o de un router Zigbee (enchufe/bombilla).",
   "Resetea el dispositivo según su manual y vuelve a intentarlo.",
   "Mira el log de Z2M mientras emparejas."
  ],
  "compatibilidad": [
   "Zigbee2MQTT 1.x/2.x"
  ],
  "fuentes": [
   {
    "titulo": "Zigbee2MQTT — Emparejar dispositivos",
    "url": "https://www.zigbee2mqtt.io/guide/usage/pairing_devices.html",
    "tipo": "oficial"
   },
   {
    "titulo": "Zigbee2MQTT — FAQ",
    "url": "https://www.zigbee2mqtt.io/guide/faq/",
    "tipo": "oficial"
   }
  ],
  "exito": "en el log de Zigbee2MQTT, «Successfully interviewed '0x…', device has successfully been paired».",
  "publicado": "2026-10-15"
 },
 {
  "id": "zha-sensor-pila",
  "titulo": "Sensor Zigbee no disponible tras cambiar la pila",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "zigbee",
   "zha",
   "zigbee2mqtt",
   "z2m",
   "sensor",
   "pila",
   "batería",
   "unavailable",
   "aqara",
   "sonoff",
   "reemparejar"
  ],
  "sinonimos": [
   "sensor zigbee unavailable",
   "sensor no disponible después de cambiar pila",
   "aqara no responde tras cambiar batería",
   "zigbee offline tras cambiar pila",
   "reemparejar sensor zigbee"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tras cambiar la pila de un sensor Zigbee (Aqara, Sonoff u otro), Home Assistant lo marca como no disponible y no vuelve a reportar.",
  "diagnostico": [
   "El sensor aún no ha enviado ningún mensaje: ZHA marca un dispositivo a pilas como no disponible tras 6 h sin actividad (por defecto); en Zigbee2MQTT, los pasivos (a pilas) pasan a offline tras 25 h sin «check-in».",
   "Sigue «dormido»: los end devices a pilas solo escuchan tras despertar (pulsar el botón o disparar el sensor).",
   "Se perdió la asociación al agotarse del todo la pila; hace falta abrir la red y reemparejar.",
   "Cobertura Zigbee floja o interferencias cerca del coordinador (USB 3, Wi‑Fi)."
  ],
  "solucion": [
   "Despierta el sensor (pulsa su botón o ábrelo/ciérralo). En ZHA, abre el dispositivo y pulsa <b>Reconfigurar</b>; en sensores a pilas, pulsa el botón justo antes.",
   "Si sigue fallando en <b>ZHA</b>: Ajustes → Conectividad → Zigbee → <b>Añadir dispositivo</b> y pon el sensor en emparejamiento (según su manual). No lo borres antes: ZHA lo identifica por IEEE y suele recuperar el mismo dispositivo.",
   "En <b>Zigbee2MQTT</b>: activa <b>Permit join</b> y empareja. Si la entrevista falla, mantén el sensor despierto pulsando el botón cada pocos segundos y prueba cerca del coordinador o de un router Zigbee.",
   "Empareja en el sitio de uso (no solo junto al dongle) y revisa interferencias del USB (alargador, lejos de USB 3 y del Wi‑Fi)."
  ],
  "requisitos": {
   "hardware": [
    "Sensor Zigbee a pilas",
    "Coordinador Zigbee"
   ],
   "software": [
    "Home Assistant con ZHA o Zigbee2MQTT"
   ]
  },
  "compatibilidad": [
   "ZHA (Home Assistant 2026.x)",
   "Zigbee2MQTT 1.x/2.x"
  ],
  "verificacion": "Basado en la documentación oficial citada.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración ZHA (opciones globales y emparejamiento)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — Emparejar dispositivos",
    "url": "https://www.zigbee2mqtt.io/guide/usage/pairing_devices.html",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — Disponibilidad de dispositivos",
    "url": "https://www.zigbee2mqtt.io/guide/configuration/device-availability.html",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — FAQ (emparejamiento)",
    "url": "https://www.zigbee2mqtt.io/guide/faq/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "saberMas": [
   {
    "fuente": "Domótica Compatible (podcast)",
    "titulo": "Cómo reemparejar sensores Zigbee en Home Assistant sin perder automatizaciones",
    "url": "https://sahuquillo.org/reemparejar-sensores-zigbee-home-assistant/",
    "fecha": "2026-10-08",
    "nota": "Reemparejar Aqara tras cambiar la pila sin perder nombres ni automatizaciones."
   }
  ],
  "publicado": "2026-10-19"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Servidor Linux"
   ],
   "software": [
    "Docker",
    "Home Assistant Container"
   ]
  },
  "id": "ha-docker-red-host",
  "titulo": "Home Assistant en Docker no descubre dispositivos (red del contenedor)",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "docker",
   "container",
   "network host",
   "descubrimiento",
   "mdns",
   "chromecast",
   "homekit",
   "bluetooth"
  ],
  "sinonimos": [
   "home assistant docker no encuentra dispositivos",
   "descubrimiento no funciona docker"
  ],
  "problema": "Con Home Assistant Container no aparecen dispositivos que se descubren por mDNS/SSDP (Chromecast, HomeKit, ESPHome…).",
  "diagnostico": [
   "El contenedor está en la red bridge de Docker: no ve el multicast de la red local."
  ],
  "solucion": [
   "Arranca el contenedor con <code>--network=host</code> (o <code>network_mode: host</code> en compose), como indica la guía oficial.",
   "Quita los <code>ports:</code>, que no se usan con red host.",
   "Monta <code>/run/dbus</code> de solo lectura si necesitas Bluetooth, como indica la guía.",
   "Recrea el contenedor: <code>docker compose up -d</code>."
  ],
  "compatibilidad": [
   "Linux (no Docker Desktop en Mac/Windows)"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Instalación en Linux (Container)",
    "url": "https://www.home-assistant.io/installation/linux",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32 (no ESP8266)"
   ],
   "software": [
    "ESPHome",
    "Home Assistant"
   ]
  },
  "id": "ha-bluetooth-proxy",
  "titulo": "Ampliar el Bluetooth de Home Assistant con un ESP32 (Bluetooth proxy)",
  "categoria": "homeassistant",
  "sub": "acceso",
  "tags": [
   "bluetooth",
   "ble",
   "proxy",
   "esphome",
   "esp32",
   "alcance",
   "switchbot",
   "xiaomi"
  ],
  "sinonimos": [
   "bluetooth no llega",
   "sensores ble lejos",
   "bluetooth home assistant alcance"
  ],
  "problema": "Los sensores Bluetooth (termómetros, SwitchBot…) están lejos del servidor y se pierden.",
  "diagnostico": [
   "El adaptador Bluetooth del servidor tiene poco alcance y le afectan las paredes.",
   "La Pi en caja metálica o junto a USB 3 empeora la señal."
  ],
  "solucion": [
   "Flashea un ESP32 con ESPHome y añade <code>bluetooth_proxy:</code> (opcional <code>active: true</code> para dispositivos que necesitan conexión).",
   "Añade <code>esp32_ble_tracker:</code> según el ejemplo recomendado de la doc.",
   "Colócalo cerca de los sensores y conéctalo por Wi‑Fi o, mejor, Ethernet.",
   "Home Assistant lo usa automáticamente al añadirlo con la integración ESPHome."
  ],
  "compatibilidad": [
   "ESP32, ESP32-S3, ESP32-C3"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Bluetooth Proxy",
    "url": "https://esphome.io/components/bluetooth_proxy/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Servidor (Pi 4/5 o mini PC)"
   ],
   "software": [
    "Home Assistant",
    "Whisper",
    "Piper"
   ]
  },
  "id": "ha-voz-local-wyoming",
  "titulo": "Montar un asistente de voz 100 % local con Whisper y Piper",
  "categoria": "homeassistant",
  "sub": "voz",
  "tags": [
   "voz",
   "whisper",
   "piper",
   "wyoming",
   "assist",
   "stt",
   "tts",
   "local"
  ],
  "sinonimos": [
   "asistente de voz sin nube",
   "reconocimiento de voz local",
   "assist local"
  ],
  "problema": "Quieres hablar con Home Assistant sin enviar audio a la nube.",
  "diagnostico": [
   "Hace falta un motor de voz a texto (Whisper) y de texto a voz (Piper), conectados por el protocolo Wyoming."
  ],
  "solucion": [
   "En HA OS, instala las apps (antes complementos) Whisper y Piper; en Docker, usa sus contenedores Wyoming.",
   "Añade la integración Wyoming (se descubre sola en HA OS).",
   "En Ajustes → Asistentes de voz, crea un asistente con Whisper como STT y Piper como TTS, idioma español.",
   "En hardware modesto elige modelos pequeños de Whisper para que responda rápido."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración Wyoming",
    "url": "https://www.home-assistant.io/integrations/wyoming/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "avanzado",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Coordinador Zigbee"
   ],
   "software": [
    "Home Assistant con ZHA"
   ]
  },
  "id": "ha-zha-canal",
  "titulo": "ZHA: red Zigbee inestable, cambiar de canal",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "zha",
   "zigbee",
   "canal",
   "wifi",
   "interferencias",
   "coordinador"
  ],
  "sinonimos": [
   "zigbee se cae",
   "zha dispositivos no disponibles",
   "cambiar canal zigbee"
  ],
  "problema": "Los dispositivos ZHA se quedan «no disponibles» a ratos y el coordinador está en un canal que choca con tu Wi‑Fi.",
  "diagnostico": [
   "Zigbee y Wi‑Fi comparten la banda de 2,4 GHz.",
   "Pocos routers Zigbee (dispositivos con corriente) en la red."
  ],
  "solucion": [
   "Mira el canal de tu Wi‑Fi 2,4 GHz en el router.",
   "Consulta la doc de ZHA sobre el cambio de canal y cuándo es seguro hacerlo (algunos dispositivos pueden necesitar re-emparejarse).",
   "Añade routers Zigbee repartidos por la casa.",
   "Aleja el dongle de USB 3 y routers con un alargador USB."
  ],
  "compatibilidad": [
   "Home Assistant 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración ZHA",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial"
   },
   {
    "titulo": "Zigbee2MQTT — FAQ (interferencias)",
    "url": "https://www.zigbee2mqtt.io/guide/faq/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32/ESP8266"
   ],
   "software": [
    "ESPHome"
   ]
  },
  "id": "esphome-ota-offline",
  "titulo": "ESPHome: el dispositivo sale «offline» y la OTA no encuentra la IP",
  "categoria": "esp",
  "sub": "esphome",
  "tags": [
   "esphome",
   "ota",
   "offline",
   "mdns",
   "use_address",
   "ip",
   "wifi"
  ],
  "sinonimos": [
   "esphome offline",
   "no se puede subir por ota",
   "error resolving ip address esphome"
  ],
  "problema": "El panel de ESPHome muestra el dispositivo como offline o falla la subida OTA aunque el aparato funciona.",
  "diagnostico": [
   "La red bloquea mDNS (<code>.local</code>) entre VLANs o en el router.",
   "El dispositivo cambió de nombre o de IP."
  ],
  "solucion": [
   "Dale IP fija en el router (reserva DHCP).",
   "En el YAML, dentro de <code>wifi:</code>, añade <code>use_address: IP_LOCAL</code> con la IP real.",
   "Sube la configuración (la primera vez puede que por USB).",
   "Si usas VLANs, permite mDNS entre ellas o usa siempre <code>use_address</code>."
  ],
  "compatibilidad": [
   "ESPHome 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Componente WiFi (use_address)",
    "url": "https://esphome.io/components/wifi/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32/ESP8266"
   ],
   "software": [
    "ESPHome"
   ]
  },
  "id": "esphome-fallback-ap",
  "titulo": "ESPHome: cambié de Wi‑Fi y el dispositivo ya no se conecta",
  "categoria": "esp",
  "sub": "wifi",
  "tags": [
   "esphome",
   "wifi",
   "fallback",
   "ap",
   "captive portal",
   "punto de acceso"
  ],
  "sinonimos": [
   "cambie la contraseña del wifi",
   "esp32 no conecta nuevo router",
   "recuperar esphome sin usb"
  ],
  "problema": "Cambiaste el router o la contraseña y el ESP ya no vuelve a la red; no quieres desmontarlo para conectarlo por USB.",
  "diagnostico": [
   "Si el YAML tenía <code>ap:</code> y <code>captive_portal:</code>, el dispositivo crea su propia red de rescate.",
   "Si no los tenía, solo queda reflashear por USB."
  ],
  "solucion": [
   "Busca la red Wi‑Fi del dispositivo (punto de acceso de respaldo) con el móvil y conéctate.",
   "Se abre el portal cautivo: elige tu nueva red y escribe la contraseña.",
   "Para la próxima vez, incluye en todos tus YAML <code>wifi:</code> → <code>ap:</code> y la línea <code>captive_portal:</code>."
  ],
  "compatibilidad": [
   "ESPHome 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Captive Portal",
    "url": "https://esphome.io/components/captive_portal/",
    "tipo": "oficial"
   },
   {
    "titulo": "ESPHome — Componente WiFi",
    "url": "https://esphome.io/components/wifi/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "ESPHome",
    "Home Assistant"
   ]
  },
  "id": "esphome-api-cifrado",
  "titulo": "Home Assistant pide la clave de cifrado de un dispositivo ESPHome",
  "categoria": "esp",
  "sub": "esphome",
  "tags": [
   "esphome",
   "api",
   "encryption",
   "clave",
   "noise psk",
   "home assistant"
  ],
  "sinonimos": [
   "esphome encryption key",
   "pide clave esphome",
   "no puedo añadir esphome"
  ],
  "problema": "Al añadir un dispositivo ESPHome, Home Assistant pide una «clave de cifrado» que no sabes cuál es.",
  "diagnostico": [
   "La API nativa está cifrada con una clave (<code>api:</code> → <code>encryption:</code> → <code>key:</code>) que está en el YAML del dispositivo.",
   "Las contraseñas de API antiguas están obsoletas."
  ],
  "solucion": [
   "Abre el YAML del dispositivo en el panel de ESPHome y copia el valor de <code>key</code> de <code>api: encryption:</code>.",
   "Pégalo en Home Assistant.",
   "Si no tiene, añade una clave base64 de 32 bytes (el panel de ESPHome la genera al crear el dispositivo) y vuelve a subir el firmware."
  ],
  "compatibilidad": [
   "ESPHome 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Componente API nativa",
    "url": "https://esphome.io/components/api/",
    "tipo": "oficial"
   },
   {
    "titulo": "Home Assistant — Integración ESPHome",
    "url": "https://www.home-assistant.io/integrations/esphome/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32 (clásico)"
   ],
   "software": []
  },
  "id": "esp32-pines-strapping",
  "titulo": "ESP32 no arranca o se comporta raro al conectar algo a ciertos pines",
  "categoria": "esp",
  "sub": "pines",
  "tags": [
   "esp32",
   "gpio",
   "strapping",
   "gpio0",
   "gpio2",
   "gpio12",
   "gpio15",
   "pines",
   "arranque"
  ],
  "sinonimos": [
   "esp32 no arranca con sensor conectado",
   "que pines usar esp32",
   "gpio12 problema"
  ],
  "problema": "El ESP32 no arranca, entra en modo descarga o falla la flash cuando hay un sensor/relé conectado a ciertos GPIO.",
  "diagnostico": [
   "Algunos pines son de <i>strapping</i> (GPIO0, GPIO2, GPIO5, GPIO12, GPIO15): su nivel al arrancar decide el modo de arranque y la tensión de la flash.",
   "GPIO34–39 solo son de entrada y no tienen pull-up interno.",
   "GPIO6–11 suelen estar conectados a la flash interna: no los uses."
  ],
  "solucion": [
   "Mueve sensores y relés a pines «seguros» (p. ej. GPIO4, 13, 14, 16–33 según la placa).",
   "Si necesitas un pin de strapping, asegúrate de que no se fuerza a un nivel durante el arranque.",
   "Usa GPIO34–39 solo como entradas, con resistencia pull-up externa si hace falta.",
   "Consulta siempre el pinout de tu placa concreta."
  ],
  "compatibilidad": [
   "ESP32 clásico (los S2/S3/C3 tienen otros pines de strapping)"
  ],
  "fuentes": [
   {
    "titulo": "Espressif — GPIO del ESP32 (strapping pins)",
    "url": "https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/gpio.html",
    "tipo": "oficial"
   },
   {
    "titulo": "ESPHome — Sensor ADC (pines ESP32)",
    "url": "https://esphome.io/components/sensor/adc/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15",
  "saberMas": [
   {
    "fuente": "Proyectos MicroPIC (YouTube)",
    "titulo": "Supera los límites en tus proyectos añadiendo un expansor de pines por menos de 1.5€ (Proyectos MicroPIC, YouTube)",
    "url": "https://www.youtube.com/watch?v=EnBJcxiU5nY",
    "fecha": "2024-08-18",
    "nota": "Si te faltan pines «seguros»: expansor MCP23017 con 16 GPIO por I²C (en el vídeo, con un ESP8266)."
   }
  ]
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32"
   ],
   "software": [
    "ESPHome o Arduino"
   ]
  },
  "id": "esp32-adc2-wifi",
  "titulo": "Las lecturas analógicas del ESP32 fallan cuando el Wi‑Fi está activo",
  "categoria": "esp",
  "sub": "pines",
  "tags": [
   "esp32",
   "adc",
   "adc2",
   "analogico",
   "wifi",
   "sensor",
   "analogread"
  ],
  "sinonimos": [
   "analogread devuelve 0",
   "adc no funciona con wifi",
   "esp32 adc2"
  ],
  "problema": "Un sensor analógico da lecturas fijas o erróneas en cuanto el ESP32 conecta al Wi‑Fi.",
  "diagnostico": [
   "En ESP32, ESP32-S2 y ESP32-S3 el ADC2 lo comparte el driver Wi‑Fi: Espressif lo documenta como limitación de hardware y, mientras el Wi‑Fi lo usa, las lecturas de ADC2 pueden fallar.",
   "En el ESP32 clásico los pines del ADC2 son GPIO0, 2, 4, 12–15 y 25–27; los del ADC1, GPIO32–39."
  ],
  "solucion": [
   "Usa pines del ADC1 (en el ESP32 clásico, GPIO32–39) para sensores analógicos.",
   "En ESPHome, cambia el <code>pin:</code> del sensor <code>adc</code> a uno del ADC1 (la doc trae la tabla por variante).",
   "Si necesitas más entradas, añade un ADC externo por I²C (p. ej. ADS1115)."
  ],
  "compatibilidad": [
   "ESP32",
   "ESP32-S2",
   "ESP32-S3 (pines distintos: ver tabla)"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Sensor ADC (tabla ADC1/ADC2 por variante)",
    "url": "https://esphome.io/components/sensor/adc/",
    "tipo": "oficial"
   },
   {
    "titulo": "ESP-IDF — ADC oneshot: limitaciones de hardware (ADC2 y Wi‑Fi)",
    "url": "https://github.com/espressif/esp-idf/blob/master/docs/en/api-reference/peripherals/adc/adc_oneshot.rst",
    "tipo": "github"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32/Arduino por USB"
   ],
   "software": [
    "Linux"
   ]
  },
  "id": "linux-dialout-serial",
  "titulo": "Permission denied al abrir /dev/ttyUSB0 o /dev/ttyACM0",
  "categoria": "esp",
  "sub": "flasheo",
  "tags": [
   "dialout",
   "ttyusb0",
   "ttyacm0",
   "permisos",
   "puerto serie",
   "esptool",
   "arduino"
  ],
  "sinonimos": [
   "permission denied ttyusb0",
   "no puedo subir sketch linux",
   "could not open port"
  ],
  "problema": "Al flashear un ESP32 o Arduino desde Linux: <code>could not open port /dev/ttyUSB0: Permission denied</code>.",
  "diagnostico": [
   "Tu usuario no pertenece al grupo que puede usar puertos serie (<code>dialout</code> en Debian/Ubuntu/Raspberry Pi OS)."
  ],
  "solucion": [
   "Añade tu usuario: <code>sudo usermod -a -G dialout $USER</code>.",
   "Cierra sesión y vuelve a entrar (o reinicia) para que se aplique.",
   "Comprueba con <code>groups</code> que aparece <code>dialout</code>.",
   "En Arch y derivadas el grupo puede llamarse <code>uucp</code>."
  ],
  "compatibilidad": [
   "Debian",
   "Ubuntu",
   "Raspberry Pi OS",
   "Arch (uucp)"
  ],
  "fuentes": [
   {
    "titulo": "Espressif — Establecer conexión serie (grupo dialout)",
    "url": "https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/establish-serial-connection.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32"
   ],
   "software": [
    "Arduino IDE 2.x"
   ]
  },
  "id": "arduino-ide-esp32",
  "titulo": "Arduino IDE no muestra las placas ESP32",
  "categoria": "esp",
  "sub": "flasheo",
  "tags": [
   "arduino ide",
   "esp32",
   "gestor de placas",
   "board manager",
   "json",
   "instalar"
  ],
  "sinonimos": [
   "no aparece esp32 en arduino",
   "añadir esp32 arduino ide"
  ],
  "problema": "En Arduino IDE no aparece ninguna placa ESP32 para elegir.",
  "diagnostico": [
   "El soporte del ESP32 no viene de serie: hay que añadir la URL del gestor de placas de Espressif."
  ],
  "solucion": [
   "Arduino IDE → Preferencias → «URLs adicionales de gestor de placas».",
   "Añade <code>https://espressif.github.io/arduino-esp32/package_esp32_index.json</code>.",
   "Herramientas → Placa → Gestor de placas, busca «esp32» e instala el paquete de Espressif.",
   "Elige tu placa y puerto. Si no sale el puerto, mira la ficha de drivers USB."
  ],
  "compatibilidad": [
   "Windows",
   "macOS",
   "Linux"
  ],
  "fuentes": [
   {
    "titulo": "Arduino-ESP32 — Instalación",
    "url": "https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32/ESP8266",
    "DHT22 o DHT11",
    "Resistencia pull-up"
   ],
   "software": [
    "ESPHome"
   ]
  },
  "id": "esphome-dht-nan",
  "titulo": "Sensor DHT22 en ESPHome da NaN o lecturas erráticas",
  "categoria": "esp",
  "sub": "pines",
  "tags": [
   "dht22",
   "dht11",
   "esphome",
   "nan",
   "temperatura",
   "humedad",
   "pull-up"
  ],
  "sinonimos": [
   "dht22 nan",
   "sensor temperatura no lee",
   "dht no funciona"
  ],
  "problema": "El sensor DHT22/DHT11 devuelve <code>NaN</code>, errores de lectura o valores que saltan.",
  "diagnostico": [
   "Falta resistencia pull-up en la línea de datos.",
   "Cable largo o mala alimentación.",
   "Modelo mal indicado en el YAML.",
   "Intervalo de lectura demasiado corto."
  ],
  "solucion": [
   "Pon una resistencia pull-up (típicamente 4,7–10 kΩ) entre datos y VCC, como indica la doc.",
   "Indica el <code>model:</code> correcto (DHT22, DHT11, AM2302…).",
   "Usa <code>update_interval</code> de 60 s o más.",
   "Si sigue fallando, considera un sensor I²C más fiable (BME280, SHT3x)."
  ],
  "compatibilidad": [
   "ESPHome 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Sensor DHT",
    "url": "https://esphome.io/components/sensor/dht/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "ESP32/ESP8266"
   ],
   "software": [
    "ESPHome"
   ]
  },
  "id": "esphome-logs-cli",
  "titulo": "Ver los logs de un dispositivo ESPHome para saber qué le pasa",
  "categoria": "esp",
  "sub": "esphome",
  "tags": [
   "esphome",
   "logs",
   "cli",
   "depurar",
   "debug",
   "usb",
   "serie"
  ],
  "sinonimos": [
   "esphome no hace nada",
   "ver logs esp32",
   "depurar esphome"
  ],
  "problema": "El dispositivo no se comporta como esperas y no sabes por dónde empezar.",
  "diagnostico": [
   "En los logs ves la conexión Wi‑Fi, las lecturas de los sensores y los errores de arranque."
  ],
  "solucion": [
   "Desde el panel de ESPHome, botón «Logs» (por red o USB).",
   "Por línea de comandos: <code>esphome logs dispositivo.yaml</code>.",
   "Si no arranca la red, conéctalo por USB y elige el puerto serie.",
   "Sube el nivel de detalle con <code>logger:</code> → <code>level: DEBUG</code>."
  ],
  "compatibilidad": [
   "ESPHome 2024.x–2026.x"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Guía de la línea de comandos",
    "url": "https://esphome.io/guides/cli/",
    "tipo": "oficial"
   }
  ],
  "exito": "<code>esphome logs &lt;archivo&gt;.yaml</code> valida la configuración y empieza a mostrar los logs del dispositivo.",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Linux con systemd"
   ]
  },
  "id": "systemd-servicio-falla",
  "titulo": "Un servicio de systemd no arranca: cómo ver el porqué",
  "categoria": "linux",
  "sub": "systemd",
  "tags": [
   "systemd",
   "systemctl",
   "journalctl",
   "servicio",
   "failed",
   "logs",
   "arranque"
  ],
  "sinonimos": [
   "servicio no arranca",
   "failed to start",
   "ver errores servicio linux"
  ],
  "problema": "Un servicio (nginx, ollama, docker…) aparece como <code>failed</code> o no se inicia al arrancar.",
  "diagnostico": [
   "Hay un error en su archivo de configuración.",
   "Otro programa ya ocupa el puerto.",
   "No está habilitado para arrancar con el sistema."
  ],
  "solucion": [
   "Estado y últimas líneas: <code>systemctl status nombre</code>.",
   "Log completo del arranque actual: <code>journalctl -u nombre -b</code>.",
   "Sigue el log en vivo: <code>journalctl -u nombre -f</code>.",
   "Tras corregir: <code>sudo systemctl restart nombre</code>.",
   "Para que arranque solo: <code>sudo systemctl enable nombre</code>."
  ],
  "compatibilidad": [
   "Debian",
   "Ubuntu",
   "Raspberry Pi OS",
   "Fedora"
  ],
  "fuentes": [
   {
    "titulo": "man systemctl",
    "url": "https://man7.org/linux/man-pages/man1/systemctl.1.html",
    "tipo": "oficial"
   },
   {
    "titulo": "man journalctl",
    "url": "https://man7.org/linux/man-pages/man1/journalctl.1.html",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "atareao (YouTube)",
    "titulo": "714 - El SECRETO para DOMINAR Systemd en Linux (atareao, YouTube)",
    "url": "https://www.youtube.com/watch?v=--yVInq00QY",
    "fecha": "2025-07-24",
    "nota": "Estado de servicios, journalctl y servicios propios."
   }
  ],
  "exito": "<code>systemctl status &lt;servicio&gt;</code> muestra «Active: active (running) since …».",
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Linux"
   ]
  },
  "id": "linux-que-ocupa-disco",
  "titulo": "Disco lleno en Linux: averiguar qué ocupa el espacio",
  "categoria": "linux",
  "sub": "disco",
  "tags": [
   "disco lleno",
   "df",
   "du",
   "espacio",
   "no space left on device",
   "ncdu"
  ],
  "sinonimos": [
   "no space left on device",
   "se ha llenado el disco",
   "sd llena raspberry"
  ],
  "problema": "Aparece «No space left on device» y no sabes qué carpeta se lo ha comido.",
  "diagnostico": [
   "Logs que crecen (journald, aplicaciones).",
   "Imágenes y volúmenes de Docker.",
   "Caché de apt.",
   "Copias de seguridad olvidadas."
  ],
  "solucion": [
   "Mira qué sistema de ficheros está lleno: <code>df -h</code>.",
   "Busca las carpetas grandes: <code>sudo du -xh --max-depth=1 / | sort -h</code>.",
   "Repite entrando en la carpeta más grande hasta encontrar al culpable.",
   "Limpia caché de apt: <code>sudo apt clean</code>.",
   "Si es Docker o journald, mira sus fichas específicas."
  ],
  "compatibilidad": [
   "Cualquier distribución Linux"
  ],
  "fuentes": [
   {
    "titulo": "man du",
    "url": "https://man7.org/linux/man-pages/man1/du.1.html",
    "tipo": "oficial"
   },
   {
    "titulo": "man df",
    "url": "https://man7.org/linux/man-pages/man1/df.1.html",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "Pelado Nerd (YouTube)",
    "titulo": "MAS DE 30 COMANDOS en LINUX para manejar tu SERVER! (Pelado Nerd, YouTube)",
    "url": "https://www.youtube.com/watch?v=0BA4k3jweaE",
    "fecha": "2021-04-27",
    "nota": "Incluye du -sh para ver qué directorio ocupa el disco."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Docker Engine"
   ]
  },
  "id": "docker-compose-v1-v2",
  "titulo": "«docker-compose: command not found» (Compose v1 vs v2)",
  "categoria": "linux",
  "sub": "docker",
  "tags": [
   "docker compose",
   "docker-compose",
   "v2",
   "plugin",
   "command not found"
  ],
  "sinonimos": [
   "docker-compose no existe",
   "docker compose no funciona",
   "comando compose no encontrado"
  ],
  "problema": "Un tutorial dice <code>docker-compose up -d</code> y tu sistema contesta que el comando no existe.",
  "diagnostico": [
   "Compose v1 (<code>docker-compose</code>, con guion) está retirado; Compose v2 es un plugin de Docker que se usa como <code>docker compose</code>."
  ],
  "solucion": [
   "Usa <code>docker compose up -d</code> (con espacio).",
   "Si no existe, instala el plugin: en Debian/Ubuntu con el repo oficial de Docker, <code>sudo apt install docker-compose-plugin</code>.",
   "Comprueba: <code>docker compose version</code>.",
   "Tus archivos <code>docker-compose.yml</code> siguen sirviendo."
  ],
  "compatibilidad": [
   "Docker Engine 20.10+"
  ],
  "fuentes": [
   {
    "titulo": "Docker docs — Migrar a Compose v2",
    "url": "https://docs.docker.com/compose/migrate/",
    "tipo": "oficial"
   },
   {
    "titulo": "Docker docs — Instalar Docker Engine en Debian",
    "url": "https://docs.docker.com/engine/install/debian/",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "Pelado Nerd (YouTube)",
    "titulo": "DOCKER De NOVATO a PRO! (CURSO COMPLETO EN ESPAÑOL) (Pelado Nerd, YouTube)",
    "url": "https://www.youtube.com/watch?v=CV_Uf3Dq-EU",
    "fecha": "2021-04-20",
    "nota": "Curso de Docker en español; incluye Docker Compose (sintaxis de 2021, docker-compose v1)."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Linux (iproute2)"
   ]
  },
  "id": "linux-puerto-en-uso",
  "titulo": "«address already in use»: qué programa ocupa el puerto",
  "categoria": "linux",
  "sub": "systemd",
  "tags": [
   "puerto",
   "address already in use",
   "ss",
   "bind",
   "docker",
   "ocupado"
  ],
  "sinonimos": [
   "puerto ocupado",
   "bind address already in use",
   "port is already allocated"
  ],
  "problema": "Un servicio o contenedor no arranca porque «el puerto ya está en uso».",
  "diagnostico": [
   "Otro servicio escucha en ese puerto (p. ej. Apache en el 80, systemd-resolved en el 53).",
   "Un contenedor antiguo sigue vivo."
  ],
  "solucion": [
   "Mira quién escucha: <code>sudo ss -ltnp</code> (TCP) o <code>sudo ss -lunp</code> (UDP).",
   "Filtra: <code>sudo ss -ltnp | grep :PUERTO</code>.",
   "Para el programa culpable o cambia el puerto del nuevo servicio.",
   "En Docker, revisa contenedores parados con <code>docker ps -a</code>."
  ],
  "compatibilidad": [
   "Cualquier distribución Linux moderna"
  ],
  "fuentes": [
   {
    "titulo": "man ss",
    "url": "https://man7.org/linux/man-pages/man8/ss.8.html",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "Pelado Nerd (YouTube)",
    "titulo": "MÁS COMANDOS de LINUX para MANEJAR tu SERVER - PARTE 2! (Pelado Nerd, YouTube)",
    "url": "https://www.youtube.com/watch?v=LbR83223zdM",
    "fecha": "2021-06-08",
    "nota": "Incluye netstat -nap para ver qué programa escucha en cada puerto."
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "cron"
   ]
  },
  "id": "cron-no-ejecuta",
  "titulo": "Mi script funciona a mano pero no desde cron",
  "categoria": "linux",
  "sub": "systemd",
  "tags": [
   "cron",
   "crontab",
   "script",
   "path",
   "variables",
   "programar"
  ],
  "sinonimos": [
   "cron no funciona",
   "crontab no ejecuta",
   "tarea programada no va"
  ],
  "problema": "Un script que funciona en la terminal no hace nada cuando lo programas en <code>crontab</code>.",
  "diagnostico": [
   "cron ejecuta con un entorno mínimo: <code>PATH</code> reducido y sin tus variables.",
   "Rutas relativas que dependen del directorio actual.",
   "El script no tiene permiso de ejecución."
  ],
  "solucion": [
   "Usa rutas absolutas para el script y los comandos que llama.",
   "Define <code>PATH=</code> al principio del crontab si hace falta.",
   "Guarda la salida para ver errores: <code>... &gt;&gt; /tmp/script.log 2&gt;&amp;1</code>.",
   "Dale permisos: <code>chmod +x script.sh</code>.",
   "Edita con <code>crontab -e</code>, no a mano."
  ],
  "compatibilidad": [
   "Debian",
   "Ubuntu",
   "Raspberry Pi OS"
  ],
  "fuentes": [
   {
    "titulo": "man 5 crontab",
    "url": "https://man7.org/linux/man-pages/man5/crontab.5.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "comunidad",
  "actualizado": "2026-10",
  "verificacion": "Basado en respuestas de la comunidad (foros) con buen consenso.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Debian/Ubuntu/Raspberry Pi OS"
   ]
  },
  "id": "apt-lock",
  "titulo": "apt: «Could not get lock /var/lib/dpkg/lock»",
  "categoria": "linux",
  "sub": "paquetes",
  "tags": [
   "apt",
   "dpkg",
   "lock",
   "actualizar",
   "unattended-upgrades"
  ],
  "sinonimos": [
   "could not get lock",
   "unable to lock the administration directory",
   "apt bloqueado"
  ],
  "problema": "Al instalar o actualizar sale que no se puede obtener el bloqueo de dpkg.",
  "diagnostico": [
   "Otro proceso de apt está trabajando (actualizaciones automáticas al arrancar, otra terminal, el gestor gráfico).",
   "Una actualización anterior se cortó."
  ],
  "solucion": [
   "Espera unos minutos: suele ser la actualización automática.",
   "Mira quién lo tiene: <code>sudo lsof /var/lib/dpkg/lock-frontend</code>.",
   "Si se cortó una instalación, termina la configuración pendiente: <code>sudo dpkg --configure -a</code>.",
   "No borres los archivos de bloqueo a lo loco: puede dañar la base de datos de paquetes (lo advierte el propio desarrollador de dpkg en el hilo)."
  ],
  "compatibilidad": [
   "Debian",
   "Ubuntu",
   "Raspberry Pi OS"
  ],
  "fuentes": [
   {
    "titulo": "Ask Ubuntu (foro) — «No se puede bloquear el directorio de administración»",
    "url": "https://askubuntu.com/questions/15433/unable-to-lock-the-administration-directory-var-lib-dpkg-is-another-process",
    "tipo": "foro"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "Docker"
   ]
  },
  "id": "docker-limitar-memoria",
  "titulo": "Un contenedor Docker se come toda la RAM del servidor",
  "categoria": "linux",
  "sub": "docker",
  "tags": [
   "docker",
   "memoria",
   "ram",
   "oom",
   "limite",
   "--memory",
   "compose"
  ],
  "sinonimos": [
   "docker consume mucha memoria",
   "servidor se cuelga docker",
   "oom killer"
  ],
  "problema": "Un contenedor (base de datos, IA, navegador) acapara la memoria y el servidor entero se vuelve lento o mata procesos.",
  "diagnostico": [
   "Por defecto un contenedor no tiene límite de memoria.",
   "El OOM killer del kernel termina procesos cuando se agota la RAM."
  ],
  "solucion": [
   "Mira el consumo: <code>docker stats</code>.",
   "Limita al arrancar: <code>docker run --memory=1g ...</code>.",
   "En compose, usa <code>mem_limit: 1g</code> (o <code>deploy.resources.limits.memory</code>).",
   "Recrea el contenedor: <code>docker compose up -d</code>."
  ],
  "compatibilidad": [
   "Docker Engine en Linux"
  ],
  "fuentes": [
   {
    "titulo": "Docker docs — Limitar recursos de contenedores",
    "url": "https://docs.docker.com/engine/containers/resource_constraints/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15",
  "afiliado": {
   "nombre": "Raiola Networks · VPS Cloud",
   "url": "https://gestiondecuenta.eu/aff.php?aff=7120&especial=vps-cloud-frikilabs",
   "texto": "Si tus contenedores se te quedan cortos en casa y quieres moverlos a un servidor: Raiola Networks (VPS Cloud), proveedor español. Si contratas con este enlace, Raiola me da una comisión que va íntegra a mejorar la web, y tú tienes un 20 % de descuento en los VPS Cloud.",
   "cupon": null
  }
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Servidor con Ollama"
   ],
   "software": [
    "Ollama (Linux, systemd)"
   ]
  },
  "id": "ollama-acceso-red",
  "titulo": "Ollama no responde desde otro ordenador de la red",
  "categoria": "ia",
  "sub": "ollama",
  "tags": [
   "ollama",
   "ollama_host",
   "red",
   "11434",
   "open webui",
   "remoto"
  ],
  "sinonimos": [
   "ollama connection refused",
   "acceder a ollama desde otro pc",
   "open webui no conecta ollama"
  ],
  "problema": "Ollama funciona en el servidor, pero desde otro equipo (o desde Open WebUI/Home Assistant en otra máquina) da «connection refused».",
  "diagnostico": [
   "Por defecto Ollama solo escucha en <code>127.0.0.1:11434</code>."
  ],
  "solucion": [
   "Edita el servicio: <code>sudo systemctl edit ollama.service</code>.",
   "Añade bajo <code>[Service]</code>: <code>Environment=\"OLLAMA_HOST=0.0.0.0:11434\"</code>.",
   "Aplica: <code>sudo systemctl daemon-reload</code> y <code>sudo systemctl restart ollama</code>.",
   "Prueba desde otro equipo: <code>curl http://IP_LOCAL:11434</code>.",
   "No lo expongas a Internet sin protección: usa VPN (Tailscale) o un proxy con autenticación."
  ],
  "compatibilidad": [
   "Linux",
   "macOS (launchctl)",
   "Windows (variables de entorno)"
  ],
  "fuentes": [
   {
    "titulo": "Ollama — FAQ (exponer en la red)",
    "url": "https://docs.ollama.com/faq",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "RAM/VRAM suficiente"
   ],
   "software": [
    "Ollama"
   ]
  },
  "id": "ollama-contexto",
  "titulo": "Ollama «olvida» lo que le has dicho: ampliar el contexto",
  "categoria": "ia",
  "sub": "ollama",
  "tags": [
   "ollama",
   "contexto",
   "num_ctx",
   "ollama_context_length",
   "tokens",
   "memoria"
  ],
  "sinonimos": [
   "ollama olvida la conversacion",
   "contexto corto ollama",
   "documento largo ollama"
  ],
  "problema": "Con textos largos o conversaciones extensas, el modelo ignora la primera parte.",
  "diagnostico": [
   "Ollama usa por defecto una ventana de contexto limitada (4096 tokens según su FAQ).",
   "Más contexto = más memoria necesaria."
  ],
  "solucion": [
   "Para todo el servidor: variable <code>OLLAMA_CONTEXT_LENGTH=8192</code> (en el servicio, como en la ficha de acceso en red).",
   "Dentro de <code>ollama run</code>: <code>/set parameter num_ctx 8192</code>.",
   "Por API: <code>\"options\": {\"num_ctx\": 8192}</code>.",
   "Comprueba con <code>ollama ps</code> que el modelo sigue cabiendo en la GPU."
  ],
  "compatibilidad": [
   "Linux",
   "macOS",
   "Windows"
  ],
  "fuentes": [
   {
    "titulo": "Ollama — FAQ (tamaño de contexto)",
    "url": "https://docs.ollama.com/faq",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Disco adicional"
   ],
   "software": [
    "Ollama (Linux)"
   ]
  },
  "id": "ollama-modelos-otro-disco",
  "titulo": "Guardar los modelos de Ollama en otro disco",
  "categoria": "ia",
  "sub": "ollama",
  "tags": [
   "ollama",
   "ollama_models",
   "disco",
   "ssd",
   "espacio",
   "modelos"
  ],
  "sinonimos": [
   "ollama llena el disco",
   "mover modelos ollama",
   "cambiar carpeta modelos"
  ],
  "problema": "Los modelos ocupan decenas de GB y llenan el disco del sistema.",
  "diagnostico": [
   "En Linux se guardan por defecto en <code>/usr/share/ollama/.ollama/models</code>."
  ],
  "solucion": [
   "Crea la carpeta en el disco grande, p. ej. <code>/mnt/ssd/ollama</code>.",
   "Dale permisos al usuario del servicio: <code>sudo chown -R ollama:ollama /mnt/ssd/ollama</code>.",
   "Edita el servicio (<code>sudo systemctl edit ollama.service</code>) y añade <code>Environment=\"OLLAMA_MODELS=/mnt/ssd/ollama\"</code>.",
   "<code>sudo systemctl daemon-reload</code> y <code>sudo systemctl restart ollama</code>; vuelve a descargar o mueve los modelos."
  ],
  "compatibilidad": [
   "Linux",
   "macOS",
   "Windows"
  ],
  "fuentes": [
   {
    "titulo": "Ollama — FAQ (dónde se guardan los modelos)",
    "url": "https://docs.ollama.com/faq",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "GPU NVIDIA/AMD o Apple Silicon"
   ],
   "software": [
    "Ollama"
   ]
  },
  "id": "ollama-gpu-compatible",
  "titulo": "¿Mi tarjeta gráfica sirve para Ollama?",
  "categoria": "ia",
  "sub": "gpu",
  "tags": [
   "ollama",
   "gpu",
   "nvidia",
   "amd",
   "rocm",
   "cuda",
   "compute capability",
   "vram"
  ],
  "sinonimos": [
   "que grafica necesito para ollama",
   "ollama amd",
   "gpu compatible llm"
  ],
  "problema": "Antes de comprar o configurar, quieres saber si tu GPU acelera Ollama.",
  "diagnostico": [
   "NVIDIA: hace falta compute capability 5.0 o superior y un driver reciente (la doc indica versiones mínimas).",
   "AMD: soporte mediante ROCm para una lista concreta de tarjetas.",
   "Apple Silicon: acelerado por Metal.",
   "Si el modelo no cabe en VRAM, parte se ejecuta en CPU y va mucho más lento."
  ],
  "solucion": [
   "Busca tu modelo de GPU en la página oficial de GPUs de Ollama.",
   "Actualiza el driver a la versión mínima indicada.",
   "Carga un modelo y comprueba con <code>ollama ps</code> la columna PROCESSOR (<code>100% GPU</code> es lo ideal).",
   "Si no cabe, elige un modelo más pequeño o más cuantizado."
  ],
  "compatibilidad": [
   "Linux",
   "Windows",
   "macOS"
  ],
  "fuentes": [
   {
    "titulo": "Ollama — Hardware de GPU soportado",
    "url": "https://docs.ollama.com/gpu",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — FAQ (¿está en la GPU?)",
    "url": "https://docs.ollama.com/faq",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "RAM/VRAM suficiente"
   ],
   "software": [
    "Ollama"
   ]
  },
  "id": "ollama-mantener-cargado",
  "titulo": "Ollama tarda mucho en la primera respuesta: mantener el modelo cargado",
  "categoria": "ia",
  "sub": "gpu",
  "tags": [
   "ollama",
   "keep_alive",
   "latencia",
   "carga",
   "home assistant",
   "precarga"
  ],
  "sinonimos": [
   "ollama tarda en responder",
   "primera respuesta lenta",
   "modelo se descarga"
  ],
  "problema": "Tras unos minutos sin uso, la siguiente pregunta tarda mucho (p. ej. el asistente de voz de Home Assistant).",
  "diagnostico": [
   "Ollama descarga el modelo de memoria tras 5 minutos sin uso, por defecto."
  ],
  "solucion": [
   "Para todo el servidor: <code>OLLAMA_KEEP_ALIVE=-1</code> (siempre cargado) o una duración como <code>24h</code>.",
   "Por petición: parámetro <code>keep_alive</code> en <code>/api/generate</code> o <code>/api/chat</code>.",
   "Precarga al arrancar: <code>ollama run modelo \"\"</code>.",
   "Ten en cuenta que la memoria queda ocupada."
  ],
  "compatibilidad": [
   "Linux",
   "macOS",
   "Windows"
  ],
  "fuentes": [
   {
    "titulo": "Ollama — FAQ (keep_alive)",
    "url": "https://docs.ollama.com/faq",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi o servidor siempre encendido"
   ],
   "software": [
    "Tailscale"
   ]
  },
  "id": "tailscale-subnet-router",
  "titulo": "Tailscale: acceder a toda tu red de casa (subnet router)",
  "categoria": "redes",
  "sub": "vpn",
  "tags": [
   "tailscale",
   "subnet router",
   "advertise-routes",
   "vpn",
   "ip forwarding",
   "acceso remoto"
  ],
  "sinonimos": [
   "ver toda la red con tailscale",
   "acceder a la impresora desde fuera",
   "tailscale subred"
  ],
  "problema": "Con Tailscale llegas a la Pi, pero no a otros aparatos de casa que no pueden llevar Tailscale (impresora, NAS, cámaras).",
  "diagnostico": [
   "Hace falta que un equipo anuncie la subred local y reenvíe el tráfico."
  ],
  "solucion": [
   "En la Pi, activa el reenvío IP: <code>echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf</code> y <code>sudo sysctl -p /etc/sysctl.d/99-tailscale.conf</code>.",
   "Anuncia la red: <code>sudo tailscale set --advertise-routes=192.168.1.0/24</code> (tu rango real).",
   "Aprueba la ruta en la consola de administración de Tailscale.",
   "En clientes Linux, acepta rutas con <code>--accept-routes</code>."
  ],
  "compatibilidad": [
   "Linux",
   "Raspberry Pi OS"
  ],
  "fuentes": [
   {
    "titulo": "Tailscale — Subnet routers",
    "url": "https://tailscale.com/kb/1019/subnets",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Equipo siempre encendido en casa"
   ],
   "software": [
    "Tailscale"
   ]
  },
  "id": "tailscale-exit-node",
  "titulo": "Tailscale: navegar como si estuvieras en casa (exit node)",
  "categoria": "redes",
  "sub": "vpn",
  "tags": [
   "tailscale",
   "exit node",
   "vpn",
   "wifi publica",
   "advertise-exit-node"
  ],
  "sinonimos": [
   "vpn para wifi publica",
   "salir a internet por casa",
   "tailscale exit"
  ],
  "problema": "En una Wi‑Fi pública quieres que todo tu tráfico salga por la conexión de casa.",
  "diagnostico": [
   "Necesitas un nodo de salida (exit node) en casa con reenvío IP activado."
  ],
  "solucion": [
   "Activa el reenvío IP en la Pi (igual que en el subnet router).",
   "Anúnciala: <code>sudo tailscale set --advertise-exit-node</code>.",
   "Apruébala en la consola de administración.",
   "En el móvil/portátil, elige ese dispositivo como exit node en la app de Tailscale."
  ],
  "compatibilidad": [
   "Linux",
   "Raspberry Pi OS",
   "clientes de todas las plataformas"
  ],
  "fuentes": [
   {
    "titulo": "Tailscale — Exit nodes",
    "url": "https://tailscale.com/kb/1103/exit-nodes",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi o servidor"
   ],
   "software": [
    "Docker",
    "Pi-hole"
   ]
  },
  "id": "pihole-puerto-53",
  "titulo": "Pi-hole en Docker no arranca: el puerto 53 está ocupado",
  "categoria": "redes",
  "sub": "dns",
  "tags": [
   "pi-hole",
   "dns",
   "puerto 53",
   "systemd-resolved",
   "docker",
   "dnsstublistener"
  ],
  "sinonimos": [
   "pihole port 53 already in use",
   "pi-hole no arranca ubuntu",
   "bloqueador de anuncios dns"
  ],
  "problema": "Al levantar Pi-hole en Docker sale que el puerto 53 ya está en uso (típico en Ubuntu).",
  "diagnostico": [
   "<code>systemd-resolved</code> tiene un «stub listener» DNS escuchando en el puerto 53."
  ],
  "solucion": [
   "Compruébalo: <code>sudo ss -lunp | grep :53</code>.",
   "Desactiva el stub como indica la doc de Pi-hole: crea <code>/etc/systemd/resolved.conf.d/no-stub.conf</code> con <code>[Resolve]</code> y <code>DNSStubListener=no</code>.",
   "Reinicia: <code>sudo systemctl restart systemd-resolved</code>.",
   "Levanta Pi-hole de nuevo y pon su IP como DNS en el router."
  ],
  "compatibilidad": [
   "Ubuntu",
   "Debian con systemd-resolved"
  ],
  "fuentes": [
   {
    "titulo": "Pi-hole docs — Docker: trucos y consejos",
    "url": "https://docs.pi-hole.net/docker/tips-and-tricks/",
    "tipo": "oficial"
   },
   {
    "titulo": "docker-pi-hole en GitHub",
    "url": "https://github.com/pi-hole/docker-pi-hole",
    "tipo": "github"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "OpenSSH server"
   ]
  },
  "id": "ssh-endurecer",
  "titulo": "Endurecer SSH: solo claves y sin root",
  "categoria": "redes",
  "sub": "ssh",
  "tags": [
   "ssh",
   "sshd_config",
   "passwordauthentication",
   "permitrootlogin",
   "seguridad",
   "claves"
  ],
  "sinonimos": [
   "proteger ssh",
   "desactivar contraseña ssh",
   "ataques ssh"
  ],
  "problema": "Tu servidor recibe intentos de acceso por SSH y entras con contraseña.",
  "diagnostico": [
   "La autenticación por contraseña permite ataques de fuerza bruta.",
   "Entrar como root directamente aumenta el riesgo."
  ],
  "solucion": [
   "Primero configura y PRUEBA el acceso con clave (ver ficha «SSH publickey»).",
   "Edita <code>/etc/ssh/sshd_config</code> (o un archivo en <code>sshd_config.d/</code>): <code>PasswordAuthentication no</code> y <code>PermitRootLogin no</code>.",
   "Comprueba la sintaxis: <code>sudo sshd -t</code>.",
   "Reinicia el servicio SSH sin cerrar tu sesión actual y prueba en otra terminal.",
   "Opcional: Fail2Ban para bloquear IPs insistentes."
  ],
  "compatibilidad": [
   "Debian",
   "Ubuntu",
   "Raspberry Pi OS"
  ],
  "fuentes": [
   {
    "titulo": "man sshd_config (OpenBSD)",
    "url": "https://man.openbsd.org/sshd_config",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi docs — Mejorar la seguridad de SSH",
    "url": "https://www.raspberrypi.com/documentation/security/operational-security.html#improve-ssh-security",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "comunidad",
  "actualizado": "2026-10",
  "verificacion": "Diagnóstico de consenso en comunidades de autoalojamiento; las soluciones enlazan a documentación oficial.",
  "requisitos": {
   "hardware": [
    "Router"
   ],
   "software": []
  },
  "id": "cgnat-sin-puertos",
  "titulo": "No puedo abrir puertos: mi operador usa CG-NAT",
  "categoria": "redes",
  "sub": "vpn",
  "tags": [
   "cgnat",
   "cg-nat",
   "abrir puertos",
   "ip publica",
   "cloudflare tunnel",
   "tailscale",
   "fibra"
  ],
  "sinonimos": [
   "abrir puertos no funciona",
   "no tengo ip publica",
   "acceso desde fuera no va"
  ],
  "problema": "Abres el puerto en el router pero desde fuera no se llega a tu servidor.",
  "diagnostico": [
   "Si la IP WAN del router no coincide con tu IP pública (o está en 100.64.0.0/10), estás detrás de CG-NAT y el reenvío de puertos no funciona."
  ],
  "solucion": [
   "Compara la IP WAN del router con la que te muestra cualquier web de «mi IP».",
   "Opción 1: pide a tu operador IP pública (algunos lo hacen gratis).",
   "Opción 2: usa una VPN que no necesita puertos abiertos (Tailscale).",
   "Opción 3: un túnel saliente como Cloudflare Tunnel para publicar una web."
  ],
  "compatibilidad": [
   "Cualquier conexión"
  ],
  "fuentes": [
   {
    "titulo": "Cloudflare — Cloudflare Tunnel",
    "url": "https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/",
    "tipo": "oficial"
   },
   {
    "titulo": "Tailscale — Subnet routers",
    "url": "https://tailscale.com/kb/1019/subnets",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [],
   "software": [
    "fail2ban"
   ]
  },
  "id": "fail2ban-ssh",
  "titulo": "Bloquear IPs que atacan tu SSH con Fail2Ban",
  "categoria": "redes",
  "sub": "firewall",
  "tags": [
   "fail2ban",
   "ssh",
   "fuerza bruta",
   "seguridad",
   "jail",
   "bloquear ip"
  ],
  "sinonimos": [
   "muchos intentos ssh",
   "bloquear ataques ssh",
   "proteger raspberry internet"
  ],
  "problema": "El log de SSH está lleno de intentos fallidos desde IPs desconocidas.",
  "diagnostico": [
   "Un puerto SSH accesible desde Internet recibe ataques automáticos continuamente."
  ],
  "solucion": [
   "Instala: <code>sudo apt install fail2ban</code>.",
   "Crea <code>/etc/fail2ban/jail.local</code> (no edites <code>jail.conf</code>) y activa la jaula <code>[sshd]</code> con <code>enabled = true</code>.",
   "Reinicia: <code>sudo systemctl restart fail2ban</code>.",
   "Comprueba: <code>sudo fail2ban-client status sshd</code>.",
   "Mejor aún: no expongas SSH y entra por VPN."
  ],
  "compatibilidad": [
   "Debian",
   "Ubuntu",
   "Raspberry Pi OS"
  ],
  "fuentes": [
   {
    "titulo": "Raspberry Pi docs — Fail2Ban",
    "url": "https://www.raspberrypi.com/documentation/security/operational-security.html#block-suspicious-activity-with-fail2ban",
    "tipo": "oficial"
   },
   {
    "titulo": "Fail2Ban en GitHub",
    "url": "https://github.com/fail2ban/fail2ban",
    "tipo": "github"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Impresora FDM"
   ],
   "software": [
    "Laminador (PrusaSlicer, Cura, Orca…)"
   ]
  },
  "id": "impresion-stringing",
  "titulo": "Impresión 3D con «pelos»: stringing y oozing",
  "categoria": "maker",
  "sub": "calidad",
  "tags": [
   "stringing",
   "oozing",
   "hilos",
   "pelos",
   "retraccion",
   "temperatura",
   "petg",
   "pla"
  ],
  "sinonimos": [
   "salen hilos en la impresion",
   "telaraña impresion 3d",
   "pieza con pelos"
  ],
  "problema": "Entre partes de la pieza quedan hilillos de filamento, como telarañas.",
  "diagnostico": [
   "Temperatura de boquilla demasiado alta.",
   "Retracción insuficiente o mal configurada.",
   "Filamento húmedo.",
   "Boquilla sucia (frecuente con PETG)."
  ],
  "solucion": [
   "Parte del perfil oficial del fabricante para tu filamento.",
   "Baja la temperatura de la boquilla 5–10 °C y compara.",
   "Revisa la retracción (longitud y velocidad) en el laminador.",
   "Activa «Evitar cruzar perímetros».",
   "Seca el filamento si ha estado al aire y limpia la boquilla."
  ],
  "compatibilidad": [
   "Impresoras FDM en general"
  ],
  "fuentes": [
   {
    "titulo": "Base de conocimiento de Prusa — Hilos y goteo (stringing)",
    "url": "https://help.prusa3d.com/article/stringing-and-oozing_1805",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Secador de filamento o similar"
   ],
   "software": []
  },
  "id": "filamento-humedo",
  "titulo": "Filamento húmedo: chasquidos, burbujas y mala calidad",
  "categoria": "maker",
  "sub": "filamento",
  "tags": [
   "filamento",
   "humedad",
   "secar",
   "petg",
   "tpu",
   "nylon",
   "chasquidos"
  ],
  "sinonimos": [
   "filamento hace ruido",
   "burbujas al imprimir",
   "secar filamento"
  ],
  "problema": "Al imprimir se oyen chasquidos, salen burbujas o la superficie queda rugosa y con hilos.",
  "diagnostico": [
   "Muchos filamentos absorben humedad del aire; al calentarse, el agua se evapora en la boquilla.",
   "PETG, TPU y nylon son especialmente sensibles; incluso PLA puede verse afectado."
  ],
  "solucion": [
   "Seca el filamento con un secador de filamento u horno con temperatura controlada, siguiendo la temperatura del fabricante.",
   "Comprueba que la bobina aguanta esa temperatura.",
   "Guárdalo en caja hermética con desecante.",
   "Imprime desde caja seca si el ambiente es húmedo."
  ],
  "compatibilidad": [
   "PLA, PETG, TPU, nylon…"
  ],
  "fuentes": [
   {
    "titulo": "Prusa Knowledge Base — Secar el filamento",
    "url": "https://help.prusa3d.com/article/drying-filament_332086",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Impresora FDM"
   ],
   "software": []
  },
  "id": "boquilla-atascada",
  "titulo": "Boquilla atascada: no sale filamento",
  "categoria": "maker",
  "sub": "extrusion",
  "tags": [
   "atasco",
   "boquilla",
   "clog",
   "cold pull",
   "extrusor",
   "hotend"
  ],
  "sinonimos": [
   "no sale filamento",
   "boquilla obstruida",
   "extrusor hace clic"
  ],
  "problema": "La impresora mueve el cabezal pero no extruye, o el extrusor hace «clic».",
  "diagnostico": [
   "Restos carbonizados o de otro material en la boquilla.",
   "Atasco en el disipador (heat creep).",
   "Boquilla demasiado cerca de la cama en la primera capa."
  ],
  "solucion": [
   "Comprueba si puedes cargar/descargar filamento.",
   "Si es un atasco parcial, haz un <i>cold pull</i> (tirón en frío) siguiendo la guía del fabricante.",
   "Si no entra nada, desmonta según el manual de tu hotend.",
   "Revisa la altura de la primera capa (ficha de primera capa)."
  ],
  "compatibilidad": [
   "Impresoras FDM en general (pasos de Prusa MK3S/MK2.5S)"
  ],
  "fuentes": [
   {
    "titulo": "Prusa Knowledge Base — Boquilla/hotend atascado",
    "url": "https://help.prusa3d.com/article/clogged-nozzle-hotend-mk3s-mk2-5s_2008",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "nivel": "avanzado",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basado en la documentación oficial citada.",
  "requisitos": {
   "hardware": [
    "Impresora con Klipper",
    "Acelerómetro (opcional)"
   ],
   "software": [
    "Klipper"
   ]
  },
  "id": "klipper-input-shaping",
  "titulo": "Ghosting/ringing: ondas en las paredes (input shaping con Klipper)",
  "categoria": "maker",
  "sub": "calidad",
  "tags": [
   "klipper",
   "input shaping",
   "ringing",
   "ghosting",
   "resonancia",
   "acelerometro",
   "adxl345"
  ],
  "sinonimos": [
   "ondas en la pieza",
   "ecos en las paredes",
   "vibraciones impresora"
  ],
  "problema": "Junto a esquinas y letras aparecen «ecos» u ondas repetidas en las paredes.",
  "diagnostico": [
   "Vibraciones del marco al cambiar de dirección a alta aceleración.",
   "Correas flojas o tornillos sueltos."
  ],
  "solucion": [
   "Revisa tensión de correas y tornillería.",
   "En Klipper, sigue la guía de compensación de resonancias: imprime la torre de prueba y calcula las frecuencias.",
   "Configura <code>[input_shaper]</code> con los valores obtenidos (o mide con un acelerómetro).",
   "Ajusta la aceleración máxima si persiste."
  ],
  "compatibilidad": [
   "Klipper"
  ],
  "fuentes": [
   {
    "titulo": "Klipper — Resonance Compensation",
    "url": "https://klipper3d.org/Resonance_Compensation.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-contrasenas-fuertes",
  "titulo": "Cómo crear contraseñas fuertes de verdad (y no volverte loco)",
  "categoria": "ciber",
  "sub": "cuentas",
  "tags": [
   "contraseña",
   "password",
   "seguridad",
   "cuentas",
   "novato"
  ],
  "sinonimos": [
   "contraseña segura",
   "como hacer una contraseña",
   "password fuerte"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Usas la misma contraseña en varios sitios o una fácil de adivinar (fechas, nombres de mascotas, «12345»).",
  "diagnostico": [
   "Las contraseñas cortas o con datos personales se rompen rápido.",
   "Reutilizar contraseñas hace que una filtración en un sitio abra todos los demás."
  ],
  "solucion": [
   "Hazlas <b>largas</b>: CISA recomienda al menos 16 caracteres.",
   "Hazlas <b>aleatorias</b>: una cadena de letras, números y símbolos, o una frase de varias palabras al azar.",
   "Hazlas <b>únicas</b>: una distinta por cuenta.",
   "Guárdalas en un gestor de contraseñas para no tener que recordarlas (ver ficha de KeePassXC)."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Gestor de contraseñas"
   ]
  },
  "compatibilidad": [
   "Cualquier servicio web o app"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "CISA — Usa contraseñas fuertes (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/use-strong-passwords",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Contraseñas",
    "url": "https://www.incibe.es/ciudadania/tematicas/contrasenas-seguras",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-gestor-keepassxc",
  "titulo": "Para qué sirve un gestor de contraseñas: KeePassXC",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "keepassxc",
   "keepass",
   "gestor de contraseñas",
   "password manager"
  ],
  "sinonimos": [
   "donde guardo mis contraseñas",
   "gestor de claves"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes decenas de cuentas y no puedes recordar una contraseña distinta y fuerte para cada una.",
  "diagnostico": [
   "Sin gestor, la tentación es reutilizar contraseñas: si un servicio cae, el atacante prueba la misma en los demás."
  ],
  "solucion": [
   "Instala KeePassXC desde su web oficial (keepassxc.org).",
   "Crea una base de datos nueva: se guarda <b>cifrada</b> en un archivo (AES-256 u otros algoritmos, según su FAQ).",
   "Elige una contraseña maestra muy fuerte: toda tu seguridad depende de ella.",
   "Genera contraseñas aleatorias con el generador integrado y cambia primero las de correo y banca.",
   "Haz copia del archivo de la base de datos (es tu única llave)."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "KeePassXC"
   ]
  },
  "compatibilidad": [
   "Windows",
   "macOS",
   "Linux"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "KeePassXC — Documentación y preguntas frecuentes",
    "url": "https://keepassxc.org/docs/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-activar-2fa",
  "titulo": "Activa la verificación en dos pasos (2FA/MFA) en tus cuentas",
  "categoria": "ciber",
  "sub": "cuentas",
  "tags": [
   "2fa",
   "mfa",
   "doble factor",
   "verificacion en dos pasos",
   "autenticador"
  ],
  "sinonimos": [
   "dos pasos",
   "codigo al movil",
   "two factor"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Si alguien roba tu contraseña, entra en tu cuenta sin más.",
  "diagnostico": [
   "La cuenta solo pide un factor (la contraseña)."
  ],
  "solucion": [
   "Entra en Ajustes de la cuenta → Seguridad.",
   "Busca «verificación en dos pasos», «autenticación de dos factores» o similar y actívala.",
   "Elige el método: código por SMS/correo o, mejor, una app autenticadora (genera un código nuevo cada 30 s).",
   "Guarda los códigos de recuperación en tu gestor de contraseñas.",
   "Empieza por correo, banca, redes sociales y tu Netlify/GitHub si tienes web.",
   "Si te quedas sin cobertura de repente, puede ser un duplicado de tu SIM: mira la <a href=\"https://frikilabs.com/#/ficha/ciber-sim-duplicada\">ficha de SIM duplicada</a>."
  ],
  "requisitos": {
   "hardware": [
    "Móvil"
   ],
   "software": [
    "App autenticadora"
   ]
  },
  "compatibilidad": [
   "Cualquier servicio que ofrezca MFA"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "CISA — Activa la verificación en dos pasos (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/turn-mfa",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-phishing",
  "titulo": "Cómo reconocer un phishing (correo, SMS o mensaje falso)",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "phishing",
   "smishing",
   "estafa",
   "correo falso",
   "sms falso"
  ],
  "sinonimos": [
   "me ha llegado un sms raro",
   "correo sospechoso",
   "fraude"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te llega un mensaje urgente que pide datos, pagar o pinchar un enlace.",
  "diagnostico": [
   "Lenguaje urgente o emocional con amenazas si no respondes ya.",
   "Piden datos personales o bancarios.",
   "Enlaces acortados o direcciones casi iguales a las reales (p. ej. «amaz0n»).",
   "Ojo: con la IA ya no siempre hay faltas de ortografía."
  ],
  "solucion": [
   "<b>Reconoce</b>: revisa remitente y enlace sin pinchar.",
   "<b>Resiste</b>: no abras enlaces ni adjuntos sospechosos.",
   "<b>Comprueba</b> por otro canal: entra tú en la web oficial o llama al número que ya conoces.",
   "<b>Reporta</b> el mensaje y bórralo. En España puedes consultar al 017 de INCIBE.",
   "¿Te amenazan con un vídeo íntimo y piden Bitcoin? Es un chantaje falso: mira la <a href=\"https://frikilabs.com/#/ficha/ciber-sextorsion-correo\">ficha de sextorsión por correo</a>.",
   "¿Dudas de un enlace antes de abrirlo? Compruébalo con la <a href=\"https://frikilabs.com/#/ficha/ciber-virustotal-enlaces\">ficha de VirusTotal</a>."
  ],
  "requisitos": {
   "hardware": [],
   "software": []
  },
  "compatibilidad": [
   "Correo",
   "SMS",
   "WhatsApp",
   "Redes sociales"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "CISA — Reconoce y denuncia el phishing (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/recognize-and-report-phishing",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Tu Ayuda en Ciberseguridad (017)",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-actualizaciones",
  "titulo": "Actualiza: la protección más fácil que existe",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "actualizar",
   "updates",
   "parches",
   "seguridad"
  ],
  "sinonimos": [
   "actualizaciones automaticas",
   "por que actualizar"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Pospones las actualizaciones con «Recordar más tarde».",
  "diagnostico": [
   "Muchas actualizaciones corrigen fallos de seguridad que ya se están explotando."
  ],
  "solucion": [
   "Instala TODAS las actualizaciones del sistema, apps y sobre todo del navegador.",
   "Instálalas cuanto antes, especialmente las críticas.",
   "Activa las actualizaciones automáticas en los ajustes de cada dispositivo.",
   "En una Raspberry Pi: <code>sudo apt update && sudo apt full-upgrade</code>."
  ],
  "requisitos": {
   "hardware": [],
   "software": []
  },
  "compatibilidad": [
   "Windows",
   "macOS",
   "Android",
   "iOS",
   "Linux"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "CISA — Actualiza el software (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/update-software",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi — Seguridad operativa: actualizar Raspberry Pi OS",
    "url": "https://www.raspberrypi.com/documentation/security/operational-security.html#update-raspberry-pi-os",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-hibp",
  "titulo": "¿Se ha filtrado mi correo? Have I Been Pwned",
  "categoria": "ciber",
  "sub": "cuentas",
  "tags": [
   "hibp",
   "have i been pwned",
   "filtracion",
   "brecha",
   "leak"
  ],
  "sinonimos": [
   "me han hackeado el correo",
   "mi contraseña filtrada"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres saber si tu correo o una contraseña aparecen en alguna filtración de datos.",
  "diagnostico": [
   "Una «brecha» es una exposición de datos por fallos de seguridad en un servicio."
  ],
  "solucion": [
   "Entra en haveibeenpwned.com y busca tu correo: te dice en qué filtraciones aparece.",
   "HIBP no guarda contraseñas junto a los correos y no te enviará tu contraseña filtrada.",
   "Su servicio Pwned Passwords permite comprobar si una contraseña ya ha aparecido en filtraciones (se guardan con hash SHA-1).",
   "Si apareces: cambia esa contraseña (y donde la repetiste) y activa 2FA."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Navegador"
   ]
  },
  "compatibilidad": [
   "Web"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Have I Been Pwned — Preguntas frecuentes",
    "url": "https://haveibeenpwned.com/FAQs",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-017-incibe",
  "titulo": "Me han estafado o hackeado: llama al 017 (INCIBE)",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "017",
   "incibe",
   "estafa",
   "ayuda",
   "denuncia"
  ],
  "sinonimos": [
   "me han estafado",
   "telefono ciberseguridad",
   "me han robado la cuenta"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has caído en un fraude, te han robado una cuenta o algo digital te preocupa y no sabes qué hacer.",
  "diagnostico": [
   "Necesitas ayuda experta y gratuita, en España."
  ],
  "solucion": [
   "Llama al <b>017</b>: gratuito y confidencial, de 8:00 a 23:00, los 365 días.",
   "También por WhatsApp (guarda antes el 900116117) o Telegram (alias @INCIBE017), o por formulario web.",
   "Atienden a ciudadanos, empresas y menores/familias, con asesoramiento técnico, psicosocial y legal.",
   "Mientras tanto: cambia contraseñas desde un dispositivo limpio y avisa a tu banco si hubo pagos."
  ],
  "requisitos": {
   "hardware": [],
   "software": []
  },
  "compatibilidad": [
   "España"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Tu Ayuda en Ciberseguridad",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-nmap-legal",
  "titulo": "Nmap: para qué sirve y cuándo es legal usarlo",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "nmap",
   "escaneo",
   "puertos",
   "red",
   "hacking etico"
  ],
  "sinonimos": [
   "escanear mi red",
   "ver dispositivos conectados",
   "es legal nmap"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres ver qué dispositivos y puertos abiertos hay en tu red, pero no sabes si escanear es legal.",
  "diagnostico": [
   "Nmap descubre equipos y servicios en una red.",
   "El propio libro oficial de Nmap avisa de que muchos proveedores prohíben escanear redes ajenas sin permiso.",
   "En España, acceder sin autorización a un sistema vulnerando sus medidas de seguridad es delito (art. 197 bis CP)."
  ],
  "solucion": [
   "Escanea <b>solo tu propia red</b> o sistemas con permiso explícito y por escrito.",
   "Ejemplo en tu LAN: <code>nmap -sn 192.168.1.0/24</code> (lista equipos encendidos).",
   "Revisa qué puertos abre tu Raspberry: <code>nmap IP_LOCAL</code> y cierra lo que no uses.",
   "Para practicar más, usa laboratorios hechos para ello (ver OWASP Juice Shop)."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Nmap"
   ]
  },
  "compatibilidad": [
   "Linux",
   "Windows",
   "macOS"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Nmap — Cuestiones legales (libro oficial)",
    "url": "https://nmap.org/book/legal-issues.html",
    "tipo": "oficial"
   },
   {
    "titulo": "Nmap — Manual de referencia",
    "url": "https://nmap.org/book/man.html",
    "tipo": "oficial"
   },
   {
    "titulo": "BOE — Código Penal (LO 10/1995), art. 197 bis y 197 ter",
    "url": "https://www.boe.es/buscar/act.php?id=BOE-A-1995-25444#a197bis",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-wireshark",
  "titulo": "Wireshark: para qué sirve un analizador de paquetes",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "wireshark",
   "paquetes",
   "sniffer",
   "trafico",
   "red"
  ],
  "sinonimos": [
   "ver trafico de red",
   "analizar red"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Algo raro pasa en tu red (un aparato que no conecta, tráfico extraño) y quieres verlo «por dentro».",
  "diagnostico": [
   "Wireshark captura y muestra el tráfico de red en detalle: es como un voltímetro, pero para la red."
  ],
  "solucion": [
   "Úsalo para: diagnosticar problemas de red, examinar problemas de seguridad, depurar protocolos y aprender cómo funcionan.",
   "Descárgalo de wireshark.org (gratuito y de código abierto).",
   "Captura solo en <b>tu</b> red: interceptar transmisiones ajenas sin autorización es delito en España (art. 197 bis.2 CP).",
   "Empieza filtrando por un solo equipo, p. ej. <code>ip.addr == IP_LOCAL</code>."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Wireshark"
   ]
  },
  "compatibilidad": [
   "Windows",
   "macOS",
   "Linux"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Guía de usuario de Wireshark — Introducción",
    "url": "https://www.wireshark.org/docs/wsug_html_chunked/ChapterIntroduction.html",
    "tipo": "oficial"
   },
   {
    "titulo": "BOE — Código Penal (LO 10/1995), art. 197 bis y 197 ter",
    "url": "https://www.boe.es/buscar/act.php?id=BOE-A-1995-25444#a197bis",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-juice-shop-lab",
  "titulo": "Practica hacking ético legal: OWASP Juice Shop",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "owasp",
   "juice shop",
   "ctf",
   "laboratorio",
   "hacking etico",
   "pentesting"
  ],
  "sinonimos": [
   "donde practicar hacking",
   "aprender hacking legal"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres aprender hacking web sin tocar sistemas ajenos (lo cual sería ilegal).",
  "diagnostico": [
   "Necesitas un objetivo propio, vulnerable a propósito y con permiso."
  ],
  "solucion": [
   "OWASP Juice Shop es una aplicación web <b>insegura a propósito</b>, para formación, demos y CTF.",
   "Incluye vulnerabilidades de todo el OWASP Top Ten y retos de distinta dificultad con marcador.",
   "Ejecútala en tu propio equipo (por ejemplo con Docker) y no la expongas a Internet.",
   "Encontrar el «score board» es uno de los primeros retos."
  ],
  "requisitos": {
   "hardware": [
    "PC o Raspberry Pi"
   ],
   "software": [
    "Docker o Node.js"
   ]
  },
  "compatibilidad": [
   "Licencia MIT"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "OWASP — Juice Shop",
    "url": "https://owasp.org/www-project-juice-shop/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-ley-espana",
  "titulo": "Hacking ético y la ley en España: lo que debes saber",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "ley",
   "codigo penal",
   "197 bis",
   "legal",
   "hacking etico"
  ],
  "sinonimos": [
   "es legal hackear",
   "delito informatico"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te interesa la seguridad informática y no quieres cometer un delito sin darte cuenta.",
  "diagnostico": [
   "Art. 197 bis.1 CP: acceder sin autorización a un sistema vulnerando sus medidas de seguridad: prisión de 6 meses a 2 años.",
   "Art. 197 bis.2: interceptar sin autorización transmisiones no públicas de datos: prisión de 3 meses a 2 años o multa.",
   "Art. 197 ter: también castiga producir o facilitar programas o contraseñas con intención de cometer esos delitos."
  ],
  "solucion": [
   "La clave es la <b>autorización</b>: practica solo en tus equipos, laboratorios o con permiso por escrito del dueño.",
   "Usa entornos de práctica (Juice Shop, CTF) en lugar de sistemas reales.",
   "Si encuentras un fallo en una web, busca su canal oficial (p. ej. <code>/.well-known/security.txt</code>) y repórtalo sin explotarlo.",
   "Esto es información general, no asesoramiento jurídico."
  ],
  "requisitos": {
   "hardware": [],
   "software": []
  },
  "compatibilidad": [
   "España"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "BOE — Código Penal (LO 10/1995), art. 197 bis y 197 ter",
    "url": "https://www.boe.es/buscar/act.php?id=BOE-A-1995-25444#a197bis",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-kali-novatos",
  "titulo": "¿Debería instalar Kali Linux siendo novato?",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "kali",
   "kali linux",
   "pentesting",
   "distribucion"
  ],
  "sinonimos": [
   "instalar kali",
   "linux para hackers"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has oído que Kali es «el Linux de los hackers» y quieres usarlo como sistema principal.",
  "diagnostico": [
   "Kali está pensado para pruebas de penetración y auditorías profesionales.",
   "Sus propios desarrolladores dicen que NO es recomendable si no conoces Linux o buscas un escritorio de uso general."
  ],
  "solucion": [
   "Aprende primero Linux en una distribución general (p. ej. Debian o Raspberry Pi OS).",
   "Si quieres Kali, úsalo en una máquina virtual y para laboratorios propios.",
   "No añadas repositorios externos a Kali: su web avisa de que puede romper el sistema."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Máquina virtual"
   ]
  },
  "compatibilidad": [
   "x86_64",
   "ARM"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Kali Linux — ¿Debería usar Kali Linux?",
    "url": "https://www.kali.org/docs/introduction/should-i-use-kali-linux/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-security-txt",
  "titulo": "He encontrado un fallo en una web: cómo reportarlo bien (security.txt)",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "security.txt",
   "divulgacion responsable",
   "bug bounty",
   "vulnerabilidad"
  ],
  "sinonimos": [
   "reportar fallo de seguridad",
   "avisar de una vulnerabilidad"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has visto un fallo de seguridad en una web y no sabes a quién avisar.",
  "diagnostico": [
   "Muchas organizaciones no tienen un canal de reporte claro; el RFC 9116 define <code>security.txt</code> para eso."
  ],
  "solucion": [
   "Busca <code>https://dominio/.well-known/security.txt</code>.",
   "El campo <code>Contact</code> (obligatorio) indica cómo reportar; <code>Expires</code> también es obligatorio.",
   "Reporta lo mínimo necesario y no explotes el fallo ni accedas a datos.",
   "Si tienes web propia, publica tu security.txt (Expires recomendado a menos de un año)."
  ],
  "requisitos": {
   "hardware": [],
   "software": []
  },
  "compatibilidad": [
   "Web"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "RFC 9116 — Formato de archivo para facilitar el reporte de vulnerabilidades (security.txt)",
    "url": "https://www.rfc-editor.org/rfc/rfc9116",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-ha-seguro",
  "titulo": "Lista básica para proteger tu Home Assistant",
  "categoria": "homeassistant",
  "sub": "acceso",
  "tags": [
   "home assistant",
   "seguridad",
   "mfa",
   "acceso remoto"
  ],
  "sinonimos": [
   "proteger home assistant",
   "home assistant seguro"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Vas a abrir Home Assistant fuera de casa y no sabes qué mínimos de seguridad aplicar.",
  "diagnostico": [
   "Contraseñas débiles o reutilizadas y cuentas admin de más.",
   "Versiones antiguas sin parches."
  ],
  "solucion": [
   "Contraseña fuerte y única en cada cuenta y activa la autenticación multifactor.",
   "Da permisos de administrador solo a quien los necesite.",
   "Centraliza datos sensibles en <code>secrets.yaml</code> (ojo: no los cifra) y haz copia.",
   "Actualiza con cada versión mensual.",
   "Para acceso remoto, sigue la sección «Methods to enable remote access» de la guía oficial antes de abrir ningún puerto (ver también la ficha de acceso remoto)."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "Home Assistant OS",
   "Container",
   "Core"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Home Assistant — Proteger tu Home Assistant",
    "url": "https://www.home-assistant.io/docs/configuration/securing/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ciber-docker-salta-ufw",
  "titulo": "Docker se salta las reglas de ufw al publicar puertos",
  "categoria": "linux",
  "sub": "docker",
  "tags": [
   "docker",
   "ufw",
   "firewall",
   "puertos",
   "iptables"
  ],
  "sinonimos": [
   "ufw no bloquea docker",
   "docker ignora firewall"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has bloqueado un puerto con ufw, pero el contenedor Docker sigue accesible desde la red.",
  "diagnostico": [
   "Según la documentación de Docker, al exponer puertos de contenedores estos esquivan las reglas de ufw/firewalld.",
   "Docker solo es compatible con iptables-nft e iptables-legacy."
  ],
  "solucion": [
   "No publiques puertos que no necesites (<code>-p</code> / <code>ports:</code>).",
   "Si solo lo usas en local, publica en localhost: <code>-p 127.0.0.1:PUERTO:80</code>.",
   "Lee la guía oficial «Docker and ufw» antes de confiar en el cortafuegos.",
   "Comprueba desde otro equipo con <code>nmap IP_LOCAL</code> qué puertos quedan abiertos."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Docker Engine",
    "ufw"
   ]
  },
  "compatibilidad": [
   "Debian",
   "Raspberry Pi OS",
   "Ubuntu"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Docker — Instalar Docker Engine en Debian (limitaciones con el cortafuegos)",
    "url": "https://docs.docker.com/engine/install/debian/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15",
  "afiliado": {
   "nombre": "Raiola Networks · VPS Cloud",
   "url": "https://gestiondecuenta.eu/aff.php?aff=7120&especial=vps-cloud-frikilabs",
   "texto": "Si montas estos contenedores en un servidor con IP pública, este fallo importa todavía más. Para un VPS: Raiola Networks (VPS Cloud), proveedor español. Si contratas con este enlace, Raiola me da una comisión que va íntegra a mejorar la web, y tú tienes un 20 % de descuento en los VPS Cloud.",
   "cupon": null
  }
 },
 {
  "id": "pi-imager-primera-instalacion",
  "titulo": "Guía: instalar Raspberry Pi OS con Raspberry Pi Imager paso a paso",
  "categoria": "raspberrypi",
  "sub": "so-software",
  "tags": [
   "imager",
   "raspberry pi os",
   "instalar",
   "microsd",
   "primer arranque"
  ],
  "sinonimos": [
   "como instalar raspberry",
   "grabar sd raspberry"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes una Raspberry Pi nueva y una microSD vacía y no sabes por dónde empezar.",
  "diagnostico": [
   "La Pi necesita un sistema operativo grabado en el medio de arranque antes de encenderla."
  ],
  "solucion": [
   "Instala Imager: en Windows/Mac desde la web oficial; en Raspberry Pi OS <code>sudo apt install rpi-imager</code>; en otros Linux, AppImage.",
   "Pestaña Device: elige tu modelo. OS: el recomendado sale arriba. Storage: elige la tarjeta (deja activado «Exclude system drives»).",
   "Personaliza: hostname, zona horaria, usuario/contraseña, Wi-Fi, SSH (contraseña o clave pública) y Raspberry Pi Connect.",
   "Pulsa Write → «I understand, erase and write» y deja que verifique la escritura.",
   "Inserta la tarjeta con la etiqueta hacia fuera y conecta la alimentación al final."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi",
    "microSD",
    "Lector de tarjetas"
   ],
   "software": [
    "Raspberry Pi Imager"
   ]
  },
  "compatibilidad": [
   "Todas las Raspberry Pi"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Raspberry Pi — Primeros pasos: instalar con Imager",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#install",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "pi-tarjeta-sd-capacidad",
  "titulo": "¿Qué microSD necesito para mi Raspberry Pi? Capacidad mínima y máxima",
  "categoria": "raspberrypi",
  "sub": "arranque",
  "tags": [
   "microsd",
   "sd",
   "capacidad",
   "tarjeta",
   "almacenamiento"
  ],
  "sinonimos": [
   "que tarjeta sd raspberry",
   "sd de 2tb no arranca"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "No sabes qué tamaño de tarjeta comprar, o una tarjeta enorme no arranca.",
  "diagnostico": [
   "Más de 2 TB no está soportado (límite del MBR).",
   "Algunos modelos antiguos (Zero, primer modelo, primeros Pi 2) solo arrancan de particiones de arranque de 256 GB o menos."
  ],
  "solucion": [
   "Raspberry Pi OS y OS Full: al menos 32 GB recomendados.",
   "Raspberry Pi OS Lite: al menos 8 GB.",
   "Una tarjeta más rápida mejora el rendimiento general.",
   "Desde el Model B+ todas tienen ranura microSD y arrancan solas de una tarjeta válida."
  ],
  "requisitos": {
   "hardware": [
    "microSD"
   ],
   "software": [
    "Raspberry Pi OS"
   ]
  },
  "compatibilidad": [
   "Todas las Raspberry Pi"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Raspberry Pi — Primeros pasos: medio de arranque",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#hardware-prerequisites",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "pi-fuente-alimentacion-correcta",
  "titulo": "Qué fuente de alimentación necesita cada Raspberry Pi",
  "categoria": "raspberrypi",
  "sub": "energia",
  "tags": [
   "fuente",
   "alimentacion",
   "cargador",
   "27w",
   "usb-c",
   "5a"
  ],
  "sinonimos": [
   "que cargador raspberry pi 5",
   "pi 5 usb limitado 600ma"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "No sabes qué cargador usar o la Pi 5 limita los USB.",
  "diagnostico": [
   "Cada modelo necesita una tensión y corriente distintas, medidas en el conector (los cables largos pierden tensión)."
  ],
  "solucion": [
   "Pi 5 y Pi 500: 5 V a 5 A (fuente oficial de 27 W USB-C). Con 5 V a 3 A los periféricos USB se limitan a 600 mA.",
   "Pi 500+: 5 V a 5 A (27 W USB-C).",
   "Pi 4 y Pi 400: 5 V a 3 A (15 W USB-C).",
   "Pi 3, Pi 2, Pi 1 y Zero: 5 V a 2,5 A (12,5 W micro USB).",
   "Conecta la alimentación al puerto POWER IN / PWR IN / PWR, siempre como último paso."
  ],
  "requisitos": {
   "hardware": [
    "Fuente oficial"
   ],
   "software": []
  },
  "compatibilidad": [
   "Todas las Raspberry Pi"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Raspberry Pi — Primeros pasos: fuente de alimentación",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#hardware-prerequisites",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "pi-usb-c-no-video",
  "titulo": "La Raspberry Pi no da imagen por USB-C",
  "categoria": "raspberrypi",
  "sub": "perifericos",
  "tags": [
   "hdmi",
   "usb-c",
   "monitor",
   "pantalla",
   "sin imagen",
   "micro hdmi"
  ],
  "sinonimos": [
   "no da imagen",
   "pantalla negra raspberry",
   "usb c monitor"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Conectas el monitor por USB-C y no sale nada.",
  "diagnostico": [
   "Ningún modelo de Raspberry Pi admite vídeo por USB-C (DisplayPort Alt Mode)."
  ],
  "solucion": [
   "Pi 4, 400, 5, 500 y 500+: usa un cable micro-HDMI a HDMI.",
   "Zero y Zero 2: mini-HDMI a HDMI.",
   "Si hay dos HDMI, el monitor principal va en HDMI0.",
   "Si tu monitor no tiene HDMI, usa un adaptador a DVI-D, DisplayPort o VGA."
  ],
  "requisitos": {
   "hardware": [
    "Cable micro-HDMI o mini-HDMI"
   ],
   "software": []
  },
  "compatibilidad": [
   "Todas las Raspberry Pi"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Raspberry Pi — Primeros pasos: pantallas",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#hardware-prerequisites",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "pi-wpa-supplicant-bookworm",
  "titulo": "wpa_supplicant.conf en /boot ya no configura el Wi-Fi",
  "categoria": "raspberrypi",
  "sub": "red-acceso",
  "tags": [
   "wifi",
   "wpa_supplicant",
   "headless",
   "bookworm"
  ],
  "sinonimos": [
   "raspberry no conecta wifi",
   "wpa_supplicant no funciona"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Pones un <code>wpa_supplicant.conf</code> en la partición de arranque, como en los tutoriales viejos, y la Pi no se conecta.",
  "diagnostico": [
   "Desde Raspberry Pi OS Bookworm esa función ya no existe."
  ],
  "solucion": [
   "Configura el Wi-Fi en Raspberry Pi Imager (pestaña Customisation → Wi-Fi) antes de grabar.",
   "Si no lo hiciste, conecta por cable Ethernet la primera vez.",
   "Después puedes cambiar la red desde el escritorio o con <code>sudo raspi-config</code>.",
   "Ojo: algunos modelos (Zero W, Zero 2 W, 3B) solo tienen Wi-Fi de 2,4 GHz."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "Raspberry Pi Imager"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi OS Bookworm y posteriores"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Raspberry Pi — Primeros pasos: configuración sin pantalla",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#setup",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "pi-connect-clave-caduca",
  "titulo": "Raspberry Pi Connect no vincula la Pi: la clave de autenticación caducó",
  "categoria": "raspberrypi",
  "sub": "red-acceso",
  "tags": [
   "connect",
   "acceso remoto",
   "auth key",
   "imager"
  ],
  "sinonimos": [
   "raspberry pi connect no aparece"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Configuraste Raspberry Pi Connect en Imager, pero la Pi no aparece en tu cuenta.",
  "diagnostico": [
   "La auth key es de un solo uso y temporal: las personales caducan 6 horas después de crearlas."
  ],
  "solucion": [
   "Crea una auth key nueva en Raspberry Pi Connect y pásala a Imager.",
   "Arranca la Pi y conéctala a Internet antes de que caduque.",
   "Si el token no se copia solo, cópialo desde «Having trouble?» en la web de Connect."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi"
   ],
   "software": [
    "Raspberry Pi Imager",
    "Raspberry Pi Connect"
   ]
  },
  "compatibilidad": [
   "Raspberry Pi OS"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Raspberry Pi — Primeros pasos: Raspberry Pi Connect en Imager",
    "url": "https://www.raspberrypi.com/documentation/computers/getting-started.html#install",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi Connect — Documentación",
    "url": "https://www.raspberrypi.com/documentation/services/connect.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-15"
 },
 {
  "id": "ha-onboarding-primer-arranque",
  "titulo": "Guía: primer arranque de Home Assistant (onboarding)",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "onboarding",
   "primer arranque",
   "homeassistant.local",
   "8123"
  ],
  "sinonimos": [
   "no abre homeassistant.local",
   "como entrar a home assistant"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Acabas de instalar Home Assistant y no sabes cómo entrar ni qué hacer.",
  "diagnostico": [
   "El primer arranque descarga la última versión (unos 700 MB) y puede tardar."
  ],
  "solucion": [
   "Abre <code>http://homeassistant.local/</code>; si no carga, <code>http://homeassistant.local:8123/</code> (en Container: <code>http://IP_LOCAL:8123</code>).",
   "Espera a que termine «Preparing Home Assistant».",
   "Elige crear instalación nueva o restaurar desde copia de seguridad.",
   "Crea la cuenta del propietario (es administrador): usuario en minúsculas y sin espacios.",
   "Después: activa MFA (ver ficha de seguridad) y configura copias automáticas."
  ],
  "requisitos": {
   "hardware": [
    "Raspberry Pi o Home Assistant Green"
   ],
   "software": [
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "Home Assistant OS",
   "Container"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Home Assistant — Onboarding",
    "url": "https://www.home-assistant.io/getting-started/onboarding/",
    "tipo": "oficial"
   },
   {
    "titulo": "Home Assistant — Raspberry Pi",
    "url": "https://www.home-assistant.io/installation/raspberrypi",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "Jonatan Castro (YouTube)",
    "titulo": "Primeros pasos con Home Assistant - Empieza con la domótica en 2024 (Jonatan Castro, YouTube)",
    "url": "https://www.youtube.com/watch?v=p780X3oZUkc",
    "nota": "Repaso general de Home Assistant para empezar."
   }
  ],
  "exito": "primero la página «Preparing Home Assistant» (puede tardar 20 minutos o más mientras descarga la última versión) y después la pantalla de bienvenida.",
  "publicado": "2026-10-15"
 },
 {
  "id": "ha-backup-automatico-ui",
  "titulo": "Copias de seguridad automáticas en Home Assistant sin automatizaciones",
  "categoria": "homeassistant",
  "sub": "rendimiento",
  "tags": [
   "backup",
   "copia de seguridad",
   "restaurar"
  ],
  "sinonimos": [
   "copias automaticas home assistant"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Sigues usando una automatización casera para hacer copias de seguridad.",
  "diagnostico": [
   "Ya no hace falta: la integración Backup permite programar copias automáticas desde la interfaz."
  ],
  "solucion": [
   "Configura la copia automática desde la UI (sección de copias de seguridad).",
   "Si quieres dispararla tú, usa las acciones <code>backup.create</code> o <code>backup.create_automatic</code>.",
   "Para restaurar, sigue «Restoring a backup» de la documentación oficial."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "Todos los tipos de instalación"
  ],
  "verificacion": "Documentado: pasos tomados de la fuente oficial citada (leída el 15-oct-2026).",
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración Backup",
    "url": "https://www.home-assistant.io/integrations/backup/",
    "tipo": "oficial"
   },
   {
    "titulo": "AguacaTEC — Copias de seguridad en Home Assistant (en español)",
    "url": "https://aguacatec.es/copias-de-seguridad-en-home-assistant-3/",
    "tipo": "comunidad",
    "lang": "es"
   }
  ],
  "exito": "que los sensores de la integración Backup «Last successful automatic backup» (última copia automática correcta) y «Next scheduled automatic backup» (próxima copia programada) muestran fecha y hora. En tu idioma pueden llamarse distinto.",
  "publicado": "2026-10-15"
 },
 {
  "id": "esp32-marauder-etico",
  "titulo": "ESP32 Marauder: qué es y cómo usarlo de forma ética y legal",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "marauder",
   "esp32",
   "wifi",
   "bluetooth",
   "wardriving",
   "hacking etico"
  ],
  "sinonimos": [
   "esp32 marauder",
   "justcallmekoko marauder",
   "suite wifi esp32"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres usar ESP32 Marauder (suite ofensiva y defensiva de Wi-Fi/Bluetooth para ESP32) sin cometer un delito.",
  "diagnostico": [
   "El propio proyecto se presenta como un conjunto de herramientas ofensivas y defensivas de Wi-Fi y Bluetooth.",
   "En España, obstaculizar o interrumpir un sistema informático ajeno sin autorización puede ser delito (art. 264 bis CP); acceder sin autorización vulnerando medidas de seguridad también (art. 197 bis)."
  ],
  "solucion": [
   "Úsalo <b>solo en tu propia red</b> o con permiso escrito del dueño.",
   "Descarga el firmware desde la página oficial de versiones de GitHub y sigue la wiki del proyecto.",
   "Prueba con un punto de acceso de laboratorio o una red de pruebas tuya, nunca la del vecino ni la del café.",
   "Para aprender ataques web sin tocar redes reales, usa OWASP Juice Shop (ver ficha)."
  ],
  "requisitos": {
   "hardware": [
    "Placa ESP32 compatible con Marauder"
   ],
   "software": [
    "Firmware ESP32 Marauder"
   ]
  },
  "compatibilidad": [
   "ESP32 (según la wiki del proyecto)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026). Solo en tu propia red y con autorización.",
  "fuentes": [
   {
    "titulo": "ESP32 Marauder — README",
    "url": "https://github.com/justcallmekoko/ESP32Marauder",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESP32 Marauder — Wiki",
    "url": "https://github.com/justcallmekoko/ESP32Marauder/wiki",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESP32 Marauder — Versiones",
    "url": "https://github.com/justcallmekoko/ESP32Marauder/releases/latest",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "BOE — Código Penal (LO 10/1995), art. 197 bis y 264 bis",
    "url": "https://www.boe.es/buscar/act.php?id=BOE-A-1995-25444",
    "tipo": "oficial",
    "lang": "es"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "bruce-firmware-etico",
  "titulo": "Firmware Bruce (ESP32): qué es y uso ético y legal",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "bruce",
   "esp32",
   "m5stack",
   "lilygo",
   "firmware",
   "hacking etico"
  ],
  "sinonimos": [
   "bruce firmware",
   "bruce cardputer",
   "bruce esp32"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has oído hablar del firmware Bruce para ESP32 (Cardputer, T-Deck, M5Stack…) y quieres saber para qué sirve y qué puedes hacer legalmente.",
  "diagnostico": [
   "Bruce se describe como un firmware con herramientas de seguridad ofensiva pensadas para operaciones de Red Team.",
   "Incluye funciones de Wi-Fi (ataques, portal malicioso, sniffers), Sub-GHz, NFC/RFID e IR: muchas solo son legales con autorización.",
   "El art. 197 bis y el 264 bis del Código Penal español castigan el acceso no autorizado y la interrupción grave de sistemas ajenos."
  ],
  "solucion": [
   "Úsalo <b>solo en equipos y redes tuyas</b> o en laboratorios con permiso.",
   "Instálalo con el flasheador web oficial (bruce.computer/flasher) o con esptool, según la wiki.",
   "Lee el FAQ y la wiki de Bruce antes de activar cualquier ataque.",
   "Para practicar web, usa OWASP Juice Shop; para redes, una red de pruebas propia."
  ],
  "requisitos": {
   "hardware": [
    "Placa compatible (M5Stack, LilyGO T-Deck, Cardputer, etc.)"
   ],
   "software": [
    "Firmware Bruce"
   ]
  },
  "compatibilidad": [
   "M5Stack",
   "LilyGO",
   "Elecrow (según el proyecto)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026). Solo en tu propia red y con autorización.",
  "fuentes": [
   {
    "titulo": "Bruce — README (GitHub)",
    "url": "https://github.com/pr3y/Bruce",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Bruce — Wiki",
    "url": "https://wiki.bruce.computer/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Bruce — FAQ",
    "url": "https://wiki.bruce.computer/faq/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Bruce — Flasheador web",
    "url": "https://bruce.computer/flasher",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "BOE — Código Penal (LO 10/1995), art. 197 bis y 264 bis",
    "url": "https://www.boe.es/buscar/act.php?id=BOE-A-1995-25444",
    "tipo": "oficial",
    "lang": "es"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-10-proteger-casa",
  "titulo": "10 cosas que proteger en casa (guía para novatos)",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "casa",
   "novato",
   "checklist",
   "router",
   "wifi",
   "2fa",
   "copias"
  ],
  "sinonimos": [
   "checklist seguridad casa",
   "proteger mi casa",
   "seguridad domestica"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres empezar a protegerte en casa y no sabes por dónde.",
  "diagnostico": [
   "Los fallos más comunes: contraseñas reutilizadas, Wi-Fi débil, sin actualizaciones y sin copias de seguridad."
  ],
  "solucion": [
   "<b>1.</b> Contraseñas largas (≥16), aleatorias y únicas, con un gestor (KeePassXC).",
   "<b>2.</b> Activa la verificación en dos pasos (2FA/MFA) en correo, banca y redes.",
   "<b>3.</b> Actualiza el sistema, el navegador y las apps; mejor, automáticamente.",
   "<b>4.</b> Cambia la contraseña del router y usa WPA3 (o WPA2) con clave fuerte.",
   "<b>5.</b> Red de invitados o VLAN para IoT y aparatos «smart».",
   "<b>6.</b> Copia de seguridad de fotos y documentos (3-2-1: 3 copias, 2 soportes, 1 fuera).",
   "<b>7.</b> No abras enlaces ni adjuntos sospechosos (phishing).",
   "<b>8.</b> Comprueba si tu correo aparece en filtraciones (Have I Been Pwned).",
   "<b>9.</b> Si abres Home Assistant o una Raspberry fuera de casa, usa VPN o el método oficial, no puertos al azar.",
   "<b>10.</b> Si te estafan o te hackean en España: llama al 017 de INCIBE."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Gestor de contraseñas",
    "App autenticadora"
   ]
  },
  "compatibilidad": [
   "Cualquier hogar"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026). Solo en tu propia red y con autorización.",
  "fuentes": [
   {
    "titulo": "CISA — Usa contraseñas fuertes (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/use-strong-passwords",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "CISA — Activa MFA (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/turn-mfa",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "CISA — Actualiza el software (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/update-software",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "CISA — Reconoce y denuncia el phishing (contenido archivado)",
    "url": "https://www.cisa.gov/secure-our-world/recognize-and-report-phishing",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "INCIBE — Tu Ayuda en Ciberseguridad (017)",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad",
    "tipo": "oficial",
    "lang": "es"
   },
   {
    "titulo": "Wi-Fi Alliance — Seguridad",
    "url": "https://www.wi-fi.org/discover-wi-fi/security",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-passkeys",
  "titulo": "Passkeys (claves de acceso): iniciar sesión sin contraseña",
  "categoria": "ciber",
  "sub": "cuentas",
  "tags": [
   "passkey",
   "passkeys",
   "clave de acceso",
   "webauthn",
   "sin contraseña",
   "biometría",
   "novato"
  ],
  "sinonimos": [
   "llave de acceso",
   "login sin password",
   "iniciar sesion con huella",
   "pass key"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres dejar de depender de contraseñas fáciles de robar por phishing o filtraciones, pero no sabes qué son las passkeys ni dónde usarlas.",
  "diagnostico": [
   "Las contraseñas se reutilizan, se filtran y se engañan con páginas falsas.",
   "Una passkey usa un par de claves criptográficas: la privada se queda en tu dispositivo; el servidor solo guarda la pública.",
   "No todos los sitios las ofrecen todavía; hace falta dispositivo y navegador compatibles."
  ],
  "solucion": [
   "Cuando un servicio ofrezca «Passkey», «Clave de acceso» o «Iniciar sesión sin contraseña», actívala desde la configuración de seguridad de la cuenta.",
   "Confirma con la huella, el rostro o el PIN de desbloqueo del móvil/PC: eso demuestra que tienes la clave privada.",
   "Requisitos habituales (según INCIBE): iOS 16+ / macOS Ventura+; Android 9+; Windows 10/11 con Windows Hello; Chrome/Edge 109+, Safari 16+ (Firefox con soporte más limitado).",
   "Mantén también un segundo factor o método de recuperación por si cambias de dispositivo.",
   "Si un sitio no ofrece passkeys, sigue con gestor de contraseñas + 2FA (ver fichas de KeePassXC y 2FA)."
  ],
  "requisitos": {
   "hardware": [
    "Móvil o PC con biometría o PIN"
   ],
   "software": [
    "Navegador actualizado",
    "Cuenta en un servicio que soporte passkeys"
   ]
  },
  "compatibilidad": [
   "Servicios que publiquen soporte WebAuthn/passkeys (p. ej. ecosistemas Apple, Google, Microsoft y cada vez más webs)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Passkeys: inicia sesión sin contraseñas de forma segura",
    "url": "https://www.incibe.es/ciudadania/blog/passkeys-inicia-sesion-sin-contrasenas-de-forma-segura",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Línea de ayuda 017",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-wpa3-router",
  "titulo": "Pon WPA3 (o al menos WPA2) en el Wi-Fi de casa",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "wpa3",
   "wpa2",
   "router",
   "wifi",
   "cifrado",
   "ssid",
   "novato",
   "hogar"
  ],
  "sinonimos": [
   "asegurar wifi",
   "cifrado router",
   "cambiar clave wifi",
   "wifi seguro casa"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tu router sigue con la clave y el nombre de fábrica, o usa un cifrado antiguo, y cualquiera cerca podría intentar colarse o espiar tráfico.",
  "diagnostico": [
   "WPA2 tiene vulnerabilidades conocidas (p. ej. KRACK); WPA3 mejora la autenticación (SAE) y resiste mejor ataques de diccionario.",
   "SSID y contraseña por defecto son fáciles de adivinar o buscar.",
   "La administración remota del router abierta a Internet es un riesgo innecesario en casa."
  ],
  "solucion": [
   "Comprueba si tu router admite WPA3 (manual del fabricante o ficha del modelo).",
   "Entra al panel (suele ser <code>192.168.1.1</code> o <code>192.168.0.1</code>) con usuario/contraseña del router (no la del Wi-Fi).",
   "En Wi-Fi / seguridad inalámbrica elige <b>WPA3-Personal</b> si está; si no, <b>WPA2</b>. Guarda y reinicia el router.",
   "Cambia el nombre (SSID) y pon una contraseña Wi-Fi larga y única; cambia también la contraseña de administración del router.",
   "Actualiza el firmware del router y <b>desactiva la administración remota</b> desde Internet (recomendación INCIBE).",
   "Si un aparato viejo no conecta con WPA3 solo, mira si el router ofrece modo mixto WPA2/WPA3 o crea una red de invitados para esos dispositivos."
  ],
  "requisitos": {
   "hardware": [
    "Router doméstico"
   ],
   "software": [
    "Navegador"
   ]
  },
  "compatibilidad": [
   "Routers con firmware que ofrezca WPA3 o al menos WPA2"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — WPA3: el protocolo de seguridad a configurar en tu router",
    "url": "https://www.incibe.es/ciudadania/blog/wpa3-el-protocolo-de-seguridad-configurar-en-tu-router",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Conexiones seguras (configuración del router)",
    "url": "https://www.incibe.es/ciudadania/tematicas/conexiones",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-backup-ransomware",
  "titulo": "Copias de seguridad antiransomware para novatos (regla 3-2-1)",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "ransomware",
   "backup",
   "copia de seguridad",
   "3-2-1",
   "novato",
   "rescate"
  ],
  "sinonimos": [
   "protegerse del ransomware",
   "backup desconectado",
   "copia offline",
   "no pagar rescate"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Si un ransomware cifra tus fotos y documentos, sin una copia buena pierdes todo… o te chantajean para pagar.",
  "diagnostico": [
   "Una sola copia en el mismo PC o en un NAS siempre encendido también puede cifrarse.",
   "INCIBE recomienda al menos tres copias en soportes distintos y poder recuperar sin pagar.",
   "Pagar el rescate no garantiza recuperar los archivos ni evita un segundo ataque."
  ],
  "solucion": [
   "Aplica la idea 3-2-1: <b>3</b> copias de los datos importantes, en <b>2</b> tipos de soporte distintos, con <b>1</b> copia desconectada (USB/disco apagado) o fuera de la red.",
   "Ejemplo casero: PC + disco USB externo que solo enchufas para copiar + carpeta en la nube del proveedor de confianza.",
   "Programa copias periódicas (semanal como mínimo para lo crítico) y <b>prueba restaurar</b> un archivo de vez en cuando.",
   "No dejes el disco de backup siempre conectado; tras la copia, expúlsalo.",
   "Si ya te han cifrado: aísla el equipo de la red, no pagues, llama al 017 (INCIBE) y restaura desde la copia limpia."
  ],
  "requisitos": {
   "hardware": [
    "Disco USB o disco externo (recomendado)"
   ],
   "software": [
    "Herramienta de copia del sistema o del proveedor cloud"
   ]
  },
  "compatibilidad": [
   "Windows, macOS, Linux; nubes de consumo"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Guía ransomware (PDF)",
    "url": "https://www.incibe.es/sites/default/files/contenidos/guias/doc/guia_ransomware.pdf",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Caso real: ransomware que se propaga al conectar dispositivos",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad/casos-reales/una-empresa-se-infecta-de-ransomware-que-se-propaga-al-conectar-dispositivos",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Línea de ayuda 017",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-tryhackme",
  "titulo": "Practica hacking ético legal: laboratorios tipo TryHackMe",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "tryhackme",
   "laboratorio",
   "hacking etico",
   "legal",
   "ctf",
   "novato",
   "formacion"
  ],
  "sinonimos": [
   "aprender hacking legal",
   "labs ciberseguridad",
   "practicar pentesting",
   "hack the box novato"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres aprender seguridad ofensiva pero no sabes dónde practicar sin delinquir ni tocar redes ajenas.",
  "diagnostico": [
   "Atacar sistemas sin autorización es delito en España (p. ej. arts. 197 bis y 264 bis del Código Penal).",
   "Las plataformas de laboratorio te dan máquinas virtuales y retos con permiso explícito para practicar.",
   "Ya tienes en Friki Labs la ficha de OWASP Juice Shop; TryHackMe y similares son el siguiente paso guiado."
  ],
  "solucion": [
   "Empieza solo en entornos <b>autorizados</b>: laboratorios de la plataforma, VMs que despliegues tú, o Juice Shop en local.",
   "Crea cuenta en una plataforma de labs legal (p. ej. TryHackMe) y sigue un path de principiante; no inventes objetivos fuera de esa red.",
   "Complementa con la ficha «Hacking ético y la ley en España» y con Juice Shop para web.",
   "Nunca escanees ni «pruebes» la Wi-Fi del vecino, la web de tu empresa o dispositivos ajenos sin permiso por escrito.",
   "Si encuentras un fallo real en un servicio, repórtalo por el canal oficial (security.txt), no lo publiques ni lo explotes."
  ],
  "requisitos": {
   "hardware": [
    "PC con conexión a Internet"
   ],
   "software": [
    "Navegador",
    "Opcional: VPN de la propia plataforma si la exige"
   ]
  },
  "compatibilidad": [
   "Cualquier PC moderno; labs en la nube del proveedor"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "TryHackMe — Plataforma de laboratorios",
    "url": "https://tryhackme.com/",
    "tipo": "oficial"
   },
   {
    "titulo": "OWASP Juice Shop (laboratorio web legal)",
    "url": "https://owasp.org/www-project-juice-shop/",
    "tipo": "oficial"
   },
   {
    "titulo": "BOE — Código Penal (arts. 197 bis y 264 bis)",
    "url": "https://www.boe.es/buscar/act.php?id=BOE-A-1995-25444",
    "tipo": "oficial"
   },
   {
    "titulo": "Friki Labs — Hacking ético y la ley en España",
    "url": "https://frikilabs.com/#/ficha/ciber-ley-espana",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ha-green-primeros-pasos",
  "titulo": "Home Assistant Green: primeros pasos al sacarlo de la caja",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "ha green",
   "home assistant green",
   "primeros pasos",
   "onboarding",
   "nabu casa"
  ],
  "sinonimos": [
   "arrancar home assistant green",
   "configurar ha green",
   "green home assistant inicio"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te acaba de llegar el Home Assistant Green y no sabes qué cables enchufar ni cómo entrar la primera vez.",
  "diagnostico": [
   "Green es plug-and-play: no hay que flashear tarjeta como en una Raspberry Pi.",
   "Necesita Ethernet e Internet en el primer arranque.",
   "No incluye Zigbee/Thread: eso va con un dongle USB aparte."
  ],
  "solucion": [
   "Conecta el Ethernet del kit al router y la fuente de 12 V al conector barrel.",
   "Espera a que el sistema termine de prepararse (mira los LEDs de estado).",
   "En el móvil o PC abre <code>http://homeassistant.local:8123</code> (o la app oficial) y crea el usuario propietario.",
   "Completa el asistente; después podrás añadir integraciones y, si quieres Zigbee/Thread, un Connect ZBT-1/ZBT-2 con cable alargador.",
   "Haz un backup desde Ajustes cuando tengas la base montada (documentación de soporte Green)."
  ],
  "requisitos": {
   "hardware": [
    "Home Assistant Green",
    "Cable Ethernet",
    "Fuente 12 V del kit"
   ],
   "software": [
    "Navegador o app Home Assistant Companion"
   ]
  },
  "compatibilidad": [
   "Home Assistant OS en Green; red local con mDNS (.local)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "Home Assistant — Producto Green",
    "url": "https://www.home-assistant.io/green/",
    "tipo": "oficial"
   },
   {
    "titulo": "Nabu Casa Support — Green",
    "url": "https://green.home-assistant.io/",
    "tipo": "oficial"
   },
   {
    "titulo": "Home Assistant — Instalación Green",
    "url": "https://www.home-assistant.io/installation/green",
    "tipo": "oficial"
   }
  ],
  "saberMas": [
   {
    "fuente": "Enreta Domotica (YouTube)",
    "titulo": "Home assistant Green - Más FÁCIL IMPOSIBLE!!! para todos los públicos. (Enreta Domotica, YouTube)",
    "url": "https://www.youtube.com/watch?v=X2cx8r0PHVw",
    "nota": "Presentación y puesta en marcha del Home Assistant Green."
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "tdeck-primeros-pasos",
  "titulo": "LilyGO T-Deck Plus: primeros pasos (flasheo y cuidados LoRa/GPS)",
  "categoria": "esp",
  "sub": "flasheo",
  "tags": [
   "t-deck",
   "tdeck",
   "lilygo",
   "lora",
   "gps",
   "meshtastic",
   "esp32-s3"
  ],
  "sinonimos": [
   "flashear t-deck",
   "configurar t deck plus",
   "tdeck meshtastic"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes un T-Deck Plus y no sabes cómo flashearlo sin brickearlo ni por qué no arranca LoRa o el GPS.",
  "diagnostico": [
   "Sin antena LoRa conectada puedes dañar el SX1262.",
   "LoRa, pantalla y SD comparten SPI: hay que dejar los otros CS en HIGH.",
   "En el Plus, Grove no es usable: esos pines van al GPS MIA-M10Q.",
   "Con batería, GPIO10 debe estar en HIGH."
  ],
  "solucion": [
   "Enrosca la antena LoRa de la frecuencia de tu unidad (433/868/915) antes de alimentar.",
   "Modo descarga: mantén el trackball (BOOT), conecta USB-C, suelta; sube el firmware; RST para salir.",
   "Arduino: placa ESP32S3 Dev Module, 16 MB flash, OPI PSRAM, USB CDC On Boot Enable (tabla wiki LilyGO).",
   "Antes de iniciar LoRa: <code>digitalWrite</code> HIGH en CS de TFT (12), SD (39) y radio; y POWERON (10) en HIGH con batería.",
   "GPS: Serial1 a 9600 en GPIO43/44. Para Meshtastic, usa el flasheador oficial y región EU_868 en España."
  ],
  "requisitos": {
   "hardware": [
    "LilyGO T-Deck Plus",
    "Antena LoRa",
    "Cable USB-C de datos"
   ],
   "software": [
    "Arduino IDE o PlatformIO, o flasheador Meshtastic"
   ]
  },
  "compatibilidad": [
   "T-Deck Plus (no confundir con T-Deck estándar sin GPS/táctil)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "Wiki LilyGO — T-Deck Plus",
    "url": "https://wiki.lilygo.cc/products/t-deck-series/t-deck-plus/",
    "tipo": "oficial"
   },
   {
    "titulo": "Wiki LilyGO — Quick Start T-Deck Plus",
    "url": "https://wiki.lilygo.cc/products/t-deck-series/t-deck-plus/quick-start.html",
    "tipo": "oficial"
   },
   {
    "titulo": "GitHub Xinyuan-LilyGO/T-Deck",
    "url": "https://github.com/Xinyuan-LilyGO/T-Deck",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-red-invitados-iot",
  "titulo": "Separa los aparatos inteligentes: red de invitados o red IoT en tu router",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "red invitados",
   "iot",
   "router",
   "wifi",
   "domotica",
   "aislar",
   "novato",
   "hogar"
  ],
  "sinonimos": [
   "wifi invitados",
   "red iot aislada",
   "separar dispositivos inteligentes",
   "red para enchufes y camaras",
   "aislar camaras wifi"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes cámaras, enchufes, bombillas y visitas en la misma Wi-Fi que tu PC y tus fotos. Si uno de esos aparatos tiene un fallo, el atacante ya está dentro de tu red principal.",
  "diagnostico": [
   "Muchos aparatos IoT tienen firmware difícil de actualizar y casi nunca se revisan.",
   "INCIBE explica que una red de invitados deja navegar por Internet sin acceso a tu red principal ni a sus dispositivos.",
   "Algunos routers (por ejemplo ASUS o TP-Link) traen una «red IoT» específica; si no, la red de invitados hace un papel parecido."
  ],
  "solucion": [
   "Entra en el router (suele ser <code>192.168.1.1</code>) y busca en las opciones inalámbricas «Red de invitados», «Wi-Fi de invitados» o «Red IoT».",
   "Crea la red con otro nombre (SSID) y una contraseña distinta y fuerte; cifrado WPA2-AES o WPA3 si lo admite.",
   "Si el router lo permite, desactiva que esa red acceda a la red local (en ASUS: quita «Usar la misma subred que la red principal»).",
   "Pasa a esa red los aparatos que no necesitan ver tus PCs (cámaras, enchufes, TV) y a las visitas.",
   "Ojo con la domótica: si Home Assistant tiene que descubrir un aparato en la red local, aislarlo puede cortar ese descubrimiento. Prueba primero con uno.",
   "Desactiva la red de invitados cuando no la uses, como recomienda INCIBE, si solo es para visitas.",
   "¿Tienes una cámara wifi o un vigilabebés? Sigue también la <a href=\"https://frikilabs.com/#/ficha/ciber-camara-wifi-segura\">ficha de cámaras wifi seguras</a>."
  ],
  "requisitos": {
   "hardware": [
    "Router con red de invitados o red IoT"
   ],
   "software": [
    "Navegador"
   ]
  },
  "compatibilidad": [
   "La mayoría de routers domésticos; los nombres de los menús cambian según el modelo"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE (OSI) — Tu router, tu castillo: guía para configurarlo de forma segura (PDF)",
    "url": "https://www.incibe.es/sites/default/files/docs/guia_router/osi-guia-tu-router-tu-castillo.pdf",
    "tipo": "oficial"
   },
   {
    "titulo": "ASUS España — Cómo configurar la red IoT",
    "url": "https://www.asus.com/es/support/faq/1053665/",
    "tipo": "oficial"
   },
   {
    "titulo": "TP-Link — Crear una red IoT en un router de operadora",
    "url": "https://www.tp-link.com/us/support/faq/4940/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-router-wps-puertos",
  "titulo": "Desactiva el WPS y no abras puertos ni DMZ en tu router sin necesidad",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "wps",
   "router",
   "puertos",
   "dmz",
   "acceso remoto",
   "firmware",
   "novato"
  ],
  "sinonimos": [
   "quitar wps",
   "boton wps peligro",
   "cerrar puertos router",
   "dmz peligro",
   "pin wps"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tu router tiene WPS activado, puertos abiertos «por si acaso» o un equipo en DMZ, y no sabes si eso es peligroso.",
  "diagnostico": [
   "El PIN WPS (normalmente de 8 dígitos) tiene un fallo de diseño: el router dice si la primera o la segunda mitad es correcta, así que un atacante puede probar combinaciones hasta acertar en poco tiempo.",
   "Cada puerto abierto es una puerta más para atacar dispositivos de tu red; un router comprometido puede cambiar tus DNS y mandarte a webs falsas.",
   "La DMZ abre todos los puertos hacia un equipo: INCIBE no la recomienda para usuarios con pocos conocimientos.",
   "El acceso remoto a la configuración del router desde Internet es otra puerta que en casa casi nunca hace falta."
  ],
  "solucion": [
   "Entra al router y, en Wi-Fi → red principal, busca «WPS» o «Emparejado» y <b>desactívalo</b>. Conecta los aparatos nuevos escribiendo la clave Wi-Fi.",
   "<b>Aviso (oct-2026):</b> en algunos routers con chip Broadcom, apagar el WPS puede no bastar por el fallo «WPSplinter». Mira si el tuyo está afectado en la <a href=\"https://frikilabs.com/#/ficha/ciber-router-wpsplinter\">ficha de WPSplinter</a>.",
   "Si tu router no deja desactivar el WPS, INCIBE recomienda no usarlo nunca.",
   "Revisa los puertos abiertos (NAT/PAT o «Puertos») y borra las reglas que no reconozcas o que ya no uses.",
   "Comprueba que la DMZ está desactivada.",
   "En Administración o Acceso remoto, deja desactivado «Permitir acceso remoto» o «WAN Access».",
   "Mira en Información → Actualización si hay firmware nuevo y cambia la contraseña de administración si sigue la de fábrica (ver la <a href=\"https://frikilabs.com/#/ficha/ciber-wpa3-router\">ficha WPA3</a>).",
   "¿Dudas con tu modelo? INCIBE atiende gratis en el 017."
  ],
  "requisitos": {
   "hardware": [
    "Router doméstico"
   ],
   "software": [
    "Navegador"
   ]
  },
  "compatibilidad": [
   "Routers domésticos de operadora o comprados; los menús varían por modelo"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE (OSI) — Tu router, tu castillo: WPS, puertos, DMZ y acceso remoto (PDF)",
    "url": "https://www.incibe.es/sites/default/files/docs/guia_router/osi-guia-tu-router-tu-castillo.pdf",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Línea de ayuda en ciberseguridad 017",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad",
    "tipo": "oficial"
   },
   {
    "titulo": "WPSplinter — Lista de equipos afectados y preguntas frecuentes",
    "url": "https://qkaiser.github.io/broadcom-wps/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-quien-conectado-wifi",
  "titulo": "¿Quién está conectado a mi Wi-Fi? Revísalo desde el router",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "wifi",
   "router",
   "dispositivos conectados",
   "intruso",
   "mac",
   "novato"
  ],
  "sinonimos": [
   "vecino en mi wifi",
   "me roban el wifi",
   "ver dispositivos conectados",
   "intruso en la red",
   "quien usa mi wifi"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Internet va lento o sospechas que alguien se cuelga de tu Wi-Fi, pero no sabes cómo ver qué aparatos están conectados.",
  "diagnostico": [
   "El menú del router suele tener un apartado («Mi red local», «Dispositivos conectados») que muestra en tiempo real lo conectado, y a veces lo que se conectó antes.",
   "Muchos aparatos tienen nombres raros: hace falta comparar su dirección MAC con la de tus dispositivos.",
   "Ocultar el nombre de la red no es una medida de seguridad (lo dice INCIBE)."
  ],
  "solucion": [
   "Averigua la IP del router: en Windows abre <code>cmd</code>, escribe <code>ipconfig</code> y mira «Puerta de enlace predeterminada» (suele ser <code>192.168.1.1</code>).",
   "Entra con el navegador a esa IP y abre «Mi red local» / «Dispositivos conectados».",
   "Identifica cada aparato por su nombre o por su MAC (en Windows <code>ipconfig /all</code> → «Dirección física»; en el móvil, en Ajustes → Wi-Fi o Información del teléfono).",
   "Si hay algo que no reconoces: cambia la contraseña del Wi-Fi por una larga y nueva, y vuelve a conectar solo tus aparatos.",
   "Opcional: el router puede filtrar por MAC para permitir solo dispositivos conocidos, aunque es más trabajo de mantener.",
   "Para curiosear tu propia red con más detalle, mira la <a href=\"https://frikilabs.com/#/ficha/ciber-nmap-legal\">ficha de Nmap legal</a> (solo en tu red)."
  ],
  "requisitos": {
   "hardware": [
    "Router doméstico",
    "PC o móvil conectado"
   ],
   "software": [
    "Navegador"
   ]
  },
  "compatibilidad": [
   "Windows, macOS, Android, iOS; routers con lista de dispositivos"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE (OSI) — Tu router, tu castillo: dispositivos conectados y filtrado MAC (PDF)",
    "url": "https://www.incibe.es/sites/default/files/docs/guia_router/osi-guia-tu-router-tu-castillo.pdf",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-overthewire-bandit",
  "titulo": "Aprende la terminal de Linux jugando: OverTheWire Bandit (legal y gratis)",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "overthewire",
   "bandit",
   "wargame",
   "ctf",
   "linux",
   "ssh",
   "hacking etico",
   "novato"
  ],
  "sinonimos": [
   "bandit overthewire",
   "wargame linux",
   "ctf para novatos",
   "practicar linux hacking",
   "aprender terminal"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres empezar en ciberseguridad pero la terminal de Linux te asusta y no sabes dónde practicar de forma legal.",
  "diagnostico": [
   "Bandit es un «wargame» pensado para principiantes absolutos: enseña lo básico para luego jugar a otros.",
   "Está organizado por niveles: al superar uno obtienes cómo entrar en el siguiente.",
   "Es legal porque juegas en servidores preparados para ello por OverTheWire, con sus normas."
  ],
  "solucion": [
   "Lee y acepta las normas de OverTheWire (respeto, no destripar los retos y no publicar contraseñas de los niveles).",
   "Nivel 0: conéctate por SSH a <code>bandit.labs.overthewire.org</code> en el puerto 2220 con usuario <code>bandit0</code> y contraseña <code>bandit0</code>: <code>ssh -p 2220 bandit0@bandit.labs.overthewire.org</code>.",
   "Cuando no sepas usar un comando, mira su manual con <code>man &lt;comando&gt;</code> (sal con <code>q</code>) o <code>help &lt;comando&gt;</code> si es interno de la shell.",
   "Si conectas desde una máquina virtual con red NAT y da «broken pipe», OverTheWire indica añadir <code>IPQoS throughput</code> a <code>/etc/ssh/ssh_config</code> o pasar el adaptador a modo puente.",
   "Borra los archivos que crees al terminar y usa nombres difíciles de adivinar.",
   "Siguiente paso: laboratorios guiados (ver la <a href=\"https://frikilabs.com/#/ficha/ciber-tryhackme\">ficha de TryHackMe</a>) y repasa la <a href=\"https://frikilabs.com/#/ficha/ciber-ley-espana\">ficha de la ley en España</a>."
  ],
  "requisitos": {
   "hardware": [
    "PC con Internet"
   ],
   "software": [
    "Cliente SSH (incluido en Linux, macOS y Windows 10/11)"
   ]
  },
  "compatibilidad": [
   "Cualquier sistema con cliente SSH"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "OverTheWire — Bandit",
    "url": "https://overthewire.org/wargames/bandit/",
    "tipo": "oficial"
   },
   {
    "titulo": "OverTheWire — Bandit nivel 0",
    "url": "https://overthewire.org/wargames/bandit/bandit0.html",
    "tipo": "oficial"
   },
   {
    "titulo": "OverTheWire — Normas",
    "url": "https://overthewire.org/rules/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-verificar-descargas",
  "titulo": "Comprueba que una ISO o firmware descargado no está alterado (SHA-256)",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "sha256",
   "checksum",
   "iso",
   "descarga",
   "gpg",
   "integridad",
   "kali",
   "ubuntu"
  ],
  "sinonimos": [
   "verificar iso",
   "comprobar hash",
   "suma de verificacion",
   "sha256sum",
   "iso modificada",
   "certutil hash"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Vas a instalar Linux o flashear un firmware y no sabes si el archivo descargado está corrupto o lo ha manipulado alguien.",
  "diagnostico": [
   "Una descarga puede llegar dañada o, peor, venir de un espejo o web falsa con malware.",
   "Los proyectos serios publican la suma SHA-256 de cada archivo; si tu suma coincide, el archivo es idéntico al original.",
   "La firma GPG del archivo de sumas (por ejemplo <code>SHA256SUMS.gpg</code>) demuestra además que esas sumas son del proyecto y no de un tercero."
  ],
  "solucion": [
   "Descarga siempre desde la web oficial y apunta la suma SHA-256 que publica (o baja su archivo <code>SHA256SUMS</code>).",
   "Linux: <code>sha256sum archivo.iso</code>. macOS: <code>shasum -a 256 archivo.iso</code>. Windows: <code>certutil -hashfile archivo.iso sha256</code>.",
   "Compara el resultado con la suma oficial: tiene que ser <b>exactamente</b> igual (en Windows puede salir en mayúsculas; compáralo sin distinguir).",
   "Con el archivo de sumas en la misma carpeta, en Linux basta <code>sha256sum -c SHA256SUMS 2>&1 | grep OK</code> (método de Ubuntu).",
   "Nivel extra: verifica la firma con <code>gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS</code> y busca «Good signature».",
   "Si no coincide: <b>no lo uses</b> (Kali lo advierte expresamente) y vuelve a descargarlo de la fuente oficial."
  ],
  "requisitos": {
   "hardware": [
    "PC"
   ],
   "software": [
    "sha256sum / shasum / certutil (vienen con el sistema)",
    "Opcional: GnuPG"
   ]
  },
  "compatibilidad": [
   "Linux, macOS, Windows"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "Ubuntu — Cómo verificar tu descarga de Ubuntu",
    "url": "https://ubuntu.com/tutorials/how-to-verify-ubuntu",
    "tipo": "oficial"
   },
   {
    "titulo": "Kali Linux — Descargar imágenes oficiales y verificarlas",
    "url": "https://www.kali.org/docs/introduction/download-official-kali-linux-images/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "heltec-v3-meshtastic",
  "titulo": "Heltec WiFi LoRa 32 V3: instalar Meshtastic sin romper la radio",
  "categoria": "esp",
  "sub": "flasheo",
  "tags": [
   "heltec",
   "heltec v3",
   "meshtastic",
   "lora",
   "sx1262",
   "esp32-s3",
   "eu868"
  ],
  "sinonimos": [
   "flashear heltec v3",
   "meshtastic heltec",
   "heltec lora error",
   "heltec se reinicia",
   "lora32 v3"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te ha llegado una Heltec V3 y quieres usarla con Meshtastic, pero sale «LoRa Error», se reinicia sola o no sabes qué región elegir.",
  "diagnostico": [
   "Sin antena LoRa conectada puedes dañar la radio al transmitir.",
   "«LoRa Error» con el firmware de fábrica es normal: la prueba de fábrica busca otra placa igual.",
   "Reinicios continuos: fuente USB con poca corriente, antena de muelle aplastada por la caja o firmware de otra placa (Heltec).",
   "En España (Unión Europea) la región de Meshtastic que corresponde es <code>EU_868</code> (868 MHz)."
  ],
  "solucion": [
   "Conecta la antena LoRa al conector IPEX antes de enchufar la placa.",
   "Abre <code>flasher.meshtastic.org</code> en Chrome o Edge, conecta la placa por USB-C, elige la Heltec V3 y sigue el asistente.",
   "Tras flashear, conéctate (app, web o serie) y pon la región <code>EU_868</code>.",
   "Si se reinicia: usa una fuente de 5 V que dé al menos 600 mA y saca la placa de la caja para comprobar la antena de muelle.",
   "Si la pantalla se ve mal: en «Radio configuration → Display» fuerza el tipo de OLED a SSD1306.",
   "Si la batería no carga con cable USB-C a USB-C, prueba con uno USB-A a USB-C (aviso de Meshtastic)."
  ],
  "requisitos": {
   "hardware": [
    "Heltec WiFi LoRa 32 V3",
    "Antena LoRa de 868 MHz",
    "Cable USB-C de datos"
   ],
   "software": [
    "Chrome o Edge (flasheador web de Meshtastic)"
   ]
  },
  "compatibilidad": [
   "Heltec WiFi LoRa 32 V3 y V3.1 (mismo firmware). La V4 y la V4-R8 usan firmware distinto"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 16-oct-2026).",
  "fuentes": [
   {
    "titulo": "Meshtastic — Heltec LoRa 32 (V3/V3.1)",
    "url": "https://meshtastic.org/docs/hardware/devices/heltec-automation/lora32/",
    "tipo": "oficial"
   },
   {
    "titulo": "Meshtastic — Flasheador web",
    "url": "https://meshtastic.org/docs/getting-started/flashing-firmware/esp32/web-flasher/",
    "tipo": "oficial"
   },
   {
    "titulo": "Meshtastic — Configuración LoRa (regiones)",
    "url": "https://meshtastic.org/docs/configuration/radio/lora/",
    "tipo": "oficial"
   },
   {
    "titulo": "Heltec — WiFi LoRa 32 (V3): preguntas frecuentes",
    "url": "https://heltec.org/project/wifi-lora-32-v3/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-16"
 },
 {
  "id": "ciber-smishing-sms",
  "titulo": "SMS falsos (smishing): cómo reconocerlos y qué hacer si has pinchado",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "smishing",
   "sms",
   "fraude",
   "paquete",
   "banco",
   "correos",
   "estafa",
   "novato",
   "movil"
  ],
  "sinonimos": [
   "sms falso",
   "mensaje paquete no entregado",
   "sms del banco falso",
   "estafa por sms",
   "he pinchado en un enlace de un sms",
   "smising"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te llega un SMS de «tu banco», «Correos» o una empresa de paquetería con un enlace y prisa: «su paquete no se ha podido entregar», «su cuenta ha sido bloqueada». No sabes si es real.",
  "diagnostico": [
   "El smishing es phishing por SMS (o por apps de mensajería): suplantan a bancos, empresas de mensajería o de servicios para que des datos, pagues, llames a un número o instales una app.",
   "Señales típicas según INCIBE: urgencia o miedo, enlaces que no coinciden con el dominio oficial, faltas de ortografía, horas raras (noche o fin de semana) y premios o cupones de regalo.",
   "Ojo: el remitente puede estar falsificado (spoofing) y aparecer como «Correos» o «Amazon», incluso dentro del mismo hilo de mensajes reales."
  ],
  "solucion": [
   "No pulses el enlace ni respondas. Si dudas, entra tú en la web o app oficial escribiendo la dirección, o llama al teléfono oficial, nunca al que viene en el SMS.",
   "Si esperas un paquete, comprueba el envío solo desde la web oficial de la empresa.",
   "Bloquea el número y borra el mensaje. Puedes reportar el fraude a INCIBE-CERT desde su página de «Reporte de fraude».",
   "¿Ya pinchaste o diste datos? Si eran bancarios, llama ya a tu banco; si era una contraseña, cámbiala y activa la verificación en dos pasos (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">ficha 2FA</a>).",
   "Si instalaste una app desde el enlace, desinstálala y revisa el móvil.",
   "Guarda capturas como prueba y, si hubo daño, denuncia ante la Policía o la Guardia Civil. Dudas: llama gratis al 017 (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>)."
  ],
  "requisitos": {
   "hardware": [
    "Móvil"
   ],
   "software": []
  },
  "compatibilidad": [
   "Cualquier móvil (Android o iPhone) y apps de mensajería"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 17-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Smishing",
    "url": "https://www.incibe.es/ciudadania/tematicas/ingenieria-social-fraudes-online/smishing",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Smishing, el SMS con el que no te quieres encontrar",
    "url": "https://www.incibe.es/ciudadania/blog/smishing-el-sms-con-el-que-no-te-quieres-encontrar",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Reporte de fraude",
    "url": "https://www.incibe.es/ciudadania/ayuda/reporte-de-fraude",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-17"
 },
 {
  "id": "ciber-wifi-publica",
  "titulo": "Wi-Fi pública (bar, hotel, aeropuerto): úsala sin regalar tus datos",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "wifi publica",
   "wifi abierta",
   "vpn",
   "hotel",
   "aeropuerto",
   "cafeteria",
   "red trampa",
   "novato"
  ],
  "sinonimos": [
   "es seguro el wifi del bar",
   "wifi gratis peligro",
   "red wifi abierta",
   "wifi hotel seguro",
   "conectarse a wifi publica"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Estás fuera de casa, hay Wi-Fi gratis y quieres conectarte, pero no sabes qué riesgo hay ni qué puedes hacer con seguridad.",
  "diagnostico": [
   "Las redes públicas suelen tener poca seguridad y cualquiera puede conectarse: un atacante podría interceptar lo que envías.",
   "Existen «redes trampa»: alguien crea una Wi-Fi con el mismo nombre (y hasta la misma página de inicio) que la del local para espiar tu tráfico.",
   "Si guardas la red, el móvil se volverá a conectar solo cuando pases cerca, sin que te des cuenta."
  ],
  "solucion": [
   "Lo más seguro, según INCIBE, es no usarlas; si tienes datos móviles, compártelos desde tu móvil.",
   "Si la usas: nada de banca, compras ni contraseñas importantes. Solo navegación sin datos personales.",
   "Usa una VPN de confianza para cifrar la conexión.",
   "Confirma con el personal el nombre exacto de la red antes de conectarte.",
   "Desactiva compartir archivos e impresoras y la conexión automática a redes Wi-Fi.",
   "Al terminar, olvida la red en tu dispositivo. Si sospechas que era insegura: desconéctate, bórrala y cambia las contraseñas que usaste (sobre todo banco y correo).",
   "Mantén el sistema actualizado (<a href=\"https://frikilabs.com/#/ficha/ciber-actualizaciones\">ficha de actualizaciones</a>)."
  ],
  "requisitos": {
   "hardware": [
    "Móvil o portátil"
   ],
   "software": [
    "VPN de confianza (opcional)"
   ]
  },
  "compatibilidad": [
   "Android, iPhone, Windows, macOS y Linux"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 17-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Conexiones seguras: redes Wi-Fi públicas y qué hacer si te conectaste a una insegura",
    "url": "https://www.incibe.es/ciudadania/tematicas/conexiones",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — ¡Conexión gratis a la vista! ¿Conecto mi móvil?",
    "url": "https://www.incibe.es/ciudadania/blog/conexion-gratis-la-vista-conecto-mi-movil",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Cómo saber con qué red estás conectado y sus riesgos",
    "url": "https://www.incibe.es/ciudadania/blog/como-saber-con-que-red-estas-conectado-internet-y-sus-riesgos",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-17"
 },
 {
  "id": "ciber-cuenta-robada",
  "titulo": "Me han robado la cuenta (redes, correo, tienda): pasos para recuperarla",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "cuenta robada",
   "hackeo",
   "suplantacion",
   "recuperar cuenta",
   "instagram",
   "correo",
   "novato"
  ],
  "sinonimos": [
   "me han hackeado",
   "me han hackeado el instagram",
   "no puedo entrar en mi cuenta",
   "han cambiado mi contraseña",
   "suplantan mi identidad",
   "cuenta hackeada"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "No puedes entrar en tu cuenta, te ha llegado un aviso de actividad sospechosa o tus contactos reciben mensajes raros «tuyos».",
  "diagnostico": [
   "Suele pasar por contraseñas robadas en filtraciones, reutilizar la misma contraseña, phishing o malware en el dispositivo.",
   "El atacante intenta cambiar enseguida el correo y el teléfono de recuperación para que no puedas volver a entrar."
  ],
  "solucion": [
   "Documenta todo: capturas de mensajes, avisos y actividad extraña.",
   "Avisa a tus contactos y familia para que no caigan en el engaño.",
   "Usa el proceso oficial de recuperación de la plataforma («¿Has olvidado tu contraseña?» o su formulario de cuenta comprometida o suplantación).",
   "Al recuperarla: contraseña nueva, larga y única (<a href=\"https://frikilabs.com/#/ficha/ciber-contrasenas-fuertes\">ficha de contraseñas</a>), activa la verificación en dos pasos, cierra sesiones que no reconozcas y revisa el correo y teléfono de recuperación.",
   "Cambia la contraseña en cualquier otra cuenta donde usaras la misma y comprueba filtraciones en Have I Been Pwned (<a href=\"https://frikilabs.com/#/ficha/ciber-hibp\">ficha HIBP</a>).",
   "Revisa que tu ordenador o móvil no tenga malware.",
   "Si no la recuperas o se ha usado para estafar, denuncia ante Policía Nacional, Guardia Civil, Ertzaintza o Mossos aportando las pruebas. Ayuda gratis: 017, WhatsApp 900 116 117 o Telegram @INCIBE017."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Acceso al correo o teléfono de recuperación, si lo conservas"
   ]
  },
  "compatibilidad": [
   "Redes sociales, correo, tiendas online y plataformas de vídeo; cada una tiene su propio formulario"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 17-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Me robaron la cuenta, ¿qué hago?",
    "url": "https://www.incibe.es/ciudadania/blog/me-robaron-la-cuenta-que-hago",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Suplantación de identidad y secuestro de cuentas: ¿cómo actuar?",
    "url": "https://www.incibe.es/ciudadania/blog/suplantacion-de-identidad-y-secuestro-de-cuentas-como-actuar",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Robo de cuentas",
    "url": "https://www.incibe.es/ciudadania/tematicas/virus-amenazas/robo-de-cuentas",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Cómo denunciar si has sido víctima de un fraude o delito",
    "url": "https://www.incibe.es/ciudadania/ayuda/denuncia",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-17"
 },
 {
  "id": "ciber-cylab-picoctf",
  "titulo": "Aprende hacking legal gratis con retos CTF: picoCTF ahora es CyLab Security Academy",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "picoctf",
   "cylab",
   "ctf",
   "retos",
   "hacking etico",
   "aprender",
   "carnegie mellon",
   "novato"
  ],
  "sinonimos": [
   "picoctf",
   "pico ctf",
   "ctf para principiantes",
   "aprender hacking gratis",
   "retos de ciberseguridad",
   "capture the flag"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres aprender hacking de verdad, pero sin meterte en líos ni atacar nada ajeno, y no sabes por dónde empezar.",
  "diagnostico": [
   "Practicar contra sistemas que no son tuyos o sin permiso es delito (<a href=\"https://frikilabs.com/#/ficha/ciber-ley-espana\">ficha de la ley en España</a>). Los CTF (Capture The Flag) son retos hechos para ser atacados: es legal y realista.",
   "picoCTF, de la Universidad Carnegie Mellon, ha pasado a llamarse CyLab Security Academy (picoctf.org redirige allí). Es gratis y no pide experiencia previa.",
   "Las cuentas de picoCTF creadas antes del 8 de mayo de 2026 siguen valiendo, con su progreso intacto."
  ],
  "solucion": [
   "Entra en CyLab Security Academy y regístrate (o inicia sesión con tu cuenta de picoCTF).",
   "Empieza por «General Skills»: terminal, bash y manejo de archivos, la base para el resto. Combínalo con la <a href=\"https://frikilabs.com/#/ficha/ciber-overthewire-bandit\">ficha de OverTheWire Bandit</a>.",
   "Sigue una ruta de aprendizaje (Learning Paths): ordenan los retos de fácil a difícil con lecturas y vídeos.",
   "Cada reto esconde una «bandera» (flag); si te atascas, pide pistas de una en una.",
   "Cuando te veas suelto, apúntate a un evento con marcador; algunos permiten jugar en equipo.",
   "Si eres docente, puedes crear una clase y asignar retos."
  ],
  "requisitos": {
   "hardware": [
    "Ordenador con navegador"
   ],
   "software": [
    "Navegador; para algunos retos, una terminal Linux (por ejemplo, Kali o WSL)"
   ]
  },
  "compatibilidad": [
   "Cualquier sistema con navegador; plataforma en inglés"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 17-oct-2026).",
  "fuentes": [
   {
    "titulo": "CyLab Security Academy (Carnegie Mellon, antes picoCTF)",
    "url": "https://cylabacademy.org",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "picoCTF — Aviso del cambio a CyLab Security Academy",
    "url": "https://picoctf.org/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-17"
 },
 {
  "id": "ciber-vishing-llamadas",
  "titulo": "Llamadas falsas (vishing): «soy de tu banco» o «soporte técnico». Cómo pillarlas",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "vishing",
   "llamada falsa",
   "estafa telefonica",
   "soporte tecnico falso",
   "banco",
   "novato"
  ],
  "sinonimos": [
   "me llaman de mi banco",
   "llamada de microsoft",
   "llamada soporte tecnico",
   "estafa por telefono",
   "me piden instalar un programa por telefono",
   "llamada sospechosa"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te llama alguien que dice ser de tu banco, de tu compañía de internet o del «soporte técnico» y te pide datos, un pago o que instales un programa.",
  "diagnostico": [
   "El vishing es una estafa por llamada: se hacen pasar por bancos, empresas, organismos públicos o soporte técnico para sacarte datos, dinero o el control de tu ordenador.",
   "Señales típicas según INCIBE: prisa o amenazas (bloqueo de cuenta, multas), piden datos confidenciales, te piden instalar un programa, esquivan tus preguntas y ofrecen premios demasiado buenos.",
   "El número o el nombre que ves en pantalla puede estar falsificado, y hasta pueden imitar la voz de alguien conocido.",
   "Variantes habituales: falsos premios, «hemos visto movimientos raros en tu cuenta», mensajes de voz automáticos e inversiones en criptomonedas «seguras»."
  ],
  "solucion": [
   "Mantén la calma y cuelga ante la mínima duda: una empresa de verdad no se enfada porque llames tú después.",
   "Llama tú al teléfono oficial (el de la web o el de detrás de tu tarjeta), nunca a uno que te den en la llamada.",
   "No des contraseñas, códigos, PIN ni números de tarjeta, y no abras enlaces ni webs que te dicten.",
   "Nunca instales programas de acceso remoto porque te lo pida alguien que te ha llamado.",
   "¿Ya caíste? Llama a tu banco si diste datos de pago y revisa movimientos; desinstala lo que te hicieran instalar y pasa el antivirus; cambia contraseñas y activa la verificación en dos pasos (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">ficha 2FA</a>).",
   "Avisa a la empresa suplantada y denuncia con las pruebas que tengas. Ayuda gratis: 017 de INCIBE (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>).",
   "¿Ya les dejaste entrar en el ordenador? Mira la <a href=\"https://frikilabs.com/#/ficha/ciber-falso-soporte-acceso-remoto\">ficha de falso soporte técnico con AnyDesk</a>."
  ],
  "requisitos": {
   "hardware": [
    "Teléfono fijo o móvil"
   ],
   "software": []
  },
  "compatibilidad": [
   "Cualquier teléfono; también llamadas por WhatsApp u otras apps"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 18-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Vishing",
    "url": "https://www.incibe.es/ciudadania/tematicas/ingenieria-social-fraudes-online/vishing",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-18"
 },
 {
  "id": "ciber-tienda-online-falsa",
  "titulo": "¿Esta tienda online es una estafa? Cómo comprobarlo antes de pagar",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "tienda falsa",
   "compras online",
   "estafa",
   "black friday",
   "pago seguro",
   "novato"
  ],
  "sinonimos": [
   "tienda online fraudulenta",
   "web de compras falsa",
   "es fiable esta tienda",
   "comprar seguro por internet",
   "chollo sospechoso",
   "he comprado en una web falsa"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has encontrado un chollo (por ejemplo, una placa o un gadget muy por debajo de su precio) en una web que no conoces y no sabes si fiarte.",
  "diagnostico": [
   "INCIBE avisa: un solo indicio no basta para saber si una tienda es falsa, pero varios juntos sí deben frenarte.",
   "Señales típicas: precios muy por debajo del mercado o todos los productos al mismo precio, sin dirección ni teléfono de contacto, textos con faltas, enlaces rotos y redes sociales que no existen o están vacías.",
   "Una tienda española tiene que mostrar titular, NIF/CIF, domicilio, correo y condiciones de venta y devolución; en las falsas suelen estar copiados o no cuadran.",
   "Ojo con los gastos «extra» que aparecen al final (seguros, aduanas, manipulación) sin estar detallados."
  ],
  "solucion": [
   "Busca opiniones de otros compradores fuera de la propia web.",
   "Comprueba el candado y que la dirección empiece por <code>https://</code>, y que el certificado pertenezca a la empresa que dice ser.",
   "Lee el aviso legal, la política de privacidad y la de envíos y devoluciones: si no existen o no tienen sentido, busca otra tienda.",
   "Paga solo con métodos con protección: tarjeta (mejor virtual o monedero), PayPal, Bizum, Google Pay o Apple Pay. Desconfía si solo aceptan transferencia.",
   "Después de comprar: borra los datos de pago guardados, cierra sesión, guarda la factura y el número de seguimiento y revisa los cargos del banco.",
   "¿Te han estafado? Llama a tu banco cuanto antes, guarda las pruebas, denuncia y pide ayuda en el 017 (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>).",
   "¿Vendes o compras de segunda mano? Mira la <a href=\"https://frikilabs.com/#/ficha/ciber-compraventa-segunda-mano\">ficha de estafas en Wallapop y Vinted</a>."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Navegador actualizado"
   ]
  },
  "compatibilidad": [
   "Cualquier tienda online, desde el móvil o el ordenador"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 18-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Compras seguras online",
    "url": "https://www.incibe.es/ciudadania/tematicas/compras-seguras-online",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Tiendas online fraudulentas",
    "url": "https://www.incibe.es/ciudadania/tiendas-online-fraudulentas",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-18"
 },
 {
  "id": "ciber-whatsapp-blindar",
  "titulo": "Blinda tu WhatsApp: verificación en dos pasos y el código que nunca debes dar",
  "categoria": "ciber",
  "sub": "cuentas",
  "tags": [
   "whatsapp",
   "verificacion en dos pasos",
   "codigo de 6 digitos",
   "secuestro de cuenta",
   "dispositivos vinculados",
   "novato"
  ],
  "sinonimos": [
   "me han robado el whatsapp",
   "me piden el codigo de whatsapp",
   "whatsapp hackeado",
   "proteger whatsapp",
   "pin de whatsapp",
   "codigo de verificacion whatsapp"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te llega un SMS con un código de WhatsApp que no has pedido, o un «amigo» o un supuesto soporte técnico te pide que se lo reenvíes.",
  "diagnostico": [
   "Con el código de 6 dígitos que llega por SMS, otra persona puede registrar tu número en su móvil y quedarse con tu cuenta. Es la estafa más común según INCIBE.",
   "Suelen pedirlo haciéndose pasar por un contacto (cuya cuenta ya robaron), por una empresa de paquetería o por el soporte de WhatsApp en una llamada.",
   "Otra variante («ghostpairing»): un enlace del tipo «¿eres tú el de esta foto?» te hace vincular tu cuenta a su dispositivo, como si fuera WhatsApp Web, y te leen sin que lo notes."
  ],
  "solucion": [
   "Nunca compartas el código de registro, ni con amigos ni con familia. WhatsApp no te lo va a pedir.",
   "Activa la verificación en dos pasos: Ajustes (Configuración en iPhone) → Cuenta → Verificación en dos pasos → Activar. WhatsApp está cambiando el PIN de 6 dígitos por una contraseña; elige una que no uses en otro sitio.",
   "Añade un correo electrónico: sirve para restablecer el PIN o la contraseña si la olvidas. Si no hay correo y la olvidas, toca esperar 7 días.",
   "Revisa de vez en cuando Dispositivos vinculados y cierra los que no reconozcas.",
   "¿Ya te la han quitado? Vuelve a registrar tu número con el código que te llega por SMS: al hacerlo se cierran las demás sesiones. Si te pide un PIN que no pusiste tú, espera 7 días y vuelve a intentarlo.",
   "Avisa a tus contactos por otro canal y, si no la recuperas, escribe al soporte de WhatsApp y guarda pruebas. Más pasos: <a href=\"https://frikilabs.com/#/ficha/ciber-cuenta-robada\">cuenta robada</a> y <a href=\"https://frikilabs.com/#/ficha/ciber-whatsapp-piden-dinero\">me piden dinero por WhatsApp</a>."
  ],
  "requisitos": {
   "hardware": [
    "Móvil con WhatsApp"
   ],
   "software": [
    "WhatsApp actualizado"
   ]
  },
  "compatibilidad": [
   "Android, iPhone y WhatsApp Web o de escritorio (dispositivos vinculados)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 18-oct-2026).",
  "fuentes": [
   {
    "titulo": "WhatsApp — Información acerca de la verificación en dos pasos",
    "url": "https://faq.whatsapp.com/1278661612895630/?locale=es_ES",
    "tipo": "oficial"
   },
   {
    "titulo": "WhatsApp — Cómo administrar los ajustes de la verificación en dos pasos",
    "url": "https://faq.whatsapp.com/1920866721452534/?locale=es_ES",
    "tipo": "oficial"
   },
   {
    "titulo": "WhatsApp — Cómo restablecer el PIN de la verificación en dos pasos",
    "url": "https://faq.whatsapp.com/2183055648554771/?locale=es_LA",
    "tipo": "oficial"
   },
   {
    "titulo": "WhatsApp — Cómo recuperar una cuenta comprometida",
    "url": "https://faq.whatsapp.com/1131652977717250/?locale=en_US",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "INCIBE — ¡Socorro, me han secuestrado WhatsApp!",
    "url": "https://www.incibe.es/ciudadania/blog/socorro-me-han-secuestrado-whatsapp",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Ghostpairing, la nueva versión del robo de WhatsApp",
    "url": "https://www.incibe.es/ciudadania/blog/ghostpairing-la-nueva-version-del-robo-de-whatsapp",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-18"
 },
 {
  "id": "ciber-flipper-zero-legal",
  "titulo": "Flipper Zero: qué puede hacer de verdad y cómo usarlo de forma legal",
  "categoria": "ciber",
  "sub": "etico",
  "tags": [
   "flipper zero",
   "sub-ghz",
   "rfid",
   "nfc",
   "mando de garaje",
   "hacking etico",
   "novato"
  ],
  "sinonimos": [
   "flipper",
   "flipper zero es legal",
   "flipper zero españa",
   "copiar mando garaje",
   "para que sirve flipper zero",
   "flipper abrir coches"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes (o quieres) un Flipper Zero y no sabes qué es legal hacer con él, qué frecuencias puede usar en España ni por qué algunas funciones «no van».",
  "diagnostico": [
   "Su módulo de radio Sub-GHz (chip CC1101, alcance de hasta unos 50 m) puede recibir en 300-348, 387-464 y 779-928 MHz: mandos de garaje, timbres, barreras, luces…",
   "Pero solo <b>transmite</b> en frecuencias permitidas para uso civil en tu región. En la Unión Europea (y por tanto en España): 433,05-434,79 MHz y 868,15-868,55 MHz.",
   "De fábrica la transmisión viene desactivada hasta que lo actualizas (app móvil o qFlipper, con tarjeta microSD); al actualizar se detecta tu región. Si intentas emitir fuera de banda verás «Transmission is blocked».",
   "Al leer un mando, solo guarda la señal si el protocolo es estático; los mandos de código variable (rolling code) no se clonan con la función normal.",
   "Usarlo contra aparatos, coches o accesos que no son tuyos o sin permiso puede ser delito (<a href=\"https://frikilabs.com/#/ficha/ciber-ley-espana\">ficha de la ley en España</a>)."
  ],
  "solucion": [
   "Actualiza el firmware oficial antes de nada y mira tu región: en el escritorio, mantén pulsada la flecha abajo y verás el código de región en la pantalla de información.",
   "Practica solo con lo tuyo: tu mando de garaje, tu timbre inalámbrico, tus tarjetas o llaveros NFC/RFID, tus mandos infrarrojos.",
   "Úsalo para auditar tu casa: si tu mando de garaje es de código fijo y el Flipper lo guarda sin problema, cualquiera con un aparato parecido podría copiarlo. Plantéate cambiar a un sistema de código variable.",
   "Usa el Analizador de frecuencias para saber en qué frecuencia trabaja tu mando, sin emitir nada.",
   "No intentes saltarte el bloqueo de región ni emitir en frecuencias no permitidas. Si usas firmware de terceros, recuerda que la responsabilidad legal es tuya.",
   "Para Wi-Fi, mira también las fichas de <a href=\"https://frikilabs.com/#/ficha/esp32-marauder-etico\">ESP32 Marauder</a> y <a href=\"https://frikilabs.com/#/ficha/bruce-firmware-etico\">Bruce</a>, siempre sobre tu propia red."
  ],
  "requisitos": {
   "hardware": [
    "Flipper Zero",
    "Tarjeta microSD (necesaria para actualizar)"
   ],
   "software": [
    "App Flipper (móvil) o qFlipper (ordenador)"
   ]
  },
  "compatibilidad": [
   "Firmware oficial de Flipper Zero; frecuencias de transmisión según la región detectada"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 18-oct-2026).",
  "fuentes": [
   {
    "titulo": "Flipper Zero — Documentación oficial: Sub-GHz",
    "url": "https://docs.flipper.net/zero/sub-ghz",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Flipper Zero — Frecuencias permitidas por región",
    "url": "https://docs.flipper.net/zero/sub-ghz/frequencies",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-18"
 },
 {
  "id": "ciber-router-wpsplinter",
  "titulo": "¿Mi router está afectado por el fallo WPS de Broadcom (WPSplinter)? Cómo mirarlo y qué hacer",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "wpsplinter",
   "wps",
   "broadcom",
   "router",
   "movistar",
   "vulnerabilidad",
   "novato"
  ],
  "sinonimos": [
   "fallo wps broadcom",
   "vulnerabilidad router movistar",
   "router hgu vulnerable",
   "mi router es vulnerable",
   "wpsplinter",
   "pueden sacar la clave wifi de mi router",
   "askey rtf3505vw",
   "mitrastar gpt-2541gnac"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has leído que un fallo en el WPS de los chips Broadcom permite atacar routers desde la calle, sin saber la clave del Wi-Fi, y quieres saber si el tuyo está en la lista y qué puedes hacer.",
  "diagnostico": [
   "Lo presentó el investigador Quentin Kaiser el 16-oct-2026. Sin CVE (Broadcom no quiso asignarlo) y sin ataques reales conocidos.",
   "Está en el código WPS antiguo de Broadcom: alguien al alcance de tu Wi-Fi puede llegar a él <b>sin saber la clave</b> y, en equipos vulnerables, ejecutar código; en sus pruebas sacó la clave Wi-Fi de un router.",
   "Su lista (incompleta) incluye routers de Movistar/O2/Telefónica: <b>Askey RTF3505VW</b>, <b>MitraStar GPT-2541GNAC</b> y <b>Comtrend VG8050</b>, además de modelos de ZTE (F680 v4), Nokia, TP-Link, Huawei, Sagemcom o Cisco. Estar en la lista no confirma tu firmware; no estar tampoco te salva.",
   "<b>Importante:</b> según el investigador, desactivar el WPS en los ajustes puede no bastar, porque el código vulnerable puede seguir activo."
  ],
  "solucion": [
   "Mira la pegatina del router: apunta marca y modelo exactos (p. ej. «RTF3505VW») y compáralos con la lista de la página WPSplinter (en las fuentes).",
   "Si coincide o dudas, llama a tu operadora: pregunta si hay firmware que corrija este fallo y, si no, pide que te cambien el router.",
   "Mientras, desactiva el WPS igualmente (ayuda, aunque no baste) y repasa la <a href=\"https://frikilabs.com/#/ficha/ciber-router-wps-puertos\">ficha de WPS y puertos</a>; los aparatos IoT, a la <a href=\"https://frikilabs.com/#/ficha/ciber-red-invitados-iot\">red de invitados</a>.",
   "Sin pánico: no instales «comprobadores» milagro ni pruebes nada contra routers ajenos. Dudas: 017 de INCIBE (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>).",
   "Resuelto cuando tu operadora confirma un firmware corregido o tienes un router que no está en la lista."
  ],
  "requisitos": {
   "hardware": [
    "Tu router doméstico (de operadora o comprado)"
   ],
   "software": [
    "Navegador para entrar en la web del router"
   ]
  },
  "compatibilidad": [
   "Routers y puntos de acceso con el código WPS antiguo de Broadcom (familias BCM3380, BCM3383, BCM33834, BCM3390, BCM63xx, BCM65xx y BCM68xx), según la investigación publicada el 16-oct-2026"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 19-oct-2026).",
  "fuentes": [
   {
    "titulo": "WPSplinter — Lista de equipos afectados y preguntas frecuentes (página del investigador)",
    "url": "https://qkaiser.github.io/broadcom-wps/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Quentin Kaiser — Investigación completa y cronología del aviso",
    "url": "https://quentinkaiser.be/security/2026/10/16/one-parser-two-bugs/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "INCIBE (OSI) — Tu router, tu castillo: WPS, puertos, DMZ y acceso remoto (PDF)",
    "url": "https://www.incibe.es/sites/default/files/docs/guia_router/osi-guia-tu-router-tu-castillo.pdf",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-19"
 },
 {
  "id": "ciber-whatsapp-piden-dinero",
  "titulo": "Me piden dinero por WhatsApp desde el número de un amigo (o un «hijo» con número nuevo): qué hacer",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "whatsapp",
   "estafa",
   "hijo en apuros",
   "bizum",
   "transferencia",
   "suplantacion",
   "novato"
  ],
  "sinonimos": [
   "hola mama mi telefono se ha roto",
   "estafa del hijo en apuros",
   "me piden dinero por whatsapp",
   "whatsapp de un amigo pide dinero",
   "mensaje pidiendo bizum",
   "estafa whatsapp transferencia urgente",
   "mi whatsapp pide dinero a mis contactos"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Un contacto de WhatsApp (o alguien que dice ser tu hijo con un número nuevo) te pide dinero urgente por Bizum o transferencia. O te avisan de que desde tu WhatsApp están pidiendo dinero a tus contactos.",
  "diagnostico": [
   "«Hijo en apuros»: un número desconocido escribe «Hola mamá, mi teléfono se ha roto, este es mi nuevo número…» y luego, por WhatsApp, pide un Bizum o una transferencia. Suele tener faltas.",
   "Cuenta usada sin permiso (aviso de INCIBE del 14-oct-2026): desde una cuenta real salen peticiones de 970 o 980 € que su dueño no ha escrito ni ve en su historial. Sobre todo iPhone sin actualizar (antes de iOS 18 o iOS 26 anterior a 26.7).",
   "Las dos juegan con la prisa y la confianza: ni el nombre, ni la foto, ni el número garantizan quién escribe."
  ],
  "solucion": [
   "Antes de pagar, <b>llama</b> a esa persona a su número de siempre (no preguntes en el mismo chat) y hazle una pregunta que solo ella sabría responder.",
   "Si no has respondido ni pagado: bloquea el número y borra el mensaje.",
   "Si ya has pagado: llama <b>ya</b> a tu banco por sus canales oficiales, explica que es un fraude y pide que intenten parar o recuperar la operación (la devolución no está garantizada).",
   "Guarda pruebas (capturas, números, justificantes), denuncia ante Policía o Guardia Civil y reporta el número en WhatsApp.",
   "Si salen de <b>tu</b> cuenta: avisa a tus contactos por otro canal, actualiza primero iOS y luego haz copia, borra WhatsApp del todo y reinstálalo. Según INCIBE, en ese orden se resolvieron sus casos.",
   "Después, <a href=\"https://frikilabs.com/#/ficha/ciber-whatsapp-blindar\">blinda tu WhatsApp</a> (verificación en dos pasos y dispositivos vinculados). Dudas: 017 de INCIBE, gratis."
  ],
  "requisitos": {
   "hardware": [
    "Móvil con WhatsApp"
   ],
   "software": [
    "WhatsApp y sistema del móvil actualizados"
   ]
  },
  "compatibilidad": [
   "Cualquier móvil; la variante de cuentas usadas sin permiso (aviso de INCIBE del 14-oct-2026) afecta sobre todo a iPhone sin actualizar"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 19-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Aviso del 14/10/2026: usan cuentas de WhatsApp en iPhone sin actualizar para pedir dinero a sus contactos",
    "url": "https://www.incibe.es/ciudadania/avisos/los-ciberdelincuentes-estan-utilizando-cuentas-de-whatsapp-en-iphone-sin",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — ¿Has recibido un mensaje desde un número desconocido que dice ser tu hijo?",
    "url": "https://www.incibe.es/ciudadania/avisos/has-recibido-un-mensaje-desde-un-numero-desconocido-que-dice-ser-tu-hijo",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-19"
 },
 {
  "id": "ciber-qr-fraudulento",
  "titulo": "Códigos QR trampa: cómo escanear sin caer en una web falsa o una suscripción que no pediste",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "qr",
   "quishing",
   "codigo qr falso",
   "suscripcion",
   "phishing",
   "novato"
  ],
  "sinonimos": [
   "qr falso",
   "quishing",
   "escanear qr es seguro",
   "qr del menu restaurante",
   "qr pegado encima",
   "me han cobrado tras escanear un qr",
   "qr parquimetro falso"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Vas a escanear un código QR (la carta de un restaurante, un cartel, un parquímetro o un correo) y no sabes si puede llevarte a una web falsa o meterte en un lío.",
  "diagnostico": [
   "Los ciberdelincuentes imprimen QR falsos y los pegan en paredes, carteles o tablones; al escanearlos te llevan a webs que roban datos personales o bancarios o que intentan instalar programas maliciosos.",
   "INCIBE cuenta un caso real (agosto de 2026): tras escanear el QR de la carta de un restaurante y aceptar una ventana de cookies, a una usuaria se le activó una suscripción de pago que no había pedido, y no tenía datos para darse de baja.",
   "También llegan por correo: un mensaje te pide escanear un QR «para verificar tu cuenta» o el doble factor y te lleva a un inicio de sesión falso."
  ],
  "solucion": [
   "Antes de escanear, mira el QR: si está pegado encima de otro, despegado o estropeado, desconfía.",
   "Desactiva en la cámara o el lector que los enlaces se abran solos; así ves la dirección antes de entrar.",
   "Comprueba que la dirección coincide con la web oficial del sitio o servicio: atención a faltas, caracteres raros o dominios extraños. Si no lo ves claro, no entres.",
   "No metas datos personales ni de pago en una web a la que hayas llegado por un QR salvo que estés totalmente seguro de que es auténtica. Si puedes, escribe tú la dirección o usa la app oficial.",
   "Desconfía de los correos inesperados que te piden escanear un QR para «verificar» algo: bórralos.",
   "Si ya te ha pasado: avisa al establecimiento, llama a tu banco para bloquear cargos, intenta cancelar la suscripción, guarda pruebas (capturas, el QR, extractos), denuncia y revisa los movimientos las semanas siguientes. Ayuda gratis en el 017 (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>).",
   "Mantén el móvil y las apps actualizados (<a href=\"https://frikilabs.com/#/ficha/ciber-actualizaciones\">ficha de actualizaciones</a>)."
  ],
  "requisitos": {
   "hardware": [
    "Móvil con cámara"
   ],
   "software": [
    "Cámara o lector de QR que muestre la dirección antes de abrirla"
   ]
  },
  "compatibilidad": [
   "Cualquier móvil Android o iPhone"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 19-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Caso real: suscripción premium no deseada tras escanear el QR del menú de un restaurante",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad/casos-reales/suscripcion-premium-no-deseada-tras-escanear-el-qr-del-menu-de-un-restaurante",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Códigos QR fraudulentos",
    "url": "https://www.incibe.es/node/494006",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-19"
 },
 {
  "id": "ds18b20-marca-85-grados",
  "titulo": "Mi sonda DS18B20 marca 85 °C o da lecturas raras",
  "categoria": "esp",
  "sub": "pines",
  "tags": [
   "ds18b20",
   "dallas",
   "1-wire",
   "85 grados",
   "esphome",
   "temperatura",
   "pull-up"
  ],
  "sinonimos": [
   "ds18b20 85",
   "ds18b20 marca 85",
   "sonda temperatura 85 grados",
   "dallas 85",
   "ds18b20 no lee",
   "dallas_temp no funciona",
   "ds18b20 valores raros",
   "sonda sumergible no mide"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tu sonda DS18B20 conectada a un ESP32 (con ESPHome o Arduino) marca siempre 85 °C, da saltos raros o deja de aparecer, aunque la habitación esté a 20 °C.",
  "diagnostico": [
   "85 °C es el valor que tiene el sensor <b>al encenderse</b>, antes de hacer ninguna medida (lo dice la hoja de datos). Si lo ves, casi seguro que el sensor se está reiniciando o que se lee antes de terminar de medir.",
   "Causa típica: modo «parásito» (dos cables, VDD a masa). Al medir, el sensor puede pedir hasta 1,5 mA y la resistencia pull-up sola no da suficiente corriente, así que se queda sin energía.",
   "Pull-up que falta o cables largos y flojos. O patillas cruzadas: en el TO-92 son 1 = GND, 2 = datos y 3 = VDD (en sondas con cable, mira los colores en la documentación del vendedor)."
  ],
  "solucion": [
   "Pasa a modo normal con tres cables: VDD a 3,3 V, GND a masa y datos al GPIO.",
   "Pon (o cambia) la pull-up de 4,7 kΩ entre datos y 3,3 V. ESPHome dice que ±1 kΩ suele valer si el cable no es muy largo.",
   "Revisa el YAML de ESPHome: <code>one_wire:</code> con <code>platform: gpio</code> en un pin del propio chip (no de un expansor) y cada sonda con <code>platform: dallas_temp</code> y su <code>address</code> si hay varias.",
   "Mira los registros al arrancar: ESPHome lista las direcciones que encuentra en el bus. Si no sale ninguna, el problema es de cableado o de pull-up (<a href=\"https://frikilabs.com/#/ficha/esphome-logs-cli\">cómo ver los logs</a>).",
   "Prueba con un cable corto; si así va, sigue la guía del fabricante para redes 1-Wire largas (enlazada desde ESPHome). Por encima de 100 °C, nada de modo parásito."
  ],
  "requisitos": {
   "hardware": [
    "ESP32 o ESP8266",
    "Sonda DS18B20",
    "Resistencia de 4,7 kΩ"
   ],
   "software": [
    "ESPHome (o Arduino)"
   ]
  },
  "compatibilidad": [
   "DS18B20 en encapsulado TO-92, SO o µSOP y sondas con cable que lo llevan dentro",
   "ESPHome con los componentes one_wire y dallas_temp"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 20-oct-2026).",
  "fuentes": [
   {
    "titulo": "Analog Devices (Maxim) — Hoja de datos del DS18B20 (valor de arranque de 85 °C, modo parásito, patillas)",
    "url": "https://www.analog.com/media/en/technical-documentation/data-sheets/ds18b20.pdf",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESPHome — Bus 1-Wire (pull-up y direcciones en el log)",
    "url": "https://esphome.io/components/one_wire/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESPHome — Sensor de temperatura Dallas (dallas_temp)",
    "url": "https://esphome.io/components/sensor/dallas_temp/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-20"
 },
 {
  "id": "ciber-sim-duplicada",
  "titulo": "Mi móvil se ha quedado sin cobertura de repente: ¿me han duplicado la SIM (SIM swapping)? Qué hacer",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "sim swapping",
   "duplicado sim",
   "sim",
   "banco",
   "sms",
   "2fa",
   "novato"
  ],
  "sinonimos": [
   "me han duplicado la sim",
   "sim swapping",
   "movil sin cobertura de repente",
   "duplicado de tarjeta sim fraude",
   "me quedo sin señal y me roban del banco",
   "estafa duplicado sim",
   "sim clonada"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tu móvil se queda sin cobertura, sin llamadas ni datos, en un sitio donde siempre tienes señal, y te preocupa que alguien haya pedido un duplicado de tu SIM para entrar en tu banco o tus cuentas.",
  "diagnostico": [
   "En el SIM swapping, el delincuente se hace pasar por ti ante tu operadora y consigue un duplicado de tu SIM. Al activarse, la tuya deja de funcionar sola.",
   "Con tu número en su poder recibe los SMS de verificación y puede entrar en tu banca online, tu correo o tus redes.",
   "Señales: sin cobertura sin motivo lógico, movimientos del banco que no reconoces o avisos de cambio de contraseña que no has pedido."
  ],
  "solucion": [
   "<b>Rápido:</b> llama a tu operadora desde otro teléfono y pregunta si se ha hecho un duplicado de tu SIM. Si no lo pediste tú, que lo bloqueen y te devuelvan la línea.",
   "Llama a tu banco por sus canales oficiales: que vigilen o anulen movimientos sospechosos y bloqueen tarjetas si hace falta.",
   "Cambia las contraseñas del correo, el banco y las redes, y revisa si han publicado algo en tu nombre.",
   "Quita el número de teléfono como forma de recuperar cuentas donde puedas y usa una app de autenticación en vez de SMS (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">ficha de verificación en dos pasos</a>).",
   "Guarda pruebas y denuncia ante Policía o Guardia Civil. Dudas: 017 de INCIBE, gratis (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>).",
   "Para prevenir: pon PIN a la SIM y no lo compartas, desconfía de SMS y correos con enlaces (<a href=\"https://frikilabs.com/#/ficha/ciber-smishing-sms\">ficha de SMS falsos</a>) y comparte menos datos personales en redes.",
   "¿Te han robado o has perdido el móvil? Sigue la <a href=\"https://frikilabs.com/#/ficha/ciber-movil-robado-perdido\">ficha de móvil robado o perdido</a>."
  ],
  "requisitos": {
   "hardware": [
    "Tu móvil y, si se queda sin línea, otro teléfono para llamar"
   ],
   "software": [
    "App de autenticación (por ejemplo Google o Microsoft Authenticator)"
   ]
  },
  "compatibilidad": [
   "Cualquier línea móvil de cualquier operadora"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 20-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE (OSI) — SIM swapping: cómo evitar esta estafa",
    "url": "https://www.incibe.es/ciudadania/blog/sim-swapping-como-evitar-esta-estafa",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — ¿Por qué a un ciberdelincuente le interesa duplicar tu tarjeta SIM?",
    "url": "https://www.incibe.es/ciudadania/blog/por-que-un-ciberdelincuente-le-interesa-duplicar-tu-tarjeta-sim",
    "tipo": "oficial"
   },
   {
    "titulo": "AEPD — Cómo saber si te han duplicado la SIM y qué hacer",
    "url": "https://www.aepd.es/areas-de-actuacion/recomendaciones/saber-mas",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-20"
 },
 {
  "id": "ciber-compraventa-segunda-mano",
  "titulo": "Vendo en Wallapop o Vinted y el comprador me pide seguir por WhatsApp o me manda un enlace para cobrar: es una estafa",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "wallapop",
   "vinted",
   "milanuncios",
   "segunda mano",
   "estafa",
   "phishing",
   "novato"
  ],
  "sinonimos": [
   "estafa wallapop",
   "estafa vinted",
   "comprador wallapop whatsapp",
   "enlace para cobrar wallapop",
   "me piden la tarjeta para cobrar",
   "wallapop envios falso",
   "estafa dhl wallapop",
   "comprador extranjero paga mas"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Pones algo a la venta en Wallapop, Vinted o Milanuncios y enseguida aparece un «comprador» que quiere hablar por WhatsApp o por correo y te manda un enlace para que metas tu tarjeta y «recibas el pago».",
  "diagnostico": [
   "Truco descrito por INCIBE: el falso comprador te saca de la plataforma (WhatsApp, correo) «por seguridad», te dice que ya ha pagado y te manda un enlace a una web que imita a Wallapop o Vinted.",
   "En esa web te piden número de tarjeta, caducidad y código de seguridad «para recibir el dinero». Para cobrar nunca hace falta dar eso: con esos datos te hacen cargos, incluso compras de criptomonedas.",
   "Otra variante: te escriben por correo y te mandan un enlace falso de una empresa de transporte, o te piden que compres una tarjeta prepago.",
   "Más señales: cuenta recién creada, sin valoraciones ni verificación, prisa, ofertas por encima de tu precio o «comprador en el extranjero» que paga el envío."
  ],
  "solucion": [
   "Haz <b>todo</b> dentro de la app: el chat, el pago y el envío con el sistema de envíos de la propia plataforma, que protege el pago.",
   "Si te piden seguir por WhatsApp o por correo, no sigas: reporta al usuario desde la app.",
   "Nunca metas datos de tu tarjeta para «cobrar», ni des tu dirección o tu banco a un comprador o a su «transportista», ni compres tarjetas prepago.",
   "Antes de vender, mira el perfil: antigüedad, valoraciones y verificación. Si no te da confianza, espera a otro comprador.",
   "Si ya metiste la tarjeta: llama a tu banco cuanto antes para bloquearla y revisar cargos, guarda capturas de todo y denuncia ante Policía o Guardia Civil.",
   "Si compras tú, mira también la <a href=\"https://frikilabs.com/#/ficha/ciber-tienda-online-falsa\">ficha de tiendas online falsas</a> y la de <a href=\"https://frikilabs.com/#/ficha/ciber-phishing\">correos y webs falsas (phishing)</a>. Dudas: 017 de INCIBE (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>)."
  ],
  "requisitos": {
   "hardware": [
    "Móvil u ordenador con la app de compraventa"
   ],
   "software": [
    "App oficial de Wallapop, Vinted o similar"
   ]
  },
  "compatibilidad": [
   "Wallapop, Vinted, Milanuncios y cualquier plataforma de compraventa entre particulares"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 20-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Detectado nuevo método de fraude en tiendas de compraventa como Wallapop y Vinted (06/09/2022)",
    "url": "https://www.incibe.es/ciudadania/avisos/detectado-nuevo-metodo-de-fraude-en-tiendas-de-compraventa-como-wallapop-y",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Campaña de fraude en aplicaciones de compraventa como Wallapop con phishing a una empresa de transporte (04/03/2020)",
    "url": "https://www.incibe.es/ciudadania/avisos/detectada-una-campana-de-intento-de-fraude-traves-de-aplicaciones-de",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Guía «Compra segura en Internet» (PDF)",
    "url": "https://www.incibe.es/sites/default/files/docs/guia_compra_segura_internet_web_vfinal.pdf",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-20"
 },
 {
  "id": "ciber-tor-dark-web",
  "titulo": "Qué es la dark web y Tor, y cómo usarlo con cabeza",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "tor",
   "dark web",
   "deep web",
   "onion",
   "privacidad",
   "anonimato",
   "novato"
  ],
  "sinonimos": [
   "que es la dark web",
   "que es tor",
   "tor browser",
   "como entrar en la dark web",
   "es legal la dark web",
   "deep web vs dark web",
   "onion browser iphone",
   "navegador tor seguro"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Oyes hablar de la «dark web» y te pica la curiosidad, pero no sabes qué es de verdad, si es legal entrar ni cómo hacerlo sin meterte en líos (estafas, virus o cosas turbias).",
  "diagnostico": [
   "Primero, aclarar tres conceptos que se mezclan mucho:",
   "<b>Web superficial:</b> lo que encuentras en Google o Bing.",
   "<b>Deep web (web profunda):</b> todo lo que <b>no</b> sale en buscadores, como tu correo, tu banco, la intranet del curro o documentos en la nube. No tiene nada de misterioso y no necesitas ningún programa especial: basta con la dirección o tu usuario y contraseña. [INCIBE]",
   "<b>Dark web:</b> una parte pequeña de la deep web a la que solo llegas mediante redes especiales que dan más anonimato, como <b>Tor</b>. Sus webs acaban en <b><code>.onion</code></b> y no se abren con un navegador normal. [INCIBE]",
   "<b>¿Qué es Tor?</b> Viene de <i>The Onion Router</i> («el enrutador cebolla»). Es una red mantenida por voluntarios que oculta quién eres y desde dónde te conectas. [EFF, BBC]",
   "<b>¿Cómo funciona, en sencillo?</b> Tu conexión no va directa a la web: rebota por varios ordenadores («nodos») elegidos al azar, que forman un circuito. Cada salto lleva su propia capa de cifrado, como las capas de una cebolla, y así es muy difícil relacionarte con lo que haces. La web que visitas ve llegar el tráfico desde el último nodo (el «nodo de salida»), no desde ti. [BBC, EFF]",
   "<b>¿Y los <code>.onion</code>?</b> Son «servicios onion»: webs que solo existen dentro de Tor. Su dirección tiene 56 letras y números y la conexión va cifrada de punta a punta. [Tor Project]",
   "<b>¿Quién lo usa?</b> Periodistas, activistas y gente que vive en países con censura. Por ejemplo, la <b>BBC</b> abrió su versión <code>.onion</code> en 2019 para llegar a países que bloquean sus noticias, como China, Irán o Vietnam. Pero también hay actividad ilegal, estafas y malware, y por eso tiene tan mala fama. [INCIBE, BBC]"
  ],
  "solucion": [
   "<b>1. Instálalo solo desde la web oficial</b>",
   "<b>Mac, Windows, Linux y Android:</b> Tor Browser, desde <b><a href=\"https://www.torproject.org/download/\">https://www.torproject.org/download/</a></b>. Si llegas por un buscador, revisa bien la dirección. Si te pide aceptar certificados raros, no sigas. [EFF, Tor Project]",
   "<b>Android:</b> también está en Google Play y en F-Droid (repositorio oficial de Guardian Project). [Tor Project]",
   "<b>iPhone/iPad:</b> no existe Tor Browser para iOS. Tor Project recomienda <b>Onion Browser</b> (código abierto, en la App Store). Ojo: por las normas de Apple (WebKit), <b>no protege tanto como Tor Browser</b>. [Tor Project]",
   "Opcional: Tor Project recomienda verificar la firma del archivo descargado. [Tor Project]",
   "<b>2. Sube el nivel de seguridad</b>",
   "Pulsa el <b>icono del escudo</b> → Configuración → <b>Nivel de seguridad</b>:",
   "<b>Estándar</b> (viene por defecto): todo funciona.",
   "<b>Más seguro:</b> desactiva funciones peligrosas; JavaScript se apaga en webs sin HTTPS; el audio y el vídeo solo se reproducen si haces clic.",
   "<b>El más seguro:</b> JavaScript apagado en todas las webs, y algunas imágenes y fuentes también. Algunas páginas se verán mal.",
   "Para curiosear, ponlo en <b>«Más seguro»</b> como mínimo. En Android: menú ⋮ → Privacidad y seguridad → Nivel de seguridad. [Tor Project, EFF]",
   "<b>3. Buenas prácticas (no te las saltes)</b>",
   "<b>No descargues ni abras archivos</b>, sobre todo PDF y DOC: pueden conectarse a internet por fuera de Tor y revelar tu IP real. [Tor Project, EFF]",
   "<b>No pongas datos tuyos</b>: ni nombre, ni correo, ni teléfono, ni inicies sesión en tus cuentas. Si los das, esa web ya sabe quién eres. [Tor Project, EFF]",
   "<b>No instales extensiones ni complementos</b>: pueden saltarse Tor. Tor Browser ya viene preparado y no necesita bloqueadores. [Tor Project, EFF]",
   "<b>Usa HTTPS</b> y fíjate en el candado o el icono de la cebolla en la barra de direcciones. [Tor Project]",
   "<b>No uses torrents con Tor.</b> [Tor Project]",
   "Recuerda que <b>solo va por Tor lo que haces dentro de Tor Browser</b>. El resto de apps del ordenador o del móvil, no. [EFF, Tor Project]",
   "Si algo te parece turbio, <b>cierra y listo</b>. Ni clics por curiosidad ni compras.",
   "<b>4. Sitios legales para probar</b>",
   "<b>BBC News:</b> su dirección <code>.onion</code> oficial está publicada en el propio artículo de la BBC (ver Fuentes). Cópiala de ahí, no de listas de terceros.",
   "<b>DuckDuckGo:</b> Tor Browser ya trae la opción <b>«Onionize»</b> en la página de inicio, que busca con la versión <code>.onion</code> de DuckDuckGo. Tor Project también lo propone para comprobar que los <code>.onion</code> te funcionan. [EFF, Tor Project]",
   "<b>EFF / Surveillance Self-Defense:</b> tienen versión <code>.onion</code> (el enlace está en su guía). [EFF]",
   "<b>Truco:</b> si una web normal tiene versión <code>.onion</code>, Tor Browser te muestra un aviso morado <b>«.onion available»</b>, y con un clic te lleva a la versión buena. Así no tienes que fiarte de direcciones copiadas de cualquier sitio. [Tor Project]",
   "<b>Límites y nota legal</b>",
   "<b>Tor no es anonimato mágico.</b> El propio Tor Project dice que el anonimato perfecto es imposible. Si das tus datos o abres archivos, te delatas. Además, quien vea tu red (tu operadora, por ejemplo) puede saber que usas Tor, aunque no lo que haces. [Tor Project, EFF]",
   "<b>Estafas y malware:</b> en la dark web abundan. INCIBE recomienda no entrar sin entender los riesgos ni sin un motivo claro y legítimo. [INCIBE]",
   "<b>¿Es legal en España?</b> Según INCIBE, el simple acceso a la dark web no es ilegal, pero lo que es delito fuera lo sigue siendo dentro, con consecuencias graves. <i>Esto es divulgación, no asesoramiento legal.</i> [INCIBE]"
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Windows 10/11, macOS 10.15 o posterior, Linux moderno de 64 bits, o Android 5.0 o posterior. [Tor Project]",
    "iPhone: Onion Browser (App Store).",
    "Paciencia: navegar por Tor es bastante más lento, y algunas webs no funcionan. [EFF]"
   ]
  },
  "compatibilidad": [
   "Windows / Mac / Linux: Tor Browser (torproject.org/download)",
   "Android: Tor Browser (Web oficial, Google Play o F-Droid)",
   "iPhone / iPad: Onion Browser (Recomendado por Tor Project, pero con menos protecciones)",
   "ChromeOS: — (No hay versión oficial)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (consultadas el 21-oct-2026). Cómo comprobarlo: 1) Abre Tor Browser y pulsa <b>«Conectar»</b>. 2) Pulsa el botón del <b>circuito</b>, junto al candado: verás los nodos por los que pasas. [EFF] 3) Prueba «Onionize» en el buscador o abre la <code>.onion</code> de la BBC: debe salir el <b>icono de la cebolla</b> en la barra. [Tor Project] 4) Comprueba que el escudo marca <b>«Más seguro»</b>.",
  "fuentes": [
   {
    "titulo": "Tor Project, instalación y requisitos (incluye iOS / Onion Browser) (en inglés)",
    "url": "https://support.torproject.org/tormobile/tormobile-3/",
    "tipo": "oficial"
   },
   {
    "titulo": "Tor Project, descarga oficial (en inglés)",
    "url": "https://www.torproject.org/download/",
    "tipo": "oficial"
   },
   {
    "titulo": "Tor Project, niveles de seguridad (en inglés)",
    "url": "https://tb-manual.torproject.org/security-settings/",
    "tipo": "oficial"
   },
   {
    "titulo": "Tor Project, buenas prácticas («¿Soy totalmente anónimo?») (en inglés)",
    "url": "https://support.torproject.org/faq/staying-anonymous/",
    "tipo": "oficial"
   },
   {
    "titulo": "Tor Project, servicios onion (en inglés)",
    "url": "https://support.torproject.org/onionservices/",
    "tipo": "oficial"
   },
   {
    "titulo": "EFF Surveillance Self-Defense, «How to: Use Tor» (en inglés)",
    "url": "https://ssd.eff.org/module/how-to-use-tor",
    "tipo": "referencia"
   },
   {
    "titulo": "INCIBE, «Deep web y Dark web: descubre qué son y en qué se diferencian»",
    "url": "https://www.incibe.es/ciudadania/blog/deep-web-y-dark-web-descubre-que-son-y-en-que-se-diferencian",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE/OSI, «Navegadores y Deep Web»",
    "url": "https://www.incibe.es/ciudadania/blog/navegadores-y-deep-web-profundicemos-en-el-tema",
    "tipo": "oficial"
   },
   {
    "titulo": "BBC News, «BBC News launches 'dark web' Tor mirror» (incluye su dirección .onion) (en inglés)",
    "url": "https://www.bbc.com/news/technology-50150981",
    "tipo": "referencia"
   }
  ],
  "publicado": "2026-10-21"
 },
 {
  "id": "ia-ollama-pi5",
  "titulo": "IA local en Raspberry Pi 5 con Ollama",
  "categoria": "ia",
  "sub": "ollama",
  "tags": [
   "ollama",
   "raspberry pi 5",
   "ia local",
   "llm",
   "gemma3",
   "qwen2.5",
   "llama3.2",
   "tailscale"
  ],
  "sinonimos": [
   "chatgpt en casa",
   "ia sin nube raspberry",
   "ollama raspberry pi",
   "llm en raspberry pi 5",
   "modelo de ia en la pi",
   "puerto 11434",
   "ollama_host"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres un «ChatGPT» que funcione en casa, sin nube y sin pagar, y tienes una Raspberry Pi 5. ¿Se puede? ¿Qué modelos aguanta y cómo lo haces sin abrir un agujero en tu red?",
  "diagnostico": [
   "La Pi 5 lleva una CPU Broadcom BCM2712 de 4 núcleos Cortex-A76 a 2,4 GHz y se vende con 1, 2, 4, 8 o 16 GB de RAM. [RPi]",
   "Ollama no usa la GPU de la Pi: los modelos corren en la CPU. Por eso solo tienen sentido los <b>modelos pequeños</b> (de 0,5B a 3B parámetros aprox.).",
   "Tamaño de descarga de algunos modelos pequeños en la librería oficial de Ollama: <code>qwen2.5:0.5b</code> 398 MB, <code>gemma3:1b</code> 806 MB, <code>qwen2.5:1.5b</code> 986 MB, <code>llama3.2:1b</code> 1,3 GB, <code>qwen2.5:3b</code> 1,9 GB. Necesitas al menos esa RAM libre, más la del sistema. [Ollama library]",
   "Velocidad orientativa en una Pi (medida por un tercero, no por nosotros): ~13,6 tokens/s con TinyLlama 1,1B, ~9,2 con DeepSeek-R1 1,5B y ~3,7 con Phi-3 (3,8B). Es decir: con 1B va fluido, con 3-4B se hace lento. [NicoLabs, de terceros]",
   "Raspberry Pi recomienda refrigeración activa con carga alta y una fuente de 5 V / 5 A (la oficial de 27 W). Un modelo de IA es justo eso: carga alta sostenida. [RPi]"
  ],
  "solucion": [
   "Usa Raspberry Pi OS de 64 bits (Trixie o Bookworm; versiones anteriores no van en la Pi 5) actualizado, con disipador activo o la caja oficial con ventilador y la fuente de 27 W. [RPi]",
   "Instala Ollama con el script oficial: <code>curl -fsSL https://ollama.com/install.sh | sh</code> (puedes leer el script antes en esa misma URL). Queda como servicio de systemd. [Ollama Linux]",
   "Comprueba el servicio: <code>sudo systemctl status ollama</code>. [Ollama Linux]",
   "Descarga y prueba un modelo pequeño: <code>ollama run gemma3:1b</code> (o <code>qwen2.5:1.5b</code>). Escribe una pregunta; sal con <code>/bye</code>. [Ollama library]",
   "Desde la propia Pi, la API responde en <code>http://localhost:11434/api</code>. [Ollama API]",
   "Si quieres usarlo desde otro ordenador de casa, mira la nota de seguridad de abajo <b>antes</b> de tocar nada.",
   "<b>⚠️ Seguridad (no te la saltes)</b>",
   "Por defecto Ollama solo escucha en <code>127.0.0.1:11434</code> (solo la propia Pi). Es lo más seguro. [Ollama FAQ]",
   "La API local <b>no pide contraseña ni clave</b>: quien llegue al puerto 11434 puede usar tus modelos, descargar otros y gastar tu CPU. [Ollama API: «Local requests do not [need an API key]»]",
   "Si cambias <code>OLLAMA_HOST</code> (por ejemplo a <code>0.0.0.0:11434</code>, con <code>sudo systemctl edit ollama</code> y una línea <code>Environment=\"OLLAMA_HOST=0.0.0.0:11434\"</code>), Ollama queda accesible desde tu red. Hazlo <b>solo en tu LAN</b> (idealmente limitando con el cortafuegos a las IP de tus equipos) o por <b>Tailscale</b>. [Ollama FAQ]",
   "<b>Nunca</b> lo expongas a internet: <b>no abras ni redirijas el puerto 11434 en el router</b>, ni lo pongas en DMZ, ni lo publiques con un túnel público.",
   "Para usarlo fuera de casa, usa una VPN como Tailscale o WireGuard y entra a la Pi como si estuvieras en casa."
  ],
  "requisitos": {
   "hardware": [],
   "software": [
    "Raspberry Pi 5 (mejor 8 GB o 16 GB; con 4 GB, modelos de 1B). [RPi]",
    "Raspberry Pi OS de 64 bits, refrigeración activa y fuente de 5 V / 5 A. [RPi]",
    "Espacio en disco para los modelos (de cientos de MB a varios GB); un SSD por PCIe va mejor que la microSD. [RPi]",
    "Si la Pi ya tiene Home Assistant, un modelo con carga sostenida puede ralentizarlo: mejor una Pi aparte o modelos pequeños."
   ]
  },
  "compatibilidad": [
   "Raspberry Pi 5 con Raspberry Pi OS de 64 bits (Ollama publica binarios Linux ARM64). [Ollama Linux / GitHub]",
   "Modelos probados por terceros en Pi: los de 1B-1,5B van usables; 3B-4B, lentos."
  ],
  "verificacion": "Documentado: resumen de las fuentes citadas (consultadas el 21-oct-2026). Cómo comprobarlo: 1) <code>sudo systemctl status ollama</code> muestra «active (running)». [Ollama Linux] 2) <code>ollama run gemma3:1b \"Hola, ¿qué tal?\"</code> responde. 3) <code>curl http://localhost:11434/api/tags</code> lista los modelos instalados. [Ollama API] 4) Seguridad: desde un móvil con datos (fuera de tu Wi-Fi) el puerto 11434 de tu IP pública <b>no</b> debe responder.",
  "fuentes": [
   {
    "titulo": "Ollama — instalación en Linux (en inglés)",
    "url": "https://docs.ollama.com/linux",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — FAQ, «How can I expose Ollama on my network?» y OLLAMA_HOST (en inglés)",
    "url": "https://docs.ollama.com/faq",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — API, URL local y autenticación (en inglés)",
    "url": "https://docs.ollama.com/api",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — repositorio oficial en GitHub (en inglés)",
    "url": "https://github.com/ollama/ollama",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — librería de modelos: gemma3, qwen2.5, llama3.2 — gemma3 (en inglés)",
    "url": "https://ollama.com/library/gemma3",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — librería de modelos: gemma3, qwen2.5, llama3.2 — qwen2.5 (en inglés)",
    "url": "https://ollama.com/library/qwen2.5",
    "tipo": "oficial"
   },
   {
    "titulo": "Ollama — librería de modelos: gemma3, qwen2.5, llama3.2 — llama3.2 (en inglés)",
    "url": "https://ollama.com/library/llama3.2",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi — ficha oficial de Raspberry Pi 5: CPU, RAM, refrigeración, fuente y sistemas compatibles (en inglés)",
    "url": "https://www.raspberrypi.com/products/raspberry-pi-5/",
    "tipo": "oficial"
   },
   {
    "titulo": "NicoLabs, «Ollama on Raspberry Pi», velocidades medidas por un tercero, no oficial (en inglés)",
    "url": "https://blog.hellonico.info/posts/iot/ollama_on_pi/",
    "tipo": "comunidad"
   }
  ],
  "publicado": "2026-10-21"
 },
 {
  "id": "ssd1306-pantalla-negra",
  "titulo": "Mi pantalla OLED SSD1306 no enciende o muestra basura con ESPHome",
  "categoria": "esp",
  "sub": "pines",
  "tags": [
   "ssd1306",
   "sh1106",
   "oled",
   "i2c",
   "esphome",
   "pantalla"
  ],
  "sinonimos": [
   "oled no funciona",
   "ssd1306 pantalla negra",
   "oled no enciende esphome",
   "oled muestra basura",
   "pantalla oled pixeles raros",
   "sh1106 esphome",
   "oled 0x3c 0x3d",
   "pantalla 0.96 no va"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has conectado una pantallita OLED de 0,96\" a tu ESP32 con ESPHome y se queda en negro, o enciende pero con puntos aleatorios o desplazada.",
  "diagnostico": [
   "Pantalla en negro: casi siempre es la dirección I²C (0x3C o 0x3D), SDA y SCL cruzados o un <code>lambda</code> que no dibuja nada (falta la fuente).",
   "Imagen con basura o movida unas columnas: la pantalla lleva un chip SH1106 aunque la vendan como SSD1306.",
   "Con conexión SPI, la imagen puede corromperse por interferencias o por mezclar en el mismo bus aparatos con distinto modo SPI."
  ],
  "solucion": [
   "Activa <code>scan: true</code> en el bloque <code>i2c:</code> y mira los registros al arrancar (<a href=\"https://frikilabs.com/#/ficha/esphome-logs-cli\">cómo ver los logs</a>). Si no aparece ninguna dirección, revisa el cableado: VCC a 3,3 V, GND, y SDA/SCL en los pines que has puesto.",
   "Si el escaneo da 0x3D, ponlo en <code>address: 0x3D</code> (por defecto ESPHome usa 0x3C).",
   "Comprueba que tienes un bloque <code>font:</code> y que el <code>lambda</code> lo usa: <code>it.print(0, 0, id(font), \"Hola\");</code>.",
   "Si sale basura, cambia <code>model</code> a <code>\"SH1106 128x64\"</code>. Si es al revés, <code>rotation: 180°</code>; si faltan píxeles en un borde, <code>offset_x</code>.",
   "Si tu placa tiene pin RESET, conéctalo a un GPIO y decláralo en <code>reset_pin</code>. En SPI, prueba <code>spi_mode: MODE0</code>."
  ],
  "requisitos": {
   "hardware": [
    "ESP32 o ESP8266",
    "Pantalla OLED SSD1306 o SH1106"
   ],
   "software": [
    "ESPHome"
   ]
  },
  "compatibilidad": [
   "SSD1306, SSD1305, SH1106 y SH1107 por I²C o SPI con ESPHome"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 21-oct-2026).",
  "fuentes": [
   {
    "titulo": "ESPHome — Pantalla OLED SSD1306 (modelos, dirección, reset, SPI MODE0)",
    "url": "https://esphome.io/components/display/ssd1306/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESPHome — Bus I²C (scan)",
    "url": "https://esphome.io/components/i2c/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Adafruit — Conexión de OLED 128×64 (direcciones 0x3C y 0x3D)",
    "url": "https://learn.adafruit.com/monochrome-oled-breakouts/wiring-128x64-oleds",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-21"
 },
 {
  "id": "ciber-sextorsion-correo",
  "titulo": "Me ha llegado un correo diciendo que me grabaron con la webcam y piden Bitcoin: es un chantaje falso (sextorsión)",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "sextorsion",
   "chantaje",
   "webcam",
   "bitcoin",
   "correo",
   "phishing",
   "novato"
  ],
  "sinonimos": [
   "correo me grabaron webcam",
   "chantaje bitcoin correo",
   "sextorsion",
   "me piden bitcoin por un video",
   "correo dice que tienen mis videos",
   "hackearon mi webcam correo",
   "correo chantaje contraseña antigua",
   "email me amenazan con publicar video"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Recibes un correo que dice que han entrado en tu ordenador o tu móvil, que te han grabado con la cámara viendo contenido para adultos y que enviarán el vídeo a tus contactos si no pagas en Bitcoin en 48 horas.",
  "diagnostico": [
   "Según INCIBE, son campañas masivas: los delincuentes <b>no tienen ningún vídeo</b> y mandan el mismo texto a miles de personas.",
   "A veces ponen una contraseña tuya antigua sacada de alguna filtración de datos, o hacen que parezca que el correo sale de tu propia cuenta. Eso no significa que hayan entrado.",
   "Señales: prisa (48 o 50 horas), miedo, «tu antivirus no lo detecta», pago en Bitcoin y ninguna prueba (ni una captura del supuesto vídeo)."
  ],
  "solucion": [
   "<b>No pagues ni contestes.</b> Si respondes, confirmas que tu dirección está activa y te llegarán más intentos.",
   "Bloquea al remitente y borra el correo. INCIBE pide reportarlo a su buzón de incidentes para avisar a otros.",
   "Si incluye una contraseña tuya, cámbiala en todos los sitios donde la uses y comprueba si tu correo aparece en filtraciones (<a href=\"https://frikilabs.com/#/ficha/ciber-hibp\">ficha de Have I Been Pwned</a>). Usa contraseñas distintas (<a href=\"https://frikilabs.com/#/ficha/ciber-contrasenas-fuertes\">ficha de contraseñas</a>) y activa la verificación en dos pasos (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">ficha 2FA</a>).",
   "Si ya pagaste: guarda los correos y los justificantes de pago y denuncia ante Policía Nacional o Guardia Civil.",
   "¿Dudas o mucho agobio? Llama al 017 de INCIBE, gratis y confidencial (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>)."
  ],
  "requisitos": {
   "hardware": [
    "Ninguno"
   ],
   "software": [
    "Tu correo electrónico"
   ]
  },
  "compatibilidad": [
   "Cualquier cuenta de correo (Gmail, Outlook, etc.)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 21-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — Chantajes de sextorsión a través de correos electrónicos",
    "url": "https://www.incibe.es/ciudadania/avisos/chantajes-de-sextorsion-traves-de-correos-electronicos",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — ¿Has recibido un correo chantajeándote con que publicarán contenido de carácter sexual si no pagas?",
    "url": "https://www.incibe.es/ciudadania/avisos/has-recibido-un-correo-chantajeandote-con-que-publicaran-contenido-de-caracter",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-21"
 },
 {
  "id": "ciber-falso-soporte-acceso-remoto",
  "titulo": "Un falso técnico de Microsoft me hizo instalar AnyDesk y entró en mi ordenador: qué hacer ahora",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "soporte tecnico falso",
   "microsoft",
   "anydesk",
   "acceso remoto",
   "estafa",
   "novato"
  ],
  "sinonimos": [
   "falso tecnico microsoft",
   "instale anydesk estafa",
   "me llamaron de microsoft",
   "le deje entrar en mi ordenador",
   "estafa acceso remoto",
   "teamviewer estafa",
   "ventana virus llame a este numero",
   "aviso falso de virus con telefono"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te llamó alguien «de Microsoft» (o te salió en el navegador un aviso de virus con un teléfono), te convenció para instalar un programa de acceso remoto como AnyDesk y ha estado manejando tu ordenador.",
  "diagnostico": [
   "Es una estafa conocida: Microsoft no llama ni manda correos sin que lo hayas pedido, y sus avisos de error nunca traen un número de teléfono.",
   "Los programas de acceso remoto son legítimos y útiles, pero dan a otra persona el control del equipo y de tus archivos. Solo se usan con alguien de total confianza.",
   "Riesgos: que hayan instalado algo, que hayan visto contraseñas o documentos (por ejemplo una foto del DNI) o que te hayan cobrado por un «arreglo»."
  ],
  "solucion": [
   "<b>Desconecta el equipo de internet</b> (wifi o cable) para cortar el acceso.",
   "Desinstala AnyDesk o el programa que te hicieran instalar, y cualquier otro que no reconozcas.",
   "Haz un análisis completo con Seguridad de Windows y aplica todas las actualizaciones. Si siguen saliendo avisos raros o no te fías, haz copia de tus archivos y restablece el equipo (Microsoft lo recomienda si les diste acceso).",
   "Desde otro dispositivo limpio, cambia las contraseñas importantes (correo, banco, cuenta de Microsoft) y activa la verificación en dos pasos (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">ficha 2FA</a>).",
   "Si pagaste o diste datos de la tarjeta, llama ya a tu banco. Si tenías una foto del DNI en el equipo, INCIBE aconseja denunciarlo y vigilar que no pidan créditos a tu nombre.",
   "Guarda pruebas y denuncia ante Policía o Guardia Civil. Dudas: 017 de INCIBE (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>). Para reconocer la próxima llamada, mira la <a href=\"https://frikilabs.com/#/ficha/ciber-vishing-llamadas\">ficha de llamadas falsas</a>."
  ],
  "requisitos": {
   "hardware": [
    "El ordenador afectado y otro dispositivo limpio para cambiar contraseñas"
   ],
   "software": [
    "Seguridad de Windows (viene con Windows)"
   ]
  },
  "compatibilidad": [
   "Windows y macOS; también móviles si te hicieron instalar una app de control remoto"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 21-oct-2026).",
  "fuentes": [
   {
    "titulo": "INCIBE — ¿Microsoft te ha llamado sin haberlo solicitado?",
    "url": "https://www.incibe.es/ciudadania/blog/microsoft-te-ha-llamado-sin-haberlo-solicitado",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE (Línea de Ayuda) — Caso real: falso soporte técnico y AnyDesk",
    "url": "https://www.incibe.es/linea-de-ayuda-en-ciberseguridad/casos-reales/falso-soporte-tecnico-en-publicidad-maliciosa-acusa-posesion-de-contenido-sexual",
    "tipo": "oficial"
   },
   {
    "titulo": "Microsoft — Protéjase de las estafas del soporte técnico",
    "url": "https://support.microsoft.com/es-es/windows/prot%C3%A9jase-de-las-estafas-del-soporte-t%C3%A9cnico-2ebf91bd-f94c-2a8a-e541-f5c800d18435",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-21"
 },
 {
  "id": "frigate-hailo-pi5-sin-dev",
  "titulo": "Frigate con Hailo-8L en la Raspberry Pi 5: no aparece /dev/hailo0",
  "categoria": "ia",
  "sub": "gpu",
  "tags": [
   "frigate",
   "hailo",
   "hailo-8l",
   "ai kit",
   "ai hat",
   "raspberry pi 5",
   "npu",
   "pcie",
   "hailo_pci"
  ],
  "sinonimos": [
   "no existe /dev/hailo0",
   "frigate hailo no detecta",
   "hailo no aparece pi 5",
   "ai kit no funciona frigate"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Pasos tomados de la documentación de instalación de Frigate y de la guía de IA de Raspberry Pi.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi 5",
    "AI Kit o AI HAT+ (Hailo-8L o Hailo-8)"
   ],
   "software": [
    "Raspberry Pi OS 64 bits",
    "Docker",
    "Frigate"
   ]
  },
  "problema": "Montaste el Hailo-8L en la Pi 5 para Frigate, pero <code>ls -l /dev/hailo0</code> dice que no existe y el contenedor no arranca o no usa el detector.",
  "diagnostico": [
   "Sin el driver del kernel (<code>hailo_pci</code>) y su firmware cargados, <code>/dev/hailo0</code> no se crea. Mira <code>lsmod | grep hailo</code> y <code>dmesg | grep -i hailo</code>: si todo va bien, el log termina con «Added board …, /dev/hailo0».",
   "En Raspberry Pi OS <b>Bookworm</b> el kernel trae un driver Hailo antiguo que, según la doc de Frigate, es incompatible con Frigate y hay que desactivarlo antes de instalar el correcto. En <b>Trixie</b> el driver ya no viene en el kernel (se instala con DKMS) y ese conflicto no aplica.",
   "Si <code>dmesg</code> no menciona Hailo en absoluto, revisa el montaje: cable plano de PCIe bien asentado y placa bien alimentada. Para elegir detector: <a href=\"https://frikilabs.com/#/ficha/frigate-elegir-detector\">serie Voz e IA local</a>."
  ],
  "solucion": [
   "Comprueba tu versión: <code>cat /etc/os-release</code>.",
   "Solo en Bookworm: si <code>lsmod | grep hailo</code> muestra <code>hailo_pci</code>, descárgalo con <code>sudo modprobe -r hailo_pci</code>, localiza el módulo con <code>modinfo -n hailo_pci</code> y renómbralo como indica la doc de Frigate; luego <code>sudo depmod -a</code> y reinicia.",
   "Instala el driver con el script <code>user_installation.sh</code> que enlaza la doc de Frigate (compila el driver, instala el firmware y las reglas udev) y reinicia.",
   "Verifica: <code>ls -l /dev/hailo0</code>, <code>cat /sys/module/hailo_pci/version</code> y <code>ls -l /lib/firmware/hailo/hailo8_fw.bin</code>.",
   "Pasa el dispositivo al contenedor en <code>docker-compose.yml</code>: <code>devices: - /dev/hailo0</code>.",
   "Si sale el error «max_desc_page_size given 16384 is bigger than hw max desc page size 4096», crea <code>/etc/modprobe.d/hailo_pci.conf</code> con <code>options hailo_pci force_desc_page_size=4096</code> y reinicia.",
   "Con el AI Kit, Raspberry Pi recomienda activar PCIe Gen 3 (<code>dtparam=pciex1_gen=3</code> en <code>/boot/firmware/config.txt</code> o con <code>raspi-config</code>); en el AI HAT+ se aplica solo. Mejora la velocidad, pero no es lo que hace aparecer <code>/dev/hailo0</code>."
  ],
  "compatibilidad": [
   "Raspberry Pi 5",
   "Raspberry Pi OS Bookworm y Trixie (64 bits)",
   "Hailo-8L / Hailo-8 (no AI HAT+ 2 / Hailo-10H)"
  ],
  "fuentes": [
   {
    "titulo": "Frigate — Instalación (sección Hailo-8)",
    "url": "https://docs.frigate.video/frigate/installation/",
    "tipo": "oficial"
   },
   {
    "titulo": "Raspberry Pi — AI software (Hailo en la Pi 5)",
    "url": "https://www.raspberrypi.com/documentation/computers/ai.html",
    "tipo": "oficial"
   }
  ],
  "exito": "<code>ls -l /dev/hailo0</code> lista el dispositivo y <code>dmesg | grep -i hailo</code> termina con «Firmware was loaded successfully» y «Added board …, /dev/hailo0». <code>hailortcli fw-control identify</code> muestra «Device Architecture: HAILO8L» (o HAILO8).",
  "publicado": "2026-10-22"
 },
 {
  "id": "ld2410-falsas-presencias",
  "titulo": "LD2410: detecta presencia sin nadie (ventiladores, cortinas, mascotas)",
  "categoria": "esp",
  "sub": "esphome",
  "tags": [
   "ld2410",
   "mmwave",
   "radar",
   "sensor de presencia",
   "falsos positivos",
   "esphome",
   "puertas de distancia"
  ],
  "sinonimos": [
   "ld2410 falsos positivos",
   "sensor presencia detecta solo",
   "ld2410 siempre ocupado",
   "radar presencia ventilador"
  ],
  "nivel": "intermedio",
  "confianza": "comunidad",
  "actualizado": "2026-10",
  "verificacion": "Los ajustes (umbrales por puerta, distancia máxima, timeout, modo ingeniería) están en la doc oficial de ESPHome. Que ventiladores, cortinas o mascotas sean la causa es experiencia habitual de la comunidad, no algo que diga la doc.",
  "requisitos": {
   "hardware": [
    "ESP32",
    "Sensor HLK-LD2410"
   ],
   "software": [
    "ESPHome",
    "Home Assistant"
   ]
  },
  "problema": "El LD2410 marca presencia con la habitación vacía, o no se apaga nunca.",
  "diagnostico": [
   "Es un radar de movimiento y de «quietud»: cualquier cosa que se mueva en su campo puede contar, como un ventilador, una cortina con corriente de aire, una planta o una mascota. También puede ver a través de tabiques finos.",
   "Los umbrales de fábrica pueden ser demasiado sensibles para tu habitación.",
   "Con el modo ingeniería verás la energía de movimiento y de quietud de cada puerta de distancia (g0…g8) y sabrás a qué distancia está lo que dispara el sensor."
  ],
  "solucion": [
   "Expón en ESPHome los sensores de energía por puerta y el interruptor <code>engineering_mode</code>. Con la habitación vacía, mira qué puertas se activan.",
   "Sube <code>move_threshold</code> y <code>still_threshold</code> solo en esas puertas, o recorta el alcance con <code>max_move_distance_gate</code> y <code>max_still_distance_gate</code> para que no llegue al ventilador o a la ventana.",
   "Ajusta el <code>timeout</code> (cuánto tarda en pasar a «libre»): si es largo, parecerá que no se apaga nunca.",
   "Reorienta el sensor para que no apunte a ventiladores, cortinas ni zonas por donde pasa la mascota. Ten en cuenta que un perro o un gato que se mueve es «presencia» para el radar.",
   "Desactiva el modo ingeniería al terminar."
  ],
  "compatibilidad": [
   "HLK-LD2410 / LD2410B / LD2410C con ESPHome"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — LD2410 Sensor",
    "url": "https://esphome.io/components/sensor/ld2410/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "esp32s3-voz-wake-word-cuelga",
  "titulo": "ESP32-S3: el asistente de voz se cuelga o la palabra de activación no carga",
  "categoria": "homeassistant",
  "sub": "voz",
  "tags": [
   "esp32-s3",
   "micro_wake_word",
   "wake word",
   "asistente de voz",
   "psram",
   "esphome",
   "okay nabu"
  ],
  "sinonimos": [
   "micro wake word no funciona",
   "esp32 s3 se reinicia voz",
   "wake word no carga",
   "asistente voz esp32 se cuelga"
  ],
  "nivel": "intermedio",
  "confianza": "comunidad",
  "actualizado": "2026-10",
  "verificacion": "La opción <code>task_stack_in_psram</code> y los requisitos de los modelos v2 (versión mínima de ESPHome y memoria) salen de la doc y del repositorio oficial. Que estos cambios arreglen tu cuelgue concreto es experiencia de la comunidad, no garantía; si no los resuelven, mira los logs.",
  "requisitos": {
   "hardware": [
    "ESP32-S3 con PSRAM"
   ],
   "software": [
    "ESPHome",
    "Home Assistant"
   ]
  },
  "problema": "Tu satélite de voz con ESP32-S3 se reinicia o se queda colgado al arrancar <code>micro_wake_word</code>, o la palabra de activación nunca llega a cargar.",
  "diagnostico": [
   "Muchas veces la placa sí tiene PSRAM: lo que se queda corto es la RAM interna que usan la tarea de inferencia y el resto de componentes (audio, Wi-Fi, pantalla).",
   "Los modelos v2 (<code>models/v2/…</code>) piden ESPHome 2024.7.0 o superior y reservan su propia memoria para el modelo (<code>tensor_arena_size</code> en su JSON). Los modelos de la raíz del repositorio son la versión 1.",
   "Mira los logs (<a href=\"https://frikilabs.com/#/ficha/esphome-logs-cli\">ficha de logs de ESPHome</a>): un reinicio por falta de memoria o un error al cargar el modelo te dice cuál de los dos casos es.",
   "Si usas un ATOM Echo con openWakeWord, mira <a href=\"https://frikilabs.com/#/ficha/atom-echo-wake-word\">la serie «Voz e IA local con Home Assistant»</a>."
  ],
  "solucion": [
   "Asegúrate de tener activado el componente <code>psram:</code> con el modo correcto de tu placa.",
   "En <code>micro_wake_word:</code> añade <code>task_stack_in_psram: true</code> para que la pila de la tarea de inferencia vaya a PSRAM y libere RAM interna (necesita el componente PSRAM; por defecto es <code>false</code>).",
   "Si tu ESPHome es anterior a 2024.7.0, actualízalo o usa el modelo v1 (por ejemplo <code>model: okay_nabu</code> desde la raíz del repositorio en lugar de <code>models/v2/</code>).",
   "Prueba con un solo modelo de palabra de activación y sin el modelo VAD, y añade el resto cuando funcione.",
   "Si no se arregla, quita componentes que consumen mucha RAM (pantalla, Bluetooth) para aislar el problema."
  ],
  "compatibilidad": [
   "ESP32-S3 con PSRAM",
   "ESPHome 2024.7.0 o superior para los modelos v2"
  ],
  "fuentes": [
   {
    "titulo": "ESPHome — Micro Wake Word",
    "url": "https://esphome.io/components/micro_wake_word/",
    "tipo": "oficial"
   },
   {
    "titulo": "esphome/micro-wake-word-models (modelos v1 y v2)",
    "url": "https://github.com/esphome/micro-wake-word-models",
    "tipo": "github"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "proxmox-lxc-zigbee-dongle",
  "titulo": "Proxmox: el dongle Zigbee no aparece dentro de un contenedor LXC sin privilegios",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "proxmox",
   "lxc",
   "unprivileged",
   "zigbee",
   "dongle",
   "zigbee2mqtt",
   "passthrough",
   "/dev/ttyUSB0",
   "serial by-id"
  ],
  "sinonimos": [
   "lxc no ve usb proxmox",
   "zigbee2mqtt lxc permission denied",
   "pasar dongle zigbee a lxc",
   "proxmox usb passthrough contenedor"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "La opción <code>dev[n]</code> (con path, uid, gid y mode) sale de la wiki oficial de Proxmox sobre contenedores Linux; la ruta por id de Zigbee2MQTT, de su doc oficial.",
  "requisitos": {
   "hardware": [
    "Servidor con Proxmox VE",
    "Dongle Zigbee USB"
   ],
   "software": [
    "Proxmox VE",
    "Zigbee2MQTT u otro software en el LXC"
   ]
  },
  "problema": "En el host de Proxmox el dongle aparece, pero dentro de tu LXC sin privilegios no existe el dispositivo, o Zigbee2MQTT da «Permission denied».",
  "diagnostico": [
   "Un contenedor sin privilegios no ve los dispositivos del host salvo que se los pases expresamente.",
   "Aunque el nodo llegue al contenedor, el dueño real (root del host) se ve como <code>nobody</code> dentro del LXC, así que el usuario del servicio no puede abrirlo.",
   "En el host, <code>ls -l /dev/serial/by-id/</code> te da la ruta estable del dongle, que no cambia si se reordenan los USB."
  ],
  "solucion": [
   "En el host, apunta la ruta: <code>ls -l /dev/serial/by-id/</code>.",
   "Pásalo al contenedor con la opción <code>dev0</code> (Recursos → Añadir → Device Passthrough en la interfaz, o <code>pct set &lt;ID&gt; -dev0 /dev/serial/by-id/…,mode=0660,gid=&lt;GID&gt;</code>).",
   "Pon como <code>gid</code> el del grupo que usa el servicio dentro del contenedor (por ejemplo <code>dialout</code>; compruébalo con <code>getent group dialout</code> dentro del LXC), o un <code>uid</code> del usuario del servicio.",
   "Reinicia el contenedor y comprueba dentro con <code>ls -l</code> que el dispositivo existe y tiene el grupo correcto.",
   "En Zigbee2MQTT usa esa misma ruta en <code>serial: port:</code>. Para los permisos en Linux en general, mira la <a href=\"https://frikilabs.com/#/ficha/linux-dialout-serial\">ficha de dialout</a>."
  ],
  "compatibilidad": [
   "Proxmox VE con la opción dev[n] (versiones actuales; si tu interfaz no la muestra, actualiza)",
   "Contenedores LXC sin privilegios"
  ],
  "fuentes": [
   {
    "titulo": "Proxmox VE wiki — Linux Container (opción dev[n])",
    "url": "https://pve.proxmox.com/wiki/Linux_Container",
    "tipo": "oficial"
   },
   {
    "titulo": "Zigbee2MQTT — Adapter settings",
    "url": "https://www.zigbee2mqtt.io/guide/configuration/adapter-settings.html",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "ha-2026-5-selector-serie",
  "titulo": "Home Assistant 2026.5: el nuevo selector de puerto serie (serialx y proxies serie de ESPHome)",
  "categoria": "homeassistant",
  "sub": "instalacion",
  "tags": [
   "serialx",
   "pyserial",
   "puerto serie",
   "serial proxy",
   "esphome",
   "2026.5",
   "rs-232",
   "usb"
  ],
  "sinonimos": [
   "que es serialx",
   "nuevo selector puerto serie home assistant",
   "serial proxy esphome",
   "home assistant 2026.5 serie"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Resumen de las notas oficiales de Home Assistant 2026.5, del blog de desarrolladores y de la doc de ESPHome.",
  "requisitos": {
   "hardware": [
    "Dispositivo serie (USB o RS-232/TTL)",
    "Opcional: ESP32 con ESPHome"
   ],
   "software": [
    "Home Assistant 2026.5 o superior"
   ]
  },
  "problema": "Desde la 2026.5 algunas integraciones muestran un selector de puerto serie nuevo con puertos USB y «proxies serie» de ESPHome, y no sabes qué ha cambiado.",
  "diagnostico": [
   "Home Assistant ha cambiado su forma de manejar los puertos serie: usa <b>serialx</b>, un driver serie asíncrono nuevo, en lugar de la librería <code>pyserial</code> de siempre.",
   "Las integraciones que necesitan un puerto serie tienen ahora un selector que muestra juntos los puertos USB locales y los proxies serie de ESPHome, con nombres legibles. La lista se actualiza en vivo si enchufas un USB con el desplegable abierto.",
   "Un <b>proxy serie de ESPHome</b> expone por red un puerto serie conectado a un ESP, de modo que el aparato serie no tiene que estar enchufado al servidor de Home Assistant.",
   "No todas las integraciones lo usan todavía. Las notas citan la nueva Denon RS-232 y Russound RIO, ya migrada; el resto lo irá adoptando al migrar a serialx."
  ],
  "solucion": [
   "Si tu aparato está enchufado por USB al servidor, no tienes que cambiar nada: elige su puerto en el selector.",
   "Para usar un proxy serie necesitas montar tu propio dispositivo ESPHome con el componente <code>serial_proxy</code> configurado sobre la UART a la que está cableado el aparato. Las propias notas avisan de que aún no es «un toque», sino algo técnico.",
   "Una vez el ESP está adoptado en Home Assistant, su puerto aparece en el selector de las integraciones compatibles.",
   "Si mantienes una integración personalizada que usa <code>pyserial</code>, el blog de desarrolladores explica cómo migrar a serialx."
  ],
  "compatibilidad": [
   "Home Assistant 2026.5 o superior",
   "ESPHome con el componente serial_proxy"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant 2026.5 — notas de la versión (Serial ports over the network with ESPHome)",
    "url": "https://www.home-assistant.io/blog/2026/05/06/release-20265/",
    "tipo": "oficial"
   },
   {
    "titulo": "Blog de desarrolladores de Home Assistant — Migrar de pyserial a serialx",
    "url": "https://developers.home-assistant.io/blog/2026/04/27/pyserial-to-serialx",
    "tipo": "oficial"
   },
   {
    "titulo": "ESPHome — Serial Proxy",
    "url": "https://esphome.io/components/serial_proxy/",
    "tipo": "oficial"
   }
  ],
  "exito": "en el selector de puerto serie de las integraciones compatibles, el puerto de tu ESP junto a los USB locales, con un nombre legible.",
  "publicado": "2026-10-22"
 },
 {
  "id": "assist-ollama-no-controla",
  "titulo": "Assist con Ollama charla pero no enciende nada: LLM local con control de la casa",
  "categoria": "ia",
  "sub": "integraciones",
  "tags": [
   "ollama",
   "assist",
   "llm",
   "tools",
   "tool calling",
   "home assistant"
  ],
  "sinonimos": [
   "ollama no controla luces",
   "llm local home assistant no ejecuta",
   "assist ia no enciende",
   "tool calling ollama home assistant"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basada en la documentación oficial citada, leída el 22/10/2026. No lo hemos medido en nuestro hardware: las cifras que aparecen son las que publica la propia documentación.",
  "requisitos": {
   "hardware": [
    "Un equipo con servidor Ollama en tu red"
   ],
   "software": [
    "Home Assistant con la integración Ollama",
    "Un modelo de Ollama con soporte de herramientas (Tools)"
   ]
  },
  "problema": "Has puesto Ollama como agente de conversación de Assist: responde y conversa, pero cuando le pides «apaga la luz de la cocina» no hace nada o se inventa que lo ha hecho.",
  "diagnostico": [
   "Según la doc de Home Assistant, <b>solo los modelos que admiten Tools pueden controlar Home Assistant</b>. Si el modelo no tiene herramientas, solo puede charlar.",
   "La opción <b>Control Home Assistant</b> de la integración debe estar activada; es una función que la propia doc marca como experimental.",
   "La IA solo ve y controla las entidades <b>expuestas</b> a Assist. Si la luz no está expuesta, no existe para ella.",
   "Los modelos pequeños se equivocan más y pueden perder el hilo de la conversación con el control activado; la doc recomienda exponer <b>menos de 25 entidades</b> si experimentas con LLM locales. El contexto por defecto de HA es de 8k tokens (Ollama usa 2k).",
   "Montaje básico de la integración: <a href=\"https://frikilabs.com/#/ficha/ollama-home-assistant\">usar Ollama como agente de conversación</a>."
  ],
  "solucion": [
   "En Ajustes → Dispositivos y servicios → Ollama → rueda dentada, elige un modelo que admita Tools (lo indica su ficha en la biblioteca de Ollama).",
   "Activa <b>Control Home Assistant</b> en las opciones de la integración.",
   "En Ajustes → Asistentes de voz → Exponer, deja solo las entidades que de verdad quieres controlar por voz (menos de 25 para empezar).",
   "Si quieres charlar y controlar, haz lo que propone la doc: dos entradas de Ollama con el mismo modelo, una sin control para conversar y otra con control para la casa.",
   "Ajusta <b>Context window size</b>: más contexto ayuda en casas grandes; menos reduce la RAM de Ollama.",
   "Serie «Voz e IA local con Home Assistant»: <a href=\"https://frikilabs.com/#/ficha/voz-local-espanol-assist\">voz local en español</a> · <a href=\"https://frikilabs.com/#/ficha/atom-echo-wake-word\">palabra de activación en ATOM Echo</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-lenta\">latencia en hardware modesto</a> · <a href=\"https://frikilabs.com/#/ficha/frigate-elegir-detector\">visión local con Coral o Hailo</a>."
  ],
  "exito": "La IA ejecuta la orden sobre una entidad expuesta y el estado del dispositivo cambia en Home Assistant.",
  "compatibilidad": [
   "Integración Ollama (desde Home Assistant 2024.4)",
   "Modelos de Ollama con soporte de Tools"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración Ollama",
    "url": "https://www.home-assistant.io/integrations/ollama/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "voz-local-espanol-assist",
  "titulo": "Voz local en español: elegir Whisper o Speech-to-Phrase y voz de Piper",
  "categoria": "homeassistant",
  "sub": "voz",
  "tags": [
   "whisper",
   "piper",
   "speech-to-phrase",
   "español",
   "assist",
   "wyoming"
  ],
  "sinonimos": [
   "assist no entiende español",
   "whisper español home assistant",
   "piper voz española",
   "speech to phrase español"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basada en la documentación oficial citada, leída el 22/10/2026. No lo hemos medido en nuestro hardware: las cifras que aparecen son las que publica la propia documentación. La calidad depende del idioma: la doc pide comprobar cómo funciona cada opción en el tuyo, y no lo hemos evaluado en español.",
  "requisitos": {
   "hardware": [
    "Home Assistant OS (Raspberry Pi 4, Green o superior)"
   ],
   "software": [
    "Apps Whisper o Speech-to-Phrase, y Piper",
    "Integración Wyoming"
   ]
  },
  "problema": "Tu asistente de voz local no entiende bien en español, mezcla idiomas o contesta con una voz que no es española, y no sabes qué motor elegir.",
  "diagnostico": [
   "Un asistente local tiene tres piezas con <b>idioma propio cada una</b>: voz a texto (Whisper o Speech-to-Phrase), agente de conversación y texto a voz (Piper). Si una no está en español, falla la cadena.",
   "<b>Speech-to-Phrase</b> es un modelo cerrado: solo transcribe las frases que conoce. La doc lo describe como muy rápido incluso en Green o Pi 4, ideal para domótica, pero no sirve para listas de la compra, nombrar temporizadores o avisos.",
   "<b>Whisper</b> es abierto: intenta transcribir todo, a cambio de ser más lento; la doc solo lo recomienda con hardware potente o si vas a usar un agente LLM.",
   "Piper tiene varias voces por idioma: según el idioma puedes elegir variantes.",
   "Instalación básica de Whisper + Piper con Wyoming: <a href=\"https://frikilabs.com/#/ficha/ha-voz-local-wyoming\">asistente de voz 100 % local</a>."
  ],
  "solucion": [
   "Decide el motor: solo control de la casa → Speech-to-Phrase; frases libres o LLM → Whisper.",
   "Instala la app elegida y Piper, arráncalas y añade en Ajustes → Dispositivos y servicios los servicios que descubre la integración Wyoming.",
   "En Ajustes → Asistentes de voz → Añadir asistente, pon el idioma en <b>español</b> y elige también español en voz a texto y en texto a voz (y la variante de voz de Piper que prefieras).",
   "Expón tus dispositivos a Assist; si no, no podrás controlarlos por voz.",
   "Para afinar Whisper o Piper, abre la página Documentación de cada app: ahí están sus opciones.",
   "Serie «Voz e IA local con Home Assistant»: <a href=\"https://frikilabs.com/#/ficha/assist-ollama-no-controla\">LLM local que controla la casa</a> · <a href=\"https://frikilabs.com/#/ficha/atom-echo-wake-word\">palabra de activación en ATOM Echo</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-lenta\">latencia en hardware modesto</a> · <a href=\"https://frikilabs.com/#/ficha/frigate-elegir-detector\">visión local con Coral o Hailo</a>."
  ],
  "compatibilidad": [
   "Home Assistant OS con apps (antes complementos)",
   "Cualquier satélite de voz o la app móvil de Home Assistant"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Asistente de voz totalmente local",
    "url": "https://www.home-assistant.io/voice_control/voice_remote_local_assistant/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "atom-echo-wake-word",
  "titulo": "ATOM Echo: la palabra de activación «OK Nabu» no responde",
  "categoria": "homeassistant",
  "sub": "voz",
  "tags": [
   "atom echo",
   "m5stack",
   "openwakeword",
   "wake word",
   "esphome",
   "ok nabu"
  ],
  "sinonimos": [
   "atom echo no escucha",
   "ok nabu no funciona",
   "palabra de activación home assistant",
   "openwakeword no detecta"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basada en la documentación oficial citada, leída el 22/10/2026. No lo hemos medido en nuestro hardware: las cifras que aparecen son las que publica la propia documentación.",
  "requisitos": {
   "hardware": [
    "M5Stack ATOM Echo",
    "Wi-Fi de 2,4 GHz"
   ],
   "software": [
    "Home Assistant 2023.10 o superior con Home Assistant OS",
    "Un asistente Assist configurado (Cloud o local)"
   ]
  },
  "problema": "Has instalado el firmware de voz en el ATOM Echo, pero al decir «OK Nabu» no pasa nada: el LED no se pone azul.",
  "diagnostico": [
   "La doc lista como requisito <b>tener activada una palabra de activación</b> para el asistente: si el asistente no tiene motor de wake word, el Echo no tiene nada que escuchar.",
   "Con <b>openWakeWord</b>, el satélite envía el audio a Home Assistant y es el servidor quien busca la palabra; necesita la app openWakeWord y su servicio en la integración Wyoming.",
   "El Echo solo se conecta a redes Wi-Fi de <b>2,4 GHz</b>.",
   "Para instalar el firmware hace falta Chrome o Edge en un ordenador (no en móvil). Si no aparece el puerto, la doc indica instalar el driver CH342.",
   "En placas ESP32-S3 la palabra se detecta en el propio chip con <code>micro_wake_word</code>; si allí se cuelga, es otro problema: <a href=\"https://frikilabs.com/#/ficha/esp32s3-voz-wake-word-cuelga\">ESP32-S3: el asistente se cuelga o la palabra no carga</a>."
  ],
  "solucion": [
   "Instala la app <b>openWakeWord</b> (Ajustes → Apps), arráncala y añade su servicio en Ajustes → Dispositivos y servicios → Wyoming.",
   "En Ajustes → Asistentes de voz, abre tu asistente, menú ⋮ → <b>Add streaming wake word</b>, elige <code>openwakeword</code> y <code>ok nabu</code>, y guarda.",
   "Para la primera prueba usa «ok nabu», como recomienda la doc; crea tu propia palabra cuando todo funcione.",
   "Comprueba que el Echo está en la Wi-Fi de 2,4 GHz y aparece en la integración ESPHome.",
   "Si tarda en empezar a procesar, ajusta <b>Finished speaking detection</b> del dispositivo en la integración ESPHome.",
   "Serie «Voz e IA local con Home Assistant»: <a href=\"https://frikilabs.com/#/ficha/assist-ollama-no-controla\">LLM local que controla la casa</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-espanol-assist\">voz local en español</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-lenta\">latencia en hardware modesto</a> · <a href=\"https://frikilabs.com/#/ficha/frigate-elegir-detector\">visión local con Coral o Hailo</a>."
  ],
  "exito": "Al decir la palabra el LED parpadea en azul; tras la orden se pone verde y Home Assistant confirma la acción.",
  "compatibilidad": [
   "M5Stack ATOM Echo",
   "Otros satélites que envían audio a openWakeWord"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Asistente de voz de 13 $ con ATOM Echo",
    "url": "https://www.home-assistant.io/voice_control/thirteen-usd-voice-remote/",
    "tipo": "oficial"
   },
   {
    "titulo": "Home Assistant — Activar una palabra de activación (openWakeWord)",
    "url": "https://www.home-assistant.io/voice_control/install_wake_word_add_on/",
    "tipo": "oficial"
   },
   {
    "titulo": "ESPHome — Micro Wake Word",
    "url": "https://esphome.io/components/micro_wake_word/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "voz-local-lenta",
  "titulo": "El asistente de voz local tarda mucho en responder en hardware modesto",
  "categoria": "homeassistant",
  "sub": "voz",
  "tags": [
   "latencia",
   "whisper",
   "speech-to-phrase",
   "piper",
   "raspberry pi 4",
   "ollama"
  ],
  "sinonimos": [
   "asistente de voz lento",
   "whisper tarda mucho",
   "assist tarda en responder",
   "voz local lenta raspberry"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basada en la documentación oficial citada, leída el 22/10/2026. No lo hemos medido en nuestro hardware: las cifras que aparecen son las que publica la propia documentación. Las cifras de tiempo son las que publica Home Assistant; no las hemos medido.",
  "requisitos": {
   "hardware": [
    "Raspberry Pi 4, Home Assistant Green o similar"
   ],
   "software": [
    "Asistente Assist local"
   ]
  },
  "problema": "Hablas a tu asistente local en una Raspberry Pi o un Home Assistant Green y pasan varios segundos hasta que hace algo o contesta.",
  "diagnostico": [
   "El retraso se reparte entre detectar que has terminado de hablar, la transcripción, el agente de conversación y la voz de respuesta. Hay que ver qué parte pesa.",
   "Según la doc de Home Assistant, <b>Whisper en una Raspberry Pi 4 tarda unos 8 segundos</b> por orden, y en un Intel NUC menos de un segundo.",
   "La misma doc dice que <b>Speech-to-Phrase</b> transcribe en menos de un segundo incluso en Green o Pi 4, pero solo entiende un subconjunto de órdenes.",
   "Piper está optimizado para Pi 4: con modelos de calidad media genera 1,6 s de voz por segundo, según la doc.",
   "Si usas un LLM con Ollama, el modelo se descarga de memoria si <b>Keep alive</b> no es -1, y un contexto grande consume más."
  ],
  "solucion": [
   "Para control de la casa en hardware modesto, cambia la voz a texto a <b>Speech-to-Phrase</b> (detalles en <a href=\"https://frikilabs.com/#/ficha/voz-local-espanol-assist\">voz local en español</a>).",
   "Deja Whisper para cuando tengas un equipo más potente o necesites frases libres.",
   "En un ATOM Echo u otro satélite ESPHome, ajusta <b>Finished speaking detection</b> para que no espere de más tras tu silencio.",
   "Con Ollama, deja <b>Keep alive</b> en -1 (valor por defecto) para que el modelo siga cargado, y no subas el contexto más de lo necesario.",
   "Mide tú: cronometra la orden antes y después de cada cambio, de uno en uno.",
   "Serie «Voz e IA local con Home Assistant»: <a href=\"https://frikilabs.com/#/ficha/assist-ollama-no-controla\">LLM local que controla la casa</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-espanol-assist\">voz local en español</a> · <a href=\"https://frikilabs.com/#/ficha/atom-echo-wake-word\">palabra de activación en ATOM Echo</a> · <a href=\"https://frikilabs.com/#/ficha/frigate-elegir-detector\">visión local con Coral o Hailo</a>."
  ],
  "compatibilidad": [
   "Raspberry Pi 4/5, Home Assistant Green, mini PC"
  ],
  "fuentes": [
   {
    "titulo": "Home Assistant — Asistente de voz totalmente local",
    "url": "https://www.home-assistant.io/voice_control/voice_remote_local_assistant/",
    "tipo": "oficial"
   },
   {
    "titulo": "Home Assistant — Asistente de voz de 13 $ con ATOM Echo",
    "url": "https://www.home-assistant.io/voice_control/thirteen-usd-voice-remote/",
    "tipo": "oficial"
   },
   {
    "titulo": "Home Assistant — Integración Ollama",
    "url": "https://www.home-assistant.io/integrations/ollama/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "frigate-elegir-detector",
  "titulo": "Frigate: elegir detector (Coral, Hailo o CPU) para visión local",
  "categoria": "ia",
  "sub": "gpu",
  "tags": [
   "frigate",
   "coral",
   "hailo",
   "edgetpu",
   "detector",
   "visión local"
  ],
  "sinonimos": [
   "frigate coral o hailo",
   "frigate cpu lento",
   "frigate detector configurar",
   "edgetpu frigate"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basada en la documentación oficial citada, leída el 22/10/2026. No lo hemos medido en nuestro hardware: las cifras que aparecen son las que publica la propia documentación.",
  "requisitos": {
   "hardware": [
    "Google Coral (USB, Mini PCIe o M.2) o Hailo-8/8L, o GPU/iGPU compatible"
   ],
   "software": [
    "Frigate en Docker"
   ]
  },
  "problema": "Frigate va lento, el procesador está al máximo o se salta detecciones, y no tienes claro qué detector configurar para tu acelerador.",
  "diagnostico": [
   "Por defecto Frigate usa un único detector de <b>CPU</b>, que su doc no recomienda para uso real.",
   "La doc soporta, entre otros, <b>Coral EdgeTPU</b> (tipo <code>edgetpu</code>, USB o PCIe/M.2) y <b>Hailo-8/8L</b> (tipo <code>hailo8l</code>, dispositivo PCIe). En Intel, OpenVINO suele ir mejor que el detector de CPU.",
   "<b>No se pueden mezclar</b> detectores distintos para detección de objetos (por ejemplo, OpenVINO y Coral a la vez).",
   "Según la doc, un Coral ejecuta una sola instancia del modelo y necesita una inferencia de unos 10 ms para seguir el ritmo.",
   "Si con Hailo en la Pi 5 ni siquiera existe el dispositivo, el problema es el driver: <a href=\"https://frikilabs.com/#/ficha/frigate-hailo-pi5-sin-dev\">no aparece /dev/hailo0</a>."
  ],
  "solucion": [
   "Coral USB: <code>detectors: coral: type: edgetpu device: usb</code> (para PCIe/M.2, <code>device: pci</code>). Usa el modelo que trae el contenedor.",
   "Hailo: <code>type: hailo8l</code> con <code>device: PCIe</code> y el modelo a 320×320 como indica la doc; si no das modelo, descarga YOLOv6n en el primer arranque y lo guarda en <code>/config/model_cache/hailo</code>.",
   "Empieza con modelos de <b>320×320</b>: la doc dice que es la mejor opción para casi todas las instalaciones.",
   "Revisa Sistema → Métricas → Cámaras para ver si el detector se salta detecciones antes de subir el tamaño del modelo.",
   "Serie «Voz e IA local con Home Assistant»: <a href=\"https://frikilabs.com/#/ficha/assist-ollama-no-controla\">LLM local que controla la casa</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-espanol-assist\">voz local en español</a> · <a href=\"https://frikilabs.com/#/ficha/atom-echo-wake-word\">palabra de activación en ATOM Echo</a> · <a href=\"https://frikilabs.com/#/ficha/voz-local-lenta\">latencia en hardware modesto</a>."
  ],
  "exito": "En Sistema → Métricas de Frigate aparece tu detector (Coral o Hailo) con su tiempo de inferencia y sin detecciones saltadas.",
  "compatibilidad": [
   "Coral USB, Mini PCIe y M.2",
   "Hailo-8 y Hailo-8L (HAT para Raspberry Pi o M.2)"
  ],
  "fuentes": [
   {
    "titulo": "Documentación de Frigate — Detectores de objetos",
    "url": "https://docs.frigate.video/configuration/object_detectors/",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "primer-vps-linux",
  "titulo": "Tu primer VPS Linux desde cero: qué es, para qué sirve y cómo dejarlo seguro",
  "categoria": "linux",
  "sub": "paquetes",
  "tags": [
   "vps",
   "servidor",
   "ssh",
   "ufw",
   "fail2ban",
   "unattended-upgrades",
   "wireguard",
   "uptime kuma",
   "principiantes"
  ],
  "sinonimos": [
   "que es un vps",
   "contratar vps",
   "servidor en la nube",
   "asegurar vps",
   "primer servidor linux",
   "vps para home assistant"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Basada en la documentación oficial citada, leída el 22/10/2026. No lo hemos repetido paso a paso en un VPS nuestro: por eso está como «documentado» y no como «verificado».",
  "requisitos": {
   "hardware": [
    "Un VPS con Ubuntu Server LTS o Debian (cualquier proveedor)"
   ],
   "software": [
    "Un terminal con cliente SSH (en Windows 10/11 ya viene)"
   ]
  },
  "problema": "Quieres tener algo encendido todo el día en internet (una web, una VPN, un bot) y te han hablado de un VPS, pero no sabes qué es ni cómo empezar sin dejar la puerta abierta.",
  "diagnostico": [
   "Un VPS es un ordenador Linux pequeño que alquilas en un centro de datos. Piensa en una Raspberry Pi, pero conectada a internet con IP pública y encendida 24/7 sin que tú pagues la luz ni dependas de tu router.",
   "Para qué sirve, por ejemplo: alojar una web, montar una VPN con <b>WireGuard</b>, tener un <b>bot de Telegram</b> siempre en marcha o instalar <b>Uptime Kuma</b> para que te avise si tu Home Assistant de casa deja de responder (desde fuera, que es justo lo que no puede hacer el propio HA).",
   "El riesgo: en cuanto tiene IP pública, recibe intentos de entrar por SSH en minutos. Si sigues entrando como <code>root</code> con contraseña, estás confiando en que nadie la adivine.",
   "Lo mínimo sensato: entrar con clave SSH, usar un usuario normal con <code>sudo</code>, cerrar puertos con ufw, bloquear a quien insiste con fail2ban y que las actualizaciones de seguridad se instalen solas."
  ],
  "solucion": [
   "En tu ordenador crea una clave: <code>ssh-keygen -t ed25519</code>. Entra la primera vez con lo que te dé el proveedor: <code>ssh root@IP_DEL_VPS</code>.",
   "Actualiza y crea tu usuario: <code>apt update && apt full-upgrade -y</code>, luego <code>adduser kike</code> y <code>usermod -aG sudo kike</code> (cambia «kike» por tu nombre).",
   "Desde tu ordenador copia la clave a ese usuario: <code>ssh-copy-id kike@IP_DEL_VPS</code>. Comprueba que entras con <code>ssh kike@IP_DEL_VPS</code> sin que te pida la contraseña del servidor.",
   "Con esa sesión abierta, edita <code>/etc/ssh/sshd_config</code> (o un archivo en <code>/etc/ssh/sshd_config.d/</code>) y deja <code>PermitRootLogin no</code> y <code>PasswordAuthentication no</code>. Aplica con <code>sudo systemctl reload ssh</code>. No cierres la sesión hasta probar en otra ventana que sigues entrando.",
   "Cortafuegos: <code>sudo apt install ufw</code>, <code>sudo ufw allow OpenSSH</code> y, solo después, <code>sudo ufw enable</code>. Si activas ufw sin permitir SSH antes, te quedas fuera. Abre más puertos solo cuando los uses (por ejemplo <code>sudo ufw allow 51820/udp</code> para WireGuard).",
   "fail2ban: <code>sudo apt install fail2ban</code>. Crea <code>/etc/fail2ban/jail.local</code> con <code>[sshd]</code>, <code>enabled = true</code> y <code>backend = systemd</code> (en Debian 12 los registros van a journald y sin esa línea puede no arrancar). Luego <code>sudo systemctl restart fail2ban</code>.",
   "Actualizaciones automáticas: <code>sudo apt install unattended-upgrades</code> y <code>sudo dpkg-reconfigure -plow unattended-upgrades</code> (responde «Sí»). En Ubuntu Server ya suele venir instalado y activo.",
   "Ya puedes instalar lo que querías: WireGuard (<code>sudo apt install wireguard</code> y sigue su guía rápida), Uptime Kuma (su guía de instalación, con Docker o Node.js) o tu bot de Telegram.",
   "Alternativa honesta: si lo que quieres es entrar a tu casa desde fuera o vigilar cosas de tu red, puede que no necesites un VPS. Una Raspberry Pi en casa con <b>Tailscale</b> te da acceso remoto sin abrir puertos del router y sin pagar cuota. El VPS gana cuando necesitas IP pública, que funcione aunque se caiga tu conexión o vigilar tu casa desde fuera."
  ],
  "exito": "<code>sudo ufw status</code> muestra «Status: active» con OpenSSH permitido, <code>sudo fail2ban-client status sshd</code> responde con la jaula activa y <code>ssh root@IP_DEL_VPS</code> es rechazado mientras tu usuario entra con su clave.",
  "compatibilidad": [
   "Ubuntu Server 22.04 y 24.04 LTS",
   "Debian 12"
  ],
  "afiliado": {
   "nombre": "Raiola Networks · VPS Cloud",
   "url": "https://gestiondecuenta.eu/aff.php?aff=7120&especial=vps-cloud-frikilabs",
   "texto": "Si aún no tienes VPS: Raiola Networks (VPS Cloud), proveedor español. Si contratas con este enlace, Raiola me da una comisión que va íntegra a mejorar la web, y tú tienes un 20 % de descuento en los VPS Cloud.",
   "cupon": null
  },
  "fuentes": [
   {
    "titulo": "Ubuntu Server — Servidor OpenSSH",
    "url": "https://documentation.ubuntu.com/server/how-to/security/openssh-server/",
    "tipo": "oficial"
   },
   {
    "titulo": "Ubuntu Server — Cortafuegos (ufw)",
    "url": "https://ubuntu.com/server/docs/how-to/security/firewalls/",
    "tipo": "oficial"
   },
   {
    "titulo": "Ubuntu Server — Actualizaciones automáticas",
    "url": "https://ubuntu.com/server/docs/how-to/software/automatic-updates/",
    "tipo": "oficial"
   },
   {
    "titulo": "Ubuntu Wiki — UFW",
    "url": "https://wiki.ubuntu.com/UFW",
    "tipo": "oficial"
   },
   {
    "titulo": "Debian Wiki — SSH",
    "url": "https://wiki.debian.org/SSH",
    "tipo": "oficial"
   },
   {
    "titulo": "Debian Wiki — UnattendedUpgrades",
    "url": "https://wiki.debian.org/UnattendedUpgrades",
    "tipo": "oficial"
   },
   {
    "titulo": "Debian manpages — sshd_config(5)",
    "url": "https://manpages.debian.org/bookworm/openssh-server/sshd_config.5.en.html",
    "tipo": "oficial"
   },
   {
    "titulo": "fail2ban — repositorio y wiki oficiales",
    "url": "https://github.com/fail2ban/fail2ban/wiki",
    "tipo": "github"
   },
   {
    "titulo": "WireGuard — Quick Start",
    "url": "https://www.wireguard.com/quickstart/",
    "tipo": "oficial"
   },
   {
    "titulo": "Tailscale — Quickstart",
    "url": "https://tailscale.com/docs/how-to/quickstart",
    "tipo": "oficial"
   },
   {
    "titulo": "Uptime Kuma — Cómo instalarlo",
    "url": "https://github.com/louislam/uptime-kuma/wiki/%F0%9F%94%A7-How-to-Install",
    "tipo": "github"
   },
   {
    "titulo": "Telegram — Tutorial oficial de bots",
    "url": "https://core.telegram.org/bots/tutorial",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "esp32-cam-camara-falla",
  "titulo": "Mi ESP32-CAM no da imagen o se reinicia con ESPHome",
  "categoria": "esp",
  "sub": "esphome",
  "tags": [
   "esp32-cam",
   "esp32_camera",
   "ov2640",
   "camara",
   "esphome",
   "psram"
  ],
  "sinonimos": [
   "esp32 cam no funciona",
   "esp32cam no da imagen",
   "camera init failed",
   "esp32 cam se reinicia",
   "esp32 cam watchdog",
   "esp32 cam imagen al reves",
   "camara esphome no aparece",
   "esp32 cam se calienta",
   "ai thinker cam esphome"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Has puesto una ESP32-CAM (AI-Thinker) con ESPHome y la cámara no aparece en Home Assistant, da error al arrancar, se reinicia sola o la imagen sale girada.",
  "diagnostico": [
   "Falta el bloque <code>psram:</code> o el <code>i2c:</code>: ESPHome los necesita para la cámara.",
   "La resolución es demasiado alta para la memoria: ESPHome avisa de que entonces verás un error al arrancar.",
   "Has usado GPIO16 para otra cosa: en la AI-Thinker va a la PSRAM y hace saltar el watchdog (reinicios).",
   "Pines mal copiados (la AI-Thinker no usa los mismos que las cámaras M5Stack) o una alimentación floja.",
   "Calor: algunas placas de cámara se calientan y, en caliente, pueden no reconocer la cámara tras reiniciar."
  ],
  "solucion": [
   "Mira el log al arrancar (<a href=\"https://frikilabs.com/#/ficha/esphome-logs-cli\">cómo ver los logs</a>) y busca el error de la cámara o de memoria.",
   "Comprueba que tienes <code>psram:</code> e <code>i2c:</code> (<code>sda: GPIO26</code>, <code>scl: GPIO27</code>) y que los pines de <code>esp32_camera</code> son los del ejemplo AI-Thinker de ESPHome (están en la guía del aparato).",
   "Quita de tu configuración cualquier uso de GPIO16.",
   "Baja <code>resolution</code> a <code>640x480</code> o menos y, si hace falta, sube <code>jpeg_quality</code> (número más alto = menos calidad y menos memoria).",
   "Activa <code>test_pattern: true</code>: si ves el patrón, el ESP32 funciona y el fallo está en la cámara o su conector; si tampoco sale, revisa pines y PSRAM.",
   "Imagen girada: cambia <code>vertical_flip</code> o <code>horizontal_mirror</code>. Si usas PWM con <code>ledc</code>, ponle <code>channel: 2</code> (la cámara ocupa el temporizador 1).",
   "Aliméntala a 5 V con una fuente buena (<a href=\"https://frikilabs.com/#/ficha/esp32-brownout\">ficha de brownout</a>) y, si está caliente, déjala enfriar antes de volver a probar."
  ],
  "requisitos": {
   "hardware": [
    "ESP32-CAM AI-Thinker",
    "Fuente de 5 V estable"
   ],
   "software": [
    "ESPHome",
    "Home Assistant"
   ]
  },
  "compatibilidad": [
   "ESP32-CAM AI-Thinker con ESPHome; el componente también sirve para otras placas de cámara ESP32 con sus propios pines"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 22-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "ESPHome — Componente de cámara ESP32 (requisitos, GPIO16, test_pattern, PWM)",
    "url": "https://esphome.io/components/esp32_camera/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESPHome — Componente PSRAM",
    "url": "https://esphome.io/components/psram/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "ciber-virustotal-enlaces",
  "titulo": "¿Es seguro este enlace o archivo? Cómo comprobarlo con VirusTotal antes de abrirlo (y qué NO debes subir)",
  "categoria": "ciber",
  "sub": "herramientas",
  "tags": [
   "virustotal",
   "enlace",
   "url",
   "archivo",
   "malware",
   "phishing",
   "novato",
   "herramienta"
  ],
  "sinonimos": [
   "comprobar enlace sospechoso",
   "como saber si un link es seguro",
   "analizar url",
   "virus total",
   "virustotal que es",
   "analizar archivo virus online",
   "enlace raro sms",
   "comprobar si una web es falsa",
   "escaner de enlaces"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te ha llegado un enlace o un archivo por correo, SMS o WhatsApp y no sabes si abrirlo. Quieres comprobarlo antes, sin poner en riesgo tu ordenador ni tu móvil.",
  "diagnostico": [
   "Primero, las señales a simple vista que da INCIBE: letras cambiadas en la dirección (como <code>tubanc0.com</code> con un cero), una dirección real distinta de la que se ve escrita, enlaces acortados que esconden el destino y archivos <code>.exe</code> o <code>.zip</code> que no esperabas.",
   "El candado (HTTPS) solo dice que la conexión va cifrada, <b>no</b> que la web sea la que crees: INCIBE lo recalca.",
   "VirusTotal es un servicio gratuito (para uso no comercial) que pasa el enlace o el archivo por más de 70 antivirus y listas de webs peligrosas y te enseña qué dice cada uno.",
   "Ojo con la privacidad: VirusTotal comparte lo que subes con sus socios de seguridad y el contenido de los archivos puede llegar a sus clientes de pago. No es un sitio para documentos personales."
  ],
  "solucion": [
   "Sin abrir el enlace, mantén pulsado (móvil) o pasa el ratón por encima (ordenador) para ver la dirección real, y cópiala.",
   "Entra en <code>virustotal.com</code>, pestaña de URL, pega la dirección completa empezando por <code>https://</code> y analiza. También puedes buscar un dominio o una IP.",
   "Lee el resultado: si uno o más motores lo marcan como malicioso o phishing, no lo abras. Si todo sale limpio, sigue mirando las señales de arriba: una web recién creada puede no estar aún en ninguna lista.",
   "Para un archivo, mejor busca primero su «huella» (hash SHA-256) en lugar de subirlo; así ves si ya lo analizó alguien sin compartir tu copia. Cómo sacar el hash: <a href=\"https://frikilabs.com/#/ficha/ciber-verificar-descargas\">ficha de verificar descargas</a>.",
   "<b>Nunca subas</b> facturas, contratos, fotos del DNI ni nada con datos tuyos o de tu trabajo: puede acabar visible para terceros.",
   "Si ya pinchaste y metiste datos, sigue la <a href=\"https://frikilabs.com/#/ficha/ciber-phishing\">ficha de phishing</a> (o la de <a href=\"https://frikilabs.com/#/ficha/ciber-smishing-sms\">SMS falsos</a>); para códigos QR, la <a href=\"https://frikilabs.com/#/ficha/ciber-qr-fraudulento\">ficha de QR fraudulentos</a>. Dudas: 017 de INCIBE (<a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">ficha 017</a>)."
  ],
  "requisitos": {
   "hardware": [
    "Ordenador o móvil"
   ],
   "software": [
    "Navegador web (VirusTotal también tiene app para Android)"
   ]
  },
  "compatibilidad": [
   "Cualquier sistema con navegador; la web de VirusTotal está en inglés"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 22-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "INCIBE — Cómo comprobar si un enlace es malicioso (recurso descargable)",
    "url": "https://www.incibe.es/ciudadania/formacion/recursosdescargables/comprobar-enlace-malicioso",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Ficha de la herramienta Virus Total",
    "url": "https://www.incibe.es/ciudadania/herramientas/virus-total",
    "tipo": "oficial"
   },
   {
    "titulo": "VirusTotal — Cómo funciona (motores y con quién se comparte lo que subes)",
    "url": "https://docs.virustotal.com/docs/how-it-works",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "VirusTotal — Búsquedas por URL, dominio, IP o hash (MD5, SHA1, SHA256)",
    "url": "https://docs.virustotal.com/docs/searching",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-22"
 },
 {
  "id": "slzb-06-z2m-no-arranca",
  "titulo": "Zigbee2MQTT no arranca con el SLZB-06 o no lo encuentra",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "slzb-06",
   "smlight",
   "zigbee2mqtt",
   "zha",
   "coordinador",
   "ethernet",
   "poe"
  ],
  "sinonimos": [
   "slzb06 no conecta",
   "slzb-06 zigbee2mqtt error",
   "network commissioning timeout",
   "z2m no arranca coordinador ethernet",
   "slzb 06 no aparece",
   "slzb-06 usb no reconoce",
   "tcp 6638",
   "coordinador zigbee poe no funciona"
  ],
  "nivel": "intermedio",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes un coordinador SMLIGHT SLZB-06 por red o USB y Zigbee2MQTT no arranca (por ejemplo con el error «Network Commissioning Timeout»), no lo encuentra o el ordenador no lo reconoce por USB.",
  "diagnostico": [
   "Dirección mal puesta: Zigbee2MQTT usa <code>tcp://IP:6638</code> (o <code>mdns://slzb-06</code>) y ZHA <code>socket://IP:6638</code>.",
   "Modo equivocado: en modo USB (LED azul) no responde por red, y al revés.",
   "Por USB: un cable USB-C a USB-C no vale (usa USB-A a USB-C) o falta el driver CP210x.",
   "«Network Commissioning Timeout»: según SMLIGHT, suele ser un identificador de red por defecto que choca con otra red Zigbee cercana.",
   "Radio mal elegida en ZHA: SLZB-06 es ZNP (TI); SLZB-06M es EZSP (Silicon Labs)."
  ],
  "solucion": [
   "Abre <code>http://slzb-06.local</code> o su IP y comprueba en «Mode» que está en Zigbee por Ethernet (o wifi).",
   "Pon en Zigbee2MQTT <code>port: tcp://IP_DEL_SLZB:6638</code> (o <code>mdns://slzb-06</code>) y reinícialo.",
   "Con «Network Commissioning Timeout» en una red nueva, el manual propone en <code>advanced:</code> <code>pan_id: GENERATE</code>, <code>network_key: GENERATE</code> y un <code>ext_pan_id</code> propio. <b>Ojo:</b> en una red que ya funciona obliga a emparejar todo de nuevo; hazlo solo en red nueva y con copia.",
   "Otra prueba del manual: arrancar con la antena desenroscada o con los routers Zigbee cercanos apagados un momento.",
   "Prueba con ZHA (ZNP, <code>socket://IP:6638</code>, 115200): si ahí arranca, actualiza el firmware Zigbee desde el panel del SLZB-06.",
   "Por USB: cable USB-A a USB-C, driver CP210x y el puerto que dé el sistema (p. ej. <code>/dev/ttyUSB0</code>). Más en la <a href=\"https://frikilabs.com/#/ficha/z2m-zha-dongle\">ficha del dongle Zigbee</a>."
  ],
  "requisitos": {
   "hardware": [
    "SMLIGHT SLZB-06 o SLZB-06M",
    "Cable de red con PoE o fuente USB-C"
   ],
   "software": [
    "Home Assistant",
    "Zigbee2MQTT o ZHA"
   ]
  },
  "compatibilidad": [
   "Serie SLZB-06 de SMLIGHT; los pasos de ZHA cambian el tipo de radio según el modelo (ZNP o EZSP)"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 23-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "SMLIGHT — Manual SLZB-06: instalación con Zigbee2MQTT y ZHA",
    "url": "https://smlight.tech/manual/slzb-06/guide/installation/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "SMLIGHT — Manual SLZB-06: preguntas frecuentes y errores comunes",
    "url": "https://smlight.tech/manual/slzb-06/guide/faq-and-lifehacks/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "SMLIGHT — Manual SLZB-06: configuración (modos y botón)",
    "url": "https://smlight.tech/manual/slzb-06/guide/configuration/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-23"
 },
 {
  "id": "ciber-movil-robado-perdido",
  "titulo": "Me han robado o he perdido el móvil: qué hacer en la primera hora",
  "categoria": "ciber",
  "sub": "ayuda",
  "tags": [
   "movil",
   "robo",
   "perdida",
   "iphone",
   "android",
   "imei",
   "sim",
   "novato"
  ],
  "sinonimos": [
   "me han robado el movil",
   "he perdido el movil",
   "perdi el iphone",
   "robo de telefono",
   "bloquear movil robado",
   "localizar movil",
   "buscar mi iphone",
   "encontrar mi dispositivo",
   "localizador google",
   "modo perdido",
   "bloquear imei",
   "borrar movil a distancia"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Te han robado o has perdido el móvil y temes que alguien entre en tus fotos, correo, banco o WhatsApp, o use tu línea.",
  "diagnostico": [
   "Según INCIBE, la primera hora es clave: el riesgo son las cuentas abiertas en el teléfono y los códigos por SMS que llegan a tu SIM.",
   "Solo podrás localizarlo, bloquearlo o borrarlo si tenías «Buscar» (iPhone) o «Localizador» (Android, activo al poner una cuenta de Google). Borrar es el último recurso: bloqueado aún da su ubicación; borrado, normalmente no."
  ],
  "solucion": [
   "<b>Localízalo</b> desde otro aparato: iPhone en <code>icloud.com/find</code> (sin código de verificación, según Apple); Android en Localizador de Google. Si está cerca, hazlo sonar.",
   "<b>Bloquéalo</b>: «Marcar como perdido» en iPhone (suspende también Apple Pay) o bloquear en Localizador. Si es un robo, Apple aconseja no poner tus datos en pantalla y <b>no quitarlo de Buscar</b>.",
   "<b>Llama a tu operadora</b> para bloquear la SIM y que nadie reciba tus SMS (<a href=\"https://frikilabs.com/#/ficha/ciber-sim-duplicada\">ficha de SIM duplicada</a>). Con la SIM bloqueada la localización puede fallar.",
   "<b>Cierra sesiones y cambia contraseñas</b> desde otro equipo (Google/Apple, correo, banco, redes). Si ya te quitaron alguna: <a href=\"https://frikilabs.com/#/ficha/ciber-cuenta-robada\">cuenta robada</a>.",
   "<b>Denuncia</b> a la Policía o la Guardia Civil con el IMEI (<code>*#06#</code>, Ajustes o la caja) y pide a la operadora que bloquee el teléfono con otra SIM.",
   "<b>Bórralo a distancia</b> solo si lo das por perdido (la nube sigue en tu cuenta). Ojo con mensajes de «hemos encontrado tu móvil»: Apple nunca te contacta para eso, es un truco para robarte la contraseña.",
   "<b>Para la próxima</b>: apunta tu IMEI fuera del móvil, activa Buscar o Localizador, código y PIN de SIM fuertes, <a href=\"https://frikilabs.com/#/ficha/ciber-backup-ransomware\">copias</a> y un segundo método de recuperación (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">2FA</a>). Dudas: <a href=\"https://frikilabs.com/#/ficha/ciber-017-incibe\">017 de INCIBE</a>."
  ],
  "requisitos": {
   "hardware": [
    "Otro móvil, tablet u ordenador con internet"
   ],
   "software": [
    "Buscar de Apple (icloud.com/find) o Localizador de Google"
   ]
  },
  "compatibilidad": [
   "iPhone/iPad con Buscar o Android con Localizador activados"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 23-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "INCIBE — ¿Cómo actuar si me han robado o he perdido el teléfono móvil?",
    "url": "https://www.incibe.es/ciudadania/blog/como-actuar-si-me-han-robado-o-he-perdido-el-telefono-movil",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Pierdes o te roban el móvil durante un viaje: así debes actuar",
    "url": "https://www.incibe.es/ciudadania/blog/pierdes-o-te-roban-el-movil-durante-un-viaje-asi-debes-actuar-para-proteger-tus",
    "tipo": "oficial"
   },
   {
    "titulo": "Apple — Si te roban el iPhone o el iPad",
    "url": "https://support.apple.com/es-es/120837",
    "tipo": "oficial"
   },
   {
    "titulo": "Apple — Cómo encontrar tu iPhone o iPad perdido",
    "url": "https://support.apple.com/es-es/101593",
    "tipo": "oficial"
   },
   {
    "titulo": "Google — Encontrar, bloquear o borrar los datos de un dispositivo Android perdido",
    "url": "https://support.google.com/android/answer/6160491?hl=es",
    "tipo": "oficial"
   }
  ],
  "publicado": "2026-10-23"
 },
 {
  "id": "novatos-cerradura-inteligente",
  "titulo": "Cerradura inteligente con Home Assistant en local (guía para novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "cerradura",
   "cerradura inteligente",
   "matter",
   "zigbee",
   "bluetooth",
   "seguridad"
  ],
  "sinonimos": [
   "cerradura inteligente home assistant",
   "cerradura wifi",
   "cerrdura inteligente",
   "smart lock",
   "bombin inteligente",
   "abrir puerta con el movil",
   "cerradura matter",
   "cerradura zigbee",
   "cerradura bluetooth"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres abrir y cerrar la puerta desde Home Assistant, sin nube y sin poner tu casa en riesgo. Primero va la puerta y luego Home Assistant.",
  "diagnostico": [
   "<b>Esquema:</b> la cerradura va en la puerta, con pilas, y habla por radio con Home Assistant dentro de casa. <a href=\"https://frikilabs.com/img/guias/cerradura-partes.svg\">Ver el dibujo</a>.",
   "<b>Tipos.</b> Unas cambian el bombín (el cilindro de la llave). Otras van por dentro, encima de tu cerradura, y giran la llave por ti; esas son más fáciles. Según cómo se comunican: Matter (estándar entre marcas; busca la certificación), Zigbee (antena USB con ZHA o Zigbee2MQTT) o Bluetooth (Home Assistant o un proxy a pocos metros).",
   "<b>¿Vale mi puerta?</b> Mira qué puertas admite el fabricante. Si cambia el bombín, mide desde el tornillo central hacia cada lado. Ojo con puertas blindadas o de varios cierres. Y comprueba que el modelo sale en la web de Home Assistant o en la lista de Zigbee2MQTT. Si quieres poder abrir con llave por fuera aunque la cerradura tenga la suya puesta por dentro, el bombín tiene que permitirlo (pregunta al fabricante).",
   "<b>Un ejemplo documentado:</b> Home Assistant certificó varias cerraduras Nuki por Matter sobre Thread («Works with Home Assistant»). Para montarlas y activar Matter hace falta la app de Nuki; después, el día a día va en local.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · En la puerta.</b> Lee el manual y trabaja con la puerta abierta, para no quedarte fuera.",
   "Si va <b>por dentro</b>: limpia, fija la base con su adhesivo o tornillos y encaja el motor. Si <b>cambia el bombín</b>: afloja el tornillo del canto, saca el viejo y mete el nuevo. Si dudas, cerrajero.",
   "Pon pilas nuevas del tipo indicado. Guarda una <b>llave física</b> de respaldo fuera de casa (con alguien de confianza). Prueba varias veces a mano.",
   "<b>Parte 2 · En Home Assistant.</b> <b>Matter:</b> <i>Ajustes → Dispositivos y servicios</i>, añadir dispositivo Matter y escanear el QR con la app del móvil.",
   "<b>Zigbee:</b> con ZHA o Zigbee2MQTT, pulsa «permitir unirse» y empareja cerca de la antena (<a href=\"https://frikilabs.com/#/ficha/z2m-no-empareja\">si falla</a>). <b>Bluetooth:</b> integración Bluetooth y, si queda lejos, un <a href=\"https://frikilabs.com/#/ficha/ha-bluetooth-proxy\">proxy</a>.",
   "Tendrás una entidad <code>lock</code> (cerrada, abierta, atascada). Crea un aviso de <b>batería baja</b> con su entidad de batería. <b>Seguridad:</b> no abras puertos del router; desde fuera, VPN como Tailscale (<a href=\"https://frikilabs.com/#/ficha/ha-acceso-remoto\">ficha</a>). Activa 2FA en las cuentas de Home Assistant. Nada de abrir la puerta sola sin confirmar."
  ],
  "requisitos": {
   "hardware": [
    "Cerradura compatible con tu puerta, pilas y llave de respaldo"
   ],
   "software": [
    "Home Assistant con Matter, ZHA/Zigbee2MQTT o Bluetooth"
   ]
  },
  "compatibilidad": [
   "Según modelo: compruébalo antes de comprar"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 24-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Entidad Lock (cerraduras)",
    "url": "https://www.home-assistant.io/integrations/lock/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Nuki se une a «Works with Home Assistant»",
    "url": "https://www.home-assistant.io/blog/2025/07/03/nuki-joins-works-with-home-assistant/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración Matter",
    "url": "https://www.home-assistant.io/integrations/matter/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA (Zigbee)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — Dispositivos compatibles",
    "url": "https://www.zigbee2mqtt.io/supported-devices/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Verificación en dos pasos (MFA)",
    "url": "https://www.home-assistant.io/docs/authentication/multi-factor-auth/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-24",
  "relacionado": [
   {
    "id": "matter-no-empareja",
    "por": "Si la cerradura Matter no se empareja."
   },
   {
    "id": "ha-acceso-remoto",
    "por": "Para abrir desde fuera sin exponer Home Assistant."
   },
   {
    "id": "ciber-ha-seguro",
    "por": "Lo básico para proteger Home Assistant antes de meter la puerta."
   }
  ],
  "videos": [
   {
    "id": "uIkFaf-p7-k",
    "titulo": "La forma más rápida de integrar Nuki en Home Assistant",
    "autor": "Luis del Valle",
    "canal": "https://www.youtube.com/@HomeAssistantFacil"
   }
  ]
 },
 {
  "id": "novatos-sensor-puerta",
  "titulo": "Sensor de puerta y ventana con Home Assistant: pegar, emparejar y primer aviso (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "sensor puerta",
   "sensor ventana",
   "contacto",
   "zigbee",
   "aviso",
   "temperatura"
  ],
  "sinonimos": [
   "sensor apertura puerta",
   "sensor magnetico",
   "sensor de contacto",
   "sensor ventana abierta",
   "aviso puerta abierta",
   "sensr puerta zigbee",
   "sensor temperatura habitacion"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres saber si una puerta o ventana se ha quedado abierta, y que Home Assistant te avise. Es el sensor más fácil para empezar: primero se coloca y luego se conecta.",
  "diagnostico": [
   "Son dos piezas. Una lleva un imán. Cuando se separan, el sensor dice «abierto». Casi todos van a pila y hablan Zigbee.",
   "<b>Antes de comprar:</b> necesitas una antena Zigbee en Home Assistant (ZHA o Zigbee2MQTT). Mira que el modelo salga en la lista de Zigbee2MQTT. Muchos traen también temperatura; sirve para el aviso de «ventila».",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Colocarlo.</b> Empareja primero (Parte 2) y prueba en la mesa. Así no pegas algo que no funciona.",
   "Pon la pieza grande en el marco y la del imán en la hoja de la puerta o ventana, alineadas y muy juntas (mira la distancia máxima en el manual).",
   "Limpia con alcohol, deja secar y pega con el adhesivo que trae. Abre y cierra varias veces.",
   "<b>Parte 2 · En Home Assistant.</b> En ZHA o Zigbee2MQTT pulsa «añadir dispositivo» o «permitir unirse». Mantén el botón del sensor hasta que parpadee, cerca de la antena.",
   "Aparece un sensor de tipo puerta, ventana o apertura (<code>binary_sensor</code>), y a menudo uno de batería. Si no empareja: <a href=\"https://frikilabs.com/#/ficha/z2m-no-empareja\">ficha</a>.",
   "<b>Primer aviso:</b> <i>Ajustes → Automatizaciones → Crear</i>. Cuando el sensor pase a «abierto», enviar notificación a tu móvil (app de Home Assistant). Añade otra para batería baja.",
   "Si va lento o se desconecta, mira la <a href=\"https://frikilabs.com/#/ficha/zha-sensor-pila\">ficha de sensores a pila</a>."
  ],
  "requisitos": {
   "hardware": [
    "Sensor de puerta Zigbee compatible",
    "Antena Zigbee en Home Assistant"
   ],
   "software": [
    "Home Assistant con ZHA o Zigbee2MQTT",
    "App de Home Assistant en el móvil"
   ]
  },
  "compatibilidad": [
   "Según modelo: compruébalo en la lista de Zigbee2MQTT"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 24-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Sensores binarios (puerta, ventana, apertura)",
    "url": "https://www.home-assistant.io/integrations/binary_sensor/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA (Zigbee)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — Dispositivos compatibles",
    "url": "https://www.zigbee2mqtt.io/supported-devices/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — App del móvil y notificaciones",
    "url": "https://www.home-assistant.io/integrations/mobile_app/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-24",
  "videos": [
   {
    "id": "lIgstjlGwUM",
    "titulo": "Estos sensores Zigbee a pilas pueden revolucionar tu sistema domótico con Home Assistant",
    "autor": "Luis del Valle",
    "canal": "https://www.youtube.com/@HomeAssistantFacil"
   }
  ],
  "relacionado": [
   {
    "id": "zha-sensor-pila",
    "por": "Si el sensor deja de responder tras cambiar la pila."
   },
   {
    "id": "z2m-no-empareja",
    "por": "Si no consigues emparejarlo."
   },
   {
    "id": "novatos-sensor-presencia",
    "por": "El siguiente sensor: saber si hay alguien en la habitación."
   }
  ],
  "materiales": [
   {
    "nombre": "Sensor de puerta Zigbee compatible",
    "nota": "dos piezas: sensor e imán"
   },
   {
    "nombre": "Antena Zigbee en Home Assistant"
   },
   {
    "nombre": "Alcohol y un trapo",
    "nota": "para limpiar antes de pegar"
   }
  ]
 },
 {
  "id": "novatos-sensor-presencia",
  "titulo": "Sensor de presencia con Home Assistant: dónde ponerlo y cómo integrarlo (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "presencia",
   "mmwave",
   "ld2410",
   "esphome",
   "movimiento"
  ],
  "sinonimos": [
   "sensor presencia",
   "sensor de ocupacion",
   "mmwave",
   "radar presencia",
   "sensor presencia techo o pared",
   "presnecia",
   "luz se apaga sentado"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres que la luz no se apague mientras estás quieto en el sofá. Un sensor de movimiento normal no te «ve» si no te mueves; uno de presencia (radar mmWave) sí. Primero se coloca y luego se integra.",
  "diagnostico": [
   "<b>Movimiento o presencia:</b> el de movimiento (PIR) detecta cuando pasas. El de presencia por radar detecta también si estás quieto. Para pasillos vale el primero; para salón u oficina, el segundo.",
   "<b>Cómo hablan:</b> muchos de radar llevan un chip como el LD2410 y funcionan con ESPHome, que se integra en local. También hay de Zigbee: comprueba el modelo en Zigbee2MQTT.",
   "<b>Techo o pared:</b> depende del modelo; sigue lo que diga su fabricante. Lo que sí vale siempre: no lo apuntes a ventiladores, cortinas que se mueven o radiadores.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Colocarlo.</b> No taladres aún. Empareja y prueba con cinta adhesiva unos días.",
   "Enchúfalo o pon pilas según el modelo. Muchos de radar van por USB y necesitan un enchufe cerca.",
   "Apúntalo a la zona donde estás (sofá, mesa). Siéntate quieto y mira si sigue marcando «presencia». Cuando acierte, fíjalo.",
   "<b>Parte 2 · En Home Assistant.</b> <b>ESPHome:</b> si está en tu red, Home Assistant suele descubrirlo solo en <i>Ajustes → Dispositivos y servicios</i>; pulsa «configurar».",
   "<b>Zigbee:</b> empareja en ZHA o Zigbee2MQTT como cualquier sensor.",
   "Verás un sensor de presencia u ocupación. Automatización: con presencia, enciende la luz; sin presencia durante unos minutos, apágala.",
   "¿Detecta a nadie? Ajusta distancia y sensibilidad: <a href=\"https://frikilabs.com/#/ficha/ld2410-falsas-presencias\">ficha de falsas presencias</a>."
  ],
  "requisitos": {
   "hardware": [
    "Sensor de presencia compatible (ESPHome o Zigbee)",
    "Enchufe USB cerca si no va a pilas"
   ],
   "software": [
    "Home Assistant con ESPHome o ZHA/Zigbee2MQTT"
   ]
  },
  "compatibilidad": [
   "Según modelo: compruébalo antes de comprar"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 24-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración ESPHome",
    "url": "https://www.home-assistant.io/integrations/esphome/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "ESPHome — Sensor de presencia LD2410",
    "url": "https://esphome.io/components/sensor/ld2410/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Sensores binarios (presencia, ocupación)",
    "url": "https://www.home-assistant.io/integrations/binary_sensor/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — Dispositivos compatibles",
    "url": "https://www.zigbee2mqtt.io/supported-devices/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-24",
  "relacionado": [
   {
    "id": "ld2410-falsas-presencias",
    "por": "Si detecta gente cuando no hay nadie."
   },
   {
    "id": "aqara-movimiento-ciego-60s",
    "por": "La diferencia con un sensor de movimiento normal, con un caso real."
   },
   {
    "id": "novatos-sensor-puerta",
    "por": "Otro sensor fácil para empezar."
   }
  ]
 },
 {
  "id": "aqara-movimiento-ciego-60s",
  "titulo": "El sensor de movimiento Aqara no detecta durante un minuto y la luz se apaga contigo dentro",
  "categoria": "homeassistant",
  "sub": "zigbee",
  "tags": [
   "aqara",
   "rtcgq11lm",
   "movimiento",
   "pir",
   "zigbee2mqtt",
   "occupancy",
   "automatizacion"
  ],
  "sinonimos": [
   "aqara movimiento tarda",
   "sensor movimiento aqara 60 segundos",
   "occupancy_timeout",
   "luz se apaga estando dentro",
   "sensor pir no detecta seguido",
   "aqara pir bloqueo",
   "rtcgq11lm retardo",
   "sensor movimiento xiaomi lento"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tu sensor de movimiento Aqara (RTCGQ11LM) detecta la primera vez, pero luego pasa un rato sin enterarse de nada, o la automatización apaga la luz aunque sigas en la habitación.",
  "diagnostico": [
   "Es como funciona el aparato: según Zigbee2MQTT, después de detectar movimiento <b>ignora cualquier movimiento durante 60 segundos exactos</b>. Si después sigue habiendo movimiento, manda otro aviso y vuelve a «dormir» otro minuto.",
   "Si <code>occupancy_timeout</code> está por debajo de 60 s, el estado vuelve a «sin movimiento» mientras el sensor aún está ciego y la luz se apaga contigo dentro.",
   "Si tampoco llega el primer aviso, el problema es otro: señal, pila o emparejado (mira las fichas enlazadas abajo)."
  ],
  "solucion": [
   "En Zigbee2MQTT, en la configuración de ese aparato, deja <code>occupancy_timeout</code> en 90 s (el valor por defecto) o más, nunca menos de 60. Así queda margen tras el minuto ciego para recibir el siguiente aviso.",
   "En la automatización de Home Assistant, apaga la luz cuando el sensor lleve «sin movimiento» un tiempo (por ejemplo, con el «durante» del disparador) en vez de justo al cambiar de estado.",
   "Si necesitas saber cuánto rato lleva vacía la habitación, usa la opción <code>no_occupancy_since</code> (por ejemplo <code>[10, 60]</code>).",
   "Zigbee2MQTT indica que ese minuto de bloqueo solo se quita modificando el hardware; no lo hagas si no sabes soldar y asume que pierdes la garantía.",
   "Si ni siquiera llega la primera detección: revisa la <a href=\"https://frikilabs.com/#/ficha/ha-automatizacion-no-dispara\">ficha de automatización que no se dispara</a> y la <a href=\"https://frikilabs.com/#/ficha/zha-sensor-pila\">ficha de sensores de pila que se desconectan</a>."
  ],
  "requisitos": {
   "hardware": [
    "Aqara RTCGQ11LM",
    "Coordinador Zigbee"
   ],
   "software": [
    "Home Assistant",
    "Zigbee2MQTT (las opciones citadas son de Zigbee2MQTT)"
   ]
  },
  "compatibilidad": [
   "Aqara RTCGQ11LM con Zigbee2MQTT; en ZHA el bloqueo de 60 s del sensor es el mismo, pero las opciones tienen otro nombre"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 24-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Zigbee2MQTT — Aqara RTCGQ11LM: nota sobre occupancy_timeout y opciones",
    "url": "https://www.zigbee2mqtt.io/devices/RTCGQ11LM.html",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-24"
 },
 {
  "id": "ciber-camara-wifi-segura",
  "titulo": "Cámara wifi en casa o vigilabebés: cómo evitar que alguien de fuera la vea",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "camara",
   "camara ip",
   "vigilabebes",
   "iot",
   "upnp",
   "router",
   "contraseña",
   "novato"
  ],
  "sinonimos": [
   "proteger camara ip",
   "camara wifi hackeada",
   "me espian por la camara",
   "vigilabebes seguro",
   "camara vigilancia casa segura",
   "contraseña camara por defecto",
   "desactivar upnp",
   "camara ip internet",
   "baby monitor seguro",
   "webcam casa segura"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes (o vas a poner) una cámara wifi, de vigilancia o un vigilabebés en casa y te preocupa que alguien de fuera pueda ver o escuchar lo que graba.",
  "diagnostico": [
   "Lo que más facilita que entren: dejar la <b>contraseña que trae de fábrica</b> o repetir una que ya usas en otro sitio. Las de fábrica son fáciles de encontrar.",
   "Una cámara <b>sin actualizar</b> puede tener fallos ya conocidos y corregidos por el fabricante.",
   "El <b>acceso remoto</b> por internet y las funciones del router <b>UPnP</b> y <b>redirección de puertos</b> pueden dejar la cámara al alcance de cualquiera (lo avisa el NCSC, la agencia de ciberseguridad británica).",
   "Si la cámara comparte red wifi con tus ordenadores y móviles, un fallo en ella deja más cerca tus otros aparatos (INCIBE)."
  ],
  "solucion": [
   "<b>Cambia la contraseña de fábrica</b> por una larga y única (el NCSC sugiere unir tres palabras al azar) y guárdala en un gestor (<a href=\"https://frikilabs.com/#/ficha/ciber-contrasenas-fuertes\">ficha de contraseñas fuertes</a>). Normalmente se hace en la app de la cámara; en las antiguas, escribiendo su IP en el navegador (la ves en la lista de aparatos conectados de tu router).",
   "<b>Activa la verificación en dos pasos</b> en la cuenta de la app o la nube de la cámara si la ofrece (<a href=\"https://frikilabs.com/#/ficha/ciber-activar-2fa\">ficha de 2FA</a>).",
   "<b>Actualiza el firmware</b> y activa las actualizaciones automáticas si existen; en la app suele aparecer como «firmware», «software» o «actualizar» (<a href=\"https://frikilabs.com/#/ficha/ciber-actualizaciones\">ficha de actualizaciones</a>).",
   "<b>Desactiva lo que no uses</b>: si no necesitas ver la cámara desde fuera de casa, quita el acceso remoto, y apaga el micrófono si no lo usas. Ojo: el NCSC avisa de que quitar el acceso remoto puede quitar también los avisos de movimiento en el móvil o la integración con Alexa, Google o Siri.",
   "<b>Revisa el router</b>: desactiva UPnP y borra las redirecciones de puertos que no necesites (<a href=\"https://frikilabs.com/#/ficha/ciber-router-wps-puertos\">ficha de WPS y puertos del router</a>). Algunos juegos o servidores multimedia pueden dejar de funcionar sin UPnP; decide tú qué te compensa.",
   "<b>Pon la cámara en una red aparte</b> para aparatos conectados, como la red de invitados (<a href=\"https://frikilabs.com/#/ficha/ciber-red-invitados-iot\">ficha de red de invitados</a>).",
   "Compra marcas que den actualizaciones y soporte, y antes de vender o tirar la cámara, <b>restablécela de fábrica</b> y quítala de tu cuenta (<a href=\"https://frikilabs.com/#/ficha/ciber-compraventa-segunda-mano\">ficha de segunda mano</a>).",
   "Si notas algo raro (la cámara se mueve sola, voces, accesos que no reconoces): cambia la contraseña, cierra sesiones en la app, mira <a href=\"https://frikilabs.com/#/ficha/ciber-quien-conectado-wifi\">quién está conectado a tu wifi</a> y llama al 017 de INCIBE si necesitas ayuda.",
   "Solo con tus propias cámaras: entrar en una cámara ajena sin permiso es delito, aunque tenga la contraseña de fábrica."
  ],
  "requisitos": {
   "hardware": [
    "Tu cámara wifi o vigilabebés",
    "Acceso al router de casa"
   ],
   "software": [
    "App o panel web de la cámara"
   ]
  },
  "compatibilidad": [
   "Cualquier cámara wifi, cámara IP o vigilabebés conectado a internet; los nombres de los menús cambian según la marca"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 24-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "INCIBE — Protege tu hogar inteligente: riesgos y recomendaciones",
    "url": "https://www.incibe.es/ciudadania/blog/protege-tu-hogar-inteligente-riesgos-y-recomendaciones",
    "tipo": "oficial"
   },
   {
    "titulo": "INCIBE — Dispositivos IoT (Internet de las cosas)",
    "url": "https://www.incibe.es/ciudadania/tematicas/dispositivos-iot",
    "tipo": "oficial"
   },
   {
    "titulo": "NCSC (Reino Unido) — Smart security cameras: using them safely in your home",
    "url": "https://www.ncsc.gov.uk/guidance/smart-security-cameras-using-them-safely-in-your-home",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-24"
 },
 {
  "id": "novatos-mirilla-digital",
  "titulo": "Mirilla digital y timbre con cámara en Home Assistant, en local (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "mirilla",
   "timbre",
   "videoportero",
   "camara",
   "puerta",
   "onvif"
  ],
  "sinonimos": [
   "mirilla electronica",
   "mirilla con camara",
   "timbre con video",
   "videotimbre",
   "timbre inteligente",
   "mirila digital",
   "doorbell"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres ver quién llama sin abrir la puerta y que te llegue un aviso al móvil. Puedes hacerlo con una mirilla digital (una cámara en el agujero de la mirilla) o con un timbre con cámara. Primero se monta y luego se conecta a Home Assistant, sin depender de la nube.",
  "diagnostico": [
   "<b>Mirilla o timbre:</b> la mirilla digital va en el agujero que ya tiene tu puerta y suele ir a pila. El timbre con cámara va fuera, en la pared, a pila o con cable.",
   "<b>Antes de comprar:</b> busca tu modelo en la documentación oficial de Home Assistant. Que diga «local» y que funcione sin cuenta en la nube. Si solo funciona con la app del fabricante, no lo podrás usar en local.",
   "<b>Dos vías locales documentadas:</b> cámaras y timbres con integración propia (por ejemplo, la de Reolink tiene un apartado de timbres) y cámaras compatibles con ONVIF, un estándar para ver la imagen en tu red.",
   "<b>En comunidad de vecinos:</b> la cámara no debe grabar el rellano ni la calle más de lo necesario. Pregunta antes de instalar si la zona es común.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Primero conéctalo a la wifi o al cable y pruébalo en la mesa. Así no montas algo que no funciona.",
   "<b>Mirilla:</b> desenrosca la mirilla vieja desde dentro. Mide el agujero y el grosor de la puerta y compáralos con el manual. Mete la pieza de la cámara por fuera y fíjala con la pieza de dentro.",
   "<b>Timbre:</b> ponlo a la altura que diga el manual, cerca de la puerta. Si va con cable y no sabes de electricidad, que lo conecte un profesional con la luz cortada.",
   "Carga la pila del todo antes de montarlo. Comprueba que la wifi llega bien a la puerta.",
   "<b>Parte 2 · En Home Assistant.</b> Ve a <i>Ajustes → Dispositivos y servicios → Añadir integración</i> y busca la integración de tu marca, o «ONVIF».",
   "Pon la IP, el usuario y la contraseña de la cámara. Cambia la contraseña de fábrica por una larga y única.",
   "Aparece una entidad de cámara. Los timbres compatibles suelen traer además el evento de «han llamado».",
   "<b>Primer aviso:</b> <i>Ajustes → Automatizaciones → Crear</i>. Cuando llamen al timbre, envía una notificación al móvil con la app de Home Assistant.",
   "<b>Seguridad:</b> no abras puertos del router para la cámara. Para verla fuera de casa usa un <a href=\"https://frikilabs.com/#/ficha/ha-acceso-remoto\">acceso remoto seguro</a> y mira la ficha de <a href=\"https://frikilabs.com/#/ficha/ciber-camara-wifi-segura\">cámara wifi segura</a>."
  ],
  "requisitos": {
   "hardware": [
    "Mirilla digital o timbre con cámara compatible con Home Assistant en local",
    "Buena wifi (o cable) en la puerta"
   ],
   "software": [
    "Home Assistant",
    "App de Home Assistant en el móvil"
   ]
  },
  "compatibilidad": [
   "Según modelo: compruébalo en la documentación oficial de Home Assistant"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 25-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración Reolink (cámaras y timbres)",
    "url": "https://www.home-assistant.io/integrations/reolink/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ONVIF",
    "url": "https://www.home-assistant.io/integrations/onvif/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Cámaras",
    "url": "https://www.home-assistant.io/integrations/camera/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Eventos (pulsación del timbre)",
    "url": "https://www.home-assistant.io/integrations/event/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — App del móvil y notificaciones",
    "url": "https://www.home-assistant.io/integrations/mobile_app/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-25",
  "relacionado": [
   {
    "id": "ciber-camara-wifi-segura",
    "por": "Cómo usar una cámara wifi sin riesgos."
   },
   {
    "id": "ha-acceso-remoto",
    "por": "Para ver la cámara fuera de casa sin abrir puertos."
   },
   {
    "id": "ciber-red-invitados-iot",
    "por": "Para poner la cámara en una red wifi aparte."
   }
  ],
  "videos": [
   {
    "id": "aTLElRFz1F0",
    "titulo": "Salí de casa y Frigate me mandó ESTO a Telegram",
    "autor": "Luis del Valle",
    "canal": "https://www.youtube.com/@HomeAssistantFacil"
   }
  ]
 },
 {
  "id": "novatos-domotica-desde-cero",
  "titulo": "Domótica desde cero: qué comprar primero y en qué orden (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "empezar",
   "primeros pasos",
   "zigbee",
   "home assistant green",
   "que comprar"
  ],
  "sinonimos": [
   "por donde empiezo domotica",
   "empezar domotica",
   "domotica principiantes",
   "que comprar primero home assistant",
   "domotica desde cero",
   "domotca desde cero",
   "primeros pasos domotica"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres empezar con la domótica y no sabes qué comprar primero. A mí me pasó lo mismo: la información estaba muy repartida. Aquí tienes un orden sencillo para no gastar de más. Primero se monta lo básico y luego se pone en marcha en Home Assistant.",
  "diagnostico": [
   "Primero el «cerebro» (Home Assistant), luego la antena Zigbee y después los aparatos, de uno en uno. Sin prisa.",
   "<b>Por qué Zigbee:</b> los aparatos gastan poca pila y funcionan en local, sin nube. Los que van a la corriente, como un enchufe, hacen de repetidor y mejoran la señal.",
   "<b>Orden sugerido:</b> 1) Home Assistant (por ejemplo, Home Assistant Green); 2) antena Zigbee con alargador USB; 3) enchufe Zigbee; 4) sensor de puerta; 5) sensor de temperatura; 6) botón; 7) sensor de movimiento.",
   "Antes de comprar, apunta qué te gustaría automatizar. Y compra solo lo que sirva para eso.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Pon el equipo de Home Assistant junto al router y conéctalo por cable. Enchúfalo a la corriente.",
   "Conecta la antena Zigbee con un alargador USB, lejos del equipo y de discos USB 3.0. Así hay menos interferencias (<a href=\"https://frikilabs.com/#/ficha/zigbee-interferencias\">ficha</a>).",
   "Pon el primer enchufe Zigbee a medio camino entre la antena y donde irán los sensores.",
   "<b>Parte 2 · En Home Assistant.</b> Sigue la <a href=\"https://frikilabs.com/#/ficha/ha-green-primeros-pasos\">guía de primeros pasos</a> y crea tu usuario.",
   "Añade la integración ZHA: <i>Ajustes → Dispositivos y servicios → Añadir integración → ZHA</i>, y elige tu antena. Usa solo una: ZHA o Zigbee2MQTT, no las dos (<a href=\"https://frikilabs.com/#/ficha/z2m-zha-dongle\">ficha</a>).",
   "Empareja primero el enchufe y después los demás, de uno en uno y cerca de la antena.",
   "Sigue con las guías de la serie: <a href=\"https://frikilabs.com/ficha/novatos-enchufe-inteligente/\">enchufe</a> y <a href=\"https://frikilabs.com/ficha/novatos-sensor-puerta/\">sensor de puerta</a>. Para aprender con calma, mira la <a href=\"https://frikilabs.com/cursos/ruta-novatos/\">ruta para novatos</a>."
  ],
  "requisitos": {
   "hardware": [
    "Equipo con Home Assistant (por ejemplo, Home Assistant Green)",
    "Antena Zigbee y alargador USB",
    "Primeros aparatos Zigbee"
   ],
   "software": [
    "Home Assistant con ZHA"
   ]
  },
  "compatibilidad": [
   "Aparatos Zigbee: compruébalo en la documentación de ZHA o en la lista de Zigbee2MQTT"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 25-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Primeros pasos",
    "url": "https://www.home-assistant.io/getting-started/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant Green",
    "url": "https://www.home-assistant.io/green/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA (Zigbee)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Cacharros IA — Qué dispositivos Zigbee comprar y cómo conectarlos a Home Assistant",
    "url": "https://cacharrosia.com/guias/que-dispositivos-zigbee-comprar-y-como-conectarlos-a-home-assistant/",
    "tipo": "comunidad",
    "lang": "es"
   }
  ],
  "publicado": "2026-10-25",
  "videos": [
   {
    "id": "RKLiQs6q364",
    "titulo": "Guía Introducción a Home Assistant desde Cero",
    "autor": "Luis del Valle",
    "canal": "https://www.youtube.com/@HomeAssistantFacil"
   }
  ],
  "relacionado": [
   {
    "id": "novatos-enchufe-inteligente",
    "por": "El primer aparato que te recomiendo montar."
   },
   {
    "id": "ha-green-primeros-pasos",
    "por": "Si empiezas con Home Assistant Green, cómo arrancarlo."
   },
   {
    "id": "zigbee-interferencias",
    "por": "Para que la antena Zigbee vaya bien desde el principio."
   }
  ],
  "materiales": [
   {
    "nombre": "Equipo con Home Assistant",
    "nota": "por ejemplo, Home Assistant Green"
   },
   {
    "nombre": "Antena Zigbee y alargador USB"
   },
   {
    "nombre": "Primeros aparatos Zigbee",
    "nota": "empieza por un enchufe, que además hace de repetidor"
   },
   {
    "nombre": "Cable de red",
    "nota": "para conectarlo al router"
   }
  ]
 },
 {
  "id": "novatos-enchufe-inteligente",
  "titulo": "Enchufe inteligente: tu primera automatización en 10 minutos (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "enchufe",
   "enchufe inteligente",
   "zigbee",
   "shelly",
   "automatizacion",
   "repetidor"
  ],
  "sinonimos": [
   "enchufe wifi",
   "enchufe zigbee",
   "smart plug",
   "enchufe domotico",
   "apagar a una hora",
   "enchufe intelignte",
   "primera automatizacion"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Para empezar, un enchufe inteligente es lo más fácil. Enciendes y apagas lo que tengas enchufado desde el móvil, o a la hora que quieras. Primero se enchufa bien y luego se conecta a Home Assistant.",
  "diagnostico": [
   "<b>Dos tipos locales:</b> enchufe Zigbee (con ZHA o Zigbee2MQTT) o enchufe Shelly por wifi (integración Shelly, en local).",
   "Si es Zigbee, además hace de repetidor. Ayuda a que los sensores a pila lleguen mejor a la antena.",
   "<b>Ojo con la potencia:</b> no enchufes aparatos que gasten más de lo que diga el fabricante. Estufas, hornos o calentadores suelen ser lo más delicado.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Enchúfalo directamente a la pared, sin regletas en cadena.",
   "Si es Zigbee, ponlo entre la antena y los sensores que estén lejos. Así hace de repetidor.",
   "Comprueba en la etiqueta o el manual la potencia máxima. Compárala con la del aparato que vas a enchufar.",
   "<b>Parte 2 · En Home Assistant.</b> <b>Zigbee:</b> en ZHA o Zigbee2MQTT pulsa «añadir dispositivo». Mantén el botón del enchufe hasta que parpadee.",
   "<b>Shelly:</b> conéctalo a tu wifi siguiendo su manual. Home Assistant suele detectarlo solo; si no, añade la integración «Shelly» con su IP.",
   "Aparece un interruptor (<code>switch</code>). Pruébalo desde la app de Home Assistant en el móvil.",
   "<b>Tu primera automatización:</b> <i>Ajustes → Automatizaciones → Crear</i>. Disparador: «Hora» (por ejemplo, a medianoche). Acción: apagar el enchufe. Guarda.",
   "Otra idea: apagarlo al salir de casa, usando la ubicación de la app del móvil."
  ],
  "requisitos": {
   "hardware": [
    "Enchufe Zigbee o Shelly con integración local",
    "Antena Zigbee (si es Zigbee)"
   ],
   "software": [
    "Home Assistant con ZHA, Zigbee2MQTT o la integración Shelly",
    "App de Home Assistant en el móvil"
   ]
  },
  "compatibilidad": [
   "Según modelo: compruébalo en la documentación oficial de Home Assistant o en la lista de Zigbee2MQTT"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 25-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Home Assistant — Integración Shelly",
    "url": "https://www.home-assistant.io/integrations/shelly/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA (Zigbee)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Interruptores (switch)",
    "url": "https://www.home-assistant.io/integrations/switch/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Editor de automatizaciones",
    "url": "https://www.home-assistant.io/docs/automation/editor/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Zigbee2MQTT — Dispositivos compatibles",
    "url": "https://www.zigbee2mqtt.io/supported-devices/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-25",
  "relacionado": [
   {
    "id": "novatos-domotica-desde-cero",
    "por": "Dónde encaja el enchufe en el orden de compra."
   },
   {
    "id": "novatos-interruptor-inteligente",
    "por": "El siguiente paso: la luz del techo."
   },
   {
    "id": "ha-automatizacion-no-dispara",
    "por": "Si tu primera automatización no se ejecuta."
   }
  ],
  "materiales": [
   {
    "nombre": "Enchufe inteligente Zigbee o Shelly",
    "nota": "que funcione en local con Home Assistant; mira su potencia máxima"
   },
   {
    "nombre": "Antena Zigbee",
    "nota": "solo si el enchufe es Zigbee"
   },
   {
    "nombre": "Home Assistant y su app en el móvil"
   }
  ]
 },
 {
  "id": "novatos-interruptor-inteligente",
  "titulo": "Interruptor de la luz inteligente con Shelly: con neutro, sin neutro y conmutadas (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "interruptor",
   "shelly",
   "neutro",
   "sin neutro",
   "conmutada",
   "luz"
  ],
  "sinonimos": [
   "interruptor sin neutro",
   "interruptor conmutado",
   "domotizar interruptor",
   "luz conmutada",
   "modulo detras del interruptor",
   "interuptor inteligente",
   "rele shelly"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Quieres encender la luz desde el móvil sin perder el interruptor de siempre. Se hace con un módulo pequeño que va detrás del interruptor. Lo primero es saber si tienes cable neutro. Después se instala y se conecta a Home Assistant.",
  "diagnostico": [
   "<b>⚡ Seguridad primero: esto es 230 V.</b> Baja el diferencial o el magnetotérmico del circuito y comprueba con un comprobador de tensión que no hay corriente. Si tienes cualquier duda, llama a un electricista (instalador autorizado). Usa solo el esquema oficial del manual de tu modelo.",
   "<b>Con neutro o sin neutro:</b> el neutro es un cable que no siempre llega a la caja del interruptor. Hay módulos que lo necesitan y otros que no. Shelly explica cuál elegir en su página oficial sobre interruptores sin neutro.",
   "<b>Cómo saberlo:</b> con la luz cortada, abre la caja y mira los cables. Si no lo tienes claro, no adivines: pregunta a un electricista.",
   "<b>Conmutadas</b> (la misma luz se enciende desde dos sitios): el cableado cambia. Conéctalo solo como diga el esquema oficial de tu modelo.",
   "<b>Antes de comprar:</b> mira en la ficha oficial del modelo si cabe en tu caja, si necesita neutro y la potencia máxima.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Corta la luz en el cuadro y comprueba que no hay tensión.",
   "Haz una foto de los cables antes de soltar nada.",
   "Abre el manual oficial de tu modelo en kb.shelly.cloud y busca el esquema que corresponde a tu caso (con neutro, sin neutro o conmutada).",
   "Conecta el módulo siguiendo ese esquema, sin cambiar nada. El interruptor de pared va a la entrada del módulo.",
   "Mete el módulo en la caja sin pellizcar cables, cierra y da la luz. Prueba el interruptor de pared.",
   "<b>Parte 2 · En Home Assistant.</b> Conecta el Shelly a tu wifi como dice su manual.",
   "Home Assistant suele detectarlo solo. Si no, en <i>Ajustes → Dispositivos y servicios → Añadir integración</i> busca «Shelly» y pon su IP. Funciona en local.",
   "Aparece como interruptor o luz. Pruébalo desde el móvil.",
   "<b>Primera automatización:</b> apagar la luz a una hora, o encenderla al llegar a casa. Guía básica en la del <a href=\"https://frikilabs.com/ficha/novatos-enchufe-inteligente/\">enchufe inteligente</a>."
  ],
  "requisitos": {
   "hardware": [
    "Módulo Shelly adecuado a tu caso (con o sin neutro)",
    "Comprobador de tensión",
    "Caja con espacio detrás del interruptor"
   ],
   "software": [
    "Home Assistant con la integración Shelly"
   ]
  },
  "compatibilidad": [
   "Según modelo: mira neutro, tamaño y potencia en su ficha oficial"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 25-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Shelly — Interruptores de luz sin cable neutro",
    "url": "https://www.shelly.com/es/pages/smart-light-switches-without-a-neutral-wire",
    "tipo": "oficial",
    "lang": "es"
   },
   {
    "titulo": "Shelly Knowledge Base — Shelly 1 Gen3 (con neutro)",
    "url": "https://kb.shelly.cloud/knowledge-base/shelly-1-gen3",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Shelly Knowledge Base — Shelly 1L (sin neutro)",
    "url": "https://kb.shelly.cloud/knowledge-base/shelly-1l",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración Shelly (local)",
    "url": "https://www.home-assistant.io/integrations/shelly/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Luces",
    "url": "https://www.home-assistant.io/integrations/light/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-25",
  "relacionado": [
   {
    "id": "novatos-persianas-shelly",
    "por": "Mismo tipo de módulo y misma seguridad con los 230 V."
   },
   {
    "id": "novatos-enchufe-inteligente",
    "por": "Más fácil, sin tocar cables, si aún no te atreves."
   },
   {
    "id": "ciber-red-invitados-iot",
    "por": "Para poner los Shelly en una red wifi aparte."
   }
  ]
 },
 {
  "id": "novatos-persianas-shelly",
  "titulo": "Persianas motorizadas con Shelly y Home Assistant paso a paso (novatos)",
  "categoria": "homeassistant",
  "sub": "novatos",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "persianas",
   "shelly",
   "2pm",
   "cover",
   "motor",
   "local"
  ],
  "sinonimos": [
   "domotizar persianas",
   "persiana electrica",
   "shelly 2pm persiana",
   "subir persianas a una hora",
   "persianas home assistant",
   "persiaas shelly",
   "toldo"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "Tienes persianas con motor y un botón para subir y bajar. Quieres moverlas desde el móvil o a una hora fija. Se hace con un módulo Shelly detrás del botón: primero se instala y luego se conecta a Home Assistant.",
  "diagnostico": [
   "<b>⚡ Seguridad primero: esto es 230 V.</b> Baja el diferencial o el magnetotérmico del circuito y comprueba con un comprobador de tensión que no hay corriente. Si tienes cualquier duda, llama a un electricista (instalador autorizado). Usa solo el esquema oficial del manual de tu modelo.",
   "Solo vale para persianas que ya tienen motor eléctrico. Si tu persiana es de cinta (manual), esta guía no te sirve.",
   "<b>El módulo:</b> uno de dos canales con modo persiana, como el Shelly 2PM. Shelly tiene un vídeo oficial de instalación para persianas.",
   "<b>Antes de comprar:</b> mira en el manual oficial la potencia máxima y que el motor sea compatible.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Corta la luz en el cuadro y comprueba que no hay tensión.",
   "Haz una foto de los cables del botón antes de soltar nada.",
   "Abre el manual oficial de tu modelo y mira el vídeo de Shelly para persianas. Conecta solo como dice ese esquema.",
   "Mete el módulo en la caja, cierra y da la luz. Prueba subir y bajar con el botón de pared.",
   "<b>Parte 2 · En Home Assistant.</b> Conecta el Shelly a tu wifi y, en su configuración, pon el modo persiana («Cover mode»), como explica el manual.",
   "Añádelo en Home Assistant con la integración «Shelly». Funciona en local.",
   "Aparece como persiana (<code>cover</code>), con botones de subir, bajar y parar. Pruébalo desde el móvil.",
   "<b>Primera automatización:</b> <i>Ajustes → Automatizaciones → Crear</i>. Disparador: una hora o la salida del sol. Acción: subir la persiana.",
   "Si sube cuando le dices bajar, no toques cables con tensión: revisa la configuración según el manual."
  ],
  "requisitos": {
   "hardware": [
    "Persiana con motor y botón de pared",
    "Módulo Shelly con modo persiana",
    "Comprobador de tensión"
   ],
   "software": [
    "Home Assistant con la integración Shelly"
   ]
  },
  "compatibilidad": [
   "Según modelo: mira potencia y esquema en su manual oficial"
  ],
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 25-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "fuentes": [
   {
    "titulo": "Shelly — Vídeo de instalación Shelly 2PM Gen3 para persianas",
    "url": "https://support.shelly.cloud/es/support/solutions/articles/103000316318",
    "tipo": "oficial",
    "lang": "es"
   },
   {
    "titulo": "Shelly Knowledge Base — Shelly 2PM Gen3",
    "url": "https://kb.shelly.cloud/knowledge-base/shelly-2pm-gen3",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración Shelly (local)",
    "url": "https://www.home-assistant.io/integrations/shelly/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Persianas y cortinas (cover)",
    "url": "https://www.home-assistant.io/integrations/cover/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-25",
  "relacionado": [
   {
    "id": "novatos-interruptor-inteligente",
    "por": "Mismo módulo detrás del interruptor, para la luz."
   },
   {
    "id": "ha-automatizacion-no-dispara",
    "por": "Si la persiana no sube a la hora que pusiste."
   },
   {
    "id": "ciber-red-invitados-iot",
    "por": "Para poner los Shelly en una red wifi aparte."
   }
  ]
 },
 {
  "categoria": "homeassistant",
  "sub": "novatos",
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 27-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "publicado": "2026-10-27",
  "id": "novatos-consumo-luz",
  "titulo": "¿Cuánto gastas de luz? Consumo de casa y precio por horas (novatos)",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "energia",
   "consumo",
   "shelly",
   "shelly-em",
   "pvpc",
   "factura",
   "local"
  ],
  "sinonimos": [
   "consumo de luz",
   "medir consumo casa",
   "shelly em home assistant",
   "panel energia",
   "precio luz por horas",
   "pvpc home assistant",
   "factura de la luz",
   "comsumo luz",
   "hora mas barata lavadora"
  ],
  "problema": "Quieres saber cuánto consume tu casa y a qué horas sale más barata la luz. Se mide con un Shelly EM en el cuadro y Home Assistant lo junta con el precio por horas (PVPC) en su panel de Energía.",
  "diagnostico": [
   "<b>⚡ Seguridad primero: esto es 230 V.</b> El Shelly EM va en el cuadro eléctrico. Si no lo has hecho nunca, que lo monte un electricista (instalador autorizado). Si lo haces tú: baja el interruptor general, comprueba con un comprobador de tensión que no hay corriente y sigue solo el esquema del manual oficial.",
   "<b>Sin tocar el cuadro:</b> un enchufe con medición te dice lo que gasta un aparato concreto (la nevera, el termo). No mide la casa entera, pero es un buen comienzo. Mira la <a href=\"https://frikilabs.com/ficha/novatos-enchufe-inteligente/\">guía del enchufe</a>.",
   "<b>La medida es local:</b> la integración Shelly de Home Assistant es «Local Push». Tus datos de consumo no salen de casa.",
   "<b>El precio, con honestidad:</b> la integración PVPC es «Cloud Polling» porque descarga de internet los precios públicos de Red Eléctrica (REE). Solo baja precios; no envía tus datos de consumo a nadie.",
   "<b>Ojo:</b> el precio PVPC es el término de energía por hora, sin impuestos, y solo sirve si tienes la tarifa regulada PVPC (hasta 15 kW). No es tu factura entera.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Con el general bajado y sin tensión comprobada, se coloca el Shelly EM en el cuadro y la pinza abraza el cable de fase de entrada, como indica el manual. La pinza no corta el cable.",
   "Da la luz y conecta el Shelly a tu wifi con sus instrucciones oficiales.",
   "<b>Parte 2 · En Home Assistant.</b> <i>Ajustes → Dispositivos y servicios</i>: añade la integración «Shelly». Verás la potencia en vatios y la energía en kWh.",
   "Abre <i>Ajustes → Paneles → Energía</i> y en «Red eléctrica» elige el sensor de energía (kWh) del Shelly.",
   "Añade la integración «PVPC Hourly Pricing» y elige la tarifa 2.0TD (o la de Ceuta/Melilla).",
   "Espera un día: el panel Energía empieza a dibujar el consumo por horas.",
   "<b>Primera automatización:</b> disparador, cuando empieza la hora más barata del día (míralo en los atributos del sensor PVPC). Acción: aviso al móvil «ahora es buen momento para la lavadora»."
  ],
  "exito": "ves en el panel Energía cuánto gasta tu casa cada hora y te llega un aviso en las horas baratas.",
  "requisitos": {
   "hardware": [
    "Shelly EM con su pinza",
    "Comprobador de tensión (o un electricista)"
   ],
   "software": [
    "Home Assistant con las integraciones Shelly y PVPC Hourly Pricing"
   ]
  },
  "compatibilidad": [
   "PVPC: solo España y tarifa regulada PVPC"
  ],
  "materiales": [
   {
    "nombre": "Shelly EM con pinza",
    "nota": "va en el cuadro: mejor que lo monte un electricista"
   },
   {
    "nombre": "Comprobador de tensión"
   },
   {
    "nombre": "Enchufe con medición",
    "nota": "alternativa sin tocar el cuadro"
   }
  ],
  "fuentes": [
   {
    "titulo": "Shelly Knowledge Base — Shelly EM",
    "url": "https://kb.shelly.cloud/knowledge-base/shelly-em",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración Shelly (Local Push)",
    "url": "https://www.home-assistant.io/integrations/shelly/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Panel de Energía",
    "url": "https://www.home-assistant.io/docs/energy/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Conectar la red eléctrica (pinza CT)",
    "url": "https://www.home-assistant.io/docs/energy/electricity-grid/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — PVPC Hourly Pricing (Cloud Polling)",
    "url": "https://www.home-assistant.io/integrations/pvpc_hourly_pricing/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "relacionado": [
   {
    "id": "novatos-enchufe-inteligente",
    "por": "Medir un solo aparato sin tocar el cuadro."
   },
   {
    "id": "novatos-persianas-shelly",
    "por": "Otro Shelly, esta vez para las persianas."
   }
  ]
 },
 {
  "categoria": "homeassistant",
  "sub": "novatos",
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 27-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "publicado": "2026-10-27",
  "id": "novatos-valvulas-radiador",
  "titulo": "Calefacción: válvulas termostáticas inteligentes en los radiadores (novatos)",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "calefaccion",
   "radiador",
   "valvula",
   "trv",
   "sonoff",
   "trvzb",
   "zigbee",
   "zha",
   "local"
  ],
  "sinonimos": [
   "valvula termostatica",
   "cabezal termostatico inteligente",
   "sonoff trvzb",
   "radiadores home assistant",
   "calefaccion por habitaciones",
   "valbula termostatica",
   "trv zigbee"
  ],
  "problema": "Quieres que cada radiador caliente solo cuando hace falta y por habitaciones. Se cambia el cabezal termostático por una válvula Zigbee, como la SONOFF TRVZB, y se maneja desde Home Assistant con ZHA, en local.",
  "diagnostico": [
   "<b>Antes de comprar:</b> mira que tu radiador tenga cabezal termostático. La TRVZB encaja en válvulas de rosca M30 x 1,5 y trae adaptadores para otras marcas, según SONOFF.",
   "No hay que vaciar el radiador: solo se cambia el cabezal de arriba. Hazlo con la calefacción apagada y el radiador frío.",
   "<b>El truco para novatos:</b> la válvula mide la temperatura pegada al radiador, así que lee de más. Pon un sensor de temperatura en la otra punta de la habitación y decide con ese.",
   "<b>Local:</b> ZHA es «Local Polling»: no usa internet. En ZHA el clima (<code>climate</code>) aún figura como beta.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Con el radiador frío, desenrosca el cabezal viejo. Si la rosca no es M30 x 1,5, usa el adaptador que corresponda.",
   "Pon las pilas, enrosca la válvula a mano y deja que haga su ajuste inicial como dice el manual.",
   "<b>Parte 2 · En Home Assistant.</b> ZHA → «añadir dispositivo» y empareja la válvula como indica su manual.",
   "Aparece como termostato (<code>climate</code>). Prueba a subir y bajar la temperatura objetivo.",
   "Pon un sensor de temperatura en la habitación y compáralo con lo que marca la válvula.",
   "<b>Primera automatización:</b> si el <a href=\"https://frikilabs.com/ficha/novatos-sensor-puerta/\">sensor de la ventana</a> marca abierta más de 2 minutos, baja la válvula a 15 °C; al cerrar, vuelve a la de antes.",
   "Después, un horario por habitación: más calor en el salón por la tarde y en los dormitorios antes de dormir."
  ],
  "exito": "cada radiador sigue su horario desde Home Assistant y se baja solo si abres la ventana.",
  "requisitos": {
   "hardware": [
    "Válvula Zigbee (por ejemplo SONOFF TRVZB)",
    "Antena Zigbee",
    "Sensor de temperatura de habitación"
   ],
   "software": [
    "Home Assistant con ZHA"
   ]
  },
  "compatibilidad": [
   "Radiadores con cabezal termostático; rosca M30 x 1,5 o adaptador"
  ],
  "materiales": [
   {
    "nombre": "Válvula termostática Zigbee",
    "nota": "una por radiador"
   },
   {
    "nombre": "Sensor de temperatura de habitación"
   },
   {
    "nombre": "Antena Zigbee en Home Assistant"
   }
  ],
  "fuentes": [
   {
    "titulo": "SONOFF — Válvula termostática Zigbee TRVZB",
    "url": "https://sonoff.tech/en-us/products/sonoff-zigbee-thermostatic-radiator-valve",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA (Local Polling)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Termostatos (climate)",
    "url": "https://www.home-assistant.io/integrations/climate/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "relacionado": [
   {
    "id": "novatos-temperatura-humedad",
    "por": "El sensor de habitación que manda de verdad."
   },
   {
    "id": "novatos-sensor-puerta",
    "por": "Para cortar la calefacción con la ventana abierta."
   },
   {
    "id": "novatos-zigbee-wifi-matter",
    "por": "Si aún no tienes antena Zigbee."
   },
   {
    "id": "novatos-estufa-enchufe",
    "por": "Si calientas con estufa o radiador eléctrico."
   }
  ]
 },
 {
  "categoria": "homeassistant",
  "sub": "novatos",
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 27-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "publicado": "2026-10-27",
  "id": "novatos-sensor-fugas",
  "titulo": "Sensor de fugas de agua: aviso antes de que se inunde la cocina (novatos)",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "fugas",
   "agua",
   "inundacion",
   "sonoff",
   "snzb-05p",
   "zigbee",
   "zha",
   "local"
  ],
  "sinonimos": [
   "sensor de agua",
   "detector de fugas",
   "sensor inundacion",
   "snzb-05p",
   "fuga lavadora",
   "aviso fuga de agua",
   "sensor de fugass"
  ],
  "problema": "Quieres enterarte en el móvil si gotea la lavadora, el lavavajillas o el termo, antes de que haya un charco grande. Un sensor de fugas Zigbee en el suelo y una automatización en Home Assistant lo resuelven, en local.",
  "diagnostico": [
   "<b>El aparato:</b> por ejemplo el SONOFF SNZB-05P. Según SONOFF es IP67, va con una pila CR2477 y se integra con Home Assistant por ZHA o Zigbee2MQTT.",
   "<b>Dónde:</b> en el suelo, bajo la lavadora, el lavavajillas, el termo o el fregadero. Donde el agua llegue primero.",
   "<b>Local:</b> ZHA es «Local Polling»: el aviso no depende de internet para saltar en Home Assistant. Para que llegue al móvil fuera de casa sí hace falta conexión.",
   "<b>Semáforo de privacidad.</b> Sin fuente por marca, no damos color. Criterio: 🟢 todo en local; 🟡 local, pero pide cuenta en la nube para el alta; 🔴 solo por nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Instalación física.</b> Pon la pila y empareja primero (Parte 2) con el sensor en la mano.",
   "Pruébalo: moja un poco los contactos de abajo y mira que cambia a «mojado». Sécalo.",
   "Déjalo plano en el suelo, en el sitio elegido.",
   "<b>Parte 2 · En Home Assistant.</b> ZHA → «añadir dispositivo» y mantén pulsado su botón como dice el manual.",
   "Aparece como sensor binario de humedad (<code>moisture</code>): «seco» o «mojado».",
   "<b>Primera automatización:</b> disparador, el sensor pasa a «mojado» durante 5 segundos (así evitas falsos avisos). Acción: notificación al móvil con la app de Home Assistant, «¡Agua bajo la lavadora!».",
   "<b>Extra avanzado:</b> cerrar sola la llave general con un motor de válvula es fontanería. Si no lo tienes claro, pregunta a un fontanero."
  ],
  "exito": "te llega un aviso al móvil cuando el sensor se moja.",
  "requisitos": {
   "hardware": [
    "Sensor de fugas Zigbee (por ejemplo SONOFF SNZB-05P)",
    "Antena Zigbee"
   ],
   "software": [
    "Home Assistant con ZHA y la app en el móvil"
   ]
  },
  "compatibilidad": [
   "Según modelo: compruébalo en la doc del fabricante"
  ],
  "materiales": [
   {
    "nombre": "Sensor de fugas Zigbee",
    "nota": "uno por zona con agua"
   },
   {
    "nombre": "Antena Zigbee en Home Assistant"
   }
  ],
  "fuentes": [
   {
    "titulo": "SONOFF — SNZB-05P (manual en español)",
    "url": "https://help.sonoff.tech/es/docs/snzb-05p",
    "tipo": "oficial",
    "lang": "es"
   },
   {
    "titulo": "SONOFF — Sensor de fugas Zigbee SNZB-05P",
    "url": "https://sonoff.tech/en-us/products/sonoff-zigbee-water-leak-sensor-snzb-05p",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA (Local Polling)",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — App móvil y notificaciones",
    "url": "https://www.home-assistant.io/integrations/mobile_app/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "relacionado": [
   {
    "id": "novatos-sensor-puerta",
    "por": "Mismo tipo de aviso al móvil, con otro sensor."
   },
   {
    "id": "novatos-zigbee-wifi-matter",
    "por": "Si aún no tienes antena Zigbee."
   },
   {
    "id": "novatos-alarma-humo",
    "por": "El mismo aviso, para el humo."
   }
  ]
 },
 {
  "categoria": "homeassistant",
  "sub": "novatos",
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 28-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "publicado": "2026-10-28",
  "id": "novatos-estufa-enchufe",
  "titulo": "Estufa o radiador eléctrico con enchufe inteligente, sin sustos (novatos)",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "calefaccion",
   "estufa",
   "radiador",
   "enchufe",
   "shelly",
   "termostato",
   "generic-thermostat",
   "local"
  ],
  "sinonimos": [
   "estufa enchufe inteligente",
   "radiador electrico domotica",
   "termostato virtual",
   "generic thermostat",
   "calefactor home assistant",
   "apagar estufa automaticamente",
   "estufa wifi",
   "radiador de aceite enchufe",
   "estufa enchufe intelignte"
  ],
  "problema": "Quieres que la estufa o el radiador eléctrico caliente cuando la habitación está fría y se apague solo, también si te olvidas. Con un enchufe con medición y el termostato genérico de Home Assistant se hace en local. Pero lo primero es la seguridad.",
  "diagnostico": [
   "<b>🔥 Seguridad primero.</b> Enchufe directo a la pared: nunca en regleta ni alargador, y solo la estufa en él. No tapes la estufa ni pongas ropa encima. Si su manual dice que no se deje sin vigilancia o que no se use con programadores, no la automatices. Solo estufas eléctricas: nada de gas ni queroseno.",
   "<b>Compara dos números:</b> los vatios (W) de la etiqueta de la estufa y el máximo de la ficha oficial del enchufe. Si la estufa gasta más, no sirve. Mejor con margen.",
   "<b>Ejemplo:</b> Shelly Plug S MTR Gen3. Según Shelly: máximo 12 A y 2500 W, «solo carga resistiva» (como una estufa de resistencia o un radiador de aceite).",
   "<b>Prueba del apagón:</b> enciende la estufa, desenchúfala y vuelve a enchufarla. Si no se pone a calentar sola, el enchufe no podrá encenderla.",
   "<b>Local:</b> Shelly es «Local Push» y Generic Thermostat, «Local Polling». Sin internet ni app del fabricante.",
   "<b>Semáforo de privacidad: 🟢.</b> Todo funciona en local, sin cuenta en la nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Física.</b> Enchufe a la pared, estufa en él y separada de cortinas y muebles, como diga su manual.",
   "<b>Parte 2 · Home Assistant.</b> Añade el enchufe (Shelly suele aparecer solo; si es Zigbee, mira la <a href=\"https://frikilabs.com/ficha/novatos-enchufe-inteligente/\">guía del enchufe</a>) y un sensor de temperatura lejos de la estufa.",
   "<b>Termostato virtual:</b> <i>Ajustes → Dispositivos y servicios → Ayudantes → Crear ayudante → Generic Thermostat</i>, con el enchufe y el sensor.",
   "<b>Tope de tiempo:</b> usa su opción <code>max_cycle_duration</code> y una automatización: si lleva, por ejemplo, 2 horas encendido, apágalo y avisa al móvil.",
   "<b>Ventana abierta:</b> con un <a href=\"https://frikilabs.com/ficha/novatos-sensor-puerta/\">sensor de ventana</a>, si se abre más de un minuto, apaga el termostato.",
   "<b>Nadie en casa:</b> si el enchufe marca consumo y no hay nadie (ubicación de la app), apágalo y avisa. Lo que gasta, en la <a href=\"https://frikilabs.com/ficha/novatos-consumo-luz/\">guía del consumo</a>."
  ],
  "exito": "la estufa se enciende y se apaga sola según la temperatura de la habitación, y nunca se queda horas encendida sin que te enteres.",
  "requisitos": {
   "hardware": [
    "Estufa eléctrica con interruptor mecánico",
    "Enchufe con medición y potencia suficiente",
    "Sensor de temperatura"
   ],
   "software": [
    "Home Assistant con la integración Shelly (o ZHA si el enchufe es Zigbee) y el ayudante Generic Thermostat"
   ]
  },
  "compatibilidad": [
   "Solo estufas y radiadores eléctricos que vuelvan a encenderse solos al volver la corriente"
  ],
  "materiales": [
   {
    "nombre": "Enchufe inteligente con medición",
    "nota": "mira en su ficha la potencia máxima"
   },
   {
    "nombre": "Sensor de temperatura",
    "nota": "lejos de la estufa"
   }
  ],
  "fuentes": [
   {
    "titulo": "Shelly — Shelly Plug S MTR Gen3 (ficha técnica)",
    "url": "https://kb.shelly.cloud/knowledge-base/shelly-plug-s-mtr-gen3",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Generic Thermostat (Local Polling)",
    "url": "https://www.home-assistant.io/integrations/generic_thermostat/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración Shelly (Local Push)",
    "url": "https://www.home-assistant.io/integrations/shelly/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — App móvil y notificaciones",
    "url": "https://www.home-assistant.io/integrations/mobile_app/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "relacionado": [
   {
    "id": "novatos-temperatura-humedad",
    "por": "El sensor de la habitación que usa el termostato."
   },
   {
    "id": "novatos-valvulas-radiador",
    "por": "Si tu calefacción es de agua, con radiadores."
   },
   {
    "id": "novatos-consumo-luz",
    "por": "Para ver cuánto gasta la estufa."
   }
  ]
 },
 {
  "categoria": "homeassistant",
  "sub": "novatos",
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "verificacion": "Documentado: resumen de las fuentes oficiales citadas (leídas el 28-oct-2026). No lo hemos probado aún en nuestro laboratorio, por eso no está marcado VERIFICADO.",
  "publicado": "2026-10-28",
  "id": "novatos-alarma-humo",
  "titulo": "Alarma de humo conectada: que te avise al móvil aunque no estés (novatos)",
  "tags": [
   "serie-domotica-novatos",
   "novato",
   "humo",
   "incendio",
   "alarma",
   "frient",
   "smszb-120",
   "zigbee",
   "zha",
   "local"
  ],
  "sinonimos": [
   "detector de humo",
   "alarma de humo zigbee",
   "detector humo home assistant",
   "frient smoke alarm",
   "smszb-120",
   "aviso incendio movil",
   "detector de incendios",
   "alarma de umo"
  ],
  "problema": "Quieres enterarte en el móvil si salta la alarma de humo cuando no estás. Una alarma Zigbee certificada unida a Home Assistant por ZHA te avisa. Lo importante sigue siendo que pite fuerte ella sola.",
  "diagnostico": [
   "<b>🔥 Seguridad primero: la alarma tiene que sonar sola,</b> aunque fallen Home Assistant, el wifi o la luz. Home Assistant solo añade el aviso al móvil. No sustituye a la alarma.",
   "<b>El aparato:</b> frient Intelligent Smoke Alarm (SMSZB-120). Según frient: certificada DIN EN 14604, sirena de 85 dB a 3 m, Zigbee 3.0, pila CR123 cambiable (unos 3 años).",
   "<b>Compatible y local:</b> está en la página «frient» de Home Assistant (Works with Home Assistant, por ZHA). El aviso salta sin internet; para que llegue al móvil fuera de casa, sí hace falta.",
   "<b>Detalle estético:</b> algunos usuarios ven entidades «None» en ZHA (incidencia de GitHub de 2025). Puedes ocultarlas.",
   "<b>Semáforo de privacidad: 🟢.</b> Todo funciona en local, sin cuenta en la nube. <a href=\"https://frikilabs.com/privacidad/\">Cómo lo hacemos</a>."
  ],
  "solucion": [
   "<b>Parte 1 · Física.</b> Pon la pila y pulsa el botón de prueba antes de fijarla: tiene que pitar fuerte.",
   "El sitio: sigue primero el manual de frient (código QR de la caja). Los Bombers de la Generalitat dicen que los detectores «tienen que instalarse en el techo, no en las paredes, lo más centrados posible», que el mejor sitio es «el pasillo o distribuidor que da acceso a las habitaciones» y que hay que «evitar instalar detectores autónomos de humo en el techo de la cocina o del baño», porque el vapor y el humo de cocinar dan falsas alarmas.",
   "<b>Parte 2 · Home Assistant.</b> Cerca de la antena: ZHA → «añadir dispositivo» y ponla en modo emparejar como dice el manual. Luego fíjala y mira que responde.",
   "<b>Aviso:</b> automatización «detecta humo» → notificación con la app. Márcala como crítica para que suene con el móvil en silencio.",
   "<b>Extra:</b> enciende todas las luces para ver por dónde salir.",
   "De vez en cuando, botón de prueba: pita y te llega el aviso."
  ],
  "exito": "al pulsar el botón de prueba, la alarma pita fuerte ella sola y a la vez te llega un aviso al móvil.",
  "requisitos": {
   "hardware": [
    "Alarma de humo Zigbee certificada (por ejemplo frient SMSZB-120)",
    "Antena Zigbee"
   ],
   "software": [
    "Home Assistant con ZHA y la app en el móvil"
   ]
  },
  "compatibilidad": [
   "frient SMSZB-120 (Europa), en la lista de Home Assistant"
  ],
  "materiales": [
   {
    "nombre": "Alarma de humo Zigbee certificada",
    "nota": "pila CR123 de repuesto"
   }
  ],
  "fuentes": [
   {
    "titulo": "frient — Intelligent Smoke Alarm (especificaciones)",
    "url": "https://www.frient.com/products/intelligent-smoke-alarm",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Bombers de la Generalitat — Protéjase con los detectores de humo",
    "url": "https://interior.gencat.cat/es/arees_dactuacio/bombers/seguretat_a_la_llar_en_cas_dincendi/Protegim-nos-amb-els-detectors-de-fum/",
    "tipo": "oficial",
    "lang": "es"
   },
   {
    "titulo": "Home Assistant — frient (aparatos compatibles, Local Push)",
    "url": "https://www.home-assistant.io/integrations/frient/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — Integración ZHA",
    "url": "https://www.home-assistant.io/integrations/zha/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant — App móvil y notificaciones",
    "url": "https://www.home-assistant.io/integrations/mobile_app/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "Home Assistant Companion — Notificaciones críticas",
    "url": "https://companion.home-assistant.io/docs/notifications/critical-notifications/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "GitHub — home-assistant/core #151967 (entidades «None»)",
    "url": "https://github.com/home-assistant/core/issues/151967",
    "tipo": "comunidad",
    "lang": "en"
   }
  ],
  "relacionado": [
   {
    "id": "novatos-sensor-fugas",
    "por": "El mismo tipo de aviso, para el agua."
   },
   {
    "id": "novatos-zigbee-wifi-matter",
    "por": "Si aún no tienes antena Zigbee."
   }
  ]
 },
 {
  "id": "ciber-tapo-kasa-actualizar-oct-2026",
  "titulo": "Actualiza tu cámara Tapo o enchufe Kasa hoy",
  "categoria": "ciber",
  "sub": "proteger",
  "tags": [
   "tapo",
   "kasa",
   "tp-link",
   "firmware",
   "camara",
   "enchufe",
   "actualizar",
   "cve",
   "novato"
  ],
  "sinonimos": [
   "actualizar camara tapo",
   "fallo seguridad tapo",
   "vulnerabilidad kasa",
   "firmware tapo c210",
   "tapo c325wb",
   "tapo c320ws",
   "kasa hs103"
  ],
  "nivel": "basico",
  "confianza": "documentado",
  "actualizado": "2026-10",
  "problema": "TP-Link ha publicado en octubre de 2026 avisos de seguridad graves para cámaras Tapo C210, C325WB y C320WS y para varios enchufes, interruptores y bombillas Kasa. Un atacante en tu misma red podría manejarlos o ver el vídeo. La solución es actualizar el firmware ya.",
  "diagnostico": [
   "<b>Tapo C210</b>, hardware V3.6: firmware corregido <code>V3.6_1.2.7 Build 260818</code> (CVE-2026-105814 y CVE-2026-105815).",
   "<b>Tapo C325WB</b>, hardware V2: firmware corregido <code>V2_1.3.3 Build 260914</code> (CVE-2026-105672, CVE-2026-105673 y CVE-2026-105674).",
   "<b>Tapo C320WS</b>, hardware V2: firmware corregido <code>1.6.6 Build 260917 Rel.81089n</code> (CVE-2026-105810).",
   "<b>Kasa</b> (CVE-2026-108473), enchufes e interruptores: HS103 V5 → <code>1.1.3 Build 250908</code>; EP10 V1 → <code>1.1.1 Build 250908</code>; EP40 V1 → <code>1.1.0 Build 250225</code>; HS200 V5 → <code>1.1.2 Build 241220</code>; KP401 V1 → <code>1.1.2 Build 241223</code>; KS230 KIT V2 → <code>1.1.4 Build 241223</code>; KP405 V1 → <code>1.1.0 Build 250225</code>; HS220 V3 → <code>1.1.4 Build 241220</code>; KP115 V1 → <code>1.1.1 Build 250908</code>; HS210 V3 → <code>1.1.0 Build 250225</code>; HS300 V2 → <code>1.1.2 Build 241220</code>; KP200 V3 → <code>1.1.0 Build 250225</code>; KP303 V2 → <code>1.1.2 Build 241220</code>; KS200 V1 → <code>1.1.2 Build 241223</code>; EP40A V1 → <code>1.1.1 Build 250908</code>; KS220 → <code>1.1.3 Build 241223</code>; KS200M → <code>1.1.4 Build 241223</code>; ES20M y KS220M V1 → <code>1.1.6 Build 250522</code>; KP400 V3.0 → <code>1.1.0 Build 250225</code>.",
   "<b>Kasa</b>, bombillas y tiras: KL125 V4, KL135 V2 y KL110 V4 → <code>1.1.1 Build 260710</code>; KL420L5 V1 → <code>1.4.2 Build 260605</code>.",
   "Si tu modelo o tu versión de hardware no salen aquí, este aviso no te afecta, pero actualizar sigue siendo buena idea."
  ],
  "solucion": [
   "Mira tu versión: en la app Tapo, abre la cámara, pulsa la rueda dentada y toca el nombre del modelo; ahí salen la versión de hardware y la de firmware. En la app Kasa está en Ajustes del dispositivo › Información del dispositivo. La versión de hardware también viene en la etiqueta del aparato.",
   "Actualiza desde la app Tapo (TP-Link dice que no hay otro método): abre el aparato, pulsa la rueda dentada y entra en «Actualización de firmware», o ve a «Yo» › «Actualización de firmware». No lo desenchufes mientras se actualiza.",
   "Activa la actualización automática en esa misma pantalla si tu modelo la tiene.",
   "¿No te aparece la versión nueva? TP-Link publica las actualizaciones de forma escalonada (puede tardar de semanas a un mes). Reinicia router y aparato, acércalo al router y vuelve a probar.",
   "Comprueba después que el firmware es igual o posterior al de la lista.",
   "Mientras tanto, y también después: pasa cámaras y enchufes a la red de invitados o a una VLAN aparte, como explica la <a href=\"https://frikilabs.com/#/ficha/ciber-red-invitados-iot\">ficha de red de invitados o red IoT</a>. Estos fallos se aprovechan desde la misma red, así que aislarlos reduce el riesgo.",
   "Repasa también la <a href=\"https://frikilabs.com/#/ficha/ciber-camara-wifi-segura\">ficha de cámaras wifi seguras</a>."
  ],
  "requisitos": {
   "hardware": [
    "Cámara Tapo o aparato Kasa de la lista"
   ],
   "software": [
    "App Tapo (o Kasa para ver la versión)"
   ]
  },
  "compatibilidad": [
   "Solo los modelos y versiones de hardware que cita TP-Link en sus avisos de octubre de 2026"
  ],
  "verificacion": "Documentado: datos copiados de los avisos oficiales de TP-Link (leídos el 28-oct-2026). No lo hemos probado en un aparato.",
  "fuentes": [
   {
    "titulo": "TP-Link — Aviso de seguridad Tapo C210 (CVE-2026-105814 y CVE-2026-105815)",
    "url": "https://www.tp-link.com/us/support/faq/5352/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "TP-Link — Aviso de seguridad Tapo C325WB (CVE-2026-105672, 105673 y 105674)",
    "url": "https://www.tp-link.com/us/support/faq/5333/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "TP-Link — Aviso de seguridad Tapo C320WS (CVE-2026-105810)",
    "url": "https://www.tp-link.com/us/support/faq/5351/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "TP-Link — Aviso de seguridad de varios aparatos Kasa (CVE-2026-108473)",
    "url": "https://www.tp-link.com/us/support/faq/5342/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "TP-Link — Cómo ver la versión de hardware y firmware",
    "url": "https://www.tp-link.com/us/support/faq/315/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "TP-Link — Cómo actualizar el firmware de Tapo y Kasa con la app Tapo",
    "url": "https://www.tp-link.com/us/support/faq/2621/",
    "tipo": "oficial",
    "lang": "en"
   },
   {
    "titulo": "TP-Link — Qué hacer si un aparato Tapo/Kasa no se actualiza",
    "url": "https://www.tp-link.com/us/support/faq/2688/",
    "tipo": "oficial",
    "lang": "en"
   }
  ],
  "publicado": "2026-10-28"
 }
]
