Ankündigung

Einklappen
Keine Ankündigung bisher.

Werte meiner Solaranlage in der SmartVisu anzeigen lassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Werte meiner Solaranlage in der SmartVisu anzeigen lassen

    Guten Morgen zusammen,

    ich habe jetzt eine Solaranlage von E3DC mit einem KNX Connet. Ich empfange in der ETS folgende Werte:
    Code:
     
    # Zeit Dienst Flags Prio Quelladresse Quellname Zieladresse Zielname Rout Typ DPT Info
    738 31.08.2020 08:06:07,473 vom Bus Niedrig 1.8.1 ise smart connect KNX Programmable 10/0/0 Autarkie Wert 5 GroupValueWrite 5.001 Prozent (0..100%) $31 | 19 %
    739 31.08.2020 08:06:08,470 vom Bus Niedrig 1.8.1 ise smart connect KNX Programmable 10/0/3 Leistung PV 5 GroupValueWrite 14.056 Leistung (W) 43 93 00 00 | 294 W
    740 31.08.2020 08:06:08,509 vom Bus Niedrig 1.8.1 ise smart connect KNX Programmable 10/0/5 Leistung Hausverbrauch 5 GroupValueWrite 14.056 Leistung (W) 44 B2 40 00 | 1426 W
    741 31.08.2020 08:06:08,537 vom Bus Niedrig 1.8.1 ise smart connect KNX Programmable 10/0/6 Leistung Netz 5 GroupValueWrite 14.056 Leistung (W) 44 8D 80 00 | 1132 W
    Die Werte kommen alle 3 Sekunden. Wie kann ich diese am besten in der SmartVisu darstellen?

    Vielen Dank und viele Grüße
    Gatzi

    #2

    Wie "redest" Du denn mit dem Bus?

    Nutzt Du SmartHomeNG als Backend? Dann einfach ein Item dafür einrichten und das Item in der Visu anzeigen.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Sorry, ja nutze ich! Das mit dem Item ist mir soweit klar, es geht mir rein um die optische Darstellung in der Visu, als Diagramm oder Kurve.

      Kommentar


        #4
        Dazu musst Du das entsprechende item in der Datenbank speichern (shNG database plugin) und dann kannst Du es als Plot mit dem plot.period widget ausgeben. Beispiele dafür gibts in der smartVISU inline Doku. Zum database plugin siehe Doku auf smarthomeng.de

        Gruß
        Wolfram

        Kommentar


          #5
          Gatzman Ich habe genau das gleiche Setup. Kann ich dir helfen.

          Momentan schaut das bei mir so aus:

          Anmerkung 2020-08-31 205721.png

          Die Meter und das Batterieicon ändern sich dynamisch, auch die Farbe (danke nochmal wvhn !!!).
          Sieht auch meine Liebste auf einen Blick wie die Lage gerade ist.
          Plots habe ich zwar momentan dafür keine, ist aber gar kein Problem. Wenn, dann ist es ein Problem, wenn du alle drei Sekunden einen Wert in die Database schreibst. Hast wahrscheinlich den üblichen Raspi. Wer weiß wie lange das die SD Karte mitmacht.

          Gruß, Martin

          Kommentar


            #6
            Hallo Martin,

            sehr gerne nehme ich deine Hilfe an. Kannst du mir den Code zur Verfügung stellen? Das wäre sehr nett von dir.

            viele Grüße
            Jürgen

            Kommentar


              #7
              Klar, kein Thema:

              Die Items:

              Code:
              # E3DC.yaml
              %YAML 1.1
              ---
              E3DC:
                  Leistung:
                      PV:
                          type: num
                          knx_dpt: 14
                          knx_cache: 7/0/0
                      Netz:
                          Icon:
                              type: num
                          type: num
                          knx_dpt: 14
                          knx_cache: 7/0/1
                      Batterie:
                          Icon:
                              type: num
                          type: num
                          knx_dpt: 14
                          knx_cache: 7/0/2
                      Haus:
                          type: num
                          knx_dpt: 14
                          knx_cache: 7/0/3
                  Status:
                      Eigenverbrauch:
                          type: num
                          knx_dpt: 5001
                          knx_cache: 7/0/4
                      Autarkie:
                          type: num
                          knx_dpt: 5001
                          knx_cache: 7/0/5
                      Ladezustand:
                          type: num
                          knx_dpt: 5001
                          knx_cache: 7/0/6
              In der logic.yaml:

              Code:
              Leistung_Icons:
                  filename: logic_leistung_icons.py
                  watch_item:
                  -   E3DC.Leistung.Batterie
                  -   E3DC.Leistung.Netz
              Die Logik, die die Meter Icons so manipuliert, dass negative und positive Werte mit Null in der Mitte ausgerichtet angezeigt werden:

              Code:
              #!/usr/bin/env python3
              # Rechnet die Leistung der E3DC Batterie so um,
              # dass man mit dem Meter-Icon positive und negative Werte anzeigen kann
              
              sh.E3DC.Leistung.Batterie.Icon((sh.E3DC.Leistung.Batterie() + 3000) / 60)
              sh.E3DC.Leistung.Netz.Icon(((sh.E3DC.Leistung.Netz() * -1) + 8000) / 160)
              Wobei die 3000 der maximalen Lade-/Entladeleistung meiner E3DC entspricht und die 8000 habe ich mal so nach Gefühl gesetzt für maximalen Bezug/Lieferung am Hausanschluss. Einfach nach belieben anpassen.

              Das kann man mit eval in den items eleganter lösen, aber damals hab ich das noch nicht verstanden und jetzt gilt "never touch a running system".

              Hier noch die Widgets:

              Code:
                  <div class="block">
                      <div class="set-1" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                          <div data-role="collapsible" data-collapsed="false">
                              <h3>Energie</h3>
                              <table width=100%>
                                  <tr>
                                      <td align=left>     
                                          {{ basic.icon('control_building_empty.svg') }}
                                          Leistung Haus:
                                          {{ icon.meter('OV_Haus_Icon', '', 'E3DC.Leistung.Haus', 0, 12000) }}
                                          {{ basic.print('OV_Leistung_Haus', 'E3DC.Leistung.Haus', 'w') }}
                                          <br />
                                          {{ basic.icon('measure_photovoltaic_inst.svg') }}
                                          Leistung PV:
                                          {{ icon.meter('OV_PV_Icon', '', 'E3DC.Leistung.PV', 0, 12000) }}
                                          {{ basic.print('OV_Leistung_PV', 'E3DC.Leistung.PV', 'w') }}
                                          <br />
                                          {{ basic.icon('scene_power_grid.svg') }}
                                          Leistung Netz:
                                          {{ basic.symbol('','E3DC.Leistung.Netz.Icon','', icon.meter('','', 'E3DC.Leistung.Netz.Icon', 0, 100), [49], '>', ['#f00', '#0f0']) }}
                                          {{ basic.print('OV_Leistung_Netz', 'E3DC.Leistung.Netz', 'w', '', [160], ['#0f0', '#f00']) }}
                                          <br />                          
                                          {{ basic.symbol('','E3DC.Status.Ladezustand','', icon.battery2('','', 'E3DC.Status.Ladezustand', 0, 100), [20, 40, 70], '>', ['#f00', '#f79a1f', '#ff0', '#0f0']) }}
                                          Leistung Batterie:
                                          {{ basic.symbol('','E3DC.Leistung.Batterie.Icon','', icon.meter('','', 'E3DC.Leistung.Batterie.Icon', 0, 100), [17, 33, 50], '>', ['#f00', '#f79a1f', '#ff0', '#0f0']) }}
                                          {{ basic.print('OV_Leistung_Batterie', 'E3DC.Leistung.Batterie', 'w', '', [-2000, -1000, -1], ['#f00', '#f79a1f', '#ff0', '#0f0']) }}
                                          <br />                          
                                          {{ basic.stateswitch('', 'E3DC.Leistung.Batterie', 'icon', '', 'measure_battery_75.svg', '', 'blank') }}
                                          SOC Batterie:
                                          {{ basic.symbol('','E3DC.Status.Ladezustand','', icon.meter('','', 'E3DC.Status.Ladezustand', 0, 100), [20, 40, 70], '>', ['#f00', '#f79a1f', '#ff0', '#0f0']) }}
                                          {{ basic.print('OV_Ladezustand_Batterie', 'E3DC.Status.Ladezustand', '%', '', [20, 40, 70], ['#f00', '#f79a1f', '#ff0', '#0f0']) }}
                                          <br />
                                          {{ basic.stateswitch('', 'E3DC.Status.Autarkie', 'icon', '', 'measure_battery_75.svg', '', 'blank') }}
                                          Autarkie:
                                          {{ basic.symbol('','E3DC.Status.Autarkie','', icon.meter('','', 'E3DC.Status.Autarkie', 0, 100), [10, 90], '>', ['#f00', '#ff0', '#0f0']) }}
                                          {{ basic.print('OV_Autarkie', 'E3DC.Status.Autarkie', '%', '', [10, 90], ['#f00', '#ff0', '#0f0']) }}
                                          <br />
                                          {{ basic.stateswitch('', 'E3DC.Status.Eigenverbrauch', 'icon', '', 'measure_battery_75.svg', '', 'blank') }}
                                          Eigenverbrauch:
                                          {{ basic.symbol('','E3DC.Status.Eigenverbrauch','', icon.meter('','', 'E3DC.Status.Eigenverbrauch', 0, 100), [10, 90], '>', ['#f00', '#ff0', '#0f0']) }}
                                          {{ basic.print('OV_Eigenverbrauch', 'E3DC.Status.Eigenverbrauch', '%', '', [10, 90], ['#f00', '#ff0', '#0f0']) }}
                                      </td>
                                  </tr>
                              </table>                
                          </div>
                      </div>
                  </div>
              Ich hoffe die Formatierung kommt einigermaßen rüber und es ging nichts verloren.

              Kommentar


                #8
                Super, vielen lieben Dank! Ich werde es morgen einbauen, testen und dann berichten.

                Kommentar


                  #9
                  Guten Morgen,

                  ich habe es jetzt eingebaut, die Werte sind da, allerdings die Darstellung ist leider nicht korrekt. Hier ein Bild:

                  E3DC_Bild.JPG

                  Leistung Netz und Leistung Batterie passt irgendwie nicht.

                  Vielen Dank schon mal für die weitere Hilfe.

                  Gruss Jürgen

                  Kommentar


                    #10
                    Noch ein paar Erläuterungen:

                    In den Widgets sind noch einige mit einer eindeutigen ID versehen. Das stammt noch aus der Zeit als das nicht anders ging. Inzwischen kann man die weglassen, bzw. man muss nur zwei Hochkommas behalten. Gilt für alles was mit 'OV_' anfängt. Kannst das aber natürlich nach deinem Geschmack ändern.

                    Die format Parameter bei basic.print, z.B. 'w', müssen evtl. in der Datei <smartvisu Ordner>\lang\de.ini sauber definiert sein. Damit kann man z.B. definieren, dass bei 'w' keine Nachkommastellen ausgegeben werden und hinten dran das Einheitszeichen W ausgegeben wird. Beispiel:

                    Code:
                    v = "%d V"
                    a = "%01,2f A"
                    w = "%01,0f W"
                    kwh = "%01,3f kWh"
                    Nicht wundern, dass die Leistungsanzeige für das Netz "anders rum" funktioniert als die für die Batterie. Bei der Batterie ist positiv (Laden) gut und negativ (Entladen) schlecht. Beim Laden steht der Zeiger rechts von der Mitte (keine politische Ausrichtung), beim Entladen links davon).
                    Beim Netz ist aber negativ (Einspeisen) gut und positiv (Bezug) schlecht. Ich wollte trotzdem, dass der Zeiger bei 'gut' nach rechts geht und bei 'schlecht' nach links.
                    Daher ist in der kleinen Logik oben auch das ' * -1' drin. Wenn du das anders haben willst, einfach raus nehmen.
                    Wie erwähnt, entspricht in der Logik die Zahl 3000 für das Batterieicon der maximalen Lade-/Entladeleistung meiner 4 Jahre alten E3DC. Neuere können glaube ich schon 5000W. Sollte das bei dir der Fall sein, musst du die Formel leicht ändern. Anstatt 3000 5000 ist klar, aber du musst auch den Teiler am Ende anpassen. Der Zeiger soll bei 0W in der Mitte stehen. Da das icon.meter einfachheitshalber von 0-100 skaliert, ist der Wert 50 die Mitte. Also muss der Teiler so gewählt werden, dass die Formel bei 0W 50 ergibt. Also z.B. <0W> + 5000 / 100.
                    Beim icon.meter für das Netz gilt das entsprechend. Warum habe ich da 8000 gewählt? Mein Hausanschluss könnte auch 24kW, das kommt in der Praxis aber so nicht vor. Ist ein für mich passender Erfahrungswert. Ich habe eine 10kWp PV Anlage und die speist mit max. 7kW ein. Regelungstechnisch bedingt auch mal kurz mehr. Umgekehrt habe ich glaube ich noch nie mehr als 8kW aus dem Netz gezogen. Das Ziel ist ja Autarkie.
                    Wenn man nun den Wert auf 24kW setzen würde, würde sich der Zeiger im Alltag kaum aus der Mittenposition bewegen. Logarithmisch skalieren wäre eine Lösung, aber auch nicht so super abzulesen und deutlich aufwändiger in der Formel. Für mich passt das.

                    Wenn du die Berechnung lieber mit eval in der Itemdefinition machen willst, geht das wahrscheinlich so (ungetestet!):

                    Code:
                    E3DC:
                        Leistung:
                            Batterie:
                                Icon:
                                    type: num
                                    eval: sh.E3DC.Leistung.Batterie() + 3000) / 60
                                    eval_trigger: E3DC.Leistung.Batterie
                                type: num
                                knx_dpt: 14
                                knx_cache: 7/0/2
                    Damit könntest du dir die Logikdatei und den watch_item Eintrag in der logic.yaml sparen. Werde ich bei Gelegenheit selber mal machen.

                    Wenn dir die Farben und dazugehörigen Schwellwerte nicht gefallen, schau mal in die widget Doku. Wenn du es dann noch nicht verstanden hast, frag gerne nochmal

                    Ich hoffe, du hast die neuste Version 2.9.2 der Smartvisu. Falls dennoch z.B. das spezielle Batterieicon nicht existiert (hat wvhn erst kürzlich netterweise gebaut), musst du dir das von git noch holen. Also nicht nur einfach ein icon, sondern das widget icon.battery2 mit allem was dazugehört. Und zwar hier:

                    https://github.com/smartVISU-newstuf...ee/master/icon

                    Alles runterladen und die existierenden Dateien im widgets Ordner durch die neuen ersetzen.

                    Am Ende bleibt - auch für mich - nur noch eins zu tun: Die interessanten Werte in die SHNG Database zu schreiben und damit einen Plot in der smartvisu anzeigen. Das ist erstmal ganz einfach, allerdings (wie bereits erwähnt) ist das Update Intervall nur 3s. Das ist völlig sinnfrei in der Database. 5min oder so wäre in Ordnung. Mir ist noch nicht eingefallen, wie ich das lösen könnte, dass anstatt 3s nur alle 5min ein Wert geschrieben wird. Auf der anderen Seite habe ich mich aber auch noch nicht näher damit beschäftigt, da ich mir bisher die Plots auf der E3DC Seite direkt ansehe.

                    Aber falls jemand eine Lösung für das Problem hat, mein Dank wird euch wie immer ewig nachschleichen

                    Gruß, Martin

                    P.S. Man könnte natürlich auch z.B. das hier nachbauen:

                    Anmerkung 2020-09-01 091909.png

                    Bin ich aber noch nicht dazu gekommen.
                    Angehängte Dateien

                    Kommentar


                      #11
                      Zitat von Gatzman Beitrag anzeigen
                      Guten Morgen,

                      ich habe es jetzt eingebaut, die Werte sind da, allerdings die Darstellung ist leider nicht korrekt. Hier ein Bild:

                      E3DC_Bild.JPG

                      Leistung Netz und Leistung Batterie passt irgendwie nicht.

                      Vielen Dank schon mal für die weitere Hilfe.

                      Gruss Jürgen


                      Wusste ich's doch. Siehe oben, warst nur schneller

                      Ok, das scene_power_grid icon fehlt noch. Das hat @mdt auch erst kürzlich gebaut. Schick ich dir.
                      Zuletzt geändert von Sipple; 01.09.2020, 08:23.

                      Kommentar


                        #12
                        Hier ist das fehlende power grid icon, muss in <smartvisu Ordner>\icons\ws

                        Angehängte Dateien

                        Kommentar


                          #13
                          Zitat von Sipple Beitrag anzeigen
                          Am Ende bleibt - auch für mich - nur noch eins zu tun: Die interessanten Werte in die SHNG Database zu schreiben und damit einen Plot in der smartvisu anzeigen. Das ist erstmal ganz einfach, allerdings (wie bereits erwähnt) ist das Update Intervall nur 3s. Das ist völlig sinnfrei in der Database. 5min oder so wäre in Ordnung. Mir ist noch nicht eingefallen, wie ich das lösen könnte, dass anstatt 3s nur alle 5min ein Wert geschrieben wird. Auf der anderen Seite habe ich mich aber auch noch nicht näher damit beschäftigt, da ich mir bisher die Plots auf der E3DC Seite direkt ansehe.
                          Ich hab das mit einem zusätzlichen Item gelöst, daß per Cron zyklisch aufgerufen wird.
                          Bei mir kommen die Updates aber aus einer anderen Quelle

                          Code:
                          item:
                              type: num
                              nw: yes
                          
                              db:
                                  type: num
                                  crontab: */5 * * *
                                  database: yes
                                  eval: sh...()
                          Ich hoffe ich hab das jetzt aus dem Kopf richtig aufgeschrieben.

                          Viele Grüße
                          Stefan
                          Zuletzt geändert von stoepf; 01.09.2020, 09:04. Grund: database ergänzt

                          Kommentar


                            #14
                            Oh, das ging schnell. Dankeschön.

                            Klingt auf jeden Fall plausibel.
                            Das 'nw: yes" kenne ich nicht, aber im Abschnitt 'db:' müsste noch 'database: yes' rein, oder?

                            Kommentar


                              #15
                              Zitat von Sipple Beitrag anzeigen
                              Das 'nw: yes" kenne ich nicht
                              Kommt vom Network-Plugin, könnte genauso gut knx etc. sein

                              Zitat von Sipple Beitrag anzeigen
                              aber im Abschnitt 'db:' müsste noch 'database: yes' rein, oder?
                              Stimmt, hab ich oben ergänzt

                              Kommentar

                              Lädt...
                              X