FHEMWiki:Sandbox: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
K (Erläuterung zum Abschnitt Trackingkategorien eingefügt)
 
(14 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''eBus Schaltung in Betrieb nehmen!'''
== Test der dynamischen Tracking-Kategorien ==
Im Folgenden werden bewusst
* ein "syntaxhighlight" mit Syntaxfehler
* das veraltete "source" Tag und
* ein Dateilink auf eine nicht existierende Datei
verwendet, um die zugehörigen Trackingkategorien zu "befüllen" und somit (auf weitere, unbeabsichtigte Vorkommen dieser "Fehler") kontrollieren zu können.
<syntaxhighlight lang="perl">
#!/usr/bin/perl
use strict;
use warnings;


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.
use Path::Class;
use autodie; # die if problem reading or writing a file


[[Datei:Print 2.PNG|thumb|left|alt=eBus Platine]]
my $dir = dir("/tmp"); # /tmp
fertig aufgebaute eBus Platine, bereit für den Einsatz mit eBusd!
<div style="clear:both;"></div>


=Interface=
my $file = $dir->file("file.txt"); # /tmp/file.txt
==Schaltung==
[[Datei:EBUS-IF-USB.png|thumb|left|alt=EBUS-USB Interface]]
Die Schaltung des eBus von Prof. Dr. Peter A. Henning ist eine bewährte Schaltung die von zahlreichen Usern bereits nachgebaut wurde. [http://www.fhemwiki.de/wiki/EBUS Link zum Beitrag im Wiki].
<div style="clear:both;"></div>


==Eigenbau(Lochrasterplatine)==
# Get a file_handle (IO::File object) you can write to
[[Datei:Selbstbau.png|thumb|left|alt=Platine]]
my $file_handle = $file->openw();
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.
<div style="clear:both;"></div>


==Platine==
my @list = ('a', 'list', 'of', 'lines');
[[Datei:Print1.5.PNG|thumb|left|alt=Platine]]
Der Nachbau der Schaltung kann am einfachsten mit einer fertigen Platine erfolgen.
Siehe dazu auch den [http://forum.fhem.de/index.php/topic,46098.0.html Link aus dem Forum]:
<div style="clear:both;"></div>


===Platine bestücken===
foreach my $line ( @list ) {
[[Datei:Print 1.PNG|thumb|left|alt=Platine bestücken]]
    # Add the line to the file
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.
    $file_handle->print($line . "\n");
<div style="clear:both;"></div>
}
'''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.
</syntaxhighlight>
<div style="clear:both;"></div>


===Platine Messpunkte===
Test Tracking categories:
[[Datei:Messpunkte.png|thumb|left|alt=Platine messen]]
[[Datei:Brokenfile.pdf]]
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.
<source lang="html">
<div style="clear:both;"></div>
  <Seiten mit dem veralteten source-Tag>
 
===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.
 
===Bekannte Fehler===
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.
 
==Kommerzielles Interface==
Ein kommerzielles Interface für die Umsetzung eBus->USB ist hier erhältlich:
[https://www.eservice-online.de/produkte/ebus/ Ebuskoppler]
 
=Software=
Im Prinzip sollte man sich vorher überlegen ob man für den eBus einen eigenen Rechner Raspi) nimmt oder auf der bestehenden Fhem Installation laufen lassen sollte. Die Empfehlung ist eine Trennung, da dies mehrere Vorteile speziell zum Testen anbietet.
[[Datei:Ebusd-konfiguration.png|thumb|left|alt=eBus Konfiguration]]
Hier eine Konfiguration von Fhem und das Zusammenspiel mit eBusd via ECMD. Das soll aber jeder so handhaben wie es am Besten in das eigene Konzept passt.
<div style="clear:both;"></div>
 
==eBusd Installation Packages==
 
===Voraussetzungen===
Alle wichtigen Informationen findet man in der Wiki direkt vom [https://github.com/john30/ebusd/wiki/1.-Build-and-install Autor] des eBusd!
 
===eBusd===
[https://github.com/john30/ebusd/releases GIT von John]
 
===Konfigurationsdateien 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 [https://github.com/john30/ebusd-configuration/releases 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
 
==eBusd Installation Build Prozess==
Nachdem alle Vorebreitungen getroffen wurden, kann der eBus auf dem lokalen Raspberry compiliert und installiert werden.
apt-get install git autoconf automake g++ make  #Git am Raspi aktualisieren
git clone https://github.com/john30/ebusd.git # eBus auscchecken
 
 
<source lang="bash">
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
</source>
</source>
<syntaxhighlight>
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.
  <syntaxhighlight ohne lang=>
 
</syntaxhighlight>
ebusd -V
PS -aux|grep ebusd
 
===Voraussetzungen===
 
===ebusd===
 
===Dienstkonfiguration===
 
===Logdatei (Logrotate)===
/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.
[[Datei:Logfile.PNG|thumb|left|alt=Logfile Ansicht]]
Das Ergebnis aus der oben dargestellten Definition.
<div style="clear:both;"></div>
 
=Systemüberwachung=
 
==Mithilfe von Fhem==
 
==Mithilfe von Watchdog==
 
=Beispiele=
 
==Heizkurve==
 
==Wochenprogramme==
 
==Visualisierung und Steuerung mit FTUI==
 
=Tipps & Tricks=
 
==TBD==
 
==USB Device unter Linux ermitteln==
 
==EBUSD Checkconfig==
 
==Bedeutung von "unknown MS" in der eBusd Logdatei==
 
==Bedeutung von "lost Signal"==
 
==ERR: duplicate Entry==
 
==ERR: End if input reached==
 
==BUS ERR send to 15==
 
=weiterführende Links=
Diskussionsthread aus dem Forum:
*[http://forum.fhem.de/index.php/topic,46098.0.html eBus Schaltung in Betrieb nehmen!]
*[http://forum.fhem.de/index.php/topic,29737.0.html Läuft: Heizung mit eBus-Schnittstelle]

Aktuelle Version vom 10. November 2023, 12:50 Uhr

Test der dynamischen Tracking-Kategorien

Im Folgenden werden bewusst

  • ein "syntaxhighlight" mit Syntaxfehler
  • das veraltete "source" Tag und
  • ein Dateilink auf eine nicht existierende Datei

verwendet, um die zugehörigen Trackingkategorien zu "befüllen" und somit (auf weitere, unbeabsichtigte Vorkommen dieser "Fehler") kontrollieren zu können.

#!/usr/bin/perl
use strict;
use warnings;

use Path::Class;
use autodie; # die if problem reading or writing a file

my $dir = dir("/tmp"); # /tmp

my $file = $dir->file("file.txt"); # /tmp/file.txt

# Get a file_handle (IO::File object) you can write to
my $file_handle = $file->openw();

my @list = ('a', 'list', 'of', 'lines');

foreach my $line ( @list ) {
    # Add the line to the file
    $file_handle->print($line . "\n");
}

Test Tracking categories: Datei:Brokenfile.pdf

 <Seiten mit dem veralteten source-Tag>
 <syntaxhighlight ohne lang=>