Forum: Haus & Smart Home Siedle In-Home-Bus Protokoll


von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe gerade Spass daran, die Siedle-Haussprech- und 
Türoffnungsanlage in meine Home Automation zu integrieren, möchte z.B. 
ein Türklingeln an mein Telefon weiterleiten (wie werde ich noch sehen, 
ob Voip Call oder SMS oder per TCP/IP eine App ansteuern...) und dann 
von dort mit dem Besucher sprechen und die Tür öffnen können.
Oder unter bestimmten Bedingungen die Türe automatisch öffnen, z.B. wenn 
jemand (ich) eine bestimmte Sequenz klingelt. Oder auch wenn ich per 
Web-App das tue statt mit dem Hausschlüssel, weil ich ihn vergessen 
habe. Was weiss, ich - großer Spass jedenfalls.

Zum Vario-Bus (der Bedienpanel-Bus) gibt es hier ja schon eine Doku:
Beitrag "[Referenz] Siedle Vario Bus Protokoll, COM611 Codetastatur"

Ich bin nun dabei das Siedle In-Home-Bus-Protokoll zu analysieren und 
habe soeben erfolgreich selbst per uC-Schaltung ein Klingeln meines 
Siedle-Telefons auf dem Bus ausgelöst. Schaltplan dazu - supersimpel, 2 
Transistoren, 4 Widerstände und eine LED an Atmega328 - stelle ich 
später noch ein.

Anbei Oszi-Screenshot von einem Klingelbefehl.

Auf dem Bus liegen 20V an (in 15m Entfernung vom Netzteil, das macht 
27V).
Durch einen ersten Impuls auf die Leitung wird die Bussteuerung 
vorgewarnt, dass gleich Daten kommen werden, dafür wird die Leitung für 
11ms auf 1k Ohm Last gelegt.
Nach diesen 11ms werden die Daten mit einer Last von 50 Ohm übertragen, 
etwa 1ms pro Bit insgesamt 32 Bit.
Mit dem Beginn der 50 Ohm Last schaltet das Netzteil / der Controller 
automatisch auf Datentransfer und zieht die Spannung auf 3V (?).
Die Anlage ist recht genau, was das Timing angeht, hatte anfangs eine 
Abweichung von ca. 5%, das hat nicht geklappt, nach Fine-Justage hat es 
erfolgreich geklingelt.
Wenn das Timing nicht passt zieht der Controller auch recht schnell die 
Spannung wieder hoch, sie hält also nur solange unten wie man sendet. 
Und bei der Zeit für 32 Bit geht die Spannung auch direkt wieder hoch.

Habe für's erste nur die Bitformation genau so nachgebaut wie ich sie 
aufgezeichnet hatte. Als nächstes steht an den Inhalt zu entschlüsseln.

Auf jeden Fall gibt es sowas wie Absenderadresse und Befehl und die 
gewünschte "Gegenseite" speichert sich dann, wer was darf.
Denn die Programmierung von hausinternem Ruf funktioniert so:
- Buscontroller auf Programmierung stellen
- beide Telefone auf Programmierung stellen
- auf jeden Telefon die Ruftaste drücken, wie das andere Telefon 
erreicht werden soll
- Programmiermodus abschalten

Daraus ergibt sich, dass die Adress-/Befehlsinfo verteilt gespeichert 
wird:
das Telefon, das angeklingelt wird speichert sich, wer es mit welcher 
Taste anklingeln darf.
Das Telefon, das anruft, weiss von der Gegenseite nichts.
So funktionieren auch andere Programmierschemata, habe sie aber noch 
nicht systematisch durchgegangen.

Falls hier jemand mitmachen möchte: bitte melden!

Vg,
Conny

von 3s-gast (Gast)


Lesenswert?

Hallo Conny,

gibt es Neues?
Kannst du bitte deine Schaltung posten?

Ich habe gerade einen Testaufbau bei mir auf dem Schreibtisch:

BNG 650 "Zentrale"
BTM650-02 Tasten
BTM650-03 Tasten
BTLM650 Tuersprecher + Lichttaste
5x BTS 850 Haustelefon

Noch habe ich nicht vor was zu steuern, eigentlich wollte ich es nur im 
Haus verbauen, aber das Oszi stand eh daneben und zu Testzwecken ist so 
ein Aufbau auf einem Tisch ganz nett.

-3S

von Conny G. (conny_g)


Lesenswert?

Hallo 3s-gast,

ich habe hier noch nicht viel weitergemacht, habe noch andere Projekte 
fertigzustellen.
Die Schaltung Signal-Erkennung und Generierung kann ich gerne posten, 
muss sie nur noch kurz in Eagle zusammenstellen, innerhalb der nächsten 
Tage.

BTS 850, ist das evtl. schon eins mit Videobus? Dort gibt's nämlich 
neben dem Audiosignal noch das Videosignal auf dem Bus und man braucht 
dann m.E. schon Bandfilter um an die einzelnen Signale zu kommen.
Wobei die von mir genannten Befehle vermutlich noch auf dieselbe Weise 
übertragen werden und Audio evtl. auch noch unmoduliert.

Vg,
Conny

von 3s-gast (Gast)


Lesenswert?

Hallo Conny,

Also in meiner Anlage ist nichts mit Video :-)
Das BTS 850 ist das billigste Telefon von Siedle, mit drei Tasten.
Vielleicht kann man das BTS 850 auch an einer Anlage mit Video betreiben 
ohne das es mit dem Videosignal Probleme gibt, aber das kann ich nicht 
testen.

Gruss,
3S

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

3s-gast,

anbei nun die Schaltung. Hat ein bisschen gedauert, bis ich Zeit hatte 
sie in einen Schaltplan einzuzeichnen.

Der interessante Teil ist rechts oben: Q2/Q3 sind der "Detektor": die 
von der Siedle eingehende Spannung geht auf 2 Spannungsteiler.
Einer davon detektiert eine Bus-Message an sich, also ob die Spannung 
von der Zentrale gesenkt wird um gleich Bits zu übermitteln. Der zweite 
spiegelt die Bits wider.

Q2 detektiert, ob auf dem Bus ein Signal anliegt, also die Spannung 
abgesenkt wird.
Der Transistor schaltet durch sobald auf der BE-Strecke 0,7V erreicht 
werden, d.h. in Bezug auf den Emitter muss der Spannungsteiler eine 
Spannung von <= 4,3 Volt an die Basis legen.
Also an den 4,7kOhm 4,3V:
4,7kOhm / 14,7kOhm * V_siedle = 4,3V
oder
V_siedle = 4,3V * 14,7 / 4,7 = 13,4V

Ich bekomme hier also ein High vom Transistor, wenn der Bus unter 13,4V 
abgesenkt wird (ganz beliebiger Wert, halt deutlich unter den 20V und 
deutlich über den 7V wo die Bits zappeln).

Q3:
schaltet durch sobald an den 10kOhm weniger als 4,3V an liegen, also 
10/11,5 * V_siedle = 4,3 oder v_siedle = 4,3 * 11,5 / 10 = 4,9 Volt.
D.h. also Q3 gibt mir jedesmal ein Signal, wenn die Spannung auf dem 
Siedle-Bus unter die 4,9 Volt gehen.
Die 4,9 Volt liegen genau in dem Bereich, wo die Bits zappeln, zwischen 
2V und 7V.
Ich bekomme also ein High für jede Unterschreitung von 4,9V, also für 
jedes übertragene Bit.

Aus diesen beiden kann ich dann das Signal zusammensetzen.
Leider weiss ich noch nicht, ob hier ein Low der Bits wirklich eine Null 
sind oder umgekehrt und was am Ende die 32 Bit bedeuten.
Ich kann so momentan auf Befehle reagieren, die ich aufzeichne 
(Türklingel aussen, innen, Licht etc) und ich kann welche schicken, die 
ich kenne (Türöffner), aber ich kann die Werte noch nicht verstehen.

Q4 und Q5 machen das umgekehrte, sie senden ein Signal auf den Bus.
Sie ziehen das Signal auf dem Bus herunter, wie im Eingangspost 
beschreiben.
Leider weiss ich die Widerstandswerte gerade nicht mehr ganz genau, ich 
glaube es waren einmal 1k oder 2.2k und einmal 50 Ohm.
Und man muss einmal, glaube mit den 50 Ohm für 1ms runterziehen, damit 
der Controller die Spannung absenkt und dann mit den 1k die Bits 
wackeln.
Ist per Versuch ermittelt, keine Ahnung, ob die Siedle-Anlage das 
irgendwann mal übel nimmt und sich ausklinkt ;-)
Also besser nur mit der eigenen machen und nicht mit der des 
Vermieters...

von Thomas J. (deh0511)


Lesenswert?

Conny wie hast du es mit den Optokoppler gelöst?

Gruß Thomas

von Conny G. (conny_g)


Lesenswert?

Thomas Abraham schrieb:
> Conny wie hast du es mit den Optokoppler gelöst?
>
> Gruß Thomas

Wie meinst Du das?
Da ist kein Optokoppler drin?
Ich habe eine neue Version der Schaltung mit Operationsverstärker bzw 
Komparator in Arbeit, der Detektor läuft da mit Opamp statt 
Transistoren.

von Waldemar F. (drhack)


Lesenswert?

Hey Conny,

hast du da etwas inzwischen stabil in Betrieb? Evtl. genaue Infos zum 
Initialisieren der Übertragung? Du warst dir oben nicht mehr sicher 
welche Dauer und welche Last. Hast du auch ein Schaltbild mit dem 
Op-Amp?

Ich hatte vor, im Zuge der Hausautomatisierung mich mal auch an den 
In-Home-Bus zu klemmen. Habe hier noch ein paar ESP8266 rumliegen und 
diese Winzlinge passen ohne Probleme in meine Sprechanlage. Das ganze 
dann als WLAN MQTT Bridge an den Broker und es lässt sich alles 
automatisiert bedienen ;)

Gruß
Waldi

von Conny G. (conny_g)


Lesenswert?

@Waldi:
Nein, habe das noch nicht stabil in Betrieb. Hatte noch ein Problem, 
dass zuviel Eingangskapazität in meiner Schaltung das Audio auf dem Bus 
stark dämpft.
Das konnte ich mit einem Gyrator beheben (Tipp hier im Forum). Das hatte 
aber wiederum den Effekt, dass der Gyrator mein Senden eines Signals 
killte, da schlägt dann wieder die Eingangskapazität zu, wie es scheint.
Ich hab das mal pausiert, weil ich nach einigen Stunden denken, 
recherchieren und testen nicht weiterkam und auch noch andere Projekte 
da sind, die ich weiterbringen will.
Man könnte sagen das Empfangen von Signalen klappt prima, beim Senden 
klemmt noch.

von Felix E. (felix41382)


Lesenswert?

Moin Conny,

danke für deiner erste Umsetzung. Konntest du das In-Bus-Home Protokoll 
weiter entschlüsseln?

Wenn Du Neuigkeiten für die Ansteuerung über Arduino hättest, wäre ich 
mehr als dankbar. Wir müssten bei uns sonst eine neue Anlage für 8k 
besorgen.

Eine Übergangslösung wäre für uns, wenn wir über das Strom-/CAT-Netzwerk 
den In-Home-Bus (Ta|Tb|ETR) extenden könnten. Gibt es eine fertige 
Lösung die ala Power over Ethernet solche Signale transportieren kann?

Danke für eure Hilfe!

Viele Grüße
Felix

von Conny G. (conny_g)


Lesenswert?

@Felix
mit der Entschlüsselung habe ich mich noch nicht weiter beschäftigt, mir 
reicht derzeit völlig aus die 2-3 Kommandos zu erkennen und die 2 
Türöffnungen zu senden.

Ob es was gibt für Ethernet, keine Ahnung. Ich erinnere mich daran, dass 
man ein Siedle-IP-Gateway dazukaufen kann, aber das kostet auch 
irgendwas 1.500-2.000 Euro.

Es gibt ein Siedle-Programmiermodul, mit dem man per sich per USB in den 
Bus klinken kann und die Endgeräte programmieren. Das habe ich mir mal 
gebraucht gekauft um damit irgendwann mal das Protokoll zu 
entschlüsseln.
Da müsste man einen USB-Sniffer dazwischenhängen (das gibt's, einfach 
eine Software auf dem Rechner, die das USB-Protokoll mitliest), dann 
kann man sehen, was die Software so mit dem Bus spricht.
Ich glaube man kann damit auch den Bus überwachen und Ereignisse 
protokollieren.

von Felix E. (felix41382)


Lesenswert?

Danke für die schnelle Antwort Conny. Kannst du mir die finale Arduino 
Schaltung zum Recorden/Replayen der Commands aufzeigen? Das würde mir 
schon sehr helfen. Letztendlich bildet das schon das Fundament für den 
Extender.

Idee:

in signal -> Arduino* -> TCP/IP --> Arduino* --> out signal

* mit Ethernet-Shield

Was das Signal im Detail bedeutet, muss ich dafür nicht verstehen.

: Bearbeitet durch User
von Tobi X. (ranger81)


Lesenswert?

Conny, zunächst mal vielen Dank für deine Analysen! Ich habe derzeit 
noch das Problem, dass die Audioübertragung stark gedämpft ist. Du hast 
in einem der vorherigen Beiträge von einem Gyrator zur Lösung des 
Problems geschrieben. Könntest du mir das näher erklären ggf. sogar mit 
einem Schaltplan?

Ich habe es schon mit einer einfachen Spule jeweils in Reihe von Ta und 
Tb versucht bin aber kläglich daran gescheitert das Audio-Signal zu 
verbessern.

Vielen Dank!

von Conny G. (conny_g)


Lesenswert?

@Tobi:
Hier der Thread zum Thema Gyrator:
Beitrag "Eingangskondensator dämpft Audio auf Busleitung"

@Felix:
dort gibt's auch den Schaltplan mit Komparator.

: Bearbeitet durch User
von Tobi X. (ranger81)


Angehängte Dateien:

Lesenswert?

@Conny: Vielen Dank für den Link.
Auf Basis der Beiträge im anderen Thread habe ich hier einen Schaltplan
des von dir gebauten Gyrators. Drei Werte sind mit allerdings noch
unbekannt (siehe Bild).
- Wert von R3 (33? du hast da glaube ich zwei Widerstände parallel?)
- Zener-Diode 15V? oder "normale" z.B. 1N4001
- Welches Mosfet/BJT hast du im Endeffekt verwendet?

Vielen Dank für deine großartige Analysearbeit und deine Unterstützung!

von Felix E. (felix41382)


Lesenswert?

Danke Conny. Kannst du mir bitte noch ein Auszug aus dem Arduino-Code 
geben, wie du das Aufnahmen und Wiederabspielen bewerkstelligst? Danke!

Schönes Wochenende Dir!

von Conny G. (conny_g)


Lesenswert?

@Tobi

Ich glaube die zwei parallelen für R3 sind 150 und 47 Ohm, also 35 Ohm.
Die Diode ist eine 1N4007, eine 1N4001 tut bestimmt auch.
Der Mosfet ist ein IRLU024N.

Mit den Werten experimentierte ich wild herum, der Gyrator schien mir da 
sehr tolerant zu sein und ich versuchte den Spannungsabfall am Gyrator 
zu minimieren, der ist mit dem Mosfet relativ hoch, 3-4 Volt.

von Conny G. (conny_g)


Lesenswert?

@Felix

Ist ohne Arduino, direkt mit Atmega328. Deshalb auch purer C Code. Muss 
mal schauen, ob der einfach extrahierbar ist oder ob zuviel anderes Zeug 
mit im Code ist. Wenn ich es in wenigen Minuten zusammengestellt bekomme 
poste ich es, mehr Zeit ist gerade nicht möglich ...

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

@Felix:

Angeschaut, der Code ist nicht hübsch genug zur Veröffentlichung. Aber 
schicke mir gerne Deine Email-Adresse, dann schicke ich es Dir 
persönlich als Referenz für Deine Implementation.

von Tobi X. (ranger81)


Lesenswert?

@Conny: Vielen Dank für die vielen Infos. Könntest du mir bei 
Gelegenheit auch eine Kopie deines Codes per Mail zusenden? Meine 
Mail-Adresse müsstest du schon haben.

Nochmals Danke!

von Tobi X. (ranger81)


Lesenswert?

Habe jetzt die Gyratorschaltung in Serie nach der Diode angeschlossen.
Die Lautstärke der Audioübertragung ist jetzt wesentlich besser bzw. 
unverändert zum Originalzustand!

Was ich bei Belastung (ca 150ma) allerdings immer noch habe, ist ein 
"schnelles rippeln/Schwingungen" im Hörer. Am Buck-Converter, der mir 
aus den ca. 15 V nach dem Gyrator 3.3V ausgibt, liegt es nicht. Auch mit 
einem linearen AMS1117-3.3 habe ich das selbe rippeln.

Testweise hab ich mal einen der zwei 100uF entfernt und das Rippeln wird 
deutlicher hörbar. Mehr C (1000uF) hat das Rippeln allerdings nicht 
wesentlich besser "unterdrückt".

Im zweiten Test habe ich den 22nF Kondensator im Gyrator gegen einen 
2.2uF ElKo ersetzt. Es scheint etwas besser geworden zu sein.

Bin ich da auf dem richtigen Weg?

Danke,
Grüße Tobi

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

@Tobi:
Da kann ich jetzt nur mit gefährlichem Halbwissen spekulieren.
Die C's wirken ja als Glättungskondensatoren, aber solange kein 
Widerstand (RC-Glied) mit ins Spiel kommt hast Du immer noch hohe 
Ladeströme für die Glättung und die könnten den Ripple vor Deiner 
Schaltung auslösen.
Und diese Ladungsströme des C macht m.E. eine höhere Kapazität auch 
nicht weg, weil trotzdem im C noch nachgeladen wird was verbraucht wird.
Das wird nur besser, wenn man den Ladestrom des C bremst mit R oder L.

Der Gyrator wirkt - wenn ich das richtig verstanden habe - als 
Induktivität.
Ich lese, dass ein Gyrator C in L konvertiert, damit erhöht sich das L, 
wenn man das C erhöht und der Ladestrom wird stärker eingebremst.
Das würde erklären, warum mehr C im Gyrator hilft.

: Bearbeitet durch User
von Felix E. (felix41382)


Angehängte Dateien:

Lesenswert?

Hey Conny,

ich bin deinem Rat gefolgt und habe mir mein erstes Oszilloskop 
zugelegt. Das Hantek 6022 BE mit 20MHz Auflösung reicht für mich 
komplett aus und hat im Falle des Siedle In-Home-Bus für "Licht im 
Dunkeln" gesorgt.

Die Ruhe-Spannung liegt bei meiner Anlage bei 30V. Anschließend erfolgt 
ein Spannungsdrop auf 1,79V für ein 0 Bit und geht auf 8V für ein 1 Bit. 
2mS pro Bit erfolgen.

Leider funktioniert deine Schaltung nicht. Ich erhalte kein Carrier 
Signal über den LM358. Sollte die Schaltung trotz der 
Spannungsabweichung noch funktionieren?

Danke für deine Hilfe.

Felix

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Hi Felix,

Du müsstest den Spannungsteiler am Komparator mal nachrechnen.
Hängt auch davon ab, welche Spannung Du als Referenzspannung dort hast, 
das ist bei den AVRs verschieden, welche ARef Du bekommst, wenn Du den 
ADC so schaltest.
Wenn meine Rechnung noch stimmt, dann habe ich da 2,56 Volt. Manche 
haben aber 1,1V.

Ich habe als Schaltschwellen für Carrier bei mir 14V und für Bits 5V 
festgelegt. D.h. ich werte das ganze als Signal, wenn die Spannung unter 
14V fällt und sehe eine Spannung unter 5V als 0 an und über 5V als 1 an.

Wenn nun die Referenzspannung 2,56 Volt ist und Carrier der Punkt 
zwischen dem 1,5k und dem 2,7k Widerstand ist musst Du Dir in einer 
Matrix ausrechnen, wann bei 14V diese Spannung unter 2,56 Volt kippt.
Bzw. Du musst Dir Widerstände ausrechnen, die das bewerkstelligen, bei 
mir waren das eben diese.
Dasselbe für die Bits.

Du machst Dir also eine Matrix mit Spannungen von 30V von links nach 
rechts und mit den 3 Widerständen vertikal und spielst solange damit 
rum, bis es für Dich passt.

Ich habe das mal schnell in Excel zusammengeworfen, hoffe das stimmt so. 
Damit kannst spielen und den Gesamtwiderstand auf der linken Seite so 
trimmen, dass Du mit den üblichen Widerstandswerten die richtigen 
Schwellen in der Matrix herausarbeiten kannst.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Und, Felix, gibt's neues?

von Felix (Gast)


Lesenswert?

@Conny:

Danke für deine Matrix. Leider bin ich noch nicht dazu gekommen. Aktuell 
geht es bei mir drunter & drüber. Diese Woche will ich mir aber die Zeit 
nehmen.

Ich berichte nach meinem Versuch :-)

Felix

von A. H. (dernetteeddie1978)


Lesenswert?

Conny G. schrieb:
> Auf dem Bus liegen 20V an (in 15m Entfernung vom Netzteil, das macht
> 27V).
> Durch einen ersten Impuls auf die Leitung wird die Bussteuerung
> vorgewarnt, dass gleich Daten kommen werden, dafür wird die Leitung für
> 11ms auf 1k Ohm Last gelegt.
> Nach diesen 11ms werden die Daten mit einer Last von 50 Ohm übertragen,
> etwa 1ms pro Bit insgesamt 32 Bit.
> Mit dem Beginn der 50 Ohm Last schaltet das Netzteil / der Controller
> automatisch auf Datentransfer und zieht die Spannung auf 3V (?).
> Die Anlage ist recht genau, was das Timing angeht, hatte anfangs eine
> Abweichung von ca. 5%, das hat nicht geklappt, nach Fine-Justage hat es
> erfolgreich geklingelt.
> Wenn das Timing nicht passt zieht der Controller auch recht schnell die
> Spannung wieder hoch, sie hält also nur solange unten wie man sendet.
> Und bei der Zeit für 32 Bit geht die Spannung auch direkt wieder hoch.

Hi,

erstmal danke für eure schon sehr hilfreichen Beiträge. Ich belebe mal 
den alten Thred wieder.
Der Impuls - das ist der bei 4ms?
Auf dem Bild vom Oszi sind 50V/div eingestellt?
Kennst du zufällig das genaue Timing für ein Bit bzgl. Rise-/ Falltime?
Du hast das Bild nicht zufällig mit ner kleineren Zeitbasiseinstellung?
Konntest du das Protokoll mittlerweile analysieren?
Kennst du auch den Befehl zum Türöffnen?


Danke und Gruß
Eddie

von A. H. (dernetteeddie1978)


Lesenswert?

P.S.: Weiß jemand was das für ne Art Protokoll ist (I2C, UART, CAN...)? 
Die werden ja vermutl. nichts eigenes erfunden haben sondern irgendwas 
bestehendes implementiert haben?

Gruß

von Conny G. (conny_g)


Lesenswert?

A. H. schrieb:
> Conny G. schrieb:
>> Auf dem Bus liegen 20V an (in 15m Entfernung vom Netzteil, das macht
>> 27V).
>> Durch einen ersten Impuls auf die Leitung wird die Bussteuerung
>> vorgewarnt, dass gleich Daten kommen werden, dafür wird die Leitung für
>> 11ms auf 1k Ohm Last gelegt.
>> Nach diesen 11ms werden die Daten mit einer Last von 50 Ohm übertragen,
>> etwa 1ms pro Bit insgesamt 32 Bit.
>> Mit dem Beginn der 50 Ohm Last schaltet das Netzteil / der Controller
>> automatisch auf Datentransfer und zieht die Spannung auf 3V (?).
>> Die Anlage ist recht genau, was das Timing angeht, hatte anfangs eine
>> Abweichung von ca. 5%, das hat nicht geklappt, nach Fine-Justage hat es
>> erfolgreich geklingelt.
>> Wenn das Timing nicht passt zieht der Controller auch recht schnell die
>> Spannung wieder hoch, sie hält also nur solange unten wie man sendet.
>> Und bei der Zeit für 32 Bit geht die Spannung auch direkt wieder hoch.
>
> Hi,
>
> erstmal danke für eure schon sehr hilfreichen Beiträge. Ich belebe mal
> den alten Thred wieder.
> Der Impuls - das ist der bei 4ms?
> Auf dem Bild vom Oszi sind 50V/div eingestellt?
> Kennst du zufällig das genaue Timing für ein Bit bzgl. Rise-/ Falltime?
> Du hast das Bild nicht zufällig mit ner kleineren Zeitbasiseinstellung?
> Konntest du das Protokoll mittlerweile analysieren?
> Kennst du auch den Befehl zum Türöffnen?
>
>
> Danke und Gruß
> Eddie

Habe da lange nicht mehr weitergemacht, zuviele andere Projekte.

Ja, 50V/div aber 10x, d.h. 5V/div. Frag mich nicht, warum ich das so 
gemacht hatte :-)
Genaue Timings unbekannt, alles experimentell ermittelt.
Protokoll habe ich nicht weiter analysiert, ich muss nur aufzeichnen und 
wieder abspulen, was mich interessiert.
Der Befehl zum Türöffnen ist pro Türstation individuell unterschiedlich, 
für mehr Details müsste man die Zuordnung der Bits kennen.
Soviel ich das Protokoll verstanden habe besteht der Großteil der 32bit 
aus 2 Adressen, Sender und Empfänger, die sich beim Programmieren auf 
einen Adresse einigen bzw. sich über das Programmieren kennenlernen:
Man versetzt die Türstation in Programmiermodus und klingelt bei der 
entsprechenden Klingel. Damit weiß die Türstation, welcher Klingelcode 
(Sender) für sie relevant ist und an wen sie den Öffnungsbefehl schicken 
muss.
Vermutlich hat dann jede Station ein Grid von IDs für die verschiedenen 
Funktionen/Tasten, die dann ebenfalls in den 32 Bit enthalten sind.

Ich hatte damals eine Weile recherchiert und ich habe nur das Busprinzip 
gefunden, Spannungsversorgung und Datenübertragung in einem zu machen 
und über verschiedene Last/Ströme zu senden.
Aber das spezielle Protokoll habe ich nirgendwo gefunden. Can/RS485/... 
die üblichen Verdächtigen sind es m.E. nicht.
Könnte schon ein proprietäres sein.

: Bearbeitet durch User
von Daniel P. (zwirbeljupp)


Angehängte Dateien:

Lesenswert?

Hallo Conny,
danke für Deine detaillierten Untersuchungen, sehr aufschlussreich!

Habe versucht anhand Deiner Doku ebenfalls auf dem Siedle in-home-Bus zu 
kommunizieren. Verfüge hier über ein Siedle BTS 850-02 und möchte - 
ähnlich wie Du - eigentlich nur den Türöffner über den Bus betätigen 
können.
Dazu habe ich zunächst die Buskommunikation mit dem Oszi beim Drücken 
der Türöffnertaste am BTS 850 aufgezeichnet (siehe Anhang).

Leider werde ich aus Deinen Angaben zum Start der Buskommunikation nicht 
ganz schlau; für 1 ms auf 50 Ohm Last? 11 ms auf 1k Last? Deine Angaben 
in den verschiedenen Threads dazu sind nicht ganz eindeutig. Ich habe 
soweit alle Konstellationen durchprobiert, aber ich konnte bislang nicht 
erreichen, dass der Busmaster die Spannung für die ca. 65 ms absenkt.

Im Anhang siehst Du das Ergebnis, wenn ich mit ca. 50 Ohm Last den Bus 
für 11 ms belaste (blau = Signalpegel am Mikrocontroller, gelb = 
Busspannung (Ta) )
Die Spannung bricht zwar kurz ein, wird vom Busnetzteil aber scheinbar 
direkt wieder ausgeregelt.

Wenn ich direkt am BTS 850 die Busspannung (Ta) messe, sehe ich am 
Anfang der Kommunikation keinerlei Indiz dafür, dass dort das Gleiche 
geschieht.
Übersehe ich etwas?

Kannst Du vielleicht noch einmal genauer beschreiben, wie Du die 
Buskommunikation initialisierst? Es hilft sicherlich auch, wenn Du einen 
Schnipsel Deines Codes posten würdest.

Danke & Gruß
Daniel

von Daniel P. (zwirbeljupp)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
mir ist noch etwas aufgefallen:

Ich habe ein kleines Test-Setup aufgebaut und erzeuge nun mittels 
Mikrocontroller Pulse von 1 bis 22 ms Länge auf dem Bus (mit 1kOhm Last 
und mit 50 Ohm Last getestet).
Bislang habe ich damit aber noch nicht erreichen können, dass der 
Busmaster die Spannung absenkt. Im Gegenteil:
wie die Screenshots zeigen, erzeuge ich Pulse unterschiedlicher Länge 
durch Anlegen einer 1kOhm Last (blaue Kurve), die Busspannung steigt in 
diesem Moment sofort an (um ca. 2,5 V). Allerdings tut sie dies immer 
für genau die gleiche Dauer, ca. 18 ms. Ich dachte zuerst, es handelt 
sich um einen Überschwinger, der durch das Nachregeln des Netzteils 
entsteht. Aber dagegen spricht, dass die Dauer des "Überschwingers" 
scheinbar unabhängig von der Länge meines Lastpulses ist.
Jemand eine Idee, was das bedeuten könnte?

Sobald der Lastpuls länger als ca. 11 ms andauert, bricht die 
Busspannung noch einmal kurz ein (auf das Ruheniveau), steigt nach 
Abschalten der Last aber wieder an. Seltsam.

Bin für alle Anregungen offen!

Danke & Gruß
daniel

von Conny G. (conny_g)


Lesenswert?

Hallo Daniel,

ich habe mir zuletzt vor einem Jahr oder länger mit der Siedle-Schaltung 
beschäftigt und hab's damals mal zurückgestellt, weil ich nicht mehr 
weiterkam. Inzwischen glaube ich weiss ich was das Problem war und 
wollte man wieder versuchen :-)

Hier mal ein Debug-Schnippsel das in einer Schleife alle 5 Sekunden ein 
Kommando sendet (war es klingeln?).
Die tatsächliche Senderoutine sieht jetzt anders aus, aber ich hatte die 
zuletzt auch vermurkt wenn ich mich recht erinnere, bin ziemlich sicher, 
dass die nicht geht.

Nach aller Recherche ist der Siedle-Bus einer der auf Strom basiert, man 
muss per Strom seine Bits signalisieren. Und die Init-Sequenz hat soviel 
ich mich erinnern kann als Knackpunkt, dass man diesen kurz Puls mit den 
1-2kOhm setzt und danach sofort beginnt mit den Bits zu wackeln, also 
den 50 Ohm dazu zu schalten.
Wenn man das nicht tut oder sonst irgendein Timing-Fehler drin ist, 
schaltet der Bus gleich wieder hoch.
Ich kann mich auch erinnern, dass der Bus eher pingelig mit dem Timing 
war, die Abweichung durfte nur klein sein, sonst wurde vom Bus gleich 
abgebrochen.

Bei den Widerstandswerten bin ich mir nicht sicher, alles durch 
Probieren ermittelt, wann der Bus das tut was er soll und wann die 
Kurven die ich messe denen ähnlich werden, die der Bus selber sendet.

Vg,
Conny
1
  // PC0: 2,2k Ohm
2
  // PC1: 100 Ohm
3
4
5
  // 10ms 2,2k
6
  // bits mit 100 Ohm
7
8
  DDRC |= _BV( PC0 ) | _BV( PC1 );
9
  PORTC = 0;
10
11
  while (1)
12
  {
13
    long_delay( 5000 );
14
    PORTC |= _BV( PC0 );
15
    long_delay( 11 );
16
    PORTC &= ~_BV( PC0 );
17
18
    PORTC |= _BV( PC0 );
19
    PORTC |= _BV( PC1 );
20
21
    uint8_t bits[33] =
22
    {
23
      1, 0, 1, 0, 1, 0, 1, 1,
24
      0, 0, 1, 1, 0, 1, 0, 1,
25
      1, 1, 1, 0, 1, 0, 1, 1,
26
      1, 1, 0, 1, 1, 1, 1, 1,
27
      0
28
    };
29
30
    for (int i = 0; i < 33; i++ )
31
    {
32
      if ( bits[i] == 0 )
33
      {
34
        PORTC &= ~_BV( PC1 );
35
      }
36
      else
37
      {
38
        PORTC |= _BV( PC1 );
39
      }
40
      //for (int d = 0; d < 105; d++ )
41
        //_delay_us( 10 );
42
      long_delay( 1 );
43
    }
44
45
    PORTC &= ~_BV( PC1 );
46
    PORTC |= _BV( PC1 );
47
    PORTC &= ~_BV( PC1 );
48
    PORTC &= ~_BV( PC0 );
49
  }

von Daniel P. (zwirbeljupp)



Lesenswert?

Hi Conny,
danke für Deine Antwort!

