Prepare for GitLab migration: Add README, .gitignore, and update TasmotaManager.py
This commit is contained in:
parent
e106dc50fd
commit
73f7acfd8c
35
.gitignore
vendored
Normal file
35
.gitignore
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Python bytecode files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.egg-info/
|
||||||
|
|
||||||
|
# Virtual environments
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
ENV/
|
||||||
|
|
||||||
|
# IDE files
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Local configuration that might contain sensitive information
|
||||||
|
network_configuration.json
|
||||||
|
|
||||||
|
# Backup files
|
||||||
|
*.backup
|
||||||
|
|
||||||
|
# Generated data files with sensitive network information
|
||||||
|
current.json
|
||||||
|
deprecated.json
|
||||||
|
TasmotaDevices.json
|
||||||
|
*.json.backup
|
||||||
96
README.md
Normal file
96
README.md
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# TasmotaManager
|
||||||
|
|
||||||
|
A Python utility for discovering, monitoring, and managing Tasmota devices on a network using UniFi Controller.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Discovers Tasmota devices on the network via UniFi Controller API
|
||||||
|
- Tracks device changes over time (new, moved, deprecated devices)
|
||||||
|
- Checks and updates MQTT settings on Tasmota devices
|
||||||
|
- Generates detailed device information including firmware versions
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Python 3.6+
|
||||||
|
- UniFi Controller with API access
|
||||||
|
- Network with Tasmota devices
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- requests
|
||||||
|
- urllib3
|
||||||
|
- Standard library modules (json, logging, os, sys, datetime, re, time, argparse)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Clone this repository
|
||||||
|
2. Install required packages:
|
||||||
|
```bash
|
||||||
|
pip install requests urllib3
|
||||||
|
```
|
||||||
|
3. Create a configuration file (see below)
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Create a `network_configuration.json` file with the following structure:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"unifi": {
|
||||||
|
"host": "https://your-unifi-controller.local",
|
||||||
|
"username": "your-username",
|
||||||
|
"password": "your-password",
|
||||||
|
"site": "default",
|
||||||
|
"network_filter": {
|
||||||
|
"network_name": {
|
||||||
|
"name": "Human-readable name",
|
||||||
|
"subnet": "192.168.1",
|
||||||
|
"exclude_patterns": [
|
||||||
|
"device-to-exclude*"
|
||||||
|
],
|
||||||
|
"unknown_device_patterns": [
|
||||||
|
"tasmota*",
|
||||||
|
"ESP-*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mqtt": {
|
||||||
|
"Host": "mqtt-broker.local",
|
||||||
|
"Port": 1883,
|
||||||
|
"User": "mqtt-user",
|
||||||
|
"Password": "mqtt-password",
|
||||||
|
"Topic": "%hostname_base%",
|
||||||
|
"FullTopic": "%prefix%/%topic%/",
|
||||||
|
"NoRetain": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Basic usage:
|
||||||
|
```bash
|
||||||
|
python TasmotaManager.py
|
||||||
|
```
|
||||||
|
|
||||||
|
With options:
|
||||||
|
```bash
|
||||||
|
python TasmotaManager.py --config custom_config.json --debug --skip-unifi
|
||||||
|
```
|
||||||
|
|
||||||
|
Command-line options:
|
||||||
|
- `--config`: Path to configuration file (default: network_configuration.json)
|
||||||
|
- `--debug`: Enable debug logging
|
||||||
|
- `--skip-unifi`: Skip UniFi discovery and use existing current.json
|
||||||
|
|
||||||
|
## Output Files
|
||||||
|
|
||||||
|
The script generates several output files:
|
||||||
|
- `current.json`: List of currently active Tasmota devices
|
||||||
|
- `deprecated.json`: Devices that were previously active but are no longer present
|
||||||
|
- `TasmotaDevices.json`: Detailed information about each device
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License - see the LICENSE file for details.
|
||||||
@ -7,7 +7,6 @@ from typing import Optional
|
|||||||
import requests
|
import requests
|
||||||
from urllib3.exceptions import InsecureRequestWarning
|
from urllib3.exceptions import InsecureRequestWarning
|
||||||
import re # Import the regular expression module
|
import re # Import the regular expression module
|
||||||
import telnetlib
|
|
||||||
import time
|
import time
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user