Anbindung Controller an IP-Symcon

Anbindung des Controllers an externe Hausautomationssysteme.
Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Kommt drauf an wieviel Aufwand Du betreiben möchtest etwas "fern" zu steuern.
Es gibt eine einfache Variante Relais per HTTP Request zu schalten. Die Controller-Internen Regeln und Funktionen haben dabei aber immer Vorrang.

Siehe: https://www.poolsteuerung.de/viewtopi ... 9&t=29#p51

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Hat schon jemand die Steuerung des DMX Controllers auf dem Board per "Fernsteuerung" (IPS) gelöst oder hat ne passende Idee dazu ??


Gruß
Jens

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Du bekommst z.B. mit einem http GET Request an /GetDmx.csv die aktuellen Kanalwerte der 16 verfügbaren Kanäle zurückgeliefert (kannst auch im Browser aufrufen), als Komma-getrennte Zeichenkette 0,0,0,.... usw. Die Kanalwerte liegen DMX entsprechend zw. 0 und 255

Um Kanalwerte zu setzen musst Du einen POST Request an /usrcfg.cgi schicken, der folgende name/value Paare enthält

TYPE=0
LEN=16
CH1_8=0,0,0,0,0,0,0,0
CH9_16=0,0,0,0,0,0,0,0
DMX512=1

Die Zeile CH1_8 gibt die neuen Kanalwerte für die Kanäle 1-8 vor, CH9_16 entsprechend für Kanal 9 bis 16.
Also um z.B. die Kanäle 1, 2 und 10 auf max. zu setzen:

TYPE=0
LEN=16
CH1_8=255,255,0,0,0,0,0,0
CH9_16=0,255,0,0,0,0,0,0
DMX512=1

Der Request muss IMMER vollständig sein und alle 16 neuen Kanalwerte enthalten. Ebenso alle anderen Parameter (wichtig!), wobei für diesen Anwendungsfall TYPE, LEN und DMX512 immer konstant so wie oben beschrieben sein müssen (TYPE=0, LEN=16, DMX512=1).

:)

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Danke, damit kann ich erst mal rumspielen :)

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Viel Spass :)
Machst das dann in php?

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Wenn ich denn endlich dazu komme ... :?
Geplant ist die Anbindung an IP-Symcon und somit natürlich in PHP.

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Alex hat geschrieben:Du bekommst z.B. mit einem http GET Request an /GetDmx.csv die aktuellen Kanalwerte der 16 verfügbaren Kanäle zurückgeliefert (kannst auch im Browser aufrufen), als Komma-getrennte Zeichenkette 0,0,0,.... usw. Die Kanalwerte liegen DMX entsprechend zw. 0 und 255

Um Kanalwerte zu setzen musst Du einen POST Request an /usrcfg.cgi schicken, der folgende name/value Paare enthält
....

Der Request muss IMMER vollständig sein und alle 16 neuen Kanalwerte enthalten. Ebenso alle anderen Parameter (wichtig!), wobei für diesen Anwendungsfall TYPE, LEN und DMX512 immer konstant so wie oben beschrieben sein müssen (TYPE=0, LEN=16, DMX512=1).

:)

Code: Alles auswählen

$url = 'http://IP/usrcfg.cgi';
$data = array('TYPE' => '0', 'LEN' => '16', 'DMX512' => '1', 'CH1_8' => '255,255,0,0,0,0,0,0', 'CH9_16' => '0,255,0,0,0,0,0,0');

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data)
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }

var_dump($result);
Ich bräuchte damit ein wenig Hilfe ... was ist falsch daran? Was fehlt? Passiert nämlich nix. Andererseits passiert auch nichts an den Werten in der GetDmx.csv wenn ich in der Oberfläche etwas zum testen einstelle. Evtl. hab ich da auch noch einen Denkfehler :?:


Gruß
Jens

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Hast in der KONFIGURATION -> SONSTIGES, DMX generell mal eingeschaltet?
Man kann die DMX Geschichte dort vollständig deaktivieren.

"ENABEL DMX" -> Haken setzen
"Max. DMX Kanäle" auf mind. 16 einstellen

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

In der Konfig habe ich jetzt enabled, 16 Kanäle sind eingestellt. Eine Änderung auf der Oberfläche bewirkt auch eine Änderung in der GetDmx.csv.
Startadreesse DMX ist 0 eingestellt.

