Hallo,
ich will in einem C#-Programm über die JSON-RPC-Schnittstelle in IP-Symcon einen Z-Wave-Schalter ein- und ausschalten. Bisher habe ich keine Erfahrung mit der JSON-RPC-Schnittstelle.
Ist die Verbindung über die JSON-RPC-Schnittstelle bidirektional?
Erhalte ich im C# eine Rückmeldung, wenn ich den Z-Wave-Schalter auf true oder false setze?
Wenn ja, gibt es ein Beispiel?
die Anfrage ist bidirektional und jeder Aufruf wird bestätigt.
Hier mal ein Javascript-Ausschnitt, wie so ein Aufruf möglich ist:
// Build request object
let RPCrequest = {
jsonrpc: '2.0',
method: method, // Name of the method, e.g., 'SetValue'
params: params, // All parameters in array, e.g., [ 12345, 23 ] for SetValue
id: id // Any ID for a call, will respond with the same ID
};
// Configure the request
let httpRequest = new XMLHttpRequest();
httpRequest.open('POST', context.url);
httpRequest.setRequestHeader('Content-Type', 'application/json');
if (context.password != '') {
let credentials = window.btoa(context.username + ":" + context.password);
httpRequest.setRequestHeader('Authorization', 'Basic ' + credentials);
}
httpRequest.onreadystatechange = function () {
if (this.readyState != 4) return;
let response = JSON.parse(this.responseText);
// Do something with response
}
httpRequest.send(JSON.stringify(RPCrequest));
Einiges mag wohl Javascript spezifisch sein, aber man erkennt:
ich würde gerne mal auf das Schwarmwissen zugreifen …
Ich komme hier schon seid ein paar Tagen nicht wirklich weiter. Ich bin dabei mein Wecker etwas zu erneuern und auf ein neues Script zu stellen. Weil sich ein paar Sachen schon gut bewährt haben würde ich diese gerne erneut mit JavaScript umsetzen. Dazu habe ich das obere Beispiel genutzt. Soweit so gut - ich sende eine Anfrage und bekomme eine Antwort.
Leider funktioniert das nicht mit weiteren Variablen die ich aktualisieren möchte. Und ich sehe / finde den Fehler nicht. Es wären bei mir so 5 Variablen die ich gerne pollen würde um sie mit Javascript auszuwerten.
Hätte jemand eine Anregung bzw. was mache ich falsch …
Bei einer Einzelnen Variablen geht das, soweit ich bei der zweiten Variable den Status abfrage passen die Zustände nicht mehr …