wunschliste modul BSB-Bus (Brötje, Elco Thision etc.)

Begonnen von justme1968, 14 Februar 2018, 14:09:54

Vorheriges Thema - Nächstes Thema

justme1968

@freetz: ich baue gerade ein das fhem vor dem flashen des hex file die mac und ip patched. damit kann man dann eine standard version mit ausliefern und muss nicht mehr selber kompilieren wenn es nur im diese beiden änderungen geht. aber das binäre patchen ist natürlich nicht ganz sauber. funktioniert aber.

eine alternative wäre wenn man die beiden adressen optional aus dem eeprom holen könnte. z.b wenn beides im sketch auf 0 initialisiert ist wird der wert aus dem eeprom geholt. das einmalige beschreiben des eeproms könnte man dann z.b. über ein serielles kommando machen. meinst du der code passt noch in den speicher?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

freetz

Das wäre an sich eine schöne Idee, die vom reinen Speicherplatz her auch noch passen würde, allerdings habe ich bei meinem Robotan-Projekt gemerkt, dass zumindest beim ESP8266 das EEPROM nicht standardmäßig bzw. durchgängig auf Null ist. Bei manchen ist es auf 00, bei andern auf  FF, bei wieder anderen auch noch durchwachsener. Ich müsste im Script ja einen eindeutigen "Leerzustand" abfragen, um in dem Fall den Wert aus der Config zu nehmen, und nur dann das EEPROM verwenden, wenn der Bereich dort nicht "leer" ist. Man könnte evtl. ein bestimmtes Byte als Marker nehmen und das auf einen bestimmten Wert setzen, und wenn das gesetzt ist, wird aus einem anderen Bereich die IP übernommen. Bei einer zufälligen Werteverteilung im EEPROM könnte es dann zwar immer noch zu false positives kommen, aber wohl dann doch eher selten.

Würde ich mir aber erst dann auf ToDo setzen, wenn die anderen Punkte mit JSON etc. endgültig abgeschlossen sind, ok?
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

justme1968

das mit dem 'leerzustand' ist glaube ich nicht so problematisch.

in unserem fall müssen wir ja nicht entscheiden ob der eeprom wert gültig ist, sondern nur ob der wert aus dem sketch gültig ist oder ob das eeprom gelesen werden soll. d.h. wenn im sketch der 'leerzustand' einkompiliert ist (d.h. kein wert explizit gesetzt) dann wird der wert aus dem eeprom genommen. egal was dort steht. wenn da auch nichts sinnvolles steht ist das egal. mit dem wert aus dem sketch wäre es ja auch nicht gegangen. der default wert im eeprom ist also egal und nur der default wert im hex file wichtig. und der ist eindeutig.

den wert im eeprom könnte man auf zwei arten setzen: per seriell und aus dem sketch und zusätzlich wenn etwas einkompiliert ist diesen wert auch schreiben.

