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

FunkOdyssey

Zitat von: Schotty am 11 Februar 2019, 10:19:43
Moin @FunkOdyssey,
wäre wirklich klasse, wenn du das bei Gelegenheit nochmal machen könntest. Gerade wenn das anscheinend so einfach ist (mit 'autocreate' und 'von alleine'?! ;) ), dürfte es für einige neue User sicherlich interessant sein.. Kannst es mir auch gern per Email schicken. Danke&Gruß

Ich würde wirklich gerne mehr helfen. Aber ich habe wirklich gar nichts in FHEM gemacht. Man legt nur den MQTT2-Server wie in der CommandRef beschrieben an:
defmod mqtt2Server MQTT2_SERVER 1883 global
attr mqtt2Server autocreate 1


Und sobald man in BSB die IP des FHEM-Servers angegeben hat, erscheint das MQTT2-Device mitsamt aller Readings.

Das sieht dann später wie folgt aus:

defmod MQTT2_BSB_LAN MQTT2_DEVICE BSB_LAN
attr MQTT2_BSB_LAN IODev mqtt2Server
attr MQTT2_BSB_LAN readingList BSB_LAN:BSB/8314:.* Kesselruecklauftemperatur\
BSB_LAN:BSB/8700:.* Aussentemperatur\
BSB_LAN:BSB/8323:.* Geblaesedrehzahl\
BSB_LAN:BSB/8324:.* Brennergeblaesesollwert\
BSB_LAN:BSB/700:.* Betriebsart\
...

Schotty

#3391
Danke @FunkOdyssey - dass das anscheinend SO einfach ist, habe ich nicht gedacht (habe mich damit als FHEM-n00b aber auch noch nicht beschäftigt ;) ). Dann übernehme ich das so ins Handbuch  ;D
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

rubinho

Zitat von: Schotty am 09 Februar 2019, 18:22:10
Hi,
Kurzfassung: LMU64 ist der OpenTherm-Exot von Brötje, da ist ein Anschluss des Adapters nur über einen Umweg möglich. Du bräuchtest ein "OCI420"-ClipIn-Modul, um damit einen LPB nachzurüsten, woran du dann den Adapter anschließen könntest.
Warte aber noch etwas (es sei denn, du bekommst so ein Teil gerade als Super-Schnäppchen ;) ), da ist freetz gerade dran, die verfügbaren Parameter etc auszulesen und zu implementieren. Dann ist auch erst klar, welche Funktionen sich damit realisieren lassen bzw. was zur Verfügung steht.

Was ist denn ein Superschnäppchen und passen alle OCI420 (Elco, Brötje) auf meine Brötje/Siemens LMU64, oder sind die Herstellerspezifisch codiert. In der Bucht habe ich bereits welche für knapp 100€ gesehen.


Zitat von: freetz am 09 Februar 2019, 18:47:54
Es werden irgendwas zwischen 50 und 100 Parametern sein, die man von der LMU64 über das OCI420 auslesen kann, darunter auch die wichtigsten Analyse-Parameter wie Vorlauf, Rücklauf, Außentemperatur und Fehler. Nicht ohne weiteres möglich sind Ist- und Soll-Temperaturen zu übermitteln, aber wer dafür die QAA53/73 nimmt, kann mit dem Interface durchaus auch an der LMU64 etwas anfangen...

Das die Fehler übermittelt werden ist doch schon was. Schön wäre es natürlich auch die Solltemperatur zu setzen und den Tag/Nacht Betrieb über den LPB zu schalten. Wenn du schreibst... nicht ohne weiteres. Meinst du damit nur über QAAx3 oder ist eine kompliziertere Parametrierung notwendig.
Alles andere kann man wirklich über das QAA73 erledigen, den besitze ich bereits seit der Inbetriebnahme (2005).

Interesse habe ich in jedem Fall an so einer Lösung. Jedoch müsste ich mich auch erstmal in das Thema einarbeiten und die Hardware besorgen. Vorausgesetzt, das die realisierbaren Möglichkeiten meinen Vorstellungen entsprechen.

Meine Elternzeit liegt im Übrigen schon etwas länger zurück :) , von daher verstehe ich das Zeit ein kostbares und seltenes Gut ist.


Gruß
Rubinho


Fhem 5.9@Zotac Zbox Ci327 | HMCCU | Z-Wave@ZMEEUZB1 | HUE Bridge Gen2 | knxd over IP

