eBus Manager

Abend Klaus!

Meinst du das? Also Verbindung ebus Koppler USB <-> KNX ?

Oder ich kaufe gleich den ebus Koppler Ethernet!? Würde dann billiger kommen…

Aber ich möchte den Weg ebus Koppler Ethernet -> PC -> IPS umgehen.
Einen PC will ich nicht unbedingt immer laufen lassen müssen. Hätte noch einen RPi3 rumliegen.
Am besten wäre: IPS kann direkt was damit anfangen?
Fragen über Fragen…

Schönen Abend und lg
Christian

Hallo Christian,

mit einem eBUS - Ethernet Koppler kannst Du direkt mit IPS kommunizieren. Ich habe das als IPS-Docker auf QNAP absolut zuverlässig laufen. Mit der USB Variante brauchst Du noch zusätzliche Treiber und meistens einen Windows Rechner.

Auf IPS habe ich in I/O Instanzen einen Client Socket definiert und lasse über einen Cutter die Daten in Stücke zerlegen, die dann über eine Registervariable im Programm verarbeiten. Das funktioniert absolut zuverlässig und stabil.

Ich hatte früher den eBUSConnector auf Win7 laufen. Der ist aber einmal im Monat abgestürzt. Da ich kein WIN7 mehr zusätzlich laufen lassen wollte habe ich dann den IPS Docker auf QNAP installiert und musste die Anbindung neu implementieren.
Wenn DIch das interessiert kann ich das mal detaillierter beschreiben.

Gruß
Klaus

Viele Dank Klaus, für deine ausführliche Antwort!

ja, ich würde dich bitten, wenn du mal Zeit hast, dies wenn es geht so ausführlich wie möglich zu beschreiben.
Dies wäre jetzt dann mein nächstes Projekt. Mach dir aber keinen Stress, ich bin so dankbar, das sich jemand bei diesem Thema auskennt, und gerne sein Wissen teilt!

Ich habe IPS auf einem RPi3 über LAN laufen (Netzwerkschrank). eBus Kabel habe ich im Verteiler liegen und könnte es dort ins LAN bringen.

Werde jetzt den eBus Koppler Ethernet bestellen.

Das mit dem Cutter verstehe ich jetzt schon wieder nicht mehr…
Und Speziell die Software und das „Entschlüsseln“…

Bis bald
Danke Christian

Hallo Christian,
wie versprochen - hier mein Vorgehen für die Einbindung des eBUS Kopplers Ethernet in die IP-Symcon (aktuell als Docker auf QNAP, vorher und Win7 ebenfalls getestet).

Koppler Einstellung:
eBUS Koppler Ethernet von Esera. Anleitung hier: https://www.esera.de/produkte/ebus/142/ebus-koppler-ethernet?c=20
Einstellen des eBUS Koppler Ethernet mit dem Konfigurationstool WIZ108SR (suchen des Kopplers mit Search):

Statische IP einstellen (hier …71) mit Port 5000. Außerdem TCP Server wählen, damit man später den Client Socket in IP-Symcon nutzen kann.

Und jetzt in IP-Symcon:

  1. I/O Instanz als Client-Socket erstellen und auf die oben gewählte IP des eBUS-Kopplers einstellen.
  2. Cutter Instanz erstellen und „Benutze Zeichen für Schnitte“ einstellen:
  3. Register Variable erstellen und an Cutter anbinden. Die Registervariable ruft dann das Verarbeitungs-Script für die eBUS Befehle auf. Von hier geht es dann zum Beispiel mit den Scripten von terenyi weiterr. Lesen und schreiben auf den eBUS funktionieren und man kann die Heizung via IP-Symcon steuern.

Viel Glück
Klaus

Wieder einmal Danke!
Ich kann das erst frühestens am Wochenende ausprobieren.
Verstehe ich das mal richtig, das man 2 Neue IP Adressen benötigt.
1 … IP Adresse für den eBUS Koppler
2 … IP Adresse für den TCP Server (der die Daten für IP Symcon zur Verfügung stellt?)

Es muss aber kein Windows Rechner oÄ laufen?
Außer IP Symcon (auf Pi3 bei mir)

Danke lg

Ja, das verstehst Du richtig.
Der Koppler hat eine IP und IPS auf der Plattform Deiner Wahl eine IP Adresse. So habe ich es laufen.
Wenn Du knapp an IP Adressen bist, kannst Du auch ein neues Subnetz definieren.

Gesendet von meinem Pixel mit Tapatalk

Abend!

Jetzt stehen noch die Fragen im Raum:

[ul]
[li]Plattformunabhängig? Ich habe immer wieder von Windows gelesen…[/li][li]Wie sieht das mit den php-Skripten in IPS aus? Also nach der Installation… Kann ich den Installer von der Seite 1 #1 verwenden?[/li][/ul]

Danke und lg
Christian

Hallo Christian

