Client Socket - Vebindungsprobleme

Hallo, ich versuche gerade einen Weg zu finden meine neue Heizungsregelung in IPS einzubinden. Die Regler kommunizieren untereinander über einen eBus, ein Modul zur Webanbindung erlaubt mir Zugriff über LAN auf Soll- und Istwerte.
IPS sollte doch eigentlich über eine Client Socket Instanz mit entsprechender Registervariable mit dem Modul Kontakt aufnehmen können … die Einrichtung des Client Servers klappt, aber nach ein paar Sekunden wird die Instanz im Objektbaum rot markiert.
Nach weiteren Sekunden wird die Verbindung automatisch wiederhergesteltt … dann bricht sie wieder ab … und so weiter. Der Debug String zeigt:

[i]"HTTP/1.1 500 Internal Server Error
Server: RC7000/1.0
Content-Type: text/xml; charset=utf-8
Content-Length: 434
Connection: close

<SOAP-ENV:Envelope xmlns:SOAP-ENV=„http://schemas.xmlsoap.org/soap/envelope/“ xmlns:SOAP-ENC=„http://schemas.xmlsoap.org/soap/encoding/“ xmlns:xsi=„http://www.w3.org/2001/XMLSchema-instance“ xmlns:xsd=„XML Schema“ xmlns:ns=„http://ws01.lom.ch/soap/“><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>unknown error</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>"[/i]

Kann mir da jemand weiterhelfen?

Gruß, Michael

IPS-Seitig sieht das doch ganz gut aus. Nur Dein Modbus-Controler versteht scheinbar nicht, was Du von ihm willst, schickt eine Errormessage und beendet dann von sich aus die Verbindung.

Tommi

…mmhh…

Auf diesem RC7000 kann ich einwandfrei vom Internet Explorer aus zugreifen, leider sind die von mir gesuchten Daten tief in den Seiten verschachtelt und ich wüsste nicht wie ich auf die richtige Seite via IPS zugreifen könnte um mir den fraglichen Wert herauszuziehen. Diese Art von Verbindung klappt einwandfrei

Alternativ läuft ein kleines Progrämmchen vom Hersteller welches die gewünschten Werte zyklisch in dem Programmfenster updatet … da kann ich meines Wissens nach auch nicht via IPS zugreifen.

Nächste Möglichkeit wäre das Auslesen eines .cvs Files welches das obige Progrämmchen mit den interessanten Daten füllt - da fehlt mir die Möglichkeit den Zugriff von IPS mit dem des Programmes zu synchronisieren.

=> die beste Möglichkeit wäre doch direkt mit dem Gerät zu kommunizieren, ich möchte auf meinem Server nicht unnötige Last verursachen …

Hat jemand eine Idee wie ich das am besten löse?

Gruß, Michael

Hallo zusammen

ich weiß der Thread ist sehr alt, aber vielleicht ja doch für den ein oder anderen noch interessant
da ich in den Besitz einer RC7000 Schnittstelle für den e-bus (TEM) Regler gekommen bin und auch eine Beschreibung der Schnittstelle habe, zwar in einem sehr frühen Stand aber sie funktioniert :slight_smile:
Leider habe ich Probleme mit der SOAP Schnittstelle in php…
Daher wäre es prima wenn vielleicht einer Helfen könnte.

Hier ein Beispiel das in html das funktioniert.

Viele Grüße
Stefan


<head>
<title>ICOM Soap SimpleTest</title>
<style type="text/css">
.style1
{
width: 123px;
}
</style>

<script type="text/javascript">
<!--

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari, IE>=7.0
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer < 7.0
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
}
}
}
return xmlHttp;
}
function stateChanged()
{
	
if (xmlHttp.readyState==4) {
document.getElementById("txtStatus").innerHTML= "("+xmlHttp.status+") "+ xmlHttp.statusText;
var response= xmlHttp.responseXML.documentElement;
var value= response.getElementsByTagName("value")[0].firstChild.data;
document.getElementById("txtHint").innerHTML=value;
alert ("2");
}
}



