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

    [wiregate] Suche Hilfe für Plugin für Auerswald 5020

    Ich versuch gerade die Daten aus meiner Telefonanlage (Anrufliste [Auerswald COmpact 5020 VOIP]) auszuwerten. (Fortsetzung von hier da sich hier im WG-Forum vermutlich mehr Leute tummeln die damit Erfahrung haben ...)
    Das Problem erstmal an die Daten ranzukommen hab ich erstmal übersprungen und "emulier" das ganze per PHP-Script ...


    Das hab ich bis jetzt, nix besonderes ...
    ### Plugin Array zerlegen
    my $baseurl = 'http://172.26.193.148/test/statics/';
    my $listgesprurl = 'auerweb_page_listgespr.php?offset=0';
    $plugin_info{$plugname.'_cycle'} = 3600; # alle x sekunden
    my $debug = 0;
    ### ENDE Definitionen



    # Abfrage
    use LWP::Simple;
    my $url = $baseurl.$listgesprurl;
    /auerweb_page_listgespr.php?offset=0';
    my $listges_data = get($url);

    #return $url;
    #return $listges_data;

    if ($listges_data eq undef) {
    return 'HTTP failed.';
    }
    Bis hierhin wars wirklich nich schwierig, abgeholt werden die Daten übrigens von ner Seite aufem WG die von nem PHP-Script erzeugt werden.

    Nur wie zu Hölle Wert ich diese Daten aus:
    [["1","17.11.11","20:01:55","00:01:49","","tel-nr","","103","interne-nr","41","David","interne-nr","0,0000","1,00","kommend"," erfolgr.","normal","","0","5007"],["1","17.11.11","20:01:55","00:01:49","","tel-nr","","103","interne-nr","41","David","interne-nr","0,0000","1,00","kommend"," erfolgr.","normal","","0","5007"],["1","17.11.11","20:01:55","00:01:49","","tel-nr","","103","interne-nr","41","David","interne-nr","0,0000","1,00","kommend"," erfolgr.","normal","","0","5007"]]
    So richtig komm ich aber nich weiter, wie ich allein schon die einzelnen Anrufe zerlegen könnte und in ein Array schmeisen, und von dort wieder weiter auseinander nehmen ...

    Kann mit hier vlt jmd helfen?

    #2
    Hoi

    Wegen dem Daten auslesen: Anrufliste aus Auerswald Compact 3000 auslesen? - IP-Symcon Community Forum

    https://knx-user-forum.de/knx-eib-fo...-auslesen.html

    PHP: preg_split - Manual
    PHP: preg_match - Manual
    PHP: explode - Manual
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Guten Morgen,

      Zitat von daviid Beitrag anzeigen
      Kann mit hier vlt jmd helfen?
      hab mal Deinen Thread umbenannt in "Suche Hilfe für ..." weil das Plugin ja nicht fertig ist. Damit ist das Thema klarer. Wenn das Plugin dann fertig ist, dann am besten einen neuen Thread damit unter Codeschnipsel und ins Plugin-SVN.

      Merci

      Stefan

      Kommentar


        #4
        @Bodo, die Links kannt ich beide schon, bei IP-syncom läufts ja dann auf den RSS-Feed raus, den man aber nur alle 15 Minuten aufrufen kann, und eingeloggt muss man dazu auchnoch sein, und der rest läuft ins leere.

        Aber mit den genannten Funktionen dürfte man schon was anfangen können, gibts sicherlich auch für Perl.

        @Stefan, danke, weißst du zufällig wo denn im WG die Plugins gespeichert werden?

        Gruß
        David

        Kommentar


          #5
          Ja wie jetzt, PHP oder Perl???
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #6
            perl natürlich, aber die funktionen von perl, php und ähnlichen Scriptsprachen sind nach meiner Erfahrung ziemlich ähnlich

            Kommentar


              #7
              Geht sicher aber das wär auch meine erste Frage, was nun? PHP oder Perl?
              Ist schon richtig, beides sind Skript-sprachen, die haben zwar was gemein. Aber ehrlichgesagt nicht besonders viel.. PHP ist eher C-like, Perl der Dampfhammer a la Basic.
              Nur war das sicher nicht das ganze Plugin, hab grad keine Auerswald zur Hand, also um zu helfen wäre die ganze Wahrheit hilfreich..

              Das kann man händisch leicht zerlegen aber das sieht nach JSON-like aus, geht vermutlich auch einfacher mit "use JSON" nur bevor ich da jetzt was zusammenhacke: welche Daten willst Du? wohin sollen die? Grund? (zyklisch oder..)

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

              Kommentar


                #8
                Also als Sprache solls Perl sein.
                Ziel ist es die Anrufliste in der Visu anzuzeigen, und z.B. auch im lokalen Netzwerk z.B. als RSS zur Verfügung stellen.
                Aber wenn man die Daten erstmal Hat ist das alles kein Problem mehr.

                Was ich jetzt suche ist ein Suchstichwort das mir weiterhilft um das Array zu zerlegen.

                Und noch ne andere Frage, kann man regex in nem Array anwenden?
                Das hier funktioniert nämlich nicht:
                Code:
                my @LINES = split (/\"]/, $listges_data); #"
                Makki ich glaub ich hab noch nen Bug entdeckt im Editor im WG, wenn ich das " im split Befehl Maskier, ist danach der folgende Code komplett rot weil der Editor das maskieren nicht checkt, das '#"' hebt das zumindest für die folgenden Zeilen wieder aus.

                Kommentar


                  #9
                  Also, das sieht nicht nur so aus, würde sagen das ist JSON. Das ist gut
                  Kann man natürlich auch mit wilden RE parsen, aber auf die steht ich nicht so

                  Mal ein Beispiel, wie man das zerlegt (Standalone, fürs Plugin print durch return zum debuggen erstzen.
                  Mit auskommentierten Debug-Ausgaben, um zu zeigen wie ich auf sowas komme
                  Code:
                  #!/usr/bin/perl -w
                  #
                  # use strict; # bereits global
                  use JSON; # evtl. schon geladen, macht dann nichts
                  # JSON::XS ist vorinstalliert
                  
                  my $line = '[["1","17.11.11","20:01:55","00:01:49","","tel-nr","","103","interne-nr","41","David","interne-nr","0,0000","1,00","kommend"," erfolgr.","normal","","0","5007"],["1","17.11.11","20:01:55","00:01:49","","tel-nr","","103","interne-nr","41","David","interne-nr","0,0000","1,00","kommend"," erfolgr.","normal","","0","5007"],["1","17.11.11","20:01:55","00:01:49","","tel-nr","","103","interne-nr","41","David","interne-nr","0,0000","1,00","kommend"," erfolgr.","normal","","0","5007"]]';
                  
                  my $json_data = decode_json($line); # hash fuer die Daten
                  
                  #use Data::Dumper;
                  #print Dumper $json_data;
                  #print @{$json_data};
                  # Perl-syntax kann gern mal unverstaendlich sein, Data:Dumper hilft uns zu sehen das es sich um ein Array of arrays handelt..
                  
                  foreach my $call (@{$json_data}) {
                  	#print "calldump: " . Dumper $call;
                  	print "call: " . @{$call}[1]; # Datum
                  	print @{$call}[2]; # Uhrzeit
                  	print @{$call}[10] . "\n"; # David
                  }
                  Editor: kann ich nachvollziehen, werde ich aber höchstens Upstream bei editarea melden, der Editor ist ja auch nur "ausgeliehen"

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

                  Kommentar


                    #10
                    ok, heute mittag gleich mal ausprobieren, damit kann man doch was anfangen! danke makki!
                    fehlt nur noch sich einloggen, hat da vlt jemand nen tipp für nen login mit cookie?

                    Kommentar


                      #11
                      So, wollts eben ausprobieren, bekomm aber folgeden Error:

                      Can't locate JSON.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 1061) line 28, line 148144. BEGIN failed--compilation aborted at (eval 1061) line 28, line 148144.

                      Kommentar


                        #12
                        Probier mal

                        # perl -MCPAN -e 'install JSON'

                        wenn Makki nix dagegen hat - weil auf dem Wiregate ist er der Chef, und das wäre eine 'alternative' Installationsmethode, gewissermaßen an apt vorbei. Im perl und Linux-Sinne wäre es dann aber trotzdem korrekt installiert - wenn mein 'probier mal' so überhaupt das richtige Paket geraten hat.
                        Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                        Kommentar


                          #13
                          Bitte bitte bitte kein CPAN, das ist mörderisch.

                          use JSON::XS
                          statt
                          use JSON
                          reicht völlig, es ist schon drauf..
                          ansonsten wäre es aber
                          apt-get install libjson-perl libjson-xs-perl

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

                          Kommentar


                            #14
                            Bitte nich töten makki, rat mal was ich vorhi als erstes probiert hatte ... cpan

                            läuft übrigens wunderbar
                            Jetzt will ich mir dadraus ne xml mit xml::writer basteln, soweit so gut, code steht nur geht use XML::Writer; nicht, und auch XML::Writer::XS hat auf Verdacht nix gebracht.

                            Gibts hier nen generellen Lösungsansatz wenn solche Extensions fehlen?

                            Kommentar


                              #15
                              Das kann schon sein das es ab und zu geht aber man plättet sich damit ganz schnell so ziemlich alles, es gibt da ein ganz elementares Grundprinzip mit dem ich seit sehr vielen Jahren auf Produktivsystemen sehr gut fahre:
                              Gibts kein Debian-Paket, dann macht man entweder eins oder es hat eben eben Gründe das es keins gibt -> kaputt, ist nich

                              Der generelle Lösungsansatz ist einzig und alleine:
                              apt-get

                              Paketnamen raussuchen (hier):
                              apt-cache search libxml | grep perl
                              oder auf Debian -- Details of package perl in lenny

                              Dann finden wir libxml-writer-perl und genau das installieret man mit
                              apt-get install libxml-writer-perl

                              Makki

                              P.S.: Einfacher ist aber XML:Simple das wiederum schon drauf ist und kein Terrabyte RAM weglutscht
                              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                              -> Bitte KEINE PNs!

                              Kommentar

                              Lädt...
                              X