Jump to content
Sign in to follow this  
franzjosef

Fronis JSON API Ausgabe Wert filtern und in Registry schreiben

Recommended Posts

Hallo zusammen,

 

wie ich schonmal in einem anderen Fall geschrieben habe bin ich leider kein Skript-Profi.

Ich habe hier einen PV-Wechselrichter von Fronius deren Daten ich per JSON auslesen kann. Der direkte HTTP Aufruf via

http://192.168.178.60/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData

spuckt mit nachfolgenden Content aus:

{
   "Body" : {
      "Data" : {
         "DAY_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 1138.5
         },
         "DeviceStatus" : {
            "ErrorCode" : 0,
            "LEDColor" : 2,
            "LEDState" : 0,
            "MgmtTimerRemainingTime" : -1,
            "StateToReset" : false,
            "StatusCode" : 7
         },
         "FAC" : {
            "Unit" : "Hz",
            "Value" : 49.979999999999997
         },
         "IAC" : {
            "Unit" : "A",
            "Value" : 2.98
         },
         "IDC" : {
            "Unit" : "A",
            "Value" : 1.49
         },
         "PAC" : {
            "Unit" : "W",
            "Value" : 674
         },
         "TOTAL_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 154984
         },
         "UAC" : {
            "Unit" : "V",
            "Value" : 225.5
         },
         "UDC" : {
            "Unit" : "V",
            "Value" : 491.5
         },
         "YEAR_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 154984.29999999999
         }
      }
   },
   "Head" : {
      "RequestArguments" : {
         "DataCollection" : "CommonInverterData",
         "DeviceClass" : "Inverter",
         "DeviceId" : "1",
         "Scope" : "Device"
      },
      "Status" : {
         "Code" : 0,
         "Reason" : "",
         "UserMessage" : ""
      },
      "Timestamp" : "2019-12-15T12:03:57+01:00"
   }
}

 

Über das zugehörige Handbuch habe ich keine Lösung gefunden einen Einzelwert direkt abzufragen. Interessant wäre diese Ausgabe zu reduzieren bzw. benötige ich lediglich den Wert von "PAC", also in diesem Fall 674 was der aktuellen Leistung entspricht. Die Einheit benötige ich auch nicht. Dieser Wert müsste dann in die Windows Registry geschrieben werden. Das Ganze würde ich in Zeitabständen von 60 Sekunden laufen lassen.

 

Vielen Dank für Tipps und Ratschläge!

Share this post


Link to post

Hi,

 

dann hol den Content doch einfach mal per Invoke-WebRequest und wandel das Ergibnis von JSON (ConvertFrom-Json) um:

$jContent = (Invoke-WebRequest http://192.168.178.60/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData).Content
$Content = ConvertFrom-Json $jContent

Gruß

Jan

Share this post


Link to post
$json=Invoke-WebRequest "http://192.168.178.60/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"
$aktuelleleistung=$json|ConvertFrom-Json |select " Body" -ExpandProperty "Body" | select "Data" -ExpandProperty "Data" | select "PAC" -ExpandProperty "PAC" | select "Value" -ExpandProperty "Value"
Set-ItemProperty -Path “HKCU:\Software\FinalWire\AIDA64\ImportValues” DW1 -Value $aktuelleleistung –Force
exit

Mit diesem Skript ist mir gelungen wonach ich gesucht habt. Vielen Dank!

Share this post


Link to post

Nur so als Anregung: Powershell ist vollständig objektorientiert, das geht auch so:

$aktuelleleistung = ( ConvertFrom-Json -InputObject $json ).Body.Data.PAC.Value

Damit ersparst Dir die vielen Selects :-)

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...