Ich habe das so nachgebaut und würde inzwischen sagen, ich habe alles 
versucht: um Probleme mit dem Timing auszuschließen habe ich 
automatisiert die Länge des "Initialisierungspulses" im µs-Bereich 
zwischen 1 ms und 30 ms variiert. Wie von Dir vorgeschlagen danach 
direkt die Bits ausgegeben (Dauer pro Bit 2 ms, also entsprechend dem, 
was das Haustelefon produziert).
Zusätzlich habe ich die Widerstandswerte variiert, mal mit 50 Ohm 
initialisiert und mit 1 kOhm die Bits gewackelt, mal andersherum. Bis 
auf die Erkenntnis, dass das Busnetzteil (Siedle BNG 650-0) scheinbar 
ziemlich hart im Nehmen ist, bin ich leider nicht weitergekommen. Ich 
kann die Busspannungsabsenkung einfach nicht provozieren :( Entsprechend 
kommen meine Datenbits natürlich auch nur wild verzerrt auf dem Bus an.

Inzwischen vermute ich, dass die Initialisierung der Kommunikation, die 
das Busnetzteil dazu bewegt, die Spannung abzusenken, bei dieser neuen 
Version des in-home-Bus anders funktioniert, als bei Deiner 
Installation. Wenn ich mir das Oszillogramm der Buskommunikation 
(Haustelefon sendet "Tür öffnen") anschaue, finde ich keinerlei Indiz 
dafür, dass im Vorfeld der eigentlichen Kommunikation (=Übertragung der 
Datenbits) eine nennenswerte Last auf den Bus geschaltet wird. Die 
Spannung bricht nicht so ein (bzw. schwingt über), wie wenn ich dies mit 
der 1kOhm bzw. 50 Ohm Last erzwinge. Zudem finde ich auf der Platine 
keine Lastwiderstände bzw. Transistoren, die mit den Busleitungen 
verbunden sind (siehe Fotos). Stattdessen sind die Busleitungen direkt 
mit zwei Pins am ASIC (jeweils 4.7 kOhm in Reihe) verbunden (siehe 
Markierung im Foto).

Ich frage mich daher, wie die Initialisierung der Kommunikation denn 
sonst noch erfolgen könnte und wie ich das messtechnisch ermitteln kann? 
Ich habe es bereits mit einem "Shunt" (3.5 Ohm) in der Masseverbindung 
(bzw. Busleitung Tb) zum Haustelefon versucht und mir den 
Spannungsabfall darüber per Oszi angeschaut. Dort sehe ich zwar einen 
kleine Spike ganz zu Anfang der Buskommunikation, allerdings erst, 
sobald die Busspannung bereits abgesenkt wurde. Habt ihr noch Tips, was 
ich versuchen kann?

Gruß
daniel

von Conny G. (conny_g)


Lesenswert?

Also bei einem Bus mit Stromversorgung kann es nur mit Strom 
signalisiert werden, da gibt es gar keinen anderen Weg.

von Daniel P. (zwirbeljupp)


Angehängte Dateien:

Lesenswert?

Die Sache lässt mich nicht los. Ich habe erfolglos noch einmal diverse 
Timing- und Widerstandskonfigurationen getestet.
Ich frage mich immer noch, wie die Originalschaltung den Bus so 
drastisch von 30V auf 0V herunterziehen kann, ohne dass auf der Platine 
passende Widerstände oder FETs zu finden sind. Das muss also alles in 
dem ASIC stattfinden.

Zusätzlich habe ich nun eine Strommessung (Busleitung Ta zum 
Haustelefon) während des Sendens des Türöffnungssignals durchgeführt. Im 
Anhang (gelbe Kurve) ist ein Peak von 150µs zu sehen (1mV im Diagramm 
entspricht hier 1mA). Der Strom steigt also kurzzeitig auf über 700 mA 
an. Ist diese Rampe möglicherweise das Startsignal?

Hat noch jemand eine Idee, wie ich das Geheimnis messtechnisch lüften 
kann? Oder was ich noch versuchen kann, um die Kommunikation zu 
initialisieren?

Danke & Gruß
Daniel

von Conny G. (conny_g)


Lesenswert?

Rechne mal. R = U / I = 30 V / 0,7 A = 43 Ohm.

Versuche doch mal genau diesem Impuls von 40us und 700mA zu erzeugen, 
also für diese Zeit 40Ohm auf den Bus zu schalten.
Genau das machen meine 50 Ohm. Die Frage ist, wie das Timing genau sein 
muss. Ich habe es auf genau diese Weise damals rausgemessen und 
nachgestellt um kam so auf Schaltung und Timing und es funktionierte, 
bei mir jedenfalls. Aber ich habe auch schon festgestellt, dass die 
Anlage beim Timing recht pingelig ist.

von Daniel P. (zwirbeljupp)


Lesenswert?

Hi Conny,
klar, die Rechnung habe ich natürlich auch schon gemacht und das ganze 
mit Widerständen hinunter bis 3.5 Ohm getestet. Damit zwinge ich die 
Busspannung natürlich kurzzeitig bis fast auf 0V, aber das Busnetzteil 
regelt den Strom gleich nach und versucht die Last auszugleichen, 
anstatt die Busspannung für die Datenübertragung abzusenken.

Hier ist mein Code, um automatisiert die Sendesequenz mit 
Initialisierungspulsen unterschiedlicher Länge durchzuführen:
(ist für einen PIC24FJ256GB106)
1
   BYTE bits[33] =
2
    {
3
       0,1,0,0,0,1,1,0,0,0,
4
       0,0,1,0,1,0,0,0,0,1,
5
       0,0,1,0,1,0,1,0,0,0,
6
       0,0,
7
       1
8
   };
9
10
void SendSeq(BYTE *bits, WORD initdel)
11
{
12
    // Pin D1:  activates 40 Ohm Load
13
    // Pin D2:  activates 1 kOhm Load
14
    
15
    BYTE i;
16
    
17
    // Bus Init Sequence
18
    EXP_D1_LAT = 1;     // 40 Ohm Load
19
    Delayus(initdel);   // Duration for Init-Pulse
20
    
21
    // switch off Init Load
22
    EXP_D1_LAT = 0;     // 40 Ohm 
23
    
24
    // send bits  
25
    for (i = 0; i < 33; i++ )
26
    {
27
        if ( bits[i] == 0 )
28
        {
29
            EXP_D2_LAT = 1;     // 1kOhm
30
        }
31
        else
32
        {
33
            EXP_D2_LAT = 0;     // 1kOhm
34
        }
35
        Delayus(2000);  // bit duration: 2ms
36
    }
37
    
38
    // release bus
39
    EXP_D1_LAT = 0;
40
    EXP_D2_LAT = 0;
41
}
42
43
44
void ScanSendSeq()
45
{
46
    WORD prr;
47
    BYTE txt[200];
48
    
49
    // Try to send sequence, cycle through init pulse durations from 10 µs to 30 ms
50
    // (actual data bits alway have a pulse width of 2 ms)
51
    for(prr = 10; prr <30000; prr+=10)
52
    {
53
        // debug output
54
        sprintf(txt,"\n\rsendseq with prr: %u us",prr);
55
        putsUART2(txt);
56
        
57
        // send the bit sequence with current init-pulse duration
58
        SendSeq(bits, prr);
59
        
60
        // wait some time before testing the next configuration
61
        Delayms(250);
62
        Delayms(250);
63
        Delayms(250);
64
        Delayms(250);
65
        Delayms(250);        
66
     
67
    }    
68
    
69
}

Beim Messen auf der Schaltung sind mir noch ein paar Sachen aufgefallen:
- Es gibt keine dedizierten Spannungsregler auf der Platine. Scheint 
alles der ASIC integriert zu haben
- Der Mikrocontroller wird mit ca. 3V betrieben
- ein Teil der Schaltung wird mit 8V versorgt (mit einem dicken 470 µF 
Kondensator gepuffert
- zusätzlich sind noch 7,4 V (ebenfalls mit 470 µF gepuffert) auf der 
Platine zu messen

Ich gehe davon aus, dass - sobald die Initialisierungsroutine vom 
Netzteil erkannt wurde - das Netzteil die Spannungsversorgung des Bus' 
komplett deaktiviert und die Schaltung des Haustelefons die 
Spannungsversorgung ~8V aus den Speicherelkos kurzzeitig zur Verfügung 
stellt (und damit auch die Datenpulse erzeugt werden)

von Conny G. (conny_g)


Lesenswert?

Daniel P. schrieb:
> Hier ist mein Code, um automatisiert die Sendesequenz mit
> Initialisierungspulsen unterschiedlicher Länge durchzuführen:
> (ist für einen PIC24FJ256GB106)

Sieht doch gut aus.
Versuche mal 1ms 50 Ohm + 1000 Ohm parallel, lass die 1000 Ohm an und 
nach 10ms Pause fange mit den Datenbits an, also die 1000 Ohm wackeln.
Möglicherweise will er eine Stromspitze sehen und dann dauerhaft den 
Strom der 1000 Ohm.

> Beim Messen auf der Schaltung sind mir noch ein paar Sachen aufgefallen:
> - Es gibt keine dedizierten Spannungsregler auf der Platine. Scheint
> alles der ASIC integriert zu haben
> - Der Mikrocontroller wird mit ca. 3V betrieben
> - ein Teil der Schaltung wird mit 8V versorgt (mit einem dicken 470 µF
> Kondensator gepuffert
> - zusätzlich sind noch 7,4 V (ebenfalls mit 470 µF gepuffert) auf der
> Platine zu messen

Die 8 bzw. 7,4V sehen danach aus als wäre da eine Diode oder ein Mosfet 
drin, der die 0,6V nimmt?

> Ich gehe davon aus, dass - sobald die Initialisierungsroutine vom
> Netzteil erkannt wurde - das Netzteil die Spannungsversorgung des Bus'
> komplett deaktiviert und die Schaltung des Haustelefons die
> Spannungsversorgung ~8V aus den Speicherelkos kurzzeitig zur Verfügung
> stellt (und damit auch die Datenpulse erzeugt werden)

Ja, das mache ich auch so, dass ein großer C den Spannungseinbruch 
während des Datenprotokolls puffert.
Das benötigt allerdings wiederum einen Gyrator um zu verhindern, dass 
der Elko das Audio-Signal und die Datensignale auf dem Bus dämpft.
Den hab ich auch und ich glaube genau da hatte ich zuletzt auch mein 
Problem, die "Induktivität" des Gyrators war zu gering und er lies noch 
zu, dass das Datensignal vom Elko gedämpft wird.
Findet sich auf der Siedle Platine ein Gyrator?

So hab ich meinen Gyrator gebaut:
http://www.loetstelle.net/projekte/gyrator/gyrator.php

Wie sieht denn Deine Schaltung aus, könntest von der einen Schaltplan 
posten?

: Bearbeitet durch User
von Daniel P. (zwirbeljupp)


Lesenswert?

Danke für Deine schnelle Antwort!

Conny G. schrieb:
> Daniel P. schrieb:
>> Hier ist mein Code, um automatisiert die Sendesequenz mit
>> Initialisierungspulsen unterschiedlicher Länge durchzuführen:
>> (ist für einen PIC24FJ256GB106)
>
> Sieht doch gut aus.
> Versuche mal 1ms 50 Ohm + 1000 Ohm parallel, lass die 1000 Ohm an und
> nach 10ms Pause fange mit den Datenbits an, also die 1000 Ohm wackeln.
> Möglicherweise will er eine Stromspitze sehen und dann dauerhaft den
> Strom der 1000 Ohm.
Da hat sich leider auch nix getan...

> Ja, das mache ich auch so, dass ein großer C den Spannungseinbruch
> während des Datenprotokolls puffert.
> Das benötigt allerdings wiederum einen Gyrator um zu verhindern, dass
> der Elko das Audio-Signal und die Datensignale auf dem Bus dämpft.
> Den hab ich auch und ich glaube genau da hatte ich zuletzt auch mein
> Problem, die "Induktivität" des Gyrators war zu gering und er lies noch
> zu, dass das Datensignal vom Elko gedämpft wird.
> Findet sich auf der Siedle Platine ein Gyrator?
nein, kann ich so nicht erkennen.
Aber warum packst Du die Pufferelkos eigentlich an den Bus? Ich würde 
die HINTER den Spannungsregler setzen. Dann sollten sich doch die 
Probleme mit der Busdämpfung komplett erledigen, meinst Du nicht?

> Wie sieht denn Deine Schaltung aus, könntest von der einen Schaltplan
> posten?
Meine "Schaltung" besteht momentan nur aus einem PCB von einem anderen 
Projekt mit PIC Mikrocontroller, über den ich die zwei Widerstände auf 
den Bus schalten kann (also genau nach Deinem Vorschlag, BC337 mit den 
Pull-downs und den entsprechenden Last- und Basiswiderständen. Den 
Basiswiderstand habe ich allerdings auf 1,8k reduziert, da mein PIC mit 
3,3V läuft). Mehr nicht. Die Dekodierung des Signals habe ich noch nicht 
eingebaut, werde das aber vermutlich nicht mit Komparatoren, sondern 
über den ADC lösen.
Aber erstmal ist diese Businitialisierung zu besiegen!

von Info (Gast)


Lesenswert?

Conny G. schrieb:
> Es gibt ein Siedle-Programmiermodul, mit dem man per sich per USB in den
> Bus klinken kann und die Endgeräte programmieren. Das habe ich mir mal
> gebraucht gekauft um damit irgendwann mal das Protokoll zu
> entschlüsseln.

Dazu eine Frage: um ein "Bus-Eingangs-Modul" (BEM-650-0) an BNG 650-0 zu 
konfigurieren ist offenbar zwingend das "Programmierinterface USB" (PRI 
602-01 USB) und das "Zubehör-Bus-Versorgung" (ZBVG 650-0) erforderlich.
Zusammen ca. 230 Euro!

Enthält dieses Modul irgendwelche Geheimnisse (direkter Bus-Zugriff?) 
oder nur einen USB-UART Chip? Der Treiber-Installer ist mit WiX erzeugt; 
mehr habe ich nicht herausfinden können.
Kurzum, lassen sich die Module evtl. "billig" konfigurieren (die 
Software kann heruntergeladen werden)?

von Sven L. (sven_rvbg)


Lesenswert?

Das ZBVG 650-01 ist eine Platine die ins Netzgerät gesteckt wird.

Auf dieser ist eine Westernbuchse, über die man das PRI anschließt.

Gegenüber der Programmiersoftware verhält sich das PRI wie ein COM-Port.

Inwieweit das Modul direkt den Bus adaptiert, weiß ich gerade nicht.

Auf jeden Fall ist es wertvoll zum Inbetriebnehmen und Fehler suchen.

von Info (Gast)


Lesenswert?

Danke dir.

Auf ZBVG 650-01 ist offenbar nicht viel drauf:
Sieht aus wie zwei Steckverbinder, zwei Spannungsregler, ein paar Dioden 
und Drumherum:
  http://www.siedle.de/xs_db/BILD_DB/03000-03499/www/500/03057.jpg

Die Belegung wäre interessant. Und was im PRI steckt..


OT:
Sven L. schrieb:
> Auf jeden Fall ist es wertvoll zum Inbetriebnehmen und Fehler suchen.

Bei einer Inbetriebnahme/Änderung liegen 230 Euro Anschaffungskosten 
vermutlich über den Kosten für die Dienstleistung - wie 
kompliziert/aufwendig  ist denn die Einarbeitung/Konfiguration (einen 
Türkontakt (BEM) auf zwei neuen Innensprechstellen anzeigen)?

von Info (Gast)


Lesenswert?

Die Firmware als hex gibt es bei Siedle zum Download.

Der Adapter ist gar nicht direkt für den "InHome-Bus", sondern für den 
"Sa/Sb Backbone" zwischen BNGs.

Aus der BPS Online Hilfe:
> Bei einem PC-Anschluss via USB wird der PC mit dem beiliegendem USB-Kabel mit 
dem PRI 602-...USB verbunden. Das PRI 602-...USB wiederum ist mit dem Sa-/Sb-Bus 
des Systems verbunden. Das PRI 602-...USB ist die transparente Schnittstelle des 
Sa-/Sb-Bus-Systems, und die BPS kann darüber mit allen angeschlossenenen 
Endgeräten in allen Strängen eine Verbindung herstellen.

Etwas widersprüchlich:

> Das PRI 602-...USB wird am Sa/Sb-Bus (Backbone) angeschlossen und leitet die 
Daten dieses Buses an den PC weiter. Beachten Sie, dass nicht alle Telegramme 
innerhalb eines InHome-Strangs auf diesem Sa/Sb-Bus vorhanden sind. Sogenannte 
"stranginterne Telegramme" bzw. Telegramme, deren Ziele nicht ausserhalb des 
jeweiligen Strangs liegen, sind auf dem Sa-/Sb-Bus nicht sichtbar!
> Wollen Sie stranginterne Telegramme aufzeichnen, so verwenden Sie bitte die die 
Kombination PRI 602-... und BIM. Hier sehen Sie jedoch nur diejenigen Telegramme 
innerhalb des angeschlossenen Strangs und nicht diejenigen stranginteren 
Telegramme anderer Stränge.

> Der Sa-/Sb-Bus muss beim Anschluss eines PRI 602-...USB eine Stromversorgung 
besitzen. Entweder separat über ein BVG650-... oder über eine Zubehör-Leiterplatte 
ZBVG 650-... (gesteckt innerhalb BNG/BVNG 650)

> Achtung: Die Zubehör-Leiterplatte ZBVG 650-... bzw. das BVG650-... darf 
innerhalb einer Mehrstrang-Anlage nur einmal(!) vorhanden sein.


Die Programmiersoftware ist auch herunterzuladen. Mit ihr kann man die 
Buskonfiguration auch offline als Gerätebaum zusammenklicken, Gruppen 
und Funktionen festlegen. Scheint recht einfach.

von Sven L. (sven_rvbg)


Lesenswert?

Info schrieb:
> Bei einer Inbetriebnahme/Änderung liegen 230 Euro Anschaffungskosten
> vermutlich über den Kosten für die Dienstleistung - wie
> kompliziert/aufwendig  ist denn die Einarbeitung/Konfiguration (einen
> Türkontakt (BEM) auf zwei neuen Innensprechstellen anzeigen)?

Das ist klar, aber wenn man öfter Siedleanlagen machen will, Gruppen 
braucht und ein Anbindung an eine Telefonanlage zu machen hat, kommt man 
nicht drum rum.

Je nach Größe der Anlage geht das Programmieren schneller oder 
langsamer.
Der Siedle Bus ist kein Highspeedbus.

Info schrieb:
> Die Firmware als hex gibt es bei Siedle zum Download.

>
> Der Adapter ist gar nicht direkt für den "InHome-Bus", sondern für den
> "Sa/Sb Backbone" zwischen BNGs.
Ich habe mit dem PRI und der Zusatzplatine letztens eine Einstranganlage 
programmiert. Zwei Aussenstation, Zwei Innenstationen und noch ein paar 
Zusatzmodule.

Mit Sa/Sb koppelt man mehrere Stränge, die Adapterplatine im NG koppelt 
in dem Fall auf Ta/Tb, der den Strang bedient.


>
>> Der Sa-/Sb-Bus muss beim Anschluss eines PRI 602-...USB eine Stromversorgung
> besitzen. Entweder separat über ein BVG650-... oder über eine
> Zubehör-Leiterplatte
> ZBVG 650-... (gesteckt innerhalb BNG/BVNG 650)
>
>> Achtung: Die Zubehör-Leiterplatte ZBVG 650-... bzw. das BVG650-... darf
> innerhalb einer Mehrstrang-Anlage nur einmal(!) vorhanden sein.
Halt immer in dem Strang der gerade programmiert werden soll.
>
> Die Programmiersoftware ist auch herunterzuladen. Mit ihr kann man die
> Buskonfiguration auch offline als Gerätebaum zusammenklicken, Gruppen
> und Funktionen festlegen. Scheint recht einfach.
Ja man kann offline bissel klicken, allerdings eher zum spielen.

Ich würde die Anlage installieren, auslesen, die Module identifizieren 
und benennen und dann programmieren

von Manuel B. (prodigy7)


Lesenswert?

Hallo zusammen,

habe hier im Haus auch eine Siedle-Anlage und würde gerne auch auf VoIP 
& Co. umstellen um es in meine Heimautomatisierung mit FHEM integrieren 
zu können. Soweit ich das hier lesen konnte, seid ihr noch nicht so weit 
gekommen oder? Wäre es nicht eventuell sinnvoll, sich irgendwo mit ein 
paar Drähten an die Sprechanlage zu hängen?

p7

von Sven L. (sven_rvbg)


Lesenswert?

Manuel B. schrieb:
> Hallo zusammen,
>
> habe hier im Haus auch eine Siedle-Anlage und würde gerne auch auf VoIP
> & Co. umstellen um es in meine Heimautomatisierung mit FHEM integrieren
> zu können. Soweit ich das hier lesen konnte, seid ihr noch nicht so weit
> gekommen oder? Wäre es nicht eventuell sinnvoll, sich irgendwo mit ein
> paar Drähten an die Sprechanlage zu hängen?
>
> p7

Das hat man doch gemacht, man hat sich an den digitalen BUS von Siedle 
gehängt und hat versucht da etwas verwertbares rauszubekommen.

Keine Ahnung was Du konkret vor hast. Zur Anbinungen an Telefonsysteme 
nimmt man bei Siedle das DCA über einen entsprechenden Adapter hat man 
dann auch VoIP. Will man klingeln signalisieren verwendet man entweder 
die Relaiserweiterung für's DCA oder ein Bus-Schaltmodul.

Den Türöffner kann man koventionell mit einem Relais mit zwei Schließern 
realisieren.

Bei BUS-Anlagen tut man sich mit dem Programmierkabel leichter. Bzw wenn 
man mit Gruppen arbeiten will / muss kommt man nicht drum herum.

von A. H. (dernetteeddie1978)


Angehängte Dateien:

Lesenswert?

Moin ihr lieben,  also nach langer Zeit konnte ich mich dem Thema nun 
auch wieder widmen.

Bei mir ist das alles etwas anders als im Eingangspost beschrieben.

Der Ruhepegel liegt bei 30V.
Drückt man die Klingel so kommen direkt die 32 Bit, geführt von einer 
Null die auch so ne Art Sync sein könnte.
Die Dauer eines Bits beträgt 2ms.
Am Ende folgt noch so ne "halbe" Eins von ca 1ms.

Hab die Emmitter-Schaltung aus Connys zweitem Post kopiert,  aber nur 
dem Teil mit Transistor Q3.

Das ganze funktioniert bei mir wunderbar.  Hab die Bitfolge in ein Array 
geschrieben und sobald der Pegel auf der Leitung abfällt liest der 
Controller 32 Bit a 2ms ein. Wenn die Folge passt wirds Klingeln 
ausgelöst.

 Den Türöffner muss ich nun als nächstes machen.
Ist aber auf Bus das gleiche Prinzip,  hab die Bitfolge dazu auch schon 
ausgelesen

Im Bild seht ihr meine Oszillographie des Klingelbefehls.

Gruß
Eddie

von A. H. (dernetteeddie1978)


Lesenswert?

Hallo ihr lieben,

nach ewigem rumprobieren bin ich nun leider auch nicht weitergekommen.

Grundsätzlich lässt sich auch bei mir keine gesonderte Initialisierung 
der Kommunikation feststellen. Stattdessen schickt das BTS-850 direkt 
die 32 Bit gefolgt von dem "halben" Bit das ich im Post zuvor schon 
erwähnt hab. Auch die Rampe die Daniel P. oben beschrieben hat ist bei 
mir vorhanden, sie hebt die Spannung um ca. 1 Volt an. Weiterhin ist zu 
sehen dass der Bus nach Ende der Kommunikation für einige ms auf 29V 
hochgeht. Ansonsten ist er bei 27,5V und nicht auf 30V wie ich oben 
drüber geschrieben hab.

Zur Strommessung nun hab auch ich einen Shunt in die Masseleitung 
geschaltet und die Spannung drüber gemessen. Allerdings hab ich 10 Ohm 
genommen.

Folgende Ströme hab ich gemessen:

High-Byte: 38,4mA @7,6V
Low-Byte:  47,2mA @ 2V

Ich hab nun Connys Schaltung mit Q4 und Q5 nachgebaut und folgende 
Widerstandswerte errechnet:

High: 7,6V/38,4mA = 198 Ohm
Low: 2V/47,2mA = 42 Ohm

Lege ich die 42 Ohm aber nun auf den Bus um eine Null zu schreiben, so 
zieht das Netzteil auch bei mir die Spannung sofort wieder hoch.
Das Netzteil regelt nach bereits 25µs zurück also lange bevor die ersten 
2ms für das erste Bit um sind und auch noch lange bevor die 150µs für 
die kleine Rampe um sind.

Die Zeit die das BTS-850 braucht um den Bus runter zu ziehen ist 
übrigens 50µs, also doppelt so lange wie das Netzteil sich Zeit nmmt um 
bei meiner Schaltung wieder hoch zu ziehen.

Angenommen der Stromfluss ist also falsch um die Null zu schreiben, so 
müsste das Netzteil ja zumindest die 50µs warten bevor es dagegen 
regelt.


Hat das von euch mittlerweile jemand lösen können?

Die 1000 Ohm parallel zu den 50 Ohm habe ich auch ohne Erfolg versucht.
Aber das erschließt sich mir auch nicht so ganz, da der Gesamtwiderstand 
damit ja grad mal 47 Ohm abfällt wenn man die beiden Werte parallel 
schaltet.

Gruß
Eddie

: Bearbeitet durch User
von A. H. (dernetteeddie1978)


Lesenswert?

P.S.: Wenn ich die Masseklemme des Oszi mal weglasse sehe ich auf beiden 
Leitungen statt der Gleichspannung einen Sinus von 20V und 50HZ. Weiß 
jemand was es damit auf sich hat?

von John N. (johnic)


Lesenswert?

Hello all,

mich würde interessieren, wie das Video- und Audiosignal über den 
in-home-bus übertragen wird: analog (Trägermodulation?) oder digital 
(Kodierung? Protokoll?).
Habe vergeblich die online Siedle-Dokumentation untersucht bzw. auf dem 
Net gesucht.
Weiss jemand Bescheid?

von Conny G. (conny_g)


Lesenswert?

Analog soviel ich weiß.

von John N. (johnic)


Lesenswert?

Hello Conny,

Habe nicht vergessen, "Dankeschön" für die Info zu sagen; Habe nur 
gehofft, ich könnte diese Information direkt von Siedle bekommen, und so 
eine Anfrage dort abgesetzt. NAch lange hin und her, war ich gebounced, 
weil sie "Informationen dieser Art nicht veröffentlichen" und " es sich 
um "Betriebsgeheimnisse" handelt".
Somit verstehe ich nun auch den Sinn eures Forums: die Funktionsweise 
des in-home-bus durch try-and-error selber herauszufinden, da aus dem 
Hause Siedle nichts zu erfahren ist! Gratuliere alle Beteiligten. Macht 
munter weiter! :)

rgds / john

von banklooker (Gast)


Angehängte Dateien:

Lesenswert?

Hey!
Hat es mittlerweile jemand geschafft, mit einem eigenen Client Klingeln 
zu erkennen und den Türöffner bei dem aktuellen BNG 650-0 auszulösen und 
die Anlage so "smart" zu machen?
Wie sieht es mit VoIP aus?

Mittlerweile gibt es ja nello.io - die das ganze universal für die 
meisten Gegensprechanlagen geschafft haben.
Allerdings mit Cloud-Zwang und eingeschränktem Funktionsumfang. Würde 
das ganze gerne unabhängig davon umsetzen.

von Conny G. (conny_g)


Lesenswert?

John N. schrieb:
> Hello Conny,
>
> Habe nicht vergessen, "Dankeschön" für die Info zu sagen; Habe nur
> gehofft, ich könnte diese Information direkt von Siedle bekommen, und so
> eine Anfrage dort abgesetzt. NAch lange hin und her, war ich gebounced,
> weil sie "Informationen dieser Art nicht veröffentlichen" und " es sich
> um "Betriebsgeheimnisse" handelt".
> Somit verstehe ich nun auch den Sinn eures Forums: die Funktionsweise
> des in-home-bus durch try-and-error selber herauszufinden, da aus dem
> Hause Siedle nichts zu erfahren ist! Gratuliere alle Beteiligten. Macht
> munter weiter! :)
>
> rgds / john

Ich habe nie bei Siedle angefragt, war mir aber klar, dass die das als 
„Intellectual Property“ sehen. Die wollen ja Geräte verkaufen. Während 
heute alle Cloud Services verkaufen wollen :-)

Freue mich auch sehr darüber, dass heutzutage derlei Dinge in Foren wie 
diesen Reverse Engineered und Open gemacht werden :-)

von Conny G. (conny_g)


Lesenswert?

banklooker schrieb:
> Hey!
> Hat es mittlerweile jemand geschafft, mit einem eigenen Client Klingeln
> zu erkennen und den Türöffner bei dem aktuellen BNG 650-0 auszulösen und
> die Anlage so "smart" zu machen?
> Wie sieht es mit VoIP aus?
>
> Mittlerweile gibt es ja nello.io - die das ganze universal für die
> meisten Gegensprechanlagen geschafft haben.
> Allerdings mit Cloud-Zwang und eingeschränktem Funktionsumfang. Würde
> das ganze gerne unabhängig davon umsetzen.