eilt nicht. zum testen patche ich erst mal weiter binär :). das ist schon mal besser als immer wieder den quelltext zu editieren und für das jeweilige system anzupassen und dann aus versehen doch aufs falsche board zu flashen :(

ansonsten: ich habe inzwischen ein zweites system nur zum testen und es kommt demnächst eine version des moduls mit set kommandos.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

freetz

Ok, dann würdest Du eine Version kompilieren, bei der die IP-Adresse leer ist (anstatt wie jetzt mit der entsprechenden IP belegt)? Das wäre natürlich einfacher umzusetzen.
Den in der _config.h gesetzten Wert noch ins EEPROM schreiben macht, wenn man die oben genannte Bedingung zur Grundlage nimmt, aber wenig Sinn, weil beide Werte dann eigentlich immer gleich wären (außer man setzt zuerst den Wert in der Config und löscht ihn dann später, aber wozu?). Wenn man das EEPROM direkt per USB beschreiben kann, wäre die Sache ja wirklich relativ überschaubar, dann bräuchte ich am Anfang nur die Überprüfung und das Einlesen umzusetzen, und wir müssten den Speicherbereich festlegen.
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

justme1968

ja. mac und ip leer bzw. mit einem eindeutigen, aber nicht sinnvollen default belegt. dann wird alles aus dem eeprom gelesen.

avrdude kann das eeprom beschreiben, aber scheinbar unterstütz es der bootloader der meisten arduinos nicht. ob es beim atmega2560 geht habe ich noch nicht probiert. deshalb der weg über die config. d.h. man müsste ein mal einen passend konfigurierten sketch flashen, dieser schreibt die werte beim start ins eeprom und beim flashen später kann man dann den default sketch verwenden.

die kür wäre natürlich das seriell initialisieren auch im sketch zu unterstützen. eigentlich nicht aufwändig, aber das braucht natürlich mehr code und muss implementiert werden. deshalb der einfache workaround über die config.


falls wir das mit dem eeprom nicht einbauen: könntest du in der config.h mac und ip direkt hintereinander ins gleiche array stecken: byte network[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEA, 0x00, 0x00, 0x00, 0x00} dann wäre beim binär patchen das risiko für einen konflikt kleiner.

ps: wie schaut es eigentlich mit der netmask aus? woher kennt der sketch die?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

freetz

Aber dann müsste der User ja doch wieder vor der ersten Benutzung die ganze IDE etc. installieren, kompileren usw.
Wäre es da nicht einfacher einen eigenen Mini-Sketch zu haben, der ohne IDE sondern nur mit avr-gcc kompiliert wird und nichts anderes macht, als die IP ins EEPROM zu schreiben? Dann könnte im Anschluss der fertig kompilierte BSB_LAN-Sketch hochgeladen werden und die User müssten sich um gar nichts mehr kümmern.

Wenn das nicht ohne Weiteres möglich ist, würde ich es eher so umsetzen, dass auf der seriellen Schnittstelle auf ein Signal gelauscht wird, dem dann die IP folgt, die dann ins EEPROM geschrieben wird. Mehr Aufwand, aber würde den Usern die Installation und Konfiguration der IDE ersparen, und nur darin sähe ich einen wirklichen Mehrwert, das über FHEM flashbar zu machen, denn wenn man die IDE sowieso schon auf dem Rechner hat, kann man von dort ja auch direkt flashen.

Netmask ist standardmäßig 255.255.255.0. Bisher gab es noch keine Notwendigkeit das auch noch konfigurierbar zu machen, auch wenn es natürlich ginge...
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

justme1968

wenn du den code für das auslesen eines seriellen kommandos zum setzen der werte noch in den sketch bekommst ist das natürlich noch besser. die diversen anderen arduino sketches die es für fhem gibt machen das ja auch so.

aber die idee mit dem mini sketch ist auch gut. aber gleich noch einen schritt weiter: der mini sketch bekommt serielle kommandos um per terminal die daten ins eeprom zu schreiben. dann muss man ebenfalls nichts mehr kompilieren. den code könnte man dann später mal in den bsb sketch übernehmen.

ob mini sketch oder gleich im bsb hängt dann eigentlich nur noch davon ab ob der mini sketch einfacher zum testen ist oder ob man es gleich richtig macht.

der rechner an dem das board hängt muss übrigens nicht der gleiche sein auf dem die idee läuft. ich habe z.b. im keller einen raspberry der nur 1wire macht und an dem das board per usb hängt. fhem läuft auf einem zweiten system und zum entwickeln verwende ich noch mal zwei andere rechner..

ich habe aktuell ein 255.255.255.0 netz, muss/will aber demnächst auf 255.255.0.0 wechseln. an sich kein grosser aufwand da ich sowieso schon 10.0.1.x ip adressen verwende, aber ohne die passende netmask im sketch problematisch.


also die idee noch mal zusammen gefasst:

- der bsb sketch bekommt die möglichkeit mac, ip und netmask aus dem eeprom auszulesen wenn die werte aus der config auf 'leer' initialisiert sind.

- es gibt im bsb sketch (oder einem zweiten mini sketch) die möglichkeit die default werte über ein serielles kommando ins eeprom zu schreiben

- ich würde mit fhem ein ein bsb hex file mit dieser 'leeren' konfiguration ausliefern und aktualisieren. und gegebenenfalls den mini sketch.

- im modul baue ich ein das man direkt aus fhem heraus flashen kann wenn das board lokal oder remote per usb erreichbar ist.

- wenn das setzen der parameter direkt im bsb sketch landet (statt im mini sketch) baue ich auch die konfiguration direkt ins modul ein.

damit könnte man dann das board komplett in betrieb nehmen und updaten ohne selber etwas zu kompilieren
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

freetz

Dann würde ich sagen, wir fangen mit dem Mini-Sketch an, denn bis zum Herbst liegt meine Priorität gerade auf dem Rasenmäher-Projekt. Wenn das dann gut läuft, könnte ich auch schauen, ob man das dann perspektivisch in BSB_LAN komplett mit integriert. Vergrößert aber halt den Speicherbedarf, so dass man mal schauen müsste, ob die Mini-Sketch-Version nicht genauso problemlos läuft und zwei Fliegen mit einer Klappe schlägt. Netmask füge ich dann noch hinzu, kein Problem.

Das mit den zwei Rechnern habe ich auch so (Syno NAS im Keller mit avrdude, an die der Mega angeschlossen ist, kompilieren auf dem MacBook). Nur ist die größte Hürde für viele glaube ich die IDE und die Einstellungen. Wenn man die schon mal gemacht hat, wird man wohl eher auch denS Sketch selber kompilieren, um dann die Konfiguration komplett individuell zu machen (mit Logging etc.). Da das ja bei dieser Variante nicht geht, wird es eher für die Anfänger von Nutzen sein, die auch nicht immer die cutting edge Version haben wollen.
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

Zitat von: llit am 22 April 2018, 19:05:28
ich bin mir nicht sicher ob ich hier richtig bin oder ob ich einen anderen Thread nutzen sollte. Ich habe euren BSB-LAN Adapter nachgebaut. Als erstes einmal DANKE !!!! ein tolles Projekt.

Hallo Illit, dies ist der Thread für die Modulentwicklung zur BSB-LAN-Anbindung - kannst du deinen Beitrag dorthin https://forum.fhem.de/index.php?topic=29762.0 verschieben? Dann bleibt es für alle Beteiligten übersichtlicher ;)
Danke & Gruß
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Jewe

Hallo Leute,

ich habe heute, da es mir keine Ruhe lies, das ganze noch einmal ausprobiert. Der Ardunio hängt bei mir an einem USB-Ladenetzteil.
Dieses Habe ich gegen ein grosses Netzteil 12V ausgetauscht. Es gab ja wohl das ein oder andere Problem mit der USB Teilen. Leider
brachte das kein Erfolg. Dann habe ich die BSB Software neu aufgespielt Version 0.41  - 18.02.2018. Keine Änderung.
In Fhem habe ich jeweils das BSB-Modul neu definiert.

Version 98_BSB.pm # $Id: 98_BSB.pm 13780 2017-03-23 13:25:41Z justme1968 $

Die Rechte und User der 98_BSB.pm sowie der jquery Dateien hab ich geprüft und sollten passen. Bei der 98_BSB.pm war Besitzer pi und nicht fhem.

Es geht einfach nicht mehr. Am anfang ging es ja mal kurz (halblebig) und ein paar Kategorien kamen.

Hat noch jemand einen Tip ??

Jens

Schotty

Zitat von: Jewe am 10 Mai 2018, 23:39:13
Der Ardunio hängt bei mir an einem USB-Ladenetzteil.
Dieses Habe ich gegen ein grosses Netzteil 12V ausgetauscht.
12V ist imho schon recht viel - auf Dauer kann ich 9V-Netzteile empfehlen, habe ich bei mir auch nur im Einsatz, kostet ca nen Zehner.

Zitat
Version 98_BSB.pm # $Id: 98_BSB.pm 13780 2017-03-23 13:25:41Z justme1968 $

Die Rechte und User der 98_BSB.pm sowie der jquery Dateien hab ich geprüft und sollten passen. Bei der 98_BSB.pm war Besitzer pi und nicht fhem.

Es geht einfach nicht mehr. Am anfang ging es ja mal kurz (halblebig) und ein paar Kategorien kamen.

Hat noch jemand einen Tip ??
Also geht es dir gerade 'nur' um den Einsatz des Moduls? Adapter und BSB-LAN funktionieren prinzipiell?
In dem Fall würde ich sagen: Abwarten.. Ich habe Andre ein Testsystem geschickt, damit er unabhängig von seiner eigentlichen Heizung entwickeln kann. Wie da derzeit der Stand ist, weiß ich gerade nicht, aber auf jeden Fall kommt da was.. ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Otharon

Hallo zusammen,

erst mal ein ganz grosses Lob an freetz und justme1968. Tolle Arbeit die Ihr hier macht. freetz hat mir vor kurzem die Adapterplatine geschickt die ach auf Anhieb funktioniert. Dank den Ausführungen im Handbuch war die Installation auch für einen Arduino-Laien kein Problem. Und nun klappt auch noch die Integration in FHEM auf Anhieb. Ich bekomme ja fast Angst ;).
Jetzt muss ich gestehen - ich habe nicht jeden Post hier gelesen und vlt. wurde meine Wunsch schon beantwortet:
Settings wären schön. Zum Beispiel das Wochenprogramm oder die Kennlinienveränderung würde ich mir wünschen. Das rumgedrehe an dem Bedienteil der Brötjesteuerung ist einfach nervtötend :)

Danke und weiter so!

Jewe

Hallo André,

eben ging meine Heizung das erste mal wieder an. Dabei fiel mir dann wieder das BSB-Modul wieder ein.
Und da wollte ich mal vorsichtig anklopfen, konntest du schon etwas weitermachen ?
Leider will das Modul bei mir im Moment ja nicht mehr :-(

Jens

riker1

#238
Hallo

ich bekomme die Fehlermeldung BSD module not found

bei

define heizung_control  BSB 192.168.0.1


Danke für Tips
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

Maista

@riker1

Sind den alle Datein installiert?
Stört das Leerzeichen vor "BSB"?

Gruß Gerd