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

Scherheinz

Hast du ein originales Ethernetshield oder ein China Nachbau?
Die Nachbauten machen öfter mal Probleme, eins das ich benutzte muss ich z.b. nach dem Anlegen der Betriebsspannung resetten damit eine Verbindung aufgebaut wird. Deshalb verwende ich bei Projekten die dauerhaft laufen wie FHEM immer ein originales Shield.

Gruß

postman

Moin,
ich habe kein Chinanachbau. Das Problem mit dem Hängen war zwischenzeitlich auch mal weg. Erst seitdem ich Ende März eine neue Version mit der Bereiningung des URL-Befehls /N (Reset) installiert habe, tritt das Problem wieder auf.

@freetz, Das Reset im Web vom BSB-Lan, reboot dieser Befehl den Arduino oder setzt er nur das Web zurück?

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

freetz

/N führt einen Reset des Arduino durch, quasi wie stromlos machen.
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

frank

hallo uwe,
ich kann mich dunkel an ähnliche "hänger" erinnern. bei mir lag es scheinbar an einer "alten" original arduino mega karte. mit rev3 hatte ich die probleme nicht.

hardware ursachen sind bei dir aber möglich, selbst wenn die probleme erst durch geänderte fw sichtbar werden, da du wohl der einzige bist. ein tausch des netzteils wäre vielleicht auch ein versuch wert.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

postman

Moin,
@freetz, so etwas habe ich gesucht, danke..., noch etwas: Lässt sich das protokollieren der  drei 87xx Parameter im BSB deaktivieren oder ausschalten?

@frank, ich habe den Arduino direkt über USB an meinem Raspberry an einen aktiven usb-Hub mit eigenen Netzteil angeschlossen. Netzteil kann ich da wohl ausschliessen. Ich werde das mal weiter beobachten. Vielleicht reicht es ja schon aus, das FHEM einmal in der woche einen /N-Befehl absetzt, da ich mittlerweile den BSB_Lan eh nur noch über FHEM nutze.

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

freetz

Was meinst Du mit dem Protokollieren der 87xxer? Auf der SD-Karte? Das stellst Du in der config ein.
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

postman

Hallo freetz,
ich meine das hier
Loggen der folgenden Parameter alle 3600 Sekunden:
8700 - Aussentemperatur
8743 - Vorlauftemperatur 1
8314 - Kesselrücklauftemperatur Ist


Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

freetz

Wie ich schon geschrieben habe: das stellst Du in der _config.h ein.
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

postman

Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

freetz

Für alle, die mit der Platine "Aussetzer" beim Senden haben (und damit auch beim Emfangen haben, weil (fast) jedem empfangenen Parameter eine gesendete Anfrage voraus geht):
Ich hatte in der letzten Zeit eine sehr interessante Diskussion mit einem Nutzer, der leider kein Forumsmitglied ist (und sein möchte), und der auch Probleme mit einem China-Arduino hatte. Die Vermutung, dass Bauteiltoleranzen sowohl beim Arduino als auch bei den verwendeten Bauteilen der Platine in seltenen Fällen so zusammenspielen können, dass es die besagten Aussetzer gibt, hat er sich so erklärt und insbesondere den 300 Ohm Widerstand (R3) als Ursache ausgemacht:

ZitatDie Festlegung von 10 mA ist laut Datenblatt des 4N25 keine schlechte Wahl.
2 mA wären laut Datenblatt aber auch zulässig. 
Da ich mit ca. 10mA Stromfluss durch die Diode Funktionsprobleme hatte  wollte ich die Auswirkungen einer Stromabsenkung aber ausprobieren.
Meine mit den Teilen von dir aufgebaute Schaltung funktionierte bei 620 Ohm für den R3 (ca.7mA Stromfluss durch die Diode U2)
und bei 1800 Ohm auch( das sind ca. 2,5 mA)  bei 3000Ohm wieder sehr schlecht(ca.1,5mA).
Für meine Hardware war dann die Schlussfolgerung : bei Wahl von 620Ohm für R3 muss ein Betrieb bei 5Volt und 3,3Volt sichergestellt sein. Ob man einen Raspi oder Arduino daran verwendet  ist damit egal.

