Hallo, ich bin neu hier.
Ich möchte gerne eine bestehende Hausautomatisierung durch FHEM erstzen.
Was mir jetzt noch fehlt, ist die verbauten I2C Temperatorsensoren LM 75 zyklisch einzulesen.
dazu habe ein kleines Perl sup
geschrieben und in 99_MyUtils.pm untergebracht und es funktiniert.
In fhem.cfg habe ich nun folgendes untergebracht:
define Temp readingsProxy dummy
attr Temp icon icoKLIMA
attr Temp room Heizung
attr Temp valueFn {Read_LM75_0x4F("@")}
.. das funktioniert auch, aber leider nur einmal.
dann habe ich mit at veruscht es zyklisch zu aktualisieren
leider komme ich hier nicht weiter siehe ....
define TempAt1 at +*00:00:04 set Temp ....
attr TempAt1 room Heizung
Wer gibt mir Tipps
Danke im Voraus
Uli
Guten Morgen Uli,
ein paar mehr Infos wären nicht schlecht. Befindet sich der Sensor auf derselben Hardware, wie FHEM? Welche Hardware ist es überhaupt?
Ich habe mehrere Sensoren (Temperatur, Luftdruck, Luftfeuchte, Helligkeit) auf einem RPi. Per Cron werden minütlich die Werte ausgelesen und über ein Bashscript per telnet an FHEM geschickt:
telnet fhem 7072 << EOF
setreading weather lightness ${LIGHTNESS}
setreading weather pressure ${PRESSURE}
setreading weather humidity ${HUMIDITY}
setreading weather temperature ${TEMPERATURE}
set weather L:$((${LIGHTNESS})) P:${PRESSURE} H:${HUMIDITY} T:${TEMPERATURE}
EOF
Das geht bestimmt auch andersherum, dass FHEM die Werte zyklisch abfragt. Aber mir ist es soherum irgendwie lieber ;)
Gruß, der Sloot
Zitat von: UliMueller am 09 April 2015, 20:44:56
dann habe ich mit at veruscht es zyklisch zu aktualisieren
leider komme ich hier nicht weiter siehe ....
define TempAt1 at +*00:00:04 set Temp ....
attr TempAt1 room Heizung
Wer gibt mir Tipps
Danke im Voraus
Uli
Ich frage auch 3 LM75-Sensoren mit FHEM ab aber ich weiß nicht was hier
define TempAt1 at +*00:00:04 set Temp ....
.... bedeuten soll.
Ansatzpunkt wäre http://forum.fhem.de/index.php/topic,16311.0.html (http://forum.fhem.de/index.php/topic,16311.0.html) oder die Kurzform:
Poste die Codes komplett inkl. etwaiger Fehlermeldungen sonst müssen hier alle ihre Glaskugeln zum polieren geben und da meine schon recht dünne Wände hat rate ich nicht weiter.
Und nein - ich verwende dafür kein FHEM-Modul (diese gibt es mittlerweile aber ich war bisher zu faul um alles umzubauen).
Frei nach dem Motto - Never change a running system.
Hier noch der Perl Source aus 99_MyUtils.pm
package main;
use strict;
use warnings;
use POSIX;
sub
MyUtils_Initialize($$)
{
my ($hash) = @_;
}
sub
Read_LM75_0x4F($)
{
my $s1="nix";
my $i1;
my $i2;
my $i3;
$s1=`i2cget -y 1 0x4f 0x0 w`; # Hexstring aus System Befehl holen
$i1 = hex $s1; # hex to int
$i2=$i1 % 256 *10; # Temperatur Vorkomma Wert
$i3=($i1 >> 15)*5 ; # Temperatur Nachkomma Wert
$i1=($i2 + $i3)/10; # Vor und Nachkomma zusammen fassen
return $i1 # Temperatur abliefern
}
1;
Da war noch der Nachtrag zur Frage nach des Systems, es ist ein Raspberry Pi 2, sonst nur I2C Geräte
@Puschel74
mit der angemerkten Zeile soll, wie weis ich halt nicht, alle 4sec. (zum Test) die Temperatur gelesen, angetriggert werden
define TempAt1 at +*00:00:04 set Temp ....
Die Punkte zeigen halt mein Nichtwissen.
Die Perlroutine {Read_LM75_0x4F("@")}
funktioniert ja wie schon beschrieben, leider eben nur einmal
beim Aktualisieren der fhem.cfg
Uli