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

Dann setz' doch bitte, wie oben beschrieben, vor die möglichen Fehlerquellen aufsteigende Ausgaben, also
Serial.println("1");
vor das query,
Serial.println("2");
hinter das query, usw. usf.
Dann weißt Du genau, was den Fehler auslöst.
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

sponk

Im Prinzip hatte ich ja vor jedem "echten" Befehl einen Serial Print, halt nur mit Zwischenergebnissen (es wird auch das zweite Serial Print aus meinem vorhergehenden Code ausgeführt, nur war das eben leer, auch die query liefert selbst ja einen Serial Print, aber scheinbar nur wenn ein Ergebnis vorliegt). Ich habs jetzt nochmal mit einfachen Zahlen wiederholt es bleibt dabei, die query wird noch ausgeführt, die Umwandlung nicht mehr und führt zum Absturz:

  unsigned long long DS_Addr = std::stoll(decodedTelegram.value, NULL, 16);
Irgendwie muss abgefangen werden, dass das Telegram auch leer sein kann. decodedTelegram.value==0 ging nicht,
atof==0 scheint aber zu funktionieren.

Ganzer Code
for (int i = 0; i < 5; i++) {
  query(20300+i);

  if (atof(decodedTelegram.value)==0) {
    Serial.print("Kein Sensor gefunden für Parameter: ");
    Serial.println(20300+i);
    continue;
  }

  unsigned long long DS_Addr = std::stoll(decodedTelegram.value, NULL, 16);

  // Serial.println(DS_Addr);
  query(20300.1+i);
  // Serial.println(decodedTelegram.value);

  switch(DS_Addr) {
    case (0x28616408EB7E2EA8): // Brenner
      custom_floats[10]=atof(decodedTelegram.value);
      break;
    case (0x28616408EB4370C8): // HK Vorlauf
      custom_floats[11]=atof(decodedTelegram.value);
      break;
    case (0x28619381E3E13CCA): // HK Rücklauf
      custom_floats[12]=atof(decodedTelegram.value);
      break;
    case (0x28B3B181E3E13C1B): // WW Speicher
      custom_floats[13]=atof(decodedTelegram.value);
      break;
    case (0x28AD8E81E3E13CB8): // WW Entnahme
      custom_floats[14]=atof(decodedTelegram.value);
      break;
    default:
      Serial.print("keine Übereinstimmung für ID ");
      Serial.println(DS_Addr, HEX);
  }
}
Gruss aus Unterfranken :-)

freetz

Genau, und deswegen habe ich das ja empfohlen so zu machen, damit eben klar ist, ob der query-Befehl das verursacht oder eben die Ausgabe des Ergebnisses. Manchmal macht es eben schon Sinn, auf den Programmierer zu hören ;).
Das, was Du jetzt mit atof umgesetzt hast, kann man über decodedTelegram.error eleganter und letztlich sicherer lösen.
Die möglichen Werte sind wie folgt:
0 - ok, 7 - parameter not supported, 1-255 - LPB/BSB bus errors, 256 - decoding error, 257 - unknown command, 258 - not found, 259 - no enum str, 260 - unknown type, 261 - query failed, 262 - Too few/many arguments in SET command

Du müsstest mal schauen, ob ein Test auf 0 (= OK) ausreicht oder ob man einen der >255 Werte dafür nehmen sollte.
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

sponk

decodedTelegram.error funktioniert für Sensoren (Fehler 261), die bereits einmal registriert waren und dann abgeklemmt werden. Für die, die aber bereits beim initialisieren fehlen, liefert der error ebenfalls null. Ich habe deshalb beide Prüfungen jetzt drin gelassen. Ich hoffe die Nullgrad werden wir im Heizraum nie erleben :-D

Außerdem habe ich noch ein anderes Problem festgestellt. Wenn ein Sensor ausfällt, rutscht der Wert ja eins nach unten. Die alte Position bleibt aber (zunächst?) mit gleicher ID bestehen, (Wert= "---") und ist also dann zweimal vorhanden. Deswegen geht die Iteration jetzt von hinten durch. Außerdem muss ich zuerst die Werte reseten, sonst lebt ein fehlender Sensor als Zombiewert weiter.

