Forum: Analoge Elektronik und Schaltungstechnik Bticino SCS Bus Signalaufbereitung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von N. M. (mani)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin gerade durch die viele Freizeit bemüht noch ein paar Geräte in 
mein Heimnetz einzubinden. Als nächstes wollte ich mir die 
Türsprechanlage anschauen. Es ist eine Bticino Classe 100 v12e die einen 
Zweidrahtbus verwendet um mit der Türstation zu kommunizieren.
Der Bus wird vom italienischen Hersteller als "SCS-Bus" bezeichnet:
https://en.wikipedia.org/wiki/Bus_SCS

Ich habe deshalb mal das Oszi angeworfen und das Signal beim freigeben 
der Türe aufgenommen. Es ist wie auf der Wiki-Seite beschrieben eine 
Gleichspannung von 27V (Ruhepegel) der ein digitales Signal 
"aufmoduliert" wurde. Der Hub des digitalen Signals ist dabei ungefähr 
5V (22-27V).

Um das ganze für einen uC aufzubereiten brauche ich noch ein Frontend 
das mir die 27V entfernt und in 3,3V Pegel wandelt ohne dabei zuviel 
Jitter/Phase zu erzeugen.

Den ersten Versuch habe ich mal als Simulation angehängt.
Ich wollte dabei das Signal nicht gleich ganz runter knüppeln. Wenn ich 
das einfach über einen Spannungsteiler gemacht hätte, hätte ich einen 
Faktor von 8,2. Das heißt der Hub wäre auf 600mV geschrumpft. Deshalb 
der Versuch das Signal auf 24V zu lassen und über den Pull-Up des 
Comparators das Signal zu wandeln.

Meine Fragen sind:
* Würde man das so machen?
* Was könnte man daran verbessern (Werte/Bauteile/Schaltung)?

Danke für konstruktive Beiträge
MaNi

von latchup (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo MaNi,

arbeitest Du noch an dem Projekt? Wir haben in unserem Hackerspace auch 
grade eine bticino-Türsprechanlage unter dem Messer. Wir haben bereits 
ein funktionierendes Hardware-Interface und versuchen jetzt, das 
Daten-Protokoll zu durchschauen.

Grüße
latchup

von N. M. (mani)


Bewertung
0 lesenswert
nicht lesenswert
Hi latchup,

ja ich bin noch dabei. Die erste Hardware habe ich bestellt. Hat 
allerdings ewig gedauert bis die Platine aus China kam. Erst letzte 
Woche. Seither bin ich nicht mehr dazu gekommen.
Könnt ihr zu eurer Schaltung was sagen?

Zum Protokoll hatte ich Mal was gefunden. Ich suche Mal den Link raus 
und poste ihm hier.

Grüße
MaNi

von Tom50 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Mani,

ich habe auch das Bussystem von Bticino im Einsatz und würde gerne ein 
paar Tasten der Türsprechanlage "Zweckentfremden" für div. andere 
Funktionen. Dazu möchte ich mit einem uC und entsprechenden 
Koppelschaltung am Bus "lauschen", wofür ich natürlich dann auch das 
Protokoll entschlüsseln muss.
Wenn du da also Info hättest wäre ich sehr daran interessiert.

Grüße
Tom50

von MaNi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Einen Tipp findet man auf der italienischen Wiki-Seite:
https://it.wikipedia.org/wiki/Bus_SCS
Die physikalische Schicht, ähnlich der vom KNX TP1- Standard verwendeten , ist eine RZ-Codierung mit 9600 Bit pro Sekunde, acht Bit pro Symbol, mit einem Startbit und einem Stoppbit. Die Null wird durch eine Unterbrechung von 34 µs (erhalten durch Anlegen einer Last an den Bus) dargestellt, gefolgt von 70 µs Stille, die Eins durch 104 µs Stille. Das Startbit ist Null, das Stoppbit ist Eins (die Umkehrung der herkömmlichen seriellen Codierung). Frames können kurz (sieben Symbole) oder erweitert (elf Symbole) sein und werden durch ein Symbol für den Anfang des Frames (0xA8) und eines für das Ende des Frames (0xA3) begrenzt. Innerhalb des Frames kann kein Symbol einen Wert größer als 0x7F haben, sodass keine spezielle Codierung erforderlich ist. Jeder Frame endet mit einem Steuercode, der über XOR erhalten wird aller Rahmensymbole ohne Trennzeichen.

Eine weitere italienische Seite liefert noch etwas mehr:
http://guidopic.altervista.org/alter/eibscsgt.html

Die von ihm verwendete Schaltung funktioniert bei mir weder in der 
Simulation noch in Real richtig zuverlässig. Deshalb hatte ich hier 
nachgefragt.

In obigem Link steht ja was von TP1. Deshalb dachte ich ich probier mal 
die Empfangsstufe von freebus aus:
https://www.freebus.org/content/freebus-grundschaltung
In der Simulation sieht das schon ganz gut aus.

@latchup / Tom50: Könnt ihr noch was zu eurer verwendeten Hardware sagen 
und noch ein Schaltbild oder ähnliches anhängen.

Gruß
MaNi

von Tom50 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo MaNi,

danke für deine Erläuterungen, damit komme ich sicher weiter. Ich stehe 
noch am Anfang, möchte aber eine Schnittstelle zu eine Raspy schaffen 
und damit dann den Rest der Steueraufgaben übernehmen. Arbeite aktuell 
mit dem F454 Webserver von BTicino, aber das läuft nicht so richtig 
stabil und man kann auch nur die vorgegebenen Befehle nutzen.

Melde mich wenn ich hier weiterkomme...
LG
Tom50

von N. M. (mani)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hey Tom,
ich hatte nun mal wieder etwas Zeit und hab die mit dem Scope 
aufgezeichneten Daten mal offline weiterverarbeitet.
Ich habe verschiedene Frames aufgezeichnet:
* Monitor in der Wohnung einschalten
* Türe öffnen
* Monitor in der Wohnung ausschalten

Die Frames in sich scheinen nun zu stimmen. Zumindest passt die 
Prüfsumme.
Ein ACK wie in den Links oben beschrieben kann ich nicht sehen.
Aufgrund der unterschiedlichen Signalhöhe vermute ich aber schon dass da 
ein Ping/Pong hin und her geht.
Zumindest bei manchen Frames.
Es wird sehr viel unbestätigt wiederholt. Viele Frames kommen in 3er 
Paketen. Wahrscheinlich Sendewiederholungen.
So kommen für ein einfaches Monitor einschalten 21 Frames zusammen 
(siehe Anhang).
Was die Frames aber genau bedeuten ist auch mit den Links von oben 
schwierig.
Zumindest erkenne ich momentan noch keinen wirklichen Zusammenhang.

Hast Du noch irgendwelche Daten zu den Befehlen? Evtl. von deinem F454 
Webserver?

Tom50 schrieb:
> und man kann auch nur die vorgegebenen Befehle nutzen

von Max G. (l0wside) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Knobeln klingt doch gut. Auch wenn die Signale Ähnlichkeit zu KNX 
aufweisen, auf der logischen Schicht ist es definitiv etwas Anderes.

Deine Pakete habe ich mal (ohne Wiederholungen) in Schriftform gebracht:
a8 98 a0 6f a4 f3 a3
a8 a0 a0 6f 06 69 a3
a8 98 a0 6f a0 f7 a3
a8 a0 a0 06 f0 69 a3

a8 b0 a0 6f 98 e7 a3
a8 91 96 69 88 7f a3
a8 b2 a0 6f 88 f5 a3

Wirft man nun Startbyte, Stoppbyte und CRC ("Steuercode") weg, bleibt:
98 a0 6f a4
a0 a0 6f 06
98 a0 6f a0
a0 a0 06 f0

b0 a0 6f 98
91 96 69 88
b2 a0 6f 88

Sieht für mich ein bisschen aus nach:
Befehl - Absender - Empfänger - Parameter

von N. M. (mani)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Max,

der Italiener von den obigen Links hatte ja sowas ähnliches geschrieben 
(Beispielhaft an einem Command):
0xA8 command initiator
0x33 destination: device code (corresponds to the plate inserted on the actuator)
0x00 fixed (source?)
0x12 command request
0x00 switch on command (0x01: switch off command)
0x21 check byte (it is always the result of the Xor operation of the Previous 4 bytes)
0xA3 command terminator
Bei ihm kommen aber zuerst die Adressen, dann das Command.
Wobei ich das auch eher so sehe wie Du. Die Adresse meiner Sprechanalage 
steht auf 6. Passt also eher in das 3. Byte von deinem unteren Block. 
Wobei das dann immernoch ziemlich Springen würde. Gerade im Nibble. 0x6F 
könnte man sich ja noch mit einem Broadcast oder so erklären. 0x06 dann 
die explizite Antwort. Wobei es dann komisch ist dass das Nibble 
getauscht wird.

Meine Vermutung war, dass die letzten 3 Frames aufgrund ihres kleineren 
Pegels von der Türstation zur Wohnung zurück geht. Dann müsste aber 
eigentlich ja Absender und Empfänger tauschen. Machen sie aber nicht 
wirklich.

Beim Ausschalten des Monitors kommt z.B. das hier:
a8 b5 06 60 88 5b a3             valid

Und das hier beim Anfordern des Ton:
a8 b3 06 60 88 5d a3             valid
a8 b4 a0 6f 88 f3 a3             valid


Irgendwie noch nicht ganz durchschaubar das Ganze :-)

