LAN-Anbindung für BSB-Bus (Brötje, Elco Thision etc.)

Begonnen von justme1968, 29 November 2014, 19:50:40

Vorheriges Thema - Nächstes Thema

justme1968

EDIT: die im laufe dieses threads entstanden lösung ist inzwischen hier: https://github.com/fredlcore/bsb_lan zu finden.

EDIT2: ein passendes fhem modul entsteht gerade hier: https://forum.fhem.de/index.php/topic,84381.0.html


hallo zusammen,

hat jemand von euch erfahrung mit dem auslesen/steuern von brötje heizungen?

im microcontroller.net forum gibt es hier: http://www.mikrocontroller.net/topic/218643 einen thread dazu.

ich würde mich gerne an ein fhem modul dazu machen wenn jemand den dort vorgestellten usb bzw. avr adapter umsetzt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gero

Das steht bei mir für die Weihnachtsferien auf der Liste. Ich habe eine Elco Heizung, die entweder über LPB oder BSB an steuerbar ist. Die Bestellliste für einen ersten HW-Adapter liegt sich schon parat.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

justme1968

das klingt gut. magst du mehr über den adapter verraten? an der hardware habe ich auf jeden fall interesse. hast du schon ideen für die software seite?

in dem oben verlinkten thread gibt es ja im prinzip zwei ansätze. ein 'dummes' interface das nur die pegelwandlung macht ein ein arduino basiertes das auch protokoll und checksumme macht.

in einem ersten schritt würde ich gerne erst mal nur daten lesen. und dann sehen wir viel sich bei einer fb heizung überhaupt sinnvoll in dir steuerung eingreifen lässt.

das neu starten bzw. resetten des brenners wäre ein wichtiger punkt den ich für mich realisieren möchte. meiner geht leider öfters aus und über die überwachung temperaturen bekomme ich das nicht schnell genug mit.

plötzlich kalt duschen ist im winter nicht mehr so lustig.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gero

#3
Hallo Andre,

ich wolte erstmal den realtiv einfachen Spannungswandler/Inverter aus folgendem Post nachbauen:
http://www.mikrocontroller.net/topic/218643#2991003
Wenn alles auber läuft, wäre mein Ziel (je nach Menge der Daten) ein JeeNode für die Decodierung und das Protokoll einzusetzen und alles auf 868MHz laufen zu lassen. Falls die Datenmenge zu groß sein sollte, kommt vielleicht ein Raspi mit LAN-Anschluß in Frage.
Meine Heizung ist eine ELCO Straton Ölheizung. Da aber kein weiteres Gerät am BSB angeschlossen ist, muß ich erstmal zusehen, dass sie mir auch regelmäßig alle Daten sendet. Falls man ein Raumgerät (RGT/QAA7x) hat, das sich am Bus anmeldet, ist das wohl etwas einfacher. Aber laut oben verlinktem Thread sollte man das auch ohne RGT hinbekommen.
Ziel ist es ersteinmal nur zu Lesen und Daten zu sammeln (man kann ja nie genug Daten loggen ;) ). Später sind dann evtl. Optimierungen durch aktiven Eingriff möglich.

Ich muß dazu sagen, dass ich kein Hardwerker bin, sondern aus der Softwareentwicklung komme. Aber durch inzwischen einige Jahre Berufserfahrung im Embeddedbereich, sollte so ein kleines Stück Hardware hoffentlich keine große Hürde darstellen.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

gero

So, Bauteile sind bestellt. Mal sehen, wann ich zum Basteln komme.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

frank

#5
hallo,

Zitathat jemand von euch erfahrung mit dem auslesen/steuern von brötje heizungen?
ich mache das bereits seit einem guten jahr äusserst erfolgreich. habt erbarmen mit meiner amateurhaften umsetzung. das war mein erster praktischer kontakt mit mikroprozessoren (arduino).

Zitatmagst du mehr über den adapter verraten? an der hardware habe ich auf jeden fall interesse.
adapter hört sich gut an.  :)

gute 5m kabel von der therme an der steuerplatine auf eine steckerkupplung. die 3 bauteile, ein spannungsteiler (10k/30K) zum empfangen und ein fet (bs170) zum steuern, habe ich direkt an die kupplung gelötet. über den stecker dann auf einen arduino mega 2560r3 (pin11,12,gnd) mit ethernetshield.
da ich zu beginn noch kein fhem kannte, habe ich mir einen simplen server sketch mit der bibliothek von kuschelganxsta (mikrocontroller.net) zusammengestrickt, der mir diverse daten der heizung zur verfügung stellt. zusätzlich kann ich damit die betriebsmodi der heizung und der warmwasserbereitung umschalten.

