Beide Seiten der vorigen Revision
Vorhergehende Überarbeitung
Nächste Überarbeitung
|
Vorhergehende Überarbeitung
|
wiki:ems:net_io [2014/06/09 22:05] karlmw [Adapter] |
wiki:ems:net_io [2015/04/09 09:22] ingof |
====== EMS > Adapter > NetIO > Raspi ====== | ====== EMS <> Adapter <> NetIO <> Raspi ====== |
| |
Wer zu den bedauernswerten Menschen gehört, die von IngoF kein Gateway abbekommen haben, muss dennoch nicht verzweifeln. ;-) \\ | Wer zu den bedauernswerten Menschen gehört, die von IngoF kein Gateway abbekommen haben, muss dennoch nicht verzweifeln. ;-) \\ |
\\ | \\ |
N.b.: Selbst Ingos EMS-GW kann mit der [[wiki:ems:firmware21|Firmware 2.1.1]] und einem ENC28J60 Netzwerkmodul verwendet werden. So kann man auch über das EMS-GW das neue [[wiki:ems:net_io#neues_frontend|Frontend]] von Moosy benutzen. | N.b.: Selbst Ingos EMS-GW kann mit der [[wiki:ems:firmware21|Firmware 2.1.1]] und einem ENC28J60 Netzwerkmodul verwendet werden. So kann man auch über das EMS-GW das neue [[wiki:ems:net_io#neues_frontend|Frontend]] von Moosy benutzen. |
| |
| ===== Schema ===== |
| Vorab eine Schemazeichnung zum besseren Verständnis: |
| <file> |
| +---------+ +---------+ +-------+ |
| | Buderus |---EMS-RC-(2pol)---| Adapter |---(10pol)---| NetIO |---LAN--> |
| +---------+ +---------+ +-------+ |
| |
| +---------+ |
| | Raspi |---LAN--> |
| +---------+ |
| </file> |
| |
===== Adapter ===== | ===== Adapter ===== |
==== Hardware ==== | ==== Hardware ==== |
Wie in der Überschrift bereits angedeutet, braucht es zunächst einen Adapter, der die EMS-Signale für den UART des NetIO aufbereitet. Wir bedienen uns hier [[http://www.mikrocontroller.net/topic/141831#1976381|Niffkos Schaltplan]]. Hinzu kommen noch einige Leds zur Signalisierung der empfangenen / gesendeten Telegramme, ein Wannenstecker für die Verbindung zum NetIO und unser neuer Schaltplan liest sich wie folgt:{{:wiki:ems:ems-netio.png}} | Wie oben bereits angedeutet, braucht es zunächst einen Adapter, der die EMS-Signale für den UART des NetIO aufbereitet. Wir bedienen uns hier [[http://www.mikrocontroller.net/topic/141831#1976381|Niffkos Schaltplan]]. Hinzu kommen noch einige Leds zur Signalisierung der empfangenen / gesendeten Telegramme, ein Wannenstecker für die Verbindung zum NetIO und unser neuer Schaltplan liest sich wie folgt:{{:wiki:ems:ems-netio.png}} |
Alle Verbindungen zwischen Adapter und NetIO (Ext) verlaufen über die 2x 5 poligen Pfostenbuchsen. Außerdem wurde die 1-Wire-Schnittstelle des NetIO herausgeführt. Bei diskretem (through hole) Aufbau können die vier parallelen Widerstände im Sendeteil mit jeweils 910R problemlos gegen einen 1-Watt Widerstand mit 220R getauscht werden. Wer Strom sparen will, wählt höhere Vorwiderstände für die Leds. \\ | Alle Verbindungen zwischen Adapter und NetIO (Ext) verlaufen über die 2x 5 poligen Pfostenbuchsen. Außerdem wurde die 1-Wire-Schnittstelle des NetIO herausgeführt. Bei diskretem (through hole) Aufbau können die vier parallelen Widerstände im Sendeteil mit jeweils 910R problemlos gegen einen 1-Watt Widerstand mit 220R getauscht werden. Wer Strom sparen will, wählt höhere Vorwiderstände für die Leds. \\ |
Eine Eagle-Schaltplanvorlage gibt es {{:wiki:ems:ems-avr-io-20130118a.zip|hier}}, eine [[https://github.com/mpue/blackboard|"Blackboard Breadboard Designer"]] Vorlage für den diskreten Aufbau auf Lochrasterplatine findet sich {{:wiki:ems:ems-netio-20131010.zip|hier}}. Die Platinenmaße entsprechen denen des NetIO, so daß die beiden Platinen "gesandwiched" werden können. \\ | Eine Eagle-Schaltplanvorlage gibt es {{:wiki:ems:ems-avr-io-20130118a.zip|hier}}, eine [[https://github.com/mpue/blackboard|"Blackboard Breadboard Designer"]] Vorlage für den diskreten Aufbau auf Lochrasterplatine findet sich {{:wiki:ems:ems-netio-20131010.zip|hier}}. Ein Reichelt Warenkorb (Stand: Juni 2014) verbirgt sich [[https://secure.reichelt.de/index.html?&ACTION=20&AWKID=1000020&PROVID=2084|hier]]. Wer den AVR-Net-IO bei Pollin bestellt, bekommt die Bauteile in der Regel auch dort. Die Platinenmaße entsprechen denen des NetIO, so daß die beiden Platinen "gesandwiched" werden können. \\ |
Hier die Vorder- und Rückseite (nicht gepiegelt!) der Lochrasterplatine: \\ | Hier die Vorder- und Rückseite (nicht gespiegelt!) der Lochrasterplatine: |
{{:wiki:ems:front.png?70 }} {{:wiki:ems:back.png?70 }} | \\ |
| {{:wiki:ems:front.png?70 }} {{:wiki:ems:back.png?70 }} |
| \\ |
| \\ |
| \\ |
| (Achtung Fehlerteufel: Die Anoden von D1 und D3 müssen beide mit GND verbunden sein. Siehe Detailbild. Danke für den Hinweis, Lorgru!) |
| {{:wiki:ems:platine_front.png?70|}} |
\\ | \\ |
\\ | \\ |
\\ | \\ |
So, oder so ähnlich sieht die {{:wiki:ems:ems-adapter.jpg?70 }} fertige Platine aus. Genügend Platz für überdimensionierte Bauteile aus der Bastelkiste ist jedenfalls vorhanden und die drei Leds haben sich auf dem Photo hinter dem Kabel versteckt. m( \\ \\ | So, oder so ähnlich sieht die {{:wiki:ems:ems-adapter.jpg?70 }} fertige Platine aus. Genügend Platz für überdimensionierte Bauteile aus der Bastelkiste ist jedenfalls vorhanden und die drei Leds haben sich auf dem Photo hinter dem Kabel versteckt. m( \\ \\ |
| \\ |
| \\ |
| Maciej Piliński hat sich die Mühe gemacht und eine Eagle-Vorlage entworfen. Näheres samt Download findet Ihr im Thread unter: [[http://www.mikrocontroller.net/topic/318364#3610939]]. |
===== NetIO ===== | ===== NetIO ===== |
==== Hardware ==== | ==== Hardware ==== |
(ff) Extended Fuse Byte (EFB) | (ff) Extended Fuse Byte (EFB) |
</file> | </file> |
| Achtung: Die "Status LEDs" im "General Setup" sind erst vollständig aktivierbar, nachdem der "EMS Support" unter "Protocols" aktiviert wurde. |
| \\ |
| \\ |
Nach Abschluß der Konfiguration sollte ein //**"make show-config"**// das Folgende zeigen: | Nach Abschluß der Konfiguration sollte ein //**"make show-config"**// das Folgende zeigen: |
| |
* http://192.168.0.0/ecmd?mac "neue MAC" (ohne "", die MAC Eures NetIO findet Ihr auf dem Aufkleber des mitgelieferten ATMega32)\\ | * http://192.168.0.0/ecmd?mac "neue MAC" (ohne "", die MAC Eures NetIO findet Ihr auf dem Aufkleber des mitgelieferten ATMega32)\\ |
* http://192.168.0.0/ecmd?ip "neue IP" (ohne "").\\ | * http://192.168.0.0/ecmd?ip "neue IP" (ohne "").\\ |
| * http://192.168.0.0/ecmd?gw "Eure Gateway IP" (ohne "").\\ |
| |
Ein ".../ecmd?help" zeigt alle verfügbaren Befehle, weitere Hinweise zur "ecmd" Syntax findet Ihr [[http://www.ethersex.de/index.php/ECMD_Reference|hier]]. | Ein ".../ecmd?help" zeigt alle verfügbaren Befehle, weitere Hinweise zur "ecmd" Syntax findet Ihr [[http://www.ethersex.de/index.php/ECMD_Reference|hier]]. |
Fuse Low Byte (FLB) = e7, Fuse High Byte (FHB) = dc, Extended Fuse Byte (EFB) = ff. | Fuse Low Byte (FLB) = e7, Fuse High Byte (FHB) = dc, Extended Fuse Byte (EFB) = ff. |
| |
| Testtool |
| ==== Testtool für collector ==== |
| Es gibt auch ein kleines [[wiki:ems:software_download|Testtool]] um die Verbindung zum EMS-Bus über den NetIO zu testen. |
| |
===== Raspberry Pi ===== | ===== Raspberry Pi ===== |
| |
Hier werkelt ein **Raspbian**. Das hat den Vorteil, dass nicht viel konfiguriert und gebastelt werden muss und man sich aus den Wheezy-Quellen bedienen kann. Den Download gibt's [[http://www.raspberrypi.org/downloads|hier]]. | Hier werkelt ein **Raspbian**. Das hat den Vorteil, dass nicht viel konfiguriert und gebastelt werden muss und man sich aus den Wheezy-Quellen bedienen kann. Den Download gibt's [[http://www.raspberrypi.org/downloads|hier]]. |
Als Webserver empfehle ich [[http://www.lighttpd.net/|Lighttpd]], der ist klein und dennoch performant. Wie der auf dem Raspi installiert wird, findet sich [[http://www.penguintutor.com/linux/light-webserver|hier]]. | |
Die Einrichtung von lighttpd ist in [[http://www.cyberciti.biz/tips/lighttpd-php-fastcgi-configuration.html|Lighttpd PHP fastcgi configuration]] beschrieben. Wenn der Raspi mit der Standardsoftware läuft, holen wir uns noch folgende Bibliotheken: | Wenn der Raspi mit der Standardsoftware läuft, holen wir uns noch folgende Bibliotheken: |
<code> | <code> |
root> apt-get update | root> apt-get update |
</code> | </code> |
| |
Zum Einsatz für EMS kommt wieder mal Dannys Software, die gibt es per git bei [[http://github.com/maniac103/ems-collector|GitHub]], oder als [[https://github.com/maniac103/ems-collector/archive/master.zip|Download.(zip)]]. | (Anm.: Bei einigen läuft es nur mit der libboost1.49-all. Fragt mich nicht warum. :?:) |
| |
| Als Webserver empfehle ich [[http://www.lighttpd.net/|Lighttpd]], der ist klein und dennoch performant. Wie der auf dem Raspi installiert wird, findet sich [[http://www.penguintutor.com/linux/light-webserver|hier]]. |
| Die Einrichtung von lighttpd ist in [[http://www.cyberciti.biz/tips/lighttpd-php-fastcgi-configuration.html|Lighttpd PHP fastcgi configuration]] beschrieben. |
| |
| Zum Einsatz für EMS kommt wieder mal Dannys Software, die gibt es per git bei [[https://github.com/maniac103/ems-collector|GitHub]], <code>git clone git://github.com/maniac103/ems-collector</code> oder als [[https://github.com/maniac103/ems-collector/archive/master.zip|Download.(zip)]]. |
| |
Im Verzeichnis "ems-collector-master" findet Ihr die Ordner "collector", "framer", "tools" und "webpage". Den "framer" brauchen wir hier nicht, den haben wir mit Ethersex auf den NetIO schon abgefrühstückt. | Im Verzeichnis "ems-collector[-master]" findet Ihr die Ordner "collector", "framer", "tools" und "webpage". Den "framer" brauchen wir hier nicht, den haben wir mit Ethersex auf den NetIO schon abgefrühstückt. |
| |
Im Ordner "collector" liegen die ems-collector Quelldateien. Ein **//"make"//** sollte die ausführbare Datei "collectord" erzeugen. Bis der Raspberry das erledigt hat, könnt Ihr Euch eine Tasse Kaffee genehmigen. ;-) | Im Ordner "collector" liegen die ems-collector Quelldateien. Ein **//"make"//** sollte die ausführbare Datei "collectord" erzeugen. Bis der Raspberry das erledigt hat, könnt Ihr Euch eine Tasse Kaffee genehmigen. ;-) |
| |
Zur Konfiguration des ems-collector kopieren wir die Datei "ems-collector-master/tools/ems-collector.default" nach "/etc/default", benennen sie um in "ems-collector" und ändern den Inhalt wie folgt, nicht ohne vorher die mysql-Anmeldeparameter zu ändern: | Zur Konfiguration des ems-collector kopieren wir die Datei "ems-collector-master/tools/ems-collector.default" nach "/etc/default", benennen sie um in "ems-collector" und ändern den Inhalt wie folgt, nicht ohne vorher die mysql-Anmeldeparameter zu ändern: |
| |
<file> | <file> |
# Defaults file for EMS collector daemon | # Defaults file for EMS collector daemon |
# if you need further configuration | # if you need further configuration |
# config file location | # config file location |
# CONFIGFILE="/etc/ems-collector.conf" | CONFIGFILE="/etc/ems-collector.conf" |
| |
# Serial device file | # Serial device file |
# SERIALDEVICE="/dev/ttyUSB0" | # SERIALDEVICE="/dev/ttyUSB0" |
| SERIALDECIVE="tcp:192.168.XXX.XXX" |
| |
# Where to put the PID file | # Where to put the PID file |
# Other options -- command-port, data-port, db-user, db-pw, rate-limit (s) to write to db, target | # Other options -- command-port, data-port, db-user, db-pw, rate-limit (s) to write to db, target |
# For debugging purposes insert "-d all=/var/log/ems-collector.log" before "tcp:...." | # For debugging purposes insert "-d all=/var/log/ems-collector.log" before "tcp:...." |
OPTIONS="-C 7777 -D 7778 -u ems -p password -r 60 tcp:192.168.xxx.xxx:7950" | # OPTIONS="-C 7777 -D 7778 -u ems -p geheim-r 60 tcp:192.168.xxx.xxx:7950" |
</file> | OPTIONS="" |
| </file> |
| |
| In dieser Datei können auch alle Parameter im bei den OPTIONS übergeben werden. Um Konfigurationsproblemen aus dem Weg zu gehen muss eine zweite Konfigurationsdatei erstellt werden. Der Speicherort ist "/etc/ems-collector.conf". |
| |
| <file> |
| ratelimit = 120 |
| #db-path = 192.168.XXX.XXX:3306 |
| #db-path = localhost:3306 |
| db-user = ems |
| db-pass = geheim |
| command-port = 7777 |
| data-port = 7778</file> |
| |
| Hier kann auch die Adresse des MySQL angegeben werden. Moosys Frontend muss bisher noch auf dem selben Server wie die MySQL-Datenbank liegen. |
| |
Damit der ems-collector nach einem Neustart des Raspberry auch anläuft oder auf Befehle hört, wie: \\ | Damit der ems-collector nach einem Neustart des Raspberry auch anläuft oder auf Befehle hört, wie: \\ |