Forum: Haus & Smart Home Dali - Treppenhausbeleuchtung


von grundschüler (Gast)


Lesenswert?

stand der Technik bei Treppenhausbeleuchtung ist geklärt: Dali.

hier gabs infos zu Dali:
Beitrag "DALI Interface für AVR und PIC"
Beitrag "DALI Bus für Dummies"


Ziel ist jetzt erstmal per Dali eine Leuchtstoffröhre zu schalten. 
Gekauft habe ich Dali-Vorschaltgeräte. Verlegt wird 5xNym davon 2 
Leitungen für Dali, 3 für den Netzstrom. Da die Vorschaltgeräte per Dali 
funktionieren, möchte ich diesen bus übernehmen und daran meine 
Steuerung hängen.

Bei der Suche nach fertigen Bausteinen bin ich bei led-warrior gelandet. 
Konzept bis jetzt:

24V-Trafo => Strombegrenzung/warrior-11 => warrior-14/2 als Knoten und 
Stromversorgung. Daran ein m328-nano der Befehle auswertet und als 
Master per i2c Anweisungen auf den Bus weitergibt.

Hat jemand ähnliches mit warrior schon gemacht? Für tips und Anregungen 
bin ich wie immer dankbar.

von chris (Gast)


Lesenswert?

oder Eltako Baureihe 14

FAM 14     Grundmodul
FDG 14     Dali-Gateway
FTS 14 EM  Anschluß bis zu 10 Taster

von Karl K. (leluno)


Lesenswert?

chris schrieb:
> oder Eltako Baureihe 14
>
> FAM 14     Grundmodul
> FDG 14     Dali-Gateway
> FTS 14 EM  Anschluß bis zu 10 Taster



85,00€
77,00€
45,00€

Eine Frage der Kosten.

Ich brauche ca. 50m  Leitung, ca. 15 Taster, ca. 10 Pir, ca. 10 Leuchten 
und eine sinnvolle Steuerung des Ganzen.

Zur Zeit habe ich einen m328 an einem LED-Warrior 14-2 Modul, der mir 
eine Leuchtstofflampe schaltet.das Modul - 
http://shop.codemercs.com/de/led-warrior14-02-modul - kostet 22€ unhd 
hat5 den Vorteil, dass ich die Steuerung per i2c relativ einfach selbst 
machen kann.

Eltako verwendet den RS485-Bus. Das ist was anderes als der normale 24V 
basierte Dali-Bus? Wo sind die Vorteile?

von TestX (Gast)


Lesenswert?

eltako ist fix und fertig. ohne arbeitszeit einsatzbereit und das 
wirklich günstig.

dali und rs485 sind etwas komplett anderes. du baust das eltako system 
an einem zentralen standort auf und von da per dali an die leuchten. 
fertig.

von Karl K. (leluno)


Lesenswert?

TestX schrieb:
> eltako ist fix und fertig.

ich will, dass das System das Betreten eines Flurbereiches erfasst, die 
Bewegungsrichtung feststellt und dann die angrenzenden Bereiche - je 
nach Bewegungsrichtung - ausleuchtet. Kann Eltako das?

Dali ist im Prinzip Onewire: Zwei Leitungen Gnd + 16V. D.h. ein 5x1,6 
Nym Kabel reicht für die Installation - 3Leitungen für den 
240V-Anschluss, 2Leitungen für 5V Stromversorgung und Datenübertragung. 
Wie ist das bei Eltako?

: Bearbeitet durch User
von grundschüler (Gast)


Lesenswert?

kann jetzt per ir/m328/warrior14 eine Leuchtstoffröhre von 20 bis 80 
watt dimmen.

Hat jemand eine Softwareempfehlung für die Übertragung von z.B. 
Kurzadressen in den Dali-slave?

von someone (Gast)


Lesenswert?

DALI ist sehr cool, aber leidet mal wieder leider darunter, dass die 
beteiligten Parteien den Hals nicht voll genug bekommen können und es 
daher nahezu unmöglich ist, vernünftig in Eigenregie DALI-Geräte mit 
vielen Features zu bauen. Die Sachen sind alle standardisiert und über 
viele Dokumente verteilt, die ihrerseits jeweils wieder eine Menge Geld 
kosten.
DALI-Sensoren besitze ich nicht, weil mir das 
Protokoll-Reverse-Engineering zu blöd ist. Ich bin mir nichtmal sicher, 
ob der LED-Warrior Sensoren erfassen kann, da diese sehr lange 
Nachrichten senden sollten. Der LED-Warrior kann aber zumindest 
Nachrichten auf den DALI-Bus schicken.

Die DALI-Norm ist mittlerweile IEC 62386. Früher war DALI als Anhang in 
der Norm zu Leuchtstofflampen-Vorschaltgeräten beschrieben, das ist dann 
IEC 60929.


Jedenfalls sind die grundlegenden Dinge (Adress-Suche/Zuweisung, 
Gruppen, Geschwindigkeiten, Helligkeitssteuerung, ...) bereits in den 
frühen Versionen der Normen beschrieben. Das kann man dann einfach 
relativ straight-forward implementieren. Ich habe jetzt keine 
Implementierung für den AVR, mir aber mal eine für den Raspberry Pi mit 
dem LED-Warrior geschrieben und das ist halt wirklich aus den 
entsprechenden Unterlagen, die man dafür erhält, nachimplementiert. Das 
kriegst Du sicher auch hin. Wenn du noch Fragen hast, melde dich 
einfach.
Lästig an DALI ist die Spannungsversorgung. Die Spannung sollte eine 
gewisse Höhe haben und dauerhaft kurzschlussfest sein, da die 
Kommunikation über Zusammenschalten der Leitungen stattfindet. Außerdem 
müssen die Optokoppler in den Vorschaltgeräten versorgt werden. Es lohnt 
sich also, eine Stromquelle zu bauen, die ein paar Milliampere liefern 
kann und nicht ewig braucht, um den Strom zu regeln. Es gibt eine 
Application Note von Microchip (AN1465), die verschiedene 
DALI-Schaltungen beschreibt.

von grundschüler (Gast)


Lesenswert?

someone schrieb:
>


Vielen Dank für deinen Beitrag. Habe jetzt die DIN runtergeladen. 
Auszug:

Command 128: YAAA AAA1 1000 0000 "STORE DTR AS SHORT ADDRESS"
Save the value in the DTR as new short address.


Es gibt ein DTR- Data Transfer Register. Vermutlich 2Byte. Wo liegt das? 
Dali-Registerübersicht?  Wie beschreibe ich das?

Habe das gefunden:
Beitrag "Re: Dali Kurzadresse vergeben":

Siehe Shortadressen Format: 0AAAAAAS (AAAAAA = 0 - 63, S = 0/1)

Beispiel!

gewünschte Adresse: 2

Adr = 2;
Adr = Adr << 1;
Adr = Adr & 0b01111110;
Adr = Adr | 0b00000001;

Snd_Dal(0xA3,Adr,SP_COM);   DELAY_ms(20)            //DTR direkt mit
Adresse beschreiben

Snd_Dal(0,128,BR_ADR);   //Inhalt DTR als Shortadresse
DELAY_ms(20)               //
Snd_Dal(0,128,BR_ADR);
DELAY_ms(20)

von someone (Gast)


Lesenswert?

Also, du musst eine DALI-Adress-Suche/Zuweisung durchführen.
Hierfür schickst du zuerst ein Paket über den Bus, das die Geräte 
anweist, dass nun eine Adress-Suche kommt. Bis diese abgeschlossen ist, 
dürfen keine Steuerkommandos kommen, sonst wird sie abgebrochen. Danach 
sollen sich die Geräte eine zufällige 24-bit "Hardware-Adresse" 
generieren. Danach schickst du 24-bit-Adressen auf den Bus und schaust, 
ob jemand antwortet. Die Antwort kommt, wenn die zufällige 
Hardware-Adresse kleiner oder gleich der gesendeten Adresse ist. Damit 
führst du jetzt eine binäre Suche durch, bis du die genaue kleinste 
Hardware-Adresse gefunden hast. Diesem Gerät kannst du nun eine Short 
Address zuweisen und ihm dann sagen, dass es weitere Suchanfragen 
ignorieren soll. Das machst du so lange, bis keine Geräte mehr auf die 
Suchanfrage mit der höchsten Adresse antworten, dann kannst du ein 
Kommando zum Beenden der Suche senden und die Geräte gehen in den 
normalen Betriebsmodus.

Kommandos, die du brauchst:

0xA500 Suche starten, alle reagieren
0xA5FF Suche starten, nur Geräte ohne Short Address reagieren
0xA700 Zufällige 24-bit-Adresse erzeugen
0xA900 Vergleichen
0xAB00 Teilnehmer von Suche entfernen
0xA100 Terminate, Suche beenden

0xB1## High-byte (##) der Suchadresse
0xB3## Mid-byte (##) der Suchadresse
0xB5## Low-Byte (##) der Suchadresse

0xB7## Short Address programmieren (## = 0aaa aaa1, a = adresse)
0xB9## Short Address überprüfen (## = 0aaa aaa1, a = adresse)