for (int i = 4; i >=0; i--) {
  custom_floats[10+i]=NAN;
 
  query(20300.1+i);
  float DS_Value = atof(decodedTelegram.value);

  if (!(decodedTelegram.error == 0)) {
    Serial.print("Fehler decodedTelegram.value: ");
    Serial.print(decodedTelegram.error);
    Serial.print(" an Parameter: ");
    Serial.println(20300+i);
    continue;
  }

  if (DS_Value==0) {
    Serial.print("Kein Wert gefunden an Parameter: ");
    Serial.println(20300+i);
    continue;
  }

  query(20300+i);
  unsigned long long DS_Addr = std::stoll(decodedTelegram.value, NULL, 16);
 
  switch(DS_Addr) {
    case (0x28616408EB7E2EA8): // Brenner
      custom_floats[10]=DS_Value;
      break;
    case (0x28616408EB4370C8): // HK Vorlauf
      custom_floats[11]=DS_Value;
      break;
    case (0x28619381E3E13CCA): // HK Rücklauf
      custom_floats[12]=DS_Value;
      break;
    case (0x28B3B181E3E13C1B): // WW Speicher
      custom_floats[13]=DS_Value;
      break;
    case (0x28AD8E81E3E13CB8): // WW Entnahme
      custom_floats[14]=DS_Value;
      break;
    default:
      Serial.print("keine Übereinstimmung für ID ");
      Serial.println(DS_Addr, HEX);
  }
}

Ich glaub der Austausch des Spinner-DS18B20 wird auch eher früher als später relevant. Die Fehler häufen sich just während wir hier am Code rumbasteln :'(
Interessanterweise ist es der, der an der Leitung vom Brenneraustritt hängt und somit thermisch etwas mehr beansprucht wird(aber trotzdem nie mehr als 90°C). Sind die Teile so empfindlich? Oder muss man hier tatsächlich zu Markenware greifen? Die allerbilligsten habe ich gar nicht mal genommen...

freetz

Das sieht doch dann gut aus, danke!
Zu den Sensoren und deren Qualität kann ich nichts sagen, da ich wie gesagt selber keine solchen im Einsatz habe...
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

sponk

Jow, dank dir!
Mal sehen ob es sich so bewährt. Ich spiels mal aufs production system über ;-)

MNieddu91

#6681
Zitat von: iversOlO am 05 Mai 2021, 12:47:25Hallo zusammen,

ich hoffe, ich bin hier richtig - sonst würde ich dafür natürlich auch ein neues Thema eröffnen. :-)

Wir haben eine Sieger Ölheizung (TG11) mit Schaltfeld eS62 sowie Mischkreismodul (für die Fußbodenheizung). Ich habe mir das BSB-LAN-Set bei Frederik gekauft, weil ich davon ausgegangen bin, dass ein Anschluss problemlos möglich ist - dem ist leider nicht so, da lediglich zwei Anschlüsse, mit der Kennzeichnung "FB", vorhanden sind.

Allerdings wurde mir von Frederik mitgeteilt, dass man die Steuerung eventuell umbauen und damit ein Stück weit "smart" machen kann - gibt es da Möglichkeiten?

Viele Grüße

Zitat von: freetz am 05 Mai 2021, 12:55:33Da wäre @Schotty wohl am ehesten der "Spezialist", da ich mich selber mit der Heizungs-Hardware und -Aufbau nicht so gut auskenne. Bei Öl-Heizungen soll es m.W. aber einfacher als bei Gasern möglich sein, die Steuerung auszutauschen. Korrigiere mich, wenn ich da falsch liege, aber vom Prinzip her müsste es doch möglich sein, dass iversOIO einen RVS/RVA Regler anschließt, der dann ja von BSB-LAN unterstützt wird, oder? Das sind dann zwar noch mal 100-200 Euro, die man (gebraucht) dafür in die Hand nehmen müsste, aber dann hätte man grundsätzlich eine deutlich vielseitigere Heizung als vorher.

Zitat von: Schotty am 05 Mai 2021, 13:23:20Hmm, also wir haben zwar eine Sieger TG11 gelistet, allerdings mit einem RVA53-Regler (angebunden an BSB-LAN via PPS) und soweit ich weiß auch ohne weiteres Mischkreismodul.
Prinzipiell ließe sich sicher die Regelung tauschen (wobei ich dann eher den RVA63 mit LPB empfehlen würde oder eben die 'aktuellere' RVS-Reihe) - wenn man einen Fachmann an der Hand hat, der sich dazu bereit erklären würde, gebrauchte & selbstgekaufte Teile zu verbauen (oder wenn man selbst 100%ig weiß, was man tut). Das Problem ist bei sowas aber immer, dass -afaik- (streng genommen) bei einem solchen Umbau die Betriebserlaubnis der Anlage bzw. die Gerätezulassung erlischt, was u.U. im Fall der Fälle versicherungstechnisch ein echtes Problem werden könnte..
EDIT: Falls ich mich missverständlich ausgedrückt habe: Ein Fachmann darf einen solchen Umbau natürlich vornehmen, dann erlischt die BE selbstverständlich nicht, er übernimmt als Fachmann dann ja auch die Gewährleistung. Man selbst darf es aber selbstredend nicht, dann würde die BE erlöschen. Der Fachmann wird aber i.d.R. eben aufgrund der Gewährleistung keinerlei Komponenten verbauen, die man selbst besorgt hat. Sprich, man muss das Kosten-Nutzen-Verhältnis abwägen..
EDIT2: Bei nochmaliger Recherche zu dem Thema bin ich persönlich der Meinung, dass das Verbauen eines Fremdfabrikat-Reglers zum Erlöschen der Gerätezulassung führen würde, wenn der Regler nicht vom Heizgerätehersteller für den Einsatz bei dem Modell freigegeben ist. Daran würde sich m.A.n. auch nichts ändern, wenn der Umbau dann letztlich von einem SHKler vorgenommen wird. Aber: Ich bin kein Jurist..!

Davon mal abgesehen: Bei einem solchen Umbau wäre die technische Frage, wie das dann mit dem Mischermodul funktionieren würde/könnte. Deine Sieger-Steuerung scheint einen sogenannten T2B-Bus zu nutzen, über den auch das Mischermodul angeschlossen sein dürfte. Muss ich sonst selbst nochmal etwas rumsuchen&lesen..
Aber schick mir am Besten mal eine Mail, dann können wir weiter überlegen, das ist doch recht BSB-LAN off-topic.. ;)

Hallo in die Runde,
hallo Schotty,

ich bin auf euer Projekt aufmerksam geworden und erst einmal großes Lob, was ihr hier auf die Beine gestellt habt.

In Folge deiner Antwort auf ursprüngliche Nachricht https://forum.fhem.de/index.php?topic=29762.msg1154538#msg1154538 (Beitrag #5611ff) habt ihr das Thema von iversOlO wohl per Mail weiter verfolgt.
Hast du zu diesem Anliegen noch Korrespondenz?

Hintergrund ich habe eine Sieger TG12 mit gleichem Schaltmodul eS62 + Mischererweiterung und den T2B-Bus. Zu Beginn war ich positiv gestimmt, da ihr eine Sieger TG11 bei euch als funktionierend gelistet habt. Ich hatte meine Heizung gestern auf und habe auch den FB Anschluss gefunden. Jedoch stoß ich bei weiterer Recherche dann auf den von mir markierten Beitrag von euch.

Ich suche vergeblich nach einer Möglichkeit zumindest nur bei Wärmebedarf in den Räumen die Heizung etwas Steuern zu können.
Aktuell betreibe ich Homematic mit Heizungsaktoren und Raumthermostaten in jedem Raum.
Eine erste Idee kam mir L1 des Brenners mit einem Relais bei Bedarf zu schalten, dass dürfte aber wohl keine sonderlich gute Variante sein oder?

Ich freue mich über Ideen und Anregungen.

Anbei nochmal der Belegungsplan der Heizung, wenn es hilft:
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen. 



Ergänzung und Teillösung:
Auf bitten von Frederik, der mir in der Zwischenzeit bei einer parallelen Anfrage zum BSB-LAN Board geholfen hat, bin jetzt auf eine für mich Zufriedenstellende Lösung gestoßen, welche ich hier festhalten möchte.

Hierzu habe ich nochmal intensiv die beiden Anleitung(en) eS 62 sowie zur Mischererweiterung eS 68 gelesen. Hierbei ist mir aufgefallen, dass in der Anleitung der Mischererweiterung von einem Variablen Eingang (VE-1) in der Übersicht der Menüstruktur die Rede ist.
Du darfst diesen Dateianhang nicht ansehen.