Die Platine müsste man mal dokumentieren, lässt sich bestimmt was von 
lernen.

von banklooker (Gast)


Lesenswert?

Meinst du konkret welche Chips verwendet werden?
Leiterbahnen könnte schwer werden, ich nehme an, dass die Multilayer 
sind.

von Conny G. (conny_g)


Lesenswert?

banklooker schrieb:
> Meinst du konkret welche Chips verwendet werden?
> Leiterbahnen könnte schwer werden, ich nehme an, dass die Multilayer
> sind.

Hauptsächlich Ein/Ausgang von/nach der Anlage, der uC und Wifi ist ja 
erstmal uninteressant.

von Sven L. (sven_rvbg)


Lesenswert?

banklooker schrieb:
> Mittlerweile gibt es ja nello.io - die das ganze universal für die
> meisten Gegensprechanlagen geschafft haben.

Sicher das das für BUS-Sprechanlagen funktioniert?


Hier denen ihre Montage- und Installationsanleitung:
https://www.nello.io/20171117_DYI%20Manual_DE.pdf

von Sven L. (sven_rvbg)


Lesenswert?

Hab grade gesehen, das ganze scheint auch an BUS-Anlagen zu 
funktionieren.

Die machen das lt. Vidiotutorial über einen Lernprozess.
Also Klingeln wenn das Gerät einen aufordert, oder den TÖ betätigen wenn 
es gewünscht wird und das Gerät schneidet dann die Telegramme mit um sie 
selbst verwenden zu könnne.

Man muss sagen, die haben sich echt Gedanken gemacht, zur 
Datenübertragung in Ihr gerät verwenden die das Display des Smartphones, 
ähnlich wie beim Chip-TAN-Verfahren.

von Conny G. (conny_g)


Lesenswert?

Sven L. schrieb:
> Hab grade gesehen, das ganze scheint auch an BUS-Anlagen zu
> funktionieren.
>
> Die machen das lt. Vidiotutorial über einen Lernprozess.
> Also Klingeln wenn das Gerät einen aufordert, oder den TÖ betätigen wenn
> es gewünscht wird und das Gerät schneidet dann die Telegramme mit um sie
> selbst verwenden zu könnne.
>
> Man muss sagen, die haben sich echt Gedanken gemacht, zur
> Datenübertragung in Ihr gerät verwenden die das Display des Smartphones,
> ähnlich wie beim Chip-TAN-Verfahren.

Die Anlagen werden alle ähnlich funktionieren: 2 Bus-Drähte, die sowohl 
Betriebsspannung als auch Befehle übermitteln.
Und das Audio-Signal drauf, das immer in dem Frequenzbereich hochohmig 
terminiert sein muss. Manchmal gibt es noch Video auf den Drähten, 
höhere Frequenz als beim Audio.

Für die Befehle Bus -> Client gibt's ja nur die Möglichkeit das über 
einen "Hub" auf der Betriebsspannung zu machen und der kann nur davon 
nach unten gehen.
Es braucht dann noch eine Init-Sequenz (Absenken von VCC auf X, dann 
Bits auf Y Volt).
Und sendeseitig Client -> Bus geht es auch nur so, dass der Bus von 
niederohmig auf hochohmig schaltet. Also muss der Client dem Bus 
mitteilen: ich möchte jetzt senden. Also mal an der Leitung ziehen = 
hoher Strom.
Dann schaltet der Bus um auf hochohmig und der Client kann als 
Spannungsteiler Bits wackeln.

Wenn man das zugrundelegt, dann unterscheiden sich eigentlich nur noch 
konkrete Spannungen und Bitlängen, Anzahl Bits.
Und selbst bei den Spannungen gibt es nicht viel Spielraum - "lange" 
Busse brauchen eine hohe Spannung, da findet man eigentlich immer 20-30 
Volt. Und wenn man zwei Bit Levels dazwischen haben will, dann gibt es 
da auch nicht viel, muss ja unteres Drittel und oberes Drittel sein.
Dann bleiben noch Bitlängen und Anzahl Bits - das kann man beim Lernen 
herausfinden. Für die Bitlänge gibt es auch nur einen vernünftigen 
Bereich, von ein paar 100 "Baud" bis wenige 1.000.

Vermutlich ist genau das Konzept das Limit von nello - Anlagen, die es 
so machen sind abgedeckt.

Mich hätte jetzt mal interessiert, was sich bei denen zwischen uC und 
dem Bus befindet.
Bei mir ist das ja ein Gyrator zum Entkoppeln vom Audio-Signal und 
Transistoren zum Bits wackeln. Das wäre spannend, wie die das machen.

: Bearbeitet durch User
von banklooker (Gast)


Angehängte Dateien:

Lesenswert?

Danke dir Conny - so sieht beim nello die Initialisierung aus - nicht so 
rund wie beim BTS selbst, aber funktioniert. Vielleicht hilft das ja 
schon weiter.
Beim Bestimmen der Teile bin ich leider nicht so erfahren - kann ich mir 
aber mal als nächstes anschauen.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Ich habe keine Ahnung was genau da passiert, aber ich habe einfach mal 
1k (blau) und 47 Ohm (lila) Last in verschiedenen Kombinationen 
geschaltet.
Besonders interessant - schaltet man im Abstand von 1 ms die 1k bei 
dauerhaft aktivierten 47 Ohm Last, senkt das Netzteil die Spannung. Das 
konnte ich allerdings nur bei dieser Frequenz feststellen (siehe 1. 
Bild).

Schaltet man nur die 47 Ohm Last in der selben Frequenz, tritt ein 
ähnliches Verhalten auf (siehe 2. Bild).

Bei einer anderen Frequenz verschwindet das Bild.

Habt ihr eine Idee, was das bedeutet?

Lg

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Ich habe keine Ahnung was genau da passiert, aber ich habe einfach mal
> 1k (blau) und 47 Ohm (lila) Last in verschiedenen Kombinationen
> geschaltet.
> Besonders interessant - schaltet man im Abstand von 1 ms die 1k bei
> dauerhaft aktivierten 47 Ohm Last, senkt das Netzteil die Spannung. Das
> konnte ich allerdings nur bei dieser Frequenz feststellen (siehe 1.
> Bild).
>
> Schaltet man nur die 47 Ohm Last in der selben Frequenz, tritt ein
> ähnliches Verhalten auf (siehe 2. Bild).
>
> Bei einer anderen Frequenz verschwindet das Bild.

Hi Oscar,

das ist genau, wie der Bus funktioniert:
es gibt ein Ereignis, das den Bus Controller dazu veranlasst in den 
Datenübertragungsmodus zu schalten.
Das Ereignis ist ein bestimmter Strom oder Stromverlauf - genau das hast 
Du mit den Widerständen gemacht.
Man muss also zum initiieren einer Übertragung mit einem bestimmten 
Widerstand "an der Leitung ziehen" und dann im exakten Timing die Bits 
übertragen.
Wenn man nicht im Timing ist, dann zieht der Bus die Spannung gleich 
wieder hoch, das sieht man bei Dir auch.

Soviel ich mich erinnere muss man eine Millisekunde oder kürzer, 
vielleicht auch nur 0,1s so an der Leitung ziehen und dann die Bits 
übertragen.
Du könntest ja mal versuchen 1ms mit beiden Widerständen und dann im 2ms 
Takt nur mit dem 50 Ohm zu wackeln, 2ms ist die Bitlänge.
Dann sollte nach 32 Bit der Bus wieder hochziehen.
Wenn Du das geschafft hast, dann hast die Sequenz zur Übertragung 
gefunden, dann musst Dir nur noch Befehle vom Bus aufzeichnen, die 
kannst dann wieder abspielen.

von Oskar N. (oskarn97)


Lesenswert?

Danke dir für die Tipps - werde ich mal weiter versuchen!
Bin in dem Thema noch neu aber scheine ja auf dem richtigen Weg zu sein.
Ein Datenwort erkennen klappt bereits via Spannungsteiler und ADC.
Melde mich sobald ich weiter komme.

von Conny G. (conny_g)


Lesenswert?

Oben ist Code für das Senden, der sieht schon ganz gut aus:
Beitrag "Re: Siedle In-Home-Bus Protokoll"

von Oskar N. (oskarn97)


Lesenswert?

Super danke, ich probiere mal weiter.
Kannst du mal die Schaltung des Gyrators mit verwendeten Bauteilen 
posten? Dann kann ich mir die bereits besorgen :)
Danke dir!

von Oskar N. (oskarn97)


Lesenswert?

Klappt leider nicht mit dem Timing, der Bus senkt die Spannung einfach 
nicht oder zum falschen Zeitpunkt ab... ähnlich wie in den Bildern oben.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Klappt leider nicht mit dem Timing, der Bus senkt die Spannung einfach
> nicht oder zum falschen Zeitpunkt ab... ähnlich wie in den Bildern oben.

Hast Du schon einen Kondensator dran? Oder läuft noch von separatem 
Netzteil?
Der unterläuft nämlich den Stromimpuls indem er puffert.
Das ist der zweite Zweck des Gyrators, einmal ist er hochohmig für 
Audio/Video auf dem Bus, zum anderen blockt er die Wirkung des 
Kondensators auch dafür.
Und da vermute ich lag mein letztes Problem, dass der Gyrator hier noch 
nicht ausreichend blockte, d.h. seine „virtuelle“ Induktivität muss noch 
höher sein.
Kann mich erinnern, dass es bei mir separat versorgt funktioniert hatte 
und dann nicht mehr als ich es auf die Versorgung vom Bus umstellte.

von Oskar N. (oskarn97)


Lesenswert?

Ich habe durchgehend eine separate Stromversorgung um das Problem zu 
verhindern :)
Leider ohne Erfolg...

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Ich habe durchgehend eine separate Stromversorgung um das Problem zu
> verhindern :)
> Leider ohne Erfolg...

Dann ist es erstmal noch eine Timing-Geschichte, mit welchem Strom man 
wielange ziehen muss.
Vielleicht mal systematisch eine Tabelle durch 100us Schritte in der 
Zeit und eine Staffel von Widerständen/Strömen, von 100mA bis 1A.
Immer kurzer Impuls und dann ein paar ms warten.
Und dann ggf 2-stufig, 1A zuerst, 20mA danach. Und so weiter.

von Oskar N. (oskarn97)


Lesenswert?

Ich habe noch nicht ganz verstanden, ob die Übertragung nun mit den 50 
Ohm oder mit den 1kOhm initialisiert wird. Gibt im Laufe des Threads ja 
beide Varianten - mit welcher hattest du damals das Telefon zum Klingeln 
gebracht und wieso konntest du das danach nicht mehr reproduzieren?

Lg

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Ich habe noch nicht ganz verstanden, ob die Übertragung nun mit den 50
> Ohm oder mit den 1kOhm initialisiert wird. Gibt im Laufe des Threads ja
> beide Varianten - mit welcher hattest du damals das Telefon zum Klingeln
> gebracht und wieso konntest du das danach nicht mehr reproduzieren?

Das weiß ich nicht mehr so genau :-)
Ich habe das vor zwei Jahren mit dem Oszi gemessen und ich glaube ich 
habe es nicht gespeichert oder dokumentiert.

Im Prinzip habe ich auch einfach den Strom über einen Shunt gemessen - 
10 Ohm oder so? Und mir dann die Ströme und Widerstände rausgerechnet.
Und da waren eben 3 Levels, unbelastet, Bit High, Bit Low.
Rein von der Logik her muss man dem Bus anfangs signalisieren, dass man 
senden will. Der schaltet den Modus um und dann wackelt man die Bits.
Und dass ich noch da bin muss er wissen, also gibt es einen Strom als 
Basislevel und einen zweiten für High oder Low, wie auch immer die 
Anlage das sieht.

Da die Spannung so klar sichtbar ist müsste es eigentlich so sein, dass 
die Anlage auf Constant Current schaltet und damit mit der Variation des 
Widerstandes sich verschiedene Spannungen auf dem Bus ergeben.
Wenn nun nach dem initialen Wackeln am Bus als Signal die Spannung 
runtergeht (Umschaltung von CV nach CC) und dann für die Bits hoch, dann 
ist der Basislevel ein niedriger Widerstand beim Client (hohe Spannung 
an der Quelle, niedriger Abfall am Sender / Client) und das Bit ein 
hoher Widerstand am Client (niedrige Spannung an der Quelle, hohe am 
Client).

Also wäre der Basislevel die 50 Ohm (kleiner Abfall bei mir) und das Bit 
die  2000 Ohm.

Jetzt kann man mal weiterdenken, was der Buscontroller braucht um sicher 
zu wissen, dass jetzt was passieren soll.
Aus dem Bauch würde ich sagen, er braucht einen Strom-Surge, der muss 
aber nicht lange sein, nur eindeutig.
Wenn der 30V auf den Bus gibt, dann sieht er bei 2000 Ohm 15mA, das ist 
nicht besonders viel. Könnte mir vorstellen, dass bei vielen Clients if 
soviel an zufälliger Schwankung vorkommt.
Bei 50 Ohm sind es 600mA, das ist absolut eindeutig. Und für 1ms 
trotzdem keine hohe Belastung.
Ich kann mich vage erinnern, dass das Init 1ms oder noch weniger waren.

Das würde bedeuten: für 0,1ms oder 1ms mit 50 Ohm oder 2000+50 und dann 
zwischen 50 und 2000 wackeln.
Deshalb ist es m.E. einfacher die 2000 immer eingeschaltet zu lassen, 
weil man dann nur die 50 aus und einschalten muss.

Bin mir aber noch nie sicher gewesen, ob es wirklich 2 Widerstände 
braucht. Habe das mal von der Tatsache abgeleitet, dass 3 
Spannungslevels vorkommen.
Es könnte aber auch sein, dass es nur 50 Ohm sind (der 3V Pegel am 
Client) und der hohe Level von 17V schon vom Bus kommt, durch die 
Umschaltung.

Wenn man jetzt selbst so einen Bus konstruieren würde, dann wäre jetzt 
die Frage, wie ich die Übertragung absichere, brauche ich dazu 2 Levels 
beim Client? Oder kann ich mich einfach aufs Bit-Timing verlassen?
Zwei Levels wäre eine Art „Carrier“ plus Bits separat (FSK-Funk).
Ohne wäre es wie On-Off ASK beim Funk.
Aber eigentlich reicht auf einem Kabel ohne Kollision bzw Rauschen 
eigentlich „On-Off“ aus, oder?
Ich weiß ja spätestens, wenn das Bit-Timing schief geht, dass das nicht 
passt und das darf ruhig auch spätestens nach 32 Bit (also nach der 
ganzen Message) so sein. Ich muss es nicht unbedingt früher wissen.

Alternative Theorie: die Init-Sequenz braucht 2 Widerstände.
Fällt mir jetzt aber nix ein, warum das Vorteile brächte. Kann man auch 
mit dem Timing machen.

von ähm ja (Gast)


Lesenswert?

die spannungspegel sind eher 2t rangig ....
bei einem Bus der unbekannt lang/verzweigt ist und eine zahl X 
Busteilnehmer besitzen kann ... sind die Pegel nicht egal , richtig
aber vielmehr wird hier das signal in der zeit codiert..

deswegen funktioniert auch der nello...

die meisten bussysteme arbeiten fast so

was  macht denn der nello ...

er sampled den bus ( laut anleitung ) und gibt das am ausgang quasi 
wieder raus.

dabei wird er sicherlich den SPannungspegel nicht 100% treffen können...
aber er wird in einem bereich runtergezogen wo die meisten BUS anlagen 
das als gültiges Signal erkennen.

von Conny G. (conny_g)


Lesenswert?

Mal die Constant Current Überlegung weiter durchgezogen.
3 Volt und 50 Ohm ergeben 60mA.
17V und 1000 Ohm ergeben 17mA.
Das macht jetzt irgendwie nicht so viel Sinn. Ich würde dann erwarten, 
dass der Strom derselbe ist. (Deshalb habe ich hier schon mal 1000 statt 
2000 genommen).
Auf der anderen Seite könnte es auch sein, dass die Widerstände nicht 
stimmen.

Das wäre übrigens ein Grund für den 2. Widerstand, die 1000-2000 Ohm, 
dass der benötigt wird damit der Strom weiterfliesst.

Mal umgekehrt gedacht. Wenn ich zwei R suche, die denselben Strom leiten 
in dieser Größenordnung, dann komme ich auf 150 Ohm (20mA bei 3V) und 
820 Ohm (21mA bei 17V).
Das würde bedeuten die Stromschleife macht konstante 20mA und der 
Spannungsteiler aus Quelle und Client macht bei 3 oder 17V am 
Client-Widerstand. Erscheint mir sehr logisch :-).
Und strombasierte Busse arbeiten mit 20mA.

Theoretisch müsste ich in meinen Oszi Screenshots dann finden, dass die 
untere Spannung meines Signals niedriger ist als die vom Bus. Mal 
schauen, ob ich die Screenshots noch finde. Oder hab ich die mal hier 
gepostet?

Da fällt mir noch was ein. Am Bus hängen weitere Geräte, die alle sicher 
ein paar 10mA brauchen. Dann müssten es mehr als 20mA sein, sonst geht 
das unter.
Dann müssten es sehr viel mehr sein, 100mA oder 250mA?

von Conny G. (conny_g)


Lesenswert?

Das Spielchen nochmal mit 60mA gerechnet ergibt 50 Ohm (60mA bei 3V) und 
250 Ohm (68mA bei 17V).
Bei 100mA haben wir 30 Ohm (100mA / 3V) und 180 Ohm (94mA / 17V).
Bei 250mA 12 und 68 Ohm.
Das macht eigentlich alles noch einigermaßen Sinn.
Es wäre wert mal die Kombi 30/180 Ohm zu testen.

von Conny G. (conny_g)


Lesenswert?

Conny G. schrieb:

Habe gerade nochmal meinen Eingangspost gelesen:

> Auf dem Bus liegen 20V an (in 15m Entfernung vom Netzteil, das macht
> 27V).
> Durch einen ersten Impuls auf die Leitung wird die Bussteuerung
> vorgewarnt, dass gleich Daten kommen werden, dafür wird die Leitung für
> 11ms auf 1k Ohm Last gelegt.
> Nach diesen 11ms werden die Daten mit einer Last von 50 Ohm übertragen,
> etwa 1ms pro Bit insgesamt 32 Bit.
> Mit dem Beginn der 50 Ohm Last schaltet das Netzteil / der Controller
> automatisch auf Datentransfer und zieht die Spannung auf 3V (?).
> Die Anlage ist recht genau, was das Timing angeht, hatte anfangs eine
> Abweichung von ca. 5%, das hat nicht geklappt, nach Fine-Justage hat es
> erfolgreich geklingelt.
> Wenn das Timing nicht passt zieht der Controller auch recht schnell die
> Spannung wieder hoch, sie hält also nur solange unten wie man sendet.
> Und bei der Zeit für 32 Bit geht die Spannung auch direkt wieder hoch.


Also 11ms an 1k und dann auf 50Ohm und die Bits mit 1ms wackeln.
Also könnte man mal probieren:
11ms 1k
1ms 50 Ohm
1ms 1k
1ms 50 Ohm

Alternativ das mit den Widerständen für 100mA oben.

von Conny G. (conny_g)


Lesenswert?

Bekomme da gerade richtig Lust auch weiter zu testen. Leider habe ich 
damals meine Testschaltung ziemlich verhunzt, hatte schon eine Platine 
dafür gemacht und 3x was umgebaut und drangebaut. Das muss ich erstmal 
aufräumen bevor ich die wieder verwenden kann.
Oder ich baue es nochmal auf dem Breadboard. Beides braucht aber erstmal 
2-3h bis wieder was geht.
So muss ich mich gerade noch auf „laut denken“ beschränken :-)

von ähm ja (Gast)


Lesenswert?

https://www.mikrocontroller.net/attachment/337448/DSC_0319.JPG

hier ist die anfangs erwähnte startbedingung nicht zu sehen.
deswegen

Conny G. schrieb:
> Mal die Constant Current Überlegung weiter durchgezogen.
> 3 Volt und 50 Ohm ergeben 60mA.
> 17V und 1000 Ohm ergeben 17mA.
> Das macht jetzt irgendwie nicht so viel Sinn. Ich würde dann erwarten,
> dass der Strom derselbe ist. (Deshalb habe ich hier schon mal 1000 statt
> 2000 genommen).
> Auf der anderen Seite könnte es auch sein, dass die Widerstände nicht
> stimmen.

deswegen der text von mir
wenn der strom bei die stimmt .. und man hat einen großen 
schleifenwiderstand( zB 15-20Ohm) ... stimmt der strom auf der anderen 
seite nicht mehr.
Das muss man eben umgehen.

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Suche gerade nach alten Screenshots, hier einer wo mit deinem Debug-Pin 
die "Sample-Zeitpunkte" eingeblendet sind.
Daraus sieht man, dass die Gesamtübertragung 64ms für 32 Bit sind, also 
2ms pro Bit.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Das habe ich probiert, (blau 1k, lila 50) - leider ohne Reaktion am Bus.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

ähm ja schrieb:
> https://www.mikrocontroller.net/attachment/337448/DSC_0319.JPG
>
> hier ist die anfangs erwähnte startbedingung nicht zu sehen.
> deswegen
>
> Conny G. schrieb:
>> Mal die Constant Current Überlegung weiter durchgezogen.
>> 3 Volt und 50 Ohm ergeben 60mA.
>> 17V und 1000 Ohm ergeben 17mA.
>> Das macht jetzt irgendwie nicht so viel Sinn. Ich würde dann erwarten,
>> dass der Strom derselbe ist. (Deshalb habe ich hier schon mal 1000 statt
>> 2000 genommen).
>> Auf der anderen Seite könnte es auch sein, dass die Widerstände nicht
>> stimmen.
>
> deswegen der text von mir
> wenn der strom bei die stimmt .. und man hat einen großen
> schleifenwiderstand( zB 15-20Ohm) ... stimmt der strom auf der anderen
> seite nicht mehr.
> Das muss man eben umgehen.

Ich bin nicht ganz sicher, ob ich verstehe was Du meinst.

Mir ist beim Nachdenken klar geworden, dass der Bus auf 2 Arten 
funktionieren könnte:

Das Netzteil liefert einfach immer 20V (real bei mir, 27 Volt nominell) 
und misst den Strom. Dann bleibt aber die Spannung bei 20V, auch während 
der Bit-Übertragung. Das wäre ein "Constant Voltage" Modus, die Spannung 
bleibt gleich.

Oder das Netzteil schaltet um auf konstanten Strom, das gibt's ja, z.b. 
für die Versorgung von LEDs. Da spielt die Spannung nur sekundäre Rolle, 
es wird nur der Strom geregelt.
Dann folgt die Spannung was auch immer mit dem Strom passiert.

Was mich in der Überlegung Richtung CC (=Constant Current) treibt ist 
diese Tatsache, dass man ein richtiges "Umschalten" des Bus sieht.
Solange der Bus nicht "umschaltet" sieht man das Bits wackeln so gut wie 
nicht und das liegt daran, dass das Netzteil natürlich einfach mehr 
Strom nachliefert, wenn die Last steigt. Das ist genau das Verhalten 
eines CV (Cosntant Voltage) Netzteils.
Aber für die Übertragung ist die Spannung auf dem Bus so klar, dass ich 
zu der Meinung gekommen bin, dass das nur bei CC möglich ist.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Das habe ich probiert, (blau 1k, lila 50) - leider ohne Reaktion am Bus.

Drehe es mal um und verwende beide gleichzeitig (heisst 1k immer an)
10ms 1k + 50k
2ms 1k
2ms 1k + 50k
usw.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Meinst du so?
Das ist
11ms 1k+50
1ms 1k
1ms 1k+50
1ms 1k

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Hier noch mal das gleiche mit 2ms.

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Ah, das hier müsste eine Stromm-Messung mit Shunt sein.

Weiss leider nicht mehr was der Messwiderstand war.
Das Peak ist 400mV, wenn es 1 Ohm waren, dann sind das 400mA.
Der Strom während der Übertragung wäre dann 120-180mA.

Der laufende Stromverbrauch wäre dann 20mA. Ist das möglich, dass alle 
mind. 4 Geräte am Bus insgesamt 20mA benötigen, im Standby? Ist denkbar.

Und man sieht, dass vorne das Peak Bruchteile einer Millisekunde sind.

von ähm ja (Gast)


Lesenswert?

Conny G. schrieb:
> er laufende Stromverbrauch wäre dann 20mA. Ist das möglich, dass alle
> mind. 4 Geräte am Bus insgesamt 20mA benötigen, im Standby? Ist denkbar.

deutlich weniger

von Conny G. (conny_g)


Lesenswert?

ähm ja schrieb:
> Conny G. schrieb:
>> er laufende Stromverbrauch wäre dann 20mA. Ist das möglich, dass alle
>> mind. 4 Geräte am Bus insgesamt 20mA benötigen, im Standby? Ist denkbar.
>
> deutlich weniger

Außerdem hab ich falsch gedacht: mein Shunt hing ja an einem Client und 
die sind alle parallel am Bus.
Also sehe ich nur den einen Strom von einem Gerät.
Demnach braucht ein Client 20mA.

von A. H. (dernetteeddie1978)


Lesenswert?

Conny G. schrieb:
> ähm ja schrieb:
>> https://www.mikrocontroller.net/attachment/337448/DSC_0319.JPG

Hey, das ist ja mein Bild, von meinem antiquarischen Röhren-Oskar. Ich 
fühl mich geehrt :)

Bei mir war damals auch das Problem dass ich den Bus nicht abgesenkt 
bekommen hab.

Ich habe auch den Öffnen Befehl der original Türstation mitgeschnitten.
Bei mir gabs die von Conny beschriebene Init Sequenz nicht.

Das Wackeln am Bus mit zu und wegschalten eines Widerstands hab ich auch 
in diversesten Variationen versucht, leider ohne Erfolg.

Evtl. gibts ja auch versch. Varianten von Geräten (z.B. durch versch. 
Firmwarestände)?

Lg

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Das ist ungünstig das alles nur aus der Erinnerung wiederzugeben.
Sehe gerade in dem oben eingefügten Oszibild, dass die Spannungen der 
Bits 2 und 7v sind. Die 17v waren meine Schwelle die Übertragung an sich 
zu detektieren.
Ich glaube ich muss mir jetzt einfach wieder die Schaltung auf dem 
Breadboard aufbauen und testen, sonst wird das nix.

von Conny G. (conny_g)


Lesenswert?

Conny G. schrieb:
> Das ist ungünstig das alles nur aus der Erinnerung wiederzugeben.
> Sehe gerade in dem oben eingefügten Oszibild, dass die Spannungen der
> Bits 2 und 7v sind. Die 17v waren meine Schwelle die Übertragung an sich
> zu detektieren.
> Ich glaube ich muss mir jetzt einfach wieder die Schaltung auf dem
> Breadboard aufbauen und testen, sonst wird das nix.

Grad mal nachgerechnet.
Wenn die Ströme während der Übertragung 170/120mA sind und die 
Spannungen 2/7V ergeben sich Widerstände von 12 und 58 Ohm.
Und das ist sehr nah an der Rechnung oben von 250mA Konstantstrom für 
den Bus.

Damit wären 50/1000 Ohm zu schwach und an oder über der Toleranzgrenze.
Vielleicht war das auch der Grund, warum es bei mir dann nicht mehr 
ging, weil ich vorher einfach nur Glück hatte?

: Bearbeitet durch User
von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Jetzt habt ihr mich angestiftet, jetzt will ich auch weitermachen :-)

Hier mal die "Frankenstein-Platine" mit der ich früher getestet hatte. 
Ein paar Mal umgebaut und ergänzt.
War jetzt weniger Aufwand mal einen "Sender" auf Breadboard aufzubauen 
als diese Platine zu fixen :-)

von Oskar N. (oskarn97)


Lesenswert?

Sehr cool Conny! Bleib' dran, wir packen das schon :)

von Oskar N. (oskarn97)


Lesenswert?

Ich habe mir für morgen mal eine Testreihe mit unterschiedlichen 
Belastungszeiten vorgenommen und dann einen Trigger auf das Bussignal zu 
setzen.

von Conny G. (conny_g)



Lesenswert?

Hier ein paar Strom-Messungen über einen 10 Ohm Shunt.

Strom_Start.jpg:
der Anfang des Signals im 50uS Raster.
Shunt-Spannung steigt in 100uS auf 4V, d.h. der Strom auf 400mA.

Strom_500mV_10ms.jpg:
das ganze Signal im Überblick aus Sicht Strom.

Strom_100mV_10ms.jpg:
vertikal gezoomt, auf 100mV Raster.

Strom_100mV_1ms.jpg:
der Start des Signals in 1ms horizontal.

Strom_Ausschnitt:
Zoom aus der Mitte des Signal.

von A. H. (dernetteeddie1978)


Lesenswert?

Die benötigten Widerstandswerte hätten wir doch dann schonmal ablesbar 
auf der Platine, oder?

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Hier ein paar Messungen aus Sicht der Spannung auf dem Bus:

Überblick mit 20ms Raster, damit man auch sehen kann, ob vorher und 
nachher was passiert.
Nochmal im 10ms Raster.
Start des Signals, 100us.
Anfang des Signals auf 2ms herausgezoomt.


P.S. Der Bequemlichkeit halber einfach als Fotos, hab grad keinen 
USB-Stick zur Hand und nur am Schreibtisch ist das Rigol am Netzwerk, 
damit ich das Command Line Tool verwenden könnte....

von Conny G. (conny_g)


Lesenswert?

A. H. schrieb:
> Die benötigten Widerstandswerte hätten wir doch dann schonmal ablesbar
> auf der Platine, oder?

Mja, möglicherweise. Aber so hat es ja dann nicht (mehr) funktioniert.

von Conny G. (conny_g)


Lesenswert?

Was sehen wir jetzt aus diesen Messungen?

Am Anfang schiesst der Strom in 100us hoch auf 400mA.
Wenn man sich das Strom-Bild genau ansieht, dann sieht man am Anfang 
einen kleinen Strom-Spike von 200mA für "ein paar uS", dann bremst der 
Bus erstmal, lässt den Strom aber dann hochlaufen auf 400mA, zieht ihn 
danach wieder runter auf 25mA.
Bei der Spannung sieht man hier zum Start einen Drop von 20V auf 2,4V, 
dann einen Anstieg auf 9V.
Der Drop scheint wohl synchron zu dem ersten Strom-Spike zu sein, der 
ein paar us lang ist.
Auf dem Peak von Strom/Spannung des "Dreiecks" danach mal gerechnet: 
9V/400mA ergibt einen Widerstand von 22 Ohm.

Danach geht es sofort los mit dem Bits wackeln. Also nix mit 11ms 
Startimpuls vorher, eher 0,1ms.
Die Bits haben eine Breite von 2ms.

Sagen wir mal das erste Bit mit niedriger Spannung sei "Low".
Dort haben wir einen Spannung von 2.4V und einen Strom von 30mA, ergibt 
einen Widerstand von 80 Ohm.

Das nächste Bit sei "High".
Spannung 7.5V, Strom 25mA, der Widerstand ist dann 300 Ohm.

Was schliessen wir daraus?

0,1ms Spike am Anfang, mit 22 Ohm/400mA - das Startsignal?
Bits wackeln mit 25/30mA bzw. 2.5V/7.5V.

Gerade das die Ströme der Bits doch recht eng zusammen sind scheint mir 
zu bestätigen, dass der Bus während des Senden eines Clients im Constant 
Current Mode arbeitet, also dass der Strom bei ca. 25/30mA eingestellt 
wird und die Spannungen gemessen werden.
Dafür spricht m.E. auch, dass man am Anfang jedes Bits einen hohen Spike 
sieht, der wahrscheinlich von der Regelkurve des Stromreglers im 
Busmaster kommt.
Wäre mal interessant das nochmal zu zoomen, was da genau passiert am 
Anfang eines Bit.

Unklar ist mir noch, was der 100us Anstieg von Strom und Spannung am 
Anfang des Signals genau zu bedeuten haben.
Oder ist das auch die Regelkurve des Stromreglers?

: Bearbeitet durch User
von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Der Anfang eines Bit herausgezoomt:
Wechsel von niedrigem Strom auf hohen Strom, also von höherem Widerstand 
auf niedrigeren, also auch von der Spannung her gesehen von High auf 
Low.

Für mich sieht das aus wie eine Regelkurve eines Stromreglers :-)
Er reagiert in 1us.

Da könnte man ja mal nachrechnen.
Vorher hatten wir High, also 7.5V / 25mA, bei einem Widerstand von 300 
Ohm.

Der Spike geht nun auf 1V, was 100mA entspricht.
Der Strom hat sich also zu vorher vervierfacht, der Widerstand 
geviertelt.
Das wäre dann 300 Ohm / 4 = 75 Ohm.

Das entspricht (fast) den 80 Ohm, die wir für "Low" ausgerechnet hatten.

Also ist es so, der Bus regelt den Strom und gibt uns (und sich) eine 
Spannung.

Unklar, warum er dann auf 30mA statt auf 25mA regelt, aber vielleicht 
kommen da auch noch andere Effekte mit rein, die der Controller nicht 
sieht in seinem Strom, den er rausgibt. Die anderen Geräte?

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Ansonsten habe ich mir gerade den ältesten Testcode angesehen, den ich 
fand.
Und da gebe ich die 2k Widerstand auf den Bus für 11ms und dann 100 Ohm, 
mit denen ich die Bits wackle.

Aus obigen Messungen und Erkenntnissen würde ich folgern, dass die 2k 
den Bus gar nicht interessieren, das sind ja nur 10mA.
Also sah er nur die 2000+100k parallel (nach den 11ms) bzw. später habe 
ich 1000+50 verwendet.

Die Parallelschaltung ausgerechnet ergibt 95 Ohm (2000+100) bzw. 47 Ohm 
(1000+50).
Die 1000 und 50 sind näher an den oben ausgerechneten 300 und 80.

Interessanterweise ergibt eine Parallelschaltung von 300 und 100 die 75 
Ohm, die wir beim Overshoot am Bitanfang hatten.

Was ich also jetzt versuchen würde ist zum Start die 300+100 
einzuschalten und dann die 300 zu lassen und mit den 100 zu wackeln.

Es gab bei diesen 100uS Start-Strom-Surge aber noch diesen hohen 
Strom-Peak von 400mA, den ich mir noch nicht erklären kann.

Mal rechnen.
20V mit 75 Ohm ("alles ein"): ergibt 270 mA.
400mA bei 20V ergibt 50 Ohm.
Gegen die gemessenen 9V Spannung zu diesem Zeitpunkt waren es ja sogar 
22 Ohm.

Ist da noch ein dritter Widerstand im Spiel?

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Noch ein erster Versuch.

Der Buscontroller scheint noch zu beginnen auf die Stromsteuerung 
umzustellen, aber er bricht es nach ein paar 10us ab.
Bis 4,2V geht die Spannung runter, aber nicht auf die 2,4V, die es sein 
sollten.

Da müsste man sich jetzt den Stromverlauf ansehen und vergleichen.

Passiert das bei Euch, dass der Controller zumindest anfängt abzusenken?

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Conny G. schrieb:
> Passiert das bei Euch, dass der Controller zumindest anfängt abzusenken?

Sieht schon so aus.

von Daniel P. (zwirbeljupp)


Angehängte Dateien:

Lesenswert?

Moin zusammen!
Phantastisch, dass es hier mal wieder weitergeht!

Eure Messungen decken sich ja bestens mit dem, was ich letztes Jahr 
ermitteln konnte.

Seid ihr sicher, dass es sich beim "initialen Absenken" der Busspannung 
wirklich um eine aktive Handlung des Buscontrollers handelt? Ich meine, 
da sind ja auch ein paar Meter Kabel dazwischen. Wenn der Client die 
hohe Last anlegt, wird es ja einen Moment dauern, bis der Controller den 
Spannungsabfall tatsächlich sieht (Leitungsinduktivität) und dann wieder 
versucht, die Spannung nachzuregeln.

Ich vermute nach wie vor, dass die Lösung in dieser merkwürdigen Rampe 
liegt. Conny hatte die ja sehr ähnlich aufgezeichnet (Strom_start.jpg). 
Allerdings ist die Rampe bei mir fast 50µs länger (150µs Gesamtdauer). 
Vielleicht beeinflusst von der Leitungslänge? Man sieht, dass der Strom 
bis zu seinem Spitzenwert von ~700 mA ansteigt und danach steil abfällt. 
Das ist wohl der Moment, in dem der Buscontroller die Absenkung 
einleitet.
Kann sich jemand erklären, wodurch sich diese Rampe ergibt? Ist diese 
rein durch die Leitungsinduktivitäten etc. zu erklären oder wird diese 
Rampe vielleicht aktiv vom Clienten erzeugt?

Gruß
Daniel

von Conny G. (conny_g)


Lesenswert?

Daniel P. schrieb:
> Kann sich jemand erklären, wodurch sich diese Rampe ergibt? Ist diese
> rein durch die Leitungsinduktivitäten etc. zu erklären oder wird diese
> Rampe vielleicht aktiv vom Clienten erzeugt?

Mal ganz radikal gedacht: könnte das sogar ein Kurzschluss sein?
Und die Rampe die Durchschaltkurve eines Transistors oder MOSFET?
Mit sehr viel Phantasie könnte man in der von Dir aufgezeichneten Rampe 
ein Miller-Plateau sehen :-)
Vielleicht ist da wirklich noch ein dritter Widerstand (10 Ohm) oder 
eben gar keiner, nur FET?
Allerdings schaltet ein MOSFET richtig angesteuert in <1us, warum sollte 
das 100-150us dauern?

Oder Leitungskapazität / Induktivität. Wieviel davon haben 30m Kabel, 
dann können wir nachrechnen.

Ok, mal die nächstbesten Onlinerechner angeworfen für ein Kabel von 30m.

https://www.allaboutcircuits.com/tools/parallel-wire-inductance-calculator/
25uH Induktivität

https://www.cirris.com/learning-center/calculators/174-cable-capacitance-calculator
5nF Kapazität

http://chemandy.com/calculators/round-wire-resistance-calculator.htm
Widerstand ca 50Ohm

Das wäre eine Filter-Frequenz von 450kHz.
Eine Zeitkonstante für LR von 0,5us.
Eine Zeitkonstante für LC von 0,25us.

M.e. kann das keine >100us erklären.

Die Zeitkonstante würde allerdings höher, wenn man zB den Widerstand 
erhöht, müsste aber Faktor 100 sein, also 5kOhm.

von Conny G. (conny_g)


Lesenswert?

Bei meinem Versuch von heute Nacht läuft doch nach einem ersten Peak 
nach unten die Spannung auch wieder hoch.
Allerdings läuft sie ganz hoch bis 20V.
Mit etwas Phantasie könnte man in dem Anstieg dieselbe Kurve sehen, die 
auch die kleine Rampe macht.

Könnte das eine Art Impedanzmessung der Leitung sein?
Wenn sie stimmt, wird nach 100us auf Konstantstrom umgestellt.
Wenn sie nicht stimmt läuft der Bus einfach weiter auf Konstantspannung.

Dann wäre die Frage, was wird gemessen, eine RC Zeitkonstante?
Wie würden wir messen, was uns der Gegenüber für einen Widerstand gibt, 
wenn wir das wissen wollten?
Können wir aus der Rampe ablesen, was der Bus will?

Meine Kurve geht ja nicht weit genug nach unten. Dann wäre der Strom, 
den ich ziehe nicht hoch genug, der Widerstand muss runter.

Ich glaube das ist es.
Der Bus reagiert absichtlich träge auf eine sprunghafte Änderung des 
Stroms.
Wenn nach 100us die Spannung unter einem bestimmten Wert liegt (der 
Strom über einem Wert liegt) wird die Strombegrenzung / der 
Konstantstrommodus eingeschaltet.
Das wäre gleichzeitig ein Kurzschlussschutz für den Bus.

: Bearbeitet durch User
von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

So sieht es bei mir mit 300 (blau) und 100 (lila) Ohm aus.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> So sieht es bei mir mit 300 (blau) und 100 (lila) Ohm aus.

Da zappelt schon mehr auf dem Bus!
Gehe mal mit dem kleinen Widerstand auf 50 Ohm oder sogar 10 Ohm runter.
Meine Rechnung Leitungslänge und Widerstand hat vorhin übrigens gezeigt, 
dass das Kabel schon ein paar 10 Ohm Widerstand hat.

: Bearbeitet durch User
Beitrag #5338288 wurde vom Autor gelöscht.
von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Hier mit 300 + 10 ohm. Sieht besser aus!

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Schau mal bei 150 + 10 ohm!!

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Schau mal bei 150 + 10 ohm!!

Da passiert jetzt was!
Irgendwas möchte der Controller aber noch sehen, mehr Strom geht ja 
nicht mehr.
Noch 0 Ohm für 100us dazu? :-)

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Schau mal bei 150 + 10 ohm!!

Da passiert jetzt was!
Irgendwas möchte der Controller aber noch sehen, mehr Strom geht ja 
nicht mehr.
Noch 0 Ohm für 100us dazu? :-)
Also 0  100  300?

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Das ist 100 + 10 ohm

von Oskar N. (oskarn97)


Lesenswert?

Conny G. schrieb:
> Oskar N. schrieb:
>> Schau mal bei 150 + 10 ohm!!
>
> Da passiert jetzt was!
> Irgendwas möchte der Controller aber noch sehen, mehr Strom geht ja
> nicht mehr.
> Noch 0 Ohm für 100us dazu? :-)
> Also 0  100  300?

