Bubelbub / SmartHome-PHP

MIT License
15 stars 10 forks source link

Funktion für SwitchLogicalDevice #3

Open marmil opened 10 years ago

marmil commented 10 years ago

Hallo und noch einmal vielen Dank, ein Update für die Einbindung der Funktion "setLogicalDeviceState" wäre super. Eventuell auch direkt mit Rolladensteuerung etc.

LG

Bubelbub commented 10 years ago

Hallöchen,

Hatte mir das gestern angesehen und lade es nachher hoch.

Gruß,

Bubelbub commented 10 years ago

Hmm also irgendwie muss ich dich für heute vertrösten.

Die Funktion, die die SetActuatorStatesRequest.php betrifft, ist doch etwas größer. Hab eben mal getestet und hin und her überlegt... Nach den Monaten jetzt ist die Struktur etwas gewöhnungsbedürftig.

Da ich sonst noch beruflich arbeite, habe ich das zeitlich nicht mehr geschafft.

Ein Beispiel wie du dann später das machen kannst: (später = morgen, übermorgen oder die Tage)

$sh = new \Bubelbub\SmartHomePHP\SmartHome('Hostname or IP address', 'Username', 'Password');

$setActuatorStates = new SetActuatorStatesRequest($sh);
$setActuatorStates->addLogicalDeviceState('LID', true/* oder false*/);
$setActuatorStates->send();

So kannst du z.B. auch mehrere auf einmal setzen:

$sh = new \Bubelbub\SmartHomePHP\SmartHome('Hostname or IP address', 'Username', 'Password');

$setActuatorStates = new SetActuatorStatesRequest($sh);
$setActuatorStates->addLogicalDeviceState('LID', true/* oder false*/);
$setActuatorStates->addLogicalDeviceState('Andere LID', true/* oder false*/);
$setActuatorStates->addLogicalDeviceState('Weitere LID', true/* oder false*/);
$setActuatorStates->send();

Das o.g. funktioniert, wenn man "addLogicalDeviceState" mit z.B. "addRoomTemperatureActuatorState" ersetzen würde. D.h. die Raumtemperatur verändern möchte.

Da der "LogicalDeviceState" etwas "komplexer" ist (sind nicht nur Attribute), muss ich das System dafür anpassen. Das Problem ist, dass das vorherige System zu simple gedacht war ... Einfach nen Array mit Attributen, fertig. Eigentlich super... Nur will man eben beim LogicalDevice noch "Ppts" einfügen...

Ist aber die Tage erledigt. Das Thema SmartHome, SmartHome-PHP und SmartHome-GUI wird langsam aber sicher wieder ein zentrales Projekt von mir.

marmil commented 10 years ago

Lass dir ruhig Zeit. Ich freue mich schon darüber, dass du dich daran setzt :) Vielleicht können wir ja mal darüber quatschen wie das was ich damit bastel auch für dich eventuell nützlich sein kann. (Überwachung einer Alarmanlager über einen Raspberry, Sprachsteuerung von SmartHome und Wettervorhersagen für die Zentralheizung).

Ich arbeite gerade intensiver an einer selbstlernenden überlagerten Heizungsregelung, da die von RWE Schrott ist :). Und an einer Schaltungen um Zentralheizungen an Smarthome anzubinden.

Lg

Bubelbub commented 10 years ago

@marmil Welches Gerät möchtest du eigentlich per setLogicalDeviceState steuern?

Ich hab das gerade mal umgesetzt und lade es gleich hoch... Da fällt mir ein, dass du Zwischenstecker zukünftig per "SwitchActuatorState" steuerst. Die Thermostate steuerst du per "RoomTemperatureActuatorState".

Für was war jetzt dieses "LogicalDeviceState"??

marmil commented 10 years ago

Hatte an Zwischenstecker und Rolladensteuerungen gedacht, das Deckt ja im weitesten Sinne dann auch alle anderen Geräte ab. Die Heizungssteuerung klappt ja schon :) :+1: Vielen Dank fürs hochladen!