freetz

Hallo Rubinho,

den Tag- und Nachtbetrieb ändere ich bei mir direkt über die Soll-Temperaturen, die ich über FHEM bzw. über meine MAX-Thermostate an die Heizung schicke. Das Setzen der Soll-Temperaturen ist auch bei der LMU64 möglich (bzw. setze ich das gerade um), allerdings muss man hier etwas tricksen, indem man die minimalen und maximalen Raumsollwerte auf den gleichen Wert setzt (also z.B. 20 und 20).
Laut dieser LMU64-Anleitung:
https://be.elco.net/sites/be.elco.net/files/pdflibrary/regulators/LMU%2054_64%20gb%20(20031226).pdf
sieht man auf S. 32 woraus die Soll-Temperatur dann bezogen wird, hängt also etwas von der Konfiguration ab. Ohne Außenfühler und ohne Raumgerät wird die Solltemperatur aus besagten minimalen und maximalen Raumsollwerten ermittelt, aber mit Außenfühler (ohne macht ja keinen Sinn), soll die Basis dafür "TrSollMmi" sein, was nicht weiter erklärt wird. Da ich hier nur eine "rohe" LMU64 habe, die nicht an einen Kessel angeschlossen ist, kann ich das nicht weiter testen, da müsste halt mal jemand ins kalte Wasser springen...

Wenn Du noch ein OCI420 suchst: Ich habe eins übrig, was ich selber für etwas über 100 Euro gekauft habe und für 80 Euro abgeben würde. Da weißt Du immerhin, dass es funktioniert. Bei Interesse daran (oder an einer Platine) bitte per Mail an bsb (ät) code-it.de mailen.

Gruß,

F.
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

Andreas29

#3394
Zitat von: frank am 10 Februar 2019, 18:58:17
hallo schotty,

leider nach 51 tagen der erste hänger mit der beschriebenen schaltung. das killen der frozen sockets hatte scheinbar keine wirkung.

aktuelle fotos wären sicherlich eher abschreckend.
demnächst werde ich noch änderungen testen.

gruss frank.

Hi,

nur als Hinweis: seit Beginn Dezember bis einschl. jetzt keinerlei Hänger mehr mit dem originalem Shield V2 auf BSB-LAN.
Ich benutze noch den Softwarestand ohne die Socketkillung aber ja ergänzt um meine custom.h mit MAX!-Auswertung, Heizungsist-  / sollwertvorgabe, Pingabfrage und Pushnachrichtenfunktion.
Heißt mit der gleichen Software wie zuvor das Cloneshield. Auch die restlichen Randbedingungen (Netzwerk, Kommunikation mit Raumgerät, Abfragen) haben sich nicht geändert.

Läuft!  8)

Cloneshield hatte vorher so ca. alle 3 bis 5 Wochen einen Shieldschluckauf.

Grüße

Andreas

frank

ZitatLäuft!  8)
das war ja schon immer meine meinung, da mein original shield in 5-6 jahren null hänger hatte.
nun versuche ich aus meinen 2 alten backup-clones brauchbare (zuverlässige) hardware zu kreieren.


meine logs zum hänger haben einige infos ergeben:

1. ca 6 std vor dem hänger hat der arduino einen reboot gemacht. ich habe aber keine hinweise für den auslöser.
2. die letzten 4-5 verbindungen vor dem hänger waren dann ziehmlich auffällig in fhem.log.
beim setzen von komfortTemp und raumTemp gab es anstatt "HTTP/1.1 200 OK" als antwort:
  a) erst "empty answer" als fehlermeldung
  b) und die vorletzte verbindung antwortete zwar ohne fehlermeldung aber lieferte 456455 zeilen html-code.
das war eine fortlaufende aneinanderreihung meiner html seite (78 zeilen), die der arduino webserver bei einem normalen poll liefert. zudem war der html-code jeder einzelseite grob "gehäckselt" und immer wieder in neuer anordnung zusammen gesetzt.

ich vermute, dass der arduino reboot "nur" den arduino resettet hat und nicht das lan shield, da meine bisherige reset-modifikation für das lan shield noch den nachteil hat, dass sich die eingebaute rc-kombination nicht schnell genug entlädt. anschliessend hat dann das unzureichende reset verfahren des w5100 wiederum den hänger ausgelöst.

