Plugwise Smile P1 – Onder de loep

plugwise smile p1

Wat mij opviel als ik de plugwise APP gebruik, dat de APP kon weergeven welke “smile versie” er draaide, dus dat is weer interessant hoe het daaraan komt, want deze kon ik niet vinden met de “basic” methode:

plugwise smile ontleden pro 01

Ergens komt de APP erachter, dat gaan we even uitzoeken!, nu is het via de telefoon de software lastig te onderzoeken (APP op image bestand), maar er is ook een softwarepakket te downloaden voor windows hier.

Installeer de software:

plugwise desktop installatie screen

Ik heb nu zelf op het moment van schrijven v1.5.4 geïnstalleerd, nu zien we (en dat staat ook op de downloadsite vermeld) dat de software is gemaakt met Adobe flash (air), dit kunnen we zien aan het SWF (ShockWave Flash) bestand:

plugwise desktop swf flash bestand
De programmacode van het bestand kun je niet zien, om deze “zichtbaar” te maken heb je een flash decompiler nodig, deze is te vinden hier.

Installeer en gebruik het programma “ActionScriptExtractor” en open het bestand: PlugwiseStretchDesktop.swf

plugwise desktop flash source code

Ik heb even lopen zoeken, en het hoofdgedeelte van het programma speelt zicht af in het volgende gedeelten:
DoABC[frame2] \ com \ plugwise \ model \ PlugwiseModel
DoABC[frame2] \ models \ SmileModel

Let op: Bij het opslaan van bestanden crasht de applicatie bij DoABC[frame2] \flashx (dus deze niet bewaren), selecteer alles behalve “flashx” then selecteer dan vanuit het menu: file -> save selected

Als je er doorheen bladert vind je al gauw wat nuttige links.

Tip: Werkt je smile niet meer naar behoren?, druk dan de reset knop (naast de antenne) ongeveer 5 seconden in, hierdoor zullen de fabrieksinstellingen teruggezet worden en word de hardware opnieuw gestart, gebruik dan eventueel de APP om e.e.a. weer juist in te stellen!

Als je door de Plugwise app bladert in de source, zie je ook bepaalde POST commando’s staan, deze worden gebruikt om de smile in te stellen op het netwerk.
De /n /r /t in de POST regels horen bij een Linux formaat, deze betekenen:

\r  = carriage return
\n = new line
\t = horizontal tab

Je zou nu zelf met wat programmeren een TCP POST commando kunnen schrijven met een XML format, dan kun je je eigen smile zelf instellen (dus zonder APP)

De WiFi XML heeft deze format:

Voor het script in Autoit3 heb ik een functie geschreven om deze Linux “macro’s” om te zetten in een Windows formaat:

Smile WiFi instellen:
Ik heb hier een Autoit3 script geschreven (ik zal later een programma maken), waarmee je zelf de smile kan instellen, je kan de variabelen zelf aanpassen. Als je Smile nog in AP (accesspoint) mode staat, dan zal je “direct” met de smile moeten verbinden, de Smile heeft dan altijd als IP adres: 192.168.40.40

Welke waarden te gebruiken?
De smile reageert meestal met een antwoord (Bij goed “true” en een foutmelding als je iets niet juist doet), in dit geval, als je een “DUMMY” waarde gebruikt, geeft de foutmelding van de Smile wel aan welke waarde(n) het moet zijn:

$SmileMode = “DUMMY” (in XML: <mode>)

$SmileVersleuteling = “DUMMY” (in XML = <method>):