Problem an dieser Stelle war, dass der Eingang für mich nicht auffindbar war, da kein Eingang auf der Mischererweiterung mit VE1 beschriftet ist.
Im Handbuch der Mischererweiterung unter der Funktionsbelegung des VE-1 ist beschrieben, welche Funktionen auf den Variablen Eingang gelegt werden können. Für mich ist
"5 - Anforderungskontakt" das was ich erreichen wollte, um von statischen Schaltprogrammen weg, hin zu variabler Schaltung bei Wärmebedarf in den Räumen zu kommen. In einem weiteren Menüpunkt lässt sich dann festlegen ob die Anforderung für alle Kreise gilt oder einzeln auf Direktkreis, Mischerheizkreis 1 oder 2 oder auf Warmwasser. Ich tappte nur weiter im dunklen um den ominösen Eingang VE-1.
Der Grundwert, also die Standardeinstellung des Variablen Eingangs ist 16, was mich schließlich auf die Lösung des ganzen Problems brachte. Der Grundwert 16 steht für einen angeschlossenen Abgasfühler, welcher bei mir nicht angeklemmt war. Es befindet sich ein Eingang AGF auf der Hauptplatine (eS 62), welchen ich nach Testen als den besagten VE-1 ausfindig machen konnte.
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.   

Meine bisherigen Vermutungen konnte ich in Folge bei einem Test übeprüfen und brachten die Erwarteten Ergebnisse. Sofern der VE-1 auf Anforderungskontakt gesetzt ist, erscheint im Infomenü eine Variable Anforderung welche die aktuelle Anforderung EIN/AUS widerspiegelt.
Du darfst diesen Dateianhang nicht ansehen. Du darfst diesen Dateianhang nicht ansehen.

In Folge dessen möchte ich den Kontakt mit einem HmIP-PCBS bei Wärmebedarf schalten. Ich setze in meinem Haus BJ'77 auf Homematic und habe neben Falmot C12 und Wandthermostate in jedem Raum ein paar weitere Spielereien wie Licht, Tür und Fensterkontakte.
Folgender Aufbau wird also zeitnah in die Heizung an den AGF Kontakt verbaut.
Du darfst diesen Dateianhang nicht ansehen.

Im Nachgang werde ich mir noch ein geeignetes Programm zur Wärmebedarfsermittlung in der CCU überlegen, auf welcher Grundlage ich dann den PCBS schalte und der Heizung Wärmebedarf melde.

Viele Grüße
Marco

davorin