hat vielleicht jemand, der auch von den hängern betroffen ist, zufällig auch vorher einen arduino reboot erkannt?
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

bombom

Hallo,

ich habe mich eben hier angemeldet und möchte mich zuerst bei allen die bei diesem Projekt mitgearbeitet haben bedanken für die tolle Arbeit.

Ich hab den Adapter mit original Arduino Mega und original Ethernet shield W5500 am laufen.
Soweit passt auch alles aber ich bekomme das Loggen auf SD-Karte nicht hin.
Bekomme folgende Meldungen:

Failed to create datalog.txt.
Failed to open datalog.txt

hab schone mehrere SD Karten von 2-32 GB durch, Fat16, Fat32,...

hier meine config:

hab schone mehrere SD Karten von 2-32 GB durch, Fat16, Fat32,...

/************************************************************************************/
/************************************************************************************/
/* Settings -   BEGIN                                                               */
/************************************************************************************/
/************************************************************************************/

// Upon first installation, rename this file from BSB_lan_config.h.default to BSB_lan_config.h and adjust settings accordingly

/*
* Initialize the Ethernet server library
* with the IP address and port you want to use
* (port 80 is default for HTTP):
*/

#define Port 80
#define IPAddr 192,168,178,88   // please note the commas instead of dots!!! Remove this line when you want DHCP
#define GatewayIP 192,168,178,1 // Optional: this is usually your router's IP address. Please note the commas instead of dots!!!
//#define GatewayIP 192,168,178,1 // this is usually your router's IP address. It is assumed that gateway and DNS are the same. Please note the commas instead of dots!!!
#define SubnetIP 255,255,255,0  // Please use commas insteaf of dots!!!

//#define WIFI  // activate if you are using an ESP8266 AT-firmware based WiFi module
char ssid[] = "Your_WiFi_name_goes_here";            // your network SSID (name)
char pass[] = "Your_WiFi_password_goes_here";        // your network password

/* SECURITY OPTIONS
* There are several options to control and protect access to your heating system. However, keep 
* in mind, that even activating all three options are no guarantee that a versatile intruder with
* access to your (W)LAN won't be able to gain access. In any case, no encryption of data streams
* is provided from the Arduino itself. Use VPN or a SSL proxy if that is a must for you and connect
* the Arduino wired to the VPN server or SSL proxy. On the other hand, someone with this amount
* of criminal activity will probably have it easier just to access your heating system face-to-face
*/

/*
* if PASSKEY is defined, the URL has to contain the defined passkey as first element
* e.g.
* http://192.168.178.88/1234/                - to view the main website (don't forget the trailing slash!)
* http://192.168.178.88/1234/K               - to list all categories
* http://192.168.178.88/1234/8700/8740/8741  - to list parameters 8700, 8740 and 8741 in one request
*/
//#define PASSKEY "1234"

/* activate IP-address-based access. Only the last segment of the client's IP address is matched, as it is assumed that
* requests are made from the same subnet only. So if your trusted client's IP is 192.168.178.20, you have to set
* TRUSTED_IP to 20.
*/
//#define TRUSTED_IP 20
//#define TRUSTED_IP2 30

/* activate HTTP-Auth authentification to provide username/password based access. No encryption!
* Default sets username to "atari" and password to "800xl". Visit a website like
* https://www.base64encode.org/
* to encode your own username/password combination in the format username:password
* and replace the YXRhcmk6ODAweGw= string below accordingly.
*/
//#define USER_PASS_B64 "YXRhcmk6ODAweGw="

/* select your heating system (default may work for other systems)
* Set fixed_device_family and fixed_device_variant to your device family and variant (parameters 6225 and 6226) here
* if autodetect does not work or heating system is not running when Arduino is powered on
* You may use other device family numbers to test commands from other heating systems at your own risk
*/
const int fixed_device_family = 9;
const int fixed_device_variant = 239;

/* display web interface in German language; remove definement for English */
#define LANG_DE

// Hide unknown parameters from web display (parameters will still be queried!)
#define HIDE_UNKNOWN

/*
* Define the pin for one wire temperature sensors
*/
//#define ONE_WIRE_BUS 3

// Define the pins for DHT temperature/humidity sensors
//#define DHT_BUS 2,3

// Create 24h averages from these parameters
int avg_parameters[20] = {
  8700,                   // Außentemperatur
  8326                    // Brenner-Modulation
};

