eBus Schaltung Rpi in Betrieb nehmen!

Begonnen von Reinhart, 19 Februar 2018, 19:38:23

Vorheriges Thema - Nächstes Thema

Reinhart

Rpi Platine für eBus Inbetriebnahme!

Hallo,

da es nun Dank Galileo endlich möglich wurde die interne serielle Schnittstelle des Raspi zu nutzen, hier der Unterstützungsthread zur Inbetriebnahme des Rpi Bausatzes.

Im Prinzip bleibt alles so wie bei der V 2.0, lediglich der Unterschied das hier nun ein Dc-Wandler eingesetzt wurde und somit die Platine auf die höchste Klasse nach der Spezifikation empor rückt und auch hartnäckige Fälle abdecken sollte. Chons hat die Platine so gestaltet, das die auch ohne DC-Wandler in Betrieb genommen werden kann.

Achtung, nur verbleites Zinn verwenden!

Achtung: ohne DC-Wandler auf keinen Fall C3 einlöten, sonst wird das eBus Signal verschliffen und die Schaltung funktioniert nicht! Ebenso darf der Jumper SJ2 nicht gesetzt sein wenn der DC-Wandler eingebaut ist!

mit    DC-Wandler Jumper SJ1 offen und C3 eingelötet
ohne DC-Wandler Jumper SJ1 geschlossen aber ohne C3


Verzicht des DC-Wandlers bei der V2.2

Treiberinstallation

Bevor die Schaltung in Betrieb genommen werden kann, muss bei der Rpi Platine der Treiber installiert werden.
Dazu den neuen eBus Treiber von Galileo Github laden. Im Augenblick ist Version 1.4 aktuell und läuft auf Raspi 1, 2 und 3! Getestet wurde unter Jessie und Stretch! Hier hat ein Anwender den Treiber auf dem Raspberry Zero eingerichtet.
Bitte unbedingt die Installationsanleitung beachten und den alten Treiber deaktivieren. Dazu "raspi-config" und den "Serial Port" deaktivieren, sonst kann der Treiber nicht funktionieren da er ersetzt werden muss.


# AMA0 Treiber Service deaktivieren
sudo raspi-config , zuerst hier den Serial Port deaktivieren
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

Deaktivierung des AMA0 Treiber

Kurzanleitung ttyeBus Treiber

sudo echo "dtoverlay=pi3-miniuart-bt" >> /boot/config.txt

(nur) beim Raspi3 zunächst den UART und MINI Uart umleiten:
sudo apt-get update sudo apt-get -y upgrade
sudo apt-get install raspberrypi-kernel-headers
cd ~ git clone https://github.com/ebus/ttyebus.git
cd ~/ttyebus make
sudo make install
lsmod modinfo ttyebus


Nach erfolgreiche Installation muss dann der Treiber "ttyebus" sichtbar sein und AMA0 verschwunden sein!

Zitatpi@raspberrypi:~ $ lsmod
Module                  Size  Used by
cfg80211              527100  0
rfkill                 21373  2 cfg80211
snd_bcm2835            23131  0
snd_pcm                97825  1 snd_bcm2835
snd_timer              22706  1 snd_pcm
snd                    68784  3 snd_timer,snd_bcm2835,snd_pcm
i2c_bcm2835             6433  1
bcm2835_gpiomem         3791  2
w1_gpio                 4566  0
uio_pdrv_genirq         3718  0
uio                    10166  1 uio_pdrv_genirq
fixed                   3029  0
w1_therm                5969  0
wire                   31801  2 w1_gpio,w1_therm
cn                      5860  1 wire
ttyebus                 5666  1
i2c_dev                 6642  2
ip_tables              12512  0
x_tables               20921  1 ip_tables
ipv6                  384613  41
pi@raspberrypi:~ $
Die Installation sollte vor der Inbetriebnahme der Platine erfolgt sein!
Bitte ebenfalls gegenchecken mit
ls -l /dev
ttyebus muss auftauchen, AMA0 muss verschwunden sein!



In der EBUSD_OPTS (etc/default/ebusd) sollte dann "ttyebus" verwendet werden.


EBUSD_OPTS="-d /dev/ttyebus -p 8888 -l /var/log/ebusd.log --scanconfig --httpport=8080 --mqttport=1883 --mqttjson --mqtthost=10.0.0.5 --mqtttopic=ebusd/%name"

Beispiel der EBUSD_OPTS

Bei den Bauteilen befinden sich 2 Keramik Kondensatoren, der blaue hat den Wert 100nF = C2 und der braune ist 1 bzw. 2uF = C3(siehe Foto) für den DC-Wandler.

Bei den Rpi Bausätzen liegen 2 Printklemmen dabei, die höhere kann nur eingesetzt werden wenn genug Platz vorhanden ist, das hängt von eurem Gehäuse ab. Ansonsten die kleine flachere (schwarz) verwenden.