Eine Erklärung für den Einfluss der Spannungsversorgung  auf die Funktion meines Arduino hab ich nicht .
Nur einen Verdacht: Je höher die Spannung je höher ist die Störstrahlung die von einer Leitung abgestrahlt wird. Und das kann die
"Nachbarn" beeinflussen.
Die Spannungsversorgung zu ändern um dem entgegen zu wirken wird aber gemäß Datenblatt stark eingeschränkt: Das Datenblatt lässt bei einem 16 MHz Quarz den  Spannungsbereich von 4,5 - 5,5 Volt zu. Alles andere wird nicht empfohlen.
An den Beispielvorgaben des ADC wird einem die Alternative klar: Klare, entflochtene Leitungsführung, möglichst kurze Anschlussleitungen, Blockkondensatoren und eine Spule in der Spannungsversorgung und unter den ADC Ports eine Groundplane zur Abschirmung. Bei den billigeren Megas hat man wohl einiges zuviel eingespart.
Auf die Spannung trotzdem stark zu senken bin ich gekommen, weil bei einer Spannugsversorgung über USB vom Rechner und knapp über 5 Volt am 2560 sehr viel mehr Queries nötig waren als bei einer Verwendung eines Handyladenetzteils mit dann 4,8 Volt am 2560. 

ZitatWas kann man jetzt den Usern im Forum in diesem Punkt empfehlen? z.B. teurer neu kaufen :-)
Man kann auch empfehlen die  Spannung moderat innerhalb der Spezifikationen anzupassen also bis zu 4, 5 Volt. Und mal schauen was es bringt....
Für das moderate absenken gibt es auch noch einen anderen Grund:als  ein "max Rating" darf die Spannung an den Ein und Ausgangspins nicht größer  als 0,5 Volt bezogen auf Vcc  sein. Will man an die GPIO's an eine 5 Volt Welt anschliesen, wären bei starkem absenken der Versorgungsspannung Pegelanpassungen erforderlich.

Zu den China-Arduinos hatte er noch folgende Info:
ZitatWelchen Arduino verwende ich: noname Produkt. Lieferant war sense&core in Shenzen. Produktbezeichnung:" Mega2560 Atmega2560-16AU."  2560R3 kompatibel wurde angegeben. Das stimmt wohl auch, alle Pins gemäß Referenzdesign R3 sind vorhanden und sind mit einer Leitung auf der Platine verbunden. Das Platinenlayout weicht aber vom Referenzlayout ab.
Der eigentliche Hersteller  ist für mich nicht  erkennbar. Ob sense&core selbst  hat löten lassen?. Ich weiss es nicht. 

Vor dem Hintergrund die Bitte an die, die noch mit Aussetzern zu tun haben:
a) Spannung auf 4,5 Volt reduzieren (geht z.B. gut mit einem einstellbaren externen Netzteil)
b) Wer löten kann: Den 300 Ohm Widerstand auslöten und stattdessen 620 Ohm (oder etwas in der Nähe) verbauen.

Wenn es dann eine positive Veränderung gibt, würde ich den Schaltplan entsprechend anpassen. In Geros ursprünglicher Platine war der Widerstand auch höher dimensioniert, weil da aber auch nur der Arduino mit seinen 5V berücksichtigt werden musste. Für die Kombi-Platine, die ja auch die 3,3V des Raspi berücksichtigen muss, hatte er dann bei einer angemommenen Stromstärke von 10mA die jetzigen 300 Ohm ausgerechnet, aber mit den o.g. Annahmen und etwaigen Bauteiltoleranzen muss da wohl doch noch weiter nach oben abgewichen werden.

Wie gesagt, ich freue mich über Rückmeldungen!

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 15 April 2018, 13:19:10
Vor dem Hintergrund die Bitte an die, die noch mit Aussetzern zu tun haben:
a) Spannung auf 4,5 Volt reduzieren (geht z.B. gut mit einem einstellbaren externen Netzteil)

