W&T WebIO und IPSymcon

Hi Leute!

Kennt jemand die kleinen Fernwirkgeräte von W&T? Ich habe vor kurzem eines abstauben können und frage mich nun ob ich dieses Teil über IPSymcon ansteuern kann! Web-IO 12x Digital Input, 12x Digital Output heißt das Gerät, genaueres steht auf der Herstellerhomepage.

Vielleicht weiß jemand Bescheid und kann mir helfen!

… kein Problem mit IPS.
Mit dem „WWW Reader“ sollte es klappen.
Alle notwendigen Befehle hat der Hersteller für das „Web-IO“ dokumentiert.

MST

PS: Beispiel um eine Allnet IP-Steckdose All3075 ein- und aus zu schalten
Auch hier bitte die Doku des Herstellers lesen - mehr können wir leider nicht supporten


$id = 20085;  // vom WWWReader
$status = 1;   // 1 fpr AN / 0 für AUS
WWWReader_SetPage($id, "http://192.168.2.85/r?b=1&r=0&s=". $status);
WWWReader_UpdatePage($id)

Okay, vielen Dank! Das hilft mir schon auf die Sprünge.

Hab mich mal ein bisschen damit ausseinander gesetzt. Leider mit wenig Erfolg, da ich mich zum Beispiel auf dem WuT einloggen muß bevor ich schalten kann. Hab momentan keine Idee wie ich das mit dem WWWReader hinbringen soll. Hat schon mal jemand etwas ähnliches gebastelt und kann mir ein „Besipielscript“ posten damit ich mir das Ganze etwas vorstellen kann?

Andere Frage: Könnte ich die Sache in IPS auch per TCP/UDP Sockets lösen? Das könnte das WuT auch, sollte ich es per HTML/PHP nicht hinbekommen. Dafür wäre Client- bzw. Serversocket in IPS zu verwenden oder?

Hoffe auf eine kleine Starthilfe :rolleyes:

Kommando zurück !!! Hab bereits einen Ansatz gefunden. Echt jedes Mal wenn ich hier euch befrage komme ich selbst drauf! DANKE

Hallo Hofimax,

könntest Du mir auch mal auf die Sprünge helfen. Ich habe auch 2 alte 50310 kostenfrei abgestaubt und wollte die einbinden.

Danke und Gruß

PS: Glückwusch um Geburtstag

Hi!

Danke für die Blumen :wink:

Ich habe einen 57631, aber die Befehle müssten dieselben sein. Ich habe das Ganze jetzt per IPS und WWWReader gelöst. Setzen der Outputs mache ich mit dem Befehel

http://192.168.100.18/outputaccess0?PW=wut&State=ON&

Das bei PW=… dein Passwort rein muß, brauch ich dir nicht erklären oder?

Die Inputs liest du mit

http://192.168.100.18/input0?PW=wut&

du erhälst dann zum Beispiel

input0;OFF

zurück.

Wie ich alles drumherum gemacht habe bzw. wie du die Outputs dann in eine Variable bringst usw. kannst du hier http://www.ipsymcon.de/forum/f3/text-parser-5423/ (oder eben nicht Text Parser ;-)) wunderbar nachlesen, da haben mich RWN und Torro ganz toll unterstützt!

Viel Spaß beim Tüfteln, finde die Teile echt toll!! Stehe für weitere Fragen gerne zur Verfügung.

Hallo hofimax,

genau das habe ich befürchtet. Leider unterstützen die 50xxx noch kein http zugriff(Die Kiste ist 10 Jahre alt^^). Sondern das läuft alles nur mit dieser TCP Client Socket Verbindung. Nur da stehe ich total auf dem Schlauch. Auf der W&T Seite gibt es leider nur ein Beispiel wie man das in Delphi lösen kann. Aber am WE sind die Kids im Urlaub und meine Frau muß arbeiten, da werde ich mich mal damit beschäftigen.

Gruß und Danke

Hast du schon mal nachgesehen ob man einen Firmware Upgrade machen kann? Vielleicht unterstützen sie dann http?

Bei dieses TCP Socket Verbindung kann ich dir auch nicht helfen, daran wäre ich auch gescheitert :o

Ja, habe ich gemacht, letzte Version (1.34) von diesem Jahr draufgespielt. Aber leider nix. Aber das wird schon.

Gruß

Irgendwie wirds bestimmt gehen! Der Rest des Forums hier kann dich auch bestimmt gut unterstützen!

Hallo an alle,

und schon stehe ich vor einem Problem. Ich habe einen Client Socket Verbindung erstellt und mit dem E/A - Com - Server verbunden. Aus dem Manual geht folgendes herrvor:

