Variablen aktualisieren über SOAP-Schnittstelle

Hallo,

da ich gerade ein Projekt bearbeite bei dem ich über die SOAP-Schnittstelle mit IPS kommuniziere habe ich folgende Frage: Ich möchte unter Anderem Statuswerte visualisieren und suche daher nach einer Möglichkeit, bei Änderungen der betreffenden Werte die Anzeigen automatisch zu aktualisieren. Wie ist der richtige Ansatz dafür? Eine Notification gibt es bei SOAP ja eigentlich gar nicht oder? Muss ich stattdessen in Intervallen abfragen? Und wenn ja, mit welcher Funktion? Ich will auch nicht unbedingt ständig unnötigen Traffic verursachen.

Danke schonmal…

Schau mal hier: SOAP Schnittstelle ansprechen (VB.Net) - IP-Symcon Community Forum
Notification gibt es; es wird halt eine Message über SOAP geschickt.

Hi2all,
bei der suche nach einer lösung für mein Problem bin ich unter anderem über obenstehenden Beitrag gestolpert. sokkederheld hatte damals ein ganz ähnliches problem, deshalb poste ich es mal hier.
bei mir geht’s um den status eines LCN-binärsensors. diese variable wird ja ausserhalb meiner vb.net-welt geändert (im konkreten fall ein überfahrschalter), d.h. anders als durch zyklische abfragen (trafficintensiv) bekomme ich diese änderung nie in meine entwicklungswelt. dazu gleich die erste frage: wie ist das im designer gelöst? wie bzw. wodurch bekommt der diese information serviert?
meine spezielle situation ergibt noch ein weiteres problem: durch das überfahren dieses schalters wechselt der sensor nur sehr kurz in 1 geht aber sofort wieder in 0. das reicht für lcn irgendwas auszulösen, ips und in weitere folge vb bekommt das jedoch oft gar nicht mit (bedingt u.a. durch die intervallabfrage).
nun gut, denke ich, dann schalte ich in lcn ein virtuelles relais mit dem impuls vom bin.sensor, lasse das 5sec. auf 1 damit es für die zyklische abfrage reicht und werte den binärsensor nicht direkt, sondern über dieses relais aus.
wenn ich mir das im designer anschaue, springt zwar nach auslösung das relais auf 1, fällt aber augenblicklich wieder ab, egal welche verzögerung im lcn eingestellt ist.
daher frage zwei: warum? werden virtuelle relais im ips vielleicht gar nicht berücksichtigt? (anmerkung zum verständnis für die die es nicht wissen: in lcn kann man relais zur statusabfrage benutzen, egal ob tatsächlich ein echtes relais am modul hängt oder nicht. sozusagen als boolsche variable).
noch was ist mir aufgefallen: die berühmten lcn-lämpchen fehlen bei der modul-konfiguration. ist das absicht weil diese möglicherweise durch php-code ersetzbar sind? wenn ja, hätte jemand bitte ein snippet diesbzgl.?

vielen dank zunächst mal!
lG
Chri

Deine Logik stimmt nicht ganz, denn es gibt ja keine Intervallabfrage, wo Du IPS in einer bestimmten Zykluszeit abfragst. Dein TCP-Listener lauscht auf der SOAP-Schnittstelle. Sobald sich in IPS eine Variable ändert (sei es LCN, FS20 o.ä.), wird dies von IPS selbstständig auf der Schnittstelle rausgeschickt. Du bekommst also immer alle Nachrichten mit.
Bzgl. dem kurzen Sprung auf 1: das musst Du allein in deiner Software lösen, denn IPS meldet Dir nur den Sprung, alles weitere musst Du erledigen.

was bitte ist ein TCP-Listener???

eine Serverkomponente, die auf eingehenden TCP-Traffic reagiert

Leute, es tut mir leid, aber ich verstehe nur Bahnhof!

Einerseits habe ich SOAP als Schnittstelle die mir alle relevanten Klassen für Vb.net liefern sollte und auf die ich auch zugreifen kann, andererseits soll ich diesen ominösen TCP-Listener zusätzlich benutzen ???
Ich habe mit VB.net gerade erst angefangen, was ich jedoch durch Google rausgekriegt habe ist der Listener sowas wie das Winsock-Steuerelement in VB6, also für Client/Server-Kommunikationsanwendungen.
Ich will aber kein Chat-Programm schreiben, welches ununterbrochen irgendwelche Textstreams reinholt oder rausschickt, ich will lediglich wissen wann sich welche Variable ändert. Sollte das tatsächlich mit dem listener möglich sein bitte ich um ein konkretes Code-Beispiel.
@dfhome: mit dem „Sprungmelden“ habe ich kein Problem, „dahinter“ (in meiner Anwendung) komme ich schon klar damit, eigenartig ist nur, dass IPS die Relais-Variable sofort wieder auf off zurücksetzt, obwohl sie im Bus noch 5sek. on ist.

lg
Chri

dankend hoffen auf hilfe
Chri

Vielen Dank

Jetzt muss ich mal doof fragen: hast Du Dir den verlinkten Thread oben mal genau durchgelesen? Falls ja, hättest Du den Link zur meiner Klasse gefunden. Dort findest Du ein VB.Net-Projekt, wo alles schon programmiert ist.
Hier nochmal der Link:

Und nächstes Mal: Augen auf :smiley: