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

loetmeister

Hi,

ich weiß nicht genau was für eine Änderung das war... aber du hast alle Übernommen. Sonst würde ein diff das zeigen...


Gruß,
Thomas

freetz

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

Schotty

#4382
Zitat von: freetz am 22 Januar 2020, 23:47:18
"Kompilieren klappt nicht mehr" mit angehängtem Screenshot einer Minisequenz der Konsolenausgabe ;)
Du meinst so, wie ich es auch immer gerne mache? ;)

Das kommt daher, dass man als Noob annimmt, dass es dann vielleicht leichter für dich/euch sein könnte, den Fehler zu finden - schließlich ist da häufig die komplette Fehlermeldung und der entspr Bereich im Code zu sehen, wenn es sich dabei nur um einen Ein-/Dreizeiler handelt, wie im aktuellen Fall auch:

/home/db/BSB_lan/BSB_lan.ino: In function 'void setup()':
BSB_lan:6965:18: error: 'bus_type' was not declared in this scope
   bus.setBusType(bus_type);  // set bus system at boot: 0 = BSB, 1 = LPB, 2 = PPS

Screenshot habe ich aus Gewohnheit natürlich direkt erstellt, aber dann erspare ich Euch den mal..  ;D

EDIT: Codetags especially for @loetmeister hinzugefügt ;D
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

loetmeister

Ei ei ei... Und dann noch ohne Code tags...  ;D

Was steht denn in deiner bsb_lan_config.h? Bzgl bus_type und BSB?

Gruß,
Thomas

Schotty

#4384
Zitat von: loetmeister am 24 Januar 2020, 09:46:12
Ei ei ei... Und dann noch ohne Code tags...  ;D
..ich hab's befürchtet und gedacht, als ich auf "Schreiben" geklickt hatte lol - füge ich aber gleich extra für dich hinzu  :-* ;D

Zitat
Was steht denn in deiner bsb_lan_config.h? Bzgl bus_type und BSB?
Ich habe -wie immer in solchen Fällen- die aktuelle config.h.default genommen und angepasst, in diesem Fall für die Hardware-Serial:

BSB bus(19,18); // BSB bus(19,18); // pin 19,18 = USART Serial1
constexpr uint8_t BUS_TYPE = 0;  // set bus system at boot: 0 = BSB, 1 = LPB, 2 = PPS


EDIT: Ursprüngliche Zeile:

BSB bus(68,69); // BSB bus(19,18); // pin 19,18 = USART Serial1
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

@loetmeister:
Nur zur Info: Speziell wenn so umfangreiche Änderungen in BSB-LAN vorgenommen wurden, versuche ich möglichst zeitnah das aktuelle Repo zu testen und übernehme dann i.d.R. nichts von vorherigen Versionen.
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

loetmeister

Hi Schotty,

Ja, testen ist gut. Default config passt aktuell nicht mehr..  :-[
constexpr uint8_t BUS_TYPE = 0; musste constexpr uint8_t bus_type = 0; lauten.

Mit der alten config uint8_t bus_type = bus.setBusType(0); sollte es aber auch funktionieren.

Gruß,
Thomas

Schotty

Ich wollt's nur kurz melden und warte dann ab, bis freetz das geändert hat. Bin eh grad aufm Sprung..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

freetz

@Schotty: Danke für das Testen - ich hatte es nur mit meiner alten Version der _config.h getestet, die ging, aber es stimmt, das Problem liegt da, wo @loetmeister es gefunden hat.
Und was die Fehlermeldungen angeht: Manchmal ist ein Screenshot schon ausreichend, wenn es wirklich nur eine kleine Fehlermeldung ist (obwohl ich auch da copy/paste speicher- und damit sogar quasi umweltschonender finde ;) ). Aber oft führt ein Fehler zu weiteren Fehlermeldungen, und wenn da dann nur die letzte aufgeführt ist, der Grund dafür aber weiter oben zu finden ist, bringt ein Screenshot wenig. Fehlermeldung mit Code-Tags (im Forum) oder per Mail als TXT-Attachment ist die sinnvollste Variante.

Fehler ist jetzt auf GitHub auf jeden Fall gefixt...
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

Schotty

Na dann ist ja gut, dass wir das nach über drei Jahren unserer Zusammenarbeit geklärt haben ;D  Ich dachte wirklich immer, es ist angenehmer, nur die eigentliche Fehlermeldung zu schicken als dich mit dem kompletten Output 'vollzumüllen' (wie gesagt, bei einfachen Meldungen - komplexere Dinge habe ich ja dann auch als txt-file geschickt). Aber gut, dann gibt's von mir in Zukunft immer den kompletten Output als txt - sicher ist sicher ;)

Yupp, jetzt funzt alles wie es soll - super!

PS: Wenn Ihr so weiter macht mit der Speicheroptimierung, dann wird der Umstieg auf den Due ja schon bald hinfällig (Spaß!) ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

freetz

