FHEM Forum

Verschiedenes => Bastelecke => 3D-Druck/Gehäuse => Thema gestartet von: JWRu am 31 Januar 2022, 12:32:03

Titel: Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: JWRu am 31 Januar 2022, 12:32:03
Ich habe meinen 3D-Drucker kürzlich "geklippert"  und Octoprint durch Mainsail und Moonraker ersetzt.
Bisher hatte ich ihn über das OctoPrint-Modul an FHEM angebunden und konnte so den Status in FHEM sehen.
Jetzt überlege ich, wie ich das mit Mainsail und Moonraker mache und sehe zwei Möglichkeiten:

1. Moonraker stellt ja einen MQTT-Client zur Verfügung, über den ich das machen könnte. Ich habe eh einige MQTT-Devices laufen.
2. Moonraker hat eine umfangreiche HTTP API, die ich mit HTTPMOD nutzen könnte.

Gibt es schon irgendwelche Erfahrungen zu diesem Thema?
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: erotikbaer am 11 Februar 2022, 18:09:46
Hi,
ich bin auch gerade auf der Suche wie ich den Klipper Status zu Fhem oder noch besser direkt per pushover an meine clients bekomme.
Hast du irgendeinen Weg gefunden?

Gruß Christian
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: JWRu am 11 Februar 2022, 18:15:12
ZitatHast du irgendeinen Weg gefunden?
Ich habe es mit MQTT gemacht. So sieht der Eintrag in der moonraker.conf aus:
[mqtt]
address: XXX.XXX.XXX.XXX
port: 1883
username: XXXXXX
password: XXXXX
mqtt_protocol: v3.1.1
enable_moonraker_api: True
status_objects:
    webhooks
    extruder=temperature
    heater_bed=temperature
    fan=speed
default_qos: 0
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: erotikbaer am 11 Februar 2022, 18:25:16
ok super, danke dir.
hast du eine idee wie man den druckfortschritt in prozent bekommen könnte? und im idealfall noch den dateinamen der gcode?
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: JWRu am 11 Februar 2022, 18:29:56
Hier müsste es drinstehen:

https://moonraker.readthedocs.io/en/latest/printer_objects/ (https://moonraker.readthedocs.io/en/latest/printer_objects/)

Einfach noch zusätzlich im Abschnitt "status_objects:" einfügen.
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: erotikbaer am 11 Februar 2022, 18:31:07
danke dir, habs gerade hinbekommen :)
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: pula am 25 März 2022, 14:22:44
Hi!
bin auch grade von octoprint auf fluidd umgestiegen.
könntet ihr so nett sein und hier den mqtt-abschnitt der moonraker.conf teilen?
ich würde gerne von den print_stats gerne nur ausgewählte objekte per mqtt senden, bin aber wegen der notation unsicher.
ist auch blöd zum testen, weil dazu ein druck gestartet werden muss ;-)
danke im voraus und cheers,
Pula
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: JWRu am 25 März 2022, 14:30:25
So sieht meine aus:
[mqtt]
address: XXX.XXX.XXX.XXX
port: 1883
username: XXXXXX
password: XXXXXX
mqtt_protocol: v3.1.1
enable_moonraker_api: True
status_objects:
    webhooks
    extruder=temperature
    heater_bed=temperature
    fan=speed
default_qos: 0
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: pula am 25 März 2022, 14:43:34
@JWRU:
Danke! Die ist ziemlich straight forward :-)
Aber genau die Temperaturen möchte ich nicht drin haben, weil sie mir den mosquitto vollspammen...
Ich hätte es so probiert, tut aber nicht (und in der moonraker.log seh ich dazu auch nix):
instance_name: fluidd
status_objects:
    webhooks
    print_stats=state
    print_stats=filename
    print_stats=total_duration
    print_stats=print_duration
    print_stats=message


Ich vermute, daß die Notation nicht richtig ist, aber wissen tu ich es noch nicht...
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: JWRu am 25 März 2022, 14:50:09
ZitatAber genau die Temperaturen möchte ich nicht drin haben, weil sie mir den mosquitto vollspammen...
Dafür habe ich im FHEM-Device "event-min-interval" gesetzt.
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: pula am 25 März 2022, 14:53:04
Zitat von: JWRu am 25 März 2022, 14:50:09
Dafür habe ich im FHEM-Device "event-min-interval" gesetzt.
Gute Idee! Der mosquitto selber wird aber dabei trotzdem zugespammt :-(
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: JWRu am 31 März 2022, 09:26:09
ZitatIch hätte es so probiert, tut aber nicht (und in der moonraker.log seh ich dazu auch nix):
"print_stats" funktioniert nur, wenn eine [virtual_sdcard] in der Klipper printer.cfg definiert ist und von dieser auch gedruckt wird.
Titel: Antw:Anbindung 3D-Drucker an FHEM mit Mainsail/Moonraker/Klipper
Beitrag von: rspecht am 22 August 2022, 13:12:31
Hallo Zusammen,

damit mir mein Mosquito nicht zugespamt wird habe ich nun die API von Moonraker genutzt. Hier als Info:
defmod JSON_3DDrucker1_Stats1 JsonMod http://ip1.2.3.4/printer/objects/query?webhooks&print_stats&heater_bed&temperature_sensor%20chamber&extruder=target,temperature,power
attr JSON_3DDrucker1_Stats1 interval * * * * *
attr JSON_3DDrucker1_Stats1 readingList complete()
attr JSON_3DDrucker1_Stats1 room 3D Drucker
attr JSON_3DDrucker1_Stats1 stateFormat result.status.heater_bed.temperature °C, result.status.temperature_sensor_chamber.temperature °C, result.status.print_stats.state


Ach und als Webcmd kann man auch GCodes, Macros usw. senden:
http://ip1.2.3.4/printer/gcode/script?script=M109%20S250

Mehr Infos mit: /printer/objects/list

Viel Spaß damit :)



Tante Edit:
Hier noch das Device zum Steuern der Makros:

defmod HTTPMOD_3DDrucker1_Ctrl1 HTTPMOD none 0
attr HTTPMOD_3DDrucker1_Ctrl1 room 3D Drucker
attr HTTPMOD_3DDrucker1_Ctrl1 set01Name Change_ABS
attr HTTPMOD_3DDrucker1_Ctrl1 set01NoArg 1
attr HTTPMOD_3DDrucker1_Ctrl1 set01URL http://ip1.2.3.4/printer/gcode/script?script=CHANGE_ABS
attr HTTPMOD_3DDrucker1_Ctrl1 set02Name Change_PLA
attr HTTPMOD_3DDrucker1_Ctrl1 set02NoArg 1
attr HTTPMOD_3DDrucker1_Ctrl1 set02URL http://ip1.2.3.4/printer/gcode/script?script=CHANGE_PLA
attr HTTPMOD_3DDrucker1_Ctrl1 set03Name Preheat_Bed
attr HTTPMOD_3DDrucker1_Ctrl1 set03NoArg 1
attr HTTPMOD_3DDrucker1_Ctrl1 set03URL http://ip1.2.3.4/printer/gcode/script?script=PREHEAT_BED
attr HTTPMOD_3DDrucker1_Ctrl1 webCmd Change_ABS:Change_PLA:Preheat_Bed