DMX über FHEM (ich weiß, schon wieder) - Entwickler gesucht!

Begonnen von Revenant, 07 April 2017, 17:10:38

Vorheriges Thema - Nächstes Thema

Revenant

Hallo,

ich war gestern auf der Pro Light+Sound Messe in Frankfurt.
Dort habe ich mal wieder gesehen wie viele DMX-fähige LED Strahler, Leisten und Streifen es mittlerweile gibt. Diese werden immer kleiner, leistungsfähiger und billiger.
Durch die immer weiter verbreitete W-DMX Technik wundert es mich regelrecht das es immernoch kein richtiges Modul dafür in FHEM geschafft hat.

Andere Lösungen wie Milight und Wifi-Light und wie sie alle heißen gibt es wie Sand am Meer. Was bei diesen Modulen aber nie richtig funktioniert ist das kontinuierliche Dimmen bzw. langsame Faden von Farben (bzw. den Werten).
Nun komme ich selbst aus der Veranstaltungsbranche und kenne daher die unzähligen Möglichkeiten die man mit recht einfachen Mitteln über DMX gesteuerte Geräte hat.
Das fängt damit an, das viele Geräte (oder Controller die dann mehrere angeschlossene LED-Streifen steuern) bereits sehr schöne und editierbare Programme für das Dimmen und Faden integriert haben. Diese Programme müssen teilweise nur über bestimmte DMX Werte auf 1-2 Kanälen angewählt werden. Das heißt es sind keine dauernden Änderungen der DMX Werte von FHEM aus nötig.

Generell bin ich mit der bisherigen Lösung von bspw. Milight recht zufrieden. Das dauerhafte Ändern von Farben ist nicht zwingend nötig, ABER:
Über DMX könnte man, da es kabelgebunden ist, deutlich sichere Ansteuerungen garantieren (Milight reagiert manchmal nur zögerlich oder gar nicht).
Außerdem ließen sich über DMX ganz einfach sehr schöne Abläufe (Fachsprache: Chaser) aus einzelnen Standbildern (Fachsprache: Szenen) bauen.
Bsp: Ein Treppenlauflicht von unten nach oben, oder oben nach unten, das langsame an-faden von mehreren im Hausgang installierten LED-Strahlern entlang des Hausganges, oder das schnelle Blinken der Ambientebeleuchtung hinter dem TV als Notification etc.

Ich denke es muss möglich sein für ein gut verfügbares USB-to-DMX Interface einen Treiber für Linux zu schreiben und ein Modul für LED Scheinwerfer das es bereits für FHEM gibt anzupassen.
Ich würde ungern den Weg über Artnet wählen, da solche Geräte gleich deutlich teurer sind und eine einfache 3-adrige DMX Leitung, die als Daisy-Chain vom Sender zu den angeschlossenen Geräten gelegt wird würde ich der W-DMX Variante vorziehen. Auch hier sind die Geräte wieder sehr teuer.

Es ist leider so, dass ich selbst überhaupt keine Ahnung vom Programmieren habe, aber ich kenne mich sehr gut mit DMX, den dafür verwendeten Scheinwerfern und Geräten sowie einem Teil der verfügbaren USB-to-DMX Interfaces aus.
Von letzterem gibt es unzählige für kleines Geld. Die meisten leider nur mit Windows Software aber die Erstellung von Szenen und Chasern erfolgt immer nach dem gleichen Prinzip.

Ich wäre gerne bereit einen willigen Programmierer mit meinem Fachwissen zur Seite zu stehen und ihm die nötiger Hardware zu Testzwecken zur Verfügung zu stellen.
Da ich selbst Händler für Veranstaltungstechnik bin kann ich auch gerne Bezugsquellen für kompatible Hardware nennen sollte das Modul später laufen und Interesse anderen bestehen.

Ich hoffe ich konnte das Thema DMX etwas schmackhaft machen, denn ich glaube wirklich das die Möglichkeiten deutlich höher sind als bspw. über Milight aber der Preis und der Aufwand geringer sind als bspw. bei KNX und die schöne Optik einiger LED-Scheinwerfer ist auch ein gutes Argument.
Vielleicht meldet sich ja wirklich jemand und wir alle können das Thema etwas voran bringen und positiv abschließen.
Oder ein bereits existierendes Modul wird hierdurch wieder zu neuem Leben erweckt.

