Läuft: Heizung mit eBus-Schnittstelle

Begonnen von Prof. Dr. Peter Henning, 29 November 2014, 13:36:59

Vorheriges Thema - Nächstes Thema

TiPpFeHlEr

ZitatDu kannst ja mal in src/ebusd/main.cpp Zeile 389 noch eine 0 an die 100000 dranhängen und dann höhere Werte probieren.
hmmm... das würde bedeuten ich müsste ebusd neu kompilieren!?
das geht bei mir nicht. Ich musste die *.deb benutzen auf meinem pi, da etwas fehlt.
meine gcc-g++
version ist zu alt und kann auf diesem system nicht aktuallisiert werden.
versucht hatte ich pi@ospi ~ $ git clone https://github.com/john30/ebusd.git

dann pi@ospi ~ $ ./autogen.sh
dort hies es checking for g++-6... no
checking for g++-5... no
checking for g++-4.9... no
checking for g++-4.8... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=gnu++11... no
checking whether g++ supports C++11 features with -std=gnu++0x... no
configure: error: *** A compiler with support for C++11 language features is required.


mfg maik

erwin

Hi John,
erstmal Danke und große Bewunderung für deine Arbeit!
Eine Bitte hab ich:
könntest du bei der Überarbeitung der config-csv's noch das device e1 einfügen? Ich hab da 2 Ausseneinheiten und das bisher über symlinks gelöst (siehe config)
Ich bin am Umstieg auf V3.0 und da bin ich wieder drüber gestolpert.....
version: ebusd 2.1.422b8d6
signal: acquired
symbol rate: 27
masters: 3
messages: 1064
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/08.ehp.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=UIH00;SW=0374;HW=6901", loaded "vaillant/15.uih.csv"
address 23: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/23.ehp.cc.csv"
address 25: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/25.ehp.hwc.csv"
address 31: master #8, ebusd
address 36: slave #8
address 50: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/50.ehp.mc.csv"
address 52: slave, scanned "MF=Vaillant;ID=MC2  ;SW=0500;HW=6301", loaded "vaillant/52.mc2.mc.4.csv"
address 53: slave, scanned "MF=Vaillant;ID=MC2  ;SW=0500;HW=6301", loaded "vaillant/53.mc2.mc.5.csv"
address e0: slave, scanned "MF=Vaillant;ID=OMU00;SW=0118;HW=5202", loaded "vaillant/e0.omu.0.csv"
address e1: slave, scanned "MF=Vaillant;ID=OMU00;SW=0118;HW=5202", loaded "vaillant/e1.omu.1.csv"

Herzlichen Dank
erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

john30

Zitat von: TiPpFeHlEr am 23 September 2017, 12:05:05
hmmm... das würde bedeuten ich müsste ebusd neu kompilieren!?
das geht bei mir nicht. Ich musste die *.deb benutzen auf meinem pi, da etwas fehlt.
Dann lass uns mal in die Trickkiste greifen:
Nimm mal noch --latency=100000 dazu, dann ist alles mit zusätzlicher Verzögerung von weiteren 100 ms erlaubt. --latency akzeptiert bis zu 200ms.
author of ebusd

john30

Zitat von: erwin am 23 September 2017, 22:38:03
könntest du bei der Überarbeitung der config-csv's noch das device e1 einfügen? Ich hab da 2 Ausseneinheiten und das bisher über symlinks gelöst (siehe config)
kein Thema, ist jetzt schon im 2.1.x Pfad als Symlink auf die e0.omu.csv drin.
author of ebusd

Mirko_2013

Zitat von: john30 am 21 September 2017, 08:29:22
das Problem mit dem VR32 ist, dass sich das Gerät als Bridge zu einem weiteren eBUS nicht an die standardisierten Zeiten der Spezifikation halten kann, denn es werden ja Nachrichten auf einem Bus empfangen, ausgewertet, an den anderen Bus gesendet, die Antwort abgewartet, und dann an den urspr. Bus als Antwort abgegeben.
Hier hilft nur, die Antwortzeit drastisch zu erhöhen mit "--receivetimeout=..." beim ebusd Start, andernfalls kann das gar nicht klappen.

Hallo john30,

Die knotig habe ich eingespielt
Zitat von: john30 am 21 September 2017, 08:18:51
ja klar. für die aktuelle config aus github kannst Du folgendes Kommando benutzen:
svn export --force https://github.com/john30/ebusd-configuration.git/trunk/ebusd-2.1.x/de/ /etc/ebusd/

Die Konfiguration habe ich eingespielt, bei 2 der 3 Geräten wird auch die csv geladen.

broadcast datetime = no data stored
broadcast error = no data stored
broadcast hwcStatus = no data stored
broadcast id = no data stored
broadcast id = no data stored
broadcast load = no data stored
broadcast outsidetemp = no data stored
broadcast signoflife = no data stored
broadcast vdatetime = no data stored
general valuerange = no data stored
hmu ConsumptionThisYear10 = no data stored
hmu ConsumptionThisYear11 = no data stored
hmu ConsumptionThisYear12 = no data stored
hmu ConsumptionThisYear1 = no data stored
hmu ConsumptionThisYear2 = no data stored
hmu ConsumptionThisYear3 = no data stored
hmu ConsumptionThisYear4 = no data stored
hmu ConsumptionThisYear5 = no data stored
hmu ConsumptionThisYear6 = no data stored
hmu ConsumptionThisYear7 = no data stored
hmu ConsumptionThisYear8 = no data stored
hmu ConsumptionThisYear9 = no data stored
hmu ConsumptionTotal = no data stored
hmu currenterror = no data stored
hmu EnergyCool = no data stored
hmu EnergyHc = no data stored
hmu errorhistory = no data stored
hmu Hours = no data stored
hmu HoursCool = no data stored
hmu HoursHc = no data stored
hmu State = no data stored
hmu YieldThisYear10 = no data stored
hmu YieldThisYear11 = no data stored
hmu YieldThisYear12 = no data stored
hmu YieldThisYear1 = no data stored
hmu YieldThisYear2 = no data stored
hmu YieldThisYear3 = no data stored
hmu YieldThisYear4 = no data stored
hmu YieldThisYear5 = no data stored
hmu YieldThisYear6 = no data stored
hmu YieldThisYear7 = no data stored
hmu YieldThisYear8 = no data stored
hmu YieldThisYear9 = no data stored
hmu YieldTotal = no data stored
memory eeprom = no data stored
memory ram = no data stored
scan id = no data stored
scan.05  = no data stored
scan.08  = Vaillant;HMU00;0305;0403
scan.08 id = 21;16;41;0010016421;0006;005625;N5
scan.52  = Vaillant;VR_70;0109;2903
scan.52 id = 21;16;41;0020184843;0082;016043;N2
scan.76  = Vaillant;VWZ00;0305;0403
scan.76 id =  (ERR: invalid position for 3176b5090124 / 00)
vr_70 currenterror = no data stored
vr_70 errorhistory = no data stored
vr_70 SensorData = no data stored

signal: acquired
symbol rate: 23
max symbol rate: 81
reconnects: 0
masters: 4
messages: 66
conditional: 0
poll: 0
update: 8
address 00: master #1
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=HMU00;SW=0305;HW=0403", loaded "vaillant/08.hmu.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 52: slave, scanned "MF=Vaillant;ID=VR_70;SW=0109;HW=2903", loaded "vaillant/52.vr_70.csv"
address 71: master #9
address 76: slave #9, scanned "MF=Vaillant;ID=VWZ00;SW=0305;HW=0403"

Einige der Werte können nicht abgefragt werden.

Ich würde mich gern daran machen, vorerst nur lesend, weitere Register auszulesen und die cdv zu erweitern.
Könnt Ihr mir einen Tip geben wie man am besten an das Thema rangeht, wie die Messages im Log erkannt / zum auslesen herangezogen werden können?

Danke
Mirko
HP Microserver Gen8; fhem-5.8; CUL868 - V1.66; CUL868 - V1.61; CUL433 - V1.61; CUNX - V2.67; eBus Koppler USB

TobiasR

#2360
Hallo,

ich habe an meiner Vaillant Wärmepumpe aroTherm VWL55/3 einen Multimatic 700 Heizungsregler.
Ich ging eigentlich davon aus dass das EBus Protokoll genormt sein müsste und es egal ist welcher Regler daran angeschlossen ist. Zumindest wenn es zunächst nur um das Auslesen der Werte geht.

Hat jemand einen Tipp wie ich die Werte ausgelesen bekomme?
Bisher habe ich nur die folgende Anzeige im FHEM

Tobias

Prof. Dr. Peter Henning

ZitatEBus Protokoll genormt sein
Soso. Von wem denn ?

LG

pah

Sven77

Allein die Formulierung "ich ging davon aus", dann noch ergänzt durch "eigentlich" zeugt doch von Nichtwissen, was keinesfalls zu kritisieren ist sondern für die meisten von uns der Hauptgrund, sich hier ans Forum zu wenden. Wozu also die provokative Gegenfrage??

Tobias,
welche Konfig benutzt Du denn? Zum 700 gibt es doch inzwischen eine recht ausgereifte CSV. Welche Infos möchtest Du denn auslesen?
(Oder geht es um die aroTherm VWL55/3? Auch hier dann aber: welche Werte sind gefragt, was liefert ein 'ebusctl info'?)

Sven
VG, Sven

Reinhart


@TobiasR

Der eBus ist in elektrischer Sicht festgelegt worden, sonst würde eine einheitliche Schnittstellenkommunikation nicht funktionieren. Was ein Low und ein High ist und in welcher Geschwindigkeit das serielle Signal übertragen wird muss daher von allen Anwendern die diesen Bus benutzen eingehalten werden.

Was nun die unterschiedlichen Hersteller von Geräten die diesen Bus verwenden daraus machen ist ihre Sache. Vaillant wird intern sicher Regeln haben wie sie den eBus verwenden. Was sie sich dabei gedacht haben und wie man das jetzt sinnvoll nutzen kann versuchen ja die Entwickler des ebusd zu rekonstruieren um es für uns nutzbar zu machen. eBusd ist alles eine private Entwicklung an der ein paar Leute viel Zeit und Gehirnschmalz hinein gesteckt haben und ihre Erkenntnisse kostenlos zur Verfügung stellen.


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

TobiasR

Hallo Reinhard,
hallo alle anderen,

ich ging bisher davon aus das euch, den Entwicklern, das Protokoll auch Herstellerspezifisch bekannt ist.
Wenn das alles nur dich "Experimentieren" rausgekommen ist, dann habe ich jetzt noch größere Achtung vor euch!

Aber bei den Antworten muss ich davon ausgehen dass ich noch nicht alles was die Konfiguration angeht verstanden habe.

Ganz konkret: Ich ging davon aus dass durch die Kennung der Anlage im Protokoll die richtige CSV identifiziert wird? Muss ich nach deren Installation noch etwas machen?

@Sven777: Aus meiner Frage kannst du ablesen das ich da noch ein Verständnisproblem habe. Welche CSV müsste ich für den 700 den nutzen, bzw. wo muss diese liegen oder eingebunden werden?

Danke schon mal an alle für ihre Geduld mit mir
Tobias

Sven77

Am besten ziehst Du nochmal je von ebusd und ebusd-configuration ein aktuelles Paket.
Die Konfig steht ansonsten in Github, benötigt aber ein ebusd-Release nach Februar 2016, um zu funktionieren.

Sven
VG, Sven

TiPpFeHlEr

#2366
@John30

Zitat von: john30 am 24 September 2017, 09:52:40
Dann lass uns mal in die Trickkiste greifen:
Nimm mal noch --latency=100000 dazu, dann ist alles mit zusätzlicher Verzögerung von weiteren 100 ms erlaubt. --latency akzeptiert bis zu 200ms.

das hat geholfen!!!! ;D

für alle die das gleiche Problem habe mit nem VR32 von Vaillant, hier meine ebusd Startparameter.
EBUSD_OPTS="--latency=100000 --receivetimeout=100000 --enablehex --scanconfig -d /dev/serial/by-id/usb-E-Service_eBus_Coupler_Iso_12001_ALHTFOL-if00-port0 -p 8888 -l /var/log/ebusd.log"


Danke
mfG Maik

Prof. Dr. Peter Henning

#2367
@Sven77: Die Frage war durchaus berechtigt. Denn wer sich auch nur minimal über das Protokoll informiert. wird lesen, dass es eben durch unterschiedliche Hersteller sehr unterschiedlich eingesetzt wird, dass keine "offizielle" Dokumentation vorliegt und alle Decodierungen über Reverse Engineering erfolgt sind. Auch die Provokation ist beabsichtigt - denn genau diese minimale Information sollte man sich beschaffen.

LG

pah


john30

author of ebusd

rellla

#2369
Hallo zusammen,
ich habe erfolgreich mal testweise meine Warmwasser-Ist Temperatur in FHEM über ECMD eingebunden:

get Warmwasser cmd {"r -f -c ww_param1 temp_soll temp\n"}
get Warmwasser expect ".*\n*"
get Warmwasser postproc { $_ }


Jetzt aber zurück zur Frage mit den bedingten Abfragen -> https://forum.fhem.de/index.php/topic,29737.msg688302.html#msg688302.
Es ist tatsächlich so, dass ich über ebusctl das aktuelle Einstellungs-Level (User oder Fachmann) abfragen kann. Ich kann dann auch das Passwort setzen um die Codes für die Fachmann-Ebene zu erreichen. Sinnvollerweise übernimmt diesen Vorgang (Abfrage Level->evtl. Passwort setzen->Einsteller abfragen/setzen) FHEM und nicht ebusd.

Wie verpacke ich das jetzt in eine Class-Definition? Ich tue mich da mit der Syntax schwer.

Vom Prinzip her (d.h. die Syntax unten wird wahrscheinlich nicht passen ;) ) brauche für den Fall eines Experteneinstellers sowas in der Art:

get Warmwasser cmd {if({"r -f -c globals parameter_level status\n"} = 'User Level') \
{"w -c globals global_password 256"};;{"r -f -c ww_param2 temp_soll temp\n"}}
get Warmwasser expect ".*\n*"
get Warmwasser postproc { $_ }

und für einen Userebenen-Einsteller:

get Warmwasser cmd {if({"r -f -c globals parameter_level status\n"} = 'Expert Level') \
{"w -c globals global_password 000"};;{"r -f -c ww_param1 temp_soll temp\n"}}
get Warmwasser expect ".*\n*"
get Warmwasser postproc { $_ }


Wie verpacke ich diese bedingte Abfrage korrekt in FHEM oder gibt es eine "klügere" Herangehensweise?

Danke und Gruß
Andreas

PS: Ich habe die Code-Schnipsel oben noch nicht ausprobiert...