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

Neue Version 0.22 auf GitHub, zum einen mit weiteren Parametern für die Fujitsu Wärmepumpe, zum anderen auch eine (hoffentlich) korrekte Implementierung von Spannungswerten (VT_VOLTAGE), wäre prima, wenn da jemand mal testen könnte, der bei den entsprechenden Parametern etwas anderes als 0V an der Therme angezeigt bekommt.

Viel Spaß,

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

rudirabbit

Hallo,
Hätte da ein paar Fragen. 
Soll für einen guten Bekannten das Projekt umsetzen.  (BROETJE_SOB)

Da ich schon mal mit dieser Arduino Hardware eine Webbbased Wetterstation programmiert habe, setzt mein Bekannter wohl auf mich als Unterstützung.
Ich beschreibe mal wie ich die das Projekt sehe, bitte extra um Korrektur wenn ich was falsches sage.
Habe den Quellcode mal so grob überflogen, das Projekt steht wohl noch am Anfang. 
Das Webinterface besteht derzeit nur aus einem Textbasierendem Gerüst, es werden noch keine Werte von der Heizung angezeigt.

Das Einlesen der Daten aus der Heizung funktioniert aber schon, das müsste man noch parsen (und encoden) und eben als HTML darstellen.

Diese Schleife mit der Ethernet Lib schaut fast immer so aus wie auch auch hier.


   

