Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX + Gira X1 + Fronius Wechselrichter + Grafana Dashboard

Einklappen
Dieser Beitrag wurde beantwortet.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    KNX + Gira X1 + Fronius Wechselrichter + Grafana Dashboard

    Hallo Zusammen,

    ich hab hier im Forum sehr wertvolle Tipps beim Suchen gefunden und konnte soweit mal alles gut vorbereiten.
    An einer kleinen Stelle hakt es jedoch noch und ich komme einfach nicht weiter.

    Ziel:
    der Gira X1 holt die Daten via Fronius "solar_api" vom Wechselrichter ab und liefert diese in eine InfluxDB.
    Ab dort kann ich die Daten abgreifen und im Grafana darstellen.

    Bisheriges Setup:
    Die Rot durchgestrichenen bitte ignorieren - das war nur zum Werte auf der App abgreifen...
    image.png​​


    Details zum Setup:

    Orange (URL)
    Code:
    http://wechselrichter-ip/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System
    Grün (URL)
    Code:
    http://wechselrichter-ip/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System
    Blau (Formel)
    Code:
    {text:S}.Replace("\"1\"","\"one\"").Replace("null","0.0")
    (Quelle: https://knx-user-forum.de/forum/%C3%...e9#post1658789)

    Gelb (Formel)
    Code:
    {text:S}.Replace("\"1\"","\"one\"").Replace("null","0.0")
    Violett (JSON-Parser)
    Code:
    Pfad 1 = /root/Body/Data/PAC/Values/one
    Pfad 2 = /root/Body/Data/DAY_ENERGY/Values/one
    Pfad 3 = /root/Body/Data/TOTAL_ENERGY/Values/one


    Baby-Blau (JSON-Parser)
    Code:
    Pfad 1 = /root/Body/Data/0/PowerReal_P_Sum
    --> Das scheint nicht zu klappen, wobei ich die notation einhalte - siehe:
    image.png



    Jedenfalls erhalte ich auch bei einer Simulation am Ende immer den Fehler oben. Eigentlich sollte ich ja die "-737.60" von PowerReal_P_Sum sehen, allerdings ist das nicht der Fall.

    Bin noch nicht ganz rausgekommen, wie das idealerweise Funktioniert.
    Habe allerdings auch erst 2-3h Erfahrung mit der X1 und dem gesamten Konstrukt - dachte ich schreib mal alles zusammen und frage euch Experten hier :-)

    Bin über jeden Tipp dankbar
    Zuletzt geändert von yaya; 04.12.2022, 19:12.
  • Als Antwort markiert von yaya am 05.12.2022, 16:26.

    Hah!
    danke derPaul - das war die Lösung.
    Habe die REGEX-Expression noch umbauen müssen zu:
    Code:
    {text:S}.Replace("\"1\"","\"one\"").Replace("null","0.0").Replace("\"0\"","\"zero\"")
    Jetzt kommen die erwünschten Daten an - siehe:
    image.png

    Kommentar


      #2
      Hallo yaya

      Ich mache das auch so , nutze aber den unteren link - habs vor einigen jahren so eingerichtet
      nach einem update von fronius hat fronius DeviceID auf DeviceId geändert. (das kann immer passieren )

      http://Fronius-IP/solar_api/v1/GetIn...vice&DeviceId= 1&DataCollection=CommonInverterData

      im json parser
      pfad 1
      /root/Body/Data/DAY_ENERGY/Value
      pfad 2
      /root/Body/Data/PAC/Value
      pfad 3
      /root/Body/Data/TOTAL_ENERGY/Value
      pfad 4
      /root/Body/Data/YEAR_ENERGY/Value
      pfad 5
      /root/Body/Data/PAC/Value

      so funktioniert das bei mir.
      vielleicht hilft dir das

      lg
      Volker

      image.png

      Kommentar


        #3
        Hi Volker,
        lieben Dank für deine schnelle Antwort.

        Die Daten die du angibst, sehe ich bereits im VIOLETTEN Teil.
        Ich suche die Möglichkeit den aktuellen Stromverbrauch darzustellen - den bekommst man per API über die URL im ORANGENEN.

        Da kommt aktuell noch die Fehlermeldung wie oben im Screenshot zu sehen ist.
        Hier nochmal der Fehler:
        image.png

        Kommentar


          #4
          Ohne es jetzt genau zu kennen würde ich aber denken das du dem Replace noch ein Wert ergänzen musst.
          Nämlich:

          Code:
          .Replace("0","zero")
          Weil der SmartMeter Response hat noch mal numerische Keys und wenn ich das richtig aus dem anderen Thread verstanden habe hat der Parse genau damit Probleme.

          Also deine gelbe Formel müsste so aussehen :

          Code:
          {text:S}.Replace("\"1\"","\"one\"").Replace("null","0.0").Replace("0","zero")
          LG

          Kommentar


            #5
            Guter Punkt - hab das gleich mal ausprobiert - leider ersetzt der alle 0'en - siehe:

            image.png

            ich verfolg den Ansatz aber mal - vielleicht kann man etwas Richtung Regex zusammenbauen..​

            Kommentar


              #6
              Beim Replace("0","zero") gleiches Vorgehen wie bei der 1, so dass nach "0" gesucht wird:
              Code:
              Replace("\"0\"","\"zero\"")

              Kommentar


                #7
                Hah!
                danke derPaul - das war die Lösung.
                Habe die REGEX-Expression noch umbauen müssen zu:
                Code:
                {text:S}.Replace("\"1\"","\"one\"").Replace("null","0.0").Replace("\"0\"","\"zero\"")
                Jetzt kommen die erwünschten Daten an - siehe:
                image.png

                Kommentar


                  #8
                  sauber … das freut mich … 👍🏻

                  Kommentar

                  Lädt...
                  X