+ Antworten
Ergebnis 1 bis 9 von 9
  1. #1
    Registriert seit
    Dec 2013
    Beiträge
    32

    Standard Energiemessung Datapoints 4-bit auf den EIB senden

    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:
    • Bartl Wärmepumpe ebus Werte auslesen mit ebus Lan Adapter von eServiceOnline
    • Zehnder ComfoAir Statuswerte auslesen und Lüftungsstufen setzen
    • SolarLog Werte über den KNX-Bus auf Visualisierung von Hager bringen
    • Wettervorhersage im Web auslesen und darüber die Fußbodenheizung vorausschauend regeln


    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).

    Name:  KNX datapoints.png
Hits: 1271
Größe:  66.7 KB

    Kann mir jemand helfen? Vielen dank im Voraus und viele Grüße

    Alexander


    Hier mein Script:
    PHP-Code:
    <?

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

    ?>

  2. #2
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,821

    Schau mal den Link aus der Doku an, der erklärt, wie du von DPT auf EIS kommst: http://www.it-gmbh.de/support/servic...t-als-eis.html

    paresy

  3. #3
    Registriert seit
    Dec 2013
    Beiträge
    32

    Hallo paresy,

    vielen Dank für den Tipp. Jetzt habe ich also EIS9 genommen. Mit EIB_Value bekomme ich jetzt aber eine Fehlermeldung:

    Gruppe ist nicht als 'value' definiert.

    Gibt es eine andere Methode um EIS9 Werte auf den BUS zu schreiben? In der Online-Hilfe von IP-Symcon bin ich nicht fündig geworden.

    Viele Grüße

    Alexander

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,821

    EIB_FloatValue ist der korrekte Befehl für EIS9. Es fehlt aber in der Tat eine Liste welche Befehle für welchen EIS Typen gelten.

    paresy

  5. #5
    Registriert seit
    Dec 2013
    Beiträge
    32

    Vielen Dank.

    Also werden die Befehle für die anderen Datentypen wohl lauten

    EIB_UnsignedValue für EIS 11.000
    EIB_SignedValue für EIS 11.001

    und für EIS5 EIB_2ByteFloatValue?

  6. #6
    Registriert seit
    Dec 2013
    Beiträge
    32

    Standard Liste mit Befehlen mit EIS Typen

    EIB_UnsignedValue
    EIB_SignedValue

    Einen Versuch war's wert, aber diese Befehle gibt es leider nicht. Gibt es eine Liste mit Befehlen pro EIB Typ?

    Oder kann man irgendwo die PHP Objekte ansehen? Da müssten die Methoden ja definiert sein.

  7. #7
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,821

    Schau doch mal in die Doku. Ggf. musst du pro Typ ein klein wenig raten.

    paresy

  8. #8
    Registriert seit
    Dec 2013
    Beiträge
    32

    Standard gefunden!!

    Hallo zusammen,

    habe in der Doku zwar keine Befehlsliste gefunden, aber über STRG-Space im Script Editor kann man sich ja alle Funktionen anzeigen lassen.

    Die Lösung: Funktion "EIB_Counter32bit" verwenden.

  9. #9
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,821

    Asche auf mein Haupt. Der Befehl fehlt komplett in der Doku. Notiz ist erstellt und wird dann im neuen Jahr nachgereicht

    paresy

Ähnliche Themen

  1. IPS auf Windows 8 64 Bit?
    Von Hausautomation im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 53
    Letzter Beitrag: 13.03.14, 11:53
  2. FHT80b - Fenster auf/zu senden?
    Von Hagbard235 im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 1
    Letzter Beitrag: 01.05.11, 00:11
  3. IP-Symcon auf 64-Bit und Windows-Server 2008
    Von wgreipl im Forum Allgemeine Diskussion
    Antworten: 16
    Letzter Beitrag: 11.03.10, 21:57
  4. Uhrzeit aus EIB-Bus senden!?
    Von PeterChrisben im Forum KNX/EIB, LCN
    Antworten: 11
    Letzter Beitrag: 03.03.09, 00:34
  5. EIB von IPS senden
    Von schenck1 im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 10.02.09, 10:24