ich möchte die Eingangs- und Ausgangswerte einer UVR1611 über das Interface CMI, was die Werte über eine CMI-JSON-API über eine CGI-Datei zur Verfügung stellt, mit einer HTTP-Abfrage in der CCU2 verwenden.
Über den Safari kann ich alle Eingangs- und Ausgangswerte der UVR1611 mit einem einzelnen Aufruf http://user:pwd@IP-Adresse:80/INCLUDE/a ... nparam=I,O abrufen.
Die Werte werden dann im Safari wie folgt angezeigt:
Code: Alles auswählen
{ "Header":{ "Version":3, "Device":"80", "Timestamp":1533999257 }, "Data":{ "Inputs":[ { "Number":1, "AD":"A", "Value":{ "Value":50.2, "Unit":"1" } } , { "Number":2, "AD":"A", "Value":{ "Value":59.6, "Unit":"1" } } , { "Number":3, "AD":"A", "Value":{ "Value":45.8, "Unit":"1" } } , { "Number":4, "AD":"A", "Value":{ "Value":58.4, "Unit":"1" } } , { "Number":5, "AD":"A", "Value":{ "Value":49.2, "Unit":"1" } } , { "Number":6, "AD":"A", "Value":{ "Value":57.8, "Unit":"1" } } , { "Number":7, "AD":"A", "Value":{ "Value":64.9, "Unit":"1" } } , { "Number":8, "AD":"A", "Value":{ "Value":58.7, "Unit":"1" } } , { "Number":9, "AD":"A", "Value":{ "Value":58.6, "Unit":"1" } } , { "Number":10, "AD":"A", "Value":{ "Value":35.6, "Unit":"1" } } , { "Number":11, "AD":"A", "Value":{ "Value":29.8, "Unit":"1" } } , { "Number":12, "AD":"A", "Value":{ "Value":62.7, "Unit":"1" } } , { "Number":13, "AD":"D", "Value":{ "Value":0, "Unit":"43" } } , { "Number":14, "AD":"A", "Value":{ "Value":44.9, "Unit":"1" } } , { "Number":15, "AD":"D", "Value":{ "Value":0, "Unit":"43" } } , { "Number":16, "AD":"A", "Value":{ "Value":675, "Unit":"3" } } ], "Outputs":[ { "Number":1, "AD":"A", "Value":{ "State":1,"Value":20, "Unit":"0" } } , { "Number":2, "AD":"A", "Value":{ "State":0,"Value":0, "Unit":"0" } } , { "Number":3, "AD":"D", "Value":{ "Value":1, "Unit":"0" } } , { "Number":4, "AD":"D", "Value":{ "Value":1, "Unit":"0" } } , { "Number":5, "AD":"D", "Value":{ "Value":1, "Unit":"0" } } , { "Number":6, "AD":"A", "Value":{ "State":0,"Value":0, "Unit":"0" } } , { "Number":7, "AD":"A", "Value":{ "State":0,"Value":0, "Unit":"0" } } , { "Number":8, "AD":"D", "Value":{ "Value":0, "Unit":"0" } } , { "Number":9, "AD":"D", "Value":{ "Value":1, "Unit":"0" } } , { "Number":10, "AD":"D", "Value":{ "Value":0, "Unit":"0" } } , { "Number":11, "AD":"D", "Value":{ "Value":0, "Unit":"0" } } , { "Number":12, "AD":"D", "Value":{ "Value":0, "Unit":"0" } } , { "Number":13, "AD":"D", "Value":{ "Value":0, "Unit":"0" } } ]}, "Status":"OK", "Status code":0 }
Code: Alles auswählen
{
"Header":{
"Version":3,
"Device":"80",
"Timestamp":1533999257
},
"Data":{
"Inputs":[
{
"Number":1,
"AD":"A",
"Value":{
"Value":51.0,
"Unit":"1"
}
}
],
...
"Outputs":[
....
{
"Number":13,
"AD":"A",
"Value":{
"State":0,"Value":0,
"Unit":"0"
}
}
]},
"Status":"OK",
"Status code":0
}
Mit dem nachfolgenden Befehlen wollte ich diese Werte im Script abrufen und dann verarbeiten. Leider ohne Erfolg. Es werden keine Werte abgerufen.
Code: Alles auswählen
! Die IP der CMI
var url = "user:pwd@ip:8080/INCLUDE/api.cgi?jsonnode=1&jsonparam=I1";
dom.GetObject("CUxD.CUX2801001:10.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:10.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:10.CMD_RETS").State();
!Ausgabe der JSON Nachricht
WriteLine(rueckgabe);
Code: Alles auswählen
{
"rueckgabe": "",
"sessionId": "",
"httpUserAgent": "",
"url": "user:pwd@ip:8080\/INCLUDE\/api.cgi?jsonnode=1&jsonparam=I1",
"STDOUT": "\r\n"
}
Code: Alles auswählen
# wget -O - http://user:pwd@IP:8080/INCLUDE/api.cgi?jsonnode=1&jsonparam=I,O
# --2018-08-11 14:15:26-- http://user:*password*@IP:8080/INCLUDE/api.cgi?jsonnode=1
wesseli