eBus Telegramme auswerten / Heizung / Solar

Du musst erst, z.B. in einem zyklisch getriggerten Skript, mal den Master Teil des Telegramms senden:


<?
$instance = 28634 /*[Serial Port eBus]*/;
// $instance = 33464 /*[Serial Port eBus Schwede]*/;


function hex2str($hex)
{
$str="";
  for($i=0;$i<strlen($hex);$i+=2)
  {
    $str.=chr(hexdec(substr($hex,$i,2)));
  }
  return $str;
}

// *** Groß- bzw. Kleinschreibung ist nicht relevant ***
$data = hex2str("FF350902031601020F00"); //dies hier ist mein Service 0902
COMPort_SendText ($instance, $data);
?>

Deine Komponente antwortet dann mit dem komplletten Slave Paket, bei mir:


FF350902031601020F000002B400

Auswerten kannst Du dann auf data[n] wobei n die richtige(n) Stelle(n) im Antwort (Slave) Telegramm sind. (Hier im Beispiel 11 und 12) Versuch das mal im Debug nachzuvollziehen.

Hallo wupperi,

erstmal danke, allerdings muss ich jetzt mal weiter nachbohren, möchte ungerne was auf den Bus senden bei dem ich den Sinn noch nciht ganz verstehe.

FF ist ja der Sender in diesem Fall und 35 dürfte dann dein Empfänger sein oder? Sprich das müsste für mich laut dem hier auf 10 gesetzt werden oder?

Wenn ich mir die B509er Doku anschaue käme ich so auf

FF10B509030D03000B00

Wobei ich mir dei der Checksumme nicht sicher bin. Was hälst davon?

Gruss,
Christian

Ein anderer User hat doch das Master telegramm selber mal in einem Post vor ein paar Wochen geschrieben:

10 26 B5 09 03 0D 7C 00 0B

Sende das doch mal auf den Bus und schaue ob:
Lt. Vaillant Protokoll:

0x0D = Kennzeichnung für Daten für Temp Sensoren
0x7c = Ein nicht näher beschriebener Sensor (Doku geht nur von 01-05)
0x00 = Parameter 2, nicht dokumentiert, hier null

10 26 B5 09 03 0D 7C 00 0B 00 01 xx CRC 00

zurückkommen. Bei xx stehen Deine Nutzdaten. Hier ein Datenbyte. Welcher Datentyp das ist ? -> keine Ahnung.
Ob der Empfänger/Service bei deiner Heizung passt? -> Auch keine Ahnung?

Wenn Du aber jetzt ein Paket mit anderen Parametern senden willst, dann muss noch die CRC Summe generiert werden, das ist nicht implemetiert. Versuche doch erst mal alle Pakete/Services zu identifizieren die als Broadcast laufen, bzw. solche die durch Steuerung der Heizung,Reglers,etc getriggert werden. Dann siehst Du doch, wie ein Mastertelegramm aussieht, bzw. wer der Empfänger ist und auch welche Prüfsumme es hat.

Das ist eigentlich der Hauptteil der Aufgabe, die Telegramme/Services/Datentypen zu identifizieren…

@Horst: Hatten wir CRC nich mal drin? Oder sind wir nicht fertig geworden?

Ja, werde das mal testen.

Aber dürfte nicht ohne korrekte Prüfsumme der Bus gar nciht darauf reagieren. Wie kann die berechnet werden, einer Tips?

Gruss,
Christian

Hallo Leute,

Habe jetzt auch einen eBus Adapter am laufen (besten Dank an dieser Stelle nochmals an Helmut) und beginne jetzt das Ganze in IPS zu integrieren.

Mein Hauptproblem ist zur Zeit aber, dass das Ding zwar nur mit 2400 Baud arbeitet, damit aber trotzdem meinen verwendeten Atom Rechner an seine Grenzen bringt.
Dadurch, dass es im Protokol kein Start und End Bytes für Messages gibt, kann man den IPS Splitter nicht wirklich performant einsetzen und man muß jedes einzelne Zeichen per Script bearbeiten.
Wie habt Ihr das gelöst – oder einfach so potente Rechner ?

Meine zweite Frage – hat wer bereits eine Anbindung an eine Wolf Therme realisiert und kann mir die Scripts zwecks Weiterentwicklung zur Verfügung stellen.

Besten Dank

Also das die Maschine total ausgelastet wird ist bei mir das gleiche sobald die Schnittstelle geöffnet ist, meiner ist zwar kein Atom sondern ein P4, aber das dürfte nicht soviel ausmachen.

An für sich müsste man es so regeln dass nicht der ganze Verkehr dauernd mitgelogt wird, meine Vaillant Therme scheint so gesprächig zu sein dass es einfach zuviel ist.

Leider bin ich bisher auch noch nicht weitergekommen, so 100% schlau werde ich aus dem ganzen nicht wirklich.

Kann es sein, dass der Adapter den Datenfluß anregt?

Er zieht ja ein wenig Strom, dadurch vielleicht?

Ein Oscar hat keiner von euch um Das zu eroieren?

Gruß Helmut

Hallo Helmut,

hab mal gerade mein altes Oszi angeworfen - da ist kein Unterschied zu sehen, ob der Adapter dran hängt oder nicht.

Es geht alle paar Millisekunden das Synchronisierungs Zeichen „AA“ über die Leitung und alle paar Sekunden ein Datenpaket.

Das Problem sind nur die Synch Impulse - es wird mit denen in IPS zwar nichts gemacht, trotzdem muß jedes mal ein Script gestartet werden - macht eingige hundert Script Aufrufe pro Sekunde !!!

Man muß wohl diese Sync Zeichen bereits vorher herausfiltern - eventuell mit einem eigenen Modul (in Delphi) - meine bisherigen Erfahrungen in Delphi waren ja leider nicht sehr erbaulich …

Naja, ob ein eigenes Modul da hilft, die Belastung wird doch dann nur ausgelagert.

Sind die Daten denn bekannt?
Ev. kann ein Schlaumeier da helfen, geht aber nur wenn man ein wenig vom Protokoll weiß.

Gruß Helmut

Ich denke schon, dass ein eigenes Modul hier die Rechenleistung extrem senken würde, ein Delphi Code ist mit den paar Byte sicher nicht überfordert.

Der Delphi Code könnte die „AA“ Zeichen bereits herausfiltern und nur mehr die Datenpakete in eine Variable schreiben. Danach kann man die Werte ohne Probleme mit einem PHP Code weiterverarbeiten…

Bei mir nicht, ich hab zwar einen Core i7 860, aber selbst mit IPS (mit eBus) und Mediaportal beim zeitgleichen HD Streaming komme ich nur auf ca 20% durchschnittliche Auslastung.

Unde das PHP skript macht ja nichts anderes, als sofort in Zeile 7 die


AA

herauszufiltern

Ja, gut, überleg mal welche Performance im Vergleich dein System zu nem P4 oder nem Atom bringt, da wundert es keineswegs dass keinerlei Auslastung vorhanden ist.

Hallo Leute,

hab mal ein einen Wiki Artikel zu diesem Thema eröffnet und mal ein paar Erkenntnisse niedergeschrieben.

Es ist natürlich jeder herzlich eingeladen, diese Thema auch selber zu erweitern.

Insbesondere würden mich natürlich noch Erkenntnisse zum Hersteller WOLF interessieren !

Konnte meine Performance Probleme jetzt mit einem eigenen Modul in den Griff bekommen. Das Modul filtert die Messages aus dem Datenstrom und schreibt diese in eine Variable. Von dort könne sie mit einem PHP Script weiterverarbeitet werden.

Ich konnte jetzt schon mal die Daten, die über das Standard Protokoll meiner WOLF Therme gesendet werden auswerten.

Was die Auslastung meines Atom Rechners betrifft, bin ich jetzt wieder mit der totalen Auslastungirgendwo zwischen 5 und 15%…

@Brownson

Das hört sich ja schonmal ganz gut an, dann werde ich das mal testen mit deinem Modul.

Könntest du dein Auswertungsskript vielleicht noch so als Beispiel posten? Wäre super, dann hat man was zum orientieren.

Hallo Andreas,
ich bin kein Anwender, aber es wird sich vielleicht jemand fragen, was ist Das für ein Modul?

Nur für IPSymcon? Und wie wird es benutzt?

Gruß Helmut

Ach ja, hab noch den Link zu meinem letzten Post hinzugefügt…

Mein Auswerte Script kommt natürlich auch noch (bin gestern nicht mehr ganz fertig geworden).

Also ich habe jetzt mal was auf den Bus gesendet, die Therme scheint auch zu antworten, allerdings kommt dasselbe retour nur mit einem FF hinten dran. Schätze mal ich habe ein CRC Problem oder?

Kann mir einer von euch einen Tip geben wie das zu berechnen ist? Oder vielleicht passen wir das Sendeskript einfach an…

Genau da komme ich auch nicht weiter… :confused:

Habt ihr diese Beschreibung schon gesehen?

WebHome < EBus < TWiki.

Gruß Helmut