Der Code zum Setzen der Werte bewirkt leider nix, ist das denn so richtig ?
Muss da irgendwo noch der Benutzer mit übergeben werden, falls ja wie genau ?


Gruß
Jens

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Hab keine Ahnung von php und wie das den Request zusammenbaut.
Aber setze DMX512=1 mal ans Ende der geschickten values.

Intern, im eigenen Netzwerk, sollte es auch ohne Username/Passwort gehen.

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Ok, daran wirds gelegen haben, ich dachte die Reihenfolge spielt keine Rolle.
Die GetDmx.csv hat jetzt die übergebenen Werte, in der Oberfläche selbst sieht man allerdings keine Änderung der Regler.


Gruß
Jens

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Ne, die "alte" Oberfläche aktualisiert nix wenn man die Kanalwerte extern verändert.
Phase2 aktualisiert die Kanalregler nach ein paar Sekunden.... müsst nochmal nachkucken... ich glaub alle 10 Sekunden.

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Phase2 holt sich aber nur die gleichen Werte in die Regler, wie in der Oberfläche zu sehen sind. Das sind nicht die, die ich an an usrcfg.cgi übergeben habe

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Anbindung Controller an IP-Symcon

Beitrag von Alex »

Doch, schon. Nicht auf der Konfigurationsseite natürlich, aber auf der "DMX/EnOcean Control" werden die Slider mit aktualisiert (wenn man sie aufgeklappt hat bei den entsprechenden Pattern...) Und sie müssen in dem Pattern natürlich enthalten sein, es werden ja nur die Slider der Kanäle eingeblendet, die zu dem entsprechenden Pattern gehören

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Kein Plan an was es gelegen hat, aber jetzt gehts.
Danke für die Hilfe !


Gruß
Jens

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

*edit*

Fehler selber behoben:

Code: Alles auswählen

$url = IP/usrcfg.cgi';
$data = array('ENA' => '1,1', 'MANUAL' => '1');

$request = http_build_query($data);
$size = strlen($request);

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
		'length'  => $size,
        'content' => http_build_query($data)
    )
);


$context  = stream_context_create($options);

$result = file_get_contents($url, false, $context);

if ($result === FALSE) { /* Handle error */ };
Damit kann ich jetzt die Stati der Relais verändern.


Besteht auch die Möglichkeit die Stati der Dosiereinstellungen zu ändern (auto/aus) ?



Gruß
Jens

Matze
Beiträge: 3
Registriert: 6. Januar 2015, 12:47

Re: Anbindung Controller an IP-Symcon

Beitrag von Matze »

Sevensworld hat geschrieben:*edit*

Fehler selber behoben:

Code: Alles auswählen

$url = IP/usrcfg.cgi';
$data = array('ENA' => '1,1', 'MANUAL' => '1');

$request = http_build_query($data);
$size = strlen($request);

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
		'length'  => $size,
        'content' => http_build_query($data)
    )
);


$context  = stream_context_create($options);

$result = file_get_contents($url, false, $context);

if ($result === FALSE) { /* Handle error */ };
Damit kann ich jetzt die Stati der Relais verändern.


Besteht auch die Möglichkeit die Stati der Dosiereinstellungen zu ändern (auto/aus) ?



Gruß
Jens


Hi Jens,

wie kannst du php auf dem Controller ausführen?


Gruss Mathias

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

Gar nicht!?
Mein Smart Home Server stellt PHP bereit ...

Gruß
Jens

Matze
Beiträge: 3
Registriert: 6. Januar 2015, 12:47

Re: Anbindung Controller an IP-Symcon

Beitrag von Matze »

Sevensworld hat geschrieben:Gar nicht!?
Mein Smart Home Server stellt PHP bereit ...

Gruß
Jens

Und wie genau?

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Anbindung Controller an IP-Symcon

Beitrag von Sevensworld »

??
Evtl. verstehe ich Deine Frage nicht, aber wie man an der Überschrift dieses Threads erkennen kann, geht es um die Software IP-Symcon und vereinfacht ausgedrückt macht man in IPS quasi alles mit PHP.
Das PHP Script selbst ist doch in den Postings zu sehen .. !?

Gruß
Jens