client = server.available();
  if (client) {

while (client.connected()) {
                            if (client.available()) {
                                          c = client.read();
....


Was mir auffällt, warum wird diese immer nach einer Darstellung einer HTML Seite mit einem Break verlassen ?
Macht für mich keinen Sinn, weil der Client z.b nur eine andere Seite anfordert sich aber nicht ausloggt.

Z.b ein Passkey Abfrage wie ich es bei mir mache funktioniert deshalb nicht.
Bei der Wetterstation sende ich bei einem neuen Client das hier an den Browser:


void SendAuthentificationpage(EthernetClient client)
{
          client.write("HTTP/1.1 401 Authorization Required\n");
          client.write("WWW-Authenticate: Basic realm=\"Secure Area\"\n");
          client.write("Content-Type: text/html\n");
          client.write("Connnection: close\n");
          client.write("\n");
          client.write("<!DOCTYPE HTML>\n");
          client.write("<HTML>  <HEAD>   <TITLE>Error</TITLE>\n");
          client.write("</HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>\n");

}


und frage dann

if (strstr(html_reponse,"Authorization: Basic")!=NULL && strstr(html_reponse,"cnVkaTpyYWJiaXQ=")!=NULL ) authentificated=true;

Funktioniert hier nicht, weil der Client sich quasi immer neu einloggt. authentificated ist immer false, und das Fenster poppt immer wieder auf. 

Wie gesagt, das soll keine Kritik sein. will nur eine Ebene schaffen um mitreden zu können. 

freetz

Sorry, aber ich verstehe jetzt nicht ganz, was Du meinst: Beschreibst Du die Probleme, die Du mit Deinem eigenen Code hast oder beziehst Du Dich auf BSB_LAN?
Letzteres ist mitnichten noch am Anfang, sondern ist - für das, was es können soll - recht ausgreift. Und natürlich können Werte aus der Heizung nicht nur ausgelesen und angezeigt, sondern auch gesetzt werden. Die Passkey-Abfrage ist natürlich nicht mit einer HTTP-Auth-Absicherung zu vergleichen, aber das ist hier auch nicht das Ziel. Da das Interface nicht aus dem öffentlichen Internet heraus erreichbar ist bzw. sein sollte, und man für Gäste heutzutage bei jeder halbwegs aktuellen FritzBox ein Gastnetz einrichten kann, sollte die Missbrachsgefahr nur aus der eigenen Familie heraus gegeben sein.
Wenn Du aber Code beisteuern kannst, der eine bessere Absicherung bietet, dann binde ich den gerne ein, vorausgesetzt, er kommt mit den (begrenzten) verbleibenden Ressourcen des Arduino aus und lässt noch Luft für weitere (geplante) Funktionserweiterungen (wie z.B. das SD-Karten-Logging).

Für Detailfragen zur C-Programmierung (Stichwort: "Warum break") ist das hier nicht das richtige Forum.

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

rudirabbit

Zitat von: freetz am 11 Februar 2017, 19:59:50
Sorry, aber ich verstehe jetzt nicht ganz, was Du meinst: Beschreibst Du die Probleme, die Du mit Deinem eigenen Code hast oder beziehst Du Dich auf BSB_LAN?
Ich beziehe mich schon auf BSB_LAN, das mit der  HTTP-Auth-Absicherung gestern war nur eine Spielerei von mir.
Dein Argument, das BSB_LAN nicht öffentlich zugänglich ist natürlich richtig, und macht dies obselet.

Ich habe derzeit nur die Hardware vor mir, ohne das diese an der Heizung angeschlossen ist.
Vor ein paar Tagen hatten wir einen kurzen Test gemacht, also die Hardware am Bus der Heizung dran.
Dort kamen öfter query Fehler im Log, und keine Werte im Webinterface zu sehen, zudem sah das Webinterface eher Textbasierend aus.   

Hatte da eher mehr "Klickibunti" erwartet  ;)
(Oder evtl. was mit google charts)

Egal, ich werde heute das ganze nochmals bei Ihm an der Heizung testen.
Evtl. besteht ein Problem mit dem Bus

Mal sehen was rauskommt...wenn es weiterhin klemmt melde ich mich nochmals wenn es recht ist ?

Zitat
Wenn Du aber Code beisteuern kannst, der eine bessere Absicherung bietet, dann binde ich den gerne ein, vorausgesetzt, er kommt mit den (begrenzten) verbleibenden Ressourcen des Arduino aus und lässt noch Luft für weitere (geplante) Funktionserweiterungen (wie z.B. das SD-Karten-Logging).
Denke ihr habt das schon im Griff, die bessere Absicherung ist hier wie gesagt obsolet.
Und die Ressoucen sind hier wirklich knapp, vor allem dann wenn man das Webinterface noch ein wenig ausbauen will. 

Ich habe damals für meine Wetterstation eine Ram-Extention an den Mega gesteckt, dann ist wieder jede Menge S-Ram frei
Das F-Macro braucht man dann auch nicht mehr, dies machte zudem auch die Website recht langsam.   

Grüße Rudi

PS: Das mit dem break in euerem Code passt schon, hatte mich gestern beim Lesen der Schleife etwas verhaspelt.

freetz

Das Webinterface ist textbasierend, wie Du von einem Arduino "klickibunti" erwarten willst, ist mir etwas rätselhaft. Ziel hier ist ja auch die Anbindung an FHEM - dem ist es völlig egal, wie "bunt" die Seite ist, die es parsen muss. Query-Fehler können auf Vieles hindeuten, zum einen wird nicht jeder Parameter von jeder Heizung unterstützt, aber es kann natürlich auch eine falsche Beschaltung am Bus sein. Bei letzterem wird es schwer, Dir aus der Ferne zu helfen. In jedem Fall hilft es, vorher die beiden READMEs zu lesen, wenn man sich schon nicht die Mühe machen will, den ganzen Thread einmal durchzuarbeiten. Das erhöht dann auch die Chance auf eine Antwort hier im Forum ;)...
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: rudirabbit am 12 Februar 2017, 09:34:22
[...]
Dort kamen öfter query Fehler im Log, und keine Werte im Webinterface zu sehen, [...].   

Moin,
nur als kleiner Tipp: Bei Brötje_SOB kommt bspw. bei sämtlichen Parametern, die für nen Gaser oder Feststoffler interessant sind (bspw. 8324 Diagnose Erzeuger - Gebläsedrehzahl, 8326 Diagnose Erzeuger - Brennermodulation, 8560 Diagnose Erzeuger - Feststoffkesseltemperatur) ein "error 7 (parameter not supported)". Bei mir bspw. auch bei allen Parametern des Feuerungsautomaten..

@Freetz:
Wie wäre es, wenn ich mal von meiner SOB alle Parameter abfrage und dir als doc zuschicke? Dann könntest du vielleicht im Laufe der Entwicklungszeit einen Überblick bekommen, was bei welchen Heizungen 'funktioniert' (an Standardparametern). Falls dir das irgendwie nützlich sein könnte, sag bitte bescheid! ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

@Freetz:
Würde es eigentlich genügen, wenn ich von der neuen Version jeweils nur die von dir geänderte .ino-Datei übernehme?
Bisher habe ich immer alles komplett neu in meine Ardu-Bibliothek kopiert, config_h angepasst und dann neu geflasht. Aber wenn ich das richtig sehe, brauche ich doch eigtl. nur die Dateien zu aktualisieren um neu zu flashen, die du laut Datum auch aktuell verändert hast - oder? Sorry, aber ich kenn mich da noch immer nicht so richtig aus.. ;)

Nochmal bzgl. der GPIOs: Kann man damit 'nur' schalten? Oder auch irgendwie Zustände (bspw. den einer über ein Relais angeschlossenen Pumpe) registrieren? Also Pumpe = an/aus?

Danke und LG
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

freetz

Hallo Schotty,

ich weiß nicht, was "SOB" sein soll, aber die Parameter der Brötje nicht schon von Gero eingepflegt worden? Wenn es CommandIDs gibt, die in der allgemeinen bsb_lan.ino noch nicht eingepflegt sind, dann wäre eine Liste der CommandIDs und der dazugehörigen Parameter hilfreich. Ob und wann ich Zeit finde, die einzubinden, kann ich aber nicht sagen. Bisher haben mir die Beitragenden die von ihnen aktualisierte .ino geschickt, so dass ich dann nur noch ein diff generieren musste und die Änderungen einpflegen konnte. Das ist natürlich erheblich einfacher.