von N. M. (mani)


Bewertung
0 lesenswert
nicht lesenswert
Ein Klingeln scheint das hier auszulösen:
a8 b2 a0 6f 88 f5 a3
a8 91 06 60 88 7f a3

von Max G. (l0wside) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich rate ja hier nur zum Spaß mit, andere lösen dafür Sudokus.

Löst jedes Klingeln die gleiche Sequenz aus? Das erste Byte sieht mir 
ein bisschen nach Rolling Counter aus, bin aber unsicher.

von N. M. (mani)


Bewertung
0 lesenswert
nicht lesenswert
Kann ich verstehen. Ich mach das zu 80% auch nur zum Spaß.
Trotzdem sehen mehr Leute oft auch mehr, oder zumindest anders ?

Hmmm das muss ich morgen oder so Mal ausprobieren.
Sind ja immer ein paar Stockwerke ?

Ich habe etwas aufgerüstet. Der Frame vom klingeln oben war über einen 
ESP an meinem MQTT Broker. Die Verkabelung ist immer sehr blöde dran zu 
fuddeln.
Kommt man nicht vernünftig dran und ich habe noch nichts dass ich 
dauerhaft installieren kann.

Leider kommen, wie ich gerade gemerkt habe, nicht alle Frames durch.

von Philippe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

wird noch an diesem Projet gearbeitet ? :)
Bei mir ist auch eine BTicino 2-Draht Gegensprechanlage verbaut. An 
dieser wollte ich eine "Morsecode-Empfänger-Einheit" verbauen die bei 
richteger Eingabe den Türöffner bedient.

Leider sind meine Elektronikkenntnisse begrenzt :( daher hatte ich 
gehofft hier ein paar nützliche Tips zu erhalten. Oszi, Arduinio etc ist 
vohanden :)

Wer könnte/will mir helfen ? :)

Danke
mfG
Philippe