Ich freue mich auf eine Diskussion zu dem Thema.

der-Lolo

ich häng mich hier mal zum mitlesen an...
DMX kommt bei mir aus einer seriellen schnittstelle einer wago sps und steuert 24V dimmer.

philipptrenz

Hi!

Für ein Projekt versuche ich auch gerade, DMX-Geräte an FHEM anzubinden. Dafür versuche ich ein thirdparty Modul wiederzubeleben / zu optimieren.
Ich habe ein ArtNet Node von Ulrich Radig (bin mir nicht sicher ob ich verlinken darf, aber Google findet das), das mit etwas Lötgeschick eine günstige und stabile Lösung ergibt.
Und in diesem Thread rufe ich gerade um Hilfe, um ein paar Fehler in dem Modul zu fixen: https://forum.fhem.de/index.php/topic,72182.0.html

Das Modul läuft soweit, hat aber noch einige Macken ;)

Grüße!

Lightmaster

kann mich dem Vorredner nur anschließen. Es gibt die tollsten Geräte für DMX für kleines Geld und in FHEM gibt es keine vernünftige Lösung. Das ist extrem traurig ! Ich kann zwar gut programmieren und habe zahlreiche DMX Applikation auf Atmel Prozessoren incl. Hardware erstellt, kann aber leider diese für mich schreckliche Programmiersprache PERL nicht.

Es gibt sehr viele Anwender, die sich DMX in FHEM wünschen. Vielleicht können wir etwas Geld sammeln und dann einen PERL Programmierer bezahlen, ich wäre jedenfalss dabei !

FHEM-User22

Zitat von: Lightmaster am 02 November 2017, 23:53:54
Es gibt sehr viele Anwender, die sich DMX in FHEM wünschen. Vielleicht können wir etwas Geld sammeln und dann einen PERL Programmierer bezahlen, ich wäre jedenfalss dabei !


Ich schliesse mich dem an. Ich möchte FHEM auch etwas zurückgeben.

Liebe Grüße
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Frank_Huber

Ich wäre hier auch interessiert, kann mich gerne als Tester anbieten!

Thorsten Pferdekaemper

Hi,
aaaalso: Wenn mich jemand dafür ordentlich bezahlt, dann fange ich gleich damit an...  :P

Blöderweise habe ich gerade eine ganze Menge anderer Projekte am Bein (naja, am Bein hängen tut mindestens ein Projektling des Öfteren...), so dass ich nichts versprechen kann oder will. Auf der anderen Seite ist eins meiner Projekte der neue Wintergarten, der noch einer originellen Beleuchtungs-Idee harrt. Da bin ich jetzt bei einem LED-Panel-Hersteller über mögliche Schnittstellen gestoßen und eine davon war sogar DMX. Es war sogar die günstigste Variante. Also auf jeden Fall interessant.
Innerhalb der Stunde, die ich mich jetzt damit befasst habe, habe ich herausgefunden, dass das ganze per RS-485 mit 250kBaud läuft.
Allerdings habe ich nicht gefunden, wie der Aufbau des Protolls aussieht, also welches Byte was bedeutet. ...oder muss man das nicht wissen?
Außerdem gibt es ein DMX für Linux: https://opendmx.net/index.php/DMX_4_Linux bzw. https://www.openlighting.org/. Dort wird behauptet...
Zitat
It supports all the major DMX-over-Ethernet protocols including ArtNet and Streaming ACN, and over 20 different USB DMX dongles.
Zumindest sagt mir das, dass das ganze Zeugs irgendwie öffentlich bekannt ist. Das ist schonmal schön.

Es gibt anscheinend Leute, die DMX über einen Arduino Uno betreiben. Das kann also nicht sooo komplex sein. Zur Not müsste man halt einen Arduino mit der FHEM-Hardware verkuppeln, aber vielleicht gibt es da noch andere Ideen.

Könnte mir jemand sagen, wie man schnell ein kleines DMX-System aufbaut? Es darf ruhig was kosten, nur viel Zeit habe ich nicht. Außerdem wäre ein Link zu einer Dokumentation für das Protokoll (also was die einzelnen Bytes bedeuten) interessant.

Gruß,
   Thorsten
FUIP

ComputerZOO

