eBus Adapter Senden/Empfangen

Gute Frage, dazu kenne ich ebusd im Detail zu wenig. Bei mir kamen weitere CSVs nach einer Weile Laufzeit, hast du mal nach 15 Minuten nochmal geprüft? Ansonsten kann es bei dem Solarregler alleine schon sein, oder hast du zusätzlich deine Therme mit dran am gleichen Koppler?

Hallo Peter,
bin mir im Moment gar nicht mal sicher ob die Therme selbst auch ebus hat oder ob das nur der Regler ist.
Aber es wurden ja mehrere Ebus master und slaves gefunden.
Werde das mal beobachten und schauen was passiert wenn ich am regler die Menüs anwähle.

Gruß Stefan

Moin Peter,

weißt Du wie ich ebusd dauerhaft auf einen anderen Port als 8888 setzen kann?
Wenn ich ebusd als service starte kommt es zu massiven Konflikten mit dem installiertem GPIO Modul, das läuft auch auf Port 8888.
Da kann ich den Port aber nicht ändern weil die Einstellmöglichkeit in der Konsole ausgegraut sind.

Gruß Stefan

Ne sorry keine Ahnung. Schau mal in der Doku von ebusd Home · john30/ebusd Wiki · GitHub

Hallo Peter,

leider erst heute wieder zum Weitermachen gekommen. Ein paar Baustellen zuviel im Moment.

Inzwischen funktioniert die Verbindung:

pi@EbusD:~ $ ebusctl i
version: ebusd 3.1.v3.1-22-gdaf771e
update check: revision v3.1-1-g60a18d1 available, broadcast.csv: different version available
signal: acquired
symbol rate: 38
max symbol rate: 70
min arbitration micros: 57
max arbitration micros: 96
min symbol latency: 4
max symbol latency: 5
reconnects: 0
masters: 6
messages: 16
conditional: 0
poll: 0
update: 4
address 03: master #11
address 08: slave #11, scanned "MF=Kromschroeder;ID=  3B ;SW=0777;HW=5130"
address 10: master #2
address 15: slave #2, scanned "MF=Kromschroeder;ID=  ;SW=0204;HW=-"
address 30: master #3
address 31: master #8, ebusd
address 35: slave #3, scanned "MF=Kromschroeder;ID=  ;SW=0204;HW=-"
address 36: slave #8, ebusd
address 70: master #4
address 75: slave #4, scanned "MF=Kromschroeder;ID=  ;SW=0204;HW=-"
address f1: master #10
address f6: slave #10, scanned "MF=Kromschroeder;ID=  ;SW=0204;HW=-"


Allerdings kann er, obwohl *.csv Datei gezogen, mit den ankommenden Werten nicht anfangen. Evtl. eine Idee?

2018-02-19 10:32:24.805 [main notice] ebusd 3.1.v3.1-22-gdaf771e started with auto scan
2018-02-19 10:32:24.846 [bus notice] bus started with own address 31/36
2018-02-19 10:32:24.846 [bus notice] signal acquired
2018-02-19 10:32:26.648 [bus notice] new master 10, master count 2
2018-02-19 10:32:26.656 [bus notice] new master 03, master count 3
2018-02-19 10:32:26.657 [update notice] received unknown MM cmd: 1003050709bb011d030080ff78ff
2018-02-19 10:32:26.949 [bus notice] new master f1, master count 4
2018-02-19 10:32:26.949 [update notice] received unknown BC cmd: f1fe050308010130ff78ff3504
2018-02-19 10:32:30.307 [update notice] received unknown BC cmd: 03fe0503080100400178383504
2018-02-19 10:32:31.649 [update notice] received unknown MM cmd: 1003080008cd3100048001003c
2018-02-19 10:32:31.941 [update notice] received unknown BC cmd: f1fe080008cd311a020000003c
2018-02-19 10:32:34.965 [bus notice] scan 08: ;Kromschroeder;  3B ;0777;5130
2018-02-19 10:32:34.965 [update notice] store 08 ident: done
2018-02-19 10:32:34.965 [update notice] sent scan.08  QQ=31: Kromschroeder;  3B ;0777;5130
2018-02-19 10:32:34.965 [bus notice] scan 08: ;Kromschroeder;  3B ;0777;5130
2018-02-19 10:32:34.972 [main error] error reading common config file /etc/ebusd/kromschroeder/broadcast.csv: ERR: missing argument, /etc/ebusd/kromschroeder/broadcast.csv:7: ERR: missing argument, circuit
2018-02-19 10:32:34.973 [main error] error reading scan config file /etc/ebusd/kromschroeder/08.csv for ID "3b", SW0777, HW5130: ERR: missing argument, /etc/ebusd/kromschroeder/08.csv:7: ERR: missing argument, circuit
2018-02-19 10:32:34.974 [main error] scan config 08: ERR: missing argument
2018-02-19 10:32:36.578 [update notice] received unknown MM cmd: 1003050709bb031d030080ff78ff
2018-02-19 10:32:36.872 [update notice] received unknown BC cmd: f1fe050308010100ff78ff3504
2018-02-19 10:32:37.101 [bus notice] scan 15: ;Kromschroeder;  ;0204;-
2018-02-19 10:32:37.101 [update notice] store 15 ident: done
2018-02-19 10:32:37.101 [update notice] sent scan.15  QQ=31: Kromschroeder;  ;0204;-
2018-02-19 10:32:37.101 [bus notice] scan 15: ;Kromschroeder;  ;0204;-
2018-02-19 10:32:37.107 [main error] error reading scan config file /etc/ebusd/kromschroeder/15.csv for ID "", SW0204, HW65535: ERR: missing argument, /etc/ebusd/kromschroeder/15.csv:7: ERR: missing argument, circuit
2018-02-19 10:32:37.107 [main error] scan config 15: ERR: missing argument
2018-02-19 10:32:39.201 [bus notice] scan f6: ;Kromschroeder;  ;0204;-
2018-02-19 10:32:39.201 [update notice] store f6 ident: done
2018-02-19 10:32:39.201 [update notice] sent scan.f6  QQ=31: Kromschroeder;  ;0204;-
2018-02-19 10:32:39.201 [bus notice] scan f6: ;Kromschroeder;  ;0204;-
2018-02-19 10:32:39.202 [main error] unable to load scan config f6: no file from /etc/ebusd/kromschroeder with prefix f6. found
2018-02-19 10:32:39.202 [main error] scan config f6: ERR: element not found
2018-02-19 10:32:41.579 [update notice] received unknown MM cmd: 1003080008cd3100048001003c
2018-02-19 10:32:41.871 [update notice] received unknown BC cmd: f1fe080008cd311a020000003c
2018-02-19 10:32:46.542 [update notice] received unknown MM cmd: 1003050709bb061d030080ff78ff
2018-02-19 10:32:46.834 [update notice] received unknown BC cmd: f1fe050308010100ff78ff3504
2018-02-19 10:32:48.386 [update notice] received unknown MM cmd: 03f1080008003100048000003c
2018-02-19 10:32:52.023 [update notice] received unknown MM cmd: 1003080008cd3100048001003c
2018-02-19 10:32:52.314 [update notice] received unknown BC cmd: f1fe080008cd311a020000003c
2018-02-19 10:32:53.993 [bus notice] new master 30, master count 5
2018-02-19 10:32:54.897 [update notice] received unknown BC cmd: 30fe5023091c000ae2ff5d010000
2018-02-19 10:32:55.206 [update notice] received unknown MM cmd: 033050020100
2018-02-19 10:32:56.993 [update notice] received unknown MM cmd: 1003050709bb011b030080ff78ff
2018-02-19 10:32:57.286 [update notice] received unknown BC cmd: f1fe050308010100ff78ff3504
2018-02-19 10:33:01.567 [bus notice] scan 35: ;Kromschroeder;  ;0204;-
2018-02-19 10:33:01.567 [update notice] store 35 ident: done
2018-02-19 10:33:01.567 [update notice] sent scan.35  QQ=31: Kromschroeder;  ;0204;-
2018-02-19 10:33:01.567 [bus notice] scan 35: ;Kromschroeder;  ;0204;-
2018-02-19 10:33:01.568 [main error] unable to load scan config 35: no file from /etc/ebusd/kromschroeder with prefix 35. found
2018-02-19 10:33:01.568 [main error] scan config 35: ERR: element not found
2018-02-19 10:33:01.946 [update notice] received unknown MM cmd: 1003080008b33100048001003c
2018-02-19 10:33:02.261 [update notice] received unknown BC cmd: f1fe080008b33133020000003c
2018-02-19 10:33:03.949 [update notice] received broadcast datetime QQ=30: -;12:30:10;-.-.-
2018-02-19 10:33:06.911 [update notice] received unknown MM cmd: 1003050709bb031b030080ff78ff
2018-02-19 10:33:07.203 [update notice] received unknown BC cmd: f1fe050308010100ff70ff3504
2018-02-19 10:33:11.910 [update notice] received unknown MM cmd: 1003080008b33100048001003c
2018-02-19 10:33:12.202 [update notice] received unknown BC cmd: f1fe080008b33133020000003c
2018-02-19 10:33:16.873 [update notice] received unknown MM cmd: 1003050709bb061b030080ff78ff
2018-02-19 10:33:17.165 [update notice] received unknown BC cmd: f1fe050308010100ff70ff3504
2018-02-19 10:33:19.495 [update notice] received unknown MM cmd: 03f1080008003100048000003c
2018-02-19 10:33:21.823 [update notice] received unknown MM cmd: 1003080008b33100048001003c
2018-02-19 10:33:22.116 [update notice] received unknown BC cmd: f1fe080008b33133020000003c
2018-02-19 10:33:26.844 [update notice] received unknown MM cmd: 1003050709bb011b030080ff78ff
2018-02-19 10:33:27.136 [update notice] received unknown BC cmd: f1fe050308010100ff70ff3504
2018-02-19 10:33:31.769 [update notice] received unknown MM cmd: 1003080008b33100048001003c
2018-02-19 10:33:32.062 [update notice] received unknown BC cmd: f1fe080008b33133020000003c
2018-02-19 10:33:32.349 [update notice] received unknown BC cmd: 03fe050308010040006e363504
2018-02-19 10:33:36.770 [update notice] received unknown MM cmd: 1003050709bb031b030080ff78ff
2018-02-19 10:33:37.062 [update notice] received unknown BC cmd: f1fe050308010100ff6eff3504
2018-02-19 10:33:41.727 [update notice] received unknown MM cmd: 1003080008b33100048001003c
2018-02-19 10:33:42.019 [update notice] received unknown BC cmd: f1fe080008b33133020000003c
2018-02-19 10:33:46.691 [update notice] received unknown MM cmd: 1003050709bb061b030080ff78ff
2018-02-19 10:33:46.984 [update notice] received unknown BC cmd: f1fe050308010100ff6eff3504
2018-02-19 10:33:50.336 [update notice] received unknown MM cmd: 03f1080008003100048000003c
2018-02-19 10:33:51.632 [update notice] received unknown MM cmd: 1003080008b33100048001003c
2018-02-19 10:33:51.925 [update notice] received unknown BC cmd: f1fe080008b33133020000003c
2018-02-19 10:33:54.644 [bus notice] new master 70, master count 6
2018-02-19 10:33:56.634 [update notice] received unknown MM cmd: 1003050709bb011b030080ff78ff
2018-02-19 10:33:56.921 [update notice] received unknown BC cmd: f1fe050308010100ff6eff3504
2018-02-19 10:33:58.609 [update notice] received unknown BC cmd: 30fe50230958140100005d010000

