Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche Hilfe für Plugin für Auerswald 5020

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

    #16
    Schäm ...

    Deshalb hatte ich ja gesagt: Nur wenn Makki nix dagegen hat.

    Ich tu's nie wieder (solche Sachen verraten ...)
    Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

    Kommentar


      #17
      Kein Problem, andere kommen ja auch auf die Idee bzw. "lernt" man es mit Perl ja auch irgendwo sicher so Für C:\Temp\Testscript.pl ist das sicher zielführend..
      Da ist mir lieber, es steht hier nochmal zum nachlesen:

      [ACHTUNG]CPAN ist ganz grosse Bastelgrütze und das ist nicht nur unsupported sondern verboten [/ACHTUNG]

      Es geht hier ja darum, ein Komplettsystem (oder eben eine Distribution) über viele Jahre stabil & wartbar zu halten; wenn man da mit CPAN, PyPI oder ./configure; make; make install (um eine paar andere Wege zum Abgrund zu nennen) + 1/2 bis 3/4-Wissen oder Tipps aus dem xy-Forum anfängt, dann kommt man halt ganz, ganz schnell in den Wald.

      -> Lieber package ich es im Zweifelsfall selbst und lege es ins repository (hab ich auch schon ein paarmal gemacht)

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

      Kommentar


        #18
        @emax, keine Sorge, du warst nicht schuld, bin selber schon vorher drauf gekommen

        @makki, seh ich auch so, nur kommt bei mir eben das Halbwissen zum tragen, die grunsätzlichen Sachen weiß ich, nen Webserver aufsetzen, Samba, usw. alles kein Problem, aber so wissen hab ich (leider) einfach nicht.

        Ich glaub mein WG is langsam schon relativ "zugemüllt", daher die Frage obs irgendwie die Möglichkeit gibt das System auf Werkseinstellung zurückzusetzen, oder evtl mal geben wird?

        Das JSON-decoding läuft jetzt übrigens, hab jetzt auch schon ne xml, werd das demnächst mal posten, jetzt fehlt nurnoch der login in die Anlage ...

        Kommentar


          #19
          Ist ja kein Problem, bedeutet auch, wenn ich zu etwas mal 2 Tage nichts schreibe, dann weiss ichs auch nicht auf Anhieb und/oder es klingt ungefährlich

          -> Das mit dem Login musste selber ausprobieren, ist vermutlich tricky aber geht nicht: gibts nicht!

          -> Tipp: ich schreibe die meisten komplexeren Plugins auch erstmal "standalone" um zu sehen, was wo&wie da passiert.

          Reset: das ginge prinzipiell, heisst es gibt einen Plan dafür (mit diesem "Plan" kann man sich aber auch in 10 Minuten 100 WG aufsetzen, so schmerzbefreit bin ich dann doch wieder nicht..)
          Hat aber noch nie jemand geschafft, das brauchen zu müssen.
          (solange man halbwegs zuhört, wenn ich "Stopp" rufe..)

          Und es gibt auch einen Plan B, das einfachste (für den Anwender) wäre in so einem Fall das CF auszutauschen, aber auch das stand noch nie an. Keine Angst, so schnell geht da nichts ernsthaft "kaputt" oder wird übermässig zugemüllt, ist ja kein Windows

          Ich hab noch nie ein Debian-Linux komplett neu aufgesetzt, weil es mir zu verwurschtelt war. Das ist da zum Glück alles transparent und reversibel solange es noch bootet (und selbst wenn nicht: gibts da ein Mini-Rettungs-System inkl. Wartungs-VPN, wir haben auch ganz bewusst keine verstümmelte Embedded-Plattform gewählt, mit Tageslaune-abhängigem NAND-Flash und launischen Bootloadern, die nicht mehr mögen, weil ein Bit an der falschen Stelle umgefallen ist.. An anderer Stelle mag das ein Nachteil sein, das es eben kein REG-Gerät mit 2W gibt aber..)
          Da stecken gut 10J tägliche Betriebserfahrung mit embedded und "nicht so embedded" Linux drin. Quintessenz: Software ist sicher nicht&nie perfekt, aber sollte sich wenigstens jederzeit&schnell remote reparieren oder updaten lassen.
          (Hier: sofern der AW das wünscht! Datenschutz und kein ungefragtes "nach-Hause-telefonieren". Das steht für mich darüber!)

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

          Kommentar


            #20
            Nachdem ich mal wieder bischen Zeit hab wollt ich mit dem Projekt mal weitermachen ...
            @makki, bzw an alle,
            hat jemand einen heißen Tipp für mich wie ich das mit dem Login machen könnte?

            Ich hatte hier bereits gepostet gehabt wie das "Protokoll" aussieht,
            Cookie mäßig werden folgende 2 Cookies erstellt:
            Code:
            [B]Name [/B]AUERSessionID
            [B]Wert [/B]*******
            [B]Host [/B]172.26.193.147
            [B]Pfad [/B]/
            [B]Sicher [/B]Nein
            [B]Gültig [/B]bisSitzungsende
            
            [B]Name [/B]*******
            [B]Wert [/B]user-name
            [B]Host [/B]172.26.193.147
            [B]Pfad [/B]/
            [B]Sicher [/B]Nein
            [B]Gültig [/B]bisSitzungsende
            Ich weiß einfach nicht nach was ich suchen soll, ich lande immer nur bei Login-Scripten, was könnte denn hier ein geeignetes Suchwort sein?

            Kommentar


              #21
              Remote schwer zu sagen, geht sicherlich aber da muss man ein bisschen rumprobieren.
              Ich würde erstmal versuchen, das ganze mit wget + cookie speichern "händisch" hinzubekommen, dann kann man sich dem ausm Plugin nähern;
              Im Endeffekt wirds so laufen müssen:
              Login senden, Cookie speichern/merken ($plugin_info), eigentliche Seite abrufen.

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

              Kommentar


                #22
                Hallo, meld mich mal wieder ...

                da ich den Login noch nicht am laufen hab (faulheit, keine Lust ...) behelf ich mir aktuell damit die Daten zum Testen einfach in nen string zu speichern.

                Jetzt hab ich mal ziemlich viele genommen von nem ganzen Monat, und auf einmal gibts den Error:
                2011-12-09 18:02:09.701,AW_5020,,0s,malformed UTF-8 character in JSON string, at character offset 72 ["\x{49b4}","42","Zusa..."] at (eval 1662) line 54, <FILE> line 222357.
                Line 54 is das hier:
                Code:
                my $json_data = decode_json($listges_data); # hash fuer die Daten
                In den JSON String entdeck ich keine Auffälligkeiten.

                Kommentar


                  #23
                  Hi,
                  mal ein ganz anderer Ansatz, die 5020 kan ja auch LAN Tapi. Wieso nicht mal versuchen die Daten darüber abzugreifen? Entweder direkt oder über einen Windows Rechner auf dem der LAN Tapi Treiber läuft.

                  Kommentar


                    #24
                    Das ist doch Pfusch wenn man so "einfach" an alle möglichen Daten rankommt, und dann auchnoch so schön sauber als JSON

                    Kommentar


                      #25
                      Ich frag nochmal
                      Das Problem scheint zu sein dass Sonderzeichen, (ä,ü,ö, ...) in den abgefragten Daten vorkommen.
                      Hat da jemand ne Idee?

                      Kommentar


                        #26
                        Garbage in, Garbage out, daran ist erst mal nix zu ändern.

                        Ohne das Umfeld zu kennen: Die ganze Rohdatenwurst brutal auf nicht-ASCII-Zeichen (alles >= 0x7F) scannen und diese durch Leerzeichen oder Fragezeichen ersetzen. Danach die normale Verarbeitung versuchen.

                        Vor allem: Den Hersteller mal anbellen, die liefern ja offenkundig Schrottdaten.
                        Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                        Kommentar


                          #27
                          Jetzt bitte nochmal bischen langsam :P

                          Ich hab da grad nur Bahnhof verstanden, ich weiß einfach nicht wonach ich suchen muss, sry.

                          Kommentar


                            #28
                            Du bekommst von der 5020 doch offenkundig Daten?

                            Die würde ich nach Zeichen absuchen, die größer als 0x7F sind, und alle diese Zeichen löschen oder ersetzen, z.B. mit einem Fragezeichen.

                            Ob das funktioniert, weiß ich nicht, aber es ist einen Versuch wert.

                            Mit welcher URL greifst Du denn auf die Auerswald zu? Ich hab auch so ein Ding, und könnte mal einen Blick drauf werfen. Die Firmware-Version wäre auch noch interessant, ebenso Dein aktuelles Plugin.
                            Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                            Kommentar


                              #29
                              Aktuell geht es nur um die Auswertung der Daten die die Anlage liefert, das noch wichtigere wird dann sein den Login per Plugin zu machen.

                              Code:
                              ### Plugin Array zerlegen
                              $plugin_info{$plugname.'_cycle'} = 3600; # alle x sekunden
                              #my $baseurl = 'http://172.26.193.148/test/statics/';
                              #my $listgesprurl = 'auerweb_page_listgespr.php?offset=0';
                              my $baseurl = 'http://172.26.193.147/';
                              my $listgesprurl = 'page_listgespr_state?offset=0';
                              
                              
                              my $debug = 0;
                              ### ENDE Definitionen
                              #return;
                              
                              ### ab hier nichts verändern 
                              my $date;
                              my $time;
                              my $call_length;
                              my $ex_number;
                              my $ex_name;
                              my $direction;
                              my $success;
                              
                              use JSON::XS;
                              use HTTP::Cookies;
                              use XML::Writer;
                              use IO;
                              use LWP::Simple;
                              use HTML::Entities;
                              
                              use utf8;                                                
                              #use strict;
                              use warnings;
                              
                              
                              #use File::Find;
                              #use XML::RSS;
                              #use HTML::TreeBuilder;
                              #use Getopt::Long;
                              
                              
                              
                              # Abfrage
                              my $url = $baseurl.$listgesprurl;
                              my $listges_data = get($url);
                              #$listges_data = $string_data;
                              
                              #decode_entities($listges_data);
                              #encode_entities($listges_data);
                              
                              
                              #return $url;
                              #return $listges_data;
                              
                              if ($listges_data eq undef) {
                                return 'HTTP failed.';
                              }
                              
                              #$object = JSON::XS->new->decode (decode "UTF-16BE", $jsontext);
                              
                              #Daten decoden
                              
                              $listges_data= encode ('utf8', $listges_data->{response}); 
                              
                              my $json_data = decode_json($listges_data); # hash fuer die Daten
                              #my $json_data = from_json($listges_data); # hash fuer die Daten
                              my $data_xml= new IO::File(">/var/www/AW/output.xml");
                              my $data_rss= new IO::File(">/var/www/AW/rss.xml");
                              
                              my $writer_xml = new XML::Writer (OUTPUT => $data_xml, NEWLINES => 0);
                              $writer_xml->xmlDecl('UTF-8');
                              $writer_xml->startTag ("calls");
                              #$write_xml->
                              
                              my $writer_rss = new XML::Writer (OUTPUT => $data_rss, DATA_MODE => 1, DATA_INDENT=>2);
                              $writer_rss->xmlDecl('UTF-8');
                              $writer_rss->startTag("rss" ,"version"=>"2.0", "xml:base"=>"http://172.26.193.148/visu", "xmlns:dc"=>"http://purl.org/dc/elements/1.1/");
                              $writer_rss->startTag ("channel");
                              $writer_rss->dataElement( "title", "Anrufliste" );
                              
                              
                              foreach my $call (@{$json_data}) {
                                  $date = @{$call}[1];
                                  $time = @{$call}[2];
                                  $call_length = @{$call}[3];
                                  $ex_number = @{$call}[5];
                                  $ex_name = @{$call}[6];
                                  $direction = @{$call}[14];
                                  $success = @{$call}[15];
                              
                                  if ($ex_name eq "") { $ex_name = "Unbekannt"; }
                                   
                              
                                  
                              
                              
                                  $writer_xml->emptyTag ("call",'date' => $date, 'time'=> $time,'length' => $call_length,'ex-number' => $ex_number,'ex-name' => $ex_name,'direction' => $direction,'success' => $success);
                              #rss
                                  $writer_rss->startTag ("item");
                                  
                                  if ($success eq "vergebl.") {
                                      $writer_rss->dataElement( "title", "Verpasster Anruf von $ex_name ($ex_number)" );
                                      $writer_rss->dataElement( "description", "Verpasster Anruf von $ex_name ($ex_number) um $time am $date" );
                                  }
                                  else {
                                      $writer_rss->dataElement( "title", "Anruf von $ex_name ($ex_number)" );
                                      $writer_rss->dataElement( "description", "Anruf von $ex_name ($ex_number) um $time am $date" );
                                  }
                                  
                                  
                                  #$writer_rss->emptyTag ("call",'date' => @{$call}[1], 'time'=> @{$call}[2],'length' => @{$call}[3],'ex-number' => @{$call}[5],'ex-name' => @{$call}[6],'direction' => @{$call}[14],'success' => @{$call}[15]);    
                                  $writer_rss->endTag("item");
                              
                              }
                              
                              
                              $writer_xml->endTag ("calls");
                              $writer_rss->endTag ("channel");
                              Adresse ist folgende: http://172.26.193.147/page_listgespr_state?offset=0
                              Und über die Adresse: http://172.26.193.147/page_listgespr...100&filterCB=2 kann man die Filter festlegen die genommen werden sollen (heute, gestern, usw)
                              Wenn man sich das mit Firebug anschaut hat man das sofort raus.

                              Kommentar


                                #30
                                Über diese URL, angepasst auf mein Netz, bekomme ich bei mir einen 403. Allerdings fahre ich auf der Anlage die Version 4.0E, vielleicht hast Du eine andere?

                                Bin jetzt sowieso mal bis zum WE weg, schreib am Freitag noch mal eine PN oder so, damit ich es nicht vergesse.


                                PS: Über den Browser geht das, ich hatte mit wget probiert. Kann aber erst wieder am WE.
                                Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                                Kommentar

                                Lädt...
                                X