später habe ich dann fhem über httpmod zum auslesen der daten angebunden. zum steuern benutze ich HttpUtils_NonblockingGet-aufrufe. dabei sind meine steuerbefehle in der url enthalten. zb. "http:\\xxx.xxx.xxx.xxx\?HZG_BETRIEB=03".

zur zeit habe ich damit eine "variable-referenzraum-regelung" realisiert. ich füttere die therme mit komforttemperatur und raumtemperatur, aber nicht von einem festen raum, sondern von einem raum, der gerade eine wärmeanforderung hat. gibt es keinen wärmebedarf schalte ich den betriebsmodus auf frostschutz, also heizung aus. ansonsten stellt sich die vorlauftemperatur als funktion aus komforttemperatur (sollwert), raumtemperatur (istwert, 50% raumeinfluss) und aussentemperatur (kennlinien-steigung/verschiebung) ein. bei mehreren räumen mit wärmebedarf habe ich gerade einen "mix" der temperaturen am werk. die höchste solltemperatur wird als komforttemperatur eingestellt und die niedrigste raumtemperatur der anfordernden räume wird als referenzraumtemperatur gesetzt.

in den räumen verwende ich die "alten" homematic regler hm-cc-tc und hm-cc-vd. diese sind aber nicht untereinander gepeert, da ich im aktuellen referenzraum sicherstellen muss, dass das heizungsventil auf 100% geöffnet ist. daher übernimmt das pid20 modul die regelung in den räumen, die eine heizanforderung haben, aber nicht referenzraum sind.

anbei meine software für arduino ide 1.0.3 und ein paar bilder. mit ide 1.0.5 gab es wohl kompilierungsfehler. viel spass. 

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

gero

Vielen Dank für die Infos!

Ich hätte noch ein paar Fragen zu deiner Schaltung:
Im groben entspricht sie der Schaltung, die ich oben verlinkt habe.
Welche Heizung hast du? Sind die Protokolle (Parameterwerte) für Elco, Siemens, Brötje wirklich alle gleich?
Ich nehme an, du hast den Spannungsteiler so dimensioniert, dass in der Mitte 5V maximal anliegen?
Hälst du das NAND Gatter für überflüssig (siehe verlinkte Schaltung)?
Der Anschluß rechts oben in deiner Skizze bleibt offen, oder?

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

frank

ZitatIm groben entspricht sie der Schaltung, die ich oben verlinkt habe.
ich habe mich im wesentlichen immer an kuschelganxta orientiert. meine schaltung sollte er dann auch irgendwo dokumentiert haben. eventuell in einem beispielsketch. für die widerstände habe ich dann eine kombination gewählt, die ich vorrätig hatte. mit den 5v liegst du im groben richtig. entscheidend ist aber, dass der arduino sicher ein high erkennt und die maximale eingangsspannung sicher nicht überschritten wird. ausserdem wollte ich meine broetje möglichst wenig belasten. daher habe ich etwas anders als kuschelgangsta dimensioniert. weil alles auf anhieb perfekt funktionierte, habe ich da nicht weiter probiert. mit dem oszi sah das auch ganz ok aus. ich hatte nur überlegt, eventuell noch optokoppler einzubauen. aber wie gesagt, alles laüft prima, auch konnte ich in der seriellen ausgabe der ide immer alle daten sauber erkennen.

ZitatHälst du das NAND Gatter für überflüssig (siehe verlinkte Schaltung)?
bei mir auf alle fälle.

ZitatWelche Heizung hast du? Sind die Protokolle (Parameterwerte) für Elco, Siemens, Brötje wirklich alle gleich?
broetje BBS Pro EVO 15C. irgendwo im thread gab es eine mehrseitige exeltabelle mit den codes, die jemand ausgelesen hat. bei mir haben fast alle codes gepasst. je nach modulen deiner anlage, hast du mehr oder weniger. wenn du mit deiner schaltung am bus lauscht, kannst du direkt an der thermensteuerung einen gewünschten parameter konfigurieren und siehst dann den entsprechenden code, den die thermensteuerung an das modul geschickt hat. die thermen/modul adressen können schon unterschiedlich sein. meine codes siehst du ja im sketch.

ZitatDer Anschluß rechts oben in deiner Skizze bleibt offen, oder?
genau.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

gero

