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
|
||||
from urllib3.exceptions import InsecureRequestWarning
|
||||
import re # Import the regular expression module
|
||||
import telnetlib
|
||||
import time
|
||||
import argparse
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user