Temperatur an den Bus senden

Begonnen von Gruby, 05 März 2013, 22:25:42

Vorheriges Thema - Nächstes Thema

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:25Kennt jemand eine Möglichkeit wie man z.B. den aktuellen Aussentemperaturwert von Yahoo Wetter (-2C) an Bus schicken kann?
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.

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;
}


Ich rufe die Funktion dann so auf:
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);
}


In fhem.cfg ist es dann so implementiert:

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"


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.


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