Du meinst mit einem dritten Transistor?

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

150 + 0 Ohm

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Conny G. schrieb:
>> Oskar N. schrieb:
>>> Schau mal bei 150 + 10 ohm!!
>>
>> Da passiert jetzt was!
>> Irgendwas möchte der Controller aber noch sehen, mehr Strom geht ja
>> nicht mehr.
>> Noch 0 Ohm für 100us dazu? :-)
>> Also 0  100  300?
>
> Du meinst mit einem dritten Transistor?

Ja, 100us 0 Ohm und dann Bits mit 100/300.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

22 ohm + 10 ohm

von Conny G. (conny_g)


Lesenswert?

Oder möchte der Bus genaue Ströme sehen?
Denn irgendwie versteht er uns noch nicht.
Hieße dann wir müssten 2 Stromsenken dranhängen, 20 und 30mA.
Und Startimpuls „Kurzschluss“?

Das würde Sinn machen, weil das jegliche Unterschiede von verschiedenen 
Installationen ausgleichen würde.
Und würde erklären, warum man in der Strommessung 2 Levels sieht.

Wie groß ist eigentlich Deine Installation?

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Von oben nach unten - Bus, 300 Ohm, 100 Ohm, 0 Ohm.
Es macht einen Unterschied, ob ich nur 0 Ohm schalte oder ob ich 300 und 
100 mitschalte.
Ist vielleicht der Strom, der durch einen Transistor fließen kann, 
limititert? Verwende BC547.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Von oben nach unten - Bus, 300 Ohm, 100 Ohm, 0 Ohm.
> Es macht einen Unterschied, ob ich nur 0 Ohm schalte oder ob ich 300 und
> 100 mitschalte.
> Ist vielleicht der Strom, der durch einen Transistor fließen kann,
> limititert? Verwende BC547.

Oh ja, das könnte sein!
Was gibst Du ihm an Basisstrom?

von Oskar N. (oskarn97)


Lesenswert?

5V mit 4,7 kOhm Vorwiderstand wie in deiner originalen Schaltung.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> 5V mit 4,7 kOhm Vorwiderstand wie in deiner originalen Schaltung.

Das ist 1mA. Der kleinste 547A hat ein hfe von ab 100, dann wären das 
100mA CE Strom.
Aber üblicherweise hat man eher den B oder C und die haben eher 300 oder 
600 Verstärkung.
Aber trotzdem, gib ihm mal 1k oder 2,2k an der Basis.

: Bearbeitet durch User
von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Das sieht doch jetzt mal spannend aus.

von Conny G. (conny_g)


Lesenswert?

Conny G. schrieb:
> Oder möchte der Bus genaue Ströme sehen?
> Denn irgendwie versteht er uns noch nicht.
> Hieße dann wir müssten 2 Stromsenken dranhängen, 20 und 30mA.
> Und Startimpuls „Kurzschluss“?

Je länger ich drüber nachdenke desto mehr Sinn macht mir das.
Und es wäre Schaltungstechnisch sogar recht einfach.
Wäre das Prinzip einer elektronischen Last, hab ich kürzlich gebaut.

Beitrag "Re: Zeigt her eure Kunstwerke (2017)"

Ein MOSFET, der von einem Opamp im Linearbereich gesteuert wird.
„Unter“ dem MOSFET (also zwischen Gnd und Source) ein Mess-Shunt, der 
dem Opamp Feedback gibt, welcher Strom fließt.
Der Opamp bekommt vom Mikrocontroller per PWM und RC-Filter zur 
Glättungs eine Referenzspannung nach der er den Shunt-Strom (genauer die 
Spannung über dem Shunt) justiert.

Und dieser elektronischen Last könnte man über die PWM jeden beliebigen 
Strom vorgeben, den man vom Controller ziehen will - 1A zum Init und 
dann 20/30mA für die Bits.

Und es entspräche viel mehr dem, wie ein strombasierter Bus 
funktioniert. Das mit dem Widerständen kann ja die Umgebungsbedingungen 
nicht berücksichtigen, also wie groß die Installation ist und wieviele 
Geräte dranhängen.

Ich glaube ich probiere das mal.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Das sieht doch jetzt mal spannend aus.

Ja!
Lass mal die 0 Ohm für 100us an.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Conny G. schrieb:
> Oskar N. schrieb:
>> Das sieht doch jetzt mal spannend aus.
>
> Ja!
> Lass mal die 0 Ohm für 100us an.

Das sieht dann so aus.

von Conny G. (conny_g)


Lesenswert?

Noch länger 200us.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

so...

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

hm-..

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> hm-..

Besser wird’s so nicht. Mmh.

von ähm ja (Gast)


Lesenswert?

Miss Mal das Original Türöffner Protokoll

Ruhig mehrfach.
Da dürfte dieser Pegelsprung nicht dabei sein

von Oskar N. (oskarn97)


Lesenswert?

Ja, da geht es direkt runter und bleibt auch unten.

von Conny G. (conny_g)


Lesenswert?

Ich hab ja noch ein Siedle Tel rumliegen, das könnte ich einfach mal ans 
Labornetzteil hängen und schauen, was es ohne und mit Strombegrenzung so 
tut.
Vielleicht ergibt das noch weitere Erkenntnisse.
Habe mir das Board heute mal angesehen, da ist schon eine Menge Zeug 
drauf, erschließt sich nicht wirklich schnell, was da was ist. Für mich 
jedenfalls nicht :-)
Habe einen LM317 drauf gefunden, der könnte natürlich mit der 
Stromsteuerung zu tun haben. Gerade in der Ecke gehts auf der Platine 
aber ziemlich kleinteilig zu.

Genau das würde mich übrigens auf der Nello-Platine interessieren, ob 
man da eine Stromsteuerung findet, also einen Opamp, einen LM317 oder 
ähnliches.
Auf dem oben geposteten Foto kann man leider die meisten 
Bauteilbeschriftungen nicht lesen.

: Bearbeitet durch User
von Oskar N. (oskarn97)


Lesenswert?

Gute Idee - ich glaube, der Tastendruck wird aber erst nach der 
erfolgreichen Anmeldung am Bus freigeschaltet. Kann also sein, dass du 
da nur die Anmeldung messen kannst.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Die haben einen fetten Optokoppler direkt nebem Ta und Tb... 
https://www.vishay.com/docs/81646/vo14642a.pdf

Kann aber gut sein, dass der für die Analogen Stationen ist.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Die haben einen fetten Optokoppler direkt nebem Ta und Tb...
> https://www.vishay.com/docs/81646/vo14642a.pdf
>
> Kann aber gut sein, dass der für die Analogen Stationen ist.

Was ist denn der große SO-16 Käfer in der Mitte? Hat der eine 
Beschriftung?

von Oskar N. (oskarn97)


Lesenswert?

Kann ich nicht erkennen... vielleicht abgeschliffen.

von Conny G. (conny_g)


Lesenswert?

Könnte ein uC sein. Glaube ich aber nicht, auf der Rückseite ist auch 
noch was, was ein uC sein könnte.

von Oskar N. (oskarn97)


Lesenswert?


von Oskar N. (oskarn97)


Lesenswert?


: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Das auf der Rückseite ist ein nRF52832
> https://www.nordicsemi.com/eng/Products/Bluetooth-...

Ah, der ist dann uC und Bluetooth.

Oskar N. schrieb:
> Das ist der SO-16 Käfer: ULN2001
> http://www.st.com/content/ccc/resource/technical/d...

Der sitzt nahe den Anschlüssen, der könnte natürlich ein Bus-Wackler 
sein, wie unsere Transistoren.

Einen Opamp oder Stromregler (wie LM317) haben wir noch nicht gesichtet, 
oder?

von Oskar N. (oskarn97)


Lesenswert?

Bisher nicht - ein zweiter Optokoppler ist an der rechten Kante 
(https://www.vishay.com/docs/83512/tcmt1600.pdf)

von Hundskalb (Gast)


Lesenswert?

Rechts unten sitzt noch ein Gleichrichter, darüber vermute ich noch 
einen weiteren Optokoppler. Würde auch Sinn ergeben, da ein Optokoppler 
für Lauschen und Brabbeln nicht langt.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Hab ihn ausgebaut und bessere Fotos gemacht.
Sind übrigens 3 Layer so weit ich das erkennen kann. Vielleicht auch 4.

: Bearbeitet durch User
von A. H. (dernetteeddie1978)


Lesenswert?

Hi Leute,

ich hab mir ja damals auch ganz schön den Kopf zerbrochen. Auch wenn ich 
ebenfalls erfolglos war teile ich euch mal paar Gedanken mit. Vielleicht 
hilfts ja wem anderes die richtigen Schlüsse zu ziehen, wie in so ner 
Art Brainstorming.

Bei mir ists ja auch so gewesen dass kein Initialisierungsimpuls zum 
Einleiten der Kommunikation zu sehen war.

Ich hab aber mal verschiede Befehle einzelner Teilnehmer (hab zwei 
Stationen in der Anlage) am Bus ausgelesen und verglichen.

Erstmal, alle beginnen mit einer Null, was auch logisch scheint. Damit 
"synct" sichs wohl besser als mit dem Zwischenpegel einer Eins.

Die ersten vier Bit scheinen Teil einer Adresse zu sein, je nach 
Richtung sind die immer gleich.

Beim Signal fürs Klingeln zum Beispiel kommt bei mir immer die 0101.
Beim Signal fürs Türöffnen ists immer 0100 egal welche der beiden 
Stationen den Befehl schickt.

Wenn ein Teilnehmer an den Bus angeschlossen wird, scheint er an der 
Basis angemeldet zu werden, denn man sieht kurz drauf wie 32 Bit über 
die Leitung gehen.

Die beginnen ebenfalls mit 0101, egal welche Station ich anklemme. 
Allerdings unterscheiden die sich im 6. Nibble.

Hier mal die Bit-Folgen:


Klingeln: 0101 1000 1010 0010 0001 0001 0010 0000
Öffnen1:  0100 0110 0001 0010 0001 0010 0010 0000
Öffnen2:  0100 0110 0001 0010 0001 0010 0010 0000
Bus-On1:  0101 0100 0000 1010 0111 0110 0010 0010
Bus-On2:  0101 0100 0000 1010 0111 0010 0010 0010

Evtl. läuft ja auch noch irgend was ganz anderes ab, das wir hier noch 
gar nicht gesehen haben.
Das Öffnen der Tür ist ja immerhin sicherheitsrelevant, vielleicht hat 
man noch irgendwas "verschlüsseltes/ verstecktes" dazu gebaut, 
wenngleich der Anlage vermutl. nicht zuviel zuzutrauen ist.
Was ist mit dem überlagerten Audiosignal? Könnte da evtl. was passieren 
das noch ausgewertet wird?


Zum Schluss noch was zu den Widerstandskombinationen:

Wenn ich den Buss kurz schließe oder 10-30 Ohm drauflege, dann macht es 
doch keinen Unterschied ob ich weiter 300-2K Ohm parallel dazu schalte. 
Die fallen beim Gesamtwiderstand ja nicht ins Gewicht.

Wenn wir mal von der Variante ausgehen die ich, Oskar und weitere hier 
hatten - nämlich dass es den Initialisierungspuls nicht gibt - dann 
müsste der Controller beim Treffen des richtigen Widerstands/ Stroms den 
Bus ja mind. 2ms unten lassen. Erst wenn dann das Falsche kommt sollte 
er wieder hoch ziehen.

In den Screens ist ja aber überall zu sehen dass nach wenigen hundert µs 
wieder hochgezogen wird. Auch das könnte ein Hinweis auf eine falsche 
Fährte sein.

LG

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Ich habe mal den Strom vom Nello mit einem 10 Ohm Shunt aufgenommen 
(gelb Bus, blau 10 ohm Shunt).

von Sven L. (sven_rvbg)


Lesenswert?

https://www.ebay.de/itm/SIEDLE-PRI-602-01-USB-Programmierinterface-USB-Controller-Steuergerat/282864748529?hash=item41dc0d87f1:g:zb4AAOSwSmValf9v

Da hat grade jemand vergleichsweise günstig ein Programmierkabel drinne.
Die Software gibt's bei Siedle, damit lassen sich Telegramme mitlesen 
und einiges mehr.

Vielleicht interessant für einen von Euch?

von Conny G. (conny_g)


Lesenswert?

Sven L. schrieb:
> 
https://www.ebay.de/itm/SIEDLE-PRI-602-01-USB-Programmierinterface-USB-Controller-Steuergerat/282864748529?hash=item41dc0d87f1:g:zb4AAOSwSmValf9v
>
> Da hat grade jemand vergleichsweise günstig ein Programmierkabel drinne.
> Die Software gibt's bei Siedle, damit lassen sich Telegramme mitlesen
> und einiges mehr.
>
> Vielleicht interessant für einen von Euch?

Das Ding hab ich hier rumliegen :-)
Aber bisher war ich noch nicht an dem Punkt vom Bus noch mehr verstehen 
zu müssen, dazu müsste erstmal die #@€&*@&#€@& Schaltung funktionieren. 
;-)

von Conny G. (conny_g)


Lesenswert?

A. H. schrieb:
> Die ersten vier Bit scheinen Teil einer Adresse zu sein, je nach
> Richtung sind die immer gleich.
>
> Beim Signal fürs Klingeln zum Beispiel kommt bei mir immer die 0101.
> Beim Signal fürs Türöffnen ists immer 0100 egal welche der beiden
> Stationen den Befehl schickt.
>
> Wenn ein Teilnehmer an den Bus angeschlossen wird, scheint er an der
> Basis angemeldet zu werden, denn man sieht kurz drauf wie 32 Bit über
> die Leitung gehen.
>
> Die beginnen ebenfalls mit 0101, egal welche Station ich anklemme.
> Allerdings unterscheiden die sich im 6. Nibble.
>
> Hier mal die Bit-Folgen:

Von der Art wie die Endgeräte „programmiert“ werden und wie die 
Systematik der Telegramme zu sein scheint kam ich zu dem Schluss, dass 
die Mechanik recht primitiv ist.
Es scheint jedes Gerät eine Adresse zu haben - Seriennummer? Vom 
Controller zugewiesen?
Und jede Taste / Funktion eines Geräts hat eine ID.
Beim Programmieren / Anlernen merken sich m.E. nur die Gesprächspartner, 
auf welches Telegramm es reagiert.
Das schließe ich aus dem Programmierprozess. Programmieren ein auf dem 
Bus, Programmieren ein Klingel, Programmieren ein Telefon. Klingel 
drücken.
Das ist so primitiv, da ist m.E. Nicht viel Magie dahinter. Bisher sah 
ich jedenfalls noch keine Funktionen, die mehr „Intelligenz“ des Systems 
erfordern würden als sie paarweise oder 1:N zu verheiraten.
Möglicherweise spielt der Controller noch ein bisschen Router, weil die 
Türstationen und die Klingeln sich nicht sehen können, das sind zwei 
verschiedene Busse. Und der Bus kann für mehr als 30 (?) Teilnehmer 
parallel erweitert werden, das muss dann der Controller Routen. So habe 
ich es jedenfalls soweit verstanden.


Bzgl Initsequenz hast Du völlig recht, wenn wir einmal den richtigen 
Widerstand oder Strom treffen, dann klappt das.
Ist auch komisch, denn bei mir ging das auch alles schon und irgendwas 
hab ich dann geändert und seitdem geht es nicht mehr....

Ich bin noch unschlüssig ob es um Widerstand oder einen bestimmten Strom 
geht. Wobei das fast dasselbe ist, nur ist Strom auf dem Bus m.E. die 
zuverlässigere Definition. Derselbe Widerstand bedeutet in einem System 
mit 2 Geräten und 10m Kabel etwas anderes als bei 100m Kabel und 20 
Teilnehmern.
Der Strom als „Ergebnis“ auf dem Kabel bedeutet in beiden Installationen 
dasselbe.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Ich habe mal den Strom vom Nello mit einem 10 Ohm Shunt aufgenommen
> (gelb Bus, blau 10 ohm Shunt).

Sehr cool, danke!
Muss ich mir morgen in Ruhe ansehen, mein Gehirn ist heute nicht mehr zu 
mehr als Zähneputzen zu gebrauchen.

Jetzt ist auch noch spannend, was ein Endgerät am Labornetzteil tut, 
denn dann weiss man auch, was oder was nicht der Bus macht, d.h. beim 
Labornetzteil weiß man, dass außer ggf Strombegrenzung eben nichts 
passiert.
Vielleicht lässt sich diese Rampe daraus erklären.

Eins fällt mir übrigens in der Nello-Aufzeichnung gleich auf: da ist 
schon wieder so eine kleine Abflachung wie ein Miller-Niveau zu sehen. 
Als wäre das die Schaltkurve eines MOSFET.

Oskar,
Könntest Du das nochmal so deutlich beim normalen Endgerät aufzeichnen?
Was mich interessieren würde: ob die Rampe/Kurve, inkl dieser Abflachung 
identisch ist, denn dann kommt die Rampe vom Buscontroller und nicht vom 
Endgerät.
Dass die Kurve zwischen Nello und Siedlegerät identisch ist, kann ich 
mir vorstellen.
Und dann wüssten wir, ob wir für die Rampe zuständig sind oder ob der 
Buscontroller das macht, sobald wir die richtigen Bedingungen geschaffen 
haben.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Ich freue mich übrigens sehr, dass wir jetzt mehrere sind, die Open 
Source / Hardware Kontrolle über die Siedle-Anlage haben wollen :-)

von ähm ja (Gast)


Lesenswert?

Conny G. schrieb:
> Bzgl Initsequenz hast Du völlig recht, wenn wir einmal den richtigen
> Widerstand oder Strom treffen, dann klappt das.

Nur nicht so kompliziert denken....

von ähm ja (Gast)


Lesenswert?

Conny G. schrieb:
> Sven L. schrieb:
> Ebay-Artikel Nr. 282864748529
> Da hat grade jemand vergleichsweise günstig ein Programmierkabel drinne.
> Die Software gibt's bei Siedle, damit lassen sich Telegramme mitlesen
> und einiges mehr.
> Vielleicht interessant für einen von Euch?
>
> Das Ding hab ich hier rumliegen :-)
> Aber bisher war ich noch nicht an dem Punkt vom Bus noch mehr verstehen
> zu müssen, dazu müsste erstmal die #@€&*@&#€@& Schaltung funktionieren.
> ;-)

In dem Adapter ist doch die Schaltung zum senden/empfangen

von Conny G. (conny_g)



Lesenswert?

Fotos vom Programmierinterface.

Sa/Sb sind die Anschlüsse für den In-Home-Bus, also der von 
Buscontroller zu den Türgeräten.
Also die 2er Klemme links oben auf dem Foto mit dem Gehäuse.

Die senkrecht stehende Platine ist das RJ45/USB-Interface, da sind 
eigentlich nur 2 Prozessoren drauf, die sind jetzt nicht so interessant.

Ansonsten ist unten im kleinen Teil alles Gleichrichter, Dioden, 
Sicherungen etc.
Oben ist es schon interessanter.
Da fällt m.E. rechts oben (ggü dem 2er Terminal) ein größerer Widerstand 
R1 von 4,7 Ohm auf.
Und daneben der T1 in einem größeren Package.

Das sieht doch so aus wie der Buswackler, oder?

Angenommen der T1 ist ein SOT-223-4 MOSFET, dann ist die Fahne Drain und 
die Anschlüsse (Fahne oben) "GDS".

Dann hätten wir:
- an Drain das + des Gleichrichters
- und weiter geht's da über eine Diode auf den T3 an dem auch 150 Ohm in 
einem etwas größeren Package hängen.
- Das Gate geht über einen weitern Transistor (T4) auf einen 
Optokoppler, wohl damit auf einen Prozessor. Vermutlich ist T4 einfach 
ein Level Converter von 3.3V auf was auch immer an dem 100uF Kondensator 
anliegt
- Source geht an den 4.7 Ohm Widerstand, vermutlich dann an GND/-.
- Ein T2 hängt auch noch am + des Gleichrichters, der geht anscheinend 
über 1k an GND/-.

Demnach hängen 3 Transistoren am + des Gleichrichters:
- T1 mit 4,7 Ohm
- T3 mit 150 Ohm
- T2 mit 1k

Seht ihr das auch so?

Mmh, bei dem T2 bin ich mir doch nicht sicher, was der tut. Muss ich mir 
nochmal genauer ansehen.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Links oben unter dem 2er Terminal Sa/Sb sind ein paar Dioden und 
Widerstände, die Dioden mit DNW1/DNW2/DNW3 beschriftet.
Hängen anscheinend direkt am Bus und nicht am Gleichrichter und es 
scheint auf der anderen Seiten gehen sie zu OK1.

