NEWS
HDD Informationen von PC im LAN in ioBroker bereitstellen
-
Hallo,
ich möchte gern den freien Platz auf den Festplatten in meinem Windows Rechner (läuft im lokalen Netzwer vom ioBroker) an ioBroker übertragen.
Probiert habe ich den wiobrowser und windowscontrol. Die können aber keine Auskunft über die HDD's geben.
Am Besten mit Win Boardmitteln, ohne Zusatzsoftware.
Hat noch jemand ne Idee?
Danke vorab
-
-
@sigi234 Ich will die Hdd Daten von meinem Rechner der im selben LAN wie der ioBroker ist aber auf dem der ioBroker nicht läuft.
Aber im Grunde meine ich genau sowas. -
Ok, da muss ich mal überlegen.
Ev. kann @Stabilostick was dazu sagen? -
@rushmed Man kann mit powershell Daten von Windows im JSON zusammenstellen und diese dann über simpleApi an ioBroker schicken.
-
DP anlegen in iobroker -> 0_userdata.0.windows.drivesJSON oder einen anderen, dann anpassen
-
Datei unter drivesData.ps1 anlegen und speichern -> Host und Port anpassen
$ioBrokerHost = "192.168.178.150" $ioBrokerPort = 8083 $dp = "0_userdata.0.windows.drivesJSON" # Laufwerke einsammeln $drives = Get-PSDrive -PSProvider FileSystem | ForEach-Object { $total = [math]::Round(($_.Used + $_.Free) / 1GB, 2) $free = [math]::Round($_.Free / 1GB, 2) $used = $total - $free $pct = if ($total) { [math]::Round(($used / $total) * 100, 1) } else { 0 } [pscustomobject]@{ name = $_.Name label = "$($_.Name):\" totalGB = $total freeGB = $free usedGB = $used usedPercent = $pct } } # JSON erzeugen $payload = [pscustomobject]@{ host = $env:COMPUTERNAME ts = (Get-Date).ToString("s") drives = $drives } $json = $payload | ConvertTo-Json -Depth 6 # Nur den value encodieren $encodedValue = [System.Uri]::EscapeDataString($json) # URL bauen (nur value encoded) $uri = "http://$ioBrokerHost`:$ioBrokerPort/set/$dp`?value=$encodedValue" Write-Host "Sende an:" $uri Invoke-WebRequest -Uri $uri -UseBasicParsing
- In Windows Aufgabenplanung dann eine Aufgabe definieren
Trigger -> Neu -> Wiederholen jede 5 Minuten -> für die Dauer von unbegrenzt
Aktion -> Neu -> Programm starten
Argumente hinzufügen -> -ExecutionPolicy Bypass -File "C:\DATEN\drivesData.ps1"
OK
Es werden dann die Werte alle 5 minuten aktualisiert.
Mögliche zusätzliche Infos wären:
- RAM Gesamt /Verfügbar
- Eingestellte Helligkeit
- installierte Apps
-
-
Ok, welcher ist der iob Port genau?
Wie ist der DP von 0_userdata.0.windows.drivesJSON?Edit:
Geht jetzt, war der falsche Port.
-
Super, genau sowas hab ich gesucht.
Kann ich noch irgendwie verhinder dass das terminal bei der Ausführung immer aufblitzt? -
@rushmed
Kannst dir auch wenn du zeit u lust hadt nsclient++ ansehn.Der war längere Zeit seeeehr still wurde aber offensichtlich wieder gewartet. Bin aber nicht sicher ob der Adapter mit der aktuellen PC Software voll kompatibel ist. Test stehen da auf der langen todo Liste ...
-
@rushmed
über wscript.exe komplett verstecken
Lege eine .vbs-Datei an, z. B. C:\daten\drivesData.vbs:Set objShell = CreateObject("WScript.Shell") objShell.Run "powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File ""C:\daten\drivesData.ps1""", 0
Der , 0 Parameter bedeutet 0 = versteckt.
Im Taskplaner Programm/Skript:
wscript.exe
Argumente:"C:\daten\drivesData.vbs"
Vorteil: Kein Aufblitzen, PowerShell läuft komplett unsichtbar.
-
Coll Danke.
Ich habs zwischenzeitlich schom mit windows-control und getAdmin gelöst.
Jetzt wird immer wenn ich den Raum betrete und iobroker meine Monitore einschaltet oder ich den Rechner runterfahre das Script ausgeführt.
Ebenso per Aufgabenplanung beim Rechnerstart.
Davon sehe ich garnichts und die Aktualisierungsfrequenz reicht mir völlig.Danke.
-
@rushmed Dann schreib bitte genau, wie du es gemacht hast. Dann kann jemand der es auch so machen möchte, nachvollziehen. Danke.
-
Vorraussetzug ist GetAdmin auf dem Slave verbunden mit Windows-Control Instanz auf dem ioBroker.
Command in der Windows-Control Instanz anlegen.
Im GetAdmin:
COMMAND: UpdateDriveStats
PATH or URL: powershell.exe
PARAMETERS: -ExecutionPolicy Bypass -File "D:\Software\WindowsControl\PC-DrivesJSON.ps1"
SHOW CMD: SW_SHOWMINIMIZED#Pfad anpassen!
Dann muss man nurnoch an einem günstigen Zeitpunkten wo man nicht auf den Montitor starrt
windows-control.0.XXX.UpdateDriveStats
auf "wahr" setzen.
-
Nur ne allgemeine Info:
Der Adapter ioBroker.windowscontrol wird anscheinend nicht mehr gepflegt.
Siehe z.B. https://github.com/Mic-M/ioBroker.windows-control/issues/35 aber auch andere offene Issues. Die fehlende Anpassung an den aktuellen Adapter Core kann dazu führen dass dieser Adapter mit dem nächsten js-controller Update nicht mehr lauffähig ist.
Auch das tool GetAdmin hat seit zumindest 5 Jahren keine Updates mehr bekommen (siehe blog).
-
@mcm1957 Beides macht mich sehr traurig.