ha-kiosk-agent/src/device.py

55 lines
1.5 KiB
Python

import logging
import psutil
import socket
import subprocess
import time
import ha_mqtt_discoverable
import ha_mqtt_discoverable.sensors
from paho.mqtt.client import Client, MQTTMessage
from enum import Enum
class Device:
name = ""
device_id = ""
mqtt_settings = None
mqtt_device = None
def __init__(self, name, device_id, mqtt_settings: ha_mqtt_discoverable.Settings.MQTT):
self.name = name
self.device_id = device_id
self.mqtt_settings = mqtt_settings
device_manufacturer = self._read_device_manufacturer()
device_model = self._read_device_model()
device_hw_version = self._read_device_hw_version()
self.mqtt_device = ha_mqtt_discoverable.DeviceInfo(
name=name,
identifiers=device_id,
manufacturer=device_manufacturer,
model=device_model,
hw_version=device_hw_version)
def _read_device_manufacturer(self) -> str:
with open('/sys/devices/virtual/dmi/id/chassis_vendor') as f:
return f.readline()
def _read_device_model(self) -> str:
with open('/sys/devices/virtual/dmi/id/product_family') as f:
return f.readline()
def _read_device_hw_version(self) -> str:
with open('/sys/devices/virtual/dmi/id/product_name') as f:
return f.readline()
def get_device_id(self):
return self.device_id
def get_mqtt_device(self):
return self.mqtt_device
def get_mqtt_settings(self):
return self.mqtt_settings