Moin zusammen,
also auch wenn ich kein Elektroniker bin, so finde ich diese Empfehlung doch etwas "merkwürdig" und für den Mega2560 (samt LAN-Shield, Adapterboard und etwaiger zusätzlich angeschlossener Relaisboards oder was-auch-immer) imho eher kontraproduktiv.

In dem Zitat wird von der Stromversorgung eines 16MHz Quarz' gesprochen: "Die Spannungsversorgung zu ändern um dem entgegen zu wirken wird aber gemäß Datenblatt stark eingeschränkt: Das Datenblatt lässt bei einem 16 MHz Quarz den  Spannungsbereich von 4,5 - 5,5 Volt zu. Alles andere wird nicht empfohlen." - m.M.n. also für den reinen Quarz!
Der Mega2560 besitzt jedoch extra einen Spannungswandler für den Anschluss eines externen Netzteils, und in den Specs wird eine externe Versorgungsspannung von 7-12V empfohlen: https://store.arduino.cc/usa/arduino-mega-2560-rev3 , als unteres Limit werden 6V angegeben.
Alles unter 5V dürfte imho zu Instabilitäten führen, die zumindest ich ganz am Anfang auch bei einem Betrieb via USB beobachten konnte.

Demzufolge wäre es in meinen Augen eher anzuraten, von USB-Stromversorgung via Hub o.ä. auf ein separates Ardu-Netzteil umzusteigen. Seit ich ein externes 9V-Netzteil nutze, habe ich nie wieder Probleme gehabt - mit diversen billig-China-Clones.

Eine weitere Möglichkeit (die so oder so nicht schaden kann) wäre die Anbringung eines Ferritkerns in/an der stromführenden Leitung: Einfach das Stromkabel ein paar Mal um/durch einen Ferritring führen dürfte das Risiko etwaiger EMV-Störungen zumindest reduzieren.

..just my 50ct.. ;)

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

stan23

Da muss ich Schotty zustimmen, höhere Spannung (innerhalb der erlaubten Bereichs) bringt normalerweise mehr Stabilität, und niedrigere Spannung weniger Stabilität. Wobei der Arduino da weder von der Temperatur noch vom Takt in den Regionen ist, in denen ich mich beruflich mit Absenkungen herumschlagen muss :)

ZitatFür das moderate absenken gibt es auch noch einen anderen Grund:als  ein "max Rating" darf die Spannung an den Ein und Ausgangspins nicht größer  als 0,5 Volt bezogen auf Vcc  sein. Will man an die GPIO's an eine 5 Volt Welt anschließen, wären bei starkem absenken der Versorgungsspannung Pegelanpassungen erforderlich.
Die Platine aus dem Git Repo hat da eigentlich kein Problem. Die 5 Volt kommen ja vom Arduino selber, können also nicht größer sein als Vcc.

ZitatAuf die Spannung trotzdem stark zu senken bin ich gekommen, weil bei einer Spannugsversorgung über USB vom Rechner und knapp über 5 Volt am 2560 sehr viel mehr Queries nötig waren als bei einer Verwendung eines Handyladenetzteils mit dann 4,8 Volt am 2560. 
Was bedeutet "mehr Queries"? Bis es nicht mehr erreichbar ist? Bedeutet das nicht dass eine höhere Spannung besser ist?

Schotty

Mir ging diesbzgl auch gerade noch etwas durch den Kopf:
Zitat
Auf die Spannung trotzdem stark zu senken bin ich gekommen, weil bei einer Spannugsversorgung über USB vom Rechner und knapp über 5 Volt am 2560 sehr viel mehr Queries nötig waren als bei einer Verwendung eines Handyladenetzteils mit dann 4,8 Volt am 2560. 
Ich weiß ja nun nicht, wieviel mA der Ardu in der Kombi mit Shield und Adapter zieht, aber es wäre denkbar, dass die 500mA vom Rechner evtl hin und wieder nicht ausgereicht haben (bei 5V) und vom Handyladeteil (mit komischen 4,8V) >1000mA kamen, somit also der Engpass möglicherweise vermieden wurde..?!
..wie gesagt, nur so ein Gedanke..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