/* activate logging on SD-card. Requires a FAT32-formatted Micro-SD card inserted into the Ethernet-Shield's card slot */
#define LOGGER

int log_parameters[20] = {
//  30000,                  // Logging von "rohen" Bus-Datentelegrammen (macht nur als alleiniger Parameter Sinn)
  8700,                   // Außentemperatur
  8743,                   // Vorlauftemperatur 1
  8744,                   // Vorlaufsollwert 1
  8773,                   // Vorlauftemperatur 2
  8774,                   // Vorlaufsollwert 2
  8830,                   // Trinkwassertemperatur 1
  8831,                   // Trinkwassersollwert 1
  8310,                   // Kesseltemperatur
  8311,                   // Kesselsollwert
  8312,                   // Kesselschaltpunkt
 
  20000,                  // Spezialparameter: Brenner-Laufzeit Stufe 1(/B)
  20001                   // Spezialparameter: Brenner-Takte Stufe 1 (/B)
//  20002,                  // Spezialparameter: Brenner-Laufzeit Stufe 2(/B)
//  20003,                  // Spezialparameter: Brenner-Takte Stufe 2 (/B)
//  20004,                  // Spezialparameter: TWW-Laufzeit (/B)
//  20005,                  // Spezialparameter: TWW-Takte (/B)
//  20006,                  // Spezialparameter: 24h-Durchschnittswerte (/A)
//  20101,                  // Spezialparameter 20100-20199: DHT22-Sensoren 1-100 (/H)
//  20200                   // Spezialparameter 20200-20299: DS18B20-Sensoren 1-100 (/T)
};

unsigned long log_interval = 300;    // logging interval in seconds
boolean log_unknown_only = 1;         // should we log only unknown commands when logging bus telegrams?
boolean log_bc_only = 0;              // should we log only broadcast commands (dest = 0x7f) when logging bus telegrams?

// Activate sending log_parameters to MQTT broker every log_interval seconds
//#define MQTTBrokerIP 192,168,1,20   // Please use commas insteaf of dots!!!
//#define MQTTUsername "User" // Set username for MQTT broker here or comment out if no username/password is used.
//#define MQTTPassword "Pass" // Set password for MQTT broker here or comment out if no password is used.
//#define MQTTTopicPrefix "BSB-LAN" // Choose the "topic" for MQTT messages here


// Activate IPWE extension (http://xxx.xxx.xxx.xxx/ipwe.cgi)
#define IPWE

// Parameters to be displayed in IPWE extension
const int ipwe_parameters[] = {
  8700,                   // Außentemperatur
  8743,                   // Vorlauftemperatur
  8314,                   // Rücklauftemperatur
  8750,                   // Gebläsedrehzahl
  8830,                   // Warmwassertemperatur
  8740,                   // Raumtemperatur Ist
  8741,                   // Raumtemperatur Soll
  8326,                   // Brenner-Modulation
  8337,                   // Startzähler Brenner
  8703,                   // Aussentemperatur gedämpft
  8704                    // Aussentemperatur gemischt
};

//#define MAX_CUL 192,168,178,5                  // IP of CUNO/CUNX/modified MAX!Cube

const char max_device_list[] PROGMEM = {        // list of MAX! wall/heating thermostats that should be polled
  "KEQ0502326"                                  // use MAX! serial numbers here which have to have exactly 10 characters
  "KEQ0505080"
};

// defines the number of retries for the query command
#define QUERY_RETRIES  3

/* enable /N URL command to reset Arduino - might not work on older boards */
//#define RESET

/*
*  Enter a MAC address, found either on the EthernetShield or use the one below.
*/
byte mac[] = { 0xA8, 0x61, 0x0A, 0xAE, 0x11, 0xCF };

// Setting bus pins and bus type
// Bus bus (RX pin, TX pin, parameter 3, parameter 4)
// Software Serial needs special pins for RX: 10-13, 50-53, 62(A8)-69(A15)
// W5100 ethernet shield uses the following pins: 10, 50-53
// BSB:
// - third parameter sets own address, defaults to RGT1 (0x06)
// - use BSB bus(68,69,7) to define device as RGT2
// LPB:
// - third and fourth parameter set own and destination address (high nibble = segment, low nibble = device minus 1)
// - defaults to 0x06 for own address and 0x00 for destination address, i.e. segment 0, device 7 for Arduino and segment 0, device 1 for heating system
// PPS:
// - third parameter set to "1" enables writing to heater - only use this if there is no other room controller (such as QAA50/QAA70) active. Fourth parameter does not have any effect.
BSB bus(68,69);
uint8_t bus_type = bus.setBusType(0);  // set bus system at boot: 0 = BSB, 1 = LPB, 2 = PPS
//#define QAA_TYPE  0x53  // 0x53 = QAA70, 0x52 = QAA50