Erster Erfolg:
Ich habe eine kleine Schaltung mit Optokopplern aufgebaut und gestern abend in Betrieb genommen. Das Empfangen funktioniert nur Senden klappt noch nicht. Da muß ich die nächsten Tage nochmal mit dem Scope draufschauen.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

gero

@Andre:
Bevor ich meine Schaltung finalisiere, könnten wir uns vielleicht abstimmen.
Welche Hardware schwebt dir vor?
Zur direkten Kommunikation mit dem BSB ist sicherlich ein Arduino oder ähnliches sinnvoll.
Soll dieses System eher über UART, Funk oder Ethernetverbindung (ähnlich wie Frank es einsetzt) mit FHEM kommunizieren?
Wieviel Intelligenz soll auf dem Arduino implementiert sein? Soll dort eine komplette Umsetzung auf ein Highlevel-Protokoll stattfinden, oder möchtest du das BSB-Protokoll lieber auf der FHEM Seite integrieren?

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

justme1968

ja. meine idee war einen arduino und alle drei optionen offen zu halten. zuerst mal kabelgebundenen per usb und ethernet und schauen was stabiler ist. funk mit SWAP und einem panstamp würde ich zwar gerne machen aber ich habe im keller keinen empfang.

ich tendiere dazu das protokoll so vollständig wie möglich auf arduino seite zu machen und auf fhem seite nichts zu haben das timing kritisch ist. vor allem nicht die collision detection.

vielleicht schaffen wir sogar ein high level protokoll mit dem ein fhem modul mit jeweils bus spezifischer firmware auch für andere systeme verwendet werden kann. aber das wäre nur eine iption und nicht das primäre ziel.

eventuell ist es langfristig sogar sinnvoll dem arduino eigene 'Intelligenz' zum steuern zu geben die auch unabhängig von fhem funktioniert.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gero

Zitat von: justme1968 am 08 Dezember 2014, 11:43:39
ja. meine idee war einen arduino und alle drei optionen offen zu halten. zuerst mal kabelgebundenen per usb und ethernet und schauen was stabiler ist. funk mit SWAP und einem panstamp würde ich zwar gerne machen aber ich habe im keller keinen empfang.
Mit den Panstamps habe ich mich noch nicht beschäftigt. Gibt es dort auch die 1%-Regel?
Ich bin zur Zeit auch eher für die kabelgebundene Lösung. Für meine ersten Versuche habe ich ein ca. 8m langes Boxenkabel für die Verlängerung vom BSB verwendet, damit der Arduino in USB-Rechweite vom Rechner ist. Einen Arduino mit Ethernet-Shield sollte ich auch bald zur Verfügung haben.

Zitat von: justme1968 am 08 Dezember 2014, 11:43:39
ich tendiere dazu das protokoll so vollständig wie möglich auf arduino seite zu machen und auf fhem seite nichts zu haben das timing kritisch ist. vor allem nicht die collision detection.
Das Kollisionshandling muß definitiv auf dem Arduino stattfinden.


Zitat von: justme1968 am 08 Dezember 2014, 11:43:39
vielleicht schaffen wir sogar ein high level protokoll mit dem ein fhem modul mit jeweils bus spezifischer firmware auch für andere systeme verwendet werden kann. aber das wäre nur eine iption und nicht das primäre ziel.
Das sollte prinzipiell machbar sein. Allerdings kenne ich jetzt nicht so viele verschiedene Heizungen und ihre Möglichkeiten zur Ansteuerung.

Zitat von: justme1968 am 08 Dezember 2014, 11:43:39eventuell ist es langfristig sogar sinnvoll dem arduino eigene 'Intelligenz' zum steuern zu geben die auch unabhängig von fhem funktioniert.
Das würde zumindest die Gefahr von Systemausfällen etwas minimieren, was gerade bei der Heizung zu einem sehr geringen WAF führt.

Jetzt werde ich erstmal meiner Heizung noch das Zuhören beibringen und dann sehen wir weiter.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

justme1968

die 1% regel gilt prinzipiell auch hier. ja.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gero

Die Hardware läuft. Einen vernünftigen Schaltplan muß ich noch zeichnen.
Jetzt muß ich nur noch Zeit finden, einen vernünftigen Sketch zu schreiben, alle schon von anderen decodierten Nachrichten zusammenzutragen und ein paar fehlende noch zu ergänzen.
Auch über die Schnittstelle nach außen, muß ich mir noch Gedanken machen.
Es geht voran...

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

justme1968

das klingt klasse.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968