Was das Flashen einer neuen Version angeht, reicht es natürlich, nur die jeweils aktualisierte Version der drei Dateien (.ino, _config.ino und _define.ino) zu überschreiben und dann neu zu flashen. An der _config.ino hat sich zwar jetzt einmal wegen des Fujitsu-Flags etwas geändert, aber im Normalfall kann man die eben einfach so belassen. Das erspart bei kleineren Updates eben das ganze Neukonfigurieren.

GPIOs: Letztlich wird man die meist dafür nutzen, ein Relais zu schalten, denn direkt an den Arduino wird man sicherlich keinen größeren Verbrauchen hängen wollen. Dadurch lässt sich aber auch nur setzen bzw. abfragen, ob das Relais z.B. offen oder geschlossen ist. Welchen Status der an dem Relais hängende Verbraucher hat, lässt sich damit aber nicht abfragen.

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

Schotty

Zitat von: freetz am 12 Februar 2017, 12:41:56
Hallo Schotty,

ich weiß nicht, was "SOB" sein soll, aber die Parameter der Brötje nicht schon von Gero eingepflegt worden? [...]
Hi Freetz,
SOB ist der Brötje-Öler ;) Ja, die Parameter sind mittlerweile soweit alle drin (Brötje_SOB). Ich dachte auch nur für dich als kleinen Überblick der verschiedenen angeschlossenen Heizungstypen.

Zitat
GPIOs: Letztlich wird man die meist dafür nutzen, ein Relais zu schalten, denn direkt an den Arduino wird man sicherlich keinen größeren Verbrauchen hängen wollen. Dadurch lässt sich aber auch nur setzen bzw. abfragen, ob das Relais z.B. offen oder geschlossen ist. Welchen Status der an dem Relais hängende Verbraucher hat, lässt sich damit aber nicht abfragen.
Das könnte dann aber ja schon reichen, wenn der Ardu abfragen kann, ob das Relais geschlossen ist oder nicht..

Ok super, danke für die Infos - dann kann ich mir das Rumkopieren der libs in Zukunft ja erstmal sparen.. ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

freetz

Ja, das Abfragen, ob das Relais geschlossen ist oder nicht, mache ich mit meinem Lüfter und der Klingel auch so - beide werden u.a. von einem Cron-Job gesteuert, der nicht über FHEM läuft und trotzdem bekommt FHEM den jeweils aktuellen Status (mit der maximalen Verzögerung der Polling-Frequenz (bei mir 30 Sekunden)) mit. Musst halt nur schauen, ob Deine Relais-Karte bei der Abfrage eine "1" für offen oder geschlossen zurück meldet und dementsprechend mit Dummy-Devices den Status in FHEM visualisieren.
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

Das klingt gut, sind für mich z.Zt. zwar noch unbekannte Welten, aber auf jeden Fall wird es mir den Start erleichtern! Darf ich dich notfalls bei gegebener Zeit nochmal genauer per PN fragen..? ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Scherheinz

Hallo in die Runde,

Ich lese hier seit längerem mit und versuche jetzt selbst das Projekt umzusetzen. Ich habe den Adapter auch schon zusammen gebaut aber bin mir jetzt unsicher an welcher Stelle ich den BSBus abgreifen kann. Es handelst sich um eine Elco Logon B G2Z2, weiß jemand ob an der Klemme die nur mit "Bus" gekennzeichnet ist ein BSB, LPB oder sonstwas anliegt?  Es gibt auch noch einen 4-polige Steckvorrichtung die mit BSB gekennzeichnet ist aber ohne die Belegung zu kennen hilft mir das auch nicht weiter.
Hat jemand diese Steuerung oder kann mir einen Tipp geben?

Danke und Gruß

Schotty

#597
Hi,

du siehst auf dem Bild bei BUS zwei Anschlüsse: CL+ und CL-
Das sollten diejenigen sein, die du suchst - zumindest waren sie es bei mir. Ist im Schaltplan des Adapters -wenn ich mich recht erinnere- auch als solches bezeichnet.. ;)

Gruß

edit:
RG1 bspw. sollte auch funktionieren, es sind die gleichen Anschlüsse und der Adapter meldet sich auch als solches an (glaube ich ;) ).
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Scherheinz

Ok, danke für die schnelle Antwort!  :)
Die Anschlussbezeichnung hatte ich auch aus dem Schaltplan, war nur etwas verwirrt weil überall CL+ und CL- dransteht  ???

freetz

Ich habe auf Schottys Anfrage hin noch eine FHEM-Beispiel-Konfiguration für die Ansteuerung/Abfrage von Relais in die FAQ auf der GitHub-Projektseite hinzugefügt. Vielleicht ist das ja auch für andere noch hilfreich...

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