eiwomisarc - Ein Tool um den EIWOMISA RGBW Controller unter Linux/(Mac OS X) zu steuern

  • Hi,


    ich habe für benklys EIWOMISA Controller ein kleines Tool (eigentlich 2) geschrieben mit dem man den Controller über den PC/Mac steuern kann wenn dieser per serieller Schnittstelle angeschlossen ist.


    Die 2 Tools sind:


    eiwomisarc_server - Ein Serverprozess der auf UDP-Pakete wartet und diese dann an einen Serial Port weiterreicht


    eiwomisarc_client - Der Client der Werte entgegen nimmt und diese in UDP-Paketen verpackt an den Server schickt


    Das ganze hat den Vorteil das man von einem beliebigen Rechner im Netzwerk den Controller steuern kann, wenn dieser an einen Rechner im Netzwerk angeschlossen ist. Funktioniert auch übers Internet, empfehle ich euch aber nicht ohne weiteres ;)


    Kleine Doku:
    eiwomisarc_server starten - ohne Parameter läuft der Prozess auf Port 1337, und schickt die Werte an /dev/ttyS0 mit einer Baudrate von 9600


    danach kann man dem server z.b. wie folgt werte schicken:


    eiwomisarc_client -v 0,255,255,255


    -v nimmt standardmäßig Werte für die Kanäle 0-3 des Controllers entgegen - Kanalbelegung: 1 = R, 2 = G, 3 = B - die LEDs wären jetzt also auf "Weiß"


    weitere Parameter für den client sind:
    -p Den Port angeben auf dem der Server zu erreichen ist
    -s Die IP des Servers wenn dieser nicht auf dem gleichen Rechner wie der Client läuft
    -c im Zusammenspiel mit -v die Kanäle festlegen
    Beispiel:


    eiwomisarc_client -p 1666 -s 192.168.1.10 -v 255 -c 1
    würde an den Server der auf einen Rechner im lokalen Netzwerk auf Port 1666 läuft den Wert 255 auf Kanal 1 übergeben - die LEDs wären jetzt z.b. auf "Rot"


    Eine ausführliche Doku findet ihr unter dem parameter --help ;)


    PS: Das Tool ist jetzt auch für linux verfügbar (x86 und arm)!

    Download:
    http://github.com/hikinggrass/eiwomisarc_server/downloads
    http://github.com/hikinggrass/eiwomisarc_client/downloads

  • Einen Version für Windows kommt schon noch ;)
    Es kann nur noch ein bisschen dauern, ich habe mich bisher nicht wirklich mit dem Ansteuern der Seriellen Schnittstelle unter Windows beschäftigt, werde mich aber mal einlesen und dann hoffentlich bald eine Version fertig haben die auch unter Windows läuft.


    Ich wollte nur mal den aktuellen Stand veröffentlichen, vielleicht gibt es ja ein paar Mac/Linux Benutzer hier im Forum ^^



    [nutzlosen Fullquote entfernt ...]

  • ist in c geschrieben.


    6 Byte die den Kanal und den wert des Kanals enthalten - das Protokoll steht in der doku vom Controller


    Ps: die 2 tools stehen unter GPL also wenn jemand Lust hat kann er sich gern den Quellcode anschauen und verbessern ;)



    [nutzlosen Fullquote entfernt ...]

  • Könntest du mir ma schnell das Übertragungsprotokoll erklären? :D
    Hab gerade die Doku 10 ma hoch und runter gelesen versteh se abe rnicht :D


    Zitat

    Der zu beschreibende DMX Puffer Kanal wird nun aus der Summe der Bytes 4 bis 5 bestimmt. Der Wert der in den Kanal geschrieben
    werden soll aus der Summer der beiden Bytes 2 und 3.
    Trifft eine der oben genannten Bedingungen nicht zu, wird der Empfang abgebrochen und beginnt von neuem.

    Angenommen ich will in Kanal 3 einen Wert 200 schreiben.


    Kann ich auf das Interface folgende Werte legen


    255 - 2 - 1 - 100 - 100 - Was mit "Wert Teil 3" anzufangen ist weis ich noch nicht
    alternativ mach das hier das selbe:
    255 - 3 - 0 - 150 - 50 -Und hier wieder Teil3


    Hab ich das richtig verstanden?


    Hast evtl ICQ?

  • Hi, schau dir doch einfach den Code an den ich schon geschrieben hast - bis auf den Netzwerk und rs232 Code kann man unter Windows alles benutzen ;)


    exelero ne iPhone App. Ist in Planung, dürfte auch nicht so schwer sein - und das ganze per Web-oberflaeche zu steuern ist auch machbar

  • @ Hikinggrass


    Also als erstes will ich Dir mal für Deine Mühe danken die Du hier einbringst! Das ist echt super! :thumbup:
    Auch wenn ich selber erst mal mit einem Mac oder Linux Program so nichts anfangen kann, so weiß ich Deine Arbeit trotzdem zu schätzen und hoffe natürlich auch auf einen Windows Ableger. :D


    Eventuell könnten wir da ja mal miteinander telefonieren, ich hätte da noch so einige Anwendungsgebiete die ich gerne abdecken würde aber kann selbst leider keine Programme für den PC programmieren. Wenn da dann mal was tolles dabei raus kommt würde ich das dann natürlich auch gerne auf meiner Homepage neben dem anderen Programm zum Download anbieten.


    Wenn das mit Tel. klargeht dann schreib mir einfach mal Deine Nummer per PN und wann es Dir recht wäre.



    nighty2k


    Auf Seite 19 ist das beschrieben. Allerdings hast Du mir einen Fehler in der Anleitung gezeigt. Für den Kanal sind nicht die Bytes 4 bis 5 zuständig, sondern natürlich die Bytes 4 bis 6. Das muss ich dann bei Gelegenheit mal ändern.


    Gruß, Benny.

  • Hmm... Wenn eh schon UDP-Pakete gesendet werden wäre es doch sinnvoll, gleich mit dem ArtNet-Standard kompatibel zu bleiben? Der sendet auch nur UDP-Pakete an ne bestimmte Adresse oder als Broadcast (zumindest ist das der Kern des Protokolls).


    Damit würde dann direkt Kompatibilität zu fast allen DMX-Programmen (DMXControl u.s.w.), zu meiner Zimmer/Haus-Lichtsteuersoftware (entsteht grade) und zu mehreren ArtNet->DMX Geräten (z.B. der ArtNet-Node für 25€) bestehen.


    Falls Interesse besteht kann ich dir gerne Helfen oder nen bisschen Quellcode schicken - die Protokollspezifikation ist nicht wirklich leicht lesbar (wie Spezifikationen das so an sich haben), aber das Protokoll selbst ist eigentlich extrem simpel.

  • Wegen einiger Namensüberschneidungen ist die eigentliche Seite des Protokolls nicht sehr gut aufzufinden, ausserdem ist sie, seit der Entwickler (artisticlicence.com) die Hauptseite neu gemacht hat, etwas kaputt (Bilder und PDF-Download), darum lad ich dir das Protokoll mal als Anhang hoch. Interessant sind eigentlich für deine Zwecke nur die ArtDMX-Pakete, ab Seite 19. Auf der Seite (http://www.artisticlicence.com/dwnart.htm) gibts noch nen Tool, dass sich DMX Workshop nennt - damit kann man ArtNet-Pakete senden (gut zum Testen, ob dein Empfänger funktioniert) und empfangene Pakete anzeigen lassen (für den Sender ;) ). Hat mir bei der Entwicklung ziemlich geholfen.


    Den Sende-Code hab ich in C# da, falls dir das was bringt.



    p.S.:
    600kB > 150kB, also nicht als Anhang, hier als Rapidshare-Link: art-net.pdf

  • Ich hätte Interesse an dem C# Snipet


    Meine Lieblingssprache wenn man C# überhaupt Programmiersprache nennen darf :D


    Würde mich freuen wenn du sie mir für meine Codesammlung zur Verfügung stellen kannst, man weis nie wann man es mal braucht


  • Ist nur nen Snippet, dass ein einziges mal ein ArtNet-Paket sendet. Das ganze sollte dann natürlich regelmäßig gesendet werden (maximal so oft, wie der ArtNet-Node die Daten ausgeben kann, siehe DMX-Spezifikation, mindestens alle... siehe ArtNet-Spezifikation ;) ). Optimierung ist natürlich auch noch notwendig (jedes mal den Array neu anlegen ist irgendwie Blödsinn). Ist halt nur nen Snippet, dass ich schnell aus nem Plugin zusammenkopiert hab :)
    Die ganzen Begriffe (speziell die in den Kommentaren am Anfang der Zeile) sind direkt aus der Spezifikation, werden da auch genauer erklärt.


    Viel Spaß damit!

  • exelero ne iPhone App. Ist in Planung, dürfte auch nicht so schwer sein - und das ganze per Web-oberflaeche zu steuern ist auch machbar


    Uiuiui, das hab ich ganz überlesen. iPhone und ArtNet wäre genial 8o
    Bisher gibts da nur Luminair, und das ist mit 80€ selbst für den professionellen Bereich maßlos überteuert, zumal es nichtmal eine Demo gibt.

  • Also die iPhone App steht auf der Todo-Liste, aber vorerst setze ich erst mal meine tools mit dem aktuellen Protokoll für linux & windows um. Die Linux Version sollte eigentlich heute Abend erscheinen, das wird leider nichts mehr - gibt ein paar kleinere Probleme die ich in den nächsten Tagen aber beheben werde. Dann werde ich mich an die Windows Version setzen - und wenn die Tools auf allen 3 Betriebssystemen laufen schau ich mir mal das ArtNet Protokoll an - das kommt dann einfach als zusätzliches Protokoll mit in die 2 Tools, ist ja Platform-unabhängiger Code - dürfte also recht schnell gehen.



    [nutzlosen Fullquote entfernt ...][nutzlosen Fullquote entfernt ...]