Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 3 Aktuelle »

Für die Externe Ansteuerung der Loxone über einen beliebigen Windows Server, habe ich mir eine PowerShell Klasse geschrieben. Hierrüber ist nun möglich, schnell und einfach Eingänge / Ausgänge abzufragen oder einen beliebigen Status zu setzen, sowie diverse System Kommandos an die Loxone zu schicken. Die PowerShell Klasse basiert auf einfachen REST Invokes.

Bei mir ist der aktuelle Haupteinsatz dieser Klasse zur besseren Integration meiner Wasserkühlung, damit ich schnell und einfache wichtige Werte in der Loxone anzeigen und überwachen kann. Im Notfall werden Push Nachrichten versendet oder im Worst Case der PC in den Hypernate versetzt. Letzteres basiert noch auf dem POSH Server worüber es möglich ist, von der Loxone PowerShell Befehle abzusetzen, dies ist aber ein anderes Thema

Source

Die Source für die Klasse kann direkt aus meinem GitHub herunter geladen werden (bitte immer Master Branch verwenden):

https://github.com/ThomasWilla/LoxoneHomeAutomation


Requirement:

  • PowerShell 5.x (Ist ab Windows 10 / Server 2016 inkludiert)


Kompatibilität:

  • PowerShell 6.x wird noch nicht unterstützt wird aber folgen und somit einen Support für Linux Systeme oder als Docker Container zu gewährleisten


Schritt-für-Schritt-Anleitung

  1. Konfiguration anpassen, Server Adresse oder FQDN in der LxHomeAutomation.ps1 anpassen

    [string]$server = "192.168."
  2. PowerShell Datei einlesen

    . ./LxHomeAutomation.ps1
  3. PowerShell Objekt bilden

    $LxHomeautomation = [LxHomeAutomation]::new("user","PW as plaintext")


 Wurde das Objekt erstellt stehen nun folgende Proberties zur Verfügung (sollten die enumout und enumin nicht vorhanden sein, muss das Objekt nochmals erstellt werden. Hier liegt noch ein mögliches Zeit Problem vor)

ProbertyWerte
enumoutbeinhaltet alle Ausgänge
enuminbeinhaltet alle Eingänge
ConStatusVirbindungstatus
credDas erstelle LX Credentinal
serverServer Adresse
Objectletztes übergebendes Object an eine Methode
lastResultLetzer REST Response als RAW


 Wurde das Objekt erstellt stehen nun folgende Methoden zur Verfügung


Beispiel Skript

Hier Teste ich einen PC ob dieser läuft, wenn ja wird einmalig ein Virtueller Eingang gesetzt. Ändert sich der Zustand des Computers wird dieser zurück gesetzt. 

Warum ich das nicht mit dem Ping Module mache? Möchte schnell merken, dass der PC Offline ist und hierdurch nicht unnötig die Loxone mit zusätzlichen Pings belästigen

. PATH\LxHomeAutomation.ps1


$LxHomeautomation = [LxHomeAutomation]::new("USER","PW")
$TestPC = "PCNAME"
$OnlineStateBefore = $false

while($true){

$OnlineState = (Test-NetConnection -ComputerName $TestPC).PingSucceeded


if(($OnlineState -eq $true) -and ($OnlineState -ne $OnlineStateBefore)){
    $LxHomeautomation.RESTControllIO("on","VI12")
    $OnlineStateBefore = $True
    }


if(($OnlineState -eq $false) -and ($OnlineState -ne $OnlineStateBefore)){
    $LxHomeautomation.RESTControllIO("off","VI12")
    $OnlineStateBefore = $false
    }
    
sleep -Seconds 10

}



Die Klasse ist ein Schnellwurf und daher würde ich sagen früher Beta Status, werde hier aber noch mehr Quallität reinbringen wenn es die Zeit zulässt

Verwandte Artikel



  • Keine Stichwörter