FHEMWiki:Sandbox: Unterschied zwischen den Versionen
Zeile 46: | Zeile 46: | ||
Somit erhält man im ebusd Fenster die empfangenen Bytes als Hex, also z.B.: | Somit erhält man im ebusd Fenster die empfangenen Bytes als Hex, also z.B.: | ||
2015-12-24 12:07:16.955 [bus notice] <aa | ''2015-12-24 12:07:16.955 [bus notice] <aa | ||
2015-12-24 12:07:17.001 [bus notice] <aa | 2015-12-24 12:07:17.001 [bus notice] <aa | ||
2015-12-24 12:07:17.047 [bus notice] <aa | 2015-12-24 12:07:17.047 [bus notice] <aa | ||
Zeile 53: | Zeile 53: | ||
2015-12-24 12:07:17.102 [bus notice] <50 | 2015-12-24 12:07:17.102 [bus notice] <50 | ||
2015-12-24 12:07:17.107 [bus notice] <b5 | 2015-12-24 12:07:17.107 [bus notice] <b5 | ||
2015-12-24 12:07:17.111 [bus notice] <04 | 2015-12-24 12:07:17.111 [bus notice] <04'' | ||
Wenn gerade kein Gerät den Bus benutzt, dann sollten etwa 20 Zeilen pro Sekunde ausgegeben werden und zwar mit "<aa" (im Beispiel die oberen 4 Zeilen). | Wenn gerade kein Gerät den Bus benutzt, dann sollten etwa 20 Zeilen pro Sekunde ausgegeben werden und zwar mit "<aa" (im Beispiel die oberen 4 Zeilen). |
Version vom 19. Januar 2016, 17:32 Uhr
eBus Schaltung in Betrieb nehmen!
Diese Beschreibung sollte hauptsächlich für Personen dienen, bei denen es nicht das tägliche Brot ist elektronische Schaltungen in Betrieb zu nehmen. Ich setze hier voraus, dass der Umgang mit einem Lötkolben klar ist. Wer noch nie gelötet hat, sollte besser einen Bekannten ersuchen der das schon gemacht hat.
fertig aufgebaute eBus Platine, bereit für den Einsatz mit eBusd!
Schaltung
Die Schaltung des eBus von Prof. Dr. Peter A. Henning ist eine bewährte Schaltung die von zahlreichen Usern bereits nachgebaut wurde. Link zum Beitrag im Wiki.
Platine
Der Nachbau der Schaltung kann am einfachsten mit einer fertigen Platine erfolgen. Siehe dazu auch den Link aus dem Forum
Die Gerberfiles für diese Platine gibt es hier, Danke an zentis666 der uns dieses Layout zur Verfügung gestellt hat.
Hier ein Beispiel eines Aufbaues auf einer Lochrasterplatine. Sieht nicht ganz so schön aus, tut aber genau so seine Dienste und ist natürlich etwas aufwändiger was die Lötarbeit betrifft. Für kleine Prototypen immer noch die ideale Art, besonders wenn es schnell gehen muss und man auf Platinenbestellungen nicht warten will.
Platine bestücken
Bei der Bestückung sollte darauf geachtet werden mit den niedrigsten Bauteilen zuerst zu beginnen, sonst fallen sie beim verlöten ständig heraus. Wer die Farbcodes der Widerstände nicht auswendig kennt sollte diese vorher mit einem Meßgerät (Ohmmeter) messen. Nach den Dioden und Widerständen können die IC Sockel eingelötet werden, hier sollte lediglich auf die Einkerbung laut Bestückungsaufdruck geachtet werden. Zum Schluß noch die restlichen Bauteile. Nach einer genaue Sichtkontrolle können noch die ICS eingesetzt werden. Diese können auf einer flachen Unterlage etwas vorgebogen werden, damit sie leichter in den Sockel passen.
Achtung: der IC 4011 ist ein Cmos Schaltkreis und ist empfindlich gegen statische Aufladungen, daher die Beinchen nicht mit dem Finger berühren, bzw. ein Antistatikband am Arm verwenden.
Platine Messpunkte
Hier noch der Schaltplan mit einigen wichtigen Spannungen für den Testbetrieb am Netzgerät. Bitte beachtet den Widerstand am Eingang des eBus und die Anschaltung der behelfsmäßigen Led zur Abstimmung. Spätestens dann, wenn die Schaltung auf Anhieb nicht funktionieren sollte, werdet ihr über so einen Versuchsaufbau nicht herum kommen. Hier kann in Ruhe die Schaltung getestet und gemessen werden. Defekte Bauteile oder fehlerhafte Lötstellen sollten dann schnell gefunden werden.
Poti abgleichen
Zur ersten Justierung des Potis bitte den Dienst stoppen (service ebusd stop) und statt dessen mit minimalen Parametern und ohne irgendwelche CSVs direkt in der Kommandozeile starten.
ebusd -f -c /tmp --logareas bus --loglevel info -d $DEVICE
$DEVICE dabei einfach durch das entsprechende /dev/ttyUSB0 o.ä. ersetzen.
Danach aktiviert man noch aus einem zweiten Terminal wie folgt den raw output:
ebusctl raw
Somit erhält man im ebusd Fenster die empfangenen Bytes als Hex, also z.B.:
2015-12-24 12:07:16.955 [bus notice] <aa 2015-12-24 12:07:17.001 [bus notice] <aa 2015-12-24 12:07:17.047 [bus notice] <aa 2015-12-24 12:07:17.093 [bus notice] <aa 2015-12-24 12:07:17.097 [bus notice] <10 2015-12-24 12:07:17.102 [bus notice] <50 2015-12-24 12:07:17.107 [bus notice] <b5 2015-12-24 12:07:17.111 [bus notice] <04
Wenn gerade kein Gerät den Bus benutzt, dann sollten etwa 20 Zeilen pro Sekunde ausgegeben werden und zwar mit "<aa" (im Beispiel die oberen 4 Zeilen).
Sobald ein Gerät den Bus benutzt, sieht das natürlich wieder anders aus. Da sind dann kurze Peaks mit was anderem als "aa" zu sehen. Das sollte man dann ignorieren (im Beispiel die unteren 4 Zeilen).
Wichtig ist dann bei der Poti Einstellung, dass man vor allem die regulären "aa"s zu sehen bekommt. Erst wenn die zuverlässig reinlaufen, kann man sich der nächsten Stufe widmen und ebusd wieder regulär als Dienst starten.
Logfile auswerten
Das Logfile ist zur Inbetriebnahme unerlässlich und kann (zB. mit PsPad) ausgelesen werden.
2015-12-22 16:27:34.195 [bus notice] signal acquired 2015-12-22 16:28:12.029 [bus error] signal lost 2015-12-22 16:28:12.339 [bus notice] signal acquired 2015-12-22 16:28:14.006 [bus error] signal lost 2015-12-22 16:28:16.372 [bus notice] signal acquired 2015-12-22 16:28:18.023 [bus error] signal lost 2015-12-22 16:28:18.729 [bus notice] signal acquired 2015-12-22 16:28:20.458 [update notice] update myCustom Status01: 43.0;41.0;8.000;41.0;38.0;ok 2015-12-22 16:28:26.460 [update notice] update bc Mode QQ=10: standby 2015-12-22 16:28:30.436 [update notice] update myCustom Status01: 41.0;40.0;8.000;41.0;38.0;ok 2015-12-22 16:28:32.458 [update notice] update broadcast vdatetime QQ=10: 16:24:52;22.12.2015 2015-12-22 16:28:32.696 [update notice] update myCustom2 Pumpenstatus: ok 2015-12-22 16:28:36.452 [update notice] update bc Mode QQ=10: standby 2015-12-22 16:28:40.478 [update notice] update myCustom Status01: 40.0;39.0;7.750;41.0;38.0;ok 2015-12-22 16:28:42.482 [update notice] update myCustom1 Status11: nosignal;41;5;18;-;-;-;-;8.000 2015-12-22 16:28:42.753 [update notice] update myCustom Status02: auto;60;70.0;70;54.0
Hier ein typisches Log wenn das Poti noch nicht oder falsch kalibriert wurde. Ab dem Eintrag 16:28:20.458 war dann die richtige Stellung gefunden. Das Poti soll daher zunächst ganz nach links (Transistor der Platine ist dann rechts unten) gedreht werden und dann vorsichtig auf etwa 2:00 Uhr. Bei knapp 2:00 Uhr ist bei der Testplatine dann die ideale Stellung. Der Stellbereich ist sehr klein (etwa 1-2 mm), daher einen Schraubendreher verwenden der sehr exakt passt und gleichzeitig mit dem Laptop abfragen starten. Zur Kontrolle dann das Log (var/log/ebusd.log) abfragen.
2015-11-29 06:26:55.271 [update notice] update myCustom1 Status11: nosignal;40;0;15;-;-;-;-;-0.188 2015-11-29 06:26:55.541 [update notice] update myCustom Status02: auto;60;70.0;70;54.0 2015-11-29 06:26:59.293 [update notice] update bc Mode QQ=10: standby 2015-11-29 06:27:03.323 [update notice] update myCustom Status01: 53.0;45.0;-0.438;47.0;46.0;error 2015-11-29 06:27:05.268 [update notice] update broadcast outsidetemp QQ=10: -3.188 2015-11-29 06:27:09.344 [update notice] update bc Mode QQ=10: standby 2015-11-29 06:27:11.934 [bus error] send to 08: ERR: read timeout, retry 2015-11-29 06:27:11.981 [bus error] send to 08: ERR: read timeout, retry 2015-11-29 06:27:12.025 [bus error] send to 08: ERR: read timeout, retry 2015-11-29 06:27:12.069 [bus error] send to 08: ERR: read timeout
In diesem Fall liegt ein Fehler bei jedem Sendeversuch vor. Ein "bus error" mit timeout sollte nicht (zu oft) zu finden sein. Gut zu sehen sind schon die Broadcast Meldungen, die selbständig über den Bus laufen und vom Konverter schon richtig interpretiert werden. Sollten wie in diesem Fall, die Meldungen nicht mit Texten zu lesen sein fehlen noch die Konfigurationfiles (csv) im Verzeichnis /etc/ebusd. Welche Files hier verwendet werden sollen ist natürlich von der Therme und dem Zubehör abhängig.
Achtung: Der Autor übernimmt keine Haftung für die Anwendung dieser Schaltung. Zur Vermeidung von Schäden durch unsachgemäße Bedienung des Heizungssystems wird ausdrücklich empfohlen, nur lesend auf die Schnittstelle zugreifen.
eBusd installieren
Im Prinzip sollte man sich überlegen ob man für den eBus einen eigenen Rechner nimmt oder auf der bestehenden Fhem Installation laufen lassen sollte. Ich empfehle eine Trennung, da dies mehrere Vorteile speziell zum Testen anbietet. Alle wichtigen Informationen findet man in der Wiki direkt vom Autor des eBusd!
Hier eine Konfiguration von Fhem und das Zusammenspiel mit eBusd via ECMD. Das kann aber jeder handhaben wie es am Besten in das eigene Konzept passt.
Installationsbefehle in Kurzform
apt-get install git autoconf automake g++ make #Git am Raspi aktualisieren git clone https://github.com/john30/ebusd.git # eBus auscchecken
Nachdem nun alles vorbereitet ist, kann der eBus auf dem lokalen Raspberry compiliert und installiert werden.
cd ebusd
sudo ./autogen.sh --prefix=/usr
sudo make
sudo make install
sudo cp /home/pi/ebusd/contrib/etc/init.d/ebusd.debian /etc/init.d/ebusd (Dämonstartfile kopieren
sudo update-rc.d ebusd Defaults
Das kann je nach Geschwindigkeit des Rechners schon um die 20 Minuten dauern. Nach erfolgter Meldung kann dann schon getestet werden welche Version nun auf dem Rechner ist und ob der Dämon überhaupt schon läuft.
ebusd -V PS -aux|grep ebusd
CSV Files
Für die Übersetzung der binären Daten ist es notwendig die entsprechenden Konfigurationsdateien(CSV-Files) zu installieren. Den aktuellen Stand dieser Dateien findet ihr im GIT von John.
Beispiel Befehl zum Download und Entpacken:
wget https://github.com/john30/ebusd/releases/download/v2.0/ebusd-2.0_armhf.deb wget https://github.com/john30/ebusd-configuration/releases/download/v2.0.1/ebusd-configuration-2.0.5aa482c-de_all.deb sudo dpkg -i --force-overwrite ebusd-2.0_armhf.deb sudo dpkg -i --force-overwrite ebusd-configuration-2.0.*.deb
Abschlußkonfiguration
Logfile
/var/log/ebusd.log { rotate 7 copytruncate compress missingok notifempty daily }
Das Logfile kann in /etc/logrotate.d/ebusd konfiguriert werden. In diesem Beispiel wird alle 7 Tage rotiert und komprimiert, das aktuelle Tagesfile ist unkomprimiert und normal lesbar.
Das Ergebnis aus der oben dargestellten Definition.
weiterführende Links
Diskussionsthread aus dem Forum: