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