Sign inSign up

mtjr/hardwaremonitor

By mtjr

Updated about 4 years ago

Sende Open Hardware Monitor Daten an IoBroker

Image
0

1.0K

mtjr/hardwaremonitor repository overview

Monitoring Service

https://github.com/MTrinkiesJr/MTJR.HardwareMonitor/tree/20220727.2

ServiceBuild Status
DockerBuild Status

Dieser Service bietet die Funktion Daten aus Open Hardware Monitor auszulesen und in einer Übersicht anzuzeigen.

Funktionsweise

Die Daten werden periodisch aus der Ferne über den "Remote Web Server" von Open Hardware Monitor abgefragt. Über eine Razor Webseite werden die Daten für die konfigurierten Server angezeigt. Der Service stellt ebenfalls eine SignalR Schnittstelle bereit, welche die Seite verwendet um die Werte periodisch zu aktualisieren. Die Schnittstelle informiert auch über Änderungen an den Servereigenschaften.

Optional können die Daten an IoBroker gesendet werden. Dafür ist der Adapter simple-api notwendig.

Swagger

Unter dem dem Endpunkt http://{Ip}:{Port}/swagger (http://localhost:5000/swagger) ist die API Dokumentation des Service, kann somit auch optional anderweitig verwendet werden.

Voraussetzungen

Um diesen Service zu verwenden werden folgende Komponenten benötigt

Optional für IoBroker:

Der Service kann ebenfalls in Docker verwendet werden, mehr dazu hier

Installation

Der Service wurde Hauptsächlich für die Verwendung in Docker entwickelt. Dennoch kann der Service nativ unter Windows, Linux, MacOS und IIS Service betrieben werden.

Dafür kann die neuste Version unter "Releases" runtergeladen werden. Sind die Voraussetzungen erfüllt und die Konfiguration korrekt, kann der Service mit der Betriebssystemabhängigen ausführbaren Datei gestartet werden. (Windows: MTJR.HardwareMonitor.exe, Linux: MTJR.HardwareMonitor, macOS: MTJR.HardwareMonitor.app). Für IIS bitte folgende Anleitung für das Bereitstellen verfolgen.

Konfiguration

Die Konfiguration des Service selber erfolgt über die "appsettings.json" bzw. "appsettings.production.json".

Hier wird die Verbindung zu PostgreSQL eingetragen. Die "appsettings.json" enthält zunächst die Konfiguration für das Logging. Die "appsettings.production.json" wird verwendet wenn auch die Umgebungsvariable "ASPNETCORE_ENVIRONMENT=Production" gesetzt ist. Die Konfiguration sollte folgendes enthalten:

{
  "HardwareMonitorConfiguration": {
    "DatabaseConnectionString": "Server={ServerIP oder Hostname};Port={Postgres Port (5432)};Database={Datenbankname};User Id={Benutzername};Password={Passwort}"
}

Wichtig Der Datenbank muss auf der Datenbank das Recht haben Tabellen anzulegen.

Umgebungsvariablen

Der Port kann über die Umgebungsvariable ASPNETCORE_URLS=http://*:5000 konfiguriert werden, wobei Port 5000 Standard ist.

PostgreSQL kann statt in der Konfigurationsdatei auch über die Umgebungsvariable HardwareMonitorConfiguration__DatabaseConnectionString=Server={ServerIP oder Hostname};Port={Postgres Port (5432)};Database={Datenbankname};User Id={Benutzername};Password={Passwort} konfiguriert werden.

Der Service ist damit startbereit.

Server konfigurieren

Über die Seite des Service unter http://{Ip}:{Port} (http://localhost:5000) ist zunächst eine leere Liste zu sehen. Klickt man nun auf das + wird die Eingabemaske für einen Server angezeigt.

NeuerServer

Um den Server zu bearbeiten kann in der Liste auf den Namen geklickt werden.

Service Oberfläche und IoBroker

Klickt man oben links auf das Zahnrad kommt man zu Oberflächen- und IoBroker-Einstellungen. Hier wird ebenfalls eine Liste der Verbundenen Clients angezeigt. Die Einstellungen sollten alle selbsterklärend sein.

Einstellungen

IoBroker

Ist in den Einstellungen "Daten an IoBroker senden" aktiv, werden die Daten aus Open Hardware Monitor an IoBroker gesendet, wobei dies über den Adapter rest-api geschieht. Alle Zustände befinden sich unter 0_userdata.0.HardwareMonitor

IoBroker

Docker

Das Repo enhält eine Dockerfile, das Docker Image kann hier runtergeladen werden. Zum starten folgendes Kommando ausführen:

docker run -d --name HardwareMonitor -p 5000:5000 -e HardwareMonitorConfiguration__DatabaseConnectionString=Server={ServerIP oder Hostname};Port={Postgres Port (5432)};Database={Datenbankname};User Id={Benutzername};Password={Passwort} mtjr/hardwaremonitor

Zusätlich beinhaltet das Repo eine Docker Compose Datei welche, mit dem Befehl

docker compose up -d 

den Service sowie PostgreSQL startet

In Arbeit

ToDo
  • Docker Compose
  • Im Moment werden nur GPU Daten von NVIDIA Grafikkarten ausgelesen, in Zukunft sollen alle unterstützt werden
  • Bei mehr als einer Grafikkarte wird in IoBroker nur eine angezeigt. Dies wird in Zukunft optional als JSON Tabelle in IoBroker angelegt
Hinweise
  • Der Intervall für einen Server kann Minimum 1 Sekunde sein, hierbei verbraucht der Service jedoch einiges an Ressourcen you've been warned
  • Die Daten der Festplatten wird als JSON Tabelle in IoBroker abgelegt, da hier mehrfache möglich sind. (Für meinen Anwendungsfall alle in VIS bzw. Jarvis darzustellen besser)
  • Warum nicht als IoBroker Adapter? Diesen Service kann man unabhängig von IoBroker und Open Hardware Monitor bereitstellen, da nicht jeder die Verbindung zu IoBroker benötigt. Auch verbraucht das auslesen der Daten und speichern in IoBroker recht viele Ressourcen, frisst also nicht die von IoBroker. Der Service wurde in erster Linie nur als Überwachungstool für Server/ Computer konzipiert, die Anbindung an IoBroker kam später

Tag summary

Content type

Image

Digest

sha256:1dc8f6e02

Size

90.1 MB

Last updated

about 4 years ago

docker pull mtjr/hardwaremonitor