Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - rss-Funktion nutzen

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

    - √ - rss-Funktion nutzen

    Hallo Zusammen

    Nachdem ich die CometVisu entdeckt habe und basierend auf der Vorlage von Swiss meine Visu nachgebaut habe, wollte auch die Funktion der Diagramme nutzen. Hier scheitere Ich gerade...

    Ich nutze die CometVisu direkt aus dem svn (Somit sollte dies 8.0.2) sein. Das ganze läuft auf dem Wiregate.

    Ich habe versucht die Diagramme via rss zu verwenden.

    In CometVisu konfiguriert:
    <diagram_info series="day" refresh="300" format="%.2f %" styling="GreenRedBlueHum" tooltip="true" period="3">
    <layout colspan="3"/>
    <label>Feuchtigkeit Bad</label>
    <axis unit="%">%</axis>
    <rrd color="blue" label="Luftfeuchtigkeit Bad">26.68D26B010000_hum</rrd>
    <address transform="DPT:5.001" mode="readwrite">5/2/1</address>
    </diagram_info>

    26.68D26B010000_hum gibt es im Wiregate und zeigt dort auch Werte an.

    Wenn ich im Browser (dev. tools) schaue, greift das System brav auf
    http://wiregate879.local/visu_svn/pl...0&f=security&j

    und

    http://wiregate879.local/cgi-bin/r?s...=5/2/2&a=5/2/0...

    zu.

    Leider bekomme ich einen komplett schwarzes Popup angezeigt. Gibt es eine Anleitung, mit der ich schrittweise nachvollziehen kann, was ich für die Configuration machen muss? Oder hat mir jemand eine Idee wo ich suchen muss?

    Auch ein leeres Fenster bekomme ich, wenn ich mit versuche auf die Daten zuzugreifen, die ich per Plugin rsslog versuche zu protokollieren.

    <group name="Letzte Türzustände">
    <layout colspan="6"/>
    <rsslog src="plugins/rsslog/rsslog.php?state=0" refresh="10" filter="security" mode="last" datetime="true" timeformat="%d.%m. %H:%M">
    <layout colspan="6" rowspan="4"/>
    </rsslog>
    </group>

    Ich befürchte hier habe ich etwas beim rss vermurkst, habe aber keine Idee, wo ich dies finde. Hat mir jemand einen Tipp, wo ich da suchen muss?

    Gruss
    Stef

    #2
    Hi :-)

    Beim diagram Plugin kann ich dir leider gerade nicht weiterhelfen. Die config sieht soweit korrekt aus. Wobei unter umständen die Reihenfolge der Parameter eine rolle spielt. (bei dir kommt z.B. series am ende). Dies kann aber muss nicht zu einem solchen Verhalten führen.

    Zum rsslog:

    Hast du auch die rsslog.db erzeugt? bzw. existiert diese im Verzeichniss /etc/wiregate/rss/ ?
    Gruss Patrik alias swiss

    Kommentar


      #3
      Hoi Swiss

      Besten Dank für Deine Antwort. und nochmals ganz herzlichen Dank, dass Du Deine Vorlage zur Verfügung gestellt hast (Swiss_Metal), so konnte ich natürlich sehr schnell in die CometVisu einsteigen!

      Ja, im Verzeichnis ist /etc/wiregate/rss eine Datei rsslog.db.

      Ich habe diese gelöscht und dann mit den http://wiregate879.local/visu_svn/pl...log/rsslog.php wieder angelegt.

      Ich habe etwas gespielt und dann festgestellt, dass es mir Daten anzeigt, wenn ich state=0 weglasse.

      http://wiregate879.local/visu_svn/pl...g/rsslog.php?j
      2014.04.09 18:09 EG Büro sicher
      2014.04.09 18:10 EG Büro unsicher

      Wo kommt dieses State her?

      Gruss
      Stef

      Kommentar


        #4
        Hallo

        Zum state=0... Wie werden bei dir die Zustände in die DB geschrieben? Denn wenn ich das recht gelesen habe, so sollte state in der DB für jeden Eintrag per default auf 0 sein. Wenn nun ein Punkt im rsslog Plugin der CV durch anklicken gestrichen wird, wechselt state auf 1 und wird durch den URL Parameter quasi ausgefiltert.

        Der URL Parameter besagt eigentlich... "Zeige nur einträge mit State = 0". Damit ist es möglich gewisse Einträge diret in der Cometvisu zu entfernen.

        Aber bei Alarmmeldungen ist das wehniger von Interesse oder gar eher schlecht. Die Funktion wäre eher für eine Art ToDo Liste bei der man erledigte Punkte entfernen kann
        Gruss Patrik alias swiss

        Kommentar


          #5
          Hoi Swiss

          Ich schreibe es per rsslog.pl in die DB. So wie es als Standard hier vorgeschlagen worden ist. Ich sehe in dem Source code nichts, was auf eine Spezifizierung des STATE hindeutet:

          ### Plugin zum erstellen von RSS-logs
          # Fuer Verwendung mit rsslog.php / CometVisu
          # man koennte natuerlich ebenso das rsslog.php direkt mit LWP::Useragent oder
          # wget aufrufen, hier soll aber auch die Verwendung von SQLite Datenbanken
          # demonstriert werden.
          # Wichtig:
          # - benoetigt Paket libdbd-sqlite2-perl
          # - weil in PHP nur sqlite2 verfuegbar
          #
          # v0.1
          # 2012-01-08

          ###################
          ### DEFINITION ###
          ###################

          $plugin_info{$plugname . '_cycle'} = 0; # Aufrufzyklus - never

          my @actionGA;

          # Haustüre:
          push @actionGA, { title => "Haustuere Entrée Schloss", content => 'Haustuere Entrée Schloss abgeschlossen', tags => "security", trigger_ga => "4/2/0", value => 0};
          push @actionGA, { title => "Haustuere Entrée Schloss", content => 'Haustuere Entrée Schloss offen', tags => "security", trigger_ga => "4/2/0", value => 1};
          # title & tags darf auch leer sein

          ########################
          ### Ende DEFINITION ###
          ########################

          use DBI;
          my $logdb = '/etc/wiregate/rss/rsslog.db';

          # check setup, rights, DB
          if (! -d dirname($logdb)) {
          mkdir(dirname($logdb),0777);
          }
          if (! -e $logdb) {
          return "$logdb existiert nicht! Bitte mit rsslog.php anlegen"; # FIXME: create sqlite-db
          }

          if ($msg{'apci'} eq "A_GroupValue_Write") { # Telegramm eingetroffen
          foreach my $element (@actionGA) {
          if ($msg{'dst'} eq "$element->{trigger_ga}") {
          if (defined $element->{value}) { # skip if value is defined and not what we like
          next unless "$msg{'value'}" eq "$element->{value}"; }

          my $dbargs = {AutoCommit => 0, PrintError => 1};
          my $dbh = DBI->connect("dbi:SQLite2:dbname=$logdb", "", "", $dbargs);

          $dbh->do('INSERT INTO Logs(content, title, tags, t) VALUES( ' .
          " '" . sprintf($element->{content},$msg{'value'}) . "'," .
          " '" . sprintf($element->{title},$msg{'value'}) . "'," .
          " '" . $element->{tags} . "'," .
          " datetime('now') );");

          if ($dbh->err()) { return "DB-Fehler: $DBI::errstr\n"; }
          $dbh->commit();
          $dbh->disconnect();
          return; # "V: " . $dbh->{sqlite_version};
          }
          }
          } else { # zyklischer Aufruf/initialisierung
          #subscribe GAs
          foreach my $element (@actionGA) {
          $plugin_subscribe{$element->{trigger_ga}}{$plugname} = 1;
          }
          }
          return; # "Noop";

          Kommentar


            #6
            Hmmm... Das Plugin sieht eigentlich gut aus. Keine Ahnung wesshalb es bei mir genau mit dem gleichen Plugin und mit state=0 klapt. Aber wenn es bei dir ohne diesen Zusatz funktioniert, ist das auch nicht schlecht

            Das Probel mit dem Diaram Plugin hast du auch noch nicht gelöst? Wie wurde der Code dazu erstellt? Mit dem Editor oder hast du das von Hand zusammengetippt? Wenn von Hand... Funktioniert es, wenn du mal mit dem internen Editor testest? Damit wüsste man mal ob die config probleme macht oder ob man an anderer Stelle suchen müsste.
            Gruss Patrik alias swiss

            Kommentar


              #7
              Hoi Patrick

              Besten Dank für dein Feedback, das hat mich zum weiteren Probieren gebracht und da die Fehlerquellen ja nun etwas eingeschränkter waren, habe ich mir auch die DB konzentriert:

              Ich habe nun noch etwas probiert und dann das PHP rsslog_correct.pl ausgeführt. Dies hat, obwohl ich die neuste Version von SVN runtergeladen habe (am 5.4.2014) mir anscheinend die DB nicht korrekt angelegt. Mit dem SQL-Befehl wurde mir nun zumindest das Attribut STATE erzeugt, das defaultmässig mit 0 belegt ist.

              Das rsslog_correct.pl erzeugt state mit default Wert:
              CREATE TABLE Logs(id INTEGER PRIMARY KEY, title TEXT, content TEXT NOT NULL, tags TEXT, t TIMESTAMP, state INTEGER DEFAULT 0);

              In rsslog.php?c wird aber kein Defaultwert geschrieben. Und da ich kein STATE im Plugin schreibe, bleibt der Wert NULL und somit ist das Feld leer.

              Somit sollte aus meiner Sicht das File visu_svn/plugins/rsslog/rsslog.php folgendermasse angepasst werden:

              alt: ' state INT' .
              neu: ' state INT DEFAULT 0' .
              -> Wäre eine Anpassung in Zeile 219.

              Sofern dies korrekt wäre, könnte dies einer der Entwickler einfügen? Denn so funktioniert es bei mit auch mit state=0


              Diagramme
              ========
              Diagramme wollen leider immer noch nicht. Ich frage mich, ob das wiregate nicht auf die Daten zugreifen kann. Ich habe visu_svn/plugins/diagram/structure_plugin.js kurz überflogen. Hier wird auf rrdfetch in cgi-bin zugegriffen und dieses Shell-Script ruft folgenden Befehl auf:

              rrdtool xport -json /var/www/rrd/26.68D26B010000_hum

              Fehlermeldung: ERROR: unknown option 'xport'
              Damit habe ich wohl das Problem, warum mein Diagramm nicht geht. Nur wie bekomme ich rrddump zum fliegen?

              Habe ich irgendwie eine kaputte Version vom rrdtool oder muss ich es aktualisieren oder patchen?
              Ich habe 1.3.1 auf dem System.

              rrdtool dump /var/www/rrd/26.68D26B010000_hum.rrd
              Der dump-Befehl schreibt mir jede Menge.

              Gruss
              Stef
              Angehängte Dateien

              Kommentar


                #8
                OK, Problem gefunden...

                Ich hatte auf dem CometVisu-Page das rrdfetch gefunden. Dort war der Aufruf folgendermassen definiert:

                rrdtool xport /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | gzip -c

                Nachdem ich nun den Beitrag von Marki gefunden hatte, dass er da auf dem Wiregate einen Patch auf das rrdtool zur Verfügung gestellt hat, habe ich das File angepasst und rufe folgendermassen auf:
                rrdtool fetchj /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | gzip -c

                Und schon werden meine Diagramme angezeigt. Ich habe das rrdfetch mal angehängt. Vielleicht hilft es jemanden :-)

                Ist die Version für Wiregate, basiert auf rrdtool 1.3.1.

                Gruss
                Stef

                Kommentar


                  #9
                  Hmmmm... Wenn ich deine Letzten beiden Beiträge richtig deute läuft die CometVisu also doch nicht auf einem originalen Wiregate!?

                  Solche Info's sind immer sehr wichtig denn du hast oben Wiregate geschrieben und da sollten die Probleme mit z.B. dem rrdtool längst behoben sein. Also habe ich in die Richtung auch nichts erwähnt da für Nutzer des originalen Wiregate nicht relevant.
                  Gruss Patrik alias swiss

                  Kommentar


                    #10
                    Hoi Swiss

                    Doch, läuft auf orig. Wiregate von ElabNet (nr 879). Daher habe ich es auch so im ersten Post geschrieben.

                    Ich habe aber die svn Version der Visu gezogen, vielleicht liegt es daran?

                    Das rrdfetch habe ich vom Web kopiert, da ich es nicht auf wiregate gefunden hatte. Als die Installation nicht lief habe ich angefangen zu suchen (basteln) und dabei vielleicht etwas zerschossen, das möchte ich nicht ausschliessen. Ist aber alles auf original Wiregate gemacht worden.

                    Gruss
                    Stef

                    Kommentar


                      #11
                      Ach soo. Das wäre nicht nötig gewesen denn rrdtool läuft out of the Box. Da muss nichts nach installiert werden. Warscheinlich hast du damit den Patch des rrdtool überbügelt. Desshalb lief es nicht auf Anhieb.
                      Gruss Patrik alias swiss

                      Kommentar


                        #12
                        Dann bitte entschuldige, dass ich Dich damit belästigt habe

                        Aber danke für den Support, denn jetzt läuft es trotzdem wieder

                        Kommentar


                          #13
                          Macht doch nichts. Ich helfe ja gerne. Ich war nur verwirrt denn es passte nicht zusammen... (Original WG und nicht funktionierendes Diagram Plugin). Aber wenn es jetzt funktioniert hat es ja trotzdem was gebracht, was mich natürlich sehr freut
                          Gruss Patrik alias swiss

                          Kommentar


                            #14
                            Rss

                            Hallo,

                            versuche mir Nachrichten in der CV anzeigen zu lassen. das funktioniert soweit auch. Leider bekomme ich wegen Bildern in den RSS eine Meldung, die ich nicht weg bekomme. Anbei Screenshot und Code.
                            Code:
                             
                                           <page name="Politik">
                                                    <layout colspan="12"/>
                             <rss src="http://www.spiegel.de/politik/index.rss" refresh="100" header="true" date="false" content="truee" snippet="false"  showerror="false" ssl="true" linktarget="">
                            
                                                    <layout colspan="12"/>
                                                            </rss>
                                            </page>
                            Habe auch bereits alle oben angegebenen Optionen auf true oder false zu setzen, ohne den gewünschten erfolg.
                            Angehängte Dateien

                            Kommentar

                            Lädt...
                            X