Hallo Arne,
tiptop! So läuft's! Danke dir!
VG, Martin
Hallo Arne,
tiptop! So läuft's! Danke dir!
VG, Martin
Hallo,
seit ca. 3/4 Jahr lief DMXC3 bei mir stabil. Seit ca. 3 Tagen habe ich ein seltsames Problem: Beim Starten öffnet sich das Konsolen-Fenster des Kernels x mal ... immer im Abstand von ca. 3 Sekunden. Nach einiger Zeit erscheint in jedem dieser Fenster die Info, dass der Kernel bereits liefe.
Ich habe die Vermutung, dass irgendetwas den Rechner so ausbremst, dass das Programm der Startroutine nicht rechtzeitig eine "Kernel geladen = ok" Rückmeldung bekommt und dann das Laden erneut versucht.
Zeitlich in Zusammenhang mit diesem Problem steht, dass aktuell der DSL Anschluss streikt. Könnte das eine auch kausal mit dem anderen zu tun haben?
Hat jemand eine Idee? Sonst würde ich nolens volens einfach drüberinstallieren ...
VG, Martin
Hallo soekkle,
vielen Dank für die Rückmeldung! Meine Überlegung war, dass die über die GUI eingegebene Konfiguration des MIDI plugins ja auch irgendwo abgespeichtert liegt. Entscheidend wäre gewesen, wer diese läd - Kernel oder GUI.
Besteht hier im Forum auch bei anderen ein Interesse an einem kleinen "loadProjectXYZatStartup"-Plugin für die GUI?
Oder kann ich - ohne dass es Probleme beim timing gibt - in einer batch-Datei zunächst den Kernel mit dem Projekt als Parameter laden und die GUI gleich hinterher?
Moin moin zusammen,
vielleicht kann mir jemand weiterhelfen: Braucht das midi Plugin zwingend die offene GUI? Ich frage deshalb, weil man ja über eine Batch-Datei ein Projekt in den Kernel laden kann (z.B. als autostart) und dann über ein Midi-Pult quasi "blind" arbeiten könnte.
LG, Martin
Hallo Martin,
zunächst einmal 1000 Dank für deine ganze Arbeit! Ich habe hier ein eigenes Projekt, bei dem ich über einen mqtt->Arduino->Midi eine Browserbasierte Steuerung für meine DMX-Geräte gebaut habe. Die Sache läuft aktuell unter DMXC2. Jetzt möchte ich aber auf DMXC3 umsteigen und ich scheitere an einem einzigen Schritt:
Wenn ich unter "Input Assignment" eine Rule aus einem Midi RuleSet auf einen Executor/Go legen möchte, crashed die GUI (siehe Log-File im Anhang). Mehrfache Neuinstallation hat leider keinen Erfolg gebracht.
[UPDATE1:] Ich verwende DMXC v. 3.0.2.1
[UPDATE2:] Das Assignment einer Rule an das GO einer Cuelist funktioniert einwandfrei ...
VG, (auch) Martin
Moin moin,
nachdem ich jetzt längere Zeit mit anderen Aspekten des Projekts beschäftigt war, bin ich jetzt wieder beim Thema DMX angekommen. Die von mir ursprünglich propagierte Idee, einen Server zu programmieren, der POST oder GET Variablen über HTTP verarbeitet hat - nach meinen jetzigen Kenntnisstand - nur eine sinnvolle Einsatzmöglichkeit in vergleichsweise groben und zeitunkritischen Steuerprozessen.
Um eine vernünftige browserbasierte Steuerung zu realisieren braucht es ein System, das nicht mit einem riesigen Overhead ständig neue Verbindungen aufbaut und schließt. Zudem sollte es gegenüber Verbindungsabbrüchen resistent sein und auch bei langsamen Verbindungen ohne viel Traffic laufen. Da ich exakt die selben Voraussetzungen an anderer Stelle gebraucht habe, bin ich auf MQTT gestoßen.
Eine Einführung gibt es z.B. bei Heise: http://www.heise.de/developer/…et-der-Dinge-2168152.html
Und anders als zu Beginn würde ich heute die Schnittstelle in der Architektur höher ansetzen - parallel zum MIDI-Input. Dadurch verschenkt man nicht alle Vorteile die die DMXC3-GUI bietet und kann über einen kurzen Befehl auch komplexe Sequenzen fahren.
Was meint ihr, würde so etwas Sinn machen?
P.S.: Als Spielerei bin ich gerade dabei, einen MQTT-fähigen MIDI-Controller zu bauen. Wenn die Latenzen nicht in's Unendliche gehen, wäre das eine zugegebenermaßen unglaublich umständliche, aber umsetzbare und plattformunabhängige PnP-Lösung:
BROWSERBASIERTE GUI (HTTP + jquery)
|
Ethernet
|
V
SERVER (PHP + MySQL [Logging] -> MQTT-Client [publish] -> MQTT [Broker])
|
Ethernet
|
V
CONTROLLER (M5100-Shield -> Arduino [MQTT [subscribe] ] -> 8u2 [USB-MIDI])
LG, Martin (q4e)
"Ich denke auch, dass man hier wenn dann auch gleich ordentlich arbeiten sollte. "
Das wäre natürlich das allerbeste! Genau an diese Mikro-Systeme am Netz habe ich gedacht. Dann kann der Schaupieler auf der Bühne die Stehlampe anschalten und die Bühne wird zeitgleich von oben richtig ausgeleuchtet. Oder in einem Dungeon marschiert einer durch eine Lichtschranke und ein DMX-Programm wird gestartet. oder ein Performance-Künstler mit Bewegungssensoren steuert Licht via einen Arduino. Oder... Oder... Oder...
Nachtrag: Hier noch ein Link ... http://arduino-hannover.de/201…ifi-kochbuch-mit-esp8266/
Was wir _nicht_ brauchen, ist ein "richtiges" Web-Interface direkt von DMXC - so wie es z.B. die Frizbox oder eine IP-Cam liefern (D.h. ich wähle mich bei DMXC ein und habe dort eine Weboberfläche). Grund: zu unflexibel - zu großer Aufwand.
Statt dessen: Wir haben - wenn wir das so realisieren möchten - eigentlich zwei (!) Server:
1. Der eine sitzt im Kernel von DXMC und macht nichts anderes als die basalen Funktionen "getDMXValue(Channel)" und "setDMXValue(Channel, Value)" zu bearbeiten - und zwar über Befehle via seine IP-Adresse also z.B.
- "http://192.168.1.1/getDMXValue.aps?ch=45&" gibt den aktuellen Wert des DMX-Kanals 45 zurück, z.B. "100"
2. Der Webserver könnte z.B. ein lokal aufgesetzter XAMPP (Apache, PHP, MySQL) sein, der unter der Adresse "http://192.168.1.2" erreichbar ist. Auf dem kann jeder entwickeln, was er möchte - z.B. ein System aus PHP und JavaScript. Und auf diesem System werden dann auch die Buttons und Fader und Szenen (über die Datenbank) etc. programmiert. Der Vorteil ist, dass hier sehr viele Leute etwas auf die Beine stellen können, ohne im Kernel von DMXC herumzupfuschen.
Herausforderungen könnten aus meiner Sicht a) die Performanz* und b) die nötigen Push-Funktionen Webserver -> Client-GUI (z.B. bei Echtzeit-Anzeige von Kanal-Werten) sein. Hier müsste aber etwas im Sinne von jQuery möglich sein.
Ganz spannend wird es, wenn die Community hier anfängt, die XML-basierten (und damit vergleichsweise einfach in ein Websystem einzubindende) Gerätedefinitionen (DDF) in Javascript-Elemente umzusetzen.
LG, Martin (q4e)
Moin moin zusammen,
erstmal vielen Dank für die lebhafte Diskussion! Ich denke auch, dass hier ganz neue Möglichkeiten "lauern". Von der Umsetzung her würde ich alles - auch Cue-Lists - was jenseits der basalsten Befehle ist (zunächst) in die Web-Programmierung (z.B. PHP / JS) auslagern und nur als allerelementarste implementieren.
Als Server-Plattform für die Schnittstelle würde sich dann z.B. XAMPP anbieten.
martin3182: Du meintest, PHP wäre hier nicht sinnvoll, mit .NET würde mann sehr viel schneller zum Ergebnis kommen. Aber wäre nicht ein - wie auch immer gearteter Aufruf (ob er jetzt "192.168.1.123/dmxc.php" oder z.B. "192.168.1.123/dmxc.asp" heißt) völlig plattformunabhängig?
Ich denke da unter PHP an eine Verwendung von cURL ("libcurl": Folgende Protokolle werden zur Zeit unterstützt: HTTP, HTTPS, FTP, gopher, telnet, DICT, FILE und LDAP. Libcurl unterstützt außerdem SSL-Zertifikate, HTTP POST, HTTP PUT, das Hochladen von Dateien mittels FTP (zu diesem Zweck kann auch die FTP-Erweiterung benutzt werden), Formular-basierte Datei-Uploads, Proxies, Cookies und Benutzer/Passwort-Authentifikation.)
Diese Funktionen wurden in PHP 4.0.2 hinzugefügt.
Ich würde gerne nochmal die Idee eines Webserver-Plugins für den Kernel aufgreifen. Die Funktionalität bräuchte nur sehr begrenzt sein - alles übrige könnte man dann mit JS bzw. PHP realisieren:
- 192.168.1.123/dmxc.php?getChannel=12 // Wert abfragen
- 192.168.1.123/dmxc.php?setChannel=12&value=123& // Wert setzen
- 192.168.1.123/dmxc.php?fadeChannel=12&value=123&time=1000& // Kanal von Ausgangswert in best. Zeit zu neuem Wert ändern
Kann mir jemand sagen, wie aufwändig so etwas ist - d.h. wie viele Arbeitsstunden ich veranschlagen müsste, wenn ich ein solches Plugin zur Programmierung in Auftrag geben würde?
LG, Martin
Hallo Arne,
vielen Dank für deine Einschätzung. Ich könnte mir vorstellen, dass eine derartige Schnittstelle interessante Möglichkeiten eröffnet - gerade was die Interaktionsfähigkeit von DMX-Installationen angeht. Oder ist die Idee völlig bescheuert?
Gibt es denn hier im Forum jemanden, der sich das (Mit-)Programmieren eines solchen Plugins zutraut?
Hilft das hier evtl weiter: http://php.net/manual/en/class.dotnet.php ?
LG, Martin
Moin moin,
soweit ich das verstehe, fungiert der Kernel von DMXC3 doch als Server mit einer eigenen IP-Adresse, richtig? Wie aufwändig wäre denn eine php-Basisschnittstelle mit 2 Befehlen ("getDMXValue.php?ch=123&" und "setDMXValue.php?ch=123&val=255") zu implementieren?
LG, Martin
Hallo zusammen,
für eine interaktive Installation bräuchte ich eine Idee von jemandem, der sich auskennt.
Es geht um folgendes: Heute bekommt man z.B. für Arduino Netzwerk-Adapter extrem günstig nachgeworfen. So lässt sich problemlos z.B. ein Sensor realisieren, der bei Aktivierung einen Befehl in's Netz absetzt (z.B. 192.168.1.201/execdmx.php?sensorid=1&sensorvalue=123&).
Jetzt meine Frage: Ist in DMXControl eine Möglichkeit vorhanden, über einen solchen Befehl z.B. einen DMX-Kanal auf einen übertragenen Wert zu setzen oder eine bestimmte Sequenz ablaufen zu lassen?
Am Ende könnte sogar eine komplett browserbasierte Oberfläche stehen ...
Mit den besten Grüßen,
Martin