Fix console settings matching to use DeviceName instead of Hostname

- Changed from using Hostname base (e.g., 'KitchenBar') to DeviceName (e.g., 'TreatLife_SW_SS02S')
- DeviceName matches the template names in device_list configuration
- This fixes issue where console settings weren't being applied correctly
- Devices were not matching any templates due to hostname vs device type mismatch
- Now uses exact match first, then case-insensitive fallback
This commit is contained in:
Mike Geppert 2026-01-04 16:17:06 -06:00
parent 80b55b6b43
commit 265fa33497

View File

@ -41,12 +41,11 @@ class ConsoleSettingsManager:
if not device_ip:
return False, "No IP address"
# Get hostname base for template matching
hostname = device_details.get('StatusNET', {}).get('Hostname', device_name)
hostname_base = get_hostname_base(hostname)
# Get device type from DeviceName for template matching
device_type = device_details.get('Status', {}).get('DeviceName', '')
# Find which console_set to use for this device
console_set_name = self._get_console_set_name(hostname_base)
console_set_name = self._get_console_set_name(device_type)
if not console_set_name:
self.logger.debug(f"{device_name}: No console settings configured")
@ -86,20 +85,26 @@ class ConsoleSettingsManager:
self.logger.info(f"{device_name}: All console settings applied successfully")
return True, "Applied"
def _get_console_set_name(self, hostname_base: str) -> Optional[str]:
def _get_console_set_name(self, device_type: str) -> Optional[str]:
"""
Get the console_set name for a device based on hostname.
Get the console_set name for a device based on DeviceName.
Args:
hostname_base: Base hostname of device
device_type: Device type/DeviceName from Status
Returns:
str: Console set name or None
"""
device_list = self.config.get('device_list', {})
# First try exact match
if device_type in device_list:
return device_list[device_type].get('console_set')
# Then try case-insensitive match
device_type_lower = device_type.lower()
for template_name, template_data in device_list.items():
if hostname_base.lower() in template_name.lower():
if template_name.lower() == device_type_lower:
return template_data.get('console_set')
return None