Ohne das jetzt genauer zu analysieren, könnte das ein mehrfacher 
Spannungsteiler und damit der Detektor für das eingehende Signal sein?

Dann wäre OK1 für das eingehende Signal zuständig, OK2 für das 
ausgehende.

Eingehend ein OK, das wäre denkbar, mehr braucht es nicht unbedingt.

Aber nur ein OK für ausgehend, das passt nicht mit den wenigstens 2 
Widerständen, von denen wir aktuell ausgehen.
Oder kommt von woanders noch ein Steuersignal auf die Transistoren. Wenn 
dann aber warum nicht über OK, sondern direkt?

Ah.
Könnte es so sein, dass mit einem Spannungsteiler o.ä. der 4,7 
Widerstand automatisch abgehängt wird, wenn der Spannungspegel sinkt?
D.h. es wird die Leitung eingeschaltet, weil die Busspannung hoch ist 
hängt automatisch der 4.7 Ohm dran.
Sobald der Bus runterschaltet, wird der 4.7 Ohm abgeklemmt und der 
andere Transistor mit den 150 Ohm ist am Zug.


Also das war jetzt natürlich nur oberflächlich angeschaut, da muss man 
nochmal systematisch drüber.

: Bearbeitet durch User
von Oskar N. (oskarn97)


Lesenswert?

Klingt gut!!

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

So, habe mir das jetzt noch eine Weile angeschaut.

Auf der Rückseite passiert nicht viel, ist praktisch alles GND, nur 
einmal wird eine +-Versorgung des OK2 auf der Unterseite gezogen.
Sonst sind alle Dukos GND oder Testpunkte.

Im Prinzip gibt es vom OK2 aus 3 Bausteine:

- einmal geht es vom OK2 über einen invertierenden PNP (T4) zum T1, der 
diese 4.7 Ohm auf + schaltet

- dann gibt es um den großen Kondensator C2 eine einstellbare 
Referenzspannungsquelle (D3), die über einen Spannungsteiler von 2x 10k 
eingestellt wird. Denke der C2 wird danach geladen, sonst könnte er auch 
keine 16V haben (der Bus hat ja eigentlich 27V)

- Und zwischen dem + des Gleichrichters = Drain des T1 gibt es eine 
Logik aus T2 und T3 und dieser Referenzspannungsquelle, die diesen 150 
Ohm Widerstand dazuschaltet. Die ist mir noch eher unklar, wie die 
funktioniert.
Durch diese Referenzspannung ist es jedenfalls möglich, dass mit nur 
einem Output 2 verschiedene Widerstände geschaltet werden. Das ist quasi 
eine Automatik, die vom Spannungspegel abhängt. Der Prozessor muss nur 
Bits am OK2 schalten, der Rest erledigt sich von selbst.

Möglicherweise trifft sich das an dem Lötpunkt neben dem C1 und hängt 
von der Referenzspannung vs. der Busspannung ab, ob dann der T1 
geschaltet wird oder das andere Konstrukt.

Soweit würde ich das jetzt mal interpretieren ohne einen Schaltplan zu 
zeichnen.
Ist mir noch nicht ganz klar das alles, hab aber heute keine Zeit einen 
Schaltplan draus zu machen.

Und das eine oder andere Bauteil ist etwas schwierig zu identifizieren, 
z.B. der T3. Er hat eine Beschriftung TI oder T1 würde ich meinen.

von Conny G. (conny_g)


Lesenswert?

Ein Schaltplan würde Gewissheit geben, aber m.E. kann man schon mal 
erste Schlussfolgerungen ableiten:

- es braucht keine Stromsteuerung, Widerstände reichen
- es werden (mindestens) 2 Widerstände geschaltet
- einer davon ist 4.7 Ohm

von Oskar N. (oskarn97)


Lesenswert?

Das ist doch super - die Schaltung ist auch aufgeräumter und einfacher 
zu identifizieren als die des Nellos.
Damit bekommen wir es bestimmt hin - ich schaue auch noch mal genauer 
rein und versuche ein paar Sachen am Bus.
Ich bin gespannt!

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

JUHUU!!! Ich habe es geschafft, dass der Bus die Spannung absenkt und 
ich Bits senden kann!!!
Jetzt muss ich nur noch schaffen, dass er sie wieder hochzieht - dafür 
ist wahrscheinlich das halbe Bit am Ende da.

Mit 10 ohm für 145us (bei < 140us senkt der Bus die Spannung nicht ab) 
ziehen - ich habe zusätzlich den Vorwiderstand am Transistor entfernt, 
damit der maximale Strom fließen kann.
Dann mit 150 Ohm wackeln.

Jetzt muss ich es nur noch schaffen, die Übertragung zu beenden. Aktuell 
bleibt die Spannung unten für eine Weile.

von Daniel P. (zwirbeljupp)


Lesenswert?

GLÜCKWUNSCH!!!!
Wenn ich so darüber nachdenke, war dann der zu große Basiswiderstand 
vermutlich auch bei meinen Experimenten im vergangenen Jahr das 
Problem...
Gut gemacht allerseits!

Was meinst Du mit "die Spannung bleibt unten für eine Weile"? Länger als 
für die Dauer von den 32 Bits? Muss man also den Abschluss der 
Übertragung auch wieder aktiv signalisieren?

Gruß
Daniel

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Danke! Ja, die Spannung bleibt für knapp 670ms abgesenkt.
Ich nehme an, das Ende der Sequenz wird durch das halbe signalisiert.

von Oskar N. (oskarn97)


Lesenswert?

Das Ende der Übertragung wird anders angekündigt - man schaltet einen 
Widerstand dauerhaft, mit dem zweiten wackelt man und am Ende der 
Übertragung nimmt man beide raus. Dann geht die Spannung sofort hoch.
Werte teste ich noch.

: Bearbeitet durch User
von A. H. (dernetteeddie1978)


Lesenswert?

Hey Klasse Jungs :)

Da kann ich ja dann demnächst auch wieder fröhlich experimentieren.

LG

von Oskar N. (oskarn97)


Lesenswert?

MISSION ACCOMPLISHED.

Folgender Ablauf funktioniert:

200 Ohm Last schalten (geht auch ohne, dann sieht die Kurve aber nicht 
schön aus).
Direkt anfangen, die Bits zu senden mit 10 Ohm - die Dauer der Bits 
beträgt bei mir 1980us. Ich weiß nicht, ob es an meinem Arduino liegt, 
der vielleicht ungenau ist oder ob es wirklich nicht ganz 2ms sind.
Am Ende der 32 Bit zieht der Bus die Spannung automatisch wieder hoch 
(hatte nur versehentlich ein Bit zu wenig gesendet.
200 Ohm ausschalten.

Der Knackpunkt war das Timing und zu große Vorwiderstände bei den 
Transistoren. Ich verwende nun keine.
Fertig.

von Sven L. (sven_rvbg)


Lesenswert?

Schade ich habe zwar so nen Programmieradapter, und daheim auch irgendwo 
zwei Bustelefone, aber leider kein BNG und keine Außenstation, das 
Problem ist nämlich, das ich die Dinger ab und an mal einbaue, wenn man 
irgendwo eine 6+n Anlage zurückbaut.

Interessant finde ich es trotzdem.

Richtig Klasse wäre, wenn man der Eigenentwicklung dann auch eine eigene 
Adresse zuweisen kann, sodass diese nicht nur die Adresse der Türstation 
klont.

Klar Siedle hat BUS-Schaltmodule und Eingangsnmodule fertig im Programm, 
leider wie alles wo Siedle drauf steht sind die recht teuer.

Wenn man es noch schaffen würde Voice ein und aus zu koppeln, dann 
könnte man sich mittels Rasperry PI oder ähnlichem ein Gateway bauen und 
sich eine wirklich smarte Sprechanlage zusammenstellen.

von A. H. (dernetteeddie1978)


Lesenswert?

Sven L. schrieb:
> Richtig Klasse wäre, wenn man der Eigenentwicklung dann auch eine eigene
> Adresse zuweisen kann, sodass diese nicht nur die Adresse der Türstation
> klont.

Sollte auf Seiten des Controllers kein Problem sein das zu 
programmieren.

>Wenn man es noch schaffen würde Voice ein und aus zu koppeln, dann
>könnte man sich mittels Rasperry PI oder ähnlichem ein Gateway bauen und
>sich eine wirklich smarte Sprechanlage zusammenstellen.

Hatt Conny oben schon gemacht.

Lg

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> JUHUU!!! Ich habe es geschafft, dass der Bus die Spannung absenkt und
> ich Bits senden kann!!!
> Jetzt muss ich nur noch schaffen, dass er sie wieder hochzieht - dafür
> ist wahrscheinlich das halbe Bit am Ende da.
>
> Mit 10 ohm für 145us (bei < 140us senkt der Bus die Spannung nicht ab)
> ziehen - ich habe zusätzlich den Vorwiderstand am Transistor entfernt,
> damit der maximale Strom fließen kann.
> Dann mit 150 Ohm wackeln.
>
> Jetzt muss ich es nur noch schaffen, die Übertragung zu beenden. Aktuell
> bleibt die Spannung unten für eine Weile.

Phantastisch!!!
Ich kann mich erinnern, dass bei mir die Spannung immer konsequent nach 
der Zeit der Bits hochzog, ohne dass ich etwas tun musste.
Aber könnte auch ein Timing-Problem gewesen sein, dass die Bitzeit schon 
vorher in den letzten Bits daneben war.
Hatte nämlich damals die Zeit dann um wenige Prozent korrigiert, dann 
gings.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> MISSION ACCOMPLISHED.
>
> Folgender Ablauf funktioniert:
>
> 200 Ohm Last schalten (geht auch ohne, dann sieht die Kurve aber nicht
> schön aus).
> Direkt anfangen, die Bits zu senden mit 10 Ohm - die Dauer der Bits
> beträgt bei mir 1980us. Ich weiß nicht, ob es an meinem Arduino liegt,
> der vielleicht ungenau ist oder ob es wirklich nicht ganz 2ms sind.

Nein, genau das hatte ich auch.

> Am Ende der 32 Bit zieht der Bus die Spannung automatisch wieder hoch
> (hatte nur versehentlich ein Bit zu wenig gesendet.

Ja, so ist es.

> 200 Ohm ausschalten.
>
> Der Knackpunkt war das Timing und zu große Vorwiderstände bei den
> Transistoren. Ich verwende nun keine.
> Fertig.

Cool. Dann haben wir jetzt die wichtigste Hürde bewältigt, dass 
mindestens einer von uns mit dem Bus reden kann. Dann ist jede weitere 
Diagnose schon mal einfacher.

von Oskar N. (oskarn97)


Lesenswert?

Als nächstes die Stromversorgung - da braucht man einen Gyrator meintest 
du Conny - welche Bauteile sind das konkret? Kannst du mal die Schaltung 
posten?
Wieso funktioniert es nicht, einen Kondi hinter den Spannungsregler zu 
setzen? Da dürfte doch nichts zurückfließen oder? Notfalls Diode?

von Conny G. (conny_g)


Lesenswert?

A. H. schrieb:
> Sven L. schrieb:
>> Richtig Klasse wäre, wenn man der Eigenentwicklung dann auch eine eigene
>> Adresse zuweisen kann, sodass diese nicht nur die Adresse der Türstation
>> klont.
>
> Sollte auf Seiten des Controllers kein Problem sein das zu
> programmieren.

Wir müssen nur herausfinden, wie die Adresse zustandekommt. Ob der Bus 
sie einem neuen Gerät zuweist oder ob jedes Gerät einfach eine 
Seriennummer mitbringt.

>>Wenn man es noch schaffen würde Voice ein und aus zu koppeln, dann
>>könnte man sich mittels Rasperry PI oder ähnlichem ein Gateway bauen und
>>sich eine wirklich smarte Sprechanlage zusammenstellen.
>
> Hatt Conny oben schon gemacht.


Nein, nicht gemacht, ich hatte es geplant. Mein erstes Ziel war eine 
automatische Schleuse für Post und Paketboten, denn der Weg vom 
Gartentor zur Haustür dauert 1min und ich steh dann immer dumm rum bis 
der Besucher innen ankam und ich diese Tür öffnen kann.
Der Plan ist die innere Tür auf Klingeln hin automatisch zu öffnen, wenn 
- und nur dann - ich nach Klingeln die äußere geöffnet habe.

Für ein Weiterleiten des Klingelns ist die Lösung noch offen wie das 
geht.
Mein Plan war Audio und Video mit einem Raspberry Pi als VoIP Call 
weiterzusenden und das Tür öffnen per DTMF zu ermöglichen.
Ich habe bei mir das Videosignal separat, neuere Lösungen haben das auch 
auf dem 2-Draht-Bus. Muss man dann per Frequenzweiche aufsplitten.

von Oskar N. (oskarn97)


Lesenswert?

Conny G. schrieb:
> Für ein Weiterleiten des Klingelns ist die Lösung noch offen wie das
> geht.
> Mein Plan war Audio und Video mit einem Raspberry Pi als VoIP Call
> weiterzusenden und das Tür öffnen per DTMF zu ermöglichen.
> Ich habe bei mir das Videosignal separat, neuere Lösungen haben das auch
> auf dem 2-Draht-Bus. Muss man dann per Frequenzweiche aufsplitten.

Meine Idee war ein ESP12E als Controller zu verwenden und dann per MQTT 
alle erkannten Befehle als Hex rauszuschicken sowie entgegenzunehmen. 
Dann hat man eine universale Schnittstelle, die man im 
Automatisierungssystem seiner Wahl einbinden kann.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Als nächstes die Stromversorgung - da braucht man einen Gyrator meintest
> du Conny - welche Bauteile sind das konkret? Kannst du mal die Schaltung
> posten?

Ich schau später nach dem Schaltplan.

> Wieso funktioniert es nicht, einen Kondi hinter den Spannungsregler zu
> setzen? Da dürfte doch nichts zurückfließen oder? Notfalls Diode?

Ich kann mich nicht erinnern, ob ich das versucht habe. Ich erinnere 
mich, dass Spannungsregler das nicht mögen, wenn hinter ihnen noch 
Spannung ist, davor aber nicht mehr.
Da könnte man aber mit einer Diode abhelfen, den Rückstrom zu 
verhindern.

Ich weiß aber, dass ich vor dem Regler eine Diode hatte dafür und das 
ließ aber noch zu, dass das Audio auf dem Bus von Diode und Kondensator 
gedämpft wurde. Stark gedämpft, man konnte sich über die Anlage nicht 
mehr unterhalten. Und das gilt dummerweise für den ganzen Bus, also alle 
Teilnehmer.
Die Lösung war der Gyrator, der - richtig dimensioniert - für Audio 
hochohmig ist, sodass das Audio-Signal dahinter nichts mehr sieht.
Das hatte prima funktioniert die Dämpfung zu verhindern.

Und in dem Moment begannen dann die Probleme mit dem Senden auf dem Bus 
und ich habe das Projekt dann pausiert, nach ein paar Std. herumkreisen.
Hatte keine Ahnung, dass ich es für 2 Jahre pausieren würde....

Ich denke ich habe damals zwei Probleme gehabt:
der Gyrator war noch nicht richtig für das Bussignal dimensioniert 
(dafür muss dasselbe gelten wie für das Audio) und ich habe im Rahmen 
der Tests meinen Code für das Senden verhunzt.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Conny G. schrieb:
>> Für ein Weiterleiten des Klingelns ist die Lösung noch offen wie das
>> geht.
>> Mein Plan war Audio und Video mit einem Raspberry Pi als VoIP Call
>> weiterzusenden und das Tür öffnen per DTMF zu ermöglichen.
>> Ich habe bei mir das Videosignal separat, neuere Lösungen haben das auch
>> auf dem 2-Draht-Bus. Muss man dann per Frequenzweiche aufsplitten.
>
> Meine Idee war ein ESP12E als Controller zu verwenden und dann per MQTT
> alle erkannten Befehle als Hex rauszuschicken sowie entgegenzunehmen.
> Dann hat man eine universale Schnittstelle, die man im
> Automatisierungssystem seiner Wahl einbinden kann.

Ja, das ist eine gute Idee. Ist jetzt auch leichter mit dem ESPs, vor 
zwei Jahren gabs die noch nicht.
Ach was, das war Ende 2013 / Anfang 2014, sogar schon 4 Jahre her! Wow.

von Conny G. (conny_g)


Lesenswert?

Zum Thema Bus-Adressen und eigene Adresse statt „shadow“ eines Gerätes 
zu sein.
Habe dazu gerade mal online ein bisschen durch die Handbücher von Siedle 
gesurft.

Strukturell können an einem einstrangigen Bus 31 Geräte sein, das sind 5 
Bit.
Es man bis zu 15 Stränge geben, das wären weitere 4 Bit.
Die Tasten / Funktionen jedes Geräts haben eine ID, das dürften auch ein 
paar Bit sein, 3-4 Bit?
Bis hier wären wir bei 5+4+4 = 13 Bit.

Es steht nirgendwo explizit wann und wie die Adressen vergeben werden, 
aber es gibt Hinweise, dass die Geräteadresse vom Bus zugewiesen wird.
ZB beim Smart Gateway werden dem In-Home-Adressen für die IP-Geräte 
zugewiesen. Muss auch so sein, die IP-Geräte müssen ja auf den Bus 
„gespiegelt“ werden.
Ich würde davon ausgehen, dass die Tasten/Funktionsadressen aber fest 
sind.

Würde mir das so vorstellen, dass bei der erstmaligen Aktivierung oder 
Programmierung eines Geräts das ein „hallo, bin da, wie heisse ich?“ auf 
den Bus sendet und der Controller dann die nächste freie Adresse zurück 
meldet.

Das müsste man mal belauschen. Dazu wäre es gut, wenn man wüsste, ob man 
einem Endgerät einen Werksreset verpassen kann, der die Adresse wieder 
löscht, dann kann man das Spielchen reproduzieren.

Daraus müsste man dann lernen, wo die Adresse genau steht, damit man sie 
sich aus der Rückmeldung ziehen kann.

von Conny G. (conny_g)


Lesenswert?

Interessant, hier, Seite 91
https://www.siedle.de/xs_db/DOKUMENT_DB/www/Systemhandbuch/In-Home_Bus_Audio_2017/Systemhandbuch_In-Home_Audio_2017_210007096-00_DE.pdf#page91

verschiedene Szenarien den Bus Controller zurück zu setzen, den 
Controller zu tauschen oder ein Telefon zu ersetzen.
Letzteres ist: neues gegen altes, also das neue hat noch keine Adresse. 
Muss demnach neu mit Klingeln etc verknüpft werden.

Was fehlt: gebrauchtes Telefon in die Anlage einsetzen, hier müsste es 
ja einen Adresskonflikt geben, den man nur durch Reset des Telefons 
beheben kann.

von Oskar N. (oskarn97)


Lesenswert?

Welchen Spannungsregler benutze ich am besten (27 -> 3.3V)?
SMD und günstig wenn's geht :D

von Sven L. (sven_rvbg)


Lesenswert?

Conny G. schrieb:
> Habe dazu gerade mal online ein bisschen durch die Handbücher von Siedle
> gesurft.

Ich habe mir mal die Programmiersoftware nochmal angeschaut...

Man kann ja gewisse Funktionen per Tastendruck und ohne 
Programmiersoftware programmieren. Für Gruppen bspw. braucht man die 
Programmiersoftware.

Wenn man mit dem Programmierinterface programmiert, dann kann man den 
Bus nach Geräten suchen lassen.

Ich glaube mich zu erinnern, das man Telegramme mit der 
Programmiersoftware ein Stück weit mitlesen konnte.

Wenn man nun zu aller erst mal einen "Monitor" baut, der die Telegramme 
per RS232 / RS232 via USB an den PC bzw. an den BUS sendet, dann könnte 
man ja mal Telegramme im Rohzustand mittracen, auswerten oder senden.

So ähnlich bin ich bei meinen Analysen vom Loxone Link mittels des 
USBtin auch vorgegangen. Am Anfang habe ich mir die Telegramme an den PC 
senden lassen um sie dann auzuwerten.

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Welchen Spannungsregler benutze ich am besten (27 -> 3.3V)?
> SMD und günstig wenn's geht :D

Von 27V muss man auf die Bauform aufpassen, der muss ja selbst bei nur 
30-50mA schon 23V x 0,05 = 1,1W in Wärme verbraten.

Auf der Platine des Programmiermoduls habe ich einen STM 78M05 gefunden 
in Bauform d2pak oder so, der in 3.3V wäre wohl robust und geeignet.

http://www.st.com/content/ccc/resource/technical/document/datasheet/41/4f/b3/b0/12/d4/47/88/CD00000444.pdf/files/CD00000444.pdf/jcr:content/translations/en.CD00000444.pdf

Ja, der hat mit 1W kein Problem, R_th_ja 60 C/W, bei 1W erwärmt er sich 
um 60 Grad.
Nur gibt es den nicht in 3.3V.
Aber Du könntest auch einfach einen Sot23 3.3V Regler nachschalten.

Oder einstellbar, 55 Cent:
http://de.farnell.com/stmicroelectronics/lm317d2t-tr/reg-1-2-37v-1-5a-d2pak/dp/1564300

Oder einfach LM317 oder LM1117

https://www.reichelt.de/ICs-LM-1000-LM-1999/LM-1117-S-ADJ/3/index.html?ACTION=3&LA=446&ARTICLE=109331&GROUPID=5465&artnr=LM+1117+S-ADJ&SEARCH=%2Bto-263%2B3%252C3&trstct=pos_4

https://www.reichelt.de/ICs-TLC-TSA-/TS-317-CM/3/index.html?ACTION=3&LA=446&ARTICLE=115954&GROUPID=5480&artnr=TS+317+CM&SEARCH=%2Bto-263%2B3%252C3&trstct=pos_3

Oder natürlich Step-Down Schaltregler, aber das ist der nächste 
Schwierigkeitsgrad. War es so nicht auf dem Nello gemacht?

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Sven L. schrieb:
>
> Wenn man nun zu aller erst mal einen "Monitor" baut, der die Telegramme
> per RS232 / RS232 via USB an den PC bzw. an den BUS sendet, dann könnte
> man ja mal Telegramme im Rohzustand mittracen, auswerten oder senden.
>
> So ähnlich bin ich bei meinen Analysen vom Loxone Link mittels des
> USBtin auch vorgegangen. Am Anfang habe ich mir die Telegramme an den PC
> senden lassen um sie dann auzuwerten.

Ja, ich glaube ich sollte demnächst mal das Programmierinterface in 
Betrieb nehmen!

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Das wäre meine Basic Client Schaltung. Klappt das so?

von Conny G. (conny_g)


Lesenswert?

Ja, prinzipiell ok.
- 3000uF sind fast etwas viel, aber schaden tut es auch nicht ;-) denke 
ab 470uF müssten reichen. Ggf Platz vorsehen und nur tlw bestücken
- die Widerstände / Spannungsteiler an den Signal-Detektor-Transistoren 
hab ich jetzt nicht nachgerechnet
- die Emitterwiderstände dort größer, mind. 1k
- den 3.3v Regler ankucken, was der für eine Eingangsspannung braucht, 
ob 5V reichen
- Beschaltung der Spannungsregler nach Datenblatt beachten
- bei den Sendetransistoren würde ich schon einen Basiswiderstand 
machen. Wenn 1A CE durch sollen, braucht es max 10mA an der Basis, bei 
3.3V also 330 Ohm. Oder nimm 100 oder 220. denke aber der Esp gibt schon 
keine 10-20mA.

: Bearbeitet durch User
von Conny G. (conny_g)



Lesenswert?

Hier der Gyrator in der letzten Version der Schaltung von vor zwei 
Jahren.
Und Fotos davon.
Die 2 weissen Drähte sind der Eingang, da hängt der Bus dran.

Am besten in LTSpice simulieren, bei welcher Frequenz er blockt.
Ich würde den Kondensator deutlich höher wählen, damit er auch das 
Siedle-Bus-Telegramm abblockt (500 Hz).

Spice-File angehängt, bitte kritisch prüfen.
Kann man auch ausrechnen, wieviel Induktivität ein Gyrator bei wieviel 
Kapazität "simuliert" -> Google.

Die Quelle für die Gyrator-Schaltung hatte ich oben schon mal verlinkt.

Beitrag "Eingangskondensator dämpft Audio auf Busleitung"

http://www.loetstelle.net/projekte/gyrator/gyrator.php

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Conny G. schrieb:
> Was fehlt: gebrauchtes Telefon in die Anlage einsetzen, hier müsste es
> ja einen Adresskonflikt geben, den man nur durch Reset des Telefons
> beheben kann.

Siedle Support sagt dazu:

"Man kann eine Bus-Haustelefon nicht "zurück setzten", braucht es auch 
nlicht.
Ein gebrauchtes Bus-Haustelefon bekommt am neuen Steuergerät eine neue
Adresse und die Ruftaste oder andere Konfigurationen des Gerätes können
neu programmiert werden."

Das würde bedeuten ein Telefon speichert seine Adresse nicht? Oder woher 
wüsste es, dass an einem neuen Bus ist?

Es geht ja dabei nur darum das Szenario die Adresszuweisung wiederholt 
simulieren zu können, das ist dann wohl nicht so einfach.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Ich habe nun mein erstes Layout fertig gestellt und bin alles in allem 
sehr zufrieden. Mein Ziel war vorerst, ein einfaches MQTT Gateway zu 
bauen, welches 32 Bit Befehle erkennen sowie einspielen kann.
Die aktuelle Platine ist knapp 3.5x3.5cm und damit sehr kompakt.

Die Werte der Widerstände und den Detektors muss ich noch durch testen 
verifizieren, auch der Gyrator ist blind von Conny übernommen.
Auch die Vorwiderstände der Transistoren T1 & T2 habe ich vorerst mit 0 
Ohm beschriftet, da kommen dann wahrscheinlich 200 Ohm rein, muss ich 
aber auch noch austesten.

Ich habe zusätzlich Redundanz vorgesehen.
Falls der Gyrator nicht notwendig ist und die Dioden ausreichen, kann 
man den 0 Ohm Widerstand R21 montieren - ist der Gyrator nötig, wird 
dieser nicht montiert.

Falls das mit der Stromversorgung gar nicht funktionieren sollte, habe 
ich notfalls zusätzlich eine externe Stromversorgung über einen 
Micro-USB Port vorgesehen. Soll der Port verwendet werden, muss die 
Diode D3 oder der DCDC Wandler entfernt werden. Dieser ist nur für die 
power delivery, zum programmieren braucht man einen serial Adapter. Da 
sich die Firmware des ESPs über WLAN flashen lässt, habe ich keinen 
zusätzlichen UART Chip vorgesehen.

Die 3 Kondensatoren sind ebenfalls großzügig ausgelegt. Der ESP braucht 
im Schnitt um die 100mA, ein Telegramm dauert 0,1 Sekunden, in denen der 
Chip im Worst Case ohne Strom ist. C = (I * t) / U = 0,1x0,1/3.3 = 3,3 
mF. Deswegen habe ich drei 1000uF 6.6V Kondensatoren vorgesehen - die 
sollten auf alle Fälle die Zeit überbrücken.

Folgende Bauteile habe ich bestellt:
- ESP 12F 
https://de.aliexpress.com/item/new-ESP8266-Remote-Serial-Port-WIFI-Transceiver-Wireless-Module-Esp-12F-AP-STA/32633529267.html
- DCDC Wandler (entweder auf 3.3V einstellen oder Drehregler durch 
Widerstand ersetzen) 
https://de.aliexpress.com/item/5pcs-lot-DC-DC-step-down-power-supply-module-3A-adjustable-step-down-module-super-LM2596/32273184898.html
- Kondensatoren 
https://de.aliexpress.com/item/1LOT-10PCS-SMD-Aluminum-Capacitors-6-3V-1000uF-108-8-10-5mm-1000000nF-1000000000pF/32796777013.html
- Mosfet Transistor für den Gyrator 
https://de.aliexpress.com/item/Free-Shipping-20PCS-IRLR024NPBF-IRLR024-TO-252/735461235.html
- Buttons zum programmieren (Reset & GPIO0) 
https://de.aliexpress.com/item/10-teile-los-Momentary-Zwei-Pin-Druckschalter-SMD-Tactile-Tact-Taster-Mikroschalter-F-r-MP3-MP4/32843088307.html
- Dioden (1N4007 SOD-123) 
https://de.aliexpress.com/item/100-st-cke-SMD-diode-0805-SOD-123-1N5819-1N4007-1N4148-SOD123-SOD-323-1206-1N4148WS/32849879904.html
- PNP Transistoren zum erkennen der Bits 
https://de.aliexpress.com/item/BC807-40-SOT-23-500pcs-lot-Triode-Transistor/32310882136.html?spm=a2g0s.9042311.0.0.TJw6Im
- NPN Transistoren zum senden der Bits 
https://de.aliexpress.com/item/Original-100PCS-BC817-40-SOT-23-BC-817-BC817-40-SOT23-NPN-Transistor-Triode-Free-Shipping/32797378460.html
- JST Stecker zum verbinden des Bus 
https://de.aliexpress.com/item/10-Teile-los-24AWG-JST-XH2-54-2-Pin-Stecker-Draht-Kabel-20-cm-L-nge/32838998131.html?spm=a2g0s.9042311.0.0.oUShXP
- 0805 Widerstände und ein Kondensator mit den angegebenen Werten

Ich schlafe noch mal ein paar Tage drüber, solltet ihr und ich keine 
Fehler mehr finden, werde ich mal ein paar Platinen bestellen und 
testen. Bis die Teile aus China da sind, kann das aber gut 1-2 Monate 
dauern.
Die Firmware schreibe ich in den kommenden Tagen.

Edit: sorry für die doppelten Anhänge, man kann zwar nachträglich welche 
hinzufügen aber nicht mehr löschen xD

: Bearbeitet durch User
von Sven K. (svenk)


Lesenswert?

Hallo Oskar,

prima das das jetzt gut läuft. Kannst Du mal noch ein paar Details zu 
deinem Aufbau der Siedle Komponenten machen und hast Du mal die 
Versorgungsspannung komplett ausgeschaltet und danach probiert? Konntest 
Du mit dem Befehl den Türöffner öffnen?

Gruß Sven

von Oskar N. (oskarn97)


Lesenswert?

Hey Sven,

ja, funktioniert jetzt perfekt, zuverlässig und reproduzierbar.
Ist ein Mehrfamilienhaus mit Türöffner, Gegensprechanlage, mehreren 
Klingeln etc.
Ich kann das Licht im Treppenhaus einschalten, Klingeln erkennen (und 
dabei auch unterscheiden ob vor der Wohnungstür oder an der Haustür), 
die Tür öffnen etc.
Die Platine habe ich gerade in Auftrag gegeben, werde ich dann testen.

Was meinst du mit Versorgungsspannung komplett ausgeschaltet?

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Was meinst du mit Versorgungsspannung komplett ausgeschaltet?

Ich denke er meint: die Schaltung vom Bus versorgt und nicht separat.

von Oskar N. (oskarn97)


Lesenswert?

Bisher mangels fehlender Komponenten nein. Aber dafür ist die Redundanz 
auf der Platine da :) Mit eine der drei Varianten (Bus + Gyrator  Bus  
extern) wird es definitiv funktionieren.
Ist jetzt in Produktion und ich berichte dann.

