eBus Schaltung in Betrieb nehmen

Begonnen von Reinhart, 23 Dezember 2015, 15:19:45

Vorheriges Thema - Nächstes Thema

Reinhart

ich habe mir dein Listing jetzt genauer angeschaut und da sind einige Fehler drinnen weil du einiges verwechselt hast. Ich habe die ausgebessert und bei mir getestet, funktioniert jetzt.

# WarmWasserSchalter lesen
get WWSchalter cmd {"r -f HwcOPMode\n"}
get WWSchalter expect ".*\n\n"
get WWSchalter postproc {$_}

# WarmwasserSchreiben
get WarmwasserWrite cmd {"write -c 430 HwcOPMode ".Value("Warmwasser_Schalter")."\n"}
get WarmwasserWrite expect ".*\n\n"
get WarmwasserWrite postproc  {$_}


hier die bai00.cfg

#Wasser ein/aus
define WWSchalter ECMDDevice bai00.class
attr WWSchalter IODev EBUS
attr WWSchalter group Vaillant
attr WWSchalter icon scene_hall
attr WWSchalter room Vaillant

define WarmwasserWrite ECMDDevice bai00.class
attr WarmwasserWrite IODev EBUS
attr WarmwasserWrite group Warmwasser_Schalter
attr WarmwasserWrite room Heizung

define Warmwasser_Schalter dummy
attr Warmwasser_Schalter group Warmwasser_Schalter
attr Warmwasser_Schalter icon scene_hall
attr Warmwasser_Schalter room Heizung
attr Warmwasser_Schalter setList state:off,manual,auto
attr Warmwasser_Schalter webCmd state

define WarmwasserSchalterSchreiben_Click notify Warmwasser_Schalter {\
fhem("get WarmwasserWrite WarmwasserWrite");;\
}
attr WarmwasserSchalterSchreiben_Click group heatingControl
attr WarmwasserSchalterSchreiben_Click room Heizung


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

amunra

hmmm... dein read im Logfile
Zitat von: Hasont am 18 Januar 2017, 18:50:50
2017.01.18 18:21:28 1: EBUS: unexpected answer auto\n\n (\141\165\164\157\012\012) received (wrote r -f HwcOPMode\n (\162\040\055\146\040\110\167\143\117\120\115\157\144\145\012), expected \d+\.\d+\n)
2017.01.18 18:21:28 1: PERL WARNING: Argument "auto\n\n" isn't numeric in sprintf at (eval 3197) line 1.
2017.01.18 18:21:28 3: eval: { sprintf("%3.1f",$_) }
2017.01.18 18:22:16 3: get HeizungsSchalterSchreiben HeizungsSchalterSchreiben : HeizungsSchalterSchreiben ERR: invalid numeric argument

