3D-Drucker nach dem Druck ausschalten

Begonnen von jay-jey, 13 November 2018, 11:27:16

Vorheriges Thema - Nächstes Thema

jay-jey

Hi,

ich wollte mal fragen ob dies jemand vielleicht schon gemacht hat: Ich möchte gerne meinen Drucker nach dem Druck und abkühlen automatisch ausschalten. Der Drucker hängt an Octoprint und ist auch schon in FHEM integriert. Also bekomm ich ja den Druckstatus und die Temperaturen, also müsste dies möglich sein, aber bevor ich jetzt das Rad neu erfinde frag doch mal nach.

grüße
jay-jey

sbiermann

Im Moment mache ich das selber noch per Hand, automatisieren kommt vielleicht später aber ist schon recht gut vorbereitet. Die Idee ist, du fährst Octoprint bzw. den Pi per FHEM runter und schaltest dann anschließend den Strom aus. Letzteren Teil mit dem Strom habe ich über eine Funksteckdose realisiert.

jay-jey

Hi, ne Funksteckdose ist schon dran, für den Drucker, der Raspberry für Octoprint hat ne separate Versorgung. Den Raspberry möchte ich auch nicht unbedingt runterfahren, nur den Drucker. Wäre dann der nächste Schritt.

Christoph Morrison


Alternativ kannst du auch eine der vielen Anleitungen zum Thema Relais + PSU suchen. Ich schalte meinen Drucker über FHEM + Homematic-Schalt-Mess-Steckdose aus (da ich auch die Leistungsaufnahme kennen wollte).

jay-jey

Danke für die Links, lese ich mir mal durch, hab auch nen Funk Messdose dran, aber über Zigbee. Über den Raspberry wollte ich eigentlich die Spannung für den Drucker ehr nicht schalten, hab im Moment schon ein Relais dran und schalte damit die Led Beleuchtung für den Drucker, aber damit hab ich ehr schlechte Erfahrungen gemacht. Warum auch immer kommt es ab und zu mal vor, dass das Relais für nen kurzen Moment aus und wieder einschaltet. Hab die Verkabelung auch schon mehrfach geprüft und auch das Relais getauscht, vermute das die GPIOs wirklich schalten ob Software oder Hardware seitig kann ich nicht sagen. Daher bin ich nicht der Fan davon den Drucker darüber zu schalten.

jay-jey

@ Christoph: schaltest du den denn automatisch aus über FHEM?

mbrak

hi

ich gehe bei meinen 3 Druckern folgenden Weg:

Jeder Drucker ist nach dem gleichen Schema aufgebaut. Sonoff Basic schaltet 230V Versorgung für den Drucker. Das 12V Netzteil versorgt die Druckersteuerung und die USV die auf dem PI steckt. Ich starte den Drucker Remote über Telegram indem ich via FHEM das Sonoff einschalte. Der Raspi mit Octoprint bootet und meldet sich sobald er bereit ist über Telegram. Ich drucke dann das was ich brauche.
Sobald der Druck fertig ist, bekomm ich via Telegram eine Meldung. Ich könnte nun einen Timer starten oder den Drucker nach dem Abkühlen abschalten, indem ich einfach das Sonoff abschalte. Der Pi fährt dabei geordnet mithilfe der USV runter. Das ganze mache ich so seit bestimmt über einem Jahr. Früher noch nicht mit Sonoff aber das ist ja kein Unterschied.

Vorteil ist, das der Drucker komplett vom Netz getrennt wird. So kann ich auch mal Remote wenn ich nicht zuhause sein sollte, den Druck abbrechen und abschalten.

jay-jey

@mbrak okay, das hört sich fast nach der Lösung an die ich auch anstrebe, kannst du vielleicht mal dein notify oder doif posten, dass dich beim Ende des Drucks informiert?

Gasmast3r

Simple Lösung
([Anet:progress_completion] eq "100") (set Anet_A8 off)

Gesendet von meinem SNE-LX1 mit Tapatalk


jay-jey

naja ganz so simple auch nicht, er muss schon abkühlen bevor man ihn ausschalten kann.

mbrak

@jay-jey der Drucker informiert mich über seinen eigenen telegram bot der in octoprint installiert ist. Über den kannst du den Drucker komplett steuern. Fhem schaltet nur das Sonoff.
Automatisch abschalten ginge zwar, mach ich aber so nicht. Das möchte ich dann doch noch selbst entscheiden :)
Gruß Michael

Tedious