Wie läuft das ab?
Terminate, Suche starten, Zufällige Adressen erzeugen,
Binäre Suche:
0xFFFFFF als Start-Suchadresse festlegen.
Vergleichen -> Wenn Status-Register des LW14 zeigt, dass etwas empfangen 
wurde, aber kein Frame Error vorliegt, dann gibt es ein Gerät, dessen 
Adresse <= der Suchadresse ist. Ansonsten nicht. Entsprechend die 
Adresse der binären Suche anpassen. Achtung: Der Bus braucht eine Weile, 
Timeout vorsehen. Du erhältst nur eine Nachricht, wenn es etwas gibt. 
Wenn es nichts gibt, musst du dich auf den Timeout verlassen. 
Informationen zum DALI-Timing entnimmst du der einschlägigen Literatur, 
da steht drin, wie lange sich die Geräte Zeit lassen dürfen.
Wenn du dann die binäre Suche abgeschlossen hast und genau die 
niedrigste Adresse kennst: Short Address programmieren, Short Address 
überprüfen (erwartete Antwort: 0xFF), Teilnehmer von Suche entfernen.
Die binäre Suche so lange wiederholen, bis sich kein Teilnehmer mehr bei 
0xFFFFFF meldet. Dann haben alle Teilnehmer eine Short address. Dann 
Terminate.

Es ist etwas Implementierungsarbeit, aber letztendlich nicht so schwer.

von grundschüler (Gast)


Lesenswert?

Adressierung geht jetzt über tridonic-usb-modul. Senden und empfangen 
geht über Arduino-m328. Problem is jetzt der Stromverbrauch. Der 
Dali-bus liefert 200 mA/16V. Der AvR zieht davon - mit Umsetzung auf 5V 
ca. 50mA. Im Prinzip brauche ich ca. 10 Taster/Sensoren, die jeweils 
über AVR eingebunden werden sollen. Wie macht man das am Sinnvollsten? 
Zusätzliches Kabel zur Stromversorgung? Jeder AVR ein eigenes Netzteil?

von Guido Körber (Gast)


Lesenswert?

Wofür braucht denn der AVR so viel Strom? Der sollte doch nicht viel zu 
tun haben.

Wenn der Strom über den DALI nicht reicht, dann ist eine separate 
Versorgung notwendig. Dann aber den LW14-01MOD verwenden, der ist 
galvanisch getrennt vom Bus, was bei Eigenversorgung der Knoten 
notwendig ist.

von grundschüler (Gast)


Lesenswert?

Guido Körber schrieb:
> Wofür braucht denn der AVR so viel Strom?

Danke für die Antwort. 20mA braucht der warrior 14-2. Daran hängt der 
Arduino Nano mit 20 mA. Ich habe den Cyc stillgelegt und sende und 
empfange direkt über die Optokoppler per avr.

Wie gehts jetzt am einfachsten weiter? Wie macht man im Warrior-System 
Taster? Kann man den cyc umprogrammieren? statt sda/scl Tastereingänge, 
die dann 2byte an eine Zentrale senden? Cyc ablöten und durch avr 
ersetzen?

Was ist als zentrale Schalteinheit gedacht? Selbermachen oder gibt es 
was brauchbares bezahlbares fertig?

Wie mach ich die Niedervolt Stromversorgung? zusätzliches 3x nym Kabel 
oder besser ethernet-Datenkabel?

von Guido Körber (Gast)


Lesenswert?

Was ist ein "cyc"?

Der LW09 kann direkt als Interface für Tasten verwendet werden.

Zentrale Einheiten für DALI gibt es nur als sehr teure 
Hausbus-Zentralen.

Niedervolt-Stromversorgungen auf jeden Fall nicht über lange Strecken. 
Wie man das auslegt hängt von den örtlichen Gegebenheiten ab.

von grundschüler (Gast)


Lesenswert?

Guido Körber schrieb:
> Was ist ein "cyc"?

pardon - cybc241/cypress

Guido Körber schrieb:
> LW09

Das wäre dann der lw09-2. Wieviele davon können über den dali-bus 
versorgt werden? Normalen Taster + Bewegungsmelder an sw0/1 anschließen?

Der Dali-bus ist ja auf 200mA Kurzschlussstrom begrenzt. Kann man die 
Leistung irgendwie erhöhen?

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

ein kleines Dali-Netzwerk auf Basis von LED-Warrior: mcu von 
warrior-board ablöten und sorgfältig wegschmeißen. Dann tiny85 als 
Taster und m328 als Dali-Zentrale anlöten.

Der tiny kann dann einfachst frei mit 8bit-adr + 8bit-cmd programmiert 
werden, die bei Tastendruck an die Dali-Zentrale gesendet und dort 
ausgewertet werden.

Problem ist der Stromverbrauch der warrior-Schaltung. Dieser ist mit 
30mA viel zu hoch. Statt des Schaltreglers möchte ich einen 
Spannungsteiler, der einen Kondensator mit 5V lädt und dann den tiny 
versorgt. Kann das funktionieren?

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

klappt besser als erwartet. mit Spannungsteiler 7mA. Den Spannungsteiler 
habe ich inzwischen durch ein Arduino-pir-Modul mit Schaltregler 
ersetzt. Damit liegt der Ruhestrom bei ca. 3mA. D.h., es können 
ausreichend Taster mit parasitärer Stromversorgung angeschlossen werden.

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.