IP-Symcon an sich ist plattformunabhängig - innerhalb der Unterstützen Systeme.
Deine Scripte sind eigentlich das einzige Risiko. Wenn Du spezielle Windows Befehle (EXEC oder Pfade) benutzt hast, dann musst Du diese ändern. Ich hatte einige Pfade für eigene Log-Dateien und Befehle um Batch-Dateien zu starten. Die müssen dann geändert werden bzw. entfallen.

Ob der Installer von #1 noch klappt kann ich nicht beurteilen - sollte aber gehen, da er ja nur die Struktur anlegt. Ich habe es damals händisch übernommen, da ich einige Änderungen eingebaut habe. In den Scripten ist übrigens der Restart der beiden Windows Dienste enthalten, falls der eBUSConnector mal hängen bleibt. Der ist aber nicht mehr erforderlich, da Du ja den Client Socket nimmst.
Unten hab ich noch einen php-Code angefügt mit dem ich die Scripte durchsucht habe.

Mit dem Status Screen in der Web-Konsole kann man das aber schnell finden. Oder man durchsucht alternativ alle Scripte.

Gruß
Klaus

<?
//	Auflisten und Durchsuchen aller Scripte und in eine Datei schreiben

$Suche1 = "Restart";
$Suche2 = "C:";

$handle = fopen(IPS_GetKernelDir() . 'temp/ALLEscripte.php', 'w');
$scriptList = IPS_GetScriptList();
foreach ($scriptList as $scriptID) {
    $content = IPS_GetScriptContent($scriptID);
    $scriptInfo = IPS_GetScript($scriptID);
    if ($scriptInfo['ScriptExecuted'] <= strtotime("-1 year")) $flag = " ALT"; else $flag ="";
    
    if ($flag == " ALT") 
        echo $scriptID . " " . date('Y-m-d H:i:s', $scriptInfo['ScriptExecuted']) . "  " . date('Y-m-d H:i:s', $scriptInfo['ScriptUpdated']) . $flag . "  " . IPS_GetName($scriptID) . PHP_EOL;
    else
        echo $scriptID . " " . date('Y-m-d H:i:s', $scriptInfo['ScriptExecuted']) . "  " . date('Y-m-d H:i:s', $scriptInfo['ScriptUpdated']) . $flag . "  " . IPS_GetName($scriptID) . PHP_EOL;

	if ( (!(stristr($content, $Suche1) === false)) && (!(stristr($content, $Suche2) === false)) )	{
	    echo $scriptID . "   " . IPS_GetScriptFile($scriptID);
		fwrite($handle, "
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////");
		fwrite($handle, "
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////");
		fwrite($handle, "
>>>>  " . $scriptID . " >>>>>  " . IPS_GetScriptFile($scriptID) );
		fwrite($handle, "
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
");
		fwrite($handle, $content);
		echo " <<<<<<PATTERN GEFUNDEN<<<<<<<<<<";
	    echo "
";
	}
}


fclose($handle);

?>

Hi Klaus!

Ja, das meine ich. Weil ich IPS auf einem Pi3 i Einsatz habe, und deswegen verwirrt mich Windows. Du hsat IPS auf einem Windows Rechner?

Mhh, Bahnhof :slight_smile:

Ich melde mich am besten dann, wenn der eBus Ethernet Koppler angeschlossen und parametriert ist.
Meine Frage war, wie mache ich die Verbindung zu Vaillant, und wie lese ich Daten aus? D.h. mit welchen php-Skripten? Wie gebe ich z.B. den „Code“ zum Auslesen der Warmwasser-Speicher-.Temperatur ein, usw…

Bis Bald und Danke lg
Christian

Christian,

wie schon beschrieben, ich habe IPS als Docker auf QNAP nicht auf Windows!

Ich kann diese erstelle RegisterVariable einfach nicht in die Cutter Instanz ziehen. So wie auf deinem Bild…
An was kann das liegen?

EDIT: Mann kann es nicht ziehen, vlt. ein Bug? Man muss es bearbeiten und einen neuen „Ort“ einstellen… Dann geht es!! DANKE

Diese RegisterVariable zeigt dann auf das php-Skript zum auslesen des Datenverkehrs? Z.B. Auf dein Skript: Link

Danke und lg
Christian

Dies ist auch nicht gewollt/erlaubt. Geräte Instanzen sind im „normalen“ Baum und haben nichts in den Splitter oder I/O Instanzen zu suchen :slight_smile:

paresy

Wie mache ich dann den Aufruf?

  1. Register Variable erstellen und an Cutter anbinden. Die Registervariable ruft dann das Verarbeitungs-Script für die eBUS Befehle auf. Von hier geht es dann zum Beispiel mit den Scripten von terenyi weiterr. Lesen und schreiben auf den eBUS funktionieren und man kann die Heizung via IP-Symcon steuern.

Danke und lg

Ah, du willst die Register Variable öffnen und bei der übergeordneten Instanz den Cutter auswählen. In der physikalischen Ansicht sind die Instanzen dann auch so untereinander angeordnet.

paresy

Christian,

ich hab mal ein paar Screensahots von meinem eBUS System unter Symcon gemacht.
Hier mein Baum:

Stör Dich nicht am „UDP Socket eBUSConnector Windows“, der ist noch eine Legacy Variante aus alten Tagen. Sie ist bei mir deaktiviert.

  1. erstelle einen Client Socket mit der IP Adresse des eBUS Gateways
  2. Erstelle eine Cutter Instanz (Instanz Einfügen)
  3. Erstelle über Instanz Einfügen eine Register Variable.

Jetzt musst Du diese alle verknüpfen.
öffne die Register Variable

Dort kannst Du über Gateway ändern dann die Cutter Instanz auswählen.


Anschliessend kannst Du über Gateway Konfigurieren direkt auf die Cutter Instanz springen.
Die kannst Du dann einstellen:

Danach musst Du die IO Instanz - den Client Socket - anbinden und konfigurieren (also auf die IP des Gateways einstellen)

Jetzt sollte die Baumansicht so aussehen wie bei mir.
Wahrscheinlich hast Du die Register Variable ja schon an das Script zum Verarbeiten der eBUS Befehle angebunden. Sollte vom Aufruf problemlos funktionieren. Es kann allerdings sein, dass Du die eBUS Skripte noch bearbeiten und anpassen musst.
(z.B. Windows Pfade, Aufrufe von Windows Diensten, etc)

Melde DIch, ob alles geklappt hat.

Klaus

Hallo Christian,

habe den den Beitrag hier gerade erst entdeckt. Ich löse das mit einem RPI3 auf welchem ein eBUS Adapter V2 aufgesteckt ist.
(Link solltest du finden). Der wird direkt an den eBus der Heizung gekoppelt und auf dem PI läuft ebusd, welcher inzwischen
MQTT kann. Somit kannst du Werte aus der Heizung per MQTT auslesen und auch in die Heizung schreiben (mache ich mit Sommer/Winterumstellung). Hier muss jeder selbst wissen wie sinnvoll es ist, von Symcon Heizzeiten zu steuern, dass mach ich aktuell an der Heizung, weil man das wohl nur 1x im Jahr macht.

Soweit ich weiß, funktioniert das mit der Einlesung der CSV Dateien nur für Vaillant.

Wenn jemand mehr Infos braucht einfach melden, aktuell läuft das System seit einem halben Jahr stabil und da man bei V2 der Platine nix mehr kalibrieren muss, auch recht einfach. Bauteile und Platine kosten nicht wirklich viel.

Thomas

Hallo Thomas,

ich habe KEINEN PC laufen. Es läuft auf mit IPS Docker auf einem QNAP, der sowieso läuft. Ist absolut stabil.

Gruß
Klaus

Gesendet von iPad mit Tapatalk

Hallo,

ich habe seit längerer Zeit mal wieder mein EBus Koppler Ethernet in Betrieb genommen. Nun habe ich folgendes Problem. In der Hex Ansicht des UDP Sockets zum EBus Koppler wird alles korrekt angezeigt. Lese ich nun diesen über eine Register Variable aus, kommen nur Hieroglyphen an, da nicht die Hex Werte übertragen werden. Wende ich nun eine DECHEX Funktion an, wird dies nicht korrekt umgesetzt.

Hat jemand eine Idee wie ich direkt mit den Hex Werte aus dem UDP Socket arbeiten kann?

Hallo Thommy,

bei mir ruft die Registervariable ein Script auf, das dann eine Binär2Hex Umwandlung durchführt, da ich die Werte direkt vom eBUS Interface übernehme (siehe oben). Danach läuft es dann wie in den ganz zu Anfang beschriebenen Scripten in die Analyse.


if($_IPS['SENDER'] == "RegisterVariable")
{
		if ( !empty($_IPS['VALUE']) ) {
			$ebushex = Str2HexBlank($_IPS['VALUE']) ;   // binärer Datenstrom wird in HEX String umgewandelt
            		EBUS_NachrichtVerarbeitenNEW($ebushex);
		}
}


function Str2HexBlank($str) {
// erzeugt einen leserlichen HEX String mit Blanks
    $return = '';
    for($i = 0; $i < strlen($str); $i++) {
        $return .= strtoupper(bin2hex(substr($str, $i, 1))).' ';
    }
    return $return;
}



Der dann erzeugte HEXString geht direkt in die eBUS Nachrichtenverarbeitung. Funktioniert hervorragend.

Gruß
Klaus

Hallo zusammen,

echt cool, dass ich das jetzt erst finde. Habe IPS mit ebusd gut 2 Jahre am Laufen, überlege aber aktuell auf Windows umzusteigen.
Ich habe eine Vaillant Geotherm 61/3 und kann dann ebusd auch Werte in die Heizung schreiben.
Klappt das mit dem ebus Manager auch?