Commit graph

2 commits

Author SHA1 Message Date
PontualTech / Karlão
5a64e0897f feat(iot): controle Smart Life/Tuya — Casa do Barco v1.12.0
Some checks failed
Build Android (APK + AAB) / build-android (push) Has been cancelled
Servidor (proxy assinado):
- server/src/tuya.js: cliente Tuya OpenAPI com HMAC-SHA256 + token cache
  (2h TTL, retry 1x em token expirado), helpers categoryLabel
- 3 endpoints novos em server/src/index.js (todos requireAuth):
  * GET  /api/iot/devices              → lista devices da conta Smart Life
  * GET  /api/iot/status/:deviceId     → DPs (data points) atuais
  * POST /api/iot/command/:deviceId    → envia comandos {code,value}
- Audit log via db.audit('iot_command', ...) pra histórico de toggles
- 503 graceful quando TUYA_ACCESS_ID/SECRET ausentes

Client (UI):
- Card 🏠 Casa do Barco em Arquivo (após Bluetooth, antes Raymarine)
- Modal "Adicionar dispositivo" lista devices da conta Smart Life,
  permite escolher quais aparecem no Shivão (multi-select via toque)
- Cards por device com ícone por categoria (cz=tomada, dj=lâmpada,
  fs=ventilador, kt=ar-cond, sd=robô, etc.) + toggle ON/OFF + status
  online/offline + tempo desde último ping
- Toggle optimistic UI: marca novo estado imediato, reverte se falhar
- Polling 10s pra sync de status, pausa em background (economiza
  Starlink + bateria)
- Backoff: 3 falhas consec → marca offline, retry 30s
- state.smartDevices[] persistido no localStorage (mesmo padrão btDevices)

Setup (admin, 1x):
- Karlão precisa criar projeto em iot.tuya.com (5 min, gratuito) e
  adicionar TUYA_ACCESS_ID + TUYA_ACCESS_SECRET no env Coolify
- Documentação completa no .env.example com passo a passo
- Sem credenciais: card mostra "⚙ Tuya não configurado"

Bumps:
- APP_VERSION 1.11.0 → 1.12.0
- sw.js VERSION shivao-v1.11.0 → shivao-v1.12.0
- mobile/package.json + build.gradle (versionCode 32→33)
- LATEST_APK_URL atualizado pro release v1.12.0

Fix gitignore:
- .env.example em pastas nested (server/.env.example) estava bloqueado
  por **/.env.* — adicionado !**/.env.example pra liberar.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 18:34:02 -03:00
PontualTech / Karlão
4202547d8e feat(mobile): Capacitor Android pronto — APK + AAB v1.2.0 buildados
PIPELINE COMPLETO QUE RODOU:
1. JDK 17 instalado em ~/jdk17 (portátil, sem admin)
2. Android SDK cmdline-tools + platform-34 + build-tools-34 + platform-tools instalados em ~/android-sdk
3. JAVA_HOME e ANDROID_HOME setados no PATH user
4. npm install + npx cap add android (estrutura Android gerada)
5. AndroidManifest.xml com 10 permissions (location background, vibrate, wake_lock, foreground service, post_notifications)
6. Keystore PERMANENTE shivao-release.keystore gerado via keytool (validade 10000d, RSA 2048)
7. build.gradle: signingConfigs.release + applicationId br.com.pontualtech.shivao + versionCode 2 + versionName 1.2.0
8. local.properties: sdk.dir=C:/Users/pontu/android-sdk (forward slashes — Java properties NÃO aceitam \)
9. ./gradlew bundleRelease assembleRelease — primeira build em 1m39s
10. APK 3.4MB + AAB 3.1MB — ambos signed com keystore permanente

ARTEFATOS:
- C:/Users/pontu/Downloads/Shivao-v1.2.0-capacitor.apk (3.4MB)
- C:/Users/pontu/Downloads/Shivao-v1.2.0-capacitor.aab (3.1MB) — pronto pra Play Store
- mobile/android/app/shivao-release.keystore (NÃO commitado, .gitignore protege)
- C:/Users/pontu/Downloads/Shivao-keystore-backup/shivao-release-CAPACITOR.keystore (BACKUP)

Release Forgejo v1.2.0 publicada com APK + AAB anexados.

Próximo: criar conta Google Play ($25 1×) e submeter o AAB.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 17:34:19 -03:00