Viele Grüße und vielen Dank für Deine Unterstützung,

Burkhard

Hallo Burkhard,

welche Version der Config-Files hast du gezogen, 2.x.x oder 2.1.x? Falls ersteres, probiere mal 2.1.x - die sind neuer und funktionieren bei mir einwandfrei.

Hallo Peter,

ich nutze die 2.x.x. In der 2.1.x sind keine Konfigurationen für Wolf mehr vorhanden auf dem Repository von John. Nur noch Vailant. Von daher kann ich die 2.1.x nicht nutzen.

Ich werde mal schauen, ob ich die 2.x.x an die 2.1.x Version anpassen kann.

Viele Grüße,

Burkhard

[FONT=arial narrow]Hallo Peter
Kann bitte nochmal jemand erklären, wie die ebusd Nachrichten sinnvoll in IPSymcon ausgewertet werden?

  • Der ebusd läuft ohne Probleme auf einem Raspi 3; phys. Schnittstelle st der ebus-USB Adapter von esera…
  • IPSymcon V5 läuft auf dem gleichen Raspi - läuft auch wirklich (Enocean Geräte über /dev/ttyUSB1 angebunden, steuerbar …)
  • Bus Nachrichten können in der Konsole auch wunderbar verfolgt oder mit ebusctl r <Name> gelesen werden.
  • In IPSymcon kann ich die Schnittstelle zum Raspi sowohl als serielle Schnittstelle (/dev/ttyUSB0(9800,8,1,n))oder als
    ClientSocket öffnen, ohne das Fehlermeldungen erfolgen

