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

freetz

#465
Mit den Relais schalte ich zum einen die Heizung komplett in den Eco-Modus, wenn die Räume wegen Sonneinstrahlung oder Kamin zu stark überhitzt sind und die gemittelte Temperatur in den Räumen, die von den eQ-3 Thermostaten übermittelt wird, deutlich über dem liegt, was Zieltemperatur ist. Darüber hinaus steuere ich damit noch zeitgesteuert unsere Haustürklingel, damit unsere Kinder Mittags und Abends ungestört schlafen können ;)...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

freetz

Zitat von: FunkOdyssey am 08 September 2016, 21:19:03
Wieso muss eigentlich ein Arduino die Basis sein? Geht nicht auch ein ESP8266?

Es geht noch nicht einmal ein "normaler" Arduino Uno, weil dessen Speicher schon zu begrenzt ist. Die ganzen Parameter und deren Klartexte müssen ja irgendwo unterkommen, und der Code tut sein übriges...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

FunkOdyssey

Aber ein ESP-12E z.B. hat doch mehr Speicher und ist sogar schneller.

freetz

Sicher könnte man dann den Code übertragen, der ESP lässt sich ja auch in C programmieren, aber wozu? Abgesehen davon, dass die ESP-Eingänge nicht 5V-tolerant sind (und damit einige andere Nutzungsmöglichkeiten wegfallen würden), bliebe auch die Frage, ob WLAN für diese Anwendung so sinnvoll ist - bei mir steht das Device im Keller. Dort gibt es zwar ein Patchfeld, aber kein WLAN. Ich müsste also noch eine WLAN-Bridge anschließen, die auch wieder Strom zieht. Und zum Programmieren des ESP nimmt man dann ggf. auch einen Arduino. Ob die Ersparnis am Ende so hoch ist, würde ich bezweifeln, zumal ich keinen wirklichen Mehrwert sehe...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

gero

Für mich ist WLAN im Keller bei der Heizung auch nicht wirklich sinnvoll. Ein Port auf den ESP ist wahrscheinlich möglich, aber doch recht aufwendig. Außerdem müsste evtl. die Schaltung etwas angepasst werden, da ich mich nicht sicher bin, ob die Widerstandswerte auch für 3.3V passen.

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

FunkOdyssey

Zitat von: gero am 09 September 2016, 15:57:29
Für mich ist WLAN im Keller bei der Heizung auch nicht wirklich sinnvoll. Ein Port auf den ESP ist wahrscheinlich möglich, aber doch recht aufwendig. Außerdem müsste evtl. die Schaltung etwas angepasst werden, da ich mich nicht sicher bin, ob die Widerstandswerte auch für 3.3V passen.

Gruß,
Gero

Danke für die Info.

Dann belasse ich den Sketch lieber auf dem Arduino und versuche weiter das (obige) ESP-Shield ans Laufen zu bekommen.
Falls dir hierzu etwas einfallen sollte, was es für einen Laien unmöglich machen sollte, dann ruhig raus damit. :-)

freetz

Ethernet-Shield (unter 10 Euro) und wenn es dann WLAN sein muss, eine WLAN Bridge (ebenfalls etwa 10 Euro), die versorgt dann sogar über den USB-Port den Arduino mit Strom, so dass Du nicht zwei Verbraucher hast. Das ist die Laien-Lösung für wenig Geld.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

FunkOdyssey

#472
Oh verdammt. Es kann manchmal so einfach sein.
Aktuell habe ich dort Powerline. Und zwar nur für den Arduino. Das sind mir nämlich zu viele Verbraucher.

Hast du einen Tipp für ne günstige Bridge mit USB?
Du scheinst vermutlich ein bestimmtes Gerät im Kopf zu haben. Ich kenne und finde auf Anhieb keine Bridge mit USB Anschluss (Ausnahme: eigene Stromversorgung).

Nachtrag: Ich sehe gerade, dass einige TP Link Geräte einen USB (Out) haben.

freetz

Genau, den von TP-Link hatte ich auch lange Zeit (bis ich dann ein direktes Ethernet-Kabel in den Keller gelegt habe):
https://www.amazon.de/TP-Link-TL-WR710N-Anschluss-Glasfasermodem-Wandmontage/dp/B00CS2M7OU
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

