FHEM - Hausautomations-Systeme > KNX/EIB

Temperatur an den Bus senden

(1/1)

Gruby:
Kennt jemand eine Möglichkeit wie man z.B. den aktuellen Aussentemperaturwert von Yahoo Wetter (-2C) an Bus schicken kann?

MarcusE:

--- Zitat von: Gruby schrieb am Di, 05 März 2013 22:25 ---Kennt jemand eine Möglichkeit wie man z.B. den aktuellen Aussentemperaturwert von Yahoo Wetter (-2C) an Bus schicken kann?

--- Ende Zitat ---

Hallo Gruby,

ich hab das Senden der Aussentemperatur von meiner Wärmepumpe an den EIB Bus mit folgender Subroutine in 99_myUtils.pm bei mir gelöst. Wahrscheinlich ist die Umsetzung nicht 100% sauber, aber es funktioniert bei mir, da die Temperatur eh nur mit einer Nachkommastelle auf meinen Tastsensoren angezeigt wird.


--- Code: ---sub
value2dpt9($)
{
my $val = shift;
my $sign = 1;
$sign =-1 if($val < 0);
my $absval = abs($val);
my $expo = 0;
if ($absval != 0){$expo =log($absval/2047*100)/log(2);};
if ($expo < 0){$expo=0;};
my $mant = $absval / (2**$expo) *100;
$mant = ((~($mant+1))&0x07FF) if($sign==-1);
my $outval =$mant+2048*$expo;
if ($sign <0){$outval = $outval+32768};
my $hexstr = sprintf("%04X",$outval);
return $hexstr;
}
--- Ende Code ---


Ich rufe die Funktion dann so auf:

--- Code: ---sub
analyseWPRData($$$)
{
my $setDevice = shift;
my $device = shift;
my $readings = shift;
my $val = ReadingsVal($device,$readings,"-10");
my $hexstr = value2dpt9($val);
fhem("set ".$setDevice." value ".$hexstr);
}
--- Ende Code ---


In fhem.cfg ist es dann so implementiert:

--- Code: ---
define WPR LUXTRONIK2 192.168.178.201 60
define aussenTemperaturEIB notify WPR:ambientTemperature.* {analyseWPRData("EIB_Aussentemperatur","WPR","ambientTemperature")}

define wprSpeichern at +*40:00:00 "wget http://192.168.178.201/proclog -O /opt/fhem/wprlog/`date +'%Y-%m-%d-T%H-%M'`.dta"
--- Ende Code ---


Alle 60 Sekunden ruft LUXTRONIK2 die Daten von meiner Wärmepumpe ab, sobald eine Wertänderung vorliegt ruft das notify die Funktion auf. EIB_Aussentemperatur spricht die Gruppenadresse auf meinem EIB Bus an, die ich an meine Tastsensoren zur Anzeige im Display verbunden habe.
Mit der letzten Zeile speichere ich übrigens alle 40 Stunden das 48 Stunden-Log meiner Novelan-Wärmepumpe vom Websever meiner WPR-Net Steuerung.

Gruß, Marcus

Maz:
Hi,
Mit der neuen Version von TUL/EIB geht das jetzt sehr einfach.
Siehe: Beitrag.


--- Code: ---
define WPR LUXTRONIK2 192.168.178.201 60
define EIB_Aussentemperatur EIB 0/0/1
attr EIB_Aussentemperatur model tempsensor

define aussenTemperaturEIB notify WPR:ambientTemperature.* set EIB_Aussentemperatur value $EVTPART1

--- Ende Code ---

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln