HomeMatic über Soap

Hallo alle zusammen,

ich beschäftige mich gerade mit der SOAP-Schnittstelle über VB.NET.
Das klappt auch soweit recht gut. (überraschender weise :slight_smile: ).

Was ich noch nicht verstanden habe ist wie ich HomeMatic über die SOAP anspreche.

Ich habe schon einiges ausprobiert, komme aber zu keinem Ergebnis.

Hat jemand ein Beispiel für HomeMatic über SOAP?
Sprache ist egal. Das klamüser ich mir dann schon auseinander.

Besten Dank

Martin

Hat noch keiner HomeMatic über SOAP eingebunden?

Es ist jetzt nicht ober, super wichtig. Ich würde nur gerne diese Option kennen.
An sonsten geht ja noch XML-RPC.

Für eure Antwort besten Dank.

Bis dann

Martin

Es funktioniert wie mir jedem anderen Gerät. Einfach IIPSHomaticDevice reinholen und dann schalten.

paresy

Hallo Paresy,

besten Dank für deine Antwort.

Was ich bis jetzt habe ist das:

Einen Dienstverweis auf „IIPSHMDevice“

Und das bischen Code


        Dim IPS_HMDevice = New IIPSHMDeviceService.WriteValueBooleanRequest
        Dim IPS_HMTID As New IIPSHMDeviceService.TIDHeader
        IPS_HMTID.ID = 29234

        IPS_HMDevice.TIDHeader = IPS_HMTID
        IPS_HMDevice.Parameter = "STATE"
        IPS_HMDevice.Value = True

Bei FS20 gibt es dan den Server und da den „.switch()“ Befehl.

Wie schicke ich es denn mit HomeMatic raus?

Martin

Hab noch mal was probiert.


Public IPSHMDevice As New IIPSHMDeviceService.IPSHMDeviceClient


Dim temp_TID As New IIPSHMDeviceService.TIDHeader
temp_TID.ID = 29236
IPSHMDevice.WriteValueBoolean(temp_TID, "STATE", False)
temp_TID = Nothing

wenn ich das ausführe bekomme ich diese Exception:

Die SetProtocolRequest-Nachricht darf keine Header enthalten, wenn das Format „RPC/encoded“ verwendet werden soll.

Als ersten Parameter kann ich aber nur einen TIDHeader übergeben.
Was ist da falsch? Für Hilfe wäre ich echt Dankbar.

Bis dann

Martin

Funktioniert denn FS20?

Ich weiß leider nicht mehr wie das mit VB.Net funktioniert. Ich weiß nur noch, dass man irgendeine alte Schnittstelle von SOAP importieren musste…

paresy

Hallo Martin,

hast Du denn den WebService richtig eingebunden oder hast Du nur die Instanz deklariert?

Hallo paresy, Hallo dfhome,

@Paresy

verstehe ich das so das ich über die FS20 anbindung auch die HomeMatic erreiche?

Im prinzip habe ich die SOAP-Schnittstelle am laufen. Das einzige was mir fehlt ist das schalten/setzen meiner HomeMatic Hardware. Ich habe „IIPSHMDevice“ genauso eingebunden wie „IIPSVariableManager“. (siehe Bild)

Wenn ich das richtig verstehe muss ich einen TIDHeader instanzieren und die ID meiner Instanz übergeben. Danach übergebe ich der instanz der WriteValueBoolean Klasse den TIDHeader, den Variablennamen unterhalb der Instanz und den Wert. Das ist auch das was die Instanz verlangt. Und so sieht ja auch der Befehl in IPS aus.


HM_WriteValueBoolean(29234 /*[Schäferweg\Obergeschoss\Büro\HM_Büro_Licht]*/, "STATE", TRUE);

Nur wenn ich das ausführe bekomme ich die Exception.

Die SetProtocolRequest-Nachricht darf keine Header enthalten, wenn das Format „RPC/encoded“ verwendet werden soll.

Irgend was mache ich noch falsch. Ich brüte einfach schon zu lange an dem Problem.

Ich denke ich sehe den Wald vor lauter Bäumen nicht mehr. Wenn mir jemand ein Beispiel, von mir aus in einer anderen Sprache zeigen könnte…

Da ist das wieder… mit dem geistigen Gepäck (was mir fehlt).

Bis dann

Martin

Hallo alle zusammen,

ich habe den Fehler gefunden. Es läuft jetzt.

Holy Moly!! Was ne Zangengeburt!! :rolleyes:

Der Fehler war das man keinen Dienstverweis sondern einen Webverweis anlegen muss. Das ist mir nur nicht sofort aufgefallen weil der IIPSVarialbeManager auch als Dienstverweis läuft.

Ich schreibe das gerade noch mal zusammen. Als eine art SOAP in VB.NET Step by Step.

Bis dann

Martin