node-red-contrib-tuya-file-decrypt 1.0.5
Node-RED contribution to decrypt Tuya Files
node-red-contrib-tuya-file-decrypt
A Node‑RED node that decrypts Tuya encrypted files (AES‑CBC) and returns the resulting image as Base64 or binary Buffer.
This is especially useful for Tuya‑based cameras and sensors that stores encrypted snapshots or movement configuration files.
Besides the Tuya credentials, it is paramount to enable the Beta API on your Tuya IOT Platform (Cloud -> [Your Project] -> Service API and activate "Beta API")
Based on 'How To Parse IPC movement_detect_pic Data' Tuya Support Help (https://support.tuya.com/en/help/_detail/Kbfus79b0gcpi)
✨ Features
- Downloads encrypted files
- Decrypts AES‑CBC with PKCS7 padding
- Returns the image in:
msg.payload→ Base64msg.image→ Buffer (binary)
- Fully compatible with:
- Node‑RED standalone
- Node‑RED add‑on for Home Assistant
- Docker deployments
- Zero Python dependencies — pure Node.js
📦 Installation
From Node‑RED Palette Manager
Menu → Manage Palette → Install → node-red-contrib-tuya-file-decrypt
From NPM
npm install node-red-contrib-tuya-file-decrypt
Home Assistant (Node‑RED Add‑on)
cd /config/node-red
npm install node-red-contrib-tuya-file-decrypt
Then restart the add‑on.
🧩 Node Configuration
The node requires your Tuya Cloud credentials:
| Field | Description |
|---|---|
| Access ID | Tuya Cloud Access ID |
| Access Key | Tuya Cloud Access Key |
| Endpoint | Tuya API endpoint (default: EU) |
| Device ID | Device that owns the encrypted file |
📥 Input Format
The node expects a Base64 string containing a JSON object with Tuya metadata:
{
"bucket": "example-bucket",
"files": [
["path/to/file", "AESencryptionKey"]
]
}