Schönen Nachmittag (o;

Hatte endlich mal Zeit, das BSB-LAN Interface zu basteln und an einen ESP32 Devkitc anzuschliessen...

Wenn ich das Teil an den LPB meines Siemens RVP300 anschliesse, leuchtet die LED, allerdings ist ein Flackern kaum zu sehen.

Also über einen 470R Vorwiderstand an ein 12V Netzteil angeschlossen und per Scope die Signale angeschaut...
Kurz nach dem Reset wird das Signal am LPB gegen 0.9V etwa gezogen...und ich sehe auch dann die periodischen Abfragen am Anschluss, diese werden ja zurück gesendet an den RX Pin.

Also kein Hardware Fehler.

Nun mit dem Voltmeter am Siemens RVP300 gemessen....

High: 15V
Low: 13.9V (TX Pin am Interface gegen GND)


Kennt jemand die technischen Merkmale dieses Busses? Also benötigter Strom gegen Masse?


muchas gracias
richard


Ich hab mal das Schema umgezeichnet...das Original ist ja alles andere als übersichtilich (o;


sust

Guten Abend Richard,

Eine schöne Zeichnung hast du da gemacht.
Wenn du danach den Adapter aufgebaut hast, müsste eigentlich alles auf Anhieb funktionieren.. Wenn nicht, würd ich die Konfigeinstellungen checken.

Du fragtest nach den Schnittstellenwerten vom LPB Bus.
Wenn du dazu etwas wissen willst, brauchst nur die Anfangsbeiträge in diesem Thread lesen da wirst du Infos finden.
Starten würde ich mit dem Link in Beitrag #15, da kommst du zu  einer Seite  von Niobos auf http://blog.dest-unreach.be/
Interessant für dich ist auch im Beitrag  #1 der Link zum microcontrollernet.
 
Zwar beschäftigt sich Niobos mit dem BSB-Bus der ist aber hardwartechnisch mit dem LPB Bus identisch.
Ich glaube wenn du selbst beides liest kommst du weiter.

Wenn nicht meld dich nochmal.

Viel Erfolg

davorin

Guten Mittag allen (o;

So..hab mal den RVP300 ausgebaut und direkt am BSB-LAN Interface angeschlossen....natürlich kommt vom RVP300 keine Speisung auf dem LPB, daher noch per Vorwiderstand 12V eingespeist...

Signale sehe ich auf meinem altem Yokogawa vom BSB-LAN kommen, aber Antworten erhält es nicht...


Dann bleiben mir nur noch zwei Möglichkeiten, der RVP300 Wärmebedarf der Homematic Fußbodenheizung zu signalisieren:

1. Kontakt H1/M kurzschließen -> Kein Wärmebedarf/Standby
2. Selber mit ESP32 3-Punkt Ventil und Umwälzpumpe ansteuern.



aViN187

#6685
Hi all,

ich habe folgendes Problem: alle 60 Sekunden verabschiedet sich mein OLIMEX ESP32-EVB aus dem WLAN.

13:41:56.632 -> 60003 Ping!
13:41:56.632 -> 60004l Reconnecting to WiFi...
...
1 min delay
...
13:42:56.612 -> 120004 Ping!
13:42:56.612 -> 120005l Reconnecting to WiFi...
13:42:56.612 -> Start scanning for SSID xxx
13:42:58.337 -> Scan done.6 networks found:
13:42:58.337 -> 0: BSSID: 00:00:00:00:00:00  -72dBm,  56%  encrypted  aaa
13:42:58.337 -> 1: BSSID: 00:00:00:00:00:00  -79dBm,  42%  encrypted  xxx
13:42:58.337 -> 2: BSSID: 00:00:00:00:00:00  -79dBm,  42%  encrypted  ddd
13:42:58.337 -> 3: BSSID: 00:00:00:00:00:00  -79dBm,  42%  encrypted  ccc
13:42:58.379 -> 4: BSSID: 00:00:00:00:00:00  -88dBm,  24%  encrypted  eee
13:42:58.379 -> 5: BSSID: 00:00:00:00:00:00  -94dBm,  12%  encrypted  ggg
13:42:58.379 -> SSID match found at 1. Connecting...

Du darfst diesen Dateianhang nicht ansehen.

das passiert immer beim Ping Befehlt ... kann ich irgend etwas dagegen machen? Ich hab schon alles durchsucht und abgesehen von diesem Artikel: https://docs.espressif.com/projects/esp-idf/en/v4.3.5/esp32/api-guides/wifi.html im Absatz "WIFI_EVENT_STA_DISCONNECTED" nichts gefunden - und selbst der Absatz liefert keine Hinweise zur Behebung.
Meine WIFI Umgebung basiert auf Ubiquiti mit einem 2,4 Ghz Netz.

Vielleicht hat jemand ähnliche Erfahrungen oder hat Tipps was ich unternehmen könnte?

Vielen Dank und LG



sust

Davorin,

Deine externe LPB Busspeisung über den 470 OHm Widerstand solltest du abbauen...
 
Schau einmal die Anleitungen für deine RVP300 durch. Konfiguarationsvorgaben für die Busspeisung und die LPB Geräteadresse müsstest du dort finden können.
Erst wenn der Bus so freigegeben wurde sind beobachtbare  Daten in regelmäßigen Abständen oder beim Reset der RVP zu erwarten.
Solltest du dann Daten von dem Regler monitoren können, bitte diese erst interpretieren und mit denen vom BSB-Lan abgleichenen. Erst bei Gleichheit selbst was via BSB-Lan senden!!! Beim Interpretieren kannst du dich ja nach dem Vorgehen von Niobos richten.   

freetz

Sorry wieder einmal für die späte Rückmeldung, wieder mal keine Benachrichtigung bekommen :(...
@davorin: Ich habe hier zwei RVP3xx in Verwendung und kann Deine Probleme nicht nachvollziehen. Ich kann aber auch aus der Ferne keinen Support für selbstgebastelte Adapter bieten. Wenn Du einen fertigen und getesteten Adapter brauchst, melde Dich gerne bei mir.
@aViN187: Den Reconnect macht BSB-LAN dann, wenn das ursprünglich gewünschte WLAN nicht gefunden wurde oder nicht mit der bevorzugten BSSID verbunden wurde oder die WLAN-Verbindung abgebrochen ist. Das ist also ein Netzwerk- oder Konfigurationsproblem. Mit dem Ping hängt das nur insofern zusammen, dass beide zu den gleichen Zeitintervallen (nacheinander) abgearbeitet werden.
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

fredje

Hallo, benutze BSB schon seit langer Zeit, ist über fhem und mqtt2 angebunden. Es gibt Parameter
die ich weder über das Webinterface noch über Mqtt setzen kann z.B 882. (Fachmann Ebene) Können
diese generell nicht gesetzt werden oder fehlt mir noch eine Einstellung im BSB. Danke

freetz

Hast Du denn generell Zugriff auf den Parameter an der Heizung? Dann schick' mal ein SerMo-Log vom Setzen des Parameters an der Heizung und dann eins, was bei BSB-LAN dabei passiert...
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