FHEM und Drucker bei Bedarf einschalten (windows)

638 views
Skip to first unread message

mike

unread,
Sep 28, 2011, 5:03:15 AM9/28/11
to fhem-...@googlegroups.com
Hallo Gruppe,

da es ja schon eine Möglichkeit gibt dies mit cups zu bewerkstelligen, habe ich mich mal dran gemacht das ganze unter Windows 7 zu erledigen.

Möglichkeit 1 mit Windows Bordmitteln:
1. Telnetclient installieren
(Systemsteuerung -> Programme und Funktionen -> Windows-Funktionen aktivieren oder deaktivieren -> Telnet-Client -> Häkchen reinmachen! und OK)
 
2. VB-Script erstellen (eine Textdatei erstellen mit dem Namen "Drucker_einschalten.vbs") und folgendes muss in die Datei:
set sh=WScript.CreateObject("WScript.Shell")
sh.run "Telnet 192.168.1.1 7072"              ' verbinden zum fhem-server via telnet
WScript.Sleep 500                             ' 1/2 sekunde warten
sh.SendKeys "set Drucker on"&vbcrlf           ' FS20 Steckdose einschalten
WScript.Sleep 500                             ' 1/2 sekunde warten
sh.SendKeys "quit"&vbcrlf                     ' telnetverbindung beenden
WScript.Sleep 500                             ' 1/2 sekunde warten
sh.SendKeys ""                                ' irgendwas senden damit sich das telenetfenster schließt
Die rot eingefärbten Stellen bitte mit euren Daten anpassen. Das ganze irgendwo speichern und Pfad merken!

3. Protokollierung des Spoolers aktivieren. (War bei mir deaktiviert Windows 7 Ultimate)
(Systemsteuerung -> Verwaltung -> Ereignisanzeige -> Anwendungs- und Dienstprotokolle -> Microsoft -> Windows -> PrintService -> Betriebsbereit -> Rechtsklick darauf und Eigenschaften -> Protokollierung aktivieren -> Häkchen rein! und OK)

4. Aufgabe erstellen wenn ein Druckauftrag im Spooler landet.
In der Ereignisanzeige nun das Protokoll "Betriebsbetreit öffnen und irgendwas ausdrucken. Mit F5 nach dem drucken aktualisieren. Jetzt sollten in dem Protokoll einige Einträge vorhanden sein.
Wählt nun den Eintrag mit der Ereignis-ID 800 und mit Rechtsklick "Aufgabe an dieses Ereignis anfügen" wählen.
Nun öffnet sich der Assistent für Erstellen einfacher Aufgaben.
Name: Drucker einschalten bei Ereignis-ID 800
Beschreibung: keine
Auf "Weiter" klicken und nochmal auf "Weiter".
"Programm starten" ist vorausgewählt und "Weiter" klicken.
Nun mit "Durchsuchen..."-Button wählt ihr das zuvor erstellte VB-Script aus und dann auf "Weiter" klicken und dann sind wir fertig mit auf "Fertig stellen" klicken.

5. Testen =o)

Um nun auch wieder das ganze Auszuschalten, könnt ihr wie oben beschrieben vorgehen (neue VB-Script Datei erstellen mit dem entsprechenden Befehl) und wählt für die neue Aufgabe einfach das Ereignis mit der ID 307 aus. Dies bedeutet das der Druckauftrag an den Drucker gesendet worden ist. Hier könnt ihr nun die Steckdose mit einem Timer von z.B. 10 Minuten ausschalten lassen.

Sollte in den 10 Minuten ein weiterer Druckjob anstehen wird der Timerbefehl ja von FHEM überschrieben und der Drucker bleibt an bis zur nächsten Ereignis-ID 307.

Bitte Beachten!!!
Wärend sich das Telnet-Fenster öffnet darf solange nichts anderes angeklickt werden, da die VB-Schript-Tastaturbefehle die die FHEM Befehle in das Telnet-Fenster schreiben nur in das aktuell geöffnete Programm schreiben. Sollte in dieser Zeit ein anderes Programm geöffnet werden, werden die Befehle dort hinein geschrieben, könnte unangenehme Folgen haben.
Mit dem Programm TST10.exe (Telnet Scripting Tool) könnte man dieses Problem beheben.

Ich hoffe damit jemanden geholfen zuhaben! Viel Spaß beim ausprobieren.

bis denn
mike



UliM

unread,
Sep 28, 2011, 8:09:07 AM9/28/11
to FHEM users
Goil, danke!
Machst Du'n wiki draus?
=8-)

Christian K.

unread,
Sep 28, 2011, 8:35:55 AM9/28/11
to fhem-...@googlegroups.com
Ich denke auch das ist einen Wiki Eintrag wert!