Bei den Mini-Uarts liegt jetzt vom Hersteller eine gewinkelte Stiftleiste bei. Bitte diese nicht einlöten, das passt NICHT. Ich habe daher den Bausätzen eine zusätzliche Stiftleiste beigelegt, die ist für diesen Uart gedacht! Das betrifft aber nur die V 2.1 und nicht die Rpi!


Bauteileliste
C1        10uF           Elektrolytkondensator    (schwarz)
C2        100nF          keramischer Kondensator (blau)
C3        2,2uF          keramischer Kondensator  (braun)
D1        1N4007         Diode               
D2        1N4007         Diode               
D3        1N4007         Diode               
D4        1N4007         Diode               
D5        ZPY 9.1V 1.3W  Zenerdiode                             
IC1       TLC393CP       Operationsverstärker           
IC2       78L05Z         Spannungsregler                       
LED1      RX  grün       LED 3MM           
LED2      TX  rot        LED 3MM           
LED3      PWR gelb       LED 3MM           
OK1       CNY17-4        Optokoppler             
OK2       CNY17-4        Optokoppler           
Q1        BC337-40       Transistor             
R1        390            R-EU_0207/10     
R2        220            Widerstand
R3        100k           Widerstand
R4        22k            Widerstand
R5        470            Widerstand
R6        470            Widerstand
R7        18k            Widerstand
R8        15k            Widerstand     
R9        220k           Widerstand
R10       4,7k           Widerstand     
R11       820            Widerstand
R12       10k            Widerstand
R13       1,2k           Widerstand
R14       220            Widerstand
RNM-0512S                DC-Wandler         
RPIGPIO   JP3            Pfostenstecker       
JP2-7                    Stiftleisten 1-2pol 
SJ1                      Löt Jumper               
EBUS      eBus           Printklemme
EBUS2                    Printklemme Waggo               
I2C1                     Stiftleiste 4-pol         
I2C2                     Stiftleiste 4-pol


Schaltplan Rpi

MQTT2 Beispiele Konfiguration

Wemos oder UART am RPI-Adapter

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#1
Durch Einsatz dieser Steckplatine ergeben sich sehr viele praktische Möglichkeiten, denn chons hat die Platine mit den wichtigsten Schnittstellen wie 1-Wire und I2C ausgestattet.

Mit 1-Wire könnt ihr nun direkt an der Platine Temperatursensoren des Typ DS18b20 anschließen und damit Temperaturen an Rohren eurer Heizungsanlage bequem erfassen und auswerten.

#################################################
#            1-Wire Komponenten
#################################################
# Modul 58_GPIO4.pm aus dem contrib Verz. nach /opt/fhem/FHEM kopieren.
# /boot/config.txt
# activating 1-wire with pullup
# dtoverlay=w1-gpio-pullup

#ls /sys/bus/w1/devices/
#pi@raspberrypi:/opt/fhem $ ls /sys/bus/w1/devices/
#28-0417c1d99bff  w1_bus_master1

define RPi GPIO4 BUSMASTER
attr RPi room 1-wire

define Temp_DS18b20 GPIO4 28-0417c1d99bff
attr Temp_DS18b20 group 1-wire
attr Temp_DS18b20 model DS18B20
attr Temp_DS18b20 pollingInterval 300
attr Temp_DS18b20 room 1-wire



Mit dem I2C Bus kann auch weiterhin der BME280 verwendet oder ein Oled angeschlossen werden, es eröffnen sich somit sehr viele Kombinationen.

########
# I2C
########
define i2c RPII2C 1
attr i2c group I2C
attr i2c room I2C

##########
# BMP180
##########
# sudo adduser fhem i2c

define BME280 I2C_BME280
attr BME280 IODev i2c
attr BME280 group I2C
attr BME280 poll_interval 2
attr BME280 room I2C

define FileLog_BME280 FileLog ./log/BME-%Y.log BME280:(temperature|humidity|pressure).*
attr FileLog_BME280 logtype text
attr FileLog_BME280 room I2C

Beispiel einer Konfiguration des Temperatur Sensors BME280 über I2C in FHEM.
Die hier gezeigten Beispiele führen dann zu den Plots in den angehängten Bildern.

Bitte nicht zu vergessen, voher am Raspi mit "raspi-config" 1-wire und i2c zu aktiveren!

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#2
ebenfalls eine gute Möglichkeit ist es, die Rpi Platine in ein Hutschienen Gehäuse einzubauen!
Der Vorteil liegt hier, dass man hier sehr viel mehr Platz hat und noch einige Erweiterungen wie ein Oled einbauen könnt.