freetz

Hallo Gero,

könntest Du doch noch einmal nachschauen, wie man dem Monitor mehr Infos über die "query failed" Fehlermeldungen entlocken kann?
Ich habe jetzt testweise mal vier Schaltungen zusammengebaut, und jede zweite lief und die anderen produzierten immer diesen Fehler. Die LED flackert aber wie gesagt, so dass etwas auf dem Bus reagiert. Kann es sein, dass da doch der 1k5-Widerstand anders dimensioniert werden muss? Die Bauteile sind sonst alle immer die gleichen.
Ich kann Dir auch gerne eines der "query failed" Boards zuschicken (und Du darfst es dann natürlich behalten), wenn Du Zeit (und Lust) hast, Dir das Problem einmal direkt anzuschauen. Ansonsten suche ich hier weiter und freue mich über jeden Tipp...

Gruß,

Frederik
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

gero

Es gibt ein DEBUG_LL definement in der bsb.cpp soweit ich mich erinnere. Aber das wird dir vermutlich auch nicht viel weiterhelfen. Das einfachste wäre es, sich mal die Signale mit einem Scope anzusehen. Du kannst mir gerne eines der Boards zusenden. Aber ich möchte noch einmal betonen, ich bin kein Hardware Experte. Hier gibt es bestimmt einige mit mehr Ahnung.

Gruß,
Gero

Melde dich bitte per PN, dann bekommst du meine Adresse.
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

FunkOdyssey

#476
Ich habe es hinbekommen, ein fertiges ESP8266-Wifi-Shield mit dem Arduino Mega zu nutzen.
Es gibt zwei/drei verschiedene Shields mit unterschiedlichen DIP-Schaltern. Ich habe folgendes Shield erworben.
Nicht wundern: Diese gibt es unter verschiedenen Namen.

DoIt.am - ESP8266 ESP-13 WiFi Web Sever Shield for Arduino
Jaycar - Arduino Compatible ESP-13 Wifi Shield (Hier gibt es auch Downloads mit Anleitungen und verschiedenen Firmware-Versionen)

   (Offtopic: Natürlich kann man sich auch ein günstiges eigenes Shield bauen, welches nicht per Huckepack auf den Arduino Uno/Mega gesteckt wird. Hier wäre eine Anleitung dazu: Cheap Arduino WiFi shield with ESP8266.)

Zu den Boards gibt es hier auch eine kleine Anleitung, die sich aber auf eine Firmware bezieht, die ich für den geplanten Zwecke nicht nutzen kann.




Und da sind wir auch schon an dem Punkt, wo man eingreifen muss. Die mitgelieferte Firmware muss ausgetauscht werden.

  • Dazu habe ich das Shield über einen FT232RL an meinen Rechner angeschlossen. Das PIN-Mapping kann dem Anhang "XC4614 flash reprogramming.pdf" entnommen werden.
  • Dann habe ich mir hier die neueste AT-Firmware von Espressif heruntergeladen: ESP8266_NONOS_SDK_V2.0.0_16_07_19. Bei dieser Version musste noch ein Patch durchgeführt werden. Ist aber nur ein Austauschen von Dateien.
  • Wer einen Arduino Uno mit herausnehmbaren Speicherbaustein hat, der kann auch dieser Anleitung zum Flashen Ich persönlich fand es per FT232 relativ schnell und einfach zu erledigen.
  • Ich selbst hatte erst Erfolg, als ich diese Anleitung genutzt habe. Aber nicht wegen der Verkabelung, sondern wegen der Beschreibung wie man die unterschiedlichen (nonboot-)Firmware-Binaries an welcher Speicherposition (=Offset) des Flashspeichers hochladen muss. Das o.g. Shield hat übrigens eine "Flash Size" von "32Mbit" (nicht mit Byte verwechseln). Also bitte vorher in die Readme der Firmware schauen.
  • Nach dem Flashen hatte ich folgende Version aktiv:
