1. controlled_site_first отсутствует
Тогда:
all_signals.get("controlled_site_first", {})
вернёт {}.
Дальше:
{}.get("pump")
вернёт None.
И потом:
None.value
→ ошибка:
AttributeError: 'NoneType' object has no attribute 'value'
2. all_signals[site_name] = None
У тебя есть ветка:
else:
all_signals[site_name] = None
Тогда:
all_signals.get("controlled_site_first", {})
вернёт None, а не {}.
И дальше уже:
None.get("pump")
→ ошибка:
AttributeError: 'NoneType' object has no attribute 'get'
Это даже более опасный кейс.
3. pump может быть None
Если:
t_utils.get_signal(...)
вернёт None, тогда:
.get("pump").value
снова упадёт.