Ich mache das ähnlich. Ein Sonoff POW, an dem eine 3er Steckerleiste hängt. FHEM schickt Pings an den Raspberry mit Octoprint. Wenn der Druck fertig ist fährt Octoprint den Raspberry herunter. Ist der Raspberry für 5 Minuten nicht anpingbar schaltet FHEM den POW aus. In den 5 Minuten ist der Drucker auch so weit abgekühlt dass es kein Problem mehr gibt.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Christoph Morrison

Zitat von: jay-jey am 13 November 2018, 12:16:49
@ Christoph: schaltest du den denn automatisch aus über FHEM?

Ja. Allerdings: Gelegentlich habe ich ein Problem mit dem Octoprint-Modul oder der Kommunikation mit der Octoprint-Instanz *. Daher schalte ich den Drucker aus wenn die Stromaufnahme unter einem bestimmten Punkt liegt. Dann sind auch die Düsen abgekühlt.



* Es gibt irgendein Problem damit, dass der Druck angeblich immer in ein paar Sekunden aufhören wird, obwohl noch stundenlang gedruckt werden wird. Ich habe es noch nicht debuggen können.

jay-jey

@Christoph und Tedious: Danke für die Antworten die beiden Ansätze hören sich gut an würdet ihr eventuell auch mal den Code vom doif notify etc. posten?
Wie anfangs erwähnt will ich das Rad nicht neu erfinden und grade bei den Druckern ist es ärgerlich wenn das notify oder so nicht funktioniert und schlimmestenfalls den Drucker zu früh ausschaltet.

Tedious

Kein Problem, soooo spannend ist das nicht.

Sonoff:

defmod sonoffpow_1 MQTT_DEVICE
attr sonoffpow_1 DbLogExclude Factor,Period,Time,Wifi_AP,Wifi_APMac,Wifi_RSSI,Wifi_SSID,transmission-state
attr sonoffpow_1 IODev myBroker
attr sonoffpow_1 alias 3D-Drucker
attr sonoffpow_1 devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON
attr sonoffpow_1 genericDeviceType switch
attr sonoffpow_1 icon measure_power
attr sonoffpow_1 publishSet ON OFF cmnd/sonoffpow_1/POWER
attr sonoffpow_1 room Homekit,Sonoff
attr sonoffpow_1 subscribeReading_ENERGY stat/sonoffpow_1/STATUS10
attr sonoffpow_1 subscribeReading_STATE stat/sonoffpow_1/STATE
attr sonoffpow_1 verbose 0
attr sonoffpow_1 webCmd ON:OFF


Octopi:

defmod Octopi PRESENCE lan-ping 192.168.192.9 60
attr Octopi absenceThreshold 4
attr Octopi devStateIcon ONLINE:WLAN_Status.1 OFFLINE:WLAN_Status.0
attr Octopi eventMap present:ONLINE absent:OFFLINE
attr Octopi group Status
attr Octopi icon it_server
attr Octopi room Residents


DoIf:

defmod 3D_Aus DOIF ([sonoffpow_1:POWER] eq "ON" and [Octopi:presence] eq "absent") (set sonoffpow_1 off)
attr 3D_Aus room Sonoff


Ist der Sonoff "an" und Octopi "absent" (muss durch den Treshold in der Def des LanPing mind. 5 Minuten aus sein schaltet er den Sonoff aus. nach 5 Minuten ist das alles sauber abgekühlt.

FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Karsiacar

Hallo,

müsste das Thema nochmal ansprechen und bräuchte für mein Teilerfolg noch den passenden Abschluss.
Das Problem:
([MQTT2_DVES_3755C6:POWER] eq "on" and [OctoRasPi:presence] eq "absent") (set MQTT2_DVES_3755C6 off)

funktioniert. Leider schaltet der Drucker jetzt auch beim anschalten aus, weil die Bedingungen ja am Anfang gegeben sind und der Pi eine weile brauch bis er gebootet hat.
Hab schon mehrere Versuche mit notify und doif durch. Das Problem beim Anschalten bleibt.
Und wenn ich das richtig verstanden hab, soll der Drucker durch attr absenceThreshold "4" abkühlen bzw. durch nicht ankommen des Ping´s, warten bis er abschaltet. Hat er jetzt so auch nicht. Hat früher aus geschaltet.
Hat da jemand eine Lösung oder vielleicht n ganz anderen Ansatz?

defmod OctoRasPi PRESENCE lan-ping 192.168.178.57 10
attr OctoRasPi absenceThreshold 4
attr OctoRasPi devStateIcon ONLINE:WLAN_Status.1 OFFLINE:WLAN_Status.0
attr OctoRasPi eventMap present:ONLINE absent:OFFLINE

setstate OctoRasPi OFFLINE
setstate OctoRasPi 2020-04-08 16:19:07 .absenceThresholdCounter 3
setstate OctoRasPi 2020-04-08 16:19:07 .presenceThresholdCounter 0
setstate OctoRasPi 2020-04-08 15:00:50 model lan-ping
setstate OctoRasPi 2020-04-08 16:19:07 presence absent
setstate OctoRasPi 2020-04-08 16:19:07 state absent


defmod OctoRasPI_doif DOIF ([MQTT2_DVES_3755C6:POWER] eq "on" and [OctoRasPi:presence] eq "absent") (set MQTT2_DVES_3755C6 off)
attr OctoRasPI_doif wait 30

setstate OctoRasPI_doif cmd_2
setstate OctoRasPI_doif 2020-04-08 16:20:14 Device OctoRasPi
setstate OctoRasPI_doif 2020-04-08 16:13:52 cmd 2
setstate OctoRasPI_doif 2020-04-08 16:13:52 cmd_event MQTT2_DVES_3755C6
setstate OctoRasPI_doif 2020-04-08 16:13:52 cmd_nr 2
setstate OctoRasPI_doif 2020-04-08 16:13:52 e_MQTT2_DVES_3755C6_POWER off
setstate OctoRasPI_doif 2020-04-08 16:20:14 e_OctoRasPi_presence absent
setstate OctoRasPI_doif 2020-04-08 15:54:04 mode enabled
setstate OctoRasPI_doif 2020-04-08 16:13:52 state cmd_2
setstate OctoRasPI_doif 2020-04-08 16:13:52 wait_timer no timer


Wenn jetzt das Ping-Interval von 10sec. zu kurt für den Boot des Pi´s ist und ich sie erhöhe, Schaltet dann der POW bzw. das doif den Drucker jetzt nur evtl. später aus? Vielleicht sogar während des Drucks? Danke schon mal an euch!

Beste Grüße

Gasmast3r

Hy wird der PI mit abgeschaltet oder läuft der 24/7?

([Anet:progress_completion] eq "100") (set Anet_A8 off;set teleBot message @ XXXXXX Druck Fertig)

Mein Pi bleibt halt dauerhaft an.

Gesendet mit Tapatalk


Karsiacar

Hi,

danke für die Antwort!
Ich fahre den Pi per das Automatic- Shutdown runter.
Dein Vorschlag ([Anet:progress_completion] eq "100") zu verwenden, ist mir auch schon gekommen. Leider ist da auch das gleiche Problem. Beim booten des Pi steht das Reading progress_completion-Wert ja noch auf 100. Was wieder das abschalten triggert. Genau hier liegt der Knoten - bei allen Readings von octoprint oder auch dem POW. Keine Ahnung welche Bedingung ich setzen könnte, die sich bei Neustart geändert hat.

Gasmast3r

Hy naja beim Stromverbrauch eines Pi lass ihn doch einfach laufen.
Oder versuch es doch einfach per anwesenheits steuerung die kannst du ja passen triggern und dann eine abschalt Kombination.
([NUC] eq "present") (set GHoma_d34588 on) DOELSE (set GHoma_d34588 off)

Wenn ich mich nicht täusche kann octoprint sich nach dem druck selber herunterfahren oder plugin[emoji848].


Gesendet mit Tapatalk


Karsiacar

Hi,

genau so ist mein letzter Stand. Per Plugin octopi runter fahren. Dann 
([MQTT2_DVES_3755C6:POWER] eq "on" and [OctoRasPi:presence] eq "absent") (set Pushbullet message 3dDrucker ist abgeschaltet | fhem) (set MQTT2_DVES_3755C6 off)
Das Problem ist, dass meine Bedingungen auch beim Start des Pi´s zutreffen.

Gasmast3r

Mach mal ein? Bei dem POW ins doif
   
([?Lichtsteuerung:light] < 5 and dann wird der POW nicht direkt getriggert.
Da deine abfrage triggert sobald der POW an ist.

Gesendet mit Tapatalk


Karsiacar

#21
Hab jetzt mal attr OctoRasPI_doif wait 30 auf 180 gestellt. Funktioniert jetzt. Hier wartet wohl das "ganze" DOIF bis es anfängt zu arbeiten. Also ist genug Zeit für den Octopiboot und online zu gehen.
Leider hab ich deinen Vorschlag nicht getestet - bewirkt aber das gleiche? Also die Triggerverzögerung?
Dank!

Bleib gesund und munter
Karsten

Gasmast3r

Nein das? Bewirkt eigendlich nur das er zwar auf das on triggert aber nur in Kombination mit nem anderen wert Arbeitet

([?Lichtsteuerung:light] < 5 and [ESPEasy_Sonoff7_PUMP:Relay]eq "on") (set HUEDevice45 on)
Bewirkt eigendlich nur das wenn relay on ist und Licht <5 wird, HUEDevice45 nicht schaltet sondern nur wenn  licht <5 ist umd dann Relay an geht mein HUEDevice45 geschaltet wird.

Gesendet mit Tapatalk


Karsiacar

Ah ok. Versuch ich die Tage mal. Danke Dir nochmal!

Nogga

...nur weil ich den Beitrag per Zufall gesehen habe und mein Drucker ebenfalls an OctoPrint und an einer Schalt-Steckdose (per MQTT) hängt...
Mein Code ist wie folgt und sollte itnerpretierbar sein:

defmod Doif_Auto_3D_Drucker_Abschalten DOIF (\
[MQTT2_Gosund_P1_002_Chan01:ENERGY_Power] < 15 \
&& (\
[MQTT2_Gosund_P1_002_Chan01:state] eq 'on' \
|| [MQTT2_Gosund_P1_002_Chan01:state] eq 'set_on'\
)\
&& [OctoPrint:progress_completion] == 100\
)\
(\
## 3D Drucker\
set pushmsg msg device='AlexPhone11' message='3D Drucker wird in 5 Minuten ausgeschalten!' expire=3600 url_title='Ausschalten abbrechen' action='http://fhem-vm-prod:8083/fhem?cmd=delete%20At_OctoPrint_off%3Bdelete%20At_3D_Drucker_off&XHR=1',\
defmod At_OctoPrint_off at +00:03:00 qx("ssh poweroff\@OctoPrint sudo systemctl poweroff"),\
defmod At_3D_Drucker_off at +00:07:00 set MQTT2_Gosund_P1_002_Chan01 off,\
)\
DOELSE\
(\
)
attr Doif_Auto_3D_Drucker_Abschalten cmdIcon cmd_1:control_on_off enable:general_an disable:general_aus
attr Doif_Auto_3D_Drucker_Abschalten group Automatisch
attr Doif_Auto_3D_Drucker_Abschalten room Automatisierung,Steuerung
attr Doif_Auto_3D_Drucker_Abschalten wait 300
attr Doif_Auto_3D_Drucker_Abschalten webCmd cmd_1:enable:disable


In Prosa:

- Ich schaue, ob der Stromverbrauch <25 Watt ist (dann heizt/druckt er nicht) und natürlich ob die Steckdose an ist.
- Gleichzeitig habe ich OctoPrint eingebunden und reagiere auf einen fertig Druck (100%)
- Wenn das so ist erstelle ich zwei ATs --> das erste um den Raspi runterzufahren und zeitverzögert schalte ich die Steckdose aus.
- Zuletzt schicke ich mir vorab noch eine Push-Message in der ein Link ist um das Ganze abzubrechen (z.B. wegen einem Folgedruck, o.ä.)

Für den Remote-Shutdown des Raspi habe ich auch noch ein cmd-alias (inklusive Comments auf die ursprünglichen quellen zum Einrichten...):

defmod Command_shutdown_octoprint cmdalias shutdown_octoprint AS {\
qx("ssh poweroff\@OctoPrint sudo systemctl poweroff");;\
Log 1, "OctoPrint RPI wird runtergefahren";;\
defmod At_3D_Drucker_off at +00:01:00 set MQTT2_Gosund_P1_002_Chan01 off,\
Log 1, "3D Drucker ausgeschaltet";;\
}
attr Command_shutdown_octoprint comment https://www.linuxfun.de/homeautomation/fhem/ssh-befehle-auf-anderen-rechnern-mit-fhem-ausfuehren/\
http://www.sven-kuegler.de/ubuntu/befehl-als-anderer-benutzer-ausfuehren
attr Command_shutdown_octoprint group Commands
attr Command_shutdown_octoprint room System

Icinger

Muss der Drucker zwingend über FHEM geschaltet werden?
Andernfalls kannst du ja das PSU-Plugin nehmen. Das kann Systembefehle absetzen, MQTT (und div. andere) Kommandos senden etc.

Bei mir ists zB so, dass ich 2 OctoInstanzen auf einem Pi habe.
In beiden Instanzen ist der jeweilige Sonoff als MQTT angegeben.
Somit schaltet sich der jeweilige Drucker 15 Minuten nach Druckende automatisch aus.
Octoprint ist weiterhin erreichbar. Und wenn ich einen neuen Druck starte, schaltet das Plugin von selbst den Strom für den Drucker wieder an.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Nogga

Bei mir hängt der Pi zusammen am Drucker. D.h. wenn ich etwas drucken möchte dann schalte ich einmal die Dose an, warte 90 Sekunden auf den RPI-Boot und lege dann los. Danach geht alles wieder aus.
Deine Variante ist natürlich auch möglich und ist dann [RPI] always on...