passt nicht zur Definition
HeizungsSchalterSchreiben cmd {"write -c 430 Hc1OPMode "
Hc1OPMode
Aber, vielleicht hift ja Reinharts Anpassung...

Reinhart

#722
das Problem war weil die Formatierung in der bai00.cfg als numerisch war und es wurde das falsche Reading geschrieben. Aber das hast eh du auch schon Aufgrund der Fehlermeldungen bemerkt.

Ebenso waren auch in der fhem.cfg einige Ungereimtheiten. Bei mir hat es tadellos geklappt und habe die Schreibversuche jeweils mit SSH am eBus Raspi geprüft. Ebenso musste ich unbenennen, weil ich schon so ein Define hatte aber das was anderes tut.

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

jkriegl

Warum macht Ihr eigentlich ein get mit einem "write"?
Ich habe get und set via ECMD getrennt, da wird etwas gelsen oder gesetzt. So habe ich eine klare Trennung. Beispiel:
# Ferientemperatur
get T.Ferien cmd {"r RoomTempHoliday\n"}
get T.Ferien expect ".*\n\n"
get T.Ferien postproc { sprintf("%.1f",$_) }

set T.Ferien cmd { "w -c ui RoomTempHoliday %temp\n" }
set T.Ferien params temp
set T.Ferien expect "done\n"
set T.Ferien postproc {if ($_ =~ "done") {"%temp"} else {$_}}

Beim set wird der aktuelle Wert vorgegeben, den ich dann überschreibe und der reading-Wert wird aktualisiert.
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Hasont

Hallo Reinhart, vielen Dank.
Es läuft und ich setz das jetzt noch so für den HeizungsSchalter um.

Gruß auch an alle, seit eine große Hilfe

Hasont

bmwfan

@Reinhart:
Sehr interessant, was Du im Beitrag gestern zu Deiner Heizungssteuerung geschrieben hast. Gibt es dazu schon in einem Beitrag etwas ausführlicheres? Nachdem ich meine Zeotherm (zumindest lesend) eingebunden habe, will ich als nächstes auch Schreiben und informiere mich gerade (habe auch das sehr empfehlenswerte Buch von pah) darüber, wie ich meine Thermostate / Stellglieder steuern kann. Problem: Ich habe im ganzen Haus nur Fußbodenheizung und möchte, wenn möglich, nicht alle Stellglieder austauschen müssen. Die Thermostate in den Räumen muss ich sowieso tauschen, da nur mit einem Rändelrad versehen.

Sind die Werte der Heizkurve in dem Diagramm wirklich zwischen 0,5 und 1,5 bei Dir oder mit einem Faktor zur deutlicheren Darstellung versehen? Ich wechsle gerade manuell zwischen 0,1 und 0,15 und möchte etwas ähnliches erreichen wie Du. Macht das dann überhaupt Sinn, wenn ich nur in einem so engen Bereich wechseln kann? Feiner als 0,05 läßt sich die Heizkurve nicht einstellen.

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

Reinhart

@bmwfan

Nein, ausführlicheres habe ich noch nicht gepostet (irgendwo gibt es schon ein paar Listings), weil es eigentlich 5 einfache IF Abfragen sind die alle 20-30 Minuten geprüft werden und werden und dann entsprechend handeln. Man kann es auch noch langsamer durchführen.

Wenn bei dir die Heizkurve zwischen 0,1 - 0,15 liegt, dann ist dein Typ der Heizung so ausgelegt. Ob das Sinn macht oder nicht, musst du selbst entscheiden, wenn du jedoch händisch nachregeln musst/willst, dann kann das natürlich auch Fhem für dich machen. Sinn macht es in meinen Augen immer, weil je flacher die Kurve je weniger Verbrauch hast du. Wenn die Heizleistung ausreicht, spricht nichts dagegen sie abzusenken bis zu dem Punkt wo sie gerade noch passt.

Fussbodenheizung ist ohnehin eine eigene Herausforderung, weil sie stark verzögert sind. Meine FB hat nur 1cm Bauhöhe, liegt direkt unter der Fliese und reagiert sehr schnell, daher kann ich auch hier mit einem Thermostat Ventil den Durchfluß schön steuern.

Ich würde an deiner Stelle einfach mit den Thermostaten anfangen und schauen ob das schon ausreicht oder ob du noch mehr willst.

define Heizkurve_Check_up0 at +*00:28:00 IF (Value("WichtungAll") > (Value("Schwelle") + 25) && ($hour > 5 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.3 )) (set HeizkurveEinstellen 1.50)
attr Heizkurve_Check_up0 room System

define Heizkurve_Check_up1 at +*00:29:00 IF (Value("WichtungAll") > (Value("Schwelle") + 22) && ($hour > 5 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.2 )) (set HeizkurveEinstellen 1.30)
attr Heizkurve_Check_up1 room System

define Heizkurve_Check_up2 at +*00:30:00 IF (Value("WichtungAll") > (Value("Schwelle") + 18) && ($hour > 5 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.1 )) (set HeizkurveEinstellen 1.20)
attr Heizkurve_Check_up2 room System

define Heizkurve_Check_up at +*00:31:00 IF (Value("WichtungAll") > (Value("Schwelle") + 13) && ($hour > 4 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.0 )) (set HeizkurveEinstellen 1.10)
attr Heizkurve_Check_up room System

define Heizkurve_Check_up3 at +*00:32:00 IF (Value("WichtungAll") > (Value("Schwelle") - 5) && ($hour > 4 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 0.9 )) (set HeizkurveEinstellen 1.00)

hier die einfachen IF Abfragen, die Zahl hinter der Schwelle dient zur Kompensation und zur Früherkennung. man könnte hier auch eventuell einen Faktor der Wettervorschau einbringen. Beim Absenken sind es ähnliche IF, nur andere Faktoren bei der Kompensation. Die Kompensation habe ich einfach in der Praxis ermittelt und so lange angepasst bis es für mein System optimal war. Je kleiner die Kurve wird, desto genauer wird der Schaltpunkt ermittelt.

WichtungAll = Durchschnitt Stellung der Ventile von Valve ermittelt
Schwelle = setlist mit Vorgaben für Sollwerte
HeizkurveEinstellen = augenblickliche Heizkurve/neuer Sollwert
Winter = Dummy Schalter für Sommer/Winterbetrieb

Das Ganze läuft seit über 2 Jahren zur vollsten Zufriedenheit mit Hilde des eBus. Dieses kleine IF, steigert bei mir den Komfort und macht alles behaglich und stellt eigentlich den ganzen Regler dar. Man kann das noch ausdehnen, ist aber bei mir nicht notwendig.

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

Reinhart

Zitat von: jkriegl am 18 Januar 2017, 20:38:21
Warum macht Ihr eigentlich ein get mit einem "write"?
Ich habe get und set via ECMD getrennt, da wird etwas gelsen oder gesetzt. So habe ich eine klare Trennung.

ich glaube das hat sich einfach so eingebürgert weil die ersten Beispiele auch alle mit "get" waren. Im Prinzip ist es so wie du schon sagst rein optischer Natur und da macht es durchaus Sinn. Es wird über den definierten ECMD Device via Telnet das "cmd" an den eBus übergeben und der führt das Kommando aus, egal ob mit "get" oder "set" er das empfangen hat weil der eBus das gar nicht weiß. Entscheidend ist eigentlich nur der Parameter, welcher das Kommando enthält und das ist entweder ein "read" oder ein "write".

Es wäre jetzt viel Arbeit das Wiki zu durchforsten und alle Sendebefehle mit "set" zu ersetzen, weil das auch alle Beispiele betrifft die vorher alle nochmals getestet werden müssten. Aber wenn das wer machen möchte spricht ja nichts dagegen. In den Threads natürlich ist auch immer die Variante "get" vorhanden, was dann besonders für Einsteiger undurchschaubar wäre und dann zur Verwirrung sorgt.

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

hanswerner1

Hallo,
ich habe die eBus Schaltung auch gelötet und gestern dann ausprobiert. Ich habe auch für ein paar sec. Daten auf dem Bus gesehen, dann aber nichts mehr. Wenn ich die Schaltung nun am eBus klemme stürzt dieser ab. Es steht kurz loading in Display vom Vailant VRC700, dann geht das Display aus und es fängt wieder von vorne an. Sobald ich die Schaltung abklemme läuft das VRC700 normal.

jkriegl

@ Reinhart
habe ich mir auch so gedacht, weil "nichts läuft länger als ein Provisorium". War auch für die Zukunft gedacht, um eine bessere Struktur rein zu bekommen.
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Prof. Dr. Peter Henning

@hanswerner1

Mit allen Unsicherheiten der Ferndiagnose: Sieht mir nach falsch eingelöteten Dioden aus, die den eBUS kurzschließen.

LG

pah

Reinhart

@hanswerner1

so wie dir pah schon geschrieben hat, hast du auf jeden Fall einen Kurzschluß am Schaltungseingang (Diodenbrücke).
Auf keinen Fall nochmals die Platine anschließen, sondern vorher mit dem Ohmmeter den Eingang einmal durchmessen. Strippen auch austauschen (umpolen) bei der Messung. Schön wäre natürlich jetzt ein Labornetzteil mit Stromanzeige zur Fehlersuche, es geht aber auch mit einem Multimeter.

Eigentlich ist der eBus Kurzschlußfest, ich würde es aber trotzdem nicht riskieren. Das Netzteil der eBusversorgung sitzt direkt auf der Steuerplatine und kann nur als Ganzes getauscht werden was dann etwas kostspielig wäre. Ich hatte schon eine defekte Platine, hatte aber nichts mit dem eBus zu tun.

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

hanswerner1

Hab die Dioden nochmal kontrolliert, sind alle 4 wie im wiki eingelötet, auch die Z ist wie im wiki. Hab den Eingang mit einem Multimieter durchgemessen, Wiederstand >20M (max Anzeige) in beiden Richtungen. Komisch war auch das es kurz funktionierte.

Reinhart

check auch mal den Sendeweg, d.h. die Zenerdiode und den Darlingtontransistor.
Wenn die Platine den Sendeweg ständig durchschaltet, kann es auch zu deinem Problem an der Therme kommen.

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

john30

Zitat von: rob uboot am 11 Januar 2017, 22:07:16
wird wohl noch eine weile dauern bis man die teile arotherm ansteuern kann. :(
Vor ner Ewigkeit hab ich mal ein paar Fragmente für HMU erhalten, die hab ich jetzt überarbeitet und eingecheckt: ebusd-2.1.x/en/vaillant/08.hmu.csv.
Ist nicht wirklich viel, aber vielleicht ein motivierender Anfang :-)
author of ebusd