TrueNAS Scale - Einbindung in HomeAssist? + Serial PlugIn

Bohnenhans

Captain
Registriert
Okt. 2022
Beiträge
3.100
1. Ich würde gerne einen TrueNAS Server in Home Assistant einbinden, also HA soll nicht auf dem TrueNAS laufen als App - das ja recht einfach :D - sondern man soll das von einem anderen HomeAssistant aus steuern - z.B. herunterfahren, oder sehen wie viel Platz noch frei ist etc.

Gibt es sowas?

und 2. gibt es irgendwas um ein z.B. (USB/seriell) angebundenes Statusdisplay mit Infos zu versogen?
 
  • Gefällt mir
Reaktionen: Bohnenhans
Jo danke das schaut gut aus für Home Assistant Kontrolle
 
Hmm ja hab mir das mal angeschaut und das echt super gemacht - aber dazu brauche ich ja ein echtes HACS - das mit aber für den Server auf dem HA nebenher läuft einfach zu viel Aufwand.

Da ich in HA eh nur ein paar Funktionen brauche denke ich häkel mir einfach eine TrueNAS API => MQTT Bridge für die paar Infos und Commands alles komplexere mache ich sowieso über die TrueNas Oberfläche.

Aktuell glaub bau ich aber erst mal das TrueNas E-Paper Info Display Ding - das sicher nicht so schwer für das was ich brauche, ich hab das ja schonmal für einen Linux Server gemacht hihi aber natürlich die Software auf dem PC nicht gesichert, als ich TrueNas installiert hab :daumen:

TrueNas hat ja zum Glück ne echt riesige API - verrückt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: derchris
So hab das mal jetzt selber eingebunden - micht interessieren in Home Automation eh eh nur die grundlegenden Dinge des Servers das sind ZFS fehlerfrei ja/nein - Freier Platz - Max HDD Temp - Ein und Ausschalten - das geht dann auch ohne dass ich den Weg gehen muss HACS ind das einfach Docker HA zu integrieren....

Für alles weitere gehe ich auf die WebPage von Truenas die ich aus HA aufrufen kann.

1702854986485.png


Nun läuft halt eine Bash basierte Umsetzung von TrueNAS API (die läuft auf einem anderen System, damit TrueNAS nich so verbastelt werden muss) => MQTT dann kann ich den TrueNas server so einbinden wie die anderen ohne HAOS :D


Hier mal 2 Scripte mit GET und POST wie das mit API=>MQTT bei mir läuft, evtl kann das ja wer als Start brauchen, auch wenn das eigentlich einfach ist - so gaaaaanz viel Errorhandling ist noch nicht drin aber g das macht man ja wenn man mal Langeweile hat

API=>MQTT
Code:
#!/usr/bin/bash

while :
do

myDiskFree=$(./getdiskfree.sh)
myZFSStatus=$(./getzfsstatus.sh)
myHDDTemp=$(./gethottesthd.sh)

mosquitto_pub -h 192.168.0.22 -t 804truenas/status -m "{\"zfsstatus\":\"$myZFSStatus\",\"hddtempmax\":$myHDDTemp,\"hddspacefree\":$myDiskFree}"

sleep 60
done

und dann halt z.B. per API die wärmste HDD raussuchen

Code:
#!/bin/bash

. "./truenas_conf.txt"

myDevices=""

myCommand=$(echo "curl -s -X GET \"http://$myIP/api/v2.0/disk\" -H \"Authorization: Bearer $myAPIKey\" | grep \"devname\" | sed 's/.*:..//' | sed 's/.,.*//'")

while read -r line
do
   myDevices=$(echo "\\\""$line\\\"",$myDevices")
done <<< $(bash -c "$myCommand")

myDevices=$(echo "$myDevices" | sed 's/.$//')

myCommand=$(echo "curl -s -X POST \"http://$myIP/api/v2.0/disk/temperatures\" -d \"{\\\""names\\\"": ["$myDevices"], \\\""options\\\"": { \\\""only_cached\\\"": false }}\"")
myCommand=$(echo "$myCommand -H \"Authorization: Bearer $myAPIKey\"")

myMaxTemp=0

while read -r line
do
    myAktTemp=$(echo "$line" | awk '{ print $2 }' | sed 's/,//')
    if ! [ -z $myAktTemp ]; then
       if (( $myAktTemp > $myMaxTemp )); then
          myMaxTemp=$myAktTemp
       fi
    fi
done <<< $(bash -c "$myCommand")

echo "$myMaxTemp"
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: derchris
Zurück
Oben