Ankündigung

Einklappen
Keine Ankündigung bisher.

Zählerabfrage als Wiregate Plugin

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

    nix sorry-wenn, dann muss ich mich entschuldigen ;-)

    hier der extrakt:

    Code:
    Step 1 - Daten holen
    Step 2 - Reg Exp 1 Datensatz zusammensetzen
    Zaehler Haushalt:
    Step 3 - Datensatz auswerten
    SML:  76070009091DA03F6200620072630101760101070009028DE0150B06454D4801027152C87D01016394990076070009091DA040620062007263070177010B06454D4801027152C87D0172620165028D4D327777078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801027152C87D0177070100010800FF63018201621E52FF5600050DC7FD0177070100010801FF0101621E52FF5600050DC7FD0177070100010802FF0101621E52FF56000000000001770701000F0700FF0101621B52FF5500007C570177078181C78205FF0101010183025590B4D1321AB69C538768156DACA7993A95576468864D78FDC121CC754507953C4B255CA3D3E5AF112F92940ADD46C401010163993E0076070009091DA0436200620072630201710163C04400001
    010800FF     Obis
    RegExp:  FF63018201621E52FF5600050DC7FD
    FF63018201621E52FF5600050DC7FD contains hex
    00050DC7FD hex
    8478.9245<<<<---- Wert
    GA:14/7/51 Wert:8478.9245 DPT:14
    0F0700FF     Obis
    Use of uninitialized value $sml_val in concatenation (.) or string at /home/user/smlMarch.pl line 107.
    RegExp:
    Use of uninitialized value $1 in concatenation (.) or string at /home/user/smlMarch.pl line 109.
     contains hex
    Use of uninitialized value $sml_val in substitution (s///) at /home/user/smlMarch.pl line 112.
    Use of uninitialized value $sml_val in substr at /home/user/smlMarch.pl line 113.
    substr outside of string at /home/user/smlMarch.pl line 113.
    Use of uninitialized value $sml_val in concatenation (.) or string at /home/user/smlMarch.pl line 114.
     hex
    Use of uninitialized value $value in hex at /home/user/smlMarch.pl line 117.
    0<<<<---- Wert
    GA:14/7/50 Wert:0 DPT:9
    muss mal eben kinder ins bett bringen

    Kommentar


      passt schon, sollte den Fehler nicht beheben, sondern nur mal eingrenzen.
      Kurz für Dich zur Erklärung
      Code:
      [B]# 1. Obis-Wert [/B]
      Step 1 - Daten holen Step 2 - Reg Exp 1 Datensatz zusammensetzen Zaehler Haushalt: Step 3 - Datensatz auswerten
      [B]#  das liefert Dein Zähler, da taucht weiter hinten auch das auf was wir Step 2 suchen - schonmal gut[/B]
       SML:  76070009091DA03F6200620072630101760101070009028DE0150B06454D4801027152C87D01016394990076070009091DA040620062007263070177010B06454D4801027152C87D0172620165028D4D327777078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801027152C87D0177070100[SIZE=6][B]010800FF[/B][/SIZE]63018201621E52FF5600050DC7FD0177070100010801FF0101621E52FF5600050DC7FD0177070100[SIZE=6]010802FF[/SIZE]0101621E52FF5600000000000177070100[SIZE=6][B]0F0700FF[/B][/SIZE]0101621B52FF5500007C570177078181C78205FF0101010183025590B4D1321AB69C538768156DACA7993A95576468864D78FDC121CC754507953C4B255CA3D3E5AF112F92940ADD46C401010163993E0076070009091DA0436200620072630201710163C04400001 010800FF     Obis
      # jetzt wird der erste Wert gesucht und ausgegeben
       RegExp:  FF63018201621E52FF5600050DC7FD FF63018201621E52FF5600050DC7FD contains hex 00050DC7FD hex 8478.9245<<<<---- Wert [URL="http://redaktion.knx-user-forum.de/lexikon/GA/"]GA[/URL]:14/7/51 Wert:8478.9245 [URL="http://redaktion.knx-user-forum.de/lexikon/DPT/"]DPT[/URL]:14 0F0700FF     Obis
      [B]# hier sollte jetzt 
      SML:   wie oben kommen, stattdessen Fehler weil der SML-String weg ist - also Fehler im Perl 
      [/B] Use of uninitialized value $sml_val in concatenation (.) or string at /home/user/smlMarch.pl line 107. RegExp: Use of uninitialized value $1 in concatenation (.) or string at /home/user/smlMarch.pl line 109.  contains hex Use of uninitialized value $sml_val in substitution (s///) at /home/user/smlMarch.pl line 112. Use of uninitialized value $sml_val in substr at /home/user/smlMarch.pl line 113. substr outside of string at /home/user/smlMarch.pl line 113. Use of uninitialized value $sml_val in concatenation (.) or string at /home/user/smlMarch.pl line 114.  hex Use of uninitialized value $value in hex at /home/user/smlMarch.pl line 117. 0<<<<---- Wert [URL="http://redaktion.knx-user-forum.de/lexikon/GA/"]GA[/URL]:14/7/50 Wert:0 [URL="http://redaktion.knx-user-forum.de/lexikon/DPT/"]DPT[/URL]:9
      ich nehm mal das aktuelle Script mit den letzten Update von Mirko und teste mal

      Kommentar


        ich versteh noch nicht warum, aber ich hab zumindest den Fehler eingegrenzt

        das alte Coding
        Code:
         #  my $obissearch = $obiscnt->{obis};
         #  $obissearch =~ s/\./0/g;
         # FF fuer Suche an  Hex-Wert anhaegne
         # FF fuer Suche an  Hex-Wert anhaegne
         $obissearch .="FF";
        liefert das
        Code:
        [B]10800FF     Obis     - keine führende Null[/B]
        SML-VAL:  FF63018201621E52FF560005658BAC
        FF63018201621E52FF560005658BAC contains hex
        0005658BAC hex
        9054.0972<<<<---- Wert
        GA:14/7/51 Wert:9054.0972 DPT:14
        [B]F0700FF     Obis     - keine führende Null[/B]
        SML-VAL:  FF0101621B52FF55000058D0
        FF0101621B52FF55000058D0 contains hex
        000058D0 hex
        -> damit kommen die Werte

        das neue Coding
        Code:
         # Umwandeln OBIS in HEx
                my $hc ="";
                 foreach my $c (split(/\./,$obiscnt->{obis})) {
                 $hc .= sprintf("%2X", $c);
                   }
                   my $obissearch = $hc;
        
        liefert
        [B]010800FF     Obis[/B]
        SML-VAL:  FF63018201621E52FF5600056586AE
        FF63018201621E52FF5600056586AE contains hex
        00056586AE hex
        9053.9694<<<<---- Wert
        GA:14/7/51 Wert:9053.9694 DPT:14
        [B]0F0700FF     Obis[/B]
        --> gleicher Fehler wie bei dir

        Warum das nicht matched versteh ich nun wieder nicht --> Mirko?

        Kommentar


          AW: Zählerabfrage als Wiregate Plugin

          Auf die schnelle vom Handy. Da hab ich wohl die Schleife gestern kaputt gemacht .

          foreach wird zu schnell beendet. Kann ich aber erst am PC wieder fixen.

          Baustelle 2.0
          Umgezogen? Ja! ... Fertig? Nein!
          Baustelle 2.0 !

          Kommentar


            Fehler gefunden, war vorher quasi Zufall das das geklappt hat

            Code:
            # alt
             if ($debug==1) { print $obissearch."     Obis\n";}
            [B]     $sml =~ m/$obiscnt->{obis}(.*?)0177/;[/B]
                 my $sml_val = $1;
            # wir modeln das zwar vorher um, nutzen dann aber doch den Wert aus dem array, durch das F ist das gutgegangen
            
            # neu
              $hc ="";
              foreach my $c (split(/\./,$obiscnt->{obis})) {
               $hc .= sprintf("%02X", $c);
                 }
            
             my $obissearch = $hc;
            # alles schick   0F0700FF
            
            #Fuer die Suche dann aber doch wieder 
            
             $sml =~ m/$obiscnt->{obis}(.*?)0177/;
            #   -> Error 
            # mit dem hier saubere Werte
            [B] $sml =~ m/$obissearch(.*?)0177/;[/B]
            Viel Spaß beim Testen

            Kommentar


              Richtig ... ich bin auch vorhin erst über das "unitialized" so richtig gestolpert.
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar


                bedeutet ich ändere die Zeile:
                $sml =~ m/$obiscnt->{obis}(.*?)0177/;


                #in die Zeile

                $sml =~ m/$obissearch(.*?)0177/;


                ???

                Kommentar


                  Ja.
                  Umgezogen? Ja! ... Fertig? Nein!
                  Baustelle 2.0 !

                  Kommentar


                    HA!

                    Bei den hohen Stromwerten bekomm' ich immer ne Gänsehaut-liegt aber diesmal nicht am Plugin ;-)

                    DANKESCHÖN!

                    Ich lass das nun mal an dem Haushaltszähler laufen. Wenn das bis morgen funktioniert, werde ich an den 2-Tarif-Zähler gehen. Da sehe ich aber kein Problem drinnen.

                    Grüße,
                    Lio

                    Kommentar


                      Sollten wir wenigstens den Titel mal ändern?
                      Oder läuft das wirklich (glaube nicht) als WireGate-Plugin - oder ist es eher ein daran angelehntes, eigenständiges Script auf dem FummelPi?
                      Edit: Worauf man den Leser dann hinweisen sollte..

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

                      Kommentar


                        also ich hab' jenseits von Windows und android "nur" das WG.

                        und läuft als Plugin, wenn auch über cron gesteuert.


                        Ha-ich kenn mich da nun (etwas) aus.

                        Grüße,
                        Lio

                        Kommentar


                          Zitat von lio123 Beitrag anzeigen
                          und läuft als Plugin, wenn auch über cron gesteuert.
                          Deswegen fragte ich: das musst du mir nicht erklären - aber andere könnten dadurch verwirrt sein, welche Schritte zur Einrichtung nötig sind

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

                          Kommentar


                            da könnt' ich n' kleines howto machen-das geringste was ich machen kann.

                            Kommentar


                              Das wäre schön, mir gehts darum: ein WG-Plugin muss man optimalerweise nur "reinkopieren", wenns nen socat dazu braucht (brauchen meine auch massenweise..) sollte das als Kommentar o.ä. drinstehen, wenns nen crontab-Eintrag bracht, ist ansich nichts wildes, aber sollte dastehen weil das die meisten an Grenzen führt
                              Und es geht auch in einfach, ich freue mich über jedes wie ein Schnitzel, die Zielgruppe der Plugins waren aber nicht Leute, die es eh checken und sich dann was-auch-immer drumherumbauen..

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

                              Kommentar


                                Guten Morgen,

                                nix gegen meinen "FummelPi" - ich find ein tolles Spielzeug

                                Mit dem cron bin ich jetzt ein wenig stutzig. Das aktuelle Skript ist so gebaut, das es einmal gestartet werden muss und dann immer munter rennt. Müsste quasi beim Init vom WG gestartet werden.
                                Cron geht insofern, da er es nur einmal starten würde. Find ich persönlich aber nicht schön sowas - Optimalerweise müsste man das in das init-Script von linknx (so werde ich es machen) oder WG aufnehmen.

                                Grüße
                                Gunnar (mit eibd, linkxn, Luxtronik, ED300L über RasPi am Bus )

                                Kommentar

                                Lädt...
                                X