Und hier endet´s

  • Wie genau muss ch die Skripte einbnden, um eine Variable per shell_exec oder per Clientsocket zu „befüllen“

[/FONT][FONT=arial narrow][FONT=arial][FONT=arial narrow][SIZE=2]Irgendwie komme ich alleine mit Lesen nicht weiter und benötige Starthilfe…

Gruss, OldBeo[/FONT]
[/SIZE][/FONT]
[/FONT]

Hallo OldBeo,

du musst eigentlich einfach den Befehl reinsetzen, mit dem du auch vom Terminal aus lesen würdest:

z.B: (ich gebe noch den Port mit)

$ErtragGesamt = shell_exec('ebusctl --port=8889 r -f YieldTotal');

So habe ich der Reihe nach alle Werte, die ich will, in einem Script drin, das 1x pro Minute läuft, mit Wartezeit zwischen den einzelnen Werten. Geht sicher noch etwas eleganter, aber es geht :):

//Ertrag Gesamt
	$ErtragGesamt = 26066;
	$ErtragGesamt_vorher = GetValueInteger($ErtragGesamt);
  	$ErtragGesamt = shell_exec('ebusctl --port=8889 r -f YieldTotal');
	
	if ($ErtragGesamt > 0) {
  	$ErtragGesamt = intval($ErtragGesamt);
  	SetValueInteger(26066 , $ErtragGesamt);
	}
	else SetValueInteger(26066 , $ErtragGesamt_vorher);
   	IPS_Sleep(1000);

//Status Zirkulation lesen
 
   // $Zirkulationspumpe = 42485;
    $Zirkulationspumpe = trim(shell_exec('ebusctl --port=8889 r -f CirPump'));

	if ($Zirkulationspumpe == "on") { 
	SetValueBoolean(42485, true);
	}
	else SetValueBoolean(42485, false);
    IPS_Sleep(1000);
	
//Warmwassertemperatur lesen
	$Warmwassertemperatur = 35145;
	$Warmwassertemperatur_vorher = GetValueFLoat($Warmwassertemperatur);
   	$Warmwassertemperatur = shell_exec('ebusctl --port=8889 r -f HwcTemp');
	
	if ($Warmwassertemperatur > 0) {
  	$Warmwassertemperatur = floatval(substr($Warmwassertemperatur, 0, strpos($Warmwassertemperatur, ';')));
   	SetValueFloat(35145, $Warmwassertemperatur);
	}
	else SetValueFloat(35145, $Warmwassertemperatur_vorher);
  	IPS_Sleep(1000);

