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

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

    Einen Kommentar schreiben:


  • makki
    antwortet
    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

    Einen Kommentar schreiben:


  • lio123
    antwortet
    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

    Einen Kommentar schreiben:


  • makki
    antwortet
    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

    Einen Kommentar schreiben:


  • lio123
    antwortet
    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

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Ja.

    Einen Kommentar schreiben:


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


    #in die Zeile

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


    ???

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Richtig ... ich bin auch vorhin erst über das "unitialized" so richtig gestolpert.

    Einen Kommentar schreiben:


  • gklein
    antwortet
    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

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    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

    Einen Kommentar schreiben:


  • gklein
    antwortet
    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?

    Einen Kommentar schreiben:


  • gklein
    antwortet
    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

    Einen Kommentar schreiben:


  • lio123
    antwortet
    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

    Einen Kommentar schreiben:


  • gklein
    antwortet
    ok, sorry

    füg mal so ein und lass dann laufen


    Code:
     if ($debug==1) {print "Step 3 - Datensatz auswerten \n";}     foreach my $obiscnt (@obis)     {      # Umwandeln OBIS in HEx my $hc =""; foreach my $c (split(/\./,$obiscnt->{obis})) { $hc .= sprintf("%02X", $c); } my $obissearch = $hc;      # FF fuer Suche an  Hex-Wert anhaegne      $obissearch .="FF";      if ($debug==1) { print $obissearch."     Obis\n";}
    
    [B]print "SML:  $sml  \n";   # da sollte recht viel zurückkommen
    
    [/B]     $sml =~ m/$obiscnt->{obis}(.*?)0177/;      my $sml_val = $1;
         
    [B] print "RegExp:  $sml_val  \n";   # hier muessten ein paar Byte auftauchen[/B]
    
     if ($debug==1)  {  print $1." contains hex \n";}       #extract value      $sml_val =~ s/^.*52FF//;      $sml_val = substr($sml_val,2);      if ($debug == 1) {  print $sml_val." hex \n";}      $value = $sml_val;

    Einen Kommentar schreiben:


  • lio123
    antwortet
    ???

    Einen Kommentar schreiben:

Lädt...
X