Autor Thema: Temperatur an den Bus senden  (Gelesen 2461 mal)

Offline Gruby

  • New Member
  • *
  • Beiträge: 24
    • http://www.atos.net
Temperatur an den Bus senden
« am: 05 März 2013, 22:25:42 »
Kennt jemand eine Möglichkeit wie man z.B. den aktuellen Aussentemperaturwert von Yahoo Wetter (-2C) an Bus schicken kann?

Offline MarcusE

  • New Member
  • *
  • Beiträge: 9
Aw: Temperatur an den Bus senden
« Antwort #1 am: 27 März 2013, 13:49:14 »
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?

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
FHEM 5.5 auf Cubietruck / Volkszähler für EHL SML Zähler / EIB per USB - Interface / Siemens Novelan WP mit WPR-NET

Offline Maz

  • New Member
  • *
  • Beiträge: 34
Aw: Temperatur an den Bus senden
« Antwort #2 am: 02 Mai 2013, 01:21:25 »
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
Informativ Informativ x 1 Liste anzeigen

 

decade-submarginal