Philips Hue Tutorial 2

Installieren von Azure Powershell auf Windows. Zugriff auf Azure über Powershell. Kontrollieren der Hue Lampe über Powershell.

Herunterladen

Gehen Sie zunächst in den Download-Bereich von Windows Azure:

https://azure.microsoft.com/en-us/downloads

Klicken Sie unter „Command-line tools“ auf „Windows installieren“ um die EXE-Datei herunterzuladen.

Abbildung 1

Installieren

Öffnen Sie die EXE-Datei um die Installation und Konfiguration von Windows Azure Powershell zu starten.

Folgen Sie den Schritten des Installationsprogrammes um die Installation abzuschließen.

Zugriff auf Azure über Powershell

In die Suchleiste von Windows „Powershell“ eingeben. Führen Sie „Powershell ISE“ als Administrator aus, indem Sie die rechte Maustaste benutzen und „Als Administrator ausführen“ auswählen.

Abbildung 2

In der Befehlszeile können Sie im „Skriptbereich“ anfangen zu programmieren. Hier mit einem Beispielcode.

Abbildung 3

Geben Sie die Programmbefehle nacheinander ein und starten Sie diese mit dem grünen Dreieck.

Abbildung 4
#Installiert das Azure Resource Manager Modul (falls nicht vorhanden) 
Install-Module -Name AzureRM

#Lädt das Modul in Powershell
Import-Module -Name AzureRM

#Überprüft die Version des AzureRM Moduls 
Get-Module -ListAvailable AzureRM

#Anmeldefenster erscheint zum Anmelden bei Azure
Connect-AzureRmAccount

Dabei bestätigen Sie diese Meldungen alle mit „Ja“.

Abbildung 5

Zugriff auf vorhandene Ressorucengruppen und Speicherkonten über Powershell

Über folgenden Link kommen Sie zu den Ressourcengruppen:

https://portal.azure.com/#blade/HubsExtension/Resources/resourceType/Microsoft.Resources%2Fsubscriptions%2FresourceGroups
Abbildung 6

Zum benutzen einer vorhanden Ressourcengruppe klicken Sie auf diese.

Abbildung 7

So finden Sie den Namen für die Ressourcengruppe und gegebenenfalls vorhandene Speicherkonten.

Abbildung 8

Mit den Daten können Sie jetzt über Powershell auf das Speicherkonto zugreifen. Geben Sie Ihre eigenen Variablen wie hier in den Zeilen 13 und 14 in Abbildung 9 ein.

Abbildung 9
Get-AzureRMStorageAccount
$resourceGroup = "<RessourcenName>"
$storageAccountName = "<SpeicherkontoName>"

$storageAccount = Get-AzureRmStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName

$storageAccount

Sie können auch über Powershell Ressourcengruppen und Speicherkonten erzeugen

Wählen Sie aus der Standortliste nach dem Befehl in Zeile 4 Abbildung 11 Ihren Standort aus dem Ausgabefenster wie hier Abbildung 10 als Beispiel und geben Sie Ihn wie in Zeile 5 in Abbildung 11 ein. Vergeben Sie sinnvolle Variablennamen für die Zeilen 8 und 12 in Abbildung 11.

Abbildung 10
Abbildung 11
#Speicherkonto erzeugen 

#Standortliste ausgeben lassen und einen Standort auswählen
Get-AzureRmLocation | select Location
$location = "<einen Standort wählen>"

#Neue Ressourcengruppe erzeugen 
$resourceGroup = "<Ressourcenname>"
New-AzureRmResourceGroup -Name $resourceGroup -Location $location

#Namen für Speicherkonto und SKU setzen
$storageAccountName = "<Speicherkontoname>" #kleingeschrieben
$skuName = "Standart_LRS"

#Speicherkonto erstellen
$storageAccount = New-AzureRmStorageAccount -ResourceGroupName $resourceGroup
-Name $storageAccountName
-Location $location
-SkuName $skuName

$storageAccount

Code zum Kontrollieren der Hue Lampe über Powershell

Abbildung 12

Die Variablen in Zeile 3, 5 und 7 wurden im vorherigen Tutorial Philips Hue Programmschnittstelle ausgelesen. Benutzen Sie Ihre eigenen Variablen.
https://azure.teamprojects.de/?page_id=203

# Hue Bridge
$hueBridge = "http://<Ihre IP-Adresse>/api/" 
# Lampe die gesteuert werden soll 
$lightNumber = <ID Ihrer Lampe> 
# Benutzername
$username = '<Benutzername den die Hue bridge Ihnen geben hat>'

$result = Invoke-RestMethod -Method Get -Uri "$($hueBridge)/$($username)/lights"
$currentState = $result.$lightNumber | select state

If ($currentState.state.on.Equals($false)){
    $body = @{"on"=$true} | ConvertTo-Json
    write-host "Light 2 is OFF, turning it ON"
} else {
    $body = @{"on"=$false} | ConvertTo-Json
    write-host "Light 2 is ON, turning it OFF"
}

$result = Invoke-RestMethod -Method PUT -Uri "$($hueBridge)/$($username)/lights/$($lightNumber)/state" -Body $body
$result

Weiter zum Philips Hue Fehlerbericht