From 1a1db5c9be6a2067ffd30703228df85c5958d927 Mon Sep 17 00:00:00 2001 From: Roger Date: Tue, 8 Sep 2026 12:56:40 +0000 Subject: [PATCH] docs(infra): playbook Cursor Tapo Tuya MCP e Proxmox na tomada Tapo --- Infra-Network/CURSOR_TAPO_TUYA_MCP.md | 171 ++++++++++++++++++++++++++ Infra-Network/README.md | 1 + README.md | 4 + _sidebar.md | 1 + 4 files changed, 177 insertions(+) create mode 100644 Infra-Network/CURSOR_TAPO_TUYA_MCP.md diff --git a/Infra-Network/CURSOR_TAPO_TUYA_MCP.md b/Infra-Network/CURSOR_TAPO_TUYA_MCP.md new file mode 100644 index 0000000..22c9bda --- /dev/null +++ b/Infra-Network/CURSOR_TAPO_TUYA_MCP.md @@ -0,0 +1,171 @@ +--- +tags: + - infra + - cursor + - tapo + - tuya + - proxmox + - mcp +created: 2026-09-08 +status: playbook +--- + +# Cursor + Tapo + Tuya — playbook (Roger) + +Processo capturado em **2026-09-08** para reutilizar nas duas máquinas / dois locais de trabalho. + +**Regra de ouro:** a tomada **Tapo** alimenta o **Proxmox**. Nunca `tapo_turn_off` nessa tomada sem confirmação explícita (três vezes). Ligar (`turn_on`) só se o host estiver em baixo e o Roger pedir. + +--- + +## 1. Cursor em duas máquinas — o que sincroniza + +O **mesmo login Cursor não replica** o histórico de Agent/Chat da IDE. Isso fica **local** (por pasta/workspace). + +| Segue a conta | Fica na máquina | +|---|---| +| Plano, modelos, Cloud Agents | Histórico Agent/Chat da barra lateral | +| Regras/MCP de **team** (dashboard) | Checkpoints, side chats | +| | Settings, atalhos, extensões (salvo exportar perfil) | +| | MCP **user** em `%USERPROFILE%\.cursor\mcp.json` | + +**O que fazer nas duas máquinas:** + +1. Mesma conta Cursor. +2. Mesmo Git (código + `.cursor/rules`, `AGENTS.md`, MCP de projeto). +3. Copiar **à mão** `C:\Users\mini\.cursor\mcp.json` e a pasta `C:\Users\mini\.cursor\mcp-servers\` (MCP Tapo/Tuya **não** viajam com o login). +4. Conversas que precisam continuar noutro PC: **Move to Cloud** / Cloud Agents. +5. Caminhos de pasta diferentes = workspace diferente = histórico diferente. +6. Remote SSH: o código está no servidor; o **chat fica no cliente**. + +Pedido frequente à Cursor (sync de chats) — **sem prazo**. Não copiar `state.vscdb` entre Windows/Mac (hashes e risco de corromper). + +--- + +## 2. Dois mundos: Tuya ≠ Tapo + +| | **Tuya / Smart Life** | **Tapo (TP-Link)** | +|---|---|---| +| App | Smart Life ou Tuya Smart | App **Tapo** | +| Como o Cursor fala | Cloud API (`openapi.tuyaeu.com`) | LAN (broadcast `python-kasa`) | +| MCP | `tuya` | `tapo` | +| O que controla hoje | Interruptor Wi-Fi 1 gang | **Tomada do Proxmox** | +| QR no iot.tuya.com | Sim (ligar conta da app) | **Não** | + +O QR da Tuya **nunca** traz tomadas Tapo. + +--- + +## 3. Ficheiros e paths (esta máquina Windows) + +- MCP config: `C:\Users\mini\.cursor\mcp.json` +- Script Tapo: `C:\Users\mini\.cursor\mcp-servers\tapo_mcp.py` +- Venv MCP: `C:\Users\mini\.cursor\mcp-servers\.venv\` +- Fix TLS Avast: `C:\Users\mini\.cursor\mcp-servers\.venv\Lib\site-packages\sitecustomize.py` +- Pacote extra: `truststore` no mesmo venv + +Credenciais **não** estão nesta nota. Estão no `mcp.json` (Tuya Access ID/Key; Tapo ainda `PREENCHER`). + +--- + +## 4. Tuya — estado em 2026-09-08 + +- Plataforma: https://eu.platform.tuya.com / https://iot.tuya.com +- Projeto: **cursor-casa** +- Project ID: `p1788865726593kjmtjy` +- Data Center: **Central Europe** → endpoint `https://openapi.tuyaeu.com` +- Tipo: Location/Campus +- Conta Smart Life ligada: `rogerio.cezar@gmail.com` +- Modo: **Automatic Link** +- IoT Core: plano trial (há botão Upgrade) + +**Dispositivo ligado à API:** + +| Campo | Valor | +|---|---| +| Nome | 1Gang WIFI Switch | +| Device ID | `bfaf766aa915197295qju6` | +| Produto | CB01-SBL | +| Categoria | `kg` (interruptor) | +| Online | sim (validado pela API) | +| Ativação | 2024-04-27 14:01:02 | + +**Isto NÃO é o Proxmox.** Não desliga o host. + +### Como ligar a conta da app (quando a lista está vazia) + +1. Cloud → Development → lista **My Cloud Projects**. +2. **cursor-casa não é um link.** A janela estreita esconde a coluna **Operation**. Maximizar, Ctrl+-, ou scroll **horizontal**. Botão: **Open Project**. +3. Aba **Devices** → **Link App Account** → **Add App Account** → **Tuya App Account Authorization**. +4. QR: app **Smart Life** → **Me** → ícone scan (canto superior direito) → confirmar. +5. Região da app (**Me → Settings → Account and Security → Region**) tem de ser **Europa**. +6. Depois de ligado: a API `/v2.0/cloud/thing/device` deixa de devolver COUNT 0. +7. Em Automatic Link, o texto **Link** na tabela do dispositivo **não** é o passo que falta — já está associado. + +CAPTCHA de puzzle no login Tuya: **humano** (não automatizar). + +--- + +## 5. Avast Web Shield — MCP Tuya a falhar no arranque + +Sintoma: servidor MCP `tuya` **errored**, tools `tuya_*` desaparecem. + +Causa: Avast intercepta HTTPS. Certificado apresentado: + +``` +CN=*.tuyaeu.com +ISSUER: CN=Avast Web/Mail Shield Root + OU=generated by Avast Antivirus for SSL/TLS scanning +``` + +OpenSSL 3 do Python rejeita (Basic Constraints / unable to get local issuer certificate). + +**Correção aplicada (esta máquina):** `sitecustomize.py` no venv injeta `truststore` (Schannel / loja Windows). Com isso: CONNECT True. + +**Depois de alterar o venv:** reiniciar o Cursor ou toggle do servidor MCP em Settings → MCP. + +Na **segunda máquina**, repetir: `pip install truststore` no venv + o mesmo `sitecustomize.py` se o Avast (ou outro SSL scanning) estiver ativo. + +--- + +## 6. Tapo — estado e próximo passo + +- `TAPO_USERNAME` / `TAPO_PASSWORD` = `PREENCHER` → scan LAN = **0 devices**. +- `TAPO_DISCOVERY_TARGET` = `192.168.1.255` (só funciona na **mesma Wi-Fi** das tomadas). +- Noutro escritório / outra LAN: lista vazia mesmo com senha certa. + +**Para ficar operacional:** + +1. Email + senha da **app Tapo**. +2. IP da tomada do Proxmox (se conhecido). +3. PC na mesma rede que o plug, **ou** MCP a correr num host nessa LAN. +4. Marcar essa tomada como **protegida**: só `tapo_get_status` / `tapo_turn_on`; **nunca** `tapo_turn_off`. + +Tools Tapo: `tapo_list_devices`, `tapo_get_status`, `tapo_turn_on`, `tapo_turn_off` (proibido na tomada do Proxmox). + +--- + +## 7. Checklist rápido (segunda máquina ou reinstall) + +- [ ] Login Cursor +- [ ] Copiar `mcp.json` + `mcp-servers` (sem meter secrets no Git) +- [ ] Se Avast: `truststore` + `sitecustomize.py` +- [ ] Reiniciar Cursor; Settings → MCP: `tuya` e `tapo` verdes +- [ ] Tuya: listar devices; deve aparecer o interruptor `bfaf766aa915197295qju6` +- [ ] Tapo: preencher credenciais; PC na LAN de casa; **não** desligar Proxmox +- [ ] Git para código/regras de projeto; Cloud Agent se precisares do mesmo chat nos dois PCs + +--- + +## 8. Segurança + +- Password da conta Tuya Developer passou por chat nesta sessão — **rodar** quando possível. +- Não versionar `mcp.json` com Access Key / senhas. +- Access ID/Key Tuya: só no `mcp.json` local. + +--- + +## Links internos + +- [[WELCOME]] +- [[INFRA/INDEX]] \ No newline at end of file diff --git a/Infra-Network/README.md b/Infra-Network/README.md index 68d7bbb..6dba174 100644 --- a/Infra-Network/README.md +++ b/Infra-Network/README.md @@ -8,3 +8,4 @@ SPECs de rede (big / BIG1 / routers). Repo Forgejo: a criar `ligbox/infra-networ | R7000 DD-WRT + Proxmox | SPEC_R7000_DDWRT_PROXMOX_NETWORK.md | | R8000 credentials | SPEC_R8000_CREDENTIALS.md | | SPEC-VM500 Rent Charge | SPEC-VM500-RENTCHARGE.md | +| Cursor Tapo Tuya MCP (2026-09-08) | CURSOR_TAPO_TUYA_MCP.md | diff --git a/README.md b/README.md index b81e411..11e0d5c 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,10 @@ Vault central CT130 · Forgejo `https://git.spec.ligbox.com.br/ligbox/` | `Infra-Network/` | [infra-network](https://git.spec.ligbox.com.br/ligbox/infra-network) | | `ligbox-ops-platform/` | [ligbox-ops-platform](https://git.spec.ligbox.com.br/ligbox/ligbox-ops-platform) | +## Casa / Cursor / IoT + +- [Cursor Tapo Tuya MCP](Infra-Network/CURSOR_TAPO_TUYA_MCP.md) — duas máquinas Cursor, Tuya vs Tapo, QR, Avast TLS, Proxmox na Tapo + ## Links rápidos Invest - [SPEC-051](Invest-MyVexx/SPEC-051-INVEST-UNIFIED-DASHBOARD-INDEX-HUB.md) diff --git a/_sidebar.md b/_sidebar.md index c5e1b34..389f009 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -11,6 +11,7 @@ - [CT130](ligbox-ops-platform/docs/vms/CT130.md) - [VM500 PROJETOS](ligbox-ops-platform/docs/vms/VM500.md) - [SPEC VM500 Rent Charge](Infra-Network/SPEC-VM500-RENTCHARGE.md) +- [Cursor Tapo Tuya MCP](Infra-Network/CURSOR_TAPO_TUYA_MCP.md) --- ## MyVexx / Invest - [Invest hub](Invest-MyVexx/Invest-MyVexx.md)