FHEM und Drucker bei Bedarf einschalten (windows)

Begonnen von Guest, 28 September 2011, 11:03:15

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

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



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

Guest

Originally posted by: <email address deleted>

Goil, danke!
Machst Du'n wiki draus?
=8-)

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

Guest

Originally posted by: <email address deleted>

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

> Goil, danke!
> Machst Du'n wiki draus?
> =8-)
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

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

Guest

Originally posted by: <email address deleted>

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.

Am 28.09.2011 um 11:03 schrieb mike:

> 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
>
>
>
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

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

Guest

Originally posted by: <email address deleted>

> 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-)

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

Guest

Originally posted by: <email address deleted>

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)).



Am 28.09.2011 um 17:47 schrieb UliM:

>> 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-)
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

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

Guest

Originally posted by: <email address deleted>

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

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

Guest

Originally posted by: <email address deleted>

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


Am 29.09.2011 um 00:32 schrieb mike:

> 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
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

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

Guest

Originally posted by: <email address deleted>

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

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

Guest

Originally posted by: <email address deleted>

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

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

csaba

                                               

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

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

Guest

Originally posted by: <email address deleted>

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


Am 29.09.2011 um 17:01 schrieb mike:

> 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
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

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

Guest

Originally posted by: <email address deleted>

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

Am 29.09.2011 um 10:46 schrieb UliM:

> 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
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

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

Guest

Originally posted by: <email address deleted>

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

1. Programm Plink Downloaden
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

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

 

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