Ankündigung

Einklappen
Keine Ankündigung bisher.

Erste Schritte mit dem WireGate - ein paar Fragen....

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Erste Schritte mit dem WireGate - ein paar Fragen....

    Soooooo, jetzt hab' ich auch endlich mein WireGate bekommen (auch von mir an dieser Stelle ein Lob für die schnelle Abwickulung und den zügigen Versand!) und am WE auch schon angefangen ein bißchen damit zu spielen. Dabei sind ein paar Fragen/Probleme aufgetaucht.

    Zur grundlegenden Situation:
    Da ich bislang weder KNX noch 1-Wire in Betrieb habe (wir haben auf der Baustelle zwar schon einiges an Leitungen verlegt, aber Verteilung wird gerade noch aufgebaut und ich wollte im Rohbau auch noch keine Tastsensoren oder PM's installieren) soll das WireGate zu Anfang erstmal nur die Daten von meiner Photovoltaikanlage loggen. Also (zwecks bequemerem Arbeiten) auf der Baustelle Wechselrichter abgefragt, .html-Datei lokal gespeichert und mit nach Hause genommen, WireGate angeschlossen und versucht ein Plugin zu basteln das mir die Daten extrahiert. Das hab ich (zumindest offline) jetzt soweit im Griff, Live-Test folgt heute nachmittag ;-)

    Es sind aber einige Fragen aufgetreten, die ich hier mal stellen wollte:

    1.
    Ich hatte zunächst geplant die Antwort des Wechselrichtes lokal auf dem WireGate abzulegen, um das Plugin zu testen. Habe dann die Datei unter /tmp/ hochgeladen im Plugin versucht mit get("/tmp/index.fhtml") darauf zuzugreifen.
    Frage: Kann der get-Befehl nur http-Anfragen und nicht aufs Dateisystem zugreifen oder habe ich einen anderen Fehler gemacht?

    2.
    Im Plugin habe ich dann nach und nach erstmal die Datei eingelesen, dann anhand der html-Tags in einzelne Zellen zerlegt und schließlich die Tags entfernt um an die Zahlenwerte zu kommen. Den Inhalt der Variablen habe ich mir bei jedem Schritt über return() ausgeben lassen.
    Teilweise waren noch html-Tags in den Variablen enthalten, die ich mit s/</&lt;/g; maskiert habe um sie bei der Ausgabe im Webmin korrekt angezeigt zu bekommen. Nach dem Abspeichern und wieder öffnen des Plugins stand dann dort s/</<;/g; was leider wenig sinnvoll war. Also half nur im Texteditor bearbeiten und bei jeder kleinen Änderung das komplette Plugin neu einfügen.
    Frage: Kann man das irgendwie vermeiden das aus maskierten Zeichen nach dem Speichern wieder die Originalzeichen werden?

    3.
    Da ich noch keine Temperatursensoren angeschlossen habe, habe ich natürlich auch noch keinen Link zu einem Diagramm im Webmin. Den Link zum Diagrammaufruf habe ich hier im Forum aber irgendwo gefunden.
    Frage: Gibt es irgendwo eine Liste der Parameter die man angeben kann/muss etc. um das Diagramm zu parametrieren? Einiges ist ja fast selbsterkärend, aber eben nicht alles.

    4.
    Kann ich irgendwo sehen, welche rrd's bereits angelegt sind und diese ggf. löschen? Ich möchte vermeiden das der ganze Müll den ich beim Testen evtl. erzeugt habe liegenbleibt...

    5.
    Ich würde auch gerne die Tages- und Monatssummen der Erträge abspeichern. Da reicht mir natürlich ein Wert pro Tag bzw. Monat aus. Kann man das auch über eine geeignet parametrierterrd machen?

    Danke schonmal für die Antworten
    Gruß,
    Hauke
    Endlich umgezogen. Fertig? Noch lange nicht... ;-)

    #2
    Ohne "ein bisschen" mehr Details alles schwer zu sagen aber trotzdem:

    1) welcher "get"-Befehl? open (my $fh, "<", "input.html") tuts für lokale Files auch..
    Grundsätzlich vermute ich aber zu 99%, das der Wechselrichter die Daten auch in einem brauchbareren Format liefern kann; das parsen von HTML ist eine Schrott-Notlösung..

    2) Ohne Quellcodes nicht zu sagen.

    3) Der Diagrammgenerator unten auf der Sensorseite sollte trotzdem gehen, der listet alle RRD's auf.

    4) dito. Oder ssh und unter /var/www/rrd/ nachsehen. Aber mach dir da mal keinen Kopp, da ist Platz für verdammt viel "Müll"..

    5) RRDtool ist dein Freund, das ist fast ganz genau dafür gemacht

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      Hallo Makki,

      zu 1: OK, hat sich inzwischen eh erledigt, Live-Test gerade bestanden :-) Bin halt noch blutiger Anfänger in Sachen Perl und hatte das mit $xy=get(http://www.xxx.html) hier im Forum gefunden. Aber für lokale Dateien dann wohl eher die von dir beschriebene Variante.
      Stichwort brauchbares Format: Ja er kann... Ich kann mir auch aussuchen ob mit 15 oder 30 min Updateintervall. Und es ist dann eine Logdatei mit den letzen ca. 100 Einträgen. Also auch nicht ganz komfortabel. Das parsen funktioniert jetzt sauber, kann ich mit leben.

      zu 2:
      Der Quellcode ist hier bei den Code-Schnipseln zu finden. Wäre nur interssant zu wissen ob das normal ist, für die Sache hier ist es nun nicht mehr relevant.

      zu 3:
      Muss ich mir morgen noch mal anschauen, das Diagramm-Symbol hatte ich gesehen, nur das da ein Link mit einem Generator hintersteckt war mir nicht aufgefallen (oder es ging halt doch nicht ohne Sensoren, inzwischen hab ich aber einen dran).

      4.
      Gut zu wissen. Ich räum' nur gern hinter mir auf

      5.
      Hab ich mir schon gadacht, aber ich könnte ne Anleitung gebrauch. Kannst du einen Link empfehlen?


      Hauke
      Endlich umgezogen. Fertig? Noch lange nicht... ;-)

      Kommentar


        #4
        1) doch, ehrlich, definierte Datenformate sind IMHO immer besser als das herausmurksen von Werten aus einem HTML-Dokument..
        Das Datenformat ändert sich nämlich vermutlich nicht, wenn die Marketingabteilung beim nächsten Update das ganz viel anders und hipper sehen will
        -> Ich helfe da gerne wo ich kann, z.B. das auswerten der letzten 15 Zeilen eines CSV halte ich für erheblich einfacher&zielführender als ein HTML durchzunudeln..

        2) kann ich mal drüber nachdenken aber das wird schwierig weil man halt das Zeug vom Browser "umescapen" muss, also doppelt/nicht unescapen
        Entsprechende Quotes sollten das lösen können, muss ich aber selbst erst ausprobieren..

        3) Nein, nicht direkt, aber der Diagrammgenerator stammt aus derselben Feder und benutzt daher dasselbe backend

        4) ich will ja bloss nicht das deswegen jemand schlaflose Nächte hat In Defaulteinstellung ist da Platz für ein paar viele hundert Müll-RRD's..
        Wenn der erste ein Platzproblem bekommt - bisher nicht passiert - dann entsorgen wir per Update die RRD's, die 2J keiner upgedatet&angeschaut hat..

        5) Die Defaulteinstellungen (die globalen gelten auch für per Plugin neu erstellte!) tun es m.E. in 90% der Fälle.
        Ich weiss ja aus eigener Erfahrung das man am Anfang immer gerne jeden Wert ms-genau hätte aber auf Sicht von ein paar Jahren relativiert sich das Bedürfnis danach

        Ich habe das u.a. hier mal versucht näher zu bringen (sonst: rrdtool/RRA von mir suchen) aber im Detail kann ich das nicht besser als es fürs zig Jahre alte rrdtool schon eine Doku gibt. Ist halt ein leicht komplexes Thema, wenn man wirklich verstehen will, warum welche Daten nun genau wie verdichtet werden, um 15J in 382kB statt 382GB zu packen

        Makki
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          #5
          1) Prinzipiell geb' ich dir ja recht, aber das CSV enthält halt andere Daten als das html. Teilweise mehr, aber ein paar Daten sind halt nicht drin. Und ich hätt' halt gern eine höhere Auflösung als 15 min, zumal auch nicht dokumentiert ist ob nun die Momentanwerte alle 15 min abgelegt werden oder ob es sich um einen gemittelten Wert der letzten 15 min handelt.
          Wenn ich mal Zeit hab werde ich wohl das CSV auch noch auswerten und dann entscheiden was ich im rrd ablege. Aber Prio irgendwo weiter unten... ;-)

          3) Hab ich jetzt noch nicht ganz verstanden. Heißt das also es gibt irgendwo auch ein Frontend für einen Diagrammgeneratur wo man ganz bequem einstellen kann was und wie man sehen will?

          5) Jawoll, sowas wie das hier hab ich gesucht, danke!
          Für die meisten Werte komm' ich mit den Defaults ganz gut klar, nur z.B. bei Tages- und Monatssummen der Erträge reicht mir ein Wert/Tag bzw. pro Monat oder pro Jahr.
          Nur so wie ich das rrd bisher verstanden habe, werden die Werte über das Auflösungsintervall gemittelt. D.h. wenn ich ein rrd mit Auflösung ein Tag mache und jedesmal wenn das Plugin ausgeführt wird die akuelle Tagessumme reinschreibe wird über den ganzen Tag gemittelt (bzw. über 24h seit erzeugen des rrd) und ich hätte dann am Ende nicht für jeden Tag den letzten Wert sondern den Mittelwert über den ganzen Tag.
          Ich würde gerne von 0:00 bis 23:59 Werte reinschreiben und um 23:59 den dann aktuellen Wert für den Tag übernehmen.
          Aber ich seh' schon, ich werde wohl doch nicht darum herumkommen, die komplette Doku des rrdtool zu wälzen...

          Kann ich eigentlich bei einem bestehenden rrd irgendwie herausfinden mit welchen Parametern es angelegt wurde?
          Endlich umgezogen. Fertig? Noch lange nicht... ;-)

          Kommentar


            #6
            1) Ich weiss ja nicht was das Teil ausspuckt, war eher so ein allgemeiner Hinweis, weil (gefühlt) der HS-Fanclub eher dazu tendiert - oft ohne Not - HTML zu parsen, statt einfach gleich die nackigen Daten in CSV/XML zu nehmen

            3) Ist etwas versteckt.. http://wiregateXXX:10000/wiregate/graph2.cgi -> Der baut einem nur die URL zusammen, aber man kann damit gut die Parameter lernen.

            5) Du wolltest es ja im Detail also:
            Für die DS Average werden die Werte gemittelt, richtig. Man darf aber durchaus (sinnvoll) öfters was reinschreiben.
            Min/Max sind im jew. Zeitraum aber akkurat, also im Default-Beispiel wird für 15J im Zeitfenster von 15h auch Min/Max gespeichert

            Zitat von Hauke Beitrag anzeigen
            Kann ich eigentlich bei einem bestehenden rrd irgendwie herausfinden mit welchen Parametern es angelegt wurde?
            Klar SSH-Konsole (Putty) aufmachen und
            rrdtool info /var/www/rrd/XYZ.rrd

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              1) Nee, das csv hat halt keine Summenwerte für Tag und Gesamt. Ich habe gestern abend noch herausfinden können das das Teil sogar noch alle Daten die ich über html abfragen kann irgendwo im 10 min Takt ablegt (inkl. der Summenwerte). Allerdings kommt man da ohne das Tool vom Hersteller nicht ran und ich hatte eigentlich nicht vor jetzt noch die Kommikation von dem Programm zu belauschen um das Protokoll herauszufinden
              Aber mit der jetzigen Lösung kann ich erstmal gut leben.

              2) Habe ich dann nach deinem Hinweis gestern abend auch noch gefunden und mir auch die URL's von ein paar Diagrammen kopiert um die Parameter zu studieren. Ich glaube so langsam komme ich dahinter.
              Ob der Link ohne Sensoren doch nicht ging oder ob ich einfach nur blind war kann ich jetzt nicht mehr sagen....

              5) Du wolltest es ja im Detail also:
              Ja, ich will's ganz genau wissen...
              OK, ich muss dann also anstatt
              Code:
              DEF:ds0=xxx.rrd:value:AVERAGE;
              Code:
              DEF:ds0=xxx.rrd:value:MAX;
              eingeben?
              Alternativ hatte ich überlegt das rrd nur Ende des Tages einmal mit
              Code:
              rrdtool update xxx.rrd --timestamp:value
              zu füllen. Timestamp wäre dann irgendeine beliebige Zeit innerhalb des Tages und value natürlich der Summenwert des Tages, dann hätte das rrd nur einen Wert und es wär auch egal ob ich nun min, max oder average darstelle...

              Nur wie stelle ich sicher, das der Max-Wert des korrekten Intervalls verwendet wird? Mir ist nämlich noch nicht ganz klar, wie Beginn und Ende der Steps definiert sind und wie das ganze mit den Heartbeats zusammenhängt. Mal angenommen ich definiere Step=24h, dann sollte das sinnvollerweise von 0:00:00 bis 23:59:59 sein. Aber ich befürchte der Step fängt an mit Erzeugung des rrd, d.h. ich müsste das Ding genau um 0:00 initialisieren damit alle Werte die ich per Timestamp einem Tag zuordne auch im selben Step landen? Sonst bestünde ja die Gefahr das die Steps z.B. von 15:00 bis 15:00 am nächsten Tag gehen und ein Wert den ich um 20:00 in das rrd schreibe landet in einem Step der größtenteils auf dem nächsten Tag liegt. Wenn ich dann bspw. einen Monat anzeige sind die dargestellten Werte alle um einen Tag verschoben?

              Hauke
              Endlich umgezogen. Fertig? Noch lange nicht... ;-)

              Kommentar

              Lädt...
              X