Smarthome – Drucker automatisch einschalten

Ziel:

Die smarte Steckdose soll einschalten wenn der Windows Print- bzw. Druckserver einen Druckjob erhält.

Voraussetzungen

  1. Schaltbare Steckdose
    • API Zugang zur Steckdose (oder Smarthome)
  2. Trigger am Windows Druckserver

Zu Punkt 2

  • Am Windows Druckserver ist der Drucker für die Clients die drucken möchten “freigegeben”
  • Wir müssen dafür sorgen das ein Ereignis beim eintreffen eines Druckjobs ausgelöst wird

Schritt 1:

  • Detaillierte Logs zu Druckereignissen müssen zuerst aktiviert werden
  • Computerverwaltung > System > Ereignisanzeige > Anwendungs und Dienstprotokolle > Microsoft > Windows > PrintService > Betriebsbereit —> Rechtsklick und “Protokoll aktivieren” wählen

Schritt 2:

  • Computerverwaltung > System > Aufgabenplanung > Aufgabenplanungsbibliothek > Einfache Aufgabe erstellen
  • Name: Drucker einschalten
  • Beschreibung: *
  • Trigger: Bei Protokollierung eines bestimmten Ereignisses
  • Bei Ereignisprotollierung:
  • Protokoll: Microsoft-Windows-PrintService/Betriebsbereit
  • Quelle: PrintService
  • Ereignis-ID: 800
  • Aktion: Programm starten
  • Programm starten: Hier den Pfad zum Batchscript eintragen zB.: D:\Scripts\Smarthome\DruckerEinschalten.cmd

Unter den “Allgemein” Einstellungen stelle ich noch den Benutzer/Administrator als Benutzerkonto ein,
außerdem aktiviere ich “Unabhängig von der Benutzeranmeldung ausführen”, “Mit höchsten Privilegien” und Konfigurieren für “Windows XXX (die richtige Version)”.

Zu Punkt 3

Das Batch/CMD Skript ruft nun die API per curl.exe auf und schaltet die passende Variable in der Smarthome Zentrale (in meinem Fall: Symcon)

Windows Batchjob um die Steckdose (per Symcon Variable) zu schalten

Set CMD=RequestAction
Set VAR=12345
Set VAL=true
Set URL=http://user:pass@smarthome:3777/api/

\\server\jobs\smarthome\curl -s -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"%CMD%\", \"params\": [%VAR%, %VAL%]}" %URL%

Genau so gut könnte die Windows Batch auch genutzt werden um direkt einen Shelly zu schalten

http://<SHELLY-IP>/relay/0?turn=on

Schreibe einen Kommentar