Das Oled kann entweder über ein installiertes Fhem angesteuert, aber wer dies nicht vorhat kann es auch direkt vom Raspi über ein kleines Python Programm (Ergebnis siehe Bilder) realisieren. Dazu werde ich aber einen eigenen Beitrag schreiben, da speziell bei Python einges an Librarys installiert werden muss. Was letztlich auf dem Oled Display landen soll, ist natürlich eurer Phantasie überlassen. Es funktionieren alle Readings die in FHEM vorhanden sind. Fhem muss dabei nicht auf diesem Raspi laufen und es wird Remote zugegriffen.

Wie hier auf den Fotos zu sehen, wurde auch mit dem eingebauten roten Taster der Anschluß des Gpio24 an der Platine genutzt. Die Anzeige aller Messdaten (es können beliebig viele eingebaut werden) wird hier 5 x durchlaufen und dann schläft das Oled ein. Durch Tastendruck wird es dann wieder geweckt.

Aber vorerst geht es mir darum um die neuen Möglichkeiten der Rpi Platine aufzuzeigen!

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

erster Treibertest!

Nach erfolgreicher Treiberinstallation könnt ihr ohne eBus den Treiber schon mal testen.
Öffnet einfach eine Konsole und gebt folgendes ein:

echo "das ist ein Sendetest" >/dev/ttyebus

Die Sendeled (mittlere Led 2) muss am Rpi jetzt kurz aufblitzen!

Wenn kein eBus angeschlossen ist, müssen die beiden äußeren Leds (Led 1 + 3) permanent leuchten.

LG
Reinhart


FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#4
Heizkurve farbig in Grafik darstellen!

Eine kleine Anregung was man alles mit den eBus-Daten anstellen kann.

Ich habe mich schon lange geärgert, dass meine Kenntnisse in HTML nicht ausreichen die eingestellte Heizkurve farbig in einer Grafik darzustellen. Ich habe daher eine ganz primitive Möglichkeit angewendet um das trotzdem zu realisieren indem ich vorgezeichnete eingefärbte Kurven als Bilder lade.

define Kurve weblink htmlCode {Heizkurve_URL()}
attr Kurve group Heizkurve_Grafik
attr Kurve htmlattr width="630" height="282"
attr Kurve room Vaillant

das ist die ganze Definition des Weblink Aufrufes.

sub Heizkurve_URL() {
  my $heizkurve = ReadingsVal("HKurve", "HKurve", "1.00");
  my $erster = '<tr class="odd"><td informId="Kurve" colspan="2"><img src="http://10.0.0.5:8083/fhem/YAF/www/global/img/Heizkurve';
  my $zweiter = '.png" width="630" height="282"><br></td>';
  my $url = "$erster$heizkurve$zweiter";
  return $url;
}

Perl Code in der 99_myUtils.pm. Der Trick ist einfach der, je nach ausgelesener Heizkurve vom eBus das entsprechende Bild als Grafik zu laden.
Die Files heißen dann Heizkurve0.2.png - Heizkurve1.5.png. Die Ip-Adresse und das Verzeichnis muss euren Gegebenheiten angepasst werden.
Ich bin mit 10 Bildern ausgekommen.

LG
Reinhart


FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

aia

so ... dann werde ich mal den anfang machen :)

der RPi ist zusammengebaut, hat alles wunderbar funktioniert - nur der abstandhalter geht ein wenig zäh durch das loch.

vor der "hochzeit" hab ich meinen raspberry pi 3 lt. anleitung vorbereitet.
nachdem ich openhabian verwende, hab ich die serial ports über openhabian-config disabled
(->30 System Setting -> 35 Serial Port: alle 3 Optionen auswählen).
im hintergrund wird dabei folgendes ausgeführt:

$ systemctl stop serial-getty@ttyAMA0.service
$ systemctl disable serial-getty@ttyAMA0.service
$ systemctl stop serial-getty@serial0.service
$ systemctl disable serial-getty@serial0.service
$ systemctl stop serial-getty@ttyS0.service
$ systemctl disable serial-getty@ttyS0.service

das update der config.txt wird durch openhabian-config gleich mitgemacht.
(Adding 'dtoverlay=pi3-miniuart-bt' to /boot/config.txt (RPi3))

alles weitere kernel headers, ttyebus installieren geht wieder 1:1 nach anleitung.

im test hab ich den ebus natürlich noch nicht angeklemmt, deshalb leuchtet die LED 1 und 3 wie erwartet dauerhaft.
der schreibtest auf das device ist auch erfolgreich, die LED2 flackert immer kurz auf.

soweit - alles perfekt.

was mich jedoch nachdenklich stimmt ist das ls -l /dev

lrwxrwxrwx 1 root root           7 Mär  7 07:59 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root           5 Mär  7 07:59 serial1 -> ttyS0
crw-rw---- 1 root dialout 204,  64 Mär  7 07:59 ttyAMA0
crw-rw-rw- 1 root root     10,  58 Mär  7 07:59 ttyebus