ESP8266_NONOS_SDK_V2.0.0_16_07_19
===================================
AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(656edbf)
compile time:Jul 19 2016 18:43:55



  • Solange das Shield noch eigenständig am PC angeschlossen ist, kann man sich mit den AT-Befehlen (siehe Anlage "ESP8266ATCommandsSet.pdf") den aktuellen Status holen und ein wenig herumprobieren. Ich habe dazu den Serial-Monitor der aktuellen Arduino-IDE genutzt. Übrigens kann die AcessPoint (=AP)-Funktion des ESPs deaktiviert werden.
  • Da ich parallel mit einem Uno und einem Mega herumgespielt habe, konzentrierte ich mich ständig darauf, die Baud-Rate des ESP8266 auf 9600 zu minimieren. Dies hat den Hintergrund, da SoftwareSerial in höheren Baudraten nicht richtig funktionieren. Aber da wir ja sowieso später ein Arduino Mega nutzen, kann man sich das sparen. So bekommen wir keine Konflikte mit dem "Serial" rx0/tx0, da hierüber bei einem Uno sonst das Monitoring und der ESP laufen würde. Das geht halt nicht gleichzeitig. Somit ist auch dieser PullRequest, den man in verschiedenen Threads findet für uns nicht notwendig.
  • Die Baudrate des ESPs also unbedingt auf 115200 belassen!
  • Wichtig: Die Dip-Schalter des Shields können bei unserem Arduino Mega permament auf "off" bleiben!
  • Nun habe ich per Jumperkabel die Arduino-PINs rx3/tx3 mit den Shield-ESP-PINs rx/tx verbunden. Damit verbinden wir also das ESP-Shield nicht über rx0/tx0 (dann müssten die DIP auf ON sein), sondern über "Hardware-Serial3". Dieses Vorgehen ist notwendig und macht die Arbeit anschließend um ein Vielfaches einfacher.
  • Folgende Libary habe ich in der Arduino-IDE hinzugefügt: https://github.com/bportaluri/WiFiEsp. WifiESP ist kompatibel mit der Standard WiFi library.
  • Der Code von Gero muss ein wenig modifiziert werden. Ich habe das quick&dirty gemacht, da ich gestern nicht mehr lange Zeit hatte, viel herumzuprobieren. Sicherlich lässt sich das noch optimieren. Eigentlich mussten nur ein paar "Ethernet"-Zeilen durch "WifiESP"-Funktionen getauscht werden. Ich habe auf Basis des aktuelle Gero-Sketches ein Diff (siehe Ahang "BSB_lan_WifiESP-Diff.ino") erstellt.




Ich weiß nicht, ob das mal jemand benötigt. Aber ich wollte es einfach mal festhalten. Ich habe ein paar Stunden verloren, da ich ständig versucht habe, die Standard-Serial-PINs zu benutzen. Bei einem Uno wäre das notwendig. Wie auch ein Änderung der Baudrate auf 9600. Aber glücklicherweise nutzen wir einen Mega, so dass ich die Strecke zum ESP halt über die Jumper-Kabel herstelle. Im Sketch sieht das dann wie folgt aus:


  // initialize serial for ESP module
  Serial3.begin(115200);
  // initialize ESP module
  WiFi.init(&Serial3);


Außerdem hatten mich die unterschiedlichen Firmware-Versionen einiges an Zeit gekostet. Das ist eine fremde Welt für mich. Das optisch komplizierte Flash-Tool war aber anschließend die bessere Wahl. Man muss halt nur die Anleitung lesen, wo welche BIN hin muss. :-) Zu alte oder andere (Ai-Thinker=ai-thinker-v1.1.1-115200.bin) Firmware-Versionen, die teilweise in den obigen Links enthalten sind, waren mit WifiESP nicht kompatibel.




Man kann natürlich auch einen Repeater als WLAN-Bridge einsetzen. Doch dieser Tipp kam leider erst nachdem ich das Shield gekauft hatte. Dann wollte ich es einfach wissen. :-)

Zugegeben: Die Performance ist sporadisch noch ein wenig schwach. Ich muss mit das die Tage mal anschauen. Alle paar Stunden habe ich in meinem HTTPMOD-Device einen Time-Out. Damit kann ich aber leben. Ich habe mir durch die Wifi-Strecke nun einige zusätzliche Stromfresser einsparen können.


