Hi
Ich bräuchte mal ein wenig Hilfe für mein Modul.
Habe schon mit Perl und folgendem Script gute Daten empfangen und sortiert
#!/usr/bin/perl -w
package main; 
use strict; 
use Device::SerialPort; 
my $serial = Device::SerialPort->new("/dev/ttyAMA0"); 
$serial->baudrate(9600); 
$serial->databits(7); 
$serial->parity("even"); 
$serial->stopbits(1); 
$serial->purge_all();
my ($count, $data) = undef;
my $charcount = 0;
my $buffer = "";
my $delay = 60;
my $nexttime =(time + $delay);
my $time = time;
my $lasttime = (time + 300);
# Read response
   while(1) {
        ($count, $data)=$serial->read(297); # Telgegramm mit einer länge von 297 empfangen
 	$buffer.= $data; # Buffer füllen
	$charcount += $count; # Anzahl Zeichen zählen
	if ($charcount >= 297) { # Wenn 297 Zeichen empfangen sind
	  #print "count >= 290\r\n"; # debug sleep(1); # debug print 
	  #"$buffer"; # debug
	 if (index($buffer,'/') == 0 && index($buffer,'!') >= 290) {
	  print "$buffer";
	  my $referenceindex = index($buffer, '1-0:1.8.0*255(') + 15;
          my $reference = substr($buffer, $referenceindex, 15);
          $reference =~ s/\G0//g;
	 
	  my $feedindex = index($buffer, '1-0:2.8.0*255(') + 15;
   	  my $feed = substr($buffer, $feedindex, 15);
	  $feed =~ s/\G0//g;
	 
	  my $L1index = index($buffer, '1-0:21.7.0*255(') + 16;
	  my $L1 = substr($buffer, $L1index, 8);
	  $L1 =~ s/\G0//g;
	 
          my $L2index = index($buffer, '1-0:41.7.0*255(') + 16;
	  my $L2 = substr($buffer, $L2index, 8);
	  $L2 =~ s/\G0//g;
	 
	  my $L3index = index($buffer, '1-0:61.7.0*255(') + 16;
	  my $L3 = substr($buffer, $L3index, 8);
	  $L3 =~ s/\G0//g;
	 
	  my $Lallindex = index($buffer, '1-0:1.7.0*255(') + 15;
	  my $Lall = substr($buffer, $Lallindex, 8);
	  $Lall =~ s/\G0//g;
     	  print "Bezug = $reference\r\n";
	  print "Einspeisung = $feed\r\n";
	  print "L1 = $L1\r\n";
	  print "L2 = $L2\r\n"; 
	  print "L3 = $L3\r\n"; 
	  print "Lall = $Lall\r\n";
          $charcount = 0;
	  $buffer = "";
	  exit;
	 } 
	}
	 
  }	
  
Mein Problem besteht jetzt darin davon ein Modul zu machen
bin des Perls leider nicht wirklich mächtig.
#Muss ich DeviceIO nutzen um die Daten von der Seriellen Schnittstelle zu empfangen?
Ich benötige ja 7E1 statt 8N1
#startet fhem zeitabhängig das sub Read?