Hallo zusammen,
jetzt über Weihnachten habe ich endlich einmal Zeit, meine Haustechnik auch in IP-Symcon zu integrieren.
Ich habe eine Visualisierung von Hager (domovea).
Mein erstes Projekt wird sein, die ehz-Zähler auszulesen (1x iskra, 2x emh), die ich mit Optokopllern von co-met über usb (virtuelle com) angebunden habe.
Danach habe ich noch folgendes vor:
[ul]
[li]Bartl Wärmepumpe ebus Werte auslesen mit ebus Lan Adapter von eServiceOnline[/li][li]Zehnder ComfoAir Statuswerte auslesen und Lüftungsstufen setzen[/li][li]SolarLog Werte über den KNX-Bus auf Visualisierung von Hager bringen[/li][li]Wettervorhersage im Web auslesen und darüber die Fußbodenheizung vorausschauend regeln[/li][/ul]
Mein Script für ISKRA Zähler ist fertig, es kann relativ universell eingesetzt werden. Vielleicht hilft es jemand. Lediglich die Startbytes und Länge des Objekts angeben und die Position der Bytes für die Zählerwerte und damit die Funktion aufrufen.
Jetzt habe ich aber das erste Problem:
Ich will die so ermittelten Werte auf den BUS senden. Senden geht auch, aber: es gibt in IP-Symcon die Datentypen nicht die ich brauche um KNX konform Energiemesswerte zu senden. Nur dann wird auch die Visualisierung die Daten richtig auslesen, verarbeiten, anzeigen und die Historie protokollieren.
Ich brauche im Prinzip 4-bit Werte (siehe Grafik).
Kann mir jemand helfen? Vielen dank im Voraus und viele Grüße
Alexander
Hier mein Script:
<?
function read_value($obj_raw, $objName, $objLength, $obj_position)
{
$obj = str_split(substr(bin2hex($obj_raw),strpos(bin2hex($obj_raw),$objName)+16,$objLength),2);
//print_r($obj);
$result = '';
foreach($obj_position as $index) {
$result = $result . $obj[$index]; }
//$scaler = intval($obj[5]);
//echo 'S:' . $scaler;
echo intval('53FF');
return hexdec($result);
}
SetValueFloat(38283 /*[Stromzähler auslesen\Register Variable Stromzähler WP\Auswertung\Strom Wärmepumpe Leistung]*/ ,read_value($IPS_VALUE,'77070100100700ff',24,range(7,10,1)));
SetValueFloat(27016 /*[Stromzähler auslesen\Register Variable Stromzähler WP\Auswertung\Strom Wärmepumpe Verbrauch T1]*/ ,read_value($IPS_VALUE,'77070100010801ff',32,range(7,14,1))/10000);
SetValueFloat(25327 /*[Stromzähler auslesen\Register Variable Stromzähler WP\Auswertung\Strom Wärmepumpe Verbrauch T2]*/ ,read_value($IPS_VALUE,'77070100010802ff',32,range(7,14,1))/10000);
SetValueFloat(36133 /*[Stromzähler auslesen\Register Variable Stromzähler WP\Auswertung\Strom Wärmepumpe Verbrauch Gesamt]*/ ,read_value($IPS_VALUE,'77070100010800ff',38,range(11,18,1))/10000);
?>