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?