Stromzähler für hwinfo?

Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Und was lernen wir daraus?

Wer zu früh aufsteht, den bestraft das Leben
 
Ich hab heute die neuen Shellys (Plus) bekommen aber klappt leider nicht mit dem Plugin :(
 
Zuletzt bearbeitet:
Ich hatte mich die Tage schon mal dazu belesen und wollte eig. was schreiben. Die APIs wurden bei den Gen2 (Plus) Geräten geändert.
Was kommt da bei dir?
http://<ip-vom-shelly>/status

@FB07

Oder die:
http://<ip-vom-shelly>/rpc/PLUGS_UI.GetStatus
 
Ich hatte mich die Tage schon mal dazu belesen und wollte eig. was schreiben. Die APIs wurden bei den Gen2 (Plus) Geräten geändert.
Was kommt da bei dir?
http://<ip-vom-shelly>/status

@FB07

Oder die:
http://<ip-vom-shelly>/rpc/PLUGS_UI.GetStatus
Funzt nicht

http://<ip-vom-shelly>/status
1686771786177.png



http://<ip-vom-shelly>/rpc/PLUGS_UI.GetStatus
1686771669301.png
 
Ich meine im Browser. ;)
 
Ich meine im Browser. ;)
Achso :d

http://<ip-vom-shelly>/status = not found
http://<ip-vom-shelly>/rpc/PLUGS_UI.GetStatus = { }

Wenn ich die Weboberfläche normal aufrufe sieht es so aus

http://<ip-vom-shelly>#/switch/0/overview
 
Bekommst du da was angezeigt?
http://<ip-vom-shelly>/rpc/shelly.getstatus

Falls du ein PW gesetzt hast vorher in nem anderem Tab einloggen.
 
Ja nur ein leeres Feld
 
Zuletzt bearbeitet:
@lmarkusl Beim Plus Plug (S) gibt es folgende Änderung:

Non-Plus:
URL: http://<ip>/status
value: power

Plus
URL: http://<ip>/rpc/Switch.GetStatus?id=0
value: apower

1686775148661.png


Wäre es möglich, dass du hier eine Abfrage mit einbaust für Non-Plus / Plus oder das in eine Config auslagerst, sodass man das selber anpassen kann?
 
@lmarkusl

Das stammte von mir bitteschön :)

{"id":0, "source":"HTTP", "output":true, "apower":106.4, "voltage":231.1, "current":0.544,
"aenergy":{"total":980.185,"by_minute":[1071.560,65.489,40.436],"minute_ts":1686864691},
"temperature":{"tC":40.1, "tF":104.1}}
 
hast du die Url entsprechend geändert?
hast du unten vorher Shelly Plus Plug S ausgewählt?
kannst du mir die API direkt mal mit nem Browser aufmachen und nen Screen schicken.

Danke

Gruß

1686915451343.png
 
Kommando zurück, wenn ich auf Start drücke sehe ich zwar keine Meldung aber hab es grade unter HWINFO gefunden :d

Klappt vielen Dank :)

1686915584592.png
 
alles klar. ich nehm nacher noch die option in die config mit auf. Dann überlebt die Einstellung auch bei einem Schließen der App.

Gruß
Markus
Beitrag automatisch zusammengeführt:

Na klar kann ich das

Code:
{"StatusSNS":{"Time":"2023-01-15T17:14:42","ENERGY":{"TotalStartTime":"2021-05-13T22:16:15","Total":584.397,"Yesterday":1.211,"Today":0.115,"Power":190,"ApparentPower":210,"ReactivePower":89,"Factor":0.91,"Voltage":225,"Current":0.936}}}

Sorry @Sm0kY88 habs überlesen.
Nehm ich doch dann direkt auch noch auf :)
 
Perfekt danke :)
 
mehr geräte hast du noch auf dem schirm ? ;)
 
mehr geräte hast du noch auf dem schirm ? ;)
Geht es nicht, wenn du dir mehrere Kopien der Exe anlegst und in der jeweiligen config einfach unterschiedliche Namen und die unterschiedlichen IP-Adressen deiner Shellys einträgst?

Natürlich wäre es schöner, wenn ein Prozess mit mehreren Shellys kommunizieren könnte, aber das wäre zumindest ein Workaround.

Ein vermutlich einfacher Fix entwicklungsseitig wäre wohl, wenn man als Startparameter angeben könnte, welche config benutzt werden soll. Dann bräuchte man nur für jedes Shelly eine Config und könnte die Exe mit unterschiedlichen Parametern starten und bräuchte somit keine Kopien.
 
das muss ich die tage mal testen ob das mit der Exe klappt
 
Mit Hilfe des geposteten Powershell Script und Windows 11 Boardmitteln konnte ich den Stromverbrauch des PCs in HWInfo eintragen.
Für die Leistungsmessung wurde ein Shelly Plus Plug S verwendet.

Eine kurze Beschreibung der durchgeführten Schritte:

Windows-Taste + X Terminal (Administrator) aufrufen

PowerShell Entwicklungsumgebung (ISE) starten:

Code:
PowerShell ISE

Datei --> Neu

Nachfolgendes einfügen dabei aber unter $ipOrHostname die IP der Shelly anpassen:

Code:
$ipOrHostname = "0.0.0.0"
$intervalMs = 1000
$deviceName = "HWL Power"
$sensorId = "Power0"
$sensorName = "PC"

try { Get-Item -Path "HKCU:\Software\HWiNFO64\Sensors\Custom" -ErrorAction Stop }
catch { New-Item –Path "HKCU:\Software\HWiNFO64\Sensors\" –Name "Custom" }

try { Get-Item -Path "HKCU:\Software\HWiNFO64\Sensors\Custom\${deviceName}" -ErrorAction Stop }
catch { New-Item –Path "HKCU:\Software\HWiNFO64\Sensors\Custom" –Name ${deviceName} }

try { Get-Item -Path "HKCU:\Software\HWiNFO64\Sensors\Custom\${deviceName}\${sensorId}" -ErrorAction Stop }
catch { New-Item –Path "HKCU:\Software\HWiNFO64\Sensors\Custom\${deviceName}" –Name ${sensorId} }

try { Get-ItemProperty -Path "HKCU:\Software\HWiNFO64\Sensors\Custom\${deviceName}\${sensorId}" -Name "Name" -ErrorAction Stop }
catch { New-ItemProperty –Path "HKCU:\Software\HWiNFO64\Sensors\Custom\${deviceName}\${sensorId}" –Name "Name" -Value ${sensorName} -PropertyType String }

while (1 -eq 1) {
    $request = Invoke-WebRequest "http://${ipOrHostname}/rpc/Switch.GetStatus?id=0"

    if ($request.StatusCode -eq 200)
    {
        $json = $request.Content | ConvertFrom-Json

        $power = $json.apower

        New-ItemProperty –Path "HKCU:\Software\HWiNFO64\Sensors\Custom\${deviceName}\${sensorId}" –Name "Value" -Value $power -PropertyType String -Force
    }

    Start-Sleep -Milliseconds ${intervalMs}
}

Mit Speichern unter... Script speichern. (z.B. Shelly.ps1)

PowerShell Ausführungsrichtlinie abfragen.

Code:
Get-ExecutionPolicy

Ergebnis = Restricted Es darf keine PowerShell Script ausgeführt werden.

Um PowerShell Scripte ausführen zu dürfen wird die Ausführungsrichtlinie in AllSigned geändert.
AllSigned bedeutet PowerShell Scripte dürfen nur ausgeführt werden, wenn sie signiert sind.

Code:
Set-ExecutionPolicy AllSigned

Zertifikat erstellen und einbinden:

Code:
New-SelfSignedCertificate -CertStoreLocation cert:\currentuser\my `
-Subject "CN=PowerShellAllSigned" `
-Type CodeSigningCert `
-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" `
-NotAfter (Get-Date).AddYears(10) `
-KeyAlgorithm RSA `
-KeyUsage DigitalSignature `
-KeyExportPolicy Exportable

Certificate Manager Tool öffnen:

Code:
certmgr /s my

PowerShellAllSigned Zertifikat öffnen.

Zertifikat exportieren:

Details --> In Datei kopieren --> Weiter --> Nein, privaten Schlüssel nicht exportieren
--> DER-codiert-binär X.509 (.CER)

Das exportierte Zertifikat nun in Vertrauenswürdigen Stammzertifizierungsstellen
und in den Vertrauenswürdigen Herausgebern importieren.

Alle Aufgaben --> Importieren

Um das Script mit dem Zertifikat zu signieren:

Code:
Set-AuthenticodeSignature -FilePath F:\Shelly.ps1 -Certificate (Get-ChildItem -Path Cert:\CurrentUser\My\ -CodeSigningCert)

Das Script soll beim Start von Windows automatisch ausgeführt werden.

Aufgabenplanung öffnen:

Code:
taskschd

Aufgabe erstellen --> Allgemein Name: Shelly --> Unabhängig von der Benutzeranmeldung ausführen
Trigger --> Neu --> Aufgabe starten: Bei Anmeldung
Aktion --> Neu --> Aktion: Programm starten --> Programm/Skript: powershell.exe
Argument hinzufügen (optional): F:\Shelly.ps1

Fertig.... beim nächsten Start des Computers sollte der Eintrag in HWInfo angelegt sein.

Gruß
Milbrot
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh