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

    #16
    Vielen Dank, ihr seid super! Werde es versuchen einzubauen und gebe wieder eine Rückmeldung.

    Kommentar


      #17
      stoepf

      Danke.

      Jetzt schnall ich das. Der Trick ist das */5 -> "alle 5 Minuten". Den kannte ich auch noch nicht. Steht natürlich auch so in der Doku, aber wie gesagt, habe mich bisher nicht ernsthaft mit dem Problem beschäftigt. Na, das baue ich doch zeitnah ein.

      Kommentar


        #18
        Mist, zu früh gefreut.

        Item:

        Code:
        E3DC:
            Leistung:
                PV:
                    type: num
                    knx_dpt: 14
                    knx_cache: 7/0/0
                    Plot:
                        type: num
                        crontab: */5 * * *
                        database: yes
                        eval: sh.E3DC.Leistung.PV()
        Fehlermeldung im SHNG Log:

        Code:
        2020-09-01  11:10:36 WARNING  lib.shyaml          Unable to correct line number for yaml-file error. Wrong line number is  undefined alias '/5'
          in "<unicode string>", line 12, column 26:
                            crontab: */5 * * *
                                     ^ (line: 12
        2020-09-01  11:10:36 ERROR    lib.shyaml          YAML-file load error in /usr/local/smarthome/items/E3DC.yaml:  
        found undefined alias '/5'
          in "<unicode string>", line 12, column 26:
                            crontab: */5 * * *
                                     ^ (line: 12)
        Er nimmt das */5 * * * im Crontab Eintrag so nicht.

        Ich habe das jetzt mal in Hochkommas gesetzt, die Fehlermeldung ist weg.
        Funktioniert aber trotzdem nicht. Auch nach 15 Minuten noch kein Wert im Item.

        Und noch ne Frage:
        Bekommt man das auch mit init kombiniert? Also beim Start von SHNG und alle 5 Minuten?

        Kommentar


          #19
          Wenn ich den internen Item-Editor vom SHNG Admin Interface verwende, meckert er schon beim Versuch das zu sichern:

          Anmerkung 2020-09-01 122204.png

          Ich sehe da schlicht keinen Fehler. Steht so ja auch in der Doku.
          Angehängte Dateien

          Kommentar


            #20
            Man braucht noch Hochkommas:
            Code:
            crontab: '*/5 * * *'

            Kommentar


              #21
              Zitat von Sipple Beitrag anzeigen
              Ich habe das jetzt mal in Hochkommas gesetzt, die Fehlermeldung ist weg.
              Funktioniert aber trotzdem nicht. Auch nach 15 Minuten noch kein Wert im Item.
              Hab ich wie gesagt gemacht, dann gibt es keine Fehlermeldung mehr, aber es passiert schlicht nichts. Das Hilfsitem wird nicht aktualisiert.
              Im Item Scheduler steht es mit den Hochkommas richtig drin.
              E3DC.Leistung.PV.Plot 2020-09-01 13:05:00+0200 3 None - {'*/5 * * *': None}
              Wird dort auch brav alle 5min aktualisiert. Aber das item selber bekommt keinen Wert zugewiesen.
              Brauche ich da wieder ein enforce_updates oder sowas?

              Aber da das eher eine SHNG Angelegenheit ist, sollte man das wohl besser dort diskutieren.
              Zuletzt geändert von Sipple; 01.09.2020, 12:05.

              Kommentar


                #22
                Sipple vielen Dank, habe die Dateien ersetzt und ergänzt und es sieht aus wie bei Dir! Vielen Dank!

                Was machst Du sonst noch mit der Solaranlage in der Visu, ausser dir die Werte anzuschauen? Schaltest du etwas?

                Auf deinem ersten Bild ist noch etwas von Lieferung und Bezug zu sehen, welche Werte sind das? Jährlich, monatlich ?

                Ich würde mir gerne die gesamte Produktion, Einspeisung und den Verbrauch anzeigen lassen, am liebsten sortiert nach Monaten und eben der Gesamtheit. Ist das möglich?

                Hier mein aktuelles Bild...
                E3DC_Bild.JPG

                Kommentar


                  #23
                  Möglich ist alles

                  Jetzt hast du schon mal ein Grundgerüst und kannst darauf aufbauen. Ich bastel gerade daran ein paar sinnvolle Plots einzubauen, habe aber noch ein Problem mit dem Crontab.

                  Die beiden Werte die du ansprichst sind einfach nur die aktuellen Zählerstände des offiziellen Zweirichtungszählers vom Stromversorger. Die lese ich an anderer Stelle per RS485 aus und zeige sie hier an. Nichts besonderes.

                  Noch steuere ich innerhalb von SHNG und smartVISU nichts per Logik in Abhängigkeit der E3DC Daten. Einen Anwendungsfall habe ich für unseren kleinen Elektroflitzer. Den lade ich über eine go.e Wallbox und die wird wiederum von einer openWB Installation gesteuert. Die holt sich die E3DC Werte aber direkt über Modbus, also unabhängig von KNX. Die openWB regelt dann den Ladestrom für das E-Auto in Anhängigkeit vom PV Überschuss. Funktioniert auch gut.

                  Ich habe mal Waschmaschine/Trockner/Geschirrspüler über das Überschussbit der E3DC eingeschaltet, aber wieder verworfen. In der Praxis sind meine Frau und ich da immer noch cleverer als jede Logik. Sprich: Wann sollten die Geräte laufen? Das haben wir gut im Griff. Nicht alles, was man automatisieren kann, macht immer Sinn. Muss man im Einzelfall sehen.

                  Irgendwann kommt noch eine SGReady Wärmepumpe an die E3DC. Mal sehen.

                  Kommentar


                    #24
                    Zitat von Sipple Beitrag anzeigen
                    Hab ich wie gesagt gemacht, dann gibt es keine Fehlermeldung mehr, aber es passiert schlicht nichts. Das Hilfsitem wird nicht aktualisiert.
                    Im Item Scheduler steht es mit den Hochkommas richtig drin.
                    Das hatte ich überlesen.
                    Jetzt musst ich doch noch in meine Konfiguration schauwn. Es muss noch ein '=1' angehängt werden.
                    Code:
                    crontab: '*/5 * * * = 1'
                    Das mit dem init müsste auch gehen, müsste dann so oder so ähnlich aussehen:
                    Code:
                    crontab:
                        - init
                        - '*/5 * * * = 1'

                    Kommentar


                      #25
                      So, funktioniert.

                      Beispiel Items:

                      Code:
                      # E3DC.yaml
                      %YAML 1.1
                      ---
                      E3DC:
                          Zeitgeber:
                              type: num
                              crontab:
                                  - init = 1
                                  - '*/5 * * * = 1'
                              enforce_updates: true
                          Leistung:
                              PV:
                                  type: num
                                  knx_dpt: 14
                                  knx_cache: 7/0/0
                                  Plot:
                                      type: num
                                      database: yes
                                      eval: sh.E3DC.Leistung.PV()
                                      eval_trigger: E3DC.Zeitgeber
                              Netz:
                                  Icon:
                                      type: num
                                  type: num
                                  knx_dpt: 14
                                  knx_cache: 7/0/1
                                  Plot:
                                      type: num
                                      database: yes
                                      eval: sh.E3DC.Leistung.Netz()
                                      eval_trigger: E3DC.Zeitgeber
                              Batterie:
                                  Icon:
                                      type: num
                                  type: num
                                  knx_dpt: 14
                                  knx_cache: 7/0/2
                                  Plot:
                                      type: num
                                      database: yes
                                      eval: sh.E3DC.Leistung.Batterie()
                                      eval_trigger: E3DC.Zeitgeber
                              Haus:
                                  type: num
                                  knx_dpt: 14
                                  knx_cache: 7/0/3
                                  Plot:
                                      type: num
                                      database: yes
                                      eval: sh.E3DC.Leistung.Haus()
                                      eval_trigger: E3DC.Zeitgeber
                          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
                                  Plot:
                                      type: num
                                      database: yes
                                      eval: sh.E3DC.Status.Ladezustand()
                                      eval_trigger: E3DC.Zeitgeber
                      Es gibt EIN Hilfsitem 'E3DC.Zeitgeber' welches beim Start und alle 5 Minuten dafür sorgt, dass die eval_trigger auslösen und somit jeweils der aktuelle Wert von z.B. 'E3DC.Leistung.PV' in ein weiteres Hilfsitem, entsprechend 'E3DC.Leistung.PV.Plot', kopiert wird und das wird dann in die Database geschrieben.

                      Schnell hingerotzter Plot:

                      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>E3DC Plots</h3>
                                        {{ plot.period('', ['E3DC.Leistung.PV.Plot', 'E3DC.Leistung.Batterie.Plot', 'E3DC.Leistung.Netz.Plot', 'E3DC.Leistung.Haus.Plot', 'E3DC.Status.Ladezustand.Plot'], ['max', 'max', 'max', 'max', 'max'], '24h', '', ['', 0], ['', 100], 100, ['PV', 'Akku', 'Netz', 'Haus', 'SoC'], ['#f79a1f', '#0f0', '#f00', '#00f', '#fff'], ['areaspline', 'areaspline', 'spline', 'spline', 'stair'], ['', 'Leistung in W', 'SoC in %'], '1h', [1, 1, 1, 1, 2], [0, 1], '', '', ['w', '%']) }}
                                  </div>
                              </div>
                          </div>
                      Schaut dann etwa so aus (noch nicht sehr viele Werte drin):

                      Anmerkung 2020-09-01 214032.png

                      Damit kann man nun rumspielen.
                      Zuletzt geändert von Sipple; 01.09.2020, 21:36. Grund: Weier verfeinert

                      Kommentar


                        #26
                        hab mir sowas gebastelt..

                        widget_pv.jpg

                        siehe hier

                        hier der Link zu den Dateien
                        pv - Ordner mit den Bilddateien
                        widget_mypv.html - das Widget von mir zusammengebastelt - (sicher nicht professionell gelöst)
                        photovoltaik.conf - meine Item-Struktur / noch nicht in yaml umgewandelt

                        readme.md - der html-code so wie ich das Plugin in der entsprechenden Seite eingepflanzt habe.

                        Gruß Ivan

                        Kommentar


                          #27
                          Sehr schön!

                          Kommentar


                            #28
                            Hab die power_grid svgs mal etwas verschlankt und in die SV-übliche Größe gebracht. Dateien (sw, ws) anbei. So committe ich sie auch für die nächste SV-Version.

                            Sipple ,was hältst Du davon, wenn Du die fertigen Dateien zur Verfügung stellst und wir auf smartvisu-newstuff eine "best practice gallery" machen, wo wir solche guten Beispiele sammeln? Die beliebteste Version kann man dann sicherlich auch in die Beispielseiten "Example1.smarthome" integrieren.

                            ivande , Deine Lösung könnte ich auf smartvisu-newstuff verlinken, oder auch die die Dateien dort einstellen. Was ist besser?

                            Gruß
                            Wolfram
                            Angehängte Dateien

                            Kommentar


                              #29
                              Ja klar, von mir aus gerne. Müsste die Dateien aber noch etwas aufarbeiten, da steht noch ne Menge altes Zeug drin. Am Wochenende kann ich das erledigen.

                              Wenn ich Ahnung hätte (und die habe ich nicht, zumindest nicht genug) würde ich glatt ein Widget basteln, dem man nur die Messdaten-Items übergibt. So wie z.B. ein RTR Widget oder die UZSU oder sowas. Ich habe das eine oder andere existierende Widget für meine Zwecke leicht abgeändert, aber für mehr reicht es nicht.

                              Das was Ivande gebaut hat, vielleicht noch etwas aufgehübscht, als Widget wäre schon toll. Messwerte übergeben, fertig.
                              Ich würde z.B. die Linien weglassen und die Icons anders zentrieren, aber ansonsten ist das genau das, was mir vorschwebt.


                              Kommentar


                                #30
                                Ein widget wäre sicher sehr einfach zu erstellen: man nimmt einfach Deinen html-Code, ersetzt die items durch Variablen, die man dann oben im Makro-Kopf beschreibt und hinter dem Makronamen als Parameter übergibt. Danach fängt aber die eigentliche Arbeit an:
                                • Parameter müssen skalierbar gemacht werden, denn jede PV-Anlage hat andere Leistungsdaten. Zusätzlich werden Default-Werte benötigt.
                                • Manche Parameter sind optional, denn es gibt PV-Anlagen z.B. mit oder ohne Batterie -> die Anzeigeelemente müssen ausgeblendet werden.
                                • und so weiter.
                                D.h. der Aufwand, das Widget zu parametrieren ist so hoch, wie sich einmalig die html-Seite so zu erstellen, wie man sie braucht (mit Deiner super Vorlage z.B.).
                                Widgets sind ja dazu da, wiederkehrende Aufgaben zu erledigen. Ein normales Haus hat viele RTRs aber meist nur eine PV-Anlage.
                                Deshalb würde ich von einem Widget eher absehen und stattdessen eine gute Beispielseite zur Verfügung stellen.

                                Anders ist es vielleicht bei der Grafik von ivande : hier ist die Anordnung der Elemente knifflig und könnte von einem Widget stabil aufgebaut werden.

                                Kommentar

                                Lädt...
                                X