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

Malz1902

Hallo, mir ist gestern aufgefallen als ich die Parameter 2793 Pumpendrehzahl Maximum bzw 2792 Pumpendrehzahl Minimum über das BSB Lan ändern wollte kam die Meldung setzen Fehlgeschlagen. An meiner Anlage selbst konnte ich die Parameter ändern.

Diese Parameter sind nur in der OEM Ebene sichtbar/setzbar.

Kann BSB Lan keine OEM Parameter setzen? Oder muss man noch irgendwas einstellen?In den Einstelungen ist der Schreibzugriff auf Ein (Komplett) gestellt

freetz

Doch, kann es - wenn es nicht geht, dann bitte die Telegramme beim Ändern an der Heizung und beim Setzen über BSB-LAN loggen und hier posten.
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

Noch mal eine Frage an die Elektronik-Spezialisten hier:
Wir haben beim Olimex EVB ja, wie vor einigen Posts schon erwähnt, das Problem, dass der TX-Pin (GPIO4) während des Bootens des Olimex noch ein Input-Pin ist und während des Boot-Vorgangs aber nicht auf HIGH sein darf. Die Lösung mit dem Widerstand zwischen GPIO4 und GND löst zwar dieses Problem, sendet aber gleichzeitig während des Bootvorgangs konstant eine logische 1, die dann auf BSB-Seite bei manchen Heizungen entweder als Kurzschlussfehler oder als falsche Buskommunikation gemeldet wird. Das ist zwar kein grundsätzliches Problem, führt aber bei manchen sicher zu Verunsicherung und Nachfragen.

Nun kam die Idee auf, mit einem RC-Delay zu arbeiten und die Stromversorgung des Boards vom 3V3-Pin kommend mit so einer Komponente  um etwa eine Sekunde zu verzögern. Dafür finde ich nun Lösungen sowohl mit als auch ohne Transistor.
Meine zwei Fragen dazu wären nun:
1. Reicht auch eine Lösung, die bloß aus Widerstand und Kondensator besteht? Oder worin bestünde ein Vorteil der Variante mit Transistor?
2. Wirkt sich der verwendete Widerstand (ich dachte jetzt an 10k und 100µF für eine Sekunde Verzögerung) auch auf die übrige Schaltung aus? Oder ist das zu vernachlässigen?

Würde mich über Eure Rückmeldung freuen, danke schon mal!
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

Mike_pa

@freetz   mit einem 10k Widerstand in der Spannungsversorgungsleitung funktioniert die Schaltung nicht mehr. Durch den Optokoppler fließen im Betrieb geschätzt 5mA, der 10k Widerstand würde aber maximal ca. 0,15mA fließen lassen. Der Widerstand müßte also sehr niederohmig sein, der Kondensator würde dadurch sehr groß.
Mit Transistor PNP (wie der schon verwendete BC557): Emitter an +3.3V (53), Kollektor an TP1, Basis über Widerstand an Masse und Kondensator an +3.3V.
Der Widerstand darf nicht zu groß sein, da der Transistor sonst nicht in Sättigung geht und der Spannungsabfall zwischen Emitter und Kollektor zu groß wird.
Der Transistor schaltet bereits bei einer kleinen Spannung durch, und damit überschlagsmäßig schon bei einer Zeit von ca. 1/5*R*C, für eine Sekunde wäre C bei 10k Widerstand ca. 470uF. Alternative: Widerstand 4k7 von Basis nach 3.3V, gleichzeitig einen GPIO Pin des Olimex an die Basis des Transistors legen. Diesen GPIO nach dem Booten nach 1 Sekunde als Output programmieren und auf 0 setzen.

freetz

Danke für die schnelle Rückmeldung und Erklärung! Die Alternative mit dem Transistor über Widerstand an einen GPIO hatte ich auch schon überlegt, nur muss man dafür einen GPIO opfern, denn beim Olimex EVB sind alle GPIOs schon belegt, bzw. sind über den UEXT-Port nur noch SPI und I2C ausgeführt - da wäre dann eins der beiden nicht mehr verfügbar.
Ich hatte ursprünglich auch einen anderen Pin auf UEXT1 für den Serial Port ausprobiert, meinte aber, dass das nicht geklappt hätte. Das werde ich auch noch mal prüfen, denn u.U. ist es einfacher dann auf einen anderen Pin für den Serial Port auszuweichen, der beim Booten unproblematisch ist. Dann bräuchte man keine neuen Bauteile, die dann ggf. bei anderen Olimex-Board-Revisionen angepasst werden müssten (weil der Boot-Vorgang dann doch länger als 1 Sekunde braucht etc.). Dann müssten die bisherigen Olimex-User bei einem Update einmalig ihre Pin-Konfiguration anpassen, aber das betrifft bisher glaube ich nur ein gutes Dutzend Leute...

Danke auf jeden Fall und VG, 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

Malz1902

Mal ne andere Frage, vielleicht hat wer von euch ne Ahnung. Ich möchte jeden Morgen um 6 Uhr einen mauellen TWW Push machen, machmal klappt das manchmal nicht, wei0 einer wieso? Liegt das evtl daran weil der Sollwert nicht und der Differenz ist für Warmwasseraufbereitung? Jedoch dann würde der Push ja eh nichts bringen weil dann findet ja eh TWW rwärmung statt

Schotty

Möglich, dass das Wasser nicht kalt genug ist, um einen Push zu erlauben (weil es bereits zuvor erwärmt wurde) - weiß ich aber nicht definitiv. 
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