Um den Inhalt eines Paketes eindeutig identifizieren und auswerten zu können, müssen alle
Daten in Form dieser E/A-Strukturen an den E/A-Com-Server gesendet werden. Alle Stukturen
beginnen mit dem gleichen Header, der aus den folgenden 4 WORDs (16bit_Integer) besteht:
send_sequence und rec_sequence werden nur ausgefüllt, wenn man im Mode UDP die Kontrolle der Paketreihenfolge selbst implementieren möchte . Sonst sind diese Werte immer 0 und dürfen nicht weggelassen werden!
Der Wert struct_typ identifiziert den Inhalt der Struktur nach den ersten 4 WORDs und length gibt die Gesamtlänge der Struktur in Bytes an, also inklusive der ersten 4 WORDs.

Wenn einzelne Ausgänge gesetzt werden sollen habe ich mir mal das Beispiel genommen:

send_sequence= 0;
rec_sequence= 0;
struct_typ= 0x0009;// Struktur-Typ SET_BIT
length= 12;// Paketlänge in Bytes
typedef struct _SET_BIT
{ word set_bits; // Bit = 1: | Bitposition = 0:
// Ausgang wird gesetzt| wird nicht gesetzt
word value;// Pegel der zu setzenden Bits
} SET_BIT;
Bsp.:
set_bits = 0x0124 / value = 0x0104
Die Digitalen Ausgaenge A2 und A8 (Zaehlweise A0…11) werden auf HIGH
gesetzt und der Ausgang A5 auf LOW. Alle anderen Ausgaenge werden nicht
veraendert.

und folgendes versucht:

$Sendstring = chr(00).chr(00).chr(00).chr(00).chr(0x00).chr(0x09).chr(00).chr(12).chr(0x01) .chr(24).chr(0x01).chr(04);
CSCK_SendText(56938,$Sendstring);

Aber nix passiert. Kann mir wer helfen?

Nachdem ich die Pakete mal analysiert habe , mußte ich feststellen, das natürlich das „low“ Byte vor dem „high“ Byte stehen muß. Somit ist z.b. das Setzen des Ausgangs 0 wie folgt möglich.

$Sendstring = chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x09).chr(0x00).chr(0x0c).chr(00).chr(0xff) .chr(0x0f).chr(0x01).chr(0x00);
CSCK_SendText(56938,$Sendstring); 

Hallo an alle,

nachdem ich nun alle Schwierigkeiten beseitigt habe, läuft das ganze nun. Es ist doch wesentlich einfacher Ausgänge zu setzen und Inputs über eine TCP Client Socket Verbindung abzufragen, als es auf den ersten Blick ausschaut. Ich habe den Modus so gesetzt , das wenn Änderungen an den Eingängen auftreten, ein Datensatz an IPS gesendet wird.

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Datenempfang.ips.php
Trigger  : 
Interval : 
*/
include'global.ips.php';
$Daten = GetvalueString("WuT");
if (ord($Daten{4}) == 8){                 // 8 =  Daten kommen vom Input
$Input =  ord($Daten{10})+ ord($Daten{11})*256 ;    //Position 10 low Byte  Position 11 high Byte
   for ($i=0; $i<=11; $i++){              // Eingang 0 - 11 auswerten
      $Bit = ($Input >> $i) & 1;          // aus dem Integer , 0 oder 1 ermitteln
      SetValueBoolean("WuTIn".($i) , ($Bit == 1));  // einzelne Boolvariablen setzen
   }
}

?>

Das setzen der Ausgänge ist auch relativ easy.

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Outputs_setzen.ips.php
Trigger  : 
Interval : 
*/
include'global.ips.php';
$ID = 56938;                   //CSCK_ID
$Value = 0;                    // Initialisieren
$Sendstring = "\x00\x00\x00\x00\x09\x00\x0c\x00\xff\x0f";   //Header zum setzen von Bits

for ($i=0; $i<=7; $i++){       //low Byte      Ausgang 0-7
  if (GetvalueBoolean("WuTOut".$i)){
    $Value = $Value + pow(2,$i);
  }
}
$Sendstring .= chr($Value);    //Byte 11 anhängen

$Value = 0;
for ($i=8; $i<=11; $i++){      // high Byte Ausgang 8-11
   if (GetvalueBoolean("WuTOut".$i)){
   $Value = $Value + pow(2,($i-8));
   }
}
$Sendstring .= chr($Value);    //Byte 12 anhängen
CSCK_SendText($ID,$Sendstring);//absenden^^

?>

Ich kann die Teile von W & T nur empfehlen. Jede Menge Ein- und Ausgänge die überall im Netzwerk von IPS angesprochen werden können.

Gruß
A

RESPEKT Attain! :eek:

Mit TCP Client Socket und meinem fast nicht vorhanden PHP-Wissen hätte ich die W&T niemals in mein IPS gebracht. Aber gerade daran sieht man jetzt hier, wie flexibel die Teile in der Handhabung sind. Und du bringst sie überall im IP-Netzwerk unter.

Ich habe die Version mit COM-Server integriert. Seit gestern habe ich auf dem W&T noch ein 1-Wire Netzwerk stecken per DS9097U.

Leider sind die W&T’s nícht ganz billig, zumindest für meinen Geschmack…