03-04-2013, 19:58:22
(Dieser Beitrag wurde zuletzt bearbeitet: 03-04-2013, 20:15:30 von steffen.timm.)
(03-04-2013, 17:47:46)nstratem schrieb: BTW Kann ich noch einen ProxyTunnel auf 127.0.0.1:8888 setzen, damit ich den Traffic sehe? Und mit dem SSL key muss ich doch nichts machen. Der steht doch von der Silverlight OOB noch im MMC->KonsolenStamm->Zertifikate
Um die XML Dateien zu lesen kannst du auch folgende Zeile im RequestDeserializer:
Code:
var tmpResponse = serializer.Deserialize(response);
Code:
var xml = response.ReadToEnd();
var tmpResponse = serializer.Deserialize(new StringReader(xml));
(03-04-2013, 17:47:46)nstratem schrieb: ... wollte erst mal nur mal den VS2012 Compiler testen. Damit habe ich ja noch nie etwas gemacht .. learning by doing .
Es stand nur so als Beispiel in der CodePlex Documentation von Marko.
logicalDeviceStateManager.LogicalDeviceStates[0] //-> geht aber nicht. Muss ich die Liste noch anlegen ?
Hier mal ein kleines Beispiel zum Auslesen des Zustandes von einem Zwischenstecker "Lampe A":
Code:
// Name des gesuchten Gerätes
String deviceName = "Lampe A";
// Handler mit Benutzer, Passwort und URI zur SmartHome Zentrale erstellen
RequestHandler requestHandler = new RequestHandler("username", "password", "https://smarthome09");
// EntityManager mit dem Handler erzeugen. Der EntityManager kümmert sich unter anderem um die Geräte
EntityManager entityManager = new EntityManager(requestHandler);
// LogicalDeviceStateManager mit dem Handler erzeugen. Der LogicalDeviceStateManager kümmert sich um die Zustände von Geräten
LogicalDeviceStateManager logicalDeviceStateManager = new LogicalDeviceStateManager(requestHandler);
// Mittels LINQ das erste Gerät aus der Gesamtliste auswählen, bei dem der Name mit dem Inhalt von deviceName übereinstimmt
SwitchActuator device = (SwitchActuator)entityManager.LogicalDevices.Where(d => d.Name == deviceName).First();
// Mittels LINQ den ersten Zustand aus der Gesamtliste auswählen, bei dem die LogicalDeviceId mit der ID des Gerätes in device übereinstimmt
SwitchActuatorState deviceState = (SwitchActuatorState)logicalDeviceStateManager.LogicalDeviceStates.Where(s => s.LogicalDeviceId == device.Id).First();
// Den Gerätenamen und seinen Zustand auf der Console ausgeben
Console.WriteLine(device.Name + " ist " + (deviceState.IsOn ? "an" : "aus"));
Solltest du weitere Fragen haben, gerne stellen. ;-)
LG
Steffen