// Protect these pins from accidental GPIO access
const byte exclude_GPIO[] = {10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69};

// If set to 1, all messages on the bus are printed to the PC
// hardware serial interface
byte verbose = 0;
byte monitor = 0;

// defines default flag for parameters (use "#define DEFAULT_FLAG 0" to make (almost) all parameters writeable)
#define DEFAULT_FLAG 0

// include commands from BSB_lan_custom.h to be executed at the end of each main loop
//#define CUSTOM_COMMANDS

//#define DEBUG
#define ETHERNET_W5500

/************************************************************************************/
/************************************************************************************/
/* Settings -   END                                                                 */
/************************************************************************************/
/************************************************************************************/


Evtl. kann mir jemand helfen, würde mich sehr freuen

Danke

freetz

Hallo bombom,

schau' einmal auf dem seriellen Monitor beim Hochfahren, ob bei der SD-Karten-Meldung am Anfang vielleicht schon gleich ein "failed" kommt, dann kann der Rest auch nicht gehen. Wenn das geht, versuche einmal mit /D0 die Karte zu löschen.
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

Von einem französischen Nutzer habe ich diesen interessanten Artikel aus dem (ebenfalls französischen) Magazin "Hackable" bekommen - da waren wir 2017, als der Artikel erschien, doch schon deutlich weiter ;)...
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

numsi

Stellt euch vor mal vor, man legt die Bestrebungen zusammen.
Abgesehen von den Sprachbarrieren könnten wir dann viiiiiel weiter sein.
Psst!
Brötchen=379Ahex, BigS=3092hex

freetz

Wenn ich so sehe, wie sehr BSB Steuerung in Frankreich verbreitet sind (gerade das Modell aus dem Artikel), dann überlege ich mir schon, ob ich die GitHub-Seite noch mal auf Französisch mache, wenn das bei mir seit über 20 Jahren nicht so eingerostet wäre...
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

Scherheinz

Vielleicht findet sich ja hier jemand der es gut kann. Ich wohne zwar nur einen Steinwurf von Frankreich weg aber ich kann mit der Sprache überhaupt nichts anfangen. Hab auch in meinem näheren Umfeld auch niemanden der da helfen könnte.  :(

Schotty

Zitat von: freetz am 17 Februar 2019, 10:44:46
Wenn ich so sehe, wie sehr BSB Steuerung in Frankreich verbreitet sind (gerade das Modell aus dem Artikel), dann überlege ich mir schon, ob ich die GitHub-Seite noch mal auf Französisch mache, wenn das bei mir seit über 20 Jahren nicht so eingerostet wäre...
Das habe ich mir auch schon überlegt, bzw 'zumindest' das komplette Handbuch nochmal auf Englisch bzw dann eine zusätzliche englische Version der GitHub-pages zu erstellen - aber mit Französisch ist das echt nochmal ne andere Nummer..Hören und Sprechen ist eine Sache, aber Schreiben..oha..das wird wohl -zumindest bei mir- nix..  ;D
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

freetz

Kurze Frage: Ich pflege gerade die SW-Codes als "sprechende" Fehlermeldungen ein. In der Anleitung, aus der ich die Meldungen übernehme, stehen bei Fehler 160 zwei SW-Codes (281/282), die mit "Gebläsedrehzahl Über- bzw. Unterschreitung" bezeichnet sind. Ich denke, dass 281 und 282 dann entsprechend für Über- bzw. Unterschreitung stehen, nur weiß jemand, welcher SW-Code was ist?
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

postman

Moin freetz,
ich will jetzt nicht verwirren  ;)
Bei meiner BBK22e gibt es für das Gebläse nur einen Fehlercode, nämlich 160 Gebläsefehler.
Wäre es nicht einfacher, für die beiden Werte auch nur Gebläsefehler zu schreiben?

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...