Hallo,
ich habe mir gerade das Beispiel aus den Codeschnipseln (http://forum.fhem.de/index.php/topic,10070.0.html) zur Druckersteuerung via Cups und Schaltsteckdose angesehen und versucht, in meiner Installation umzusetzen. Ich bekomme im EventMonitor auch wohl angezeigt, wenn ein Druckjob bei Cups anliegt, aber leider reagiert mein notify nicht darauf mit einem 10minütigen Einschalten des Druckers über die IT-Steckdose:
### Laser an bei Druckjob und später wieder aus ###
define CUPSDM dummy
define AT_CUPS_Dummy at +*00:01:00 {fhem("set CUPSDM ".`/opt/fhem/cups.sh`)}
#
# noch die Einschaltung
define az_LaserJet_onDruckjob at +00:10:00 {if ("AT_CUPS_Dummy" eq "1") {fhem("az_LaserJet on")}}
attr az_LaserJet_onDruckjob room Arbeitszimmer
2014-04-26 20:29:16 dummy CUPSDM 1
Was mache ich jetzt falsch - ich sehe es einfach nicht (mehr).
Danke für Eure Hilfe.
Hallo,
define az_LaserJet_onDruckjob at +00:10:00 {if ("AT_CUPS_Dummy" eq "1") {fhem("az_LaserJet on")}}
in dem at fragst du den Wert des AT_CUPS_Dummy ab.
Sollte da nicht eher CUPSDM abgefragt werden?
Grüße
Edith:
Zitataber leider reagiert mein notify nicht darauf mit
Du hast auch kein notify - du prüfst alle 10 Minuten ob der Drucker eingeschaltet werden soll.
fhem("az_LaserJet on")
sollte das nicht eher
fhem("set az_LaserJet on")
heißen?
Lohnt sich das ganze eigentlich wirklich, wenn man den Standby-Verbrauch der Schalt-Steckdose betrachtet? Das sind ja bei 0,5 W ca, 4,5 kWh pro Jahr.
Der Standby-Verbrauch eines Druckers, der ab und zu vergessen wurde auszuschalten bzw. etwas länger an ist, sollte weit unterhalb dem liegen. Oder habe ich einen Denkfehler?
Ein Laserdrucker hat definitiv einen höheren Energiebedarf als eine Funkschaltsteckdose.
Bei mir hängen drei Drucker gemeinsam an einer solchen Steckdose - wenn die alle drei im Standby laufen, brauchen die zusammen zwischen 80 und 90 Watt im Standby.
Klar hat er das. Das ist aber nicht entscheidend, sondern die Frage ist, wie oft sie ohne Steckdose an sind. D.h. wie sie benutzt werden.
Ich habe es bei meinem mal überschlagen und habe mich entschieden, ihn lieber von Hand an und auszuschalten und nur den Zustand zur Erinnerung auf dem FHEM Display anzuzeigen. Allerdings brauche ich den nur zwei bis dreimal die Woche und wenn er dann etwas länger an ist, bevor ich ihn wieder ausschalte, ist es egal. Bei anderen Nutzungsgewohnheiten kann das natürlich ganz anders liegen. Wenn z.B. immer alle drei eingeschaltet werden, obwohl nur einer benötigt wird, ist das recht energieintensiv.
Der Standbyverbrauch ist auch der selbe Grund, warum ich keine Lichtautomatisierung zur Energieeinsparung betreibe. Bei LEDs kann man aufgrund des Standbyverbrauches der Module nichts mehr sparen. Da kann man die Lampe auch mal 'ne Nacht brennen lassen. Allein die 13 FS20 Module meiner Rollläden benötigen 57 kWh Standby (15 €) im Jahr. Aber das ist mir die Bequemlichkeit wert.
Ergänzung: Mein 10 Jahre alter Multifunktionslaserdrucker braucht im Standby 8W. D.h. da kann er auch mal 1,5 Stunden pro Tag nutzlos an sein, bis er den Standby-Verbrauch der Schaltsteckdose erreicht hat. Dein Standby-Verbrauch von 80 W scheint mir da recht ungewöhnlich.
Ich denke, es kommt auf das jeweilige Modell an. Was aber nicht nur für Laserdrucker gilt.
Viele ältere Geräte brauchen im Standby relativ viel.
Wenn wir Pfennigfuchsen wollen beim Laser:
Es ist deutlich günstiger, nicht sofort jeden Druckauftrag zum Drucker zu senden um ihn zu drucken!
Warum?
Weil die Teile nach dem Druck noch eine Zeitlang im Bereitschaftsmodus sind. Z.b. am Lüfter schön zu hören. Die Heizung ist an, die Abwärme wird aus dem Gerät transportiert.
Das kann schon so 15 Minuten dauern, bis das Gerät die Heizung deaktiviert und wieder in den Sleep Modus geht.
Das energetisch dümmste ist also, Dokumente mit 15 Minuten Pause zu schicken.
So sorgt man dafür, das recht lange der Bereitschaftsmodus aktiv ist, der viel Strom verbraucht.
Wenn man da sparen will, wäre es schlauer, die Dokumente, vorausgesetzt sie sind nicht eilig, zu sammeln, um sie dann in einem Rutsch zu drucken.
Dann sollte der Dummy nicht alle 10 Minuten Prüfen, sondern täglich um 16 Uhr, so dass man die Dokumente halt noch kouvertieren und per Post verschicken kann.
Zusätzlich böte es sich an, den Drucker nochmal frei zu geben, für eilige Dokumente. Diese Druckerfreigabe kann dann auch öfter geprüft werden.
Wie gesagt, für Energiesparfreaks ein nicht unspannendes Betätigungsfeld.
Das man Tintenpuster besser nie vom Strom trennt, hat sich glaube ich rumgesprochen.
Der Vorschlag ist nicht schlecht, lohnt sich aber nur für viele Druckaufträge. Bei der geringen Druckernutzung, die viele privat haben, und den heutigen (<10 Jahr alt), stromarmen Druckern wird die Ersparnis vermutlich durch den Standbyverbrauch der Steckdose aufgebraucht.
Ganz ehrlich, im privaten Haushalt würde ich keinen Laserdrucker betreiben, allein schon wegen des tonerstaubes... Aber das ist wohl wieder ein andres Thema
Gruß
Jens
Gesendet von meinem iPhone mit Tapatalk
Ich denke, der Tonerstaub ist nur ein Thema, wenn man im gewerblichen Bereich neben einem Laser sitzt, der ständig druckt. Störender ist hier zudem das Ozon.
Ich wechsle die Tonerpatrone vielleicht alle 3 Jahr. Ich glaube, im privaten Bereich ist eine negative Wirkung praktisch nicht mehr nachweisbar und beruht eher auf Weltanschauungen :-).
Hallo,
kann erst jetzt antworten, war ein paar Tage offline nach Gewitterschaden :-\
Zitat von: Puschel74 am 26 April 2014, 20:36:08
define az_LaserJet_onDruckjob at +00:10:00 {if ("AT_CUPS_Dummy" eq "1") {fhem("az_LaserJet on")}}
in dem at fragst du den Wert des AT_CUPS_Dummy ab.
Sollte da nicht eher CUPSDM abgefragt werden?
Du könntest Recht haben ...
Zitat
Edith:Du hast auch kein notify - du prüfst alle 10 Minuten ob der Drucker eingeschaltet werden soll.
Ja, da habe ich mich verschrieben - abgesehen davon, daß da tatsächlich wohl eher ein notify von CUPSDM getriggert werden sollte, oder?
Zitat von: betateilchen am 26 April 2014, 20:42:25
fhem("set az_LaserJet on")
Jepp, das hatte ich bereits korrigiert - jedoch ist es in diesem Post von mir nicht mehr angekommen ::)
Ein Notify müsste im Prinzip für diesen Zweck dann doch wie folgt aussehen, nehme ich an:
define az_Laser.Notify notify CUPSDM set az_LaserJet on-till +00:30:00
(ist eine IT-Steckdose ...)
Gruß
Hallo,
define az_Laser.Notify notify CUPSDM set az_LaserJet on-till +00:30:00
sollte klappen aber!
Das notify triggert immer wenn CUPSDM seinen Status ändert - also auch wenn er auf 0 geht.
define az_Laser.Notify notify CUPSDM:1 set az_LaserJet on-till +00:30:00
oder
define az_Laser.Notify notify CUPSDM.1 set az_LaserJet on-till +00:30:00
evtl. mal so versuchen (da bin ich mir grad nicht ganz sicher) oder den Status im notify nochmal abfangen.
. (Punkt(e)) in Namen halte ich persönlich für unglücklich da der . (Punkt) als "ein beliebiges Zeichen" in Perl interpretiert wird.
Kann zu Problemen führen - muss aber nicht.
Grüße
P.S.: Ich weiß das einige (viele?) Punkte in ihren Namen verwenden.
Ich nehm lieber den _ dazu
my2cents
Hallo,
ich habe es jetzt mal in beiden Varianten versucht - leider ohne den gewünschten Erfolg ... hier einmal die aktuell in der fhem.cfg eingetragene Zeile ...
define az_LaserJet_Notify notify CUPSDM:1 set az_LaserJet on-till +00:30:00
Gruß
Hallo,
wenn ich das richtig sehe, benötigt on-till eine feste Endzeit. Es sollte wohl besser on-for-timer 600 (Sekunden).
Gruß Christoph
Hallo,
Zitathier einmal die aktuell in der fhem.cfg eingetragene Zeile ...
und nun?
Das notify ist ja gut und schön - aber siehe Link.
Es wäre evtl. auch gut zu sehen wie CUPSDM definiert ist.
Was steht im EventMonitor?
Was steht im Logfile?
Du sitzt davor, kannst das prüfen und uns mitteilen - wir müssen raten ;)
http://forum.fhem.de/index.php/topic,16311.0.html (http://forum.fhem.de/index.php/topic,16311.0.html)
Grüße
Wäre es auch möglich einen Laserdrucker, der direkt an einer Fritzbox 7390 angeschlossen ist, zu automatisieren?
Hallo Puschel74,
die Codezeile sollte nur den aktuellen Stand (quasi als Erinnerung) widerspiegeln, die Definition des CUPSDM stand bereits in meinem ersten Post, darum hatte ich es hier nicht extra noch einmal gelistet.
### Laser an bei Druckjob und später wieder aus ###
define CUPSDM dummy
attr CUPSDM verbose 5
attr CUPSDM room Arbeitszimmer
define az_LaserJet_Notify notify CUPSDM:1 set az_LaserJet on-till +00:30:00
Weder im Log noch Eventmonitor erscheint etwas. Lasse ich das notify weg, also nur das CUPSDM, so erscheint ein CUPSDM 1 im EventMonitor, wenn ich einen Druckjob laufen habe.
Ich setze mal das globale verbose kurzzeitig hoch und poste dann das Ergebnis ...
@Bennemannc: hat denn IT ein on-for-Timer? Ich meinte, ich hätte irgentwo mal gelesen, daß bei IT kein on-for-timer existiert.
Gruß
Hallo,
versuch mal ein
define az_LaserJet_Notify notify CUPSDM.1 set az_LaserJet on
Haben wir auch schon das define von az_LaserJetz gesehen?
ZitatLasse ich das notify weg, also nur das CUPSDM, so erscheint ein CUPSDM 1 im EventMonitor, wenn ich einen Druckjob laufen habe.
Äh :o
Das habe ich nicht ganz verstanden.
Was sollte das mit dem EventMonitor zu tun haben?
Im EventMonitor muss mMn auf alle Fälle ein CUPSDM 1 auftauchen wenn du einen Druckjob startest.
Auf dieses Event muss ja FHEM mit dem notify reagieren können.
Grüße
Sorry, aber daß jetzt keine Meldung kam, lag daran, daß ich den Aufruf des Shelscriptes irgentwann wohl versehentlich mal mit gelöscht hatte ::)
Jetzt kommen schon einmal Einträge im Log, wenn kein Job ansteht:
2014.05.04 16:13:35 5: exec at command AT_CUPS_Dummy
2014.05.04 16:13:35 4: dummy set CUPSDM 0
2014.05.04 16:13:35 5: redefine at command AT_CUPS_Dummy as +*00:01:00 {fhem("set CUPSDM ".`/opt/fhem/cups.sh`)}
und wenn ein Job ansteht:
2014.05.04 16:16:35 5: exec at command AT_CUPS_Dummy
2014.05.04 16:16:35 4: dummy set CUPSDM 1
2014.05.04 16:16:35 5: Triggering az_LaserJet_Notify
2014.05.04 16:16:35 4: az_LaserJet_Notify exec set az_LaserJet on-till +00:30:00
2014.05.04 16:16:35 3: az_LaserJet_Notify return value: on-till: Wrong timespec +00:30:00: either HH:MM:SS or {perlcode}
2014.05.04 16:16:35 5: redefine at command AT_CUPS_Dummy as +*00:01:00 {fhem("set CUPSDM ".`/opt/fhem/cups.sh`)}
Hier noch einmal die Definitionen:
### LaserJet (A1)
define az_LaserJet IT 000000000F FF F0
attr az_LaserJet IODev CUL_0
attr az_LaserJet room Arbeitszimmer
### Laser an bei Druckjob und später wieder aus ###
define CUPSDM dummy
attr CUPSDM verbose 5
attr CUPSDM room Arbeitszimmer
define AT_CUPS_Dummy at +*00:01:00 {fhem("set CUPSDM ".`/opt/fhem/cups.sh`)}
attr AT_CUPS_Dummy room Arbeitszimmer
attr AT_CUPS_Dummy verbose 5
define az_LaserJet_Notify notify CUPSDM:1 set az_LaserJet on-till +00:30:00
attr az_LaserJet_Notify verbose 5
attr az_LaserJet_Notify room Arbeitszimmer
###
Offensichtlich mag on-till meine Definition der Zeit nicht ...
Gruß
PS: die IT-Definition zum LaserJet-Schalter funktioniert bisher sehr gut mit Ein- und Ausschalten bei festen Zeiten - ich möchte es halt nur flexibilisieren, da der Laser doch nicht jeden Tag genutzt wird ... ;)
PS2: Puschel74, Deinen Vorschlag werde ich später noch einmal testen, jetzt hat meine Regierung einen anderen Auftrag für mich ;) - ich nehme an, daß es dann funktioniert, da das "set az_LaserJet on" bereits zuverlässig per Mausklick oder auf Uhrzeitvorgabe arbeitet ...
Hallo,
mit dieser Konfiguration funktioniert es jetzt prima:
### Laser an bei Druckjob und später wieder aus ###
define CUPSDM dummy
attr CUPSDM verbose 5
attr CUPSDM room Arbeitszimmer
define AT_CUPS_Dummy at +*00:01:00 {fhem("set CUPSDM ".`/opt/fhem/cups.sh`)}
attr AT_CUPS_Dummy room Arbeitszimmer
attr AT_CUPS_Dummy verbose 5
define az_LaserJet_Notify notify CUPSDM.1 set az_LaserJet on-for-timer 900
attr az_LaserJet_Notify verbose 5
attr az_LaserJet_Notify room Arbeitszimmer
Danke an alle, die mir geholfen haben.
Gruß