function GetDP(oid)
{
	alert ("1");
var xml=
'<?xml version="1.0" encoding="utf-8"?>'
+'<soap:Envelope'
+' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'
+' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
+' xmlns:xsd="http://www.w3.org/2001/XMLSchema">'
+'<soap:Body>'
+'<readDpRequest xmlns="http://ws01.lom.ch/soap/">'
+'<ref xmlns="">'
+'<oid>' + oid + '</oid>'
+'</ref>'
+'<startIndex xmlns="">0</startIndex>'
+'<count xmlns="">-1</count>'
+'</readDpRequest>'
+'</soap:Body>'
+'</soap:Envelope>';
return xml;
}




function showHint(oid, url)
{

document.getElementById("txtStatus").innerHTML= "Status= ...";
document.getElementById("txtHint").innerHTML= "..";
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
return;
}

var soapAction= "http://ws01.lom.ch/soap/readDP";
xmlHttp.onreadystatechange=stateChanged;
var sRequestBody;
sRequestBody= GetDP(oid);
xmlHttp.open("POST" , url , true, "OEM", "123");

xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttp.setRequestHeader("SOAPAction", soapAction);
xmlHttp.send(sRequestBody);
}
//-->
</script>
</head>
<body>
<h3>ICOM einfacher WebService-Test mit AJAX
<input type="button" value="Quadrat errechnen" onclick="cmd()">
</h3>
<p>Wähle ein Service aus der untenstehenden Box und drücke die
"Invoke"-Taste</p>
<table>
<tr>
<td class="style1">URL:</td>
<td><input id="URL" name="url" type="text" style="width: 199px"
value="http://192.168.2.34/?wsdl" />
</td>
</tr>
<tr>
<td class="style1">Web Services (readDP(OID)): </td>
<td>
<select id="WebServices" style="width: 199px"
name="WebServices">
<option selected="selected" value="/0/0/2">DateTime</option>
<option value="/1/0/0/11/0">Version</option>
<option></option>
</select>
<!--
<input id="Button1" type="button" value="Invoke the Web Service" onclick="showHint('/0/1/0/2','http://192.168.2.34/?wsdl')" //-->
<input id="Button1" type="button" value="Invoke the Web Service" onclick="showHint('/1/2/0/120/5','http://192.168.2.34/?wsdl')"
/>
</td>
</tr>
</table>
<p> </p>
<hr />
<table>
<tr>
<td class="style1">Response:</td>
</tr>
<tr>
<td>HTTP Status:</td>
<td><span id="txtStatus">cbvdfhh</span></td>
</tr>
<tr>
<td>SOAP Resp:</td>
<td><span id="txtHint"></span></td>
</tr>
</table>
</body>
</html>

und hier mein Versuch leider erfolglos


<?
//Aussentemperatur
$oid = "/1/2/0/120/0";


$soapAction= "http://ws01.lom.ch/soap/readDP";
$sRequestBody= GetDP($oid);


//Anrufliste abholen
$client = new SoapClient(
    null,
    array(
        'location'   => "http://192.168.2.34/?wsdl",
        'uri'        => "http://ws01.lom.ch/soap/readDP",
		  'login'      => "OEM",
        'password'   => "123"
    )
);

$result= $client->readDP($sRequestBody);

//echo $ValueXml;
$anruflistexml = @simplexml_load_file($result);
if ($result === false)
{
	WriteLogMessage(FATAL, 'Datei: '.__file__.' Zeile: '.__line__, 'Fehler beim laden der Anrufliste.');
	return;
}

function GetDP($oid)  {
$xml = '<?xml version="1.0" encoding="utf-8"?>'
.'<soap:Envelope'
.' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'
.' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
.' xmlns:xsd="http://www.w3.org/2001/XMLSchema">'
.'<soap:Body>'
.'<readDpRequest xmlns="http://ws01.lom.ch/soap/">'
.'<ref xmlns="">'
.'<oid>' . $oid . '</oid>'
.'</ref>'
.'<startIndex xmlns="">0</startIndex>'
.'<count xmlns="">-1</count>'
.'</readDpRequest>'
.'</soap:Body>'
.'</soap:Envelope>';
return $xml;
}

?>

Du machst das mit den Parametern im Funktionsaufruf leider falsch. Du darfst keinen XML Content in dem Aufruf von readDP über geben, sondern SoapParameter. Beispiele sind bei den SOAP-Scripten der Fritzbox (Forum und Wiki) oder auch bei PHP.net.
OID wäre dein Parameter.
Result enthält dann das Ergebnis der Funktion, also deine Temperatur.
Das simpleloadxml gehört zur Anrufliste der FB, und hatte hier erst mal nix zu suchen.
Michael

Hallo Michael,

danke für die Hilfe, leider komme ich aber trotzdem nicht wirklich weiter, werde noch ein wenig herumprobieren…
Vielleicht hat jemand ja noch ein paar Infos für mich…

Viele Grüße
Stefan

Alternativ so wie im JavaScript.
Alles zu Fuß (Content und Header) erzeugen und dann per Socket (PHP nicht IPS-Socket) raushauen und Antwort auswerten (altes Script für UP/Downstream der FB von paresy ist ein schönes Beispiel).
Gibt es denn eine Doku über die Funktionen ? Vielleicht sogar eine XML Datei ? Sonst ist das ohne HW immer schwer umzusetzen.
Michael

Hallo Michael,

ja die XML gibt es… habe sie mal angehängt
werde den anderen Weg dann mal versuchen.

Viele Grüße und Vielen Dank
Stefan

<?xml version="1.0" encoding="UTF-8"?>

-<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/" xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns="http://ws01.lom.ch/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://ws01.lom.ch/soap/ws.wsdl" targetNamespace="http://ws01.lom.ch/soap/ws.wsdl" name="ws">


-<types>


-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://ws01.lom.ch/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" targetNamespace="http://ws01.lom.ch/soap/" attributeFormDefault="unqualified" elementFormDefault="unqualified">

<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>


-<complexType name="emptyRequest">

<sequence> </sequence>

</complexType>


-<complexType name="emptyResponse">

<sequence> </sequence>

</complexType>


-<complexType name="DpRef">


-<sequence>

<element name="oid" maxOccurs="1" minOccurs="1" type="xsd:string"/>

<element name="prop" maxOccurs="1" minOccurs="0" type="xsd:string"/>

</sequence>

</complexType>


-<complexType name="DpLst">


-<sequence>

<element name="index" maxOccurs="1" minOccurs="1" type="xsd:int"/>

<element name="name" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="prop" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="desc" maxOccurs="1" minOccurs="0" type="xsd:string"/>

</sequence>

</complexType>


-<complexType name="DpCfg">


-<sequence>

<element name="index" maxOccurs="1" minOccurs="1" type="xsd:int"/>

<element name="name" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="prop" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="desc" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="value" maxOccurs="1" minOccurs="1" type="xsd:string"/>

<element name="unit" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="type" maxOccurs="1" minOccurs="0" type="xsd:int"/>

<element name="step" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="minValue" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="maxValue" maxOccurs="1" minOccurs="0" type="xsd:string"/>

</sequence>

</complexType>


-<complexType name="DP">


-<sequence>

<element name="index" maxOccurs="1" minOccurs="1" type="xsd:int"/>

<element name="name" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="prop" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="desc" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="value" maxOccurs="1" minOccurs="1" type="xsd:string"/>

<element name="unit" maxOccurs="1" minOccurs="0" type="xsd:string"/>

<element name="timestamp" maxOccurs="1" minOccurs="0" type="xsd:int"/>

</sequence>

</complexType>


-<complexType name="listDpRequest">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="startIndex" maxOccurs="1" minOccurs="1" type="xsd:int"/>

<element name="count" maxOccurs="1" minOccurs="1" type="xsd:int"/>

</sequence>

</complexType>


-<complexType name="listDpResponse">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="dpLst" maxOccurs="unbounded" minOccurs="0" type="ns:DpLst"/>

</sequence>

</complexType>


-<complexType name="getDpRequest">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="startIndex" maxOccurs="1" minOccurs="1" type="xsd:int"/>

<element name="count" maxOccurs="1" minOccurs="1" type="xsd:int"/>

</sequence>

</complexType>


-<complexType name="getDpResponse">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="dpCfg" maxOccurs="unbounded" minOccurs="0" type="ns:DpCfg"/>

</sequence>

</complexType>


-<complexType name="setDpRequest">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="dpCfg" maxOccurs="unbounded" minOccurs="0" type="ns:DpCfg"/>

</sequence>

</complexType>


-<complexType name="setDpResponse">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

</sequence>

</complexType>


-<complexType name="readDpRequest">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="startIndex" maxOccurs="1" minOccurs="1" type="xsd:int"/>

<element name="count" maxOccurs="1" minOccurs="1" type="xsd:int"/>

</sequence>

</complexType>


-<complexType name="readDpResponse">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="dp" maxOccurs="unbounded" minOccurs="0" type="ns:DP"/>

</sequence>

</complexType>


-<complexType name="writeDpRequest">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

<element name="dp" maxOccurs="unbounded" minOccurs="0" type="ns:DP"/>

</sequence>

</complexType>


-<complexType name="writeDpResponse">


-<sequence>

<element name="ref" maxOccurs="1" minOccurs="1" type="ns:DpRef"/>

</sequence>

</complexType>

<element name="listDpRequest" type="ns:listDpRequest"/>

<element name="getDpRequest" type="ns:getDpRequest"/>

<element name="setDpRequest" type="ns:setDpRequest"/>

<element name="readDpRequest" type="ns:readDpRequest"/>

<element name="writeDpRequest" type="ns:writeDpRequest"/>

<!-- operation response element -->


<element name="listDpResponse" type="ns:listDpResponse"/>

<!-- operation response element -->


<element name="getDpResponse" type="ns:getDpResponse"/>

<!-- operation response element -->


<element name="setDpResponse" type="ns:setDpResponse"/>

<!-- operation response element -->


<element name="readDpResponse" type="ns:readDpResponse"/>

<!-- operation response element -->


<element name="writeDpResponse" type="ns:writeDpResponse"/>

</schema>

</types>

<message name="versionRequest"> </message>


-<message name="versionResponse">

<part name="result" type="xsd:int"/>

</message>


-<message name="listDP">

<part name="parameters" element="ns:listDpRequest"/>

</message>


-<message name="listDpResponse">

<part name="parameters" element="ns:listDpResponse"/>

</message>


-<message name="getDP">

<part name="parameters" element="ns:getDpRequest"/>

</message>


-<message name="getDpResponse">

<part name="parameters" element="ns:getDpResponse"/>

</message>


-<message name="setDP">

<part name="parameters" element="ns:setDpRequest"/>

</message>


-<message name="setDpResponse">

<part name="parameters" element="ns:setDpResponse"/>

</message>


-<message name="readDP">

<part name="parameters" element="ns:readDpRequest"/>

</message>


-<message name="readDpResponse">

<part name="parameters" element="ns:readDpResponse"/>

</message>


-<message name="writeDP">

<part name="parameters" element="ns:writeDpRequest"/>

</message>


-<message name="writeDpResponse">

<part name="parameters" element="ns:writeDpResponse"/>

</message>


-<portType name="wsPortType">


-<operation name="version">

<documentation>Function to get the current I-COM version.</documentation>

<input message="tns:versionRequest"/>

<output message="tns:versionResponse"/>

</operation>


-<operation name="listDP">

<documentation>Use this function to list data points in a given menu level.</documentation>