Bekommst du Werte vom ebus-Koppler zurück?

Vielen Dank. Es funktioniert. Werte werden alle 5 Minuten gelesen. Ich lasse es jetzt über die nächste Woche laufen, sollte aber stabil sein. ebusd hat vorher auch klaglos mit FHEM funktioniert.

Hallo zusammen,

nach langer Zeit bin ich wieder mal dazu gekommen, mich mit den Thema Einbindung meiner Heizung zu beschäftigen. Auch etwas aus der Not geboren, da mein Stromverbrauch gerade jedes Jahr ansteigt, und ich analysieren will woran es liegt.

Die Hauptschwierigkeit war, die EBUS Telegramme zu entschlüsseln. Dafür haben ganz viele in verschiedenen Foren Ihren Beitrag geleistet. Meine Erkenntnisse teile ich deshalb gerne. Ich habe die CSV dann durch ausprobieren und parallelem Durchscrollen der Menüs auf dem Controller der WP angepasst. CSV ist im Anhang. Hier war die Basis auf die ich aufbauen konnte: https://github.com/rellla/ebusd-configuration/blob/435d9ee4fe113edbfce16b894a89e62d1519d170/ebusd-2.1.x/de/TEM/bartl.csv

ebusd läuft auf dem selben raspberry pi wie symcon 5.0.
Als Hardware verwende ich den eBUS Koppler Ethernet von Esera. Der lag schon ein paar Jahre im Schrank. Obwohl bei ebusd steht, dass es damit wohl Schwierigkeiten gibt, geht es bei mir einwandfrei.

Lesend ist nun kein Problem.
Hab die Auswertung ganz pragmatisch gelöst, vielleicht gibt es programmiertechnisch elegantere Lösungen. Hier mal meine Skripte:

zum Auswerten der Variablen:

$werte = explode(";",$_IPS['VALUE']);
//print_r($werte);


switch ($werte[0]) {
    case "00-004":
        SetValueFloat(28964, $werte[5]);
        break;
    case "02-053":
        SetValueString(18500, $werte[5]);
        break;
    case "00-015":
        SetValueFloat(29675, $werte[5]);
        break;
    case "00-002":
        SetValueFloat(39379, $werte[5]);
        break;
    case "23-001":
        SetValueFloat(42190, $werte[5]);
        break;
    case "23-010":
        SetValueFloat(48885, $werte[5]);
        break;
    case "00-007":
        SetValueFloat(25115, $werte[5]);
        break;
    case "00-008":
        SetValueFloat(28459, $werte[5]);
        break;
    case "00-070":
        SetValueFloat(27797, $werte[5]);
        break;
    case "00-071":
        SetValueFloat(56657, $werte[5]);
        break;
    case "00-072":
        SetValueFloat(17002, $werte[5]);
        break;
    case "01-001":
        SetValueFloat(57805, $werte[5]);
        break;
    case "03-058":
        SetValueFloat(29210, $werte[5]);
        break;
    case "03-050":
        SetValueString(52895, $werte[5]);
        break;
    case "00-000":
        SetValueFloat(23520, $werte[5]);
        break;
    case "02-020":
        SetValueFloat(28646, $werte[5]);
        break;

}

Abfrage der Werte vom Bus:

<?

