-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Session Lifetime und andere Fragen #6
Comments
Also kurz zum Cache: Zum anderen Punkt: Du kannst per Foreach die ganzen Geräte-States durchgehen. |
Wow, das war eine schnelle Antwort, danke! Mein Cache von letzter Woche hatte z.B. eine ConfigVersion=30, wenn ich ihn neu erstelle habe ich ConfigVersion=33. Der andere Punkt sollte in keiner Weise eine Kritik darstellen! Ich wollte nur unnötige Anfragen an die Station vermeiden und deshalb nicht einfach irgendwelche Methoden aufrufen. |
Der Cache wird immer nach Beendigung des Programms gespeichert/aktualisiert/erneuert. Die Config Version hat in deinem Fall kein Problem verursacht und spielt auch keine Rolle. |
Genau diesen Mechanismus meine ich... mein cache-File wird immer nur dann geschrieben, wenn es nicht existiert (siehe Code oben). |
Das System macht das automatisch... Ändere den Token beispielsweise und starte das Programm nochmal... Die Config-Value erzeugt seitens RWE Zentrale keinen Fehler sodass das ignoriert wird vom System. |
Sorry, ich steh auf'm Schlauch. Hab das Token geändert, das Cache-File wird NICHT neu geschrieben. Das "System" kennt mein Cache File doch überhaupt nicht... dafür müsste es doch das $config Objekt benutzen... |
Ou ou. Sorry! Ich hab die Versionen verwechselt... Das ist ja auch nur eine example.php ^^ Sry! Ich überarbeite das am Wochenende direkt!= |
:) hab's kapiert, also nach dem ersten getEntities() einfach ein getSessionId() machen und falls diese von der gespeicherten abweicht das configFile neu schreiben. (Hatte extra schon die Master version geclont... bin gespannt auf weitere Neuerungen!) |
Ja Wünsche nehme ich gerne entgegen ^^= |
Nochmal zur Klarstellung, falls sich noch jemand über sie Sessions wundert: Zunächst gibt es eine SessionID beim Login. Wollte man den Login-Prozess bei der nächsten Verbindung abkürzen, so muss die jeweils letzte SessionID in das Config-File geschrieben werden - sozusagen am Ende des Programs: $config->addChild('SessionId', $sh->getSessionId());
$config->addChild('ClientId', $sh->getClientId());
$config->addChild('Version', $sh->getVersion());
$config->addChild('ConfigurationVersion', $sh->getConfigVersion());
$config->saveXML($configFile); |
Erstmal vielen Dank für die hervorragende Arbeit! Ich war lange Zeit skeptisch, ob man mit einem "geschlossenen" System wie RWE als HomeAutomation-Fan glücklich werden kann.
Ich nutze die Bibliothek auf einem PowerPC NAS mit statischem HTML und Shell-Scripten per CGI-Schnittstelle an mini_httpd.
Um in meiner Home-Grafik die Temperatur und den Verlauf anzeigen zu können, hole ich per CRON alle fünf Minuten die Soll/Ist/Humidity Werte der Raumthermostate. Dazu habe ich auf der example.php basierend ein kleines Script geschrieben.
1.) Mir erschließt sich noch nicht ganz das Objektmodell. Welche Aufrufe sind minimal notwendig, um Werte auszulesen, aktuell brauche ich:
$sh->getEntities();
$sh->getAllLogicalDeviceStates();
und iteriere dann über $sh->getLogicalDevices()
2.) Da der Verbindungsaufbau etwas Zeit kostet, wird im Beispiel versucht, die SessionID, etc. zu cachen. Allerdings wird der Cache nie ungültig gemacht.
Gibt es eine Eigenschaft, die ich abfragen kann, ob der erste Verbindungsaufbau unerfolgreich war, so dass ich das cache-File neu anlegen kann? Kennt alternativ jemand die Session-Timeouts, dann könnte ich per CRON das cache-File einfach löschen.
Vielen Dank schonmal!
The text was updated successfully, but these errors were encountered: