Hallo,
ich hab seit neuesten eine NetIO4 Steckdosenleiste für meinen Serverschrank, die sich mittels CGI schalten lässt.
Ich verwende zum Ansprechen der Steckdosenleiste, das TCP Makro aus dem Forum (natürlich auf meine Situation adaptiert):
Leider bekomme ich immer einen ReturnCode 2 (== Error bei P02_connectionState) wenn der eibPC versucht, mit netIO4ID_connectionState = connecttcp(netIO4ID_connPort,netIO4ID_connIP) eine Verbindung aufzubauen.
Meine Variablenbelegung sieht folgendermaßen aus:
eibpc_variablen.png
Wenn ich im Firefox die URL http://192.168.1.11/event?pass=password&port=1111 aufrufe bekomme ich einen ReturnCode 200 OK zurück und die NetIO4 schaltet wie gewünscht:
netio4_firefox.png
Ich hab leider keine Idee, warum der eibPC sich nicht zur NetIO4 verbinden kann. Wie kann ich das am besten rausfinden bzw. lösen?
Danke im Voraus.
lg, Peter
ich hab seit neuesten eine NetIO4 Steckdosenleiste für meinen Serverschrank, die sich mittels CGI schalten lässt.
Ich verwende zum Ansprechen der Steckdosenleiste, das TCP Makro aus dem Forum (natürlich auf meine Situation adaptiert):
Code:
:begin connectKoukaamNetIO4(netIO4ID, netIOIP, netIOIPString)
// Allgemeine Variablen definieren
netIO4ID_initConnection = AUS
netIO4ID_CRLF = $$
netIO4ID_GET_1 = $$
netIO4ID_GET_2 = $$
netIO4ID_GET_3 = $$
netIO4ID_GET_4 = $$
netIO4ID_GET_5 = $$
netIO4ID_GET_6 = $$
netIO4ID_connString = $$
netIO4ID_connIP = netIOIP
netIO4ID_connIPString = netIOIPString
netIO4ID_connPort = 80u16
netIO4ID_connectionCommand = $$
netIO4ID_connectionCommandType = $$
netIO4ID_isConnectionInitialized=AUS
netIO4ID_connectionState = 6u08
netIO4ID_isConnected=AUS
netIO4ID_isConnectionClosed=AUS
netIO4ID_aboutToSend=AUS
if after(systemstart(), 300u64) then {
stringset(netIO4ID_CRLF, 0x0A0Du16, 0u16);
netIO4ID_connectionCommand = $1000$;
netIO4ID_connectionCommandType = $POST$;
netIO4ID_isConnectionInitialized=AUS;
netIO4ID_isConnected=AUS;
netIO4ID_isConnectionClosed=AUS;
} endif
// TCP Message für Abfrage
if change(netIO4ID_connectionCommand) then {
netIO4ID_GET_1 = netIO4ID_connectionCommandType + $ /event?pass=password&port=$ + netIO4ID_connectionCommand + $ HTTP/1.0$ + netIO4ID_CRLF;
netIO4ID_GET_2 = $User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0$ + netIO4ID_CRLF;
netIO4ID_GET_3 = $Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8$ + netIO4ID_CRLF;
netIO4ID_GET_4 = $Host: $ + netIO4ID_connIPString + netIO4ID_CRLF;
netIO4ID_GET_5 = $Connection: keep-alive$ + netIO4ID_CRLF;
netIO4ID_GET_6 = $Accept-Encoding: gzip, deflate$ + netIO4ID_CRLF + netIO4ID_CRLF;
netIO4ID_connString = netIO4ID_GET_1 + netIO4ID_GET_2 + netIO4ID_GET_3 + netIO4ID_GET_4 + netIO4ID_GET_5 + netIO4ID_GET_6;
netIO4ID_isConnectionInitialized=EIN;
netIO4ID_aboutToSend=AUS;
netIO4ID_isConnected=AUS;
} endif
if after(netIO4ID_isConnectionInitialized==EIN, 300u64) then {
netIO4ID_isConnected=EIN;
netIO4ID_isConnectionInitialized=AUS;
netIO4ID_connectionState = connecttcp(netIO4ID_connPort,netIO4ID_connIP);
} endif
// TCP Nachricht senden
if delay(netIO4ID_isConnected==EIN, 500u64) and netIO4ID_connectionState == 0u08 then {
netIO4ID_aboutToSend=EIN;
netIO4ID_isConnectionClosed=EIN;
sendtcparray(netIO4ID_connPort, netIO4ID_connIP, netIO4ID_connString, size(netIO4ID_connString));
} endif
if netIO4ID_isConnectionClosed == EIN then {
netIO4ID_isConnectionInitialized = AUS;
netIO4ID_isConnected = AUS;
netIO4ID_connectionState = 1u08;
netIO4ID_isConnectionClosed = AUS;
closetcp(netIO4ID_connPort,netIO4ID_connIP);
} endif
:end
Meine Variablenbelegung sieht folgendermaßen aus:
eibpc_variablen.png
Wenn ich im Firefox die URL http://192.168.1.11/event?pass=password&port=1111 aufrufe bekomme ich einen ReturnCode 200 OK zurück und die NetIO4 schaltet wie gewünscht:
netio4_firefox.png
Ich hab leider keine Idee, warum der eibPC sich nicht zur NetIO4 verbinden kann. Wie kann ich das am besten rausfinden bzw. lösen?
Danke im Voraus.
lg, Peter



Kommentar