lt. Anleitung müsste der ttyAMA0 verschwunden sein, er ist leider immer noch sichtbar.
im lsmod scheint der ttyAMA0 hingegen nicht auf.

weiters ist scheinbar zumindest in der openhab ebus config noch keine auswahl vom /dev/ttyebus möglich,
dies kläre ich aber mit dem entwickler  und gebe hier bescheid sobald sich was tut.

LG

Reinhart

#6
Hallo,

ja das mit dem Abstandshalter habe ich vergessen zu erwähnen, das Loch mit einem 3,5mm Bohrer etwas zu erweitern, dann geht das ganz leicht durch!

Der AMA0 muss unbedingt verschwinden, sonst kommen sich die Treiber ins Kreuz!
Ich kenn jetzt dein System nicht, aber wenn du die serielle Einrichtung alles "disabled" hast, dann schau doch einmal in die Bootconfigs (cmdline.txt) ob da wo ein serielles Logging noch aktiviert ist (console=serial0,115200 oder console=ttyAMA0) und entferne alle Einträge dazu und dann einen Neustart.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

aia

Hi,
in der cmdline.txt hab ich unter console "tty1" eingetragen
das dürfte aber passen - oder?

System basiert auf Raspbian Stretch Lite

LG

Reinhart

Ja das passt.

meine cmdline.txt sieht so aus, habe auch Stretch Lite
dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=71510238-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

crw--w---- 1 root tty      4,   9 Feb 25 10:44 tty9
crw-rw-rw- 1 root root    10,  58 Feb 25 10:44 ttyebus
crw------- 1 root root     5,   3 Feb 25 10:44 ttyprintk
crw------- 1 root root    10, 239 Feb 25 10:44 uhid
crw------- 1 root root    10, 223 Feb 25 10:44 uinput

und so ls -l /dev

Eigentlich sollte mit raspi-config und Interfacing Options/ P6 Serial  und 2 x "nein" alles erledigt sein.

LG
Reinhart


FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

pc1246

Zitat von: Reinhart am 07 März 2018, 09:17:55
Hallo,

ja das mit dem Abstandshalter habe ich vergessen zu erwähnen, das Loch mit einem 3,5mm Bohrer etwas zu erweitern, dann geht das ganz leicht durch!

...

LG

Wo kommt der denn eigentlich  rein? (RPI oder Platine?)

Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

aia

Zitat von: pc1246 am 07 März 2018, 11:14:31
Wo kommt der denn eigentlich  rein? (RPI oder Platine?)

Gruss Christoph
von unten durch die ebus RPi Platine, damit diese nicht unabsichtlich mit dem Raspberry Kontakt bekommt.
Alternativ gibt es auch Raspberry Cases die sowas verhindern.

pc1246

Zitat von: aia am 07 März 2018, 14:23:53
von unten durch die ebus RPi Platine, damit diese nicht unabsichtlich mit dem Raspberry Kontakt bekommt.
Alternativ gibt es auch Raspberry Cases die sowas verhindern.
Moin
Wozu das ist, war mir klar. Ich hatte mich nur an die Bilder von Chons erinnert, und da war eine Schraube zu sehen! Aber ich habs jetzt oben im Thread bei Reinhart gesehen, da ist der Fuss zu sehen!
Danke und Gruss
Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

Reinhart

Chons hatte das ursprünglich mit der Schraube und einem Abstandshalter gemacht. Da diese Plasitkschrauben aber nicht so leicht (nur 5mm lang) aufzutreiben sind, habe ich diese Abstandshalter dazu gelegt. Das geht sogar einfacher zu montieren und kann auch leicht gekürzt werden wenn das Gehäuse einen Zwischenboden hat.

Ein entsprechendes Gehäuse mit Zwischenboden hilft nicht viel, weil die Platine ja beim durchdrücken am HDMI Stecker den Kurzschluss machen würde.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#13
wenn sich wer wundert, der "komische Kugelschreiber" mit dem Kabel dran ist ein wasserdichter DS18b20 Temperaturfühler, den habe ich bei den Rpi Bausätzen (wenn es in die Packung ging) als Beilage dazu gelegt!

Den könnt ihr idealerweise direkt an Rohre mit einer Schelle (oder Kabelbinder) montieren um die Temperatur zu erfassen. Wärmeleitpaste wäre von Vorteil.

Beispiel ist oben.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

jkyprian

Hallo zuammen!

Ich hab inzwischen den eBus Rpi Adapter erfolgreich in Betrieb genommen. Allerdings verliert ebusd nach einigen Stunden die Verbindung zum Bus ("no signal"). Wenn ich den Rpi neu boote dann geht es wieder. Die Heizungsgeräte sind nicht betroffen. Habt Ihr vielleicht einen Tipp?

Viele Grüße
Jan Eric
Raspberry Pi 3 + KNX