Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Neues Plugin für Vbus Solarregler Resol

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

    #46
    Zitat von lio123 Beitrag anzeigen
    @northman
    Kannst mir trotzdem quick'n'dirty die Anschlusspunkte in den schaltplan einzeichnen (ggf. Koordinaten?)
    Mit Koordinaten:
    • D1-4 habe ich weggelassen.
    • C1: links ist ein offenes Ende mit TXD beschriftet. Dort schließt Du TXD des TTL-Seriell-Wandlers an
    • B5: rechts ist RXD als offenes Ende -> RXD vom Wandler
    • Aus dem Plan geht nicht so hervor, daß auch IC2 an 5V und GND angeschlossen werden muß, da IC2 oben links in der Spannungsversorgung nicht beschriftet ist, aber die Leitungen 4 & 8 in der Mitte gehören zu IC2. Da bin ich zuerst drauf reingefallen und habe mich geärgert, daß es nicht funktioniert... Ich dachte, daß die Leitungen zu IC3 gehören. Irgendwann ist es mir dann im Boardschema aufgefallen, daß auch an IC2 5V und GND anliegen....

    Zitat von lio123 Beitrag anzeigen
    Den Link auf die Conf im Plugin war irgendwie blöd.
    Dadurch war kein CopyPaste möglich und die Dateinamen mussten angepasst werden.
    Ich habe die readConf-Funktion aus einem anderem Skript genommen, aber es funktionierte nicht. Das Conf-File wurde nicht gefunden, sondern erst, als ich den komplette Pfad angegeben hatte. Mit der zweiten Version von heute morgen funktioniert es aber.
    Ich habe beim lokalen Entwickeln die Strict-Direktive gesetzt und dafür mußten alle Variablen mittels "my ...;" deklariert werden. So auch "$plugname". Nur leider wurde so die vomn Wiregate mitgegebene Variable überschrieben, bzw sie war innerhalb meines Skriptes leer; ergo konnte der Pfad für die Conf-Datei nicht korrekt zusammengesetzt werden.
    Als zweiter Nebeneffekt steht im Pluginlog jetzt auch der Pluginname drin, was vorher genau deswegen auch nicht funktionierte.
    Gruß, Carsten

    Kommentar


      #47
      Nur am Rande: im wiregated*pl steht ganz oben "use strict", das gilt auch für jedes Plugin, alles andere finde ich nämlich bestenfalls hirnrissig
      Ergo, jede Variable muss wenigstens deklariert sein (Perl ist bei den Typen eh schon eher sehr grosszügig oder, naja, lapsig..)

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

      Kommentar


        #48
        Hallo,
        das Plugin lief jetzt lange zeit gut und zuverlässig.
        Seit ca einer Woche kommt jetzt aber nichts mehr an.

        Ich habe die Schnittstelle mal entfernt und wieder gesteckt-Das Plugin merkt das aber nicht.
        Da im script Debug=1 steht sollten ja die Werte angezeigt werden, statt dessen steht dieses:

        Code:
        2013-09-09 23:02:52.142,Resol Solarregler V1.0, reading conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf]. 2013-09-09 23:02:52.159,Resol Solarregler V1.0,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10] 2013-09-09 23:02:52.168,Resol Solarregler V1.0, 2013-09-09 23:02:55.200,Resol Solarregler V1.0,1,3s, 2013-09-09 23:03:55.544,Resol Solarregler V1.0, reading conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf]. 2013-09-09 23:03:55.552,Resol Solarregler V1.0,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10] 2013-09-09 23:03:55.561,Resol Solarregler V1.0, 2013-09-09 23:03:58.588,Resol Solarregler V1.0,1,3s, 2013-09-09 23:04:58.705,Resol Solarregler V1.0, reading conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf]. 2013-09-09 23:04:58.713,Resol Solarregler V1.0,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10] 2013-09-09 23:04:58.721,Resol Solarregler V1.0, 2013-09-09 23:05:01.765,Resol Solarregler V1.0,1,3s, 2013-09-09 23:06:00.615,Wetterabfrage wunderground,1,2.1s, 2013-09-09 23:06:02.227,Resol Solarregler V1.0, reading conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf]. 2013-09-09 23:06:02.244,Resol Solarregler V1.0,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10] 2013-09-09 23:06:02.262,Resol Solarregler V1.0, 2013-09-09 23:06:05.289,Resol Solarregler V1.0,1,3s, 2013-09-09 23:07:06.477,Resol Solarregler V1.0, reading conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf]. 2013-09-09 23:07:06.488,Resol Solarregler V1.0,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10] 2013-09-09 23:07:06.500,Resol Solarregler V1.0, 2013-09-09 23:07:09.527,Resol Solarregler V1.0,1,3s,
        Gibt es noch ne weitere Möglichkeit herauszufinden wo der Hammer begraben liegt?

        DAnke und GRüße,
        Lio

        Kommentar


          #49
          Hast du etwas an der conf.d verändert? Es sieht fast so aus als wenn das Plugin nach/wärend dem einlesen der conf.d nicht weiter arbeitet. Eventuell helfen da weitere Debugzeilen um zu sehen was im Detail passiert.
          Gruss Patrik alias swiss

          Kommentar


            #50
            Hi Patrik,

            Du meinst ein paar Zeilen mehr aus dem Log-File?
            Darin gibt es nicht mehr. Alle 5 Minuten erfolgt so ein Eintrag ins Log.

            Verändert? Sag niemals nie! Ich war die letzten Wochen mit der SmartVisu beschäftigt. Ich habe das WG aber etwa in dem Zeitraum abgedatet, da weder die Smart, noch die CometVisu einen Schaltvorgang absetzten.

            ?!?

            DAnke und Gruß,
            Lio

            Kommentar


              #51
              Nein mit weiteren Debugzeilen meinte ich mehr Debugzeilen in dein Plugin einfügen, damit du mehr Logeinträge erhällst und dadurch eventuell herausfindest an welcher Stelle das Plugin aussteigt. Oder besser noch wesshalb es aussteigt.

              Du sagst, du hst das WG geupdatet? Ist dein VBus Plugin nicht vorkompiliert und braucht ein gepatchter wiregated? Könnte es sein, dass der Patch mit dem Update eventuell überbügelt wurde?
              Gruss Patrik alias swiss

              Kommentar


                #52
                Zitat von swiss Beitrag anzeigen

                Du sagst, du hst das WG geupdatet? Ist dein VBus Plugin nicht vorkompiliert und braucht ein gepatchter wiregated? Könnte es sein, dass der Patch mit dem Update eventuell überbügelt wurde?

                Ich hab das damals mit Copy & Paste ins Webmin-Plugin-Fenster kopiert und meine Parameter angepasst. Mehr war da nicht.
                Aber kann ich zum Testen das letzte Update rückgängig machen?

                Kommentar


                  #53
                  Zitat von lio123 Beitrag anzeigen
                  Hallo,
                  das Plugin lief jetzt lange zeit gut und zuverlässig.
                  Seit ca einer Woche kommt jetzt aber nichts mehr an.

                  Gibt es noch ne weitere Möglichkeit herauszufinden wo der Hammer begraben liegt?

                  DAnke und GRüße,
                  Lio
                  Hallo Lio,

                  leider kann ich Dir im Moment nicht helfen, da mein DynDNS-Eintrag weg ist und damit auch mein VPN nach Hause... Auch habe ich auf meinem Notebook keine Kopie des Plugins, sonst hätte ich Dir vll mehr sagen können.
                  Am Wochenende habe ich wahrscheinlich Zeit mir das anzugucken. Mal sehen, ob das bei mir auch nach einem WG-Update Probleme bereitet.
                  Ich melde mich, wenn ich mehr weiß.

                  Falls Du die Kompilieroption von Fry einsetzt, hat das Update den Patch wieder rückgängig gemacht.
                  Das Skript läßt sich in der von mir veröffentlichten Version nicht kompilieren. Hast Du Änderungen vorgenommen? Wenn ja, welche?
                  Gruß, Carsten

                  Kommentar


                    #54
                    Hallo Carsten,

                    ja das Problem mi Dyn kenne ich. Kann auch erst am WE checken, ob der Regler was an die Resol-Software sendet.
                    Am Plugin habe ich aber seither nichts mehr geändert.
                    Wie gesagt, liegt der Verdacht auf dem Update oder Hardwaredefekt.

                    Grüße,
                    Lio

                    Kommentar


                      #55
                      Hallo Lio,

                      ich habe bei mir ein Update des Wiregates durchgeführt und das Plugin funktioniert noch immer.

                      Mir sind noch ein paar Kleinigkeiten in der Conf und dem Skript aufgefallen.
                      In der Conf fehlen Einträge für den Logtext der erfolgreichen Schnittstellenöffnung:
                      Code:
                      log_serial_device_open_en    => "Serial device successful openend: '%s'",
                      log_serial_device_open_de    => "Serielle Schnittstelle erfolgreich geöffnet: '%s'",
                      Die beiden Zeilen einfach zu den anderen Textdefinitionen kopieren.

                      Zusätzlich habe ich die entsprechende Zeile im Plugin angepaßt, damit die Schnittstelle mit ausgegeben wird:
                      Code:
                      Zeile 43:
                      if($debug>=1){plugin_log($plugname,sprintf($msgs{"log_serial_device_open_$lang"}, $serialdev))}  ;
                      Mein Log sieht jetzt so aus:
                      Code:
                      2013-09-12 21:50:59.739,Resol, reading conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf].
                      2013-09-12 21:50:59.748,Resol,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10]
                      2013-09-12 21:50:59.756,Resol,Serielle Schnittstelle erfolgreich geöffnet: '/dev/usbserial-1-4.3'
                      2013-09-12 21:51:00.517,Resol,Berechne Pruefsumme Header...
                      2013-09-12 21:51:00.517,Resol,Berechne Pruefsumme Frame...
                      2013-09-12 21:51:00.518,Resol,Fuege Septett hinzu...
                      2013-09-12 21:51:00.518,Resol,Parse Daten...
                      2013-09-12 21:51:00.524,Resol,Decodierte Daten: Temperatur Kollektor: 12.60 °C
                      2013-09-12 21:51:00.527,Resol,Decodierte Daten: Temperatur Speicher: 38.20 °C
                      2013-09-12 21:51:00.532,Resol,Decodierte Daten: Temperatur Vorlauf: 33.40 °C
                      2013-09-12 21:51:00.536,Resol,Decodierte Daten: Drehzahl Pumpe: 0.00 %
                      2013-09-12 21:51:00.542,Resol,Decodierte Daten: Betriebsstunden Pumpe: 3792.00 h
                      2013-09-12 21:51:00.543,Resol,Decodierte Daten: ErrorMask: 0.00
                      2013-09-12 21:51:00.548,Resol,Decodierte Daten: Sensor Kollektor defekt: 0.00
                      2013-09-12 21:51:00.553,Resol,Decodierte Daten: Sensor Speicher defekt: 0.00
                      2013-09-12 21:51:00.559,Resol,Decodierte Daten: Sensor Zufluß defekt: 0.00
                      2013-09-12 21:51:00.559,Resol,Decodierte Daten: Statusmask: 0.00
                      Setz bitte mal $debug auf 2. Entweder in der Conf, oder füge im Plugin nach "readConf();" eine Zeile mit "my $debug = 2;" ein.
                      Und danach bitte das Log hier posten.

                      Du kannst auch mal testen, ob von der Schnittstelle überhaupt was gelesen wird: per SSH auf das WG und "od -x /dev/usbserial-1-4.3" (<- Gerätenamen natürlich anpassen).

                      Mehr fällt mir im Moment auch nicht ein.
                      Gruß, Carsten

                      Kommentar


                        #56
                        VBus/Lan

                        Hallo,

                        das ganze schaut ja sehr vielversprechend au. Vielleicht kann mir jemand weiterhelfen. Ich hab seit letzter Woche den VBus/Lan Adapter von Resol und möchte damit die Werte meiner Sonnekraft Steuerung aufzeichnen um sie später am HS darzustellen (IST Grafik, TemeraturverlaufsDiagramm, ...). Der Adapter funktioniert einwandfrei mit der mitgelieferten Windowssoftware bekomme ich die Daten angezeigt. Jetzt würde ich gerne unter Linux die Daten aufzeichnen.

                        Wie weit bin ich:
                        Ich verbinde mich per Telnet auf das port 7053 melde mit mit PASS vbus an und nach DATA bekomme ich den VBus stream ausgegeben.

                        Was ich möchte:
                        Ich hätte gerne diesen Stream der mit einfachen mitteln (das Perl script in diesem Thread schaut für mich aus Perl Leie brauchbar aus) einem script übergeben, decodieren und in ein log speichern. Die Frage ist nun wie müßte ich das script umschreiben sodass es nicht auf RS232 sondern auf IP lauscht?

                        Ich freue mich über jeden Hinweis.

                        lg Markus

                        Kommentar


                          #57
                          Hallo,
                          Jahre später melde ich mich wieder zurück.
                          Das Plugin war etwas ins Hintertreffen geraten ist nun aber wieder dran.

                          Also die Hardware kann ich ausschliessen. Die Schnittstelle liefert Daten, die die RESOL-Software richtig interpretiert.

                          Das Plugin habe ich mittlerweile mit den Änderungen aus Post #55 ergänzt.

                          Das Plugin sendet dennoch nur :

                          Code:
                           
                           2015-12-29 18:50:09.848,SolarResol,conf file [/etc/wiregate/plugin/generic/conf.d/Resol.conf] returned result[10] 2015-12-29 18:50:09.855,SolarResol, 2015-12-29 18:50:12.877,SolarResol,1,3s,
                          Leider keine Ahnung was da los ist.
                          Könnte mir jemand das Thema mit dem Patch erklären?

                          Danke und Grüße,
                          Lio

                          Kommentar


                            #58
                            Hallo,

                            kann es sein, dass es was mit UDEV, bzw SYMLINK zu tun hat?
                            Beim Stecken/Entfernen des USB-Wandlers ändert sich dieser Eintrag: /dev/usbserial-1-4.3
                            Dieser steht auch im Plugin.

                            Wie kann ich sicher sein, dass darüber was am WG ankommt?

                            Danke und Grüße,
                            Lio

                            Kommentar


                              #59
                              Hallo Lio,

                              leider sind durch die Forumsumstellung meine Abos weggefallen und damit habe ich auch keine Infos über Deine neuen Beiträge hier bekommen.

                              Beim Stecken/Entfernen des USB-Wandlers ändert sich dieser Eintrag: /dev/usbserial-1-4.3
                              Damit meinst Du die Ausgabe von dmesg, wenn Du den USB-Adapter abziehst und wieder ansteckst, oder?

                              So ähnlich sieht das bei mir aus (aus dem Bootvorgang):
                              Code:
                              [   22.101775] usbcore: registered new interface driver usbserial
                              [   22.101932] usbcore: registered new interface driver usbserial_generic
                              [   22.102071] USB Serial support registered for generic
                              [   22.102141] usbserial: USB Serial Driver core
                              [   22.182033] usbcore: registered new interface driver ftdi_sio
                              [   22.182194] USB Serial support registered for FTDI USB Serial Device
                              [   22.182625] ftdi_sio 1-4.5:1.0: FTDI USB Serial Device converter detected
                              [   22.182839] usb 1-4.5: Detected FT232RL
                              [   22.182907] usb 1-4.5: Number of endpoints 2
                              [   22.182975] usb 1-4.5: Endpoint 1 MaxPacketSize 64
                              [   22.183045] usb 1-4.5: Endpoint 2 MaxPacketSize 64
                              [   22.183114] usb 1-4.5: Setting MaxPacketSize 64
                              [   22.185485] usbcore: registered new interface driver pl2303
                              [   22.185644] USB Serial support registered for pl2303
                              [   22.185775] pl2303 1-4.4:1.0: pl2303 converter detected
                              [   22.234336] usb 1-4.4: pl2303 converter now attached to ttyUSB1
                              [   22.240399] usb 1-4.5: FTDI USB Serial Device converter now attached to ttyUSB0
                              In dem Fall ist das Gerät am USB-Anschluß 1-4.5 als "ttyUSB0" gemountet.
                              Hiermit siehst Du alle USB-Geräte:
                              Code:
                              root@wiregateXXX:~# l /dev/usb*
                              [...]
                              lrwxrwxrwx 1 root root      7 10. Aug 19:11 /dev/usbserial-1-4.4 -> ttyUSB1
                              lrwxrwxrwx 1 root root      7 20. Dez 16:30 /dev/usbserial-1-4.5 -> ttyUSB0
                              lrwxrwxrwx 1 root root      7 20. Dez 16:30 /dev/usbserial-A9KJJD51 -> ttyUSB0
                              
                              root@wiregateXXX:~# l /dev/tty*
                              [...]
                              crw-rw---- 1 root dialout 188,  0 14. Jan 09:53 /dev/ttyUSB0
                              crw-rw---- 1 root dialout 188,  1 14. Jan 09:53 /dev/ttyUSB1
                              lrwxrwxrwx 1 root root          7 10. Aug 19:11 /dev/ttyUSB-1-4.4 -> ttyUSB1
                              lrwxrwxrwx 1 root root          7 20. Dez 16:30 /dev/ttyUSB-1-4.5 -> ttyUSB0
                              Bei mir stand diese Form in der Config: "/dev/usbserial-1-4.5".

                              Setz mal $debug auf 3. Damit kommen noch mehr Informationen über die empfangenen Daten.

                              Mit "od -x /dev/usbserial-1-4.3" kannst Du prüfen, ob der Adapter am WG überhaupt Daten liefert.


                              Zur Sicherheit nochmal meine Version des Plugins, welche bei mir bis zum Schluß lief. (Inzwischen habe ich einen Arduino Nano, der die Daten empfängt, decodiert und auf Anfrage den letzten Datensatz schickt. Damit läuft das neue Plugin nur noch knapp 90msec. Das Projekt werde ich bei Gelegenheit mal hier veröffentlichen):
                              Code:
                              #use strict;
                              use Device::SerialPort;
                              use Time::HiRes qw( usleep gettimeofday  tv_interval );
                              my $crc;
                              my $d;
                              my $framecount;
                              my $framecrc;
                              my $i;
                              my $packetsize;
                              my $usedbytes;
                              my $value;
                              my $valuedata;
                              my $valuedataf;
                              my $valuedatastr;
                              my $debug = 2;
                              
                              my $connectiontype;
                              my $dfa;
                              my $format;
                              my $lang;
                              my $serial;
                              my $serialcount;
                              my $serialdata;
                              my $serialdev;
                              my $solar;
                              my $timeout;
                              my %msgs;
                              my @serialunpack;
                              my @values;
                              my $cycle;
                              readConf();
                              $plugin_info{$plugname.'_cycle'}  = $cycle;
                              
                              if ($connectiontype eq "serial"){
                                  $serial = Device::SerialPort->new($serialdev) || die "Can't open $serialdev ($!)\n";
                                  $serial->baudrate(9600);
                                  $serial->parity("none");
                                  $serial->databits(8);
                                  $serial->stopbits(1);
                                  $serial->handshake("none");
                                  $serial->write_settings;
                                  $serial->lookclear;
                                  if($debug>=1){plugin_log($plugname,sprintf($msgs{"log_serial_device_open_$lang"}, $serialdev))}  ;
                              } else {
                                  die "Not supported connectiontype '$connectiontype'";
                              }
                              my @packet = ();        # will hold a complete received packet
                              my @buffer = ();
                              my $loop = 0;
                              my $syncfound = 0;        # will be set to 1 if 0xAA is received
                              my $t0 = [gettimeofday];# now
                              my $res = 0;
                              while ((tv_interval $t0, [gettimeofday]) < $timeout && $res == 0) {        # while timeout is not reached and no valid packet was analyzed
                                  ($serialcount, $serialdata) = $serial->read(255);
                                  if($serialcount > 0){
                                      @serialunpack = unpack "C*", $serialdata;                        # convert received chars to bytes
                                      if ($debug>2) {plugin_log($plugname,sprintf($msgs{"log_serial_data_$lang"}, sprintf((" %02X" x ($#serialunpack+1), @serialunpack))))};
                                      foreach (@serialunpack) {
                                          if ($_ == 0xAA) {            # sync byte found
                                              if ($syncfound == 0) {    # '0' means found first sync byte
                                                  @buffer = (0xAA);
                                                  $syncfound = 1;
                                              } else {                # found a second sync byte -> we received a full packet
                                                  @packet = @buffer;    # @packet will be analyzed
                                                  if ($debug>2) {plugin_log($plugname,sprintf($msgs{"log_data_to_analyze_$lang"}, sprintf((" %02X" x ($#packet+1) ), @serialunpack)))};
                                                  $res = analyze_packet(); # result will be '0' if an error occurs and '1' if analysis was successful
                                                  @buffer = (0xAA);    # clear buffer and set first byte to the sync byte
                                              }
                                          } else {
                                              if ($_ > 0x7F) {        # bytes greater than 0x7F (127) are not allowed (except for the sync byte 0xAA (170)
                                                  @buffer = ();        # clear buffer
                                                  $syncfound = 0;        # reset to skip all bytes until the next sync byte
                                                  if ($debug>2) {plugin_log($plugname,sprintf($msgs{"err_byte_gt_0x7f_$lang"}, $_))};
                                              }
                                              if ($syncfound == 1) {
                                                  push(@buffer, $_);    # add byte to buffer
                                              }
                                          }
                                      }
                                  }
                                  usleep 50000;                        # sleep for 50,000µs
                                  $loop++;                            # count iterations of the while-loop
                              }
                              
                              my $t1 = [gettimeofday];                # now 2
                              my $t0_t1 = tv_interval $t0, $t1;        # get timespan between start & end
                              
                              print "\n\nTime needed: $t0_t1 \n";
                              $serial->close();
                              
                              sub analyze_packet {
                                  my $source        = $packet[4] * 0x100 + $packet[3];        # source ID of this packet
                                  my $target        = $packet[2] * 0x100 + $packet[1];        # target ID of this packet
                                  my $protocol    = $packet[5];                            # protocol ID. Must be 0x10
                                  my $command        = $packet[7] * 0x100 + $packet[6];        # command. Must be 0x0100 = paket contains data for slave
                                  my $offset = 1;                                            # offset and length of header. Values directly used to check CRC of header
                                  my $length = 8;
                                  my @data;                                                # array for the data bytes as the data offset does not include septet and CRC
                                  if ($source   != $solar) {if ($debug >=2) {plugin_log($plugname, sprintf($msgs{"err_source_$lang"}, $source)) } ; return 0};
                                  if ($target   != $dfa  ) {if ($debug >=2) {plugin_log($plugname, sprintf($msgs{"err_target_$lang"}, $target)) } ; return 0};
                                  if ($protocol != 0x10  ) {if ($debug >=2) {plugin_log($plugname, sprintf($msgs{"err_protocol_$lang"}, $protocol)) } ; return 0};
                                  if ($command  != 0x0100) {if ($debug >=2) {plugin_log($plugname, sprintf($msgs{"err_command_$lang"}, $command)) } ; return 0};
                                  if ($debug >=1) {plugin_log($plugname, sprintf($msgs{"progress_crc_header_$lang"}))};
                                  $crc = vbus_crc($offset,$length);     # get CRC of header
                                  if ($crc != $packet[9]) {if ($debug >=2) {plugin_log($plugname, sprintf($msgs{"err_crc_header_$lang"}, $packet[9] , $crc)) } ; return 0};
                                  $framecount = $packet[8];        # number of data frames
                                  $packetsize = $#packet + 1;
                                  # every dataframe has six bytes
                                  if (($packetsize != (10 + $framecount * 6))) { if ($debug >=2) {plugin_log($plugname,sprintf($msgs{"err_packetsize_$lang"}, $packetsize, (10 + $framecount * 6) , $framecount))} ; return 0};
                                  # check crc of data frames
                                  if ($debug >=1) {plugin_log($plugname, sprintf($msgs{"progress_crc_frame_$lang"}))};
                                  $length = 5; # crc includes septet byte
                                  for ($i = 0; $i < $framecount; $i++) {
                                      $offset = 10 + $i * 6;
                                      $framecrc = $packet[10 + $i * 6 + 5];
                                      $crc = vbus_crc($offset,$length);
                                      if ($crc != $framecrc) {if ($debug >=2) {plugin_log($plugname, sprintf($msgs{"err_crc_frame_$lang"} , $i , $framecrc , $crc)) } ; return 0};
                                  }
                                  # Insert septets and add data bytes to @data
                                  if ($debug >=1) {plugin_log($plugname, sprintf($msgs{"progress_insert_septet_$lang"}))};
                                  $length = 4;
                                  for ($i = 0; $i < $framecount; $i++) {
                                      $offset = 10 + $i * 6;
                                      &vbus_injectSeptet($offset,$length);
                                      push(@data, @packet[$offset..($offset + $length -1)]);
                                  }
                                  if ($debug >= 2) {plugin_log($plugname, sprintf($msgs{"log_packetdata_$lang"} . (" %02X" x ($#data+1)), @data)) };
                                  if ($debug >=1) {plugin_log($plugname, sprintf($msgs{"progress_parse_data_$lang"}))};
                                  foreach $value (@values) {
                                      if ($debug >= 2) {plugin_log($plugname, sprintf($msgs{"log_valuename_$lang"}, $value->{"Name_$lang"}))};
                                      $usedbytes = int(($value->{bitsize} +7) / 8);
                                      $valuedatastr = "";
                                      $offset = $value->{Offset};
                                      foreach $d (@data[$offset..($offset+$usedbytes-1)]) {
                                          $valuedatastr = sprintf("%02X", $d) . $valuedatastr;
                                      }
                                      if ($debug >= 2) {plugin_log($plugname, sprintf($msgs{"log_valuedatahex_$lang"}, $valuedatastr))};
                                      $valuedata = hex($valuedatastr) & ((2** $value->{bitsize})-1);
                                      if ($value->{signed} == 1) {
                                          if ((hex($valuedatastr) & (2**($usedbytes*8-1))) > 0) {
                                              $valuedata = -(2**($usedbytes*8) - hex($valuedatastr));
                                          }
                                      }
                                      if ($debug >= 2) {plugin_log($plugname, sprintf($msgs{"log_valuedatadec_$lang"}, $valuedata))};
                                      if ($value->{Factor}) {
                                              $valuedataf = $valuedata * $value->{Factor};
                                              if ($debug >= 2) {plugin_log($plugname, sprintf($msgs{"log_valuedatadec_w_factor_$lang"}, $valuedata, $value->{Factor}, $valuedataf))};
                                              $valuedata = $valuedataf;
                                      }
                                      if ($value->{bitsize} == 1) {
                                          if ($valuedata > 0) {
                                              $valuedata = 1;
                                              print "bit 1\n";
                                          } else {
                                              $valuedata = 0;
                                          }
                                      }
                                      if ($value->{GA} ne '') {
                                          knx_write($value->{GA}, $valuedata , $value->{DPT});
                                      }
                                      if ($debug >= 1) {plugin_log($plugname, sprintf($msgs{"log_value_information_$lang"}, $value->{"Name_$lang"}, $valuedata, $value->{"Unit"})) ; print "-------\n"};
                                      
                                  }
                                  return 1;
                              }
                              
                              ############### END #################
                              sub vbus_crc {
                                  my ($offset, $length) = @_;
                                  my ($i);
                                  my ($crc) = 0x7f;
                                  for ($i = 0; $i < $length; $i++) {
                                      $crc = ($crc - $packet[$offset + $i]) & 0x7f;
                                  }
                                  return $crc
                              }
                              
                              sub vbus_injectSeptet {
                                  my ($offset, $length) = @_;
                                  my ($i, $septet);
                                  $septet = $packet[$offset + $length];
                                  for ($i = 0; $i < $length; $i++) {
                                      if ($septet & (2 ** $i)) {
                                          $packet[$offset + $i] |= 0x80;
                                      }
                                  }
                              }
                              # sub plugin_log {
                                  # my ($plugname, $text) = @_;
                                  # print $text . "\n";
                              # }
                              
                              sub readConf
                              {
                                  #my $confFile = '/etc/wiregate/plugin/generic/conf.d/Resol.conf';
                                  my $confFile = '/etc/wiregate/plugin/generic/conf.d/'.basename($plugname,'.pl').'.conf';
                                  if (! -f $confFile)
                                  {
                                      plugin_log($plugname, " no conf file [$confFile] found!");
                                  }
                                  else
                                  {
                                      if($debug>=1){plugin_log($plugname, " reading conf file [$confFile].");}
                                      open(CONF, $confFile);
                                      my @lines = <CONF>;
                                      close($confFile);
                                      my $result = eval("@lines");
                                      ($result) and plugin_log($plugname, "conf file [$confFile] returned result[$result]");
                                      if ($@)
                                      {
                                          if($debug>=1){plugin_log($plugname, " conf file [$confFile] returned:");}
                                          my @parts = split(/\n/, $@);
                                          if($debug>=2){plugin_log($plugname, " --> $_") foreach (@parts);}
                                      }
                                  }
                              } # readConf
                              Und die Config:
                              Code:
                              $debug = 2;
                              $cycle = 60;
                              $connectiontype = "serial";
                              $serialdev = "/dev/usbserial-1-4.3";
                              $timeout = 3;                                # maximum time in seconds to listen for a valid packet
                              $solar = 0x427b;                            # ID of your own solar device
                              $dfa   = 0x0010;                            # ID of "DFA". In german "Daten Fernanzeige". englisch ~ "remote data display"
                                                                          # solar device broadcasts his state to this address
                              $lang = "de";
                              %msgs = (
                                  # english / englisch
                                      err_source_en                => "ERROR: Wrong source ID: 0x%04X",
                                      err_target_en                => "ERROR: Wrong target ID: 0x%04X",
                                      err_protocol_en              => "ERROR: Wrong protocol version: 0x%02X",
                                      err_command_en               => "ERROR: Wrong command 0x%04X",
                                      err_crc_header_en            => "ERROR: CRC of header is wrong. In packet: 0x%02X. Calculated: 0x%02X",
                                      err_packetsize_en            => "ERROR: Packetsize (%d) != calculated size (%d). Framecount = %d",
                                      err_crc_frame_en             => "ERROR: CRC of frame %d is wrong. In frame: 0x%02X. Calculated: 0x%02X",
                                      err_byte_gt_0x7f_en          => "ERROR: Byte greater than 0x7F received: 0x%02X",
                                      log_packetdata_en            => "Data bytes:",
                                      log_valuename_en             => "Value name: %s",
                                      log_valuedatahex_en          => "Value data hex: %s",
                                      log_valuedatadec_en          => "Value data dec: %d",
                                      log_valuedatadec_w_factor_en => "Value has factor: %d * %.2f = %.2f",
                                      log_value_information_en     => "Decoded data: %s: %.2f %s",
                                      log_serial_device_open_en    => "Serial device successful openend: '%s'",
                                      log_serial_data_en           => "Received serial data: %s",
                                      log_packet_found_en          => "Packet found: %s",
                                      progress_crc_header_en       => "Calc CRC header...",
                                      progress_crc_frame_en        => "Calc CRC frame...",
                                      progress_insert_septet_en    => "Insert septet...",
                                      progress_parse_data_en       => "Parse data...",
                                  # german / deutsch    
                                      err_source_de                => "ERROR: Falsche Quellen-ID: 0x%04X",
                                      err_target_de                => "ERROR: Falsche Ziel-ID: 0x%04X",
                                      err_protocol_de              => "ERROR: Falsche Protokollversion: 0x%02X",
                                      err_command_de               => "ERROR: Falsches Kommando 0x%04X",
                                      err_crc_header_de            => "ERROR: Pruefsumme des Headers falsch. Im Paket: 0x%02X. Berechnet: 0x%02X",
                                      err_packetsize_de            => "ERROR: Paketgroesse (%d) enstpricht nicht der berechneten (%d). Frameanzahl = %d",
                                      err_crc_frame_de             => "ERROR: Pruefsumme von Frame %d ist falsch. Im Frame: 0x%02X. Berechnet: 0x%02X",
                                      err_byte_gt_0x7f_de          => "ERROR: Byte groesser als 0x7F empfangen: 0x%02X",
                                      log_packetdata_de            => "Daten Bytes:",
                                      log_valuename_de             => "Wertname: %s",
                                      log_valuedatahex_de          => "Wert hex: %s",
                                      log_valuedatadec_de          => "Wert dec: %d",
                                      log_valuedatadec_w_factor_de => "Wert hat einen Faktor: %d * %.2f = %.2f",
                                      log_value_information_de     => "Decodierte Daten: %s: %.2f %s",
                                      log_serial_device_open_de    => "Serielle Schnittstelle erfolgreich geöffnet: '%s'",
                                      log_serial_data_de           => "Empfangene serielle Daten: %s",
                                      log_packet_found_de          => "Packet gefunden: %s",
                                      progress_crc_header_de       => "Berechne Pruefsumme Header...",
                                      progress_crc_frame_de        => "Berechne Pruefsumme Frame...",
                                      progress_insert_septet_de    => "Fuege Septett hinzu...",
                                      progress_parse_data_de       => "Parse Daten...",
                              );                                        
                              @values = (
                                      { Name_en=>'Temperature sensor 1'    , Name_de=>'Temperatur Kollektor'    , Offset=> 0, bitsize=>15, bitpos=>undef, Factor=>0.1  , signed=>1, Unit=>'°C', RRD_Name=>'Solar_Temperatur_Kollektor'    , GA=>'3/7/0' , DPT=>'9.001' },
                                      { Name_en=>'Temperature sensor 2'    , Name_de=>'Temperatur Speicher'     , Offset=> 2, bitsize=>15, bitpos=>undef, Factor=>0.1  , signed=>1, Unit=>'°C', RRD_Name=>'Solar_Temperatur_Speicher'     , GA=>'3/7/1' , DPT=>'9.001' },
                                      { Name_en=>'Temperature sensor 3'    , Name_de=>'Temperatur Vorlauf'      , Offset=> 4, bitsize=>15, bitpos=>undef, Factor=>0.1  , signed=>1, Unit=>'°C', RRD_Name=>'Solar_Temperatur_Vorlauf'      , GA=>'3/7/2' , DPT=>'9.001' },
                                  #    { Name_en=>'Temperature sensor 4'    , Name_de=>'Temperatur Sensor 4'     , Offset=> 6, bitsize=>15, bitpos=>undef, Factor=>0.1  , signed=>1, Unit=>'°C', RRD_Name=>''                              , GA=>'3/7/3' , DPT=>''      },
                                      { Name_en=>'Pump speed 1'            , Name_de=>'Drehzahl Pumpe'          , Offset=> 8, bitsize=> 8, bitpos=>undef, Factor=>1    , signed=>0, Unit=>'%' , RRD_Name=>'Solar_Drehzahl_Pumpe'          , GA=>'3/7/4' , DPT=>'5.001' },
                                  #    { Name_en=>'Pump speed 2'            , Name_de=>'Drehzahl Relais 2'       , Offset=>12, bitsize=> 8, bitpos=>undef, Factor=>1    , signed=>0, Unit=>'%' , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                      { Name_en=>'Operating hours relais 1', Name_de=>'Betriebsstunden Pumpe'   , Offset=>10, bitsize=>16, bitpos=>undef, Factor=>1    , signed=>0, Unit=>'h' , RRD_Name=>'Solar_Betriebsstunden_Pumpe'   , GA=>'3/7/5' , DPT=>'7.007' },
                                  #    { Name_en=>'Operating hours relais 2', Name_de=>'Betriebsstunden Relais 2', Offset=>14, bitsize=>16, bitpos=>undef, Factor=>1    , signed=>0, Unit=>'h' , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                  #    { Name_en=>'UnitType'                , Name_de=>'UnitType'                , Offset=>16, bitsize=> 8, bitpos=>undef, Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                  #    { Name_en=>'System'                  , Name_de=>'System'                  , Offset=>17, bitsize=> 8, bitpos=>undef, Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                      { Name_en=>'ErrorMask'               , Name_de=>'ErrorMask'               , Offset=>20, bitsize=>16, bitpos=>undef, Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                  #    { Name_en=>'Systemzeit'              , Name_de=>'Systemzeit'              , Offset=>22, bitsize=>15, bitpos=>undef, Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                      { Name_en=>'Sensor 1 failure'        , Name_de=>'Sensor Kollektor defekt' , Offset=>20, bitsize=> 1, bitpos=>0    , Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>'Solar_Sensor_Kollektor_defekt' , GA=>'3/7/6' , DPT=>'1.005' },
                                      { Name_en=>'Sensor 2 failure'        , Name_de=>'Sensor Speicher defekt'  , Offset=>20, bitsize=> 1, bitpos=>1    , Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>'Solar_Sensor_Speicher_defekt'  , GA=>'3/7/7' , DPT=>'1.005' },
                                      { Name_en=>'Sensor 3 failure'        , Name_de=>'Sensor Zufluß defekt'    , Offset=>20, bitsize=> 1, bitpos=>2    , Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>'Solar_Sensor_Zufluß_defekt'    , GA=>'3/7/8' , DPT=>'1.005' },
                                  #    { Name_en=>'Sensor 4 failure'        , Name_de=>'Sensor 4 defekt'         , Offset=>20, bitsize=> 1, bitpos=>3    , Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>'Solar_Sensor_4_defekt'         , GA=>'3/7/9' , DPT=>'1.005' },
                                      { Name_en=>'Statusmask'              , Name_de=>'Statusmask'              , Offset=>24, bitsize=>32, bitpos=>undef, Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                  #    { Name_en=>'Heat amount'             , Name_de=>'Wärmemenge'              , Offset=>28, bitsize=>32, bitpos=>undef, Factor=>1    , signed=>0, Unit=>'Wh', RRD_Name=>'Solar_Waermemenge'             , GA=>''      , DPT=>'12.001'},
                                  #    { Name_en=>'SV Version'              , Name_de=>'SV Version'              , Offset=>32, bitsize=>16, bitpos=>undef, Factor=>0.01 , signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                                  #    { Name_en=>'Variante'                , Name_de=>'Variante'                , Offset=>34, bitsize=>16, bitpos=>undef, Factor=>undef, signed=>0, Unit=>''  , RRD_Name=>''                              , GA=>''      , DPT=>''      },
                              );
                              ########## conf #############
                              PS: Vielleicht war Dir einiges zu ausführlich, da schon bekannt. Aber eventuell hilft es dem nächsten :-)
                              Gruß, Carsten

                              Kommentar


                                #60
                                Hallo, mehr zuviel als zu wenig-ich fang immer wieder von Neuem an!
                                Danke, dass Du Dich mir annimmst!

                                Ich habe den Code abermals eingefügt.

                                Um die Namensgebung zu erhalten habe ich einen anderen Befehl benutzt:
                                Code:
                                > ls -l /dev/usb*
                                crw-rw---- 1 root root 251, 0 29. Dez 18:56 /dev/usbmon0
                                crw-rw---- 1 root root 251, 1 29. Dez 18:56 /dev/usbmon1
                                crw-rw---- 1 root root 251, 2 29. Dez 18:56 /dev/usbmon2
                                lrwxrwxrwx 1 root root      7 29. Dez 18:57 /dev/usbserial-1-4.1 -> ttyUSB0
                                lrwxrwxrwx 1 root root      7 29. Dez 18:57 /dev/usbserial-1-4.2 -> ttyUSB1
                                lrwxrwxrwx 1 root root      7 29. Dez 19:48 /dev/usbserial-1-4.3 -> ttyUSB2
                                lrwxrwxrwx 1 root root      7 29. Dez 18:57 /dev/usbserial-A601NKCL -> ttyUSB0
                                lrwxrwxrwx 1 root root      7 29. Dez 18:57 /dev/usbserial-AD01QVKU -> ttyUSB1
                                lrwxrwxrwx 1 root root      7 29. Dez 19:48 /dev/usbserial-FTAJO8TG -> ttyUSB2
                                und

                                Code:
                                > ls -l /dev/tty*
                                crw-rw-rw- 1 root root      5,  0 29. Dez 18:57 /dev/tty
                                crw-rw---- 1 root root      4,  0 29. Dez 18:56 /dev/tty0
                                crw------- 1 root root      4,  1 14. Jan 22:15 /dev/tty1
                                crw-rw---- 1 root root      4, 10  3. Jan 00:00 /dev/tty10
                                crw-rw---- 1 root root      4, 11 29. Dez 18:56 /dev/tty11
                                crw-rw---- 1 root root      4, 12 29. Dez 18:56 /dev/tty12
                                crw-rw---- 1 root root      4, 13 29. Dez 18:56 /dev/tty13
                                crw-rw---- 1 root root      4, 14 29. Dez 18:56 /dev/tty14
                                crw-rw---- 1 root root      4, 15 29. Dez 18:56 /dev/tty15
                                crw-rw---- 1 root root      4, 16 29. Dez 18:56 /dev/tty16
                                crw-rw---- 1 root root      4, 17 29. Dez 18:56 /dev/tty17
                                crw-rw---- 1 root root      4, 18 29. Dez 18:56 /dev/tty18
                                crw-rw---- 1 root root      4, 19 29. Dez 18:56 /dev/tty19
                                crw------- 1 root root      4,  2 29. Dez 18:58 /dev/tty2
                                crw-rw---- 1 root root      4, 20 29. Dez 18:56 /dev/tty20
                                crw-rw---- 1 root root      4, 21 29. Dez 18:56 /dev/tty21
                                crw-rw---- 1 root root      4, 22 29. Dez 18:56 /dev/tty22
                                crw-rw---- 1 root root      4, 23 29. Dez 18:56 /dev/tty23
                                crw-rw---- 1 root root      4, 24 29. Dez 18:56 /dev/tty24
                                crw-rw---- 1 root root      4, 25 29. Dez 18:56 /dev/tty25
                                crw-rw---- 1 root root      4, 26 29. Dez 18:56 /dev/tty26
                                crw-rw---- 1 root root      4, 27 29. Dez 18:56 /dev/tty27
                                crw-rw---- 1 root root      4, 28 29. Dez 18:56 /dev/tty28
                                crw-rw---- 1 root root      4, 29 29. Dez 18:56 /dev/tty29
                                crw------- 1 root root      4,  3 29. Dez 18:58 /dev/tty3
                                crw-rw---- 1 root root      4, 30 29. Dez 18:56 /dev/tty30
                                crw-rw---- 1 root root      4, 31 29. Dez 18:56 /dev/tty31
                                crw-rw---- 1 root root      4, 32 29. Dez 18:56 /dev/tty32
                                crw-rw---- 1 root root      4, 33 29. Dez 18:56 /dev/tty33
                                crw-rw---- 1 root root      4, 34 29. Dez 18:56 /dev/tty34
                                crw-rw---- 1 root root      4, 35 29. Dez 18:56 /dev/tty35
                                crw-rw---- 1 root root      4, 36 29. Dez 18:56 /dev/tty36
                                crw-rw---- 1 root root      4, 37 29. Dez 18:56 /dev/tty37
                                crw-rw---- 1 root root      4, 38 29. Dez 18:56 /dev/tty38
                                crw-rw---- 1 root root      4, 39 29. Dez 18:56 /dev/tty39
                                crw------- 1 root root      4,  4 29. Dez 18:58 /dev/tty4
                                crw-rw---- 1 root root      4, 40 29. Dez 18:56 /dev/tty40
                                crw-rw---- 1 root root      4, 41 29. Dez 18:56 /dev/tty41
                                crw-rw---- 1 root root      4, 42 29. Dez 18:56 /dev/tty42
                                crw-rw---- 1 root root      4, 43 29. Dez 18:56 /dev/tty43
                                crw-rw---- 1 root root      4, 44 29. Dez 18:56 /dev/tty44
                                crw-rw---- 1 root root      4, 45 29. Dez 18:56 /dev/tty45
                                crw-rw---- 1 root root      4, 46 29. Dez 18:56 /dev/tty46
                                crw-rw---- 1 root root      4, 47 29. Dez 18:56 /dev/tty47
                                crw-rw---- 1 root root      4, 48 29. Dez 18:56 /dev/tty48
                                crw-rw---- 1 root root      4, 49 29. Dez 18:56 /dev/tty49
                                crw------- 1 root root      4,  5 29. Dez 18:58 /dev/tty5
                                crw-rw---- 1 root root      4, 50 29. Dez 18:56 /dev/tty50
                                crw-rw---- 1 root root      4, 51 29. Dez 18:56 /dev/tty51
                                crw-rw---- 1 root root      4, 52 29. Dez 18:56 /dev/tty52
                                crw-rw---- 1 root root      4, 53 29. Dez 18:56 /dev/tty53
                                crw-rw---- 1 root root      4, 54 29. Dez 18:56 /dev/tty54
                                crw-rw---- 1 root root      4, 55 29. Dez 18:56 /dev/tty55
                                crw-rw---- 1 root root      4, 56 29. Dez 18:56 /dev/tty56
                                crw-rw---- 1 root root      4, 57 29. Dez 18:56 /dev/tty57
                                crw-rw---- 1 root root      4, 58 29. Dez 18:56 /dev/tty58
                                crw-rw---- 1 root root      4, 59 29. Dez 18:56 /dev/tty59
                                crw------- 1 root root      4,  6 29. Dez 18:58 /dev/tty6
                                crw-rw---- 1 root root      4, 60 29. Dez 18:56 /dev/tty60
                                crw-rw---- 1 root root      4, 61 29. Dez 18:56 /dev/tty61
                                crw-rw---- 1 root root      4, 62 29. Dez 18:56 /dev/tty62
                                crw-rw---- 1 root root      4, 63 29. Dez 18:56 /dev/tty63
                                crw-rw---- 1 root root      4,  7 29. Dez 18:56 /dev/tty7
                                crw-rw---- 1 root root      4,  8 30. Dez 05:00 /dev/tty8
                                crw-rw---- 1 root root      4,  9 14. Jan 22:19 /dev/tty9
                                crw-rw---- 1 root dialout   5,  3 29. Dez 18:56 /dev/ttyprintk
                                crw-rw---- 1 root dialout   4, 64 29. Dez 18:56 /dev/ttyS0
                                crw-rw---- 1 root dialout   4, 65 29. Dez 18:56 /dev/ttyS1
                                crw-rw---- 1 root dialout   4, 74 29. Dez 18:56 /dev/ttyS10
                                crw-rw---- 1 root dialout   4, 75 29. Dez 18:56 /dev/ttyS11
                                crw-rw---- 1 root dialout   4, 76 29. Dez 18:56 /dev/ttyS12
                                crw-rw---- 1 root dialout   4, 77 29. Dez 18:56 /dev/ttyS13
                                crw-rw---- 1 root dialout   4, 78 29. Dez 18:56 /dev/ttyS14
                                crw-rw---- 1 root dialout   4, 79 29. Dez 18:56 /dev/ttyS15
                                crw-rw---- 1 root dialout   4, 80 29. Dez 18:56 /dev/ttyS16
                                crw-rw---- 1 root dialout   4, 81 29. Dez 18:56 /dev/ttyS17
                                crw-rw---- 1 root dialout   4, 82 29. Dez 18:56 /dev/ttyS18
                                crw-rw---- 1 root dialout   4, 83 29. Dez 18:56 /dev/ttyS19
                                crw-rw---- 1 root dialout   4, 66 29. Dez 18:56 /dev/ttyS2
                                crw-rw---- 1 root dialout   4, 84 29. Dez 18:56 /dev/ttyS20
                                crw-rw---- 1 root dialout   4, 85 29. Dez 18:56 /dev/ttyS21
                                crw-rw---- 1 root dialout   4, 86 29. Dez 18:56 /dev/ttyS22
                                crw-rw---- 1 root dialout   4, 87 29. Dez 18:56 /dev/ttyS23
                                crw-rw---- 1 root dialout   4, 88 29. Dez 18:56 /dev/ttyS24
                                crw-rw---- 1 root dialout   4, 89 29. Dez 18:56 /dev/ttyS25
                                crw-rw---- 1 root dialout   4, 90 29. Dez 18:56 /dev/ttyS26
                                crw-rw---- 1 root dialout   4, 91 29. Dez 18:56 /dev/ttyS27
                                crw-rw---- 1 root dialout   4, 92 29. Dez 18:56 /dev/ttyS28
                                crw-rw---- 1 root dialout   4, 93 29. Dez 18:56 /dev/ttyS29
                                crw-rw---- 1 root dialout   4, 67 29. Dez 18:56 /dev/ttyS3
                                crw-rw---- 1 root dialout   4, 94 29. Dez 18:56 /dev/ttyS30
                                crw-rw---- 1 root dialout   4, 95 29. Dez 18:56 /dev/ttyS31
                                crw-rw---- 1 root dialout   4, 68 29. Dez 18:56 /dev/ttyS4
                                crw-rw---- 1 root dialout   4, 69 29. Dez 18:56 /dev/ttyS5
                                crw-rw---- 1 root dialout   4, 70 29. Dez 18:56 /dev/ttyS6
                                crw-rw---- 1 root dialout   4, 71 29. Dez 18:56 /dev/ttyS7
                                crw-rw---- 1 root dialout   4, 72 29. Dez 18:56 /dev/ttyS8
                                crw-rw---- 1 root dialout   4, 73 29. Dez 18:56 /dev/ttyS9
                                crw-rw---- 1 root dialout 188,  0 29. Dez 18:57 /dev/ttyUSB0
                                crw-rw---- 1 root dialout 188,  1 29. Dez 18:57 /dev/ttyUSB1
                                lrwxrwxrwx 1 root root          7 29. Dez 18:57 /dev/ttyUSB-1-4.1 -> ttyUSB0
                                lrwxrwxrwx 1 root root          7 29. Dez 18:57 /dev/ttyUSB-1-4.2 -> ttyUSB1
                                lrwxrwxrwx 1 root root          7 29. Dez 19:48 /dev/ttyUSB-1-4.3 -> ttyUSB2
                                crw-rw---- 1 root dialout 188,  2 29. Dez 19:48 /dev/ttyUSB2

                                Auffallend ist, dass der zweite Befehl ein solch lange Liste erzeugt!


                                Als nächstes habe ich "od -x /dev/usbserial-1-4.3" ausgeführt. Da hat sich aber nach 30 Minuten noch nichts gezeigt, also abgebrochen und
                                od -x /dev/usbserial-1-4.1 ausgeführt-Es kam sofort die Zeichenfolge des Stromzählers.

                                Danach noch od -x /dev/usbserial-1-4.2 ausgegührt-auch hier tut sich NICHTS!
                                Nun wieder od -x /dev/usbserial-1-4.1 ausgeführt, aber nun kommt da auch nichts.

                                Ist das normal?

                                Werde nn neu Starten und das Ganze noch mal probieren und dann nur den Wandler für die RESOL ans WG stecken.

                                Melde mich dann wieder.

                                Danke und Grüße,
                                Lio

                                Kommentar

                                Lädt...
                                X