von Conny G. (conny_g)


Lesenswert?

Bin gerade beruflich unterwegs und kann leider nicht testen, werde die 
bei Dir erfolgreiche Variante am Freitag mal probieren!

Könnten die Kondensatoren kleiner ausfallen, wenn man sie vor den 
Spannungsregler packt?
Nach dem Spannungsregler brauchst Du ja viel Kapazität um nicht zu weit 
von den 3.3V wegzukommen.
Aber vor dem Regler dürfte ja sogar die Spannung von 27V um 20V 
einbrechen, da hast ja ein Vielfaches an Ladung verfügbar, auch mit 
einem viel kleineren C.

von Oskar N. (oskarn97)


Lesenswert?

Conny, bezüglich des dekodieren des Protokolls habe ich etwas 
nachgedacht - es könnte gut sein, dass das USB Interface ein "dummes 
Gateway" ist, welches nur ähnlich wie unseres Befehle sendet und 
empfängt. Da würde mich extrem interessieren, welche Daten da genau über 
UART rausgehen, vielleicht ist die ganze Logik ja schon im 
Konfigurationsprogramm.
Kannst du mal einen Logic Analyzer (oder dein Rigol mit RS232 decoder) 
dazwischen
hängen, ein bisschen mit dem Konfigurationsprogramm rumspielen (z.B. 
Geräte listen) und die Kommunikation posten?

von Oskar N. (oskarn97)


Lesenswert?

Conny G. schrieb:
> Bin gerade beruflich unterwegs und kann leider nicht testen, werde die
> bei Dir erfolgreiche Variante am Freitag mal probieren!
>
> Könnten die Kondensatoren kleiner ausfallen, wenn man sie vor den
> Spannungsregler packt?
> Nach dem Spannungsregler brauchst Du ja viel Kapazität um nicht zu weit
> von den 3.3V wegzukommen.
> Aber vor dem Regler dürfte ja sogar die Spannung von 27V um 20V
> einbrechen, da hast ja ein Vielfaches an Ladung verfügbar, auch mit
> einem viel kleineren C.

hm, das kann gut sein! War so vorerst für mich intuitiver um das ganze 
weiter vom Bus fernzuhalten, deswegen habe ich es in der ersten Version 
so gemacht. Bei 6V sind die Kondensatoren ja auch deutlich kleiner, dann 
gibt sich das wahrscheinlich nicht so viel oder?

Super cool, ich bin gespannt, funktioniert bestimmt! Alles in allem 
waren ja echt nur die Vorwiderstände schuld :D

von Conny G. (conny_g)


Lesenswert?

Oskar N. schrieb:
> Conny, bezüglich des dekodieren des Protokolls habe ich etwas
> nachgedacht - es könnte gut sein, dass das USB Interface ein "dummes
> Gateway" ist, welches nur ähnlich wie unseres Befehle sendet und
> empfängt. Da würde mich extrem interessieren, welche Daten da genau über
> UART rausgehen, vielleicht ist die ganze Logik ja schon im
> Konfigurationsprogramm.
> Kannst du mal einen Logic Analyzer (oder dein Rigol mit RS232 decoder)
> dazwischen
> hängen, ein bisschen mit dem Konfigurationsprogramm rumspielen (z.B.
> Geräte listen) und die Kommunikation posten?

Ja, das werde ich machen, da bin ich auch neugierig drauf.
Weiss noch nicht wann, denn dazu muss ich mich ein paar Stunden in 
unseren feuchten Keller setzen... ;-)

von Sven K. (svenk)


Lesenswert?

Hallo Oskar,

> ja, funktioniert jetzt perfekt, zuverlässig und reproduzierbar.
> Ist ein Mehrfamilienhaus mit Türöffner, Gegensprechanlage, mehreren
> Klingeln etc.
> Ich kann das Licht im Treppenhaus einschalten, Klingeln erkennen (und
> dabei auch unterscheiden ob vor der Wohnungstür oder an der Haustür),
> die Tür öffnen etc.

Sehr cool. Dh. Du kennst aber nur Dein eingebautes Telefon ?
Die anderen Komponenten sind ja sicher zentral verbaut.

>
> Was meinst du mit Versorgungsspannung komplett ausgeschaltet?

Das bezog sich darauf, mit dem Abschalten der kompletten Busspannung und 
des Netzteils auszuschließen, das nach dem Einschalten nicht doch eine 
anlern-Prozedur stattfindet und dadurch das Verhalten auf dem Bus 
angepasst wird.
Hätte sich aber bei Dir erledigt - wenn Du keinen Zugriff auf das 
Netzteil vmtl. im Schaltschrank hast.

Gruß Sven

von Oskar N. (oskarn97)


Lesenswert?

Sven K. schrieb:
> Hallo Oskar,
>
>> ja, funktioniert jetzt perfekt, zuverlässig und reproduzierbar.
>> Ist ein Mehrfamilienhaus mit Türöffner, Gegensprechanlage, mehreren
>> Klingeln etc.
>> Ich kann das Licht im Treppenhaus einschalten, Klingeln erkennen (und
>> dabei auch unterscheiden ob vor der Wohnungstür oder an der Haustür),
>> die Tür öffnen etc.
>
> Sehr cool. Dh. Du kennst aber nur Dein eingebautes Telefon ?

Wie meinst du das? Ich kann die anderen Komponenten über den Bus ja 
ansprechen.

> Die anderen Komponenten sind ja sicher zentral verbaut.
>
>>
>> Was meinst du mit Versorgungsspannung komplett ausgeschaltet?
>
> Das bezog sich darauf, mit dem Abschalten der kompletten Busspannung und
> des Netzteils auszuschließen, das nach dem Einschalten nicht doch eine
> anlern-Prozedur stattfindet und dadurch das Verhalten auf dem Bus
> angepasst wird.
Die Daten sind im Netzteil gespeichert.


> Hätte sich aber bei Dir erledigt - wenn Du keinen Zugriff auf das
> Netzteil vmtl. im Schaltschrank hast.
>
> Gruß Sven

von Conny G. (conny_g)


Lesenswert?

Sven K. schrieb:
>> Was meinst du mit Versorgungsspannung komplett ausgeschaltet?
>
> Das bezog sich darauf, mit dem Abschalten der kompletten Busspannung und
> des Netzteils auszuschließen, das nach dem Einschalten nicht doch eine
> anlern-Prozedur stattfindet und dadurch das Verhalten auf dem Bus
> angepasst wird.

Was würde der Bus dabei lernen? Wie die Clients reagieren oder was die 
Widerstände der Clients auf dem Bus für eine Wirkung haben, also welcher 
Strom dann fliesst?
Das ändert aber das Verhalten der Clients nicht, also können nicht 
plötzlich die anderen Clients anders reagieren und unsere Schaltung 
"ausschliessen".
Ich glaube nicht, dass der Bus hier etwas verändert, wenn die Clients 
konstant bleiben.

von Sven L. (sven_rvbg)


Lesenswert?

Oskar N. schrieb:
> ja, funktioniert jetzt perfekt, zuverlässig und reproduzierbar.
> Ist ein Mehrfamilienhaus mit Türöffner, Gegensprechanlage, mehreren
> Klingeln etc.
> Ich kann das Licht im Treppenhaus einschalten, Klingeln erkennen (und
> dabei auch unterscheiden ob vor der Wohnungstür oder an der Haustür),
> die Tür öffnen etc.
> Die Platine habe ich gerade in Auftrag gegeben, werde ich dann testen.

Ich weiß das Du den anderen Sven meinst.

Da Du mit dem Protokoll schon etwas weiter bist, wollte ich mal fragen, 
ob Du Sourcen mit uns teilen magst.

von Oskar N. (oskarn97)


Angehängte Dateien:

Lesenswert?

Sven L. schrieb:
> Oskar N. schrieb:
>> ja, funktioniert jetzt perfekt, zuverlässig und reproduzierbar.
>> Ist ein Mehrfamilienhaus mit Türöffner, Gegensprechanlage, mehreren
>> Klingeln etc.
>> Ich kann das Licht im Treppenhaus einschalten, Klingeln erkennen (und
>> dabei auch unterscheiden ob vor der Wohnungstür oder an der Haustür),
>> die Tür öffnen etc.
>> Die Platine habe ich gerade in Auftrag gegeben, werde ich dann testen.
>
> Ich weiß das Du den anderen Sven meinst.
>
> Da Du mit dem Protokoll schon etwas weiter bist, wollte ich mal fragen,
> ob Du Sourcen mit uns teilen magst.

Habe heute die Firmware für die Schaltung von oben geschrieben - ist 
angehängt.
Bisher allerdings nur das senden getestet.
Alles über MQTT - auf siedle/cmnd werden alle erkannten Befehle vom Bus 
gepublished, die über siedle/cmnd/exec wieder eingespielt werden können.

von Manuel B. (prodigy7)


Lesenswert?

Hallo zusammen,

ich habe in den vergangenen Tagen wie gebannt diesen Thread verfolgt und 
bei jedem Fortschritt von euch mitgefiebert! :-)
Finde es toll, was ihr könnt und was ihr geleistet habt. Hätte auch 
gerne euer Know-How und bin da wirklich sehr neidisch drauf!
Ich habe mich auch schon einige Zeit mit einer smarten Siedle Idee 
beschäftigt, da ich nicht abhängig sein will von einer Cloudlösung 
(wirklich blöde Idee, hätte man zusätzlich auch eine lokale API zur 
Verfügung gestellt, wäre alles gut).
Ich bin aber "nur" soweit gekommen, dass ich via Homematic Empfänger den 
Türöffner betätigen kann (siehe 
https://forum.fhem.de/index.php/topic,76584.0.html), aber das was ihr 
jetzt geschafft habt, entspricht dem, was ich mir vorstelle.
Seht ihr die Möglichkeit, das als Bausatz anzubieten den man auch als 
wenig bzw. halbwegs talentierter Löter zusammenbauen könnte?

Grüße, Manuel

von Oskar N. (oskarn97)


Lesenswert?

Hey Manuel,
das freut mich zu hören.
Schreib' mir mal eine PM - ich habe mir 20 Platinen bestellt, wenn das 
gut funktioniert, kann ich dir auch eine bestücken :)
Damit es sehr klein und kompakt ist habe ich alles mit kleinen SMD 
Komponenten designt - ohne Erfahrung und Zugang zu den richtigen 
Werkzeugen kann man das in der Form wohl eher nicht löten.

Lg

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.