n300

Der Push sollte eigentlich immer funktionieren, auch wenn du nur 1K unter Sollwert bist, sonst würde ja ohnehin die automatik zuschlagen.
Wie löst du den Push aus und bist du sicher, dass der BSB-LAN den Befehl auch wirklich umgesetzt hat?

Schotty

Nein, wann die Automatik zuschlägt ist von der Schaltdifferenz abhängig.
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

n300

Ja die Automatik schon, das ist klar. Die schlägt zu wenn der Wert zB. 5K unter dem Sollwert liegt. Aber der Push geht immer, sonst wäre die Funktion ja sinnlos.
Hab ich bei mir auch schon viele Male so durchgeführt.

Daher wäre meine Frage gewesen welches HA-System den Auftrag für den TWW-Push erteilt und ob das eventuell den Return vom BSB-LAN mit logged. Dann könnte man zumindest sagen, ob der Befehl überhaupt verarbeitet wurde. ich sag nur Single-Thread HTTP-Server am Arduino. Wenn der zum gewünschten Zeitpunkt des TWW-Push grade anderweitig beschäftigt ist, läuft der Auftrag ins Leere, wenn man das nicht entsprechend abfängt.

Malz1902

#5860
Den Auftrag mache ich direk im WebUI von BSB Lan. Stelle Parameter für den TWW Push von Aus auf Ein und sage Set, dannach ist dieser aber wieder Aus.
Wenn ich dann im Keller gehe an die WP und einen Push machen will, so klappt dieser auch nicht - im Display steht zwar manuelleer TWW Push ein, aber es wird nicht geladen
SOLL Temp: 46°C
IST 45,3°C

Ich werde das später nochmal testen wenn IST bei unter 45°C ist,

5024 - TWW Schaltdifferenz steht auf 5K, sprich bei IST <41°C wird automatisch das TWW erwärmt

Ich ganze steuer das sonst direkt übden ioBroker, habe zum test jetzt aber die Verbindung vom ioBroker zu BSB Lan unterbrochen, damit ich das direkt per WebUI machen kann.

Parameter 5070 steht auf Aus

freetz

Mein Verständnis: Der Push macht nur in dem Reduziert-Zeitraum Sinn, wo der Reduziertwert zwar überschritten, aber der Sollwert abzüglich Schalt-Differenz noch unterschritten ist, aber noch nicht der Komfort-Zeitraum begonnen hat.
Sprich, Komfortzeitraum beginnt um 6:00 Uhr und soll auf 50 Grad heizen, im Reduziert-Zeitraum bis 6:00 Uhr reicht aber 35 Grad. Wenn ich dann um 5:45 Uhr duschen möchte und TWW bei 38 Grad liegt, kann ich "pushen".
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

n300

Ok, ein Delta von grade mal 0,7K ist vielleicht wirklich zu knapp am Soll. Aber wenn der mal so 2-3K beträgt ging es bis jetzt immer, wenn ich mich jetzt nicht komplett vertue.

Schotty

Zitat von: n300 am 13 November 2021, 11:15:24
Ok, ein Delta von grade mal 0,7K ist vielleicht wirklich zu knapp am Soll.

..würde ich sogar ein Bier drauf verwetten ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Bauerranger

Hallo,

bräuchte mal wieder eure Hilfe. Hab die Woche mir mal ein Upgrade geleistet auf den Olimex ESP32. Hab mich nach besten Gewissen an die Anleitung gehalten. Leider bekomme ich folgende Fehlermeldung.Arduino: 1.8.16 (Windows Store 1.8.51.0) (Windows 10), Board: "OLIMEX ESP32-EVB, 80MHz, 115200, Minimal SPIFFS (Large APPS with OTA)"





















BSB_LAN:510:42: error: no matching function for call to 'EEPROMClass::EEPROMClass(const char [4], int)'

EEPROMClass EEPROM_ESP("nvs", EEPROM_SIZE);

                                          ^

In file included from C:\Users\bauerranger\Desktop\BSB-LAN-master\BSB_LAN\BSB_LAN.ino:502:

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:39:5: note: candidate: 'EEPROMClass::EEPROMClass()'

     EEPROMClass(void);

     ^~~~~~~~~~~

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:39:5: note:   candidate expects 0 arguments, 2 provided

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:38:5: note: candidate: 'EEPROMClass::EEPROMClass(const char*)'

     EEPROMClass(const char* name);

     ^~~~~~~~~~~

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:38:5: note:   candidate expects 1 argument, 2 provided

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:37:5: note: candidate: 'EEPROMClass::EEPROMClass(uint32_t)'

     EEPROMClass(uint32_t sector);

     ^~~~~~~~~~~

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:37:5: note:   candidate expects 1 argument, 2 provided

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:35:7: note: candidate: 'constexpr EEPROMClass::EEPROMClass(const EEPROMClass&)'

class EEPROMClass {

       ^~~~~~~~~~~

C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\EEPROM\src/EEPROM.h:35:7: note:   candidate expects 1 argument, 2 provided

Mehrere Bibliotheken wurden für "WiFi.h" gefunden

Benutzt: C:\Users\bauerranger\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.1\libraries\WiFi

Nicht benutzt: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.51.0_x86__mdqgnx93n4wtt\libraries\WiFi

exit status 1

no matching function for call to 'EEPROMClass::EEPROMClass(const char [4], int)'



Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.


Vielleicht könnt ihr mir helfen.

Danke schonmal

Gruß Ranger