DANKE für das Feedback, dann lasse ich es, wie es ist ;-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
iTunes | Steuerung via Script über WebServer | Edomi
Einklappen
X
-
Soooo, das nächste Thema :-)
Weitere Funktionen des Bausteins im Bereich ###[LBS]###
Zitat von coliflower Beitrag anzeigen...
Wenn am bestimmten Eingang 1/0 ankommt (Play), dann soll diese 1/0 zum bestimmten Ausgang „geroutet“ und diese 1/0 an die Ausgangsbox übergeben werden … Die Ausgangsbox versendet per Befehl den HTTP ...
Das wäre OK, richtig ?Zitat von gaert Beitrag anzeigenDas wäre ok - richtigAber das gehört hier nicht so wirklich hin - lass' uns das lieber in Deinem iTunes-LBS-Thread diskutieren...
Ist es auch möglich nur einen Ausgang für eine Ausgangsbox zu haben an dem der Name des Eingangs (Computer) und der KO-Wert als {Variable} übergeben wird ?
Und somit für den Eingangs-Namen „Computer“ und den Eingangs-Wert „40“ (KO-ID {375}) ein HTTP Befehl zusammengebaut und versendet wird ?
http://10.0.100.150/%7Edariusz/iControl.php?c=apvolume&p1Computer=&p2={375}
UND es wäre schneller, eleganter, usw. jedem Eingang ein Ausgang zu spendieren der wiederum mit einer Ausgangsbox verknüpft ist und die an die richtige HTTP verschickt ?
Oder wäre das so ein Ansatz für den Ausgang / die Ausgangsbox ?
Wenn du so etwas benötigst, dann kannst du zusätzliche Ausgänge anlegen, an dem der Name ausgegeben wird. Das kannst du auch direkt durchreichen, wenn du an einem Eingang die Belegungsnamen vorgibst. Eine diekte Änderung der Ausgangsbezeichnungen wird nur durch Änderung des LBS möglich sein.Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Variablen habe ich doch bereits auf Deinen Wunsch hin in den HTTP/UDP-Befehlen eingebaut... (Version 1.11 oder so)
Du kannst also ganz einfach einen HTTP-"Befehl" absetzen und die HTTP-GET-Parameter per Variable setzen:
http://...?{100}={200}
Das KO(100) setzt dann Dein Baustein z.B. auf den WERT "Volume", und das KO(200) auf den Wert "50" - fertig:
Ergebnis ist dann: http://...?Volume=50EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Das KO(100) setzt dann Dein Baustein z.B. auf den WERT "Volume", und das KO(200) auf den Wert "50" - fertig:
Ergebnis ist dann: http://...?Volume=50
die Variable für den KO-Wert (die 50) sind klar, die nutze ich auch schon :-)
Um beim Beispiel zu bleiben … für mich laut gedacht :-)
Für „Play“ iTunes ist am Eingang des LBS das KO mit GA 3/1/20, 1bit, Wert = 1 zuständig, das KO hat die KO-ID:381 somit ist die Variabel {381} mit den Wert 1 … soweit gut.
Ergebnis für den Wert 1: http://...?Play={381}
Für den Eingangs-Namen „Play“ eine Variable nach dieser Art, z.B.: {100} mit dem Wert „Play“ ist für mich neu
Das KO(100) setzt dann Dein Baustein z.B. auf den WERT "Volume"
Derzeitiger Stand des LBS-Bereichs mit Namen „Play“ am Eingang-3 (E[3]) und Ausgang [a#27]
Wie verpacke ich jetzt das „Play“ als Wert in eine Variable damit ich es z.B. so {100} verpacken kann ?
Ergebnis Wäre für den Wert „Play“: http://...?{100}=1
Gesamtergebnis wie du schreibst wäre dann: http://...?{100}={381}
PHP-Code:###[LBS]###
<?php
function LB_LBSID($id) {
if (getLogicElementVar($id,1)!=1) {
setLogicElementVar($id,1,1);
callLogicFunctionExec(LBSID,$id);
}
if ($E=getLogicEingangDataAll($id)) {
if (getLogicElementStatus($id)==0) { // LBS läuft nicht?
if ($E[3]['value']!=0 && $E[3]['refresh']==1) {
setLogicLinkAusgang($id,27,1);
} else {
setLogicLinkAusgang($id,27,0);
}
}
}
}
?>
###[/LBS]###Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Nee...Der LBS setzt ja keine KOs - sondern nur seine Ausgänge.
Ich dachte das eher so: Der Nutzer(!) des LBS setzt das KO(100) auf den Wert "Volume=50" und legt diesen Wert (bzw. das KO) auf den Eingang. Der LBS gibt (vielleicht nach einer kleinen Validierung) dann auf den Ausgang "HTTP" eine 1. An diesen Ausgang ist dann eine Ausgangsbox angeschlossen, die nun getriggert wird und den HTTP-Request mit dem KO(100) als Variable absetzt.
Aber wie schon angedeutet: Warum so kompliziert?! Erweitere Dein EXEC-Script doch einfach um die Möglichkeit DIREKT einen HTTP-Request abzusetzen. Dann kannst Du Dir diese ganzen Umwege über KOs/Eingänge/Ausgänge sparen...EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Hier mal Pseudocode für einen UDP-Listener, der NICHT auf Datenpakte wartet. Die Schleife läuft also ständig durch!
PHP-Code://Wichtig: PHP-Fehlerbehandlung abschalten, sonst generiert socket_recv() "Warnungen", wenn keine Daten empfangen wurden
restore_error_handler();
error_reporting(0);
if ($socket=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP)) {
if (socket_bind($socket,0,$port) {
while (...) {
$len=socket_recv($socket,$data,1024,MSG_DONTWAIT); //das MSG_DONTWAIT ist der Trick ;)
if ($len!==false) {
//UPD-Paket empfangen: Hier die Auswertung wie gehabt...
} else {
//kein UDP-Paket empfangen: Hier könnten z.B. HTTP-Request verarbeitet werden
}
usleep(100*1000);
}
}
}
EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Zitat von gaert Beitrag anzeigenNee...Der LBS setzt ja keine KOs - sondern nur seine Ausgänge.
Zitat von gaert Beitrag anzeigenAber wie schon angedeutet: Warum so kompliziert?! Erweitere Dein EXEC-Script doch einfach um die Möglichkeit DIREKT einen HTTP-Request abzusetzen. Dann kannst Du Dir diese ganzen Umwege über KOs/Eingänge/Ausgänge sparen...Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Hallo Christian,
egal wie lange ich mir noch den Kopf zerbreche, ich werde es selbst nicht lösen können - das Wissen halt ;-)
Anbei der EXEC-Teil in der Hoffnung zumindest etwas richtig gedeutet zu haben ...
Und der neue Teil nach „else“ ist nur eine Andeutung was das Ergebnis sein soll:
Am LBS-Eingang-20 wird der Wert z.B.: 45 übergeben - dieser wird and die Variable {385} GA 3/1/20 übergeben und per HTTP an mein MBP übergeben damit am MBP ein Apple-Script gestartet wird welches das Volumen für den Lautsprecher „Computer" auf 45% setzt
DANKE
PHP-Code:###[EXEC]###
<?php
require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
set_time_limit(0);
sql_connect();
if ($E=getLogicEingangDataAll($id)) {
/*
Erweitere Dein EXEC-Script doch einfach um die Möglichkeit DIREKT einen HTTP-Request abzusetzen.
Dann kannst Du Dir diese ganzen Umwege über KOs/Eingänge/Ausgänge sparen...
Hier ein UDP-Listener, der N I C H T auf Datenpakte wartet. Die Schleife läuft also ständig durch!
WICHTIG: PHP-Fehlerbehandlung abschalten, sonst generiert socket_recv() "Warnungen", wenn keine Daten empfangen wurden
*/
restore_error_handler();
error_reporting(0);
if ($socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) {
if (socket_bind($socket,0,$E[31]['value'])) {
while(getSysInfo(1)>=1) {
$len = socket_recv($socket,$data,1024,MSG_DONTWAIT); //das MSG_DONTWAIT ist der Trick ;)
if ($len!==false) {
// UPD-Paket empfangen: Hier die Auswertung wie gehabt...
$data = preg_replace("/[^A-Za-z0-9&=]/",'',$data);
parse_str($data, $output); // $output = array();
if (array_key_exists('EA', $output)) {setLogicLinkAusgang($id,1, $output['EA']);}
if (array_key_exists('Play', $output)) {setLogicLinkAusgang($id,2, $output['Play']);}
if (array_key_exists('Pause', $output)) {setLogicLinkAusgang($id,3, $output['Pause']);}
if (array_key_exists('Stop', $output)) {setLogicLinkAusgang($id,4, $output['Stop']);}
if (array_key_exists('FF', $output)) {setLogicLinkAusgang($id,5, $output['FF']);}
if (array_key_exists('FR', $output)) {setLogicLinkAusgang($id,6, $output['FR']);}
if (array_key_exists('MastVol',$output)) {setLogicLinkAusgang($id,7, $output['MastVol']);}
if (array_key_exists('LS1', $output)) {setLogicLinkAusgang($id,10, $output['LS1']);}
if (array_key_exists('LS2', $output)) {setLogicLinkAusgang($id,11, $output['LS2']);}
if (array_key_exists('LS3', $output)) {setLogicLinkAusgang($id,12, $output['LS3']);}
if (array_key_exists('LS4', $output)) {setLogicLinkAusgang($id,13,$output['LS4']);}
if (array_key_exists('LS5', $output)) {setLogicLinkAusgang($id,14,$output['LS5']);}
if (array_key_exists('LS6', $output)) {setLogicLinkAusgang($id,15,$output['LS6']);}
if (array_key_exists('LS7', $output)) {setLogicLinkAusgang($id,16,$output['LS7']);}
if (array_key_exists('LS8', $output)) {setLogicLinkAusgang($id,17,$output['LS8']);}
if (array_key_exists('LS9', $output)) {setLogicLinkAusgang($id,18,$output['LS9']);}
if (array_key_exists('LS10', $output)) {setLogicLinkAusgang($id,19,$output['LS10']);}
if (array_key_exists('LSV1', $output)) {setLogicLinkAusgang($id,20,$output['LSV1']);}
if (array_key_exists('LSV2', $output)) {setLogicLinkAusgang($id,21,$output['LSV2']);}
if (array_key_exists('LSV3', $output)) {setLogicLinkAusgang($id,22,$output['LSV3']);}
if (array_key_exists('LSV4', $output)) {setLogicLinkAusgang($id,23,$output['LSV4']);}
if (array_key_exists('LSV5', $output)) {setLogicLinkAusgang($id,24,$output['LSV5']);}
if (array_key_exists('LSV6', $output)) {setLogicLinkAusgang($id,25,$output['LSV6']);}
if (array_key_exists('LSV7', $output)) {setLogicLinkAusgang($id,26,$output['LSV7']);}
if (array_key_exists('LSV8', $output)) {setLogicLinkAusgang($id,27,$output['LSV8']);}
if (array_key_exists('LSV9', $output)) {setLogicLinkAusgang($id,28,$output['LSV9']);}
if (array_key_exists('LSV10', $output)) {setLogicLinkAusgang($id,29,$output['LSV10']);}
} else {
// kein UDP-Paket empfangen: Hier könnten z.B. HTTP-Request verarbeitet werden
if ($E[20]['value']!=0 && $E[20]['refresh']==1) {
http_get("http://10.0.100.150/%7Edariusz/iControl.php?c=apvolume&p1=Computer&p2={385}"); // Wert für VOL1
}
}
}
}
}
usleep(1000*100);
}
sql_disconnect();
?>
###[/EXEC]###Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Fast genau so
1. den HTTP-Request würde ich eher so machen - aber beides hat Vor- und Nachteile:
PHP-Code:$ctx=stream_context_create(array('http' => array('timeout' => 3 ))); //3 Sekunden Timeout
$r=file_get_contents($URL,0,$ctx); //komplette Antwort abwarten
PHP-Code:if ($E=getLogicEingangDataAll($id)) {
if ($E[20]['value']!=0 && $E[20]['refresh']==1) {
$ctx=stream_context_create(array('http' => array('timeout' => 3 ))); //3 Sekunden Timeout
$r=file_get_contents('...',0,$ctx); //komplette Antwort abwarten
}
}
PHP-Code:"http://10.0.100.150/%7Edariusz/iControl.php?c=apvolume&p1=Computer&p2=".$E[1]['value']."&..."
EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Hallo Chrisitan, "fast genau so" ist nett, danke
Ich bin derzeit Extern, somit kann ich das was ich verbrochen haben, nicht direkt in Edomi testen ;-)
Deshalb mal "Trockenübung" :-)
In der vorherigen Version des LBS war der Punkt $E=getLogicEingangDataAll($id) außerhalb der Schleife - die Werte wurden mit jedem empfangenen Telegramm empfangen und an die LBS-Ausgänge übergeben.
Diesen Eintrag brauche ich aber auch für den vor der Schleife um den Befehl (socket_bind($socket,0,$E[31]['value'])) mit dem Wert für das "Port" bedienen zu können
Darf ich davon ausgehen, dass ich diese Eintrag nicht nur an einer Stelle, sondern an mehreren plazieren darf ?
PHP-Code:if ($E=getLogicEingangDataAll($id)) {
Für den kompletten URL, sei es als Variable oder String ... kann PHP das so verarbeiten (wäre sehr elegant und kurz):
PHP-Code:$url = "http://".$ip."/%7E".$user."/iControl.php?c=apvolume&ap1=Computer&p2="
$r=file_get_contents($URL.$E[20]['value'],0,$ctx);
Oder nur so für jeden String eine eigene Varialble, z.B. $URL20 ?
PHP-Code:$url20 = "http://".$ip."/%7E".$user."/iControl.php?c=apvolume&ap1=Computer&p2=".$E[20]['value']);
$r=file_get_contents($URL20,0,$ctx);
Hier noch den Url einzutragen würde die Zeile sehr lang machen :-(
PHP-Code:$r=file_get_contents('...',0,$ctx);
In dieser ###[EXEC]### Variante - dieser Eintrag auch notwendig ?
PHP-Code:sql_disconnect();
{385} in der URL ist hier Blödsinn...
Hier noch die voläufige Errungenschaft in der Hoffnung der EXEC-Teil ist "faster als fast"
PHP-Code:###[HELP]###
###[/HELP]###
###[DEF]###
[name = iTunes & AirPlay]
[e#1 = Ein/Aus]
[e#2 = Play]
[e#3 = Pause]
[e#4 = Stop]
[e#5 = FF]
[e#6 = FR]
[e#7 = Master VOLUME #init=100]
[e#8 = ]
[e#9 = ]
[e#10 = AirPlay-E/A-01]
[e#11 = AirPlay-E/A-02]
[e#12 = AirPlay-E/A-03]
[e#13 = AirPlay-E/A-04]
[e#14 = AirPlay-E/A-05]
[e#15 = AirPlay-E/A-06]
[e#16 = AirPlay-E/A-07]
[e#17 = AirPlay-E/A-08]
[e#18 = AirPlay-E/A-09]
[e#19 = AirPlay-E/A-10]
[e#20 = AirPlay-01-VOL]
[e#21 = AirPlay-02-VOL]
[e#22 = AirPlay-03-VOL]
[e#23 = AirPlay-04-VOL]
[e#24 = AirPlay-05-VOL]
[e#25 = AirPlay-06-VOL]
[e#26 = AirPlay-07-VOL]
[e#27 = AirPlay-08-VOL]
[e#28 = AirPlay-09-VOL]
[e#29 = AirPlay-10-VOL]
[e#30 = Autostart #init=1]
[e#31 = Port #init=9999]
[e#32 = Reset iTunes]
[e#33 = MBP-User #init=dariusz]
[e#34 = MBP-IP #init='10.0.100.150']
[a#1 = Ein/Aus]
[a#2 = Play]
[a#3 = Pause]
[a#4 = Stop]
[a#5 = FF]
[a#6 = FR]
[a#7 = Master VOL]
[a#8 = ]
[a#9 = ]
[a#10 = AirPlay 01]
[a#11 = AirPlay 02]
[a#12 = AirPlay 03]
[a#13 = AirPlay 04]
[a#14 = AirPlay 05]
[a#15 = AirPlay 06]
[a#16 = AirPlay 07]
[a#17 = AirPlay 08]
[a#18 = AirPlay 09]
[a#19 = AirPlay 10]
[a#20 = RM-01-VOL]
[a#21 = RM-02-VOL]
[a#22 = RM-03-VOL]
[a#23 = RM-04-VOL]
[a#24 = RM-05-VOL]
[a#25 = RM-06-VOL]
[a#26 = RM-07-VOL]
[a#27 = RM-08-VOL]
[a#28 = RM-09-VOL]
[a#29 = RM-10-VOL]
[a#30 = ]
[a#31 = ]
[a#32 = HTTP]
[a#33 = ]
[a#34 = ]
[v#1 = 0]
###[/DEF]###
###[LBS]###
<?php
function LB_LBSID($id) {
if (getLogicElementVar($id,1)!=1) {
setLogicElementVar($id,1,1);
callLogicFunctionExec(LBSID,$id);
}
if ($E=getLogicEingangDataAll($id)) {
if (getLogicElementStatus($id)==0) { // LBS läuft nicht?
if ($E[32]['value']!=0 && $E[32]['refresh']==1) { // Systemstart {2}
setLogicLinkAusgang($id,32,$E[32]['value']);
}
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?php
require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
set_time_limit(0);
sql_connect();
if ($E=getLogicEingangDataAll($id)) {
/*
Erweitere Dein EXEC-Script doch einfach um die Möglichkeit DIREKT einen HTTP-Request abzusetzen.
Dann kannst Du Dir diese ganzen Umwege über KOs/Eingänge/Ausgänge sparen...
Hier ein UDP-Listener, der N I C H T auf Datenpakte wartet. Die Schleife läuft also ständig durch!
WICHTIG: PHP-Fehlerbehandlung abschalten, sonst generiert socket_recv() "Warnungen", wenn keine Daten empfangen wurden
*/
restore_error_handler();
error_reporting(0);
if ($socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) {
if (socket_bind($socket,0,$E[31]['value'])) {
while(getSysInfo(1)>=1) {
$len = socket_recv($socket,$data,1024,MSG_DONTWAIT); //das MSG_DONTWAIT ist der Trick ;)
if ($len!==false) {
// UPD-Paket empfangen: Hier die Auswertung wie gehabt...
$data = preg_replace("/[^A-Za-z0-9&=]/",'',$data);
parse_str($data, $output); // $output = array();
if (array_key_exists('EA', $output)) {setLogicLinkAusgang($id,1, $output['EA']);}
if (array_key_exists('Play', $output)) {setLogicLinkAusgang($id,2, $output['Play']);}
if (array_key_exists('Pause', $output)) {setLogicLinkAusgang($id,3, $output['Pause']);}
if (array_key_exists('Stop', $output)) {setLogicLinkAusgang($id,4, $output['Stop']);}
if (array_key_exists('FF', $output)) {setLogicLinkAusgang($id,5, $output['FF']);}
if (array_key_exists('FR', $output)) {setLogicLinkAusgang($id,6, $output['FR']);}
if (array_key_exists('MastVol',$output)) {setLogicLinkAusgang($id,7, $output['MastVol']);}
if (array_key_exists('LS1', $output)) {setLogicLinkAusgang($id,10,$output['LS1']);}
if (array_key_exists('LS2', $output)) {setLogicLinkAusgang($id,11,$output['LS2']);}
if (array_key_exists('LS3', $output)) {setLogicLinkAusgang($id,12,$output['LS3']);}
if (array_key_exists('LS4', $output)) {setLogicLinkAusgang($id,13,$output['LS4']);}
if (array_key_exists('LS5', $output)) {setLogicLinkAusgang($id,14,$output['LS5']);}
if (array_key_exists('LS6', $output)) {setLogicLinkAusgang($id,15,$output['LS6']);}
if (array_key_exists('LS7', $output)) {setLogicLinkAusgang($id,16,$output['LS7']);}
if (array_key_exists('LS8', $output)) {setLogicLinkAusgang($id,17,$output['LS8']);}
if (array_key_exists('LS9', $output)) {setLogicLinkAusgang($id,18,$output['LS9']);}
if (array_key_exists('LS10', $output)) {setLogicLinkAusgang($id,19,$output['LS10']);}
if (array_key_exists('LSV1', $output)) {setLogicLinkAusgang($id,20,$output['LSV1']);}
if (array_key_exists('LSV2', $output)) {setLogicLinkAusgang($id,21,$output['LSV2']);}
if (array_key_exists('LSV3', $output)) {setLogicLinkAusgang($id,22,$output['LSV3']);}
if (array_key_exists('LSV4', $output)) {setLogicLinkAusgang($id,23,$output['LSV4']);}
if (array_key_exists('LSV5', $output)) {setLogicLinkAusgang($id,24,$output['LSV5']);}
if (array_key_exists('LSV6', $output)) {setLogicLinkAusgang($id,25,$output['LSV6']);}
if (array_key_exists('LSV7', $output)) {setLogicLinkAusgang($id,26,$output['LSV7']);}
if (array_key_exists('LSV8', $output)) {setLogicLinkAusgang($id,27,$output['LSV8']);}
if (array_key_exists('LSV9', $output)) {setLogicLinkAusgang($id,28,$output['LSV9']);}
if (array_key_exists('LSV10', $output)) {setLogicLinkAusgang($id,29,$output['LSV10']);}
} else {
// kein UDP-Paket empfangen: Hier könnten z.B. HTTP-Request verarbeitet werden
if ($E=getLogicEingangDataAll($id)) {
$user = $E[33]['value'];
$ip = $E[34]['value'];
$url20 = "http://".$ip."/%7E".$user."/iControl.php?c=apvolume&ap1=Computer&p2=".$E[20]['value']);
$url21 = "http://".$ip."/%7E".$user."/iControl.php?c=apvolume&ap1=Computer&p2=".$E[21]['value']);
if ($E[20]['value']!=0 && $E[20]['refresh']==1) {
$ctx=stream_context_create(array('http' => array('timeout' => 3 ))); // 3 Sekunden Timeout
$r=file_get_contents($URL20,0,$ctx); // komplette Antwort abwarten
}
if ($E[21]['value']!=0 && $E[21]['refresh']==1) {
$ctx=stream_context_create(array('http' => array('timeout' => 3 )));
$r=file_get_contents($URL21,0,$ctx);
}
}
}
usleep(1000*100); //z.B. 100ms warten - wichtig, um die CPU-Last zu begrenzen!
}
}
}
socket_close($socket);
}
sql_disconnect();
?>
###[/EXEC]###Zuletzt geändert von coliflower; 04.02.2016, 10:41.Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Eine Ergänzung noch ...
Kann man anstatt $user und $ip in der $url auch so coden ?
PHP-Code:$url20 = "http://".$E[33]['value']."/%7E".$E[34]['value']."/iControl.php?c=apvolume&ap1=Computer&p2=".$E[20]['value']);
$url21 = "http://".$E[33]['value']."/%7E".$E[34]['value']."/iControl.php?c=apvolume&ap1=Computer&p2=".$E[21]['value']);
Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Klar kann man das so machen - $E[][] ist schließlich nichts weiter als eine Variable (in Form eines Arrays).
$E kann selbstverständlich mehrfach "eingelesen" werden - nichts anderes passiert ja auch innerhalb der Schleife...
Die Länge einer Zeile ist übrigens vollkommen WurschtAbgesehen von schlechter Lesbarkeit vielleicht.
Diagonal gelesen scheint das Script in Ordnung zu sein - allerdings würde ich noch ein paar mögliche "Fehler" abfangen, z.B. wenn E33/34 leer sind u.d.G.EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Klar kann man das so machen - $E[][] ist schließlich nichts weiter als eine Variable (in Form eines Arrays).
PHP-Code:$r=file_get_contents($URL.$E[20]['value'],0,$ctx);
Danke und LG, Dariusz
GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL
Kommentar
-
Verstehe Deine Frage nicht...$E[][] kannst Du wie jede andere Variable auch einsetzen - egal wo und wie und was...
EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
Kommentar