Um den PiLogger unter FHEM zu nutzen, richtet man in FHEM ein RPII2C-Device ein:
defmod myI2C RPII2C 1
und ein Dummy für das Ergebnis
defmod LoggerVolt dummy
Bei dem RPII2C-Device kann man dann zum Beispiel mit dem Befehl
get myI2C readblockreg 0x48 0x50 2
die beiden Bytes für die aktuelle Spannung auslesen. Dabei ist 0x48 die Adresse des Busses und 0x50 das Register für die aktuelle Spannung (siehe dazu die PiLogger-Anleitung). Analog können auch die anderen Register gelesen werden.
Eine kleine eigene Funktion in der 99_myUtils.pm (wer FHEM nutzt, kennt die hoffentlich) berechnet dann daraus die Spannung:
sub ReadVoltage()
{
my @parts = split(/ /,fhem "get myI2C readblockreg 0x48 0x50 2");
my $Voltage=sprintf("%.2f", ($parts[3] * 256 + $parts[2]) / 1092.267);
fhem("set LoggerVolt $Voltage V " );
}
Zeile 1 liest die Register vom Bus
Zeile 2 parst das Ergebnis und berechnet aus den zwei Bytes das WORD, das dann durch 1092.267 geteilt wird, um die Voltzahl zu bekommen (Der Teiler stammt aus der PiLogger-Doku) und kürzt es auf 2 Nachkommastellen.
Zeile 3 schreibt das Ergebnis in das Dummy-Device namens LoggerVolt.
Damit kann man dann in FHEM alles Weitere anstellen.