miwi

#2173
ZitatSchotty: "In dem Zitat wird von der Stromversorgung eines 16MHz Quarz' gesprochen: "Die Spannungsversorgung zu ändern um dem entgegen zu wirken wird aber gemäß Datenblatt stark eingeschränkt: Das Datenblatt lässt bei einem 16 MHz Quarz den  Spannungsbereich von 4,5 - 5,5 Volt zu. Alles andere wird nicht empfohlen." - m.M.n. also für den reinen Quarz!
Der Mega2560 besitzt jedoch extra einen Spannungswandler für den Anschluss eines externen Netzteils, und in den Specs wird eine externe Versorgungsspannung von 7-12V empfohlen ...
Ich stimme Schotty weitgehend zu.  Wir sollten aber die verschiedenen Spannungen definiert unterscheiden.
Wenn von einem 16 MHz Quarz und einem Spannungsbereich zwischen 4.5V und 5.5V die Rede ist, handelt es sich um die Vcc Spannungsversorgung des ATMEL Chips.  Diese Angabe ist dem ATMEL Datenblatt http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf entnommen und bezieht sich auf einen ATMEL Chip in einer beliebigen Anwendung, wenn er mit einem 16 MHz Quarzoszillator betrieben wird.  (Eine solche Anwendung ist der Arduino Mega 2560).

Diese Spannungsangabe fuer den ATMEL Chip hat nichts mit dem erlaubten Versorgungsspannungsbereich der Arduino Mega Platine am barrel connector (koaxialer Steckverbinder mit positivem Anschluss-Pin im Mittelpunkt) zu tun.  Dort sollen 7V bis 12V anliegen, denn ein Spannungsstabilisator auf der Platine reduziert diese Versorgungsspannung auf einen Wert, der in dem Bereich zwischen 4.5V und 5.5V liegen muss, um die Chipspezifikation zu erfuellen.  Weitere Halbleiterkomponenten auf der Platine werden auch von dieser stabilisierten Spannung versorgt. Bei einer Spannung von weniger als 7V kann der Spannungsstabilisator, der die Eingangsspannung auf 4.5V bis 5.5V HERUNTERsetzen muss, nicht mehr korrekt arbeiten.  Ist die Eingangsspannung hoeher als 12V, dann fallen 7V und mehr ueber dem Stabilisator ab. Multipliziert mit dem Betriebsstrom der Platine ergibt sich eine Verlustleistung, die den Spannungsstabilisator beschaedigen wuerde.

Eine alternative Spannungsversorgung ist die ueber den 5V-Pin der POWER Steckverbinder-Leiste.  Sie ist auf der Platine mit dem Ausgang des on-board Spannungssstabilisators verbunden; die Spannung an dem 5V-Pin muss daher den Spezifikationen des ATMEL Chips und weiterer Halbleiter auf der Platine genuegen und muss zwischen 4.5V und 5.5V liegen.  Da eine Grenze definitionsgemaess bedeutet "nicht ueber- oder unterschreiten", sollte die Spannung bitte nicht genau auf einen der Grenzwerte eingestellt sein.  Eine kleine Spannungsschwankung, und es koennen Instabilitaeten auftreten oder die SOA von Halbleitern wird ueberschritten.Einstellen auf 4.5V ist in meinen Augen kein guter Rat.