CSCK_SendText(51563, "read -f -c ww_ping temp_ist".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_ping status".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wm_stat puffer_temp_oben".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_ping vl_temp_ist".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat energie_kwh".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat energie_mwh".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat vl_temp_ist".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat rl_temp_ist".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat temp_hg".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat wq_temp_out".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c wp_stat wq_temp_in".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_stat raumtemp_soll".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_param1 temp_behaglichkeit".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_stat at".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_stat at".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_stat at_mittel".chr(10).chr(13));
sleep(1);   
CSCK_SendText(51563, "read -f -c hk_ping betriebswahl".chr(10).chr(13));
?>

So, irgendwann steht noch das Schreiben auf den Bus an. Für die Änderung wesentlicher Parameter, bsp. Warmwassertemperatur, Behaglichkeit oder Betriebswahl der Heizung. Aber lesend tappe ich noch völlig im Dunkeln.

Variablenkonfiguration:

bartl eco 4 SHG.zip (9.9 KB)

Ich wurde zwischenzeitlich noch gefragt, wie ich die Konfig aussehen muss, damit die Kommunikation von ebusd zum eBUS Koppler Ethernet hergestellt werden kann. Hier ist kein Treiber und keine virtuelle COM-Schnittstelle erforderlich.

Hier mein Konfig-file von ebusd.
Entscheidend ist der Paremeter -d in der Zeile EBUSD_OPTS.


# /etc/default/ebusd:
# config file for ebusd service.

# Options to pass to ebusd (run "ebusd -?" for more info):
EBUSD_OPTS="-d 192.168.2.9:5000 --configpath=/etc/ebusd"

# MULTIPLE EBUSD INSTANCES WITH SYSV
# In order to run multiple ebusd instances on a SysV enabled system, simply
# define several EBUSD_OPTS with a unique suffix for each. Recommended is to
# use a number as suffix for all EBUSD_OPTS settings. That number will then be
# taken as additional "instance" parameter to the init.d script in order to
# start/stop an individual ebusd instance instead of all instances.
# Example: (uncomment the EBUSD_OPTS above)
#EBUSD_OPTS1="--scanconfig -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0 -p 8888 -l /var/log/ebusd1.log"
#EBUSD_OPTS2="--scanconfig -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900acTF-if00-port0 -p 8889 -l /var/log/ebusd2.log"
#EBUSD_OPTS3="--scanconfig -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900beCG-if00-port0 -p 8890 -l /var/log/ebusd3.log"

# MULTIPLE EBUSD INSTANCES WITH SYSTEMD
# In order to run muiltiple ebusd instances on a systemd enabled system, just
# copy the /usr/lib/systemd/system/ebusd.service file to /etc/systemd/system/
# with a different name (e.g. ebusd-2.service), remove the line starting with
# 'EnvironmentFile=', and replace the '$EBUSD_OPTS' with the options for that
# particular ebusd instance.

Die Abfrage von Symcon nutzt dann den TCP-IP Client von ebusd (3.1. TCP client commands · john30/ebusd Wiki · GitHub). Dazu in IP-Symcon den passenden Client Socket einrichten.

@alexox: Eine Schritt für Schritt Anleitung hat du nicht zufällig? (Habe zwar eine Vaillant LWP, aber…)

danke und lg

Hallo,

ebusd läuft bei mir hervorragend. Da ich jetzt die Temperaturen meiner Solarthermie-Anlage auslesen kann und bei Ertrag vom Dach die Warmwasser-Bereitung der Wärmepumpe abschalten möchte, muss ich diesen Wert in der Vaillant VWL 61/3 setzen:

ebusctl --port=8889 r -f OperatingMode

Den Port muss ich mitgeben, kann man normalerweise weglassen… Ergebnis der Abfrage ist „auto“, was mit der WP übereinstimmt. Stelle ich in der WP auf „aus“ kommt logischerweise „off“. Der Wert ist also der richtige.

P.S.: Habe die Logik verstanden, vielleicht hilft es ja jemandem. Man muss immer den Kreis © aus der Konfig-Datei mitgeben, dann klappts auch:

ebusctl --port=8889 w -c hwc OperatingMode off

→ Warmwasser-Bereitung ausschalten

ebusctl --port=8889 w -c hwc OperatingMode auto

–> Warmwasser-Bereitung auf Automatik schalten

Viel Spaß beim Testen.

Evtl. auch interessant