Welches DMX LAN-Interface funktioniert?

Moin …

Ich habe jetzt alles fertig und mit DMX-Workshop erfolgreich getestet.

Nun wollte ich das Skript mal testen und habe IP und Variablen angepasst …

Bekomme folgende Fehlermeldung …

open
Warning: fsockopen(): in C:\IP-Symcon\scripts\14026.ips.php on line 41

Warning: fsockopen(): in C:\IP-Symcon\scripts\14026.ips.php on line 41
send
Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\14026.ips.php on line 64
close
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\14026.ips.php on line 72

Gruß Holger

Komisch …

Über DMX-Workshop ist alles zu bedienen … Im Netzwerk auch sichtbar …

Gruß Holger

Hier noch mal das Skript …

Hatte schon jemand mal diese Fehlermeldung vom Skript …


<?
$hexStr = getvalueformatted(27161 /*[Geräte\DMX Lan\DMX Lan 1\Farbe]*/ );
$Power = getvalue(37491 /*[Geräte\DMX Lan\DMX Lan 1\DMX Schalter]*/ );

$hexStr = preg_replace("/[^0-9A-Fa-f]/", '', $hexStr); // Gets a proper hex string
    $rgbArray = array();
    if (strlen($hexStr) == 6) { //If a proper hex code, convert using bitwise operation. No overhead... faster
        $colorVal = hexdec($hexStr);
        $rot = 0xFF & ($colorVal >> 0x10);
        $gruen = 0xFF & ($colorVal >> 0x8);
        $blau = 0xFF & $colorVal;
    } elseif (strlen($hexStr) == 3) { //if shorthand notation, need some string manipulations
        $rot = hexdec(str_repeat(substr($hexStr, 0, 1), 2));
        $gruen = hexdec(str_repeat(substr($hexStr, 1, 1), 2));
        $blau = hexdec(str_repeat(substr($hexStr, 2, 1), 2));
    }


/* Art-Net (ArtDMX) with PHP
(c) Stefan <http://www.dmxcontrol.de/forum/index.php?page=User&userID=668>
Licence: CC 3.0 by-nc-sa
Version: 0.1
Tested with: PHP 5.1.2 */

define('CLIENT_IP', '192.168.178.004'); // define IP-Adress of Art-Net Client. Use IP-Adress, no broadcast adress
define('UNIVERSE', 0); // define Art-Net Universe
$socket = NULL;
$dmx = array(); // array of dmx values, each element from chr(0) (off) to chr(255) (full); DMX channel 1 == $dmx[1]

art_open();
art_send();
art_close();


function art_open()
{

   echo 'open<br />';

   global $socket, $dmx, $rot, $gruen, $blau, $Power;
   if(defined('CLIENT_IP')) $socket = fsockopen('udp://' . CLIENT_IP, 0x1936);

if ($Power == TRUE)
{
$dmx[1] = chr($rot); //dimmer red
$dmx[2] = chr($blau); //dimmer blue
$dmx[3] = chr($gruen); //dimmer green
}else
{
$dmx[1] = chr(0); //dimmer red
$dmx[2] = chr(0); //dimmer blue
$dmx[3] = chr(0); //dimmer green
setvalue(27161 /*[Geräte\DMX Lan\DMX Lan 1\Farbe]*/ , 0);
}
}

function art_send()
{
   echo 'send<br />';

   global $socket, $dmx;

   $buffer = "Art-Net\x00\x00\x50\000\016\x00\x01" . chr(UNIVERSE) . "\x00\x00" . chr(count($dmx)) . join($dmx);
   if(defined('CLIENT_IP')) fwrite($socket, $buffer);
}

function art_close()
{
   echo 'close <br />';

   global $socket;
   if(defined('CLIENT_IP')) fclose($socket);

}
?>

Die IP-Symcon 3.0 Beta hat jetzt übrigens nativen Support für ArtNet!

paresy

Und mein ArtNet Node von Ulrich Radig funktioniert mit der 3.0, ist noch Testumgebung bei mir auf dem Schreibtisch.

Hallo
kennt jemand eine Möglichkeit um mit dem DMX ArtNet Node von Ulrich Radig eine bidirektionalen Kommunikation aufzubauen?
Ich möchte den Status des DMX kanals abfragen.

Gruß,
Rayk

ehmm … DMX ist doch nicht fur BiDi bedacht?
also status abfrage ist mein wissens her nicht möglich (ob irgendwo steckt ein ‚logger‘ die sich die laetzte commando’s fur kanal x beihaltet.)

ich hatte in „Specification for the Art-Net 3 Ethernet Communication Standard“ was gelesen von
„NodeReport Codes“ und „ArtPollReply“…
daher die Frage nach einer BiDi Kommunikation
Grund: ich schreibe gerade an einer SPS lib. für DMX Kommunikation und es stört mich, wenn ich nur zum Note bzw. DMX-Kanal die Information sende ohne eine Rückkopplung zu bekommen…
Gruß,
Rayk

Also im Quell-Code vom Radig ArtNetNode findet man zumindest sowas wie artnet_sendPollReply().
Somit könnte ich mir schon vorstellen, das da was geht.
Gruß Jens

Ich habe wohl den Fehler gemacht, dass ich nicht vorher im Forum geschaut habe, welche Interfaces unterstützt werden. Auf jeden Fall bekomme ich das eurolite USB-DMX512-PRO Interface nicht zum fliegen. Dabei dachte ich, der DMX Standard wäre so gut, dass es egal ist, welches Modell/Hersteller man nimmt… :frowning:

Gibt es denn eine Liste von mit IPS lauffähigen DMX Interfaces? DMX4ALL hat ja mehrere USB/LAN-Interfaces im Programm…

Wie hast Du denn versucht es anzusprechen?
Gruß Jens

Hmmm… was genau meinst Du? Ich habe mir den Treiber von der eurolite Seite geladen und dann entsprechend in IPS den DMX Output mit Splitter und Serial Port angelegt…

dmxcontrol.jpg

treiber.jpg

Ja, genau diese Konfiguration meinte ich.
Allerdings kann ich mein altes Beispiel von einem NoName-USB-Adapter nicht mehr finden, sorry.
Mittlerweile benutze ich den ArtNet Node von U.Radig
Gruß Jens

Ich würde auch nur noch ArtNet einsetzen. Und dort kannst du jedes Gateway nehmen, wo ArtNet draufsteht. Wir haben hier z.Z. das ArtNet-DMX STAGE-PROFI 1.1 rumliegen.

paresy

Sodele… Heute habe ich das DMX STAGE-PROFI 1.1 bekommen und gleich ausgetestet… Und es läuft ziemlich unkompliziert! :wink:

Von der Verarbeitung macht der DMX Controller einen sehr guten Eindruck; außerdem ist er super klein. Allerdings habe ich mich über die Vorkonfiguration mit einer festen IP-Adresse geärgert. Um den Controller zu konfigurieren, musste ich erst mal mein Netzwerk umkonfigurieren… Dabei nutzt doch heute jeder dynamische IP-Adressen. Es mag ja sein, dass man unterwegs keinen DNS-Server parat hat, aber dennoch stellt die vorgegebene feste Adresse und Subnetmask ein Hindernis dar. Außerdem funktioniert der Reset-Knopf bei mir nicht, wie in der Anleitung beschrieben. Was auch nicht optimal ist: Man kann auch nicht auf DNS umschalten und auch kein Kennwort für den eingebauten Web-Server vergeben… :frowning:

Die Einbindung in IPS hat aber sofort funktioniert und auch mein ADJ Revo 4 hat sofort erkannt, dass er über DMX betrieben wird (im Gegensatz zum eurolite)… klasse und vielen Dank an Paresy für den Tipp!!!