Auslesen JSON Werte als Kurzbefehl

Hallo Apple Community,


Ich habe ein Problem beim erstellen eines gewissen Kurzbefehl.


Ich möchte einen Kurzbefehl erstellen, welcher mir aus dem Wechselrichter unserer Photovoltaikanlage die Werte wie z.B die Kilowattwerte des Verbrauch ,der Produktion, der Einspreisung ins Netz, des Netzbezug und die Prozentwerte des Batteriestatus ausliest.


Die API des Wechselrichter liefert über eine einfache URL Netzwerkabfrage eine JSON Datei.


In dieser JSON Datei sind eigentlich schon alle relevanten Werte sichtbar.


Irgendwie schaffe ich es aber nicht die einzelnen Werte aus der JSON Datei zu extrahieren.


Ich würde diese gerne anschließend in einen vorgefertigten Autotext einfügen, und mir als Nachricht 3x täglich auf meine Apple Watch senden.


anbei ein Screenshot des Kurzbefehl und die JSON als Text:


{

"Body" : {

"Data" : {

"0" : {

"Controller" : {

"Capacity_Maximum" : 22118.0,

"Current_DC" : -3.2998324958123955,

"DesignedCapacity" : 22118.0,

"Details" : {

"Manufacturer" : "BYD",

"Model" : "BYD Battery-Box Premium HV",

"Serial" : "P030T020Z2201101532 "

},

"Enable" : 1,

"StateOfCharge_Relative" : 21.699999999999999,

"Status_BatteryCell" : 3.0,

"Temperature_Cell" : 20.5,

"TimeStamp" : 1677407136,

"Voltage_DC" : 417.89999999999998

},

"Modules" : []

}

}

},

"Head" : {

"RequestArguments" : {

"Scope" : "System"

},

"Status" : {

"Code" : 0,

"Reason" : "",

"UserMessage" : ""

},

"Timestamp" : "2023-02-26T10:25:41+00:00"

}

}


iPhone 12 Pro

Gepostet am 26. Feb. 2023 03:20

Antworten
Frage gekennzeichnet als Höchstrangige Antwort

Gepostet am 26. Feb. 2023 06:35

Danke für Deine Hilfe,


ich hab das soeben laut Deiner Anleitung versucht den Zahlenwert für die JSON "StateOfCharge_Relative" als Zahl abzurufen.


Ich bekomme das leider nicht hin.

Könntest Du mir das bitte in Form eines Kurzbefehl vordefinieren?


Vielen Dank!

8 Antworten

27. Feb. 2023 05:26 als Antwort auf Solaranzeige

Hallo Solaranzeige


anbei, ein weiterer Lösungsversuch / -vorschlag (ungetestet):


  1. Wähle, wie zuvor, die Variable "Inhalt" und gib als Schlüsselpfad die Struktur der JSON-Datei an, um auf das Dictionary / Wörterbuch ... zuzugreifen.
  2. Füge eine weitere Aktion hinzu, indem du auf das "+"-Symbol klickst und "Aus Dictionary holen" auswählst.
  3. Wähle die Variable aus der vorherigen Aktion und gib als Schlüsselpfad "Body.Data.0.Controller.StateOfCharge_Relative" an.
  4. Füge eine weitere Aktion hinzu, indem du auf das "+"-Symbol klickst und "In Zahl konvertieren" auswählst.
  5. Wähle die Variable für den extrahierten Wert aus der vorherigen Aktion und konvertiere sie in eine Zahl.
  6. Füge eine letzte Aktion hinzu, indem du auf das "+"-Symbol klickst und "Nachricht" auswählst.
  7. Füge den Text ein, der den Zahlenwert enthält, z.B. "Der Batteriestatus beträgt [Zahlenwert]%.".
  8. Füge eine Einstellung hinzu, indem du auf das "Einstellungen"-Symbol klickst und die Einstellung "Apple Watch" auswählst.
  9. Speicher den Kurzbefehl.


Dieser Kurzbefehl sollte den "StateOfCharge_Relative"-Wert korrekt auslesen und als Zahlenwert darstellen. Ich hoffe, dass dies funktioniert, da ungetestet. Ansonsten nutze bitte die Hyperlinks zu den bereits genannten Foren, beste Grüße & viel Erfolg!

26. Feb. 2023 05:47 als Antwort auf Solaranzeige

Hallo Solaranzeige


anbei ein ungetesteter Vorschlag / eine Idee zur Lösung:


Nach dem Abrufen der Inhalte via URL und der Zuweisung / Deklaration der Variable "Inhalt":


  1. Füge eine weitere Aktion hinzu, indem du auf das "+"-Symbol klickst und "In Dictionary konvertieren" auswählst.
  2. Wähle die Variable "Inhalt" aus der vorherigen Aktion und gib als Schlüsselpfad die Struktur der JSON-Datei an, um die relevanten Werte zu extrahieren.
  3. Füge eine weitere Aktion hinzu, indem du auf das "+"-Symbol klickst und "Text" auswählst.
  4. Füge die Variablen für die relevanten Werte aus der vorherigen Aktion hinzu, z.B. "Verbrauch", "Produktion", "Einspeisung", "Netzbezug" und "Batteriestatus".
  5. Füge eine letzte Aktion hinzu, indem du auf das "+"-Symbol klickst und "Nachricht" auswählst.
  6. Füge den Text ein, der die relevanten Werte enthält, z.B. "Verbrauch: [Verbrauch], Produktion: [Produktion], Einspeisung: [Einspeisung], Netzbezug: [Netzbezug], Batteriestatus: [Batteriestatus]".
  7. Füge eine Einstellung hinzu, indem du auf das "Einstellungen"-Symbol klickst und die Einstellung "Apple Watch" auswählst.
  8. Speichere den Kurzbefehl.


Jetzt kannst du den Kurzbefehl manuell ausführen oder einen Zeitplan festlegen, um ihn automatisch auszuführen. Um den Kurzbefehl auf deiner Apple Watch zu erhalten, stelle sicher, dass deine Apple Watch mit deinem iPhone verbunden ist und dass du die Benachrichtigungen für die Kurzbefehle-App auf der Apple Watch aktiviert hast.


Für weitere Hilfestellungen / Anpassungen, sowie zum Nachlesen:



Beste Grüße & Viel Erfolg!


26. Feb. 2023 04:53 als Antwort auf Solaranzeige

Hallo Solaranzeige


vielen Dank für deinen Beitrag / deine Frage in der Apple Support Community. Bitte wiederhole deinen Eintrag, nutze bitte für deinen Code die Code-Tags.


Im Augenblick ist es ansonsten sehr unübersichtlich / nicht hilfreich für uns.


In der von Dir gewünschten Planung, aber auch generell, hat es sich bewährt, dass die Abarbeitung in Teilschritten erfolgen sollte. Das heißt, Du legst die erste Bedingung fest, kontrollierst die erfolgreiche Ausführung und erst dann gehst du zum nächsten Schritt, so kannst Du erkennen an welcher Stelle die Stapelverarbeitung der Kurzbefehle, vergleichbar mit einem Flussdiagramm, diese nicht zum Erfolg geführt haben und kannst Korrekturen implementieren.


Nur dieses analytische Abarbeiten führt in Kombination mit der Einhaltung der Syntax zum Erfolg und ist auf alle Vorhaben übertragbar.


Anbei zur leichteren Zielfindung das Kurzbefehle – Benutzerhandbuch - Apple Support (DE)


Wir freuen uns auf deine Antworten.

Beste Grüße



26. Feb. 2023 06:07 als Antwort auf PreCognition

Hallo PreCognition,


Danke für Deine Antwort! Genau genommen sind es zwei JSON Dateien die ich vom Wechselrichter abfragen möchte um jeweils diese Werte einzeln abzufragen.


Mir wäre schon sehr geholfen, wenn mir jemand in der Community zeigen kann wie ich einen einzelnen ZahlenWert aus der JSON auslesen kann. Anbei sende ich Euch beide JSON als Code angefügt.

26. Feb. 2023 06:08 als Antwort auf Solaranzeige

{
   "Body" : {
      "Data" : {
         "0" : {
            "Controller" : {
               "Capacity_Maximum" : 22118.0,
               "Current_DC" : -4.0014738393515108,
               "DesignedCapacity" : 22118.0,
               "Details" : {
                  "Manufacturer" : "BYD",
                  "Model" : "BYD Battery-Box Premium HV",
                  "Serial" : "P030T020Z2201101532     "
               },
               "Enable" : 1,
               "StateOfCharge_Relative" : 16.100000000000001,
               "Status_BatteryCell" : 3.0,
               "Temperature_Cell" : 21.0,
               "TimeStamp" : 1677420046,
               "Voltage_DC" : 407.10000000000002
            },
            "Modules" : []
         }
      }
   },
   "Head" : {
      "RequestArguments" : {
         "Scope" : "System"
      },
      "Status" : {
         "Code" : 0,
         "Reason" : "",
         "UserMessage" : ""
      },
      "Timestamp" : "2023-02-26T14:00:50+00:00"
   }
}

Dieser Thread wurde vom System oder dem Community-Team geschlossen. Du kannst alle Beiträge positiv bewerten, die du hilfreich findest, oder in der Community nach weiteren Antworten suchen.

Auslesen JSON Werte als Kurzbefehl

Willkommen in der Apple Support Community
Ein Forum, in dem Apple-Kunden sich gegenseitig mit ihren Produkten helfen. Melde dich mit deinem Apple Account an, um Mitglied zu werden.