Eine weitere Stromversorgung kann ueber den USB-Anschluss erfolgen.  Es ist wohl selten, dass ein USB-Anschluss wirklich 5V oder womoeglich noch etwas mehr liefert; eher liegt die Spannung niedriger (Bsp.: 4.8V) und nimmt bei Belastung noch ab.  Spezielle USB Hafen zum Laden von Geraeten koennen mehrere Ampere liefern, aber standard USB Hafen  sind bei USB 2.0 auf 500mA begrenzt bzw. auf 900 mA bei USB 3.0.  Intern auf der  Arduinoplatine ist die Plusleitung des USB Anschlusses ueber einen MOSFET mit dem 5V circuit verbunden. Der MOSFET leitet, wenn am Koaxialanschluss KEINE Spannung anliegt.  MOSFETS koennen einen sehr geringen Rds ON haben, d.h. der Spannungsverlust an diesem Bauteil sollte klein sein.

Ebenfalls richtig ist die Feststellung, dass ja die Zwischengesichtplatine ihre Versorgungsspannung von dem 5V circuit auf der Arduino-Platine bezieht.  Wenn der Strom eventueller weiterer Schaltungen, die am 5V circuit der Arduino-Platine haengen, nicht ins Gewicht faellt, dann wuerde ich die Anlage nicht uber die POWER-Leiste, sondern ueber den Koaxial-Steckverbinder versorgen. Preisguenstige externe stabilisierte Stromversorgungen von nominell 5V sind oft nicht wirklich stabil.  Sollten Zusatzschaltungen mehr Strom verbrauchen, ist ein externes stabiles 5V Netzteil an der POWER Leiste die bessere Loesung.  Ueber diesen Anschluss werden alle entsprechenden Halbleiter mit stabilen 5V versorgt.

Sollte tatsaechlich bei jemand das Zwischengesicht Ursache fuer Instabilitaeten sein, dann wuerde ich keinesfalls vorschlagen, die Versorgungsspannung der gesamten Anlage zu veraendern, sondern in der Zusatzschaltung der Ursache nachgehen.  FALLS dort die Ursache liegen sollte, tippe ich auf eine unerwartete Bauteilestreuung.

Stoerungen auf der Versorgungsleitung unterdruecken kann, wie schon vom Vorredner ausgefuehrt, nicht schaden.  Aber die Logikpegel lassen eigentlich genuegend "Luft" (Hysterese zwischen LOW und HIGH-Pegel), dass sich eine Stoerung nicht als falscher Logikwert manifestiert.  Anbei ist ein Beispiel fuer eine Schmitt-Trigger Eingangsstufe, welche sich grosse Muehe gibt ;-) die BS-Bus bzw. LP-Bus Logikpegel richtig zuzuordnen.  Die tut in meinen Eingangsschaltungen seit Jahren ihren Dienst.  Die Transistoren sind allgemeine Silizium-Typen.


miwi

#2174
Da ich gerade ueber Eingangsstufen rede. die mit dem BS-Bus oder LP-Bus verbunden werden: SIEMENS hat in seinem OCI700 Service Tool keinen solchen Schmitt-Trigger verbaut. Die gesamte Eingangsstufe mit allen Bauteilen ist galvanisch von der Seite getrennt, die mit einem Computer verbunden wird.  Die Bauteile dieser Eingangsstufe werden ueber einen 5V/5V DC/DC Wandler versorgt.  Es war ganz nett, das vorzufinden, nachdem ich mein Interface auch so entworfen hatte. Bei mir werkelt nicht ein Bipolartransistor, sondern ein SMD MOSFET IRLML0060TRPbF, der die Busleitung auf Masse zieht. 

Das OCI700 Interface stellt Verbindungen zu BS- und/oder LP-Buses her; das SIEMENS ACS790 Programm kann fuer den einen oder den anderen Bus konfiguriert werden.  Dies ist eine Eigenschaft, die das ACS-Programm der Firma Broetje nicht beherrscht, es kann nur LP-Bus "verstehen". Die beiden ACS Programme unterscheiden sich zudem offensichtlich in ihrer Zielsetzung.  Das ACS790 Programm dient der Planung und Inbetriebnahme von Anlagen und kennt nur (soweit ich bisher sehe) Regler der Firma SIEMENS.  Das ACS Programm der Firma Broetje dient zur Inbetriebnahme und Konfiguration einer Anlage mit Broetje-Reglern.