71 lines
2.8 KiB
Python
Executable File
71 lines
2.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Test script to verify that console settings are applied to unknown devices
|
|
before rebooting. This script will process a single device by IP address
|
|
or hostname and apply console settings from the configuration.
|
|
"""
|
|
|
|
import sys
|
|
import logging
|
|
import argparse
|
|
from TasmotaManager import TasmotaDiscovery
|
|
|
|
# Configure logging
|
|
logging.basicConfig(
|
|
level=logging.DEBUG, # Use DEBUG level to see all console settings being applied
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
)
|
|
|
|
def main():
|
|
"""Main function to test the unknown device console settings functionality."""
|
|
parser = argparse.ArgumentParser(description='Test unknown device console settings')
|
|
parser.add_argument('device_identifier', help='IP address or hostname of the device to test')
|
|
parser.add_argument('--debug', action='store_true', help='Enable debug mode')
|
|
args = parser.parse_args()
|
|
|
|
print(f"Testing unknown device console settings for: {args.device_identifier}")
|
|
|
|
# Initialize TasmotaDiscovery with debug mode if requested
|
|
discovery = TasmotaDiscovery(debug=args.debug)
|
|
|
|
# Load configuration
|
|
discovery.load_config()
|
|
|
|
# Get console settings from configuration
|
|
mqtt_config = discovery.config.get('mqtt', {})
|
|
# Prefer console_set if present, else fall back to legacy console dicts
|
|
console_set = discovery.config.get('console_set') or mqtt_config.get('console_set')
|
|
if console_set:
|
|
if isinstance(console_set, dict):
|
|
print("Available console_set profiles:")
|
|
for name, entries in console_set.items():
|
|
print(f"- {name} ({len(entries)} commands)")
|
|
print("\nCommands in 'Default' (if present):")
|
|
for entry in console_set.get('Default', []):
|
|
print(f" {entry}")
|
|
else:
|
|
print("Console commands that will be applied (console_set):")
|
|
for entry in console_set:
|
|
print(f" {entry}")
|
|
else:
|
|
console_params = discovery.config.get('console', {}) or mqtt_config.get('console', {})
|
|
if not console_params:
|
|
print("No console parameters found in configuration. Please add some to test.")
|
|
sys.exit(1)
|
|
print("Console parameters that will be applied (legacy console):")
|
|
for param, value in console_params.items():
|
|
print(f" {param}: {value}")
|
|
|
|
# Process the single device
|
|
print("\nProcessing device...")
|
|
result = discovery.process_single_device(args.device_identifier)
|
|
|
|
if result:
|
|
print(f"\nSuccessfully processed device: {args.device_identifier}")
|
|
print("Console settings should have been applied before reboot.")
|
|
else:
|
|
print(f"\nFailed to process device: {args.device_identifier}")
|
|
print("Check the logs for more information.")
|
|
|
|
if __name__ == "__main__":
|
|
main() |