Viel Erfolg.



Linktipps:
https://forum.arduino.cc/index.php?topic=417913.0
http://forum.arduino.cc/index.php?topic=420550.0
https://forum.arduino.cc/index.php?topic=356174.15
http://www.heise.de/developer/artikel/Arduino-goes-ESP8266-3240085.html
http://www.heise.de/developer/artikel/Make-your-own-ESP8266-WiFi-Shield-3246107.html

justme1968

#477
hab gerade eines von freetz boards mit der 15er firmware in betrieb genommen. soweit schaut alles gut aus. aber ich sehe nur unter ein/ausgabe war tatsächliche ist werte. in allen anderen kategorien sehr ich nur die diversen sollwerte.

kann es sein das noch heizungs spezifische dinge im sketch unterlegt werden müssen? der kessel ist von brötje.

gruss
  andre

edit: habe jetzt einige werte unter diagnose erzeuger und diagnose Verbraucher gefunden...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

gero

Zitat von: justme1968 am 17 September 2016, 16:43:02
hab gerade eines von freetz boards mit der 15er firmware in betrieb genommen. soweit schaut alles gut aus. aber ich sehe nur unter ein/ausgabe war tatsächliche ist werte. in allen anderen kategorien sehr ich nur die diversen sollwerte.

kann es sein das noch heizungs spezifische dinge im sketch unterlegt werden müssen? der kessel ist von brötje.

gruss
  andre

edit: habe jetzt einige werte unter diagnose erzeuger und diagnose Verbraucher gefunden...

Leider hat sich im Laufe der Entwicklung herausgestellt, dass die Kommando-IDs auf dem BSB nicht wirklich genormt sind. Außerdem unterstützt nicht jede Heizungsanlage alle Kommandos.
Für zwei Sonderverhalten gibt es im Sketch ein auskommentiertes Definement:  BROETJE_SOB und THISION. Evtl. werden einige Parameter bei dir erst korrekt angezeigt, wenn du das BROETJE_SOB definement aktivierst. Welche Kommandos betroffen sind, kannst du im Sketch leicht nachsehen.

Was mir immer noch nicht gefällt, ist, dass in der aktuellen Version des Sketches sich ein paar doppelte Kommando-IDs eingeschlichen haben. Ich muß mir  das nochmal genauer ansehen.
Für Interessierte: Zur Analyse liegt der letzten Version (15a) ein kleines Script bei (analyse.sh).

Eine saubere Lösung wäre es den Sketch mit einer anlagenspezifischen Datenbank zu füttern. Aber mir ist noch keine effektive Möglichkeit eingefallen, diese Datenbank zu erstellen.
Um wirklich sicherzugehen, dass der Sketch die korrekten Daten für die spezifische Anlage liefert, bleibt zur Zeit nur der manuelle Abgleich mit dem Display der Heizung. Allerdings sollten die wichtigsten und meisten Daten korrekt sein, wie die Erfahrungen der Benutzer in diesem Thread zeigen.

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. ich habe eine ganze menge zeilen die aktuell mit error 7 (parameter not supported)  dort stehen. das liegt aber vielleicht auch daran das das ding inzwischen fast 10 jahre alt ist.

das BROETJE_SOB define probiere ich sobald ich dazu komme.

ansonsten habe ich die meisten parameter die mich interessieren inzwischen gefunden. allerdings fast alle nur unter diagnose (und z.t. doppelt noch mal unter ein/ausgabe test) z.b.K33 bzw. 8xxx liefert nur soll werte. keinen einzigen ist wert.

das was noch fehlt wie z.b. der rücklauf ist bei meiner installation eventuell auch garnicht vorhanden. der mischer für die fbh ist extern. wird aber sowieso per 1-wire schon abgedeckt.

um die brenner betriebszeit besser als mit der 1h auflösung auszuwerten müsste man ja die beiden brenner status werte etwa im 10 sekunden oder sogar noch häufiger abfragen. weiss jemand ob das probleme auf dem bus gibt? ausser dem bedien teil direkt am kessel und jetzt fhem hängt bei mir nichts weiter dran.

ich melde mich auf jeden fall wenn ich mehr rausfinde.

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

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