Wo wir grad beim Wiki sind. Ich würde mich gerne da Anmelden bzw. Registrieren aber finde dazu nichts..

2011/9/28 UliM <uli....@googlemail.com>
Goil, danke!
Machst Du'n wiki draus?
=8-)

--
To unsubscribe from this group, send email to
fhem-users+...@googlegroups.com

Andy Fuchs

unread,
Sep 28, 2011, 10:44:02 AM9/28/11
to fhem-...@googlegroups.com
Mal etwas blasphemisch gefragt: Wäre es nicht einfacher eine FS20 Steckdose am Drucker zu betreiben und diese dann einfach an und auszuschalten? (so mache ich das z.B. seit Jahr und Tag bei mir) Das läuft dann auch systemübergreifend....

a.

UliM

unread,
Sep 28, 2011, 11:47:20 AM9/28/11
to FHEM users



> Mal etwas blasphemisch gefragt: Wäre es nicht einfacher eine FS20 Steckdose am Drucker zu betreiben und diese dann einfach an und auszuschalten? (so mache ich das z.B.  seit Jahr und Tag bei mir) Das läuft dann auch systemübergreifend....

Ömmm - genau darum geht es doch....? Genaugenommen: Wie erspare ich
mir, vor dem Drucken extra fhem aufrufen und die Druckersteckdose
anschalten zu müssen - oben steht, wie genau dieser Schritt durch
lauschen an der Drucker-queue automatisiert wird.
Ich find's klasse.
=8-)

Andy Fuchs

unread,
Sep 28, 2011, 5:55:02 PM9/28/11
to fhem-...@googlegroups.com
Ich versteh's trotzdem nicht...was ist der Vorteil davon eine Remote-Telnet-Session aufzumachen, anstatt mit einem simplen Befehl fhem dazu zu veranlassen, eine Steckdose ein, bzw. auszuschalten?

andy

PS: (Ich verwende übrigens Intertechno Steckdosen (an einem ALL3000), die sich direkt per Skript ansprechen lassen. (die FS20 meinte ich im Zusammenhang mit fhem)).

mike

unread,
Sep 28, 2011, 6:32:14 PM9/28/11
to fhem-...@googlegroups.com
Hallo Andy,

es geht hier ja nicht um die Telnet-Session.

Es geht um's automatisieren, also wenn du einen Druckauftrag generierst, schaltet die Steckdose ohne weiteres zutun ein. Wie du das machst und mit welchen Scripten ist im endeffekt egal. Dies hier ist halt eine Möglichkeit die im Hintergrund läuft und keine weiteren Benutzeraktionen benötigt. Ob man nun das VB-Script nimmt oder was anderes, macht ja keinen Unterschied.

bis denn
mike

Andy Fuchs

unread,
Sep 29, 2011, 4:06:53 AM9/29/11
to fhem-...@googlegroups.com
Hi Mike,

danke für die Erläuterung - dann hat das also nix mit fhem zu tun, sondern ist eher generell gemeint?!

Andererseits sehe ich trotzdem nicht wirklich den Vorteil einer Telnet-Session gegenüber einem direkten Aufruf von fhem - aber vielleicht bin ich einfach auch zu blöd ;-/

Grüße

andy

UliM

unread,
Sep 29, 2011, 4:46:16 AM9/29/11
to FHEM users
Hi,
ok - wie würdest Du's denn ohne telnet machen?
Bei mir ist der Drucker vom W7-PC aus angesprochen, hängt am NAS, fhem
läuft auf der Fritzbox.
Das Einschalten der Drucker-Steckdose muss also also vom PC getriggert
werden, das fhem-Schalten erfolgt aber durch fhem auf der Fritzbox.
Was ist Dein Vorschlag, wie der fhem-Schaltvorgang vom PC aus
getriggert werden soll? Wäre ja schön wenn's einfacher ginge....
Gruß, Uli

mike

unread,
Sep 29, 2011, 11:01:34 AM9/29/11
to fhem-...@googlegroups.com
Hi Andy,

folgendes Szenario:
5 User, Jung und Alt haben einen Netzwerk-Laserdrucker. Dieser Drucker wird nun automatisiert durch FHEM und des Weindowsspoolers bei bedarf ein und ausgeschaltet. Leider verstehen 2 ältere User nur wie man einen Wordbrief schreibt und ausdruckt. Wie soll ich denen erklären das Sie bitte vor dem Drucken ein weiteres Programm (Script) ausführen sollen, um den Drucker einzuschalten und wenn sie fertig sind bitte das nächste Programm ausführen damit der Drucker wieder ausschaltet.

Du stimmst mir doch zu das es einfacher ist, dies mit FHEM und der oben beschriebenen vorgehensweise zu automatisieren, oder?

Warum hat dies nichts mit FHEM zu tun?
Wie du schreibst klickst du doch auch vor jedem Drucken deine Scripte, wäre ja auch einfacher gegangen wenn du eine Steckdosenleiste mit Fußschalter genommen hättest und immer unterm Tisch vor dem Drucken den Schalter mit dem Fuß betätigst.

Es geht um's automatisieren und ich denke da bin ich richtig hier beim FHEM oder?

Viele Grüße
mike

Csaba

unread,
Sep 29, 2011, 12:03:16 PM9/29/11
to FHEM users
Also statt telnet zu benutzen wuerde ich es mit netcat fuer windows
(alias nc - NICHT norton commander) probieren. Siehe bei
http://de.wikipedia.org/wiki/Netcat
Ich schaetze mal das koennte das problem mit dem rumclicken auf dem
desktop, waehrend das telnet fenster offen ist, loesen. Fuer versierte
benutzer waere es kein Problem, aber Kinder und meine Mutter wird
garantiert daneben klicken und danach mich dringends anrufen "der
Drucker druckt nicht ...".
Alles ohne Gewaehr da ich es nicht ausprobiert habe. Nur eine Idee ...

Gruss, Csaba

Andy Fuchs

unread,
Sep 29, 2011, 1:03:20 PM9/29/11
to fhem-...@googlegroups.com
Hi Mike,

danke für die Erläuterung... Ja - so macht das auch für mich mehr Sinn. Ich hatte das immer im direkten Zusammenhang mit fhem gesehen. Nichtsdestotroz ist das natürlich einigermaßen Fehler anfällig.

Ich habe mir vor einer Weile allerdings einen HP-ePrint-kompatiblen Drucker gekauft, dessem LAN-Modul ich Daten schicken kann, die er dann über den Drucker ausdruckt. In der Zwischenzeit ist der Drucker aus und nur der WLAN-Receiver ist idle. Das gefällt mir noch besser, da ich quasi von überall her drucken kann, ohne mich um irgendwelche Details zu kümmern; aber das nur am Rande.

> Wie du schreibst klickst du doch auch vor jedem Drucken deine Scripte, wäre ja auch einfacher gegangen wenn du eine Steckdosenleiste mit Fußschalter genommen hättest und immer unterm Tisch vor dem Drucken den Schalter mit dem Fuß betätigst.


Nein - bevor ich den ePrint-Drucker hatte, machte ich das auch anders. Aber unter Mac OS X funktioniert das etwas einfacher, da man dort eigene Skripts direkt im Druckdialog ablegen kann, die dann beliebige Aktionen ausführen (z.B. eben den Drucker anschalten, etc...).

Grüße

andy

Andy Fuchs

unread,
Sep 29, 2011, 1:11:59 PM9/29/11
to fhem-...@googlegroups.com
Sorry - da muss ich passen, da bei mir mittlerweile alles über einen Server und einen Netzwerk-Drucker läuft. Ich wollte nur verstehen, WARUM Du das so kompliziert machst.

Im Übrigen kann ich Drucker, Fernseher, NAS, etc... auch direkt über den ALL3000 ein/ausschalten (sollte sich z.B.. mal die NAS aufhängen, während ich nicht zu Hause bin, kann ich so einen Neustart erzwingen), da der ein eigenes Webinterface hat, wo ich jede einzelne Dose direkt ansprechen kann.

Grüße
andy

LittleDevil

unread,
Sep 13, 2012, 2:25:09 AM9/13/12
to fhem-...@googlegroups.com, an...@foxwerk.de
Hallo, 

super Anleitung nur leider benutze ich SSH.
Will euch mal zeigen wie ich es mit SSH gemacht hab.


2. Programm in einem Ordner z.b. FHEM auf C :\ ablegen.

3. ein Textfile schreiben z.b. mit dem Befehl    /usr/bin/fhem.pl 7072 "set Drucker on-for-timer 30"    , (der Befehl muss so ausgeführt werden wie auch in der Shell) die datei auch im Ordner ablegen

4. Parameter für Plink. "plink.exe *@10.100.100.77 -pw * -m befehle.txt"

beim Ausführen in der CMD wird eine SSH Verbindung zum FHEM Rechner aufgebaut und der Befehl ausgeführt.

Das ganze kann man über eine Batch starten oder wie im oberen Link über den Aufgabenplaner.
Wer es über den Aufgabenplaner machen will, sollte Powershell benutzen. Bat Dateien wollte er bei mir ( W7 ) nicht.
Um ein Powershell Script ausführen zu können muss in der Powershell mit erhöhten Rechten der "set-ExecutionPolicy remotesigned" ausgeführt und mit J bestätigt werden.


Gruß Alex

 
Reply all
Reply to author
Forward
0 new messages