von mani (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Philippe,

ja ich bin noch daran. Allerdings habe ich seit geraumer Zeit zu viel zu 
tun um wirklich weiter zu machen.

Der Leitungscode und die Physik ist so wie auf der italienischen Seite 
beschrieben. Wie gesagt funktioniert die Empfangsstufe von Freebus 
prinzipiell. Es hat noch ein paar Glitches drin die mir nicht so richtig 
gefallen. Macht jetzt erst mal nichts aus, aber wenn es Zuverlässig 
werden soll müssen die in meinen Augen noch weg.

Das Problem ist weiterhin dass es gut wäre zu wissen wie der genaue 
Frameaufbau zu interpretieren ist. Da hängt es momentan dran.
Im Notfall müsste man die Lücke akzeptieren und einfach stumpf den Frame 
senden. Es sei denn es wäre wirklich ein Rolling-Code wie oben von Max 
G. geschrieben. War nur eine Idee von ihm, könnte aber natürlich sein. 
Muss man mal noch checken...

Meine Anwendungsfall war, dass ich meine Festnetznummer verwende zum 
öffnen der Türe.
Also jedesmal wenn meine Handynummer daheim anruft, wird das Event an 
OpenHab weitergeleitet, der dann über MQTT den ESP triggert dass er die 
Hauseingangstüre öffnen soll. Da ich das Festnetztelefon nicht 
verwende...kein Problem da ich dann nur anrufe wenn ich die Türe öffnen 
möchte.

Bei deiner Idee gibt es noch ein paar Dinge die du klären musst:

Werden überhaupt alle Tastendrücke weitergeleitet, oder lässt das 
Klingel nur x Tastendrücke innerhalb einer gewissen Zeit zu? Hab schön 
gehört dass da eine Art "Klingelstreich-Schutz" drin ist.
Wenn das der Fall wäre, dann wird das nichts mit Morsen.
Oder man müsste es so weit verlangsamen bis alle Events durchkommen.

Ist die Latenz zwischen Tastendruck und Weiterleitung über das Protokoll 
immer die selbe? Wenn nicht wird das auch eher eine langsame 
Geschichte...

Grüße
mani

von Schartz P. (schartz_p)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Mani,

vielen Dank für deine schnelle ausführliche Rückmeldung.

Mit der Aussage "Im Notfall müsste man die Lücke akzeptieren und einfach 
stumpf den Frame senden", hätte ich kein Problem :)

Das mit dem "Klingelstreich-Schutz" klingt einleuchtend .. daher müsste 
ich einmal das ganze ausprobieren und per Oszi auslesen lassen.

Ansonsten wäre es eine Möglichkeit, zB nach 3x Klingeln und dabei 
jedesmal abwarten bis das Event komplett abgearbeitet wurde, die Tür zu 
öffnen. Würde etwas länger dauern aber funktionnieren.

Benutzt du eine externe Stromquelle oder greifst du die 27V vom Bus ab ?
Wie sieht es mit der Materialliste bzw. Materialkosten aus ?
Wäre deine Schaltung übertragbar auf meinen Anwendungsnutzen ?

Vielen Dank
Philippe

: Bearbeitet durch User
von mani (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Philippe,

Schartz P. schrieb:
> Mit der Aussage "Im Notfall müsste man die Lücke akzeptieren und einfach
> stumpf den Frame senden", hätte ich kein Problem :)

Mich hätten auch die anderen Dienste/Infos interessiert die da teilweise 
drüber gehen. Das Video wäre auch noch interessant, wobei das 
wahrscheinlich irgendwie analog aufmoduliert ist. Bei 9600 Baud hätte 
man sonst ein ziemliches Ruckeln :-)

Schartz P. schrieb:
> Ansonsten wäre es eine Möglichkeit, zB nach 3x Klingeln und dabei
> jedesmal abwarten bis das Event komplett abgearbeitet wurde, die Tür zu
> öffnen. Würde etwas länger dauern aber funktionnieren.

Wenn es kein Problem ist dass bei jedem der 3x auf die Klingel drückt 
die Türe geöffnet wird natürlich kein Problem.

Schartz P. schrieb:
> Benutzt du eine externe Stromquelle oder greifst du die 27V vom Bus ab ?

Ich nehme die Spannung vom Bus. Momentan hab ich ein kleines 
Schaltreglermodul drauf von Recom.

Schartz P. schrieb:
> Wie sieht es mit der Materialliste bzw. Materialkosten aus ?

So weit bin ich bei weitem noch nicht. Aber letzten Endes brauchst Du 
einen kleinen Buck-Regeler der 3,3V aus den 27V macht. Bischen Luft nach 
oben ist nie verkehrt. Der Recom von oben hat glaub ich 42V max IN.
Dann dein Controller (bei mir ist es ein ESP32 wegen WLAN/MQTT).
Dann noch die Empfangsstufe von Freebus. Das SMD Equivalent zum BC557 
ist glaub ich der BC857.
Sendestufe habe ich noch nicht ausprobiert, geht aber vielleicht auch 
die von Freebus denke ich.

Grüße
mani

von Schartz P. (schartz_p)


Bewertung
0 lesenswert
nicht lesenswert
Hallo mani,

vielen Dank für deine Rückmeldung und die Infos.

Nach langen Überlegungen hab ich mich doch für eine "fertige" Lösung von 
Nuki entschieden welche auch mit dem BTicino SCS Bus funktionniert und 
mir auch die gewünschten Optionen/Aktionen bietet.

Jedoch wäre ich immer noch an deiner Lösung als Backup interessiert und 
werde weiterhin diesen Thread verfolgen.

Danke
Mit freundlichen Grüssen
Philippe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.