#7
Moin,
also, das DMX Protokoll ist sehr einfach, es werden ,,nur" 512 Byte (mit Pausen und Stopbits) seriell übertragen. Danach erfolgt ein sogenannter ,,Break" und das ganze wiederholt sich.
Was hier allerdings interessanter wäre ist das ArtNet-Protokoll, welches per UDP übertragen wird und von einem ArtNet-Node in ein DMX-Signal umgewandelt wird. Das DMX-Signal kann dann mit einem AVR/Arduino weiter verarbeitet werden, oder direkt DMX-Geräte wie Scheinwerfer, Dimmer, Laser, Nebelmaschinen etc. ansteuern.

Eine weitere Möglichkeit:
Es gibt im ESPEasy-Developer-Strang ein Plugin, welches aus dem ESP über einen RS485-Wandler ein DMX-Signal ausgibt. Über das bereits vorhandene ESPEasy-Plugin für FHEM könnten diese Daten schon jetzt im RAW-Format übergeben werden. Diese Version habe ich aber NOCH nicht getestet.

Thorsten Pferdekaemper

Hi,
im Eröffnungsbeitrag steht das hier:
Zitat
Ich würde ungern den Weg über Artnet wählen, da solche Geräte gleich deutlich teurer sind und eine einfache 3-adrige DMX Leitung, die als Daisy-Chain vom Sender zu den angeschlossenen Geräten gelegt wird würde ich der W-DMX Variante vorziehen. Auch hier sind die Geräte wieder sehr teuer.
Das klingt eher nicht nach ArtNet, wobei ich auch nicht so ganz verstehe, warum. Es geht dabei eigentlich nur um ein Gateway LAN -> DMX, oder?

Zitat von: ComputerZOO am 18 November 2017, 00:50:21also, das DMX Protokoll ist sehr einfach, es werden ,,nur" 512 Byte (mit Pausen und Stopbits) seriell übertragen. Danach erfolgt ein sogenannter ,,Break" und das ganze wiederholt sich.
Ja, das hatte ich schon gelesen, mich aber stark gewundert, wie die Addressierung funktioniert und welche Befehle es gibt. Was ich jetzt kapiert habe ist in etwa folgendes:

  • DMX(512) sendet pausenlos immer wieder diese 512 Bytes.
  • Jedes Gerät "weiß" (über Dip-Switches oder komfortabler), welchen Teil dieser 512 Bytes es sich herauspicken muss.
  • Befehle gibt es in dem Sinn nicht. Was ein Byte bedeutet weiß eigentlich nur das angeschlossene Gerät selbst. Meistens ist es ein Helligkeitswert.
Als Beispiel: In einem "DMX-Universe", also den 512 Byte könnte man 128 RGB-W-Steuerungen unterbringen. Die erste würde Byte 0 bis 3 benutzen, die zweite 4 bis 7 usw.

ZitatWas hier allerdings interessanter wäre ist das ArtNet-Protokoll, welches per UDP übertragen wird und von einem ArtNet-Node in ein DMX-Signal umgewandelt wird. Das DMX-Signal kann dann mit einem AVR/Arduino weiter verarbeitet werden, oder direkt DMX-Geräte wie Scheinwerfer, Dimmer, Laser, Nebelmaschinen etc. ansteuern.
Das klingt erst einmal interessant, aber wenn ich mir das hier anschaue: https://www.artisticlicence.com/WebSiteMaster/User%20Guides/art-net.pdf
...das ist das ganze wesentlich komplizierter. Ich habe mir das nicht im Einzelnen durchgelesen, aber das erscheint mir schon ein bisschen viel.

ZitatEine weitere Möglichkeit:
Es gibt im ESPEasy-Developer-Strang ein Plugin, welches aus dem ESP über einen RS485-Wandler ein DMX-Signal ausgibt.
Nein, basteln will ich nicht. Ich will im Prinzip ein Gerät kaufen, das auf der einen Seite USB, Netzwerk oder so hat und auf der anderen Seite DMX. Wenn es einen einfachen Weg für einen Arduino Uno gibt, dann ist das auch ok.

Ich denke, dass wir uns erst einmal darüber einigen sollten, was denn eine "Basis"-Architektur für das ganze ist. Wenn man z.B. ein passives Gateway nimmt, dann dürfte z.B. ein RasPi die ganze Zeit damit beschäftigt sein, den DMX-Datenstrom aufrecht zu erhalten. Ein aktives Gateway kostet entsprechend und hat ggf. ein proprietäres Protokoll (oder?). Möglicherweise wären wir da wieder bei ArtNet als Gateway.
Vielleicht hat da ja jemand Erfahrungen anzubieten.

Wenn ich jetzt mal von der Struktur des DMX-Protokolls ausgehe, soweit ich das verstanden habe, könnte man das in FHEM so abbilden (angenommen das man ein Gateway hat, das über eine serielle/Netzwerk- Adresse ein "Universe" angesprochen wird):

  • Ein IO-Device, in etwa "DMX_LAN", welches der Schnittstelle bzw. der Netzwerkadresse zugeordnet ist.
  • Ein eigentliches Device, in etwa "DMX", welches "sein" DMX_LAN sowie sein Startbyte und die Anzahl Bytes kennt. Für jedes einzelne Byte gibt es dann ein "set" bzw. ein Reading.
Ich habe nicht den Eindruck, dass eine weitergehende Gerätebeschreibung Teil des DMX-Protokolls ist. D.h. FHEM kann zumindest nicht automatisch wissen, was die einzelnen Bytes bedeuten. (Oder?) Wenn man das will (also z.B. statt "set ... byte1 ..." sagen will "set ... dimRed ...", dann müsste man das noch dazubauen.

Gruß,
   Thorsten

FUIP

der-Lolo

Es gibt schon den Panstamp - der kann dank justme glaube ich bereits DMX.
In meinem Fall ist es so das die Wago SPS über eine serielle Schnittstelle verfügt welche das DMX Protokoll sendet.
Für RGBW würdest Du 4 Kanäle brauchen. Ich glaube das einfachste wäre über einen RS232 - 485 Adapter die Bus Signale zu senden.

http://www.instructables.com/id/Raspberry-Pi-as-a-DMX-light-controller/ ???

Thorsten Pferdekaemper

Hi,
ich habe mich mal ein bisschen mit dem Coding hinter
http://www.instructables.com/id/Raspberry-Pi-as-a-DMX-light-controller/ befasst. Das ist im Prinzip ein Daemon, der fast pausenlos DMX-Daten über USB rausschreibt. Allerdings sieht mir das so aus, als ob das nur für die dort verwendete Hardware funktioniert, da soweit ich das sehe nicht-Standard Startcodes verwendet werden.
Ich frage mich, warum man überhaupt so ein Teil (also das Interface) braucht, wenn man sowieso einen Daemon braucht, der das Senden erledigt. Kann man dann nicht einfach so ein Teil nehmen: https://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3/index.html?ARTICLE=122187 ?
...oder übersehe ich da was?

Jetzt noch eine ganz andere Frage: Was würdet Ihr denn von einem FHEM-Modul erwarten? Ich meine jetzt nicht die Kompatibilität zu irgend einem Interface, sondern auf der Benutzerseite.

Gruß,
   Thorsten
FUIP

der-Lolo

Daniel ( ext23 ) hat glaube ich tiefgehendes knowHow über DMX - mir hat er mal erklärt das immer nur ein Sender im Universum sein darf, da das in meinem fall die Wago übernimmt habe ich mich nicht weiter um eine FHEM anbindung gekümmert.
Ich sende zur Zeit ein Byte per ModbusTCP an die Wago, diese wiederum sendet das Byte auf den DMX Bus. Die Wago kann dieses Byte ihrerseits aber auch beeinflussen ( Dimmer per Taster ) fhem erhält dann veränderte Werte über ModbusTCP. Für mich ist das perfekt so, verzögerungen sind nicht vorhanden - das ganze ist sehr perfomant...

Thorsten Pferdekaemper

Hi,
was ist damit:
https://github.com/fdemmer/fhem-artdmx ?
Das sieht auf den ersten Blick doch ganz gut aus, oder?
Gruß,
   Thorsten
FUIP

Klaus0815

Habe gerade zufällig den alten Thread gefunden - weiss nicht ob ihr noch am suchen / basteln seid, aber kleiner Tip, das gute alte Ethersex läuft bei mir seid Jahren problemlos als Ansteuerung für einen China-DMX-LED-Controller

http://old.ethersex.de/index.php/DMX

holzwurm83

Hallo Thorsten,

hast du in der Angelegenheit bereits weiter gearbeitet, oder ist das Thema im Sande verlaufen? Habe einen LED-Kontroller den ich entweder über DMX oder RS485 ansteuern muss/kann.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN