Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung Letzte Überarbeitung Beide Seiten, nächste Überarbeitung | ||
ebus:ebusconnector [2015/10/10 21:40] 127.0.0.1 Externe Bearbeitung |
ebus:ebusconnector [2015/10/28 13:36] admin ↷ Links adapted because of a move operation |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | -- Main.BernhardH - 2010-01-07 | ||
====== Was ist der eBus-Connector? | ====== Was ist der eBus-Connector? | ||
Die Software dient zum Auslesen und Speichern der Daten, welche über den eBus übertragen werden. Dabei können die Services in der Konfigurationsdatei frei festgelegt werden wodurch eine Anpassung an jegliche im Standard definierten oder herstellerspezifischen Datendefinitionen möglich ist. Die Festlegung der Datenspeicherung geschieht ebenfalls über die Konfigurationsdatei. Dort werden die SQL-Befehle festgelegt wodurch eine Anpassung an jegliche SQL-fähige Datenbank möglich ist. | Die Software dient zum Auslesen und Speichern der Daten, welche über den eBus übertragen werden. Dabei können die Services in der Konfigurationsdatei frei festgelegt werden wodurch eine Anpassung an jegliche im Standard definierten oder herstellerspezifischen Datendefinitionen möglich ist. Die Festlegung der Datenspeicherung geschieht ebenfalls über die Konfigurationsdatei. Dort werden die SQL-Befehle festgelegt wodurch eine Anpassung an jegliche SQL-fähige Datenbank möglich ist. | ||
+ | |||
====== Welche Voraussetzungen sind zum Betrieb des eBus-Connectors notwendig? ====== | ====== Welche Voraussetzungen sind zum Betrieb des eBus-Connectors notwendig? ====== | ||
- | < | + | |
===== Hardware ===== | ===== Hardware ===== | ||
+ | |||
Da der eBus zwar auf dem RS232-Protokoll basiert aber mit unterschiedlichen Pegeln arbeitet, ist ein Konverter notwendig. Dafür gibt es Schaltpläne für den Elektronik-Bastler (siehe unter EBusKonverter). | Da der eBus zwar auf dem RS232-Protokoll basiert aber mit unterschiedlichen Pegeln arbeitet, ist ein Konverter notwendig. Dafür gibt es Schaltpläne für den Elektronik-Bastler (siehe unter EBusKonverter). | ||
Natürlich ist dann noch ein PC zur Ausführung der Software notwendig :) | Natürlich ist dann noch ein PC zur Ausführung der Software notwendig :) | ||
+ | |||
===== Software ===== | ===== Software ===== | ||
Der eBus-Connector ist ab**Windows** XP lauffähig, wobei ich Windows 7 noch nicht getestet habe, sollte aber kein Problem sein (Tester gesucht). Zum Speichern der Daten ist ein ODBC- oder OLEDB-Treiber für Windows notwendig. Dieser ist für MS-Access im Betriebssystem bereits inkludiert. | Der eBus-Connector ist ab**Windows** XP lauffähig, wobei ich Windows 7 noch nicht getestet habe, sollte aber kein Problem sein (Tester gesucht). Zum Speichern der Daten ist ein ODBC- oder OLEDB-Treiber für Windows notwendig. Dieser ist für MS-Access im Betriebssystem bereits inkludiert. | ||
- | --> EBus.DownloadEBusConnector | + | -> [[ebus: |
- | Für**Linux** gibt es den LinuxKonnektor von Main.FrankWeis als Perl-Script zum download. | + | Für **Linux** gibt es den LinuxKonnektor von Main.FrankWeis als Perl-Script zum download. |
- | </ | + | |
====== Wie wird eBus-Connector konfiguriert? | ====== Wie wird eBus-Connector konfiguriert? | ||
- | Die Konfiguration erfolgt ausschließlich über die Datei „eBusConnector.ini“. Dabei handelt es sich um eine Textdatei im Windows-INI Format und kann mit einem jedem beliebigem Texteditor editiert werden. (Mein Favorit ist [[http:// | + | Die Konfiguration erfolgt ausschließlich über die Datei //eBusConnector.ini//. Dabei handelt es sich um eine Textdatei im Windows-INI Format und kann mit einem jedem beliebigem Texteditor editiert werden. (Mein Favorit ist [[http:// |
===== Fertige Konfigurationen ===== | ===== Fertige Konfigurationen ===== | ||
Derzeit gibt es Konfigurationsdateien für Wolf Solarregler SM1 und Kaskadenmodul KM und Speicherung in einer Access-Datei. Diese Konfiguration inklusive grafischer Auswertung ist im Downloadpaket bereits enthalten. | Derzeit gibt es Konfigurationsdateien für Wolf Solarregler SM1 und Kaskadenmodul KM und Speicherung in einer Access-Datei. Diese Konfiguration inklusive grafischer Auswertung ist im Downloadpaket bereits enthalten. | ||
- | Für< | + | Für **Vaillant** sind Konfiguration und Datenbank im Unterverzeichnis " |
===== Datenbankverbindung (Gruppe [Db]) ===== | ===== Datenbankverbindung (Gruppe [Db]) ===== | ||
- | Hier wird der Datenbanktreiber angegeben. Beispiele dazu siehe <a target''" | + | Hier wird der Datenbanktreiber angegeben. Beispiele dazu siehe www.connectionstrings.com |
- | <code>< | + | Beispiel für MS-Access: |
+ | |||
+ | < | ||
Connection'' | Connection'' | ||
User'' | User'' | ||
Pwd''? | Pwd''? | ||
- | Provider'' | + | Provider'' |
</ | </ | ||
- | Beispiel für !MySQL: | + | Beispiel für %%MySQL:%% |
- | <file> | + | <code> |
User'' | User'' | ||
Pwd''? | Pwd''? | ||
- | Provider'' | + | Provider'' |
===== Schnittstellenparameter (Gruppe [eBusCom]) ===== | ===== Schnittstellenparameter (Gruppe [eBusCom]) ===== | ||
Hier wird die zu verwendende serielle Schnittstelle festgelegt. In diesem Beispiel Com3. Die restlichen Parameter sind auf den eBus-Standard abgestimmt und sollten keine Änderung benötigen. | Hier wird die zu verwendende serielle Schnittstelle festgelegt. In diesem Beispiel Com3. Die restlichen Parameter sind auf den eBus-Standard abgestimmt und sollten keine Änderung benötigen. | ||
- | <code>< | + | < |
ComNum'' | ComNum'' | ||
Baudrate'' | Baudrate'' | ||
FlowCtrl'' | FlowCtrl'' | ||
LineCondFlags'' | LineCondFlags'' | ||
- | RxCharWait'' | + | RxCharWait'' |
</ | </ | ||
Zeile 57: | Zeile 62: | ||
==== Datentypen ==== | ==== Datentypen ==== | ||
- | <table cellspacing''" | + | |
+ | ^Type ^Bereich | ||
+ | | einfach: | ||
+ | |char | |FF | | ||
+ | |signed char | |80 | | ||
+ | |signed int | |8000 | | ||
+ | |word | |FFFF | | ||
+ | | komplex: | ||
+ | |bcd |0-99 |FF | | ||
+ | |data1b | ||
+ | |data1c | ||
+ | |data2b | ||
+ | |data2c | ||
+ | |data2d | ||
+ | | spezial: | ||
+ | |Flags |Daten werden als Binärstring ausgegeben | ||
+ | |Text( Anzahl ) |Daten werden als Text umgewandelt | ||
+ | |hex( Anzahl ) |erzeugt einen Hexstring der angegebenen Anzahl Bytes als String ( z.B. "01 02 03" | ||
+ | |text( Anzahl ) |Wandelt Daten in Text um. Wird z.B. in Service FE01 (Fehlernachricht) verwendet. | ||
+ | |%%SubService%% |Gibt an, dass der Inhalt dieses Feldes ein Subservice definiert | ||
+ | |Analyze( Anzahl ) |Dient zur Analyse von unbekannten Befehlen. Es wird der Datenblock in definierter Länge mit allen einfachen und komplexen Datentypen angezeigt. So können gültige Werte einfacher aufgespürt werden. | ||
==== Grundparameter (Gruppe [eBusConnector]) ==== | ==== Grundparameter (Gruppe [eBusConnector]) ==== | ||
- | <table cellspacing''" | ||
- | Legt fest, welche Informationen geloggt werden sollen.<br />Kombination folgender Werte ist möglich:<br /><br />LOG_ERROR 0x0001<br />LOG_UNDEFINED 0x0002<br />LOG_SQL 0x0004<br />LOG_INFO 0x0008<br />LOG_ALL_INPUT 0x0010 -& | + | ^Parameter ^Beschreibung ^ |
- | </td> </tr> <tr> <td>ServiceDef</td> <td>Beschreibt in dieser Gruppe den Aufbau des Headers bis einschließlich Datenlänge</td> </tr> <tr> <td>Use</td> <td>Gibt an, welche Befehle definiert und für die Weiterbearbeitung verwendet werden sollen. Die Definition beginnt bei der Gruppe [eBusConnector] und geht bei jedem mit " | + | |%%LogLevel%% |Legt fest, welche Informationen geloggt werden sollen.\\ Kombination folgender Werte ist möglich:\\ \\ LOG_ERROR 0x0001\\ LOG_UNDEFINED 0x0002\\ LOG_SQL 0x0004\\ LOG_INFO 0x0008\\ LOG_ALL_INPUT 0x0010 -> erstellt " |
+ | |%%ServiceDef%% |Beschreibt in dieser Gruppe den Aufbau des Headers bis einschließlich Datenlänge | ||
+ | |Use |Gibt an, welche Befehle definiert und für die Weiterbearbeitung verwendet werden sollen. Die Definition beginnt bei der Gruppe [eBusConnector] und geht bei jedem mit " | ||
==== Servicedefinition (Gruppen [nnnn] oder [nnnn:ss]) ==== | ==== Servicedefinition (Gruppen [nnnn] oder [nnnn:ss]) ==== | ||
- | Dabei gibt _nnnn//die Hex-Representation des Primär- und Sekundärbefehls an und _ss//das Subservice (welches beliebig wiederholt werden kann, da jedes Subservice wiederum Subservices enthalten kann) | + | Dabei gibt //nnnn// die Hex-Representation des Primär- und Sekundärbefehls an und //ss// das Subservice (welches beliebig wiederholt werden kann, da jedes Subservice wiederum Subservices enthalten kann) |
- | <table cellspacing''" | + | |
+ | ^Parameter | ||
+ | |%%ServiceDef%% |Definition der Datenstruktur ab hier in der Form %%Feldname=Datentype | ||
+ | |Check |SQL-Statement, | ||
+ | |%%MinInteral%% |Mindestzeit zwischen zwei Ausführungen Beispiele: (Werte ohne Anführungszeichen eintragen)\\ "80 s" -> 80 Sekunden\\ "1 h" -> eine Stunde\\ "2 d" -> 2 Tage\\ " | ||
+ | |%%CheckChanges%% |entweder " | ||
+ | |%%CheckMode%% |Kann den Wert AND oder OR haben. Defaultwert AND bedeutet, dass %%MinInterval%% und %%CheckChanges%% zutreffen müssen um eine Aktion durchzuführen. Bei OR wird der Satz bearbeitet, wenn entweder %%MinInterval%% erreicht oder %%CheckChanges%% zutrifft. | | ||
+ | |SUBSERVICEDEFINITION: | ||
- | Mindestzeit zwischen zwei Ausführungen Beispiele: (Werte ohne Anführungszeichen eintragen)< | ||
- | </td> </tr> <tr> < | ||
====== Wie beginnen... ====== | ====== Wie beginnen... ====== | ||
- | Um einfach alle Daten anzuzeigen welche am eBus transportiert werden, können einfach die Use-Einträge in der Gruppe [eBusConnector] auskommentiert werden und der Eintrag | + | Um einfach alle Daten anzuzeigen welche am eBus transportiert werden, können einfach die Use-Einträge in der Gruppe [eBusConnector] auskommentiert werden und der Eintrag |
< | < | ||
Dann können die benötigten Servicedaten mit Use eingehängt und noch nicht definierte Services auf Grund der Dokumentation definiert werden (siehe Servicedefiniton). In obigem Beispiel ergibt sich folgende Definiton: | Dann können die benötigten Servicedaten mit Use eingehängt und noch nicht definierte Services auf Grund der Dokumentation definiert werden (siehe Servicedefiniton). In obigem Beispiel ergibt sich folgende Definiton: | ||
- | <table cellspacing''" | ||
- | < | + | |QQ |30 || |
+ | |ZZ |FE |Broadcast | | ||
+ | |PB |07 |Primärbefehl | | ||
+ | |SB |00 |Sekundärbefehl | | ||
+ | |LL |09 |Datenlänge | | ||
+ | |00 80 |Außentemperatur (data2b, 1/256) || | ||
+ | |10 |Sekunden (BCD) || | ||
+ | |43 |Minuten (BCD) || | ||
+ | |21 |Stunden (BCD) || | ||
+ | |FF |Tag (BCD) || | ||
+ | |FF |Monat (BCD) || | ||
+ | |03 |Wochentag (BCD) || | ||
+ | |FF |Jahr (BCD) || | ||
+ | |FB |Prüfziffer || | ||
+ | |||
+ | |||
+ | < | ||
Use'' | Use'' | ||
Zeile 90: | Zeile 137: | ||
MinInterval'' | MinInterval'' | ||
</ | </ | ||
- | </ | + | |
Im obigen Beispiel werden keine Daten gespeichert, | Im obigen Beispiel werden keine Daten gespeichert, | ||
Zeile 98: | Zeile 145: | ||
eine weitere Möglichkeit ist die Verwendung der Analysefunktion: | eine weitere Möglichkeit ist die Verwendung der Analysefunktion: | ||
- | Dazu sind die zu analysierenden Services mit dem Typ " | + | Dazu sind die zu analysierenden Services mit dem Typ " |
- | < | + | |
+ | < | ||
LogLevel'' | LogLevel'' | ||
Zeile 107: | Zeile 155: | ||
ServiceDef'' | ServiceDef'' | ||
</ | </ | ||
- | </ | + | |
Nun wird eine Datei mit dem Namen " | Nun wird eine Datei mit dem Namen " | ||
Habe ich nun durch die Analyse der cvs-Datei herausgefunden (das geht sehr gut mit der grafischen Darstellung der Daten in Excel und die Verwendung der Filterfunktion) welche Daten an bestimmten Stellen enthalten sind, dann kann die Servicedefinition erweitert werden. Dadurch entstehen weniger Analysedaten. | Habe ich nun durch die Analyse der cvs-Datei herausgefunden (das geht sehr gut mit der grafischen Darstellung der Daten in Excel und die Verwendung der Filterfunktion) welche Daten an bestimmten Stellen enthalten sind, dann kann die Servicedefinition erweitert werden. Dadurch entstehen weniger Analysedaten. | ||
- | < | + | |
+ | < | ||
LogLevel'' | LogLevel'' | ||
Zeile 122: | Zeile 171: | ||
</ | </ | ||
- | </ | + | |
--- | --- | ||
Zeile 131: | Zeile 180: | ||
Mit dieser Datei logge ich die Daten meiner Wolf Solaranlage (SM1) und Wolf Regler (KM1) und speichere alle 20 Minuten einen Datensatz für spätere Auswertungen und grafische Darstellung. | Mit dieser Datei logge ich die Daten meiner Wolf Solaranlage (SM1) und Wolf Regler (KM1) und speichere alle 20 Minuten einen Datensatz für spätere Auswertungen und grafische Darstellung. | ||
- | < | + | |
+ | < | ||
+ | ; Datenbankanbindung | ||
; Sollte keine Access-MDB verwendet werden, dann hier den Connectionstring eintragen | ; Sollte keine Access-MDB verwendet werden, dann hier den Connectionstring eintragen | ||
; (siehe www.connectionstrings.com) | ; (siehe www.connectionstrings.com) | ||
Zeile 306: | Zeile 357: | ||
CheckChanges'' | CheckChanges'' | ||
NextWrite'' | NextWrite'' | ||
- | LastCmd'' | + | LastCmd'' |
- | </ | + | </ |
- | + | ||
- | <div style''" | + | |