Na, weil es bei Dir vermutlich immer gereicht hat, um den Fehler zu identifizieren, brauchte ich auch nix sagen ;) - ich mach' das ja nicht, um der Sache willen, sondern es kam ja jetzt zu einem konkreten Anlass.
Und zwar ist Speicheroptimierung immer gut (sofern er dann nicht irgendwann auf Kosten der Lesbarkeit geht), aber wir reden hier ja von zweistelligen Byte-Größenordnungen. Eine neue Zeile in der _defs.h kostet ja schon wieder 17 Byte, so dass das ein bisschen ein Nullsummenspiel ist. Mein nächstes größeres Ziel ist es, die Konfiguration (fast) komplett aus der _defs.h herauszunehmen und alles über das Webinterface und das Speichern der Einstellungen im EEPROM zu machen. Das wird - alleine schon wegen des HTML-Codes für die Weboberfläche - einiges an kB kosten. Danach wird man sehen müssen, ob man den verbleibenden Platz für Features oder für etwaige Erweiterungen der _defs.h nutzt. 
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

@loetmeister: Ich habe jetzt erst mal wieder Deine Änderungen auf dem Due geflasht, mit dem Ergebnis, dass auf der seriellen Schnittstelle nichts mehr zu sehen ist, da mit der momentanen Abfolge ja immer noch in der _config.h
BSB bus(19,18)
aufgerufen wird, noch bevor die setup()-Funktion gestartet hat. Da dann voher schon bei der Initialisierung der bus-Variable die serielle Schnittstelle geöffnet wird, kommt es ja zu dem vorher schon erwähnten Problem, dass im Gegensatz zum Mega nicht auf die Schnittstelle zugegriffen werden kann. Ich musste jetzt das Öffnen der seriellen Schnittstelle wieder in die setup()-Funktion verschieben, denn die einzige Alternative, die ich sehen würde, wäre mit einem #define in der _config.h zu arbeiten (z.B. #define SerialPins 19,18). Das würde aber bei allen, die updaten, erfordern, dass sie ihre _config.h ändern, was ich (zum jetzigen Zeitpunkt) vermeiden wollte.
Oder siehst Du noch eine andere Möglichkeit?
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

loetmeister

#4392
Hi,

solche Tests wollte ich eigentlich im "dev" branch machen und dann nur die Änderungen in den "master" branch übernehmen die passen... :)

Define für die Pins und Bus Type wär schön... aber im aktuellen setup müsste es so z.B. klappen:
https://github.com/loetmeister/bsb_lan/commit/33d3eff31c615e946c83c724ba5c74e9d09d7af1


EDIT: Habe mal zum testen eine Funktion eingebaut, die (bereits bestehenden) Text aus dem PROGMEM Speicher list (z.B. in /Q, das char array STR6220,  statt den selben Text STR6220_TEXT noch mal zu speichern). Auch habe ich ein paar weitere Textstücke in PROGMEM abgelegt. Das ganze lohnt aber ehrlich gesagt nur, wenn es viele Aufrufe gibt. Gespart wird 896 Byte. (vergleich mein master <-> dev, mit dem Stand von deinem Repo von heute)
// PROGMEM print (reads & print char array from PROGMEM)
void clientPPrint(const char str[]) {
  char c;
  while((c = pgm_read_byte(str++))) // alle chars lesen
    client.write(c);   // und ausgeben
}

https://github.com/loetmeister/bsb_lan/commit/0e58eda3c2906e30b8e7bed16fa6bd5c1c64c48d
Vielleicht kann man das sinnvoll nutzen....  ::)

Gruß,
Thomas

freetz

Danke! Leider klappte es nicht ganz so, denn wenn man die bestehende Config lässt, wird trotzdem durch den Aufruf der Funktion setBusType() in der _config.h versucht, auf die serielle Schnittstelle zu schreiben ("My address" usw.), bevor die Schnittstelle dann in setup() konfiguriert wird, was auf dem Due zu dem besagten Problem führt, so dass ich das jetzt erst mal wieder auskommentieren musste. Die Zuweisung von rx_pin = rx musste auch nach oben, weil voher ja schon auf 19 geprüft und die HwSerial Variable entsprechend gesetzt wird, die sonst nie auf true ging. Aber nun funktioniert's, danke!
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

loetmeister

Hi,

ach, ja... hatte ich wieder vergessen, dass das eigentliche Problem in setBusType() in der _config.h Serial war (also UART0) und nicht Serial1 (UART1, an dem der Bus hängt) :-[

ZitatDie Zuweisung von rx_pin = rx musste auch nach oben
Die hätte auch so bleiben können, wenn rx statt rx_pin nutzt. Ich hatte testweise alles in die enableInterface() Funktion verschoben und das wohl beim zurück bauen vergessen...
Aber alles am Anfang der Funktion/Kontruktor ist auch schön :)

Die eigentliche Lösung war aber jetzt "Serial.print(F("My address: "))......" komplett aus "setBusType()" raus zu nehmen?  :D

Gruß,
Thomas