<input message="tns:listDP"/>

<output message="tns:listDpResponse"/>

</operation>


-<operation name="getDP">

<documentation>Use this function to return the configuration of a data point, or a group of data points.</documentation>

<input message="tns:getDP"/>

<output message="tns:getDpResponse"/>

</operation>


-<operation name="setDP">

<documentation>Use this function to modify a data point, or a group of data points.</documentation>

<input message="tns:setDP"/>

<output message="tns:setDpResponse"/>

</operation>


-<operation name="readDP">

<documentation>Use this function to read the current value of a data point, or a group of data points.</documentation>

<input message="tns:readDP"/>

<output message="tns:readDpResponse"/>

</operation>


-<operation name="writeDP">

<documentation>Use this function to write to the value of a data point, or a group of data points.</documentation>

<input message="tns:writeDP"/>

<output message="tns:writeDpResponse"/>

</operation>

</portType>


-<binding name="ws" type="tns:wsPortType">

<SOAP:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>


-<operation name="version">

<SOAP:operation style="rpc" soapAction=""/>


-<input>

<SOAP:body namespace="http://ws01.lom.ch/soap/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>

</input>


-<output>

<SOAP:body namespace="http://ws01.lom.ch/soap/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>

</output>

</operation>


-<operation name="listDP">

<SOAP:operation style="document" soapAction="http://ws01.lom.ch/soap/listDP"/>


-<input>

<SOAP:body use="literal" parts="parameters"/>

</input>


-<output>

<SOAP:body use="literal" parts="parameters"/>

</output>

</operation>


-<operation name="getDP">

<SOAP:operation style="document" soapAction="http://ws01.lom.ch/soap/getDP"/>


-<input>

<SOAP:body use="literal" parts="parameters"/>

</input>


-<output>

<SOAP:body use="literal" parts="parameters"/>

</output>

</operation>


-<operation name="setDP">

<SOAP:operation style="document" soapAction="http://ws01.lom.ch/soap/setDP"/>


-<input>

<SOAP:body use="literal" parts="parameters"/>

</input>


-<output>

<SOAP:body use="literal" parts="parameters"/>

</output>

</operation>


-<operation name="readDP">

<SOAP:operation style="document" soapAction="http://ws01.lom.ch/soap/readDP"/>


-<input>

<SOAP:body use="literal" parts="parameters"/>

</input>


-<output>

<SOAP:body use="literal" parts="parameters"/>

</output>

</operation>


-<operation name="writeDP">

<SOAP:operation style="document" soapAction="http://ws01.lom.ch/soap/writeDP"/>


-<input>

<SOAP:body use="literal" parts="parameters"/>

</input>


-<output>

<SOAP:body use="literal" parts="parameters"/>

</output>

</operation>

</binding>


-<service name="ws">

<documentation>I-COM Web Service since V0.38</documentation>


-<port name="ws" binding="tns:ws">

<SOAP:address location="http://ws01.lom.ch/soap/wsICOM.asmx"/>

</port>

</service>

</definitions>

Mit dieser WSDL wird das noch einfach (glaub ich)
Die musst du dann im SoapClient angeben (wo du null stehen hast).
Und brauchst dann auch location Uri etc nicht selbst raus suchen, das steht ja in der WSDL.
Einfach mal etwas einlesen (selbst habe ich es mit WSDL noch nicht gemacht).

PHP: SoapClient::SoapClient - Manual
Michael

so jetzt klappt es endlich mit der Schnittstelle.
das script ist zwar noch nicht schön aber es funktioniert erstmal mit ein paars Werten

Schreiben der Werte sollte so auch möglich sein, nächster Schritt

Übrigens die RC7000 Schnittstelle sollte mit den unterschiedlichsten Herrstellern, die TEM Regler, verbaut haben passen, da ich eine von Kroll an meiner Hautec habe…

Vielen Dank nochmal an Michael für die Unterstützung


$client = new SoapClient(
    "http://192.168.2.34/?wsdl",
    array(
     		'location'   	=> "http://192.168.2.34",
        	'uri'   			=> "http://ws01.lom.ch/soap/",
         'login'      	=> "OEM",
        	'password'   	=> "123"
    )
);

$oid="/1/2/0/120"; //komplette Globale Daten lesen
$result = $client->readDP(array('ref'=>array('oid'=>$oid),'startIndex'=>0,'count'=>-1));

$val = $result->dp[0]->value;
SetValueFloat(26160 , floatval($val));
//$oid[1] = "/1/2/0/120/1"; //00:02 Heizkreis Vorlauftemperatur 48779  Hautec\Heizkreis Vorlauftemperatur]
$val = $result->dp[1]->value;
SetValueFloat(48779 ,floatval($val));
//$oid[2] = "/1/2/0/120/2" //00:04 Warmwassertemperatur 24645  [Hautec\Warmwassertemperatur]
$val = $result->dp[2]->value;
SetValueFloat(24645 ,floatval($val));
//$oid[3] = "/1/2/0/120/3"; //00:07 Vorlauftemperatur Wärmeerzeuger 49628  [Hautec\Vorlauftemperatur Wärmeerzeuger]
$val = $result->dp[3]->value;
SetValueFloat(49628 ,floatval($val));
//$oid[4] = "/1/2/0/120/4"; //00:08 Rücklauftemperatur Wärmeerzeuger 49580  [Hautec\Rücklauftemperatur Wärmeerzeuger]
$val = $result->dp[4]->value;
SetValueFloat(49580 ,floatval($val));
//$oid[5] = "/1/2/0/120/5"; //00:70 Wärmequelle Austrittstemperatur 18853  [Hautec\Wärmequelle Austrittstemperatur]
$val = $result->dp[5]->value;
SetValueFloat(18853 ,floatval($val));
//$oid[6] = "/1/2/0/120/6"; //00:71 Wärmequelle Eintrittstemperatur 47675  [Hautec\Wärmequelle Eintrittstemperatur]
$val = $result->dp[6]->value;
SetValueFloat(47675 ,floatval($val));
//$oid[7] = "/1/2/0/120/7"; //00:107 Anlagetemperatur 40695  [Hautec\Anlagetemperatur]
$val = $result->dp[7]->value;
SetValueFloat(40695  ,floatval($val));
//$oid[8] = "/1/2/0/120/8"; //01:107 Anlagentemperatur Sollwert 56702  /*[Hautec\Anlagentemperatur Sollwert]*/
$val = $result->dp[8]->value;
SetValueFloat(56702 ,floatval($val));

//$oid[9] = "/1/2/0/120/9"; //02:20 Aussentemperatur Mittelwert 35714  /*[Hautec\Aussentemperatur Mittelwert]*/
$val = $result->dp[9]->value;
SetValueFloat(35714 ,floatval($val));


Hallo Stefan,

ich bin auch gerade im Kampf mit der Anbindung Ebus // IPSymcon. Genauer gesagt Weishaupt WRsol 2.1 // IPSymcon.
Bei mir funktioniert das von dir gepostete SOAP Script leider nicht. Fehlermeldung:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn’t load from ‚http://192.168.50.167/?wsdl‘ : failed to load external entity „http://192.168.50.167/?wsdl
in C:\IP-Symcon\scripts\16941.ips.php:9

Im Script hab ich die obersten Zeilen auf die IP meines RC7000 angepasst. Ein direkter Aufruf des angegebenen Links im Browser des Servers funktioniert… :

$client = new SoapClient(„http://192.168.50.167/?wsdl“,array(
‚location‘=> „http://192.168.50.167“,
‚uri‘ => „http://ws01.lom.ch/soap/“,
‚login‘=> „OEM“,
‚password‘ => „xxxx“,
‚user_agent‘ => ‚PHPSoapClient‘
)
);

Was kann das Problem sein ?