druckabfragen für den flashforge adventurer 5m (pro) 3d drucker

Begonnen von the ratman, 13 April 2024, 17:33:20

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Das nicht. Allerdings einen Vorschlag: Einen anderen Drucker kann ich, weil er in der Hochschule steht, auch nicht über Octoprint ansteuern. Dafür benutze ich ebenfalls HTTPMOD. Schau doch mal auf die Seite hier:

https://wiki.fhem.de/wiki/Ultimaker

Erstens könntest Du auf der Basis eine ganz ähnliche Wiki-Seite erstellen. Zweitens schlage ich vor, dass wir Reading-Namen etc. einigermaßen angleichen.

Bei meinem privaten SnapMaker nutze ich das OctoPrint-Interface für 3D-Druck. Das Teil kann aber auch Laser und CNC - und da komme ich auch nicht ohne HTTPMOD aus. Allerdings bin ich damit noch ziemlich am experimentieren, eine Anfangsversion findet man hier

https://wiki.fhem.de/wiki/Snapmaker

LG

pah

the ratman

im gegensatz zu octoprint ist die "direkte" fhem-lösung in meinen augen um ecken besser, weil ich damit eine fehlerquelle weniger habe und wahrscheinlich bei den meisten druckern auch noch dieselbe api wie octoprint nutze.
die "fhem-lösung" könnte man in meinen augen viel besser bei den httmod-templates verwursten, ganz ohne octoprint, denk' ich mal.

und ich schreib' ein wiki über ein tool, dass ich nur hab, weil ich euch lang genug auf 'n nerv gegangen bin, dass ihr euch meines gestammels erbarmt habt's? du weißt schon, dass du hier mit jemanden redest, der mehr als abschreiben in sachen fhem nicht wirklich drauf hat?
ich helf' sehr gerne mit, teste auch nach vorgaben und bring' alle infos rein, die ich glaube, frisch gefunden zu haben. den "gefährlichen" teil sollte aber dann lieber wer machen, der's richtig kann.
→do↑p!dnʇs↓shit←

Prof. Dr. Peter Henning

Na ja, beim "Abschreiben" könnte man zunächst mal die Readingnamen nehmen, so wie sie für Ultimaker und Snapmaker vorhanden sind. Das würde schon helfen.

LG

pah

the ratman

#18
ich glaub', das krieg' ich hin *g*

so in etwa?
defmod adv5m_info HTTPMOD http://192.168.xxx.xxx:8899/command 35
attr adv5m_info enableControlSet 1
attr adv5m_info httpVersion 1.1
attr adv5m_info reading01Name name_original
attr adv5m_info reading01Regex CurrentFile: (.*)
attr adv5m_info reading02Name mode
attr adv5m_info reading02Regex MoveMode: (.*)
attr adv5m_info reading04Name status
attr adv5m_info reading04Regex MachineStatus: (.*)
attr adv5m_info requestData ~M119
attr adv5m_info timeout 35
attr adv5m_info userReadings name { my $js = ReadingsVal($NAME,"name_original",0);; $js=~s/.gcode//;; $js=~s/_/ /g;;$js;;}

defmod adv5m_progress HTTPMOD http://192.168.xxx.xxx:8899/command 35
attr adv5m_progress enableControlSet 1
attr adv5m_progress httpVersion 1.1
attr adv5m_progress reading01Name percent_completion
attr adv5m_progress reading01Regex byte (\d+)
attr adv5m_progress reading02Name layer_progress
attr adv5m_progress reading02Regex Layer: (\d+)
attr adv5m_progress reading03Name layer_target
attr adv5m_progress reading03Regex Layer: \d+\/(\d+)
attr adv5m_progress requestData ~M27
attr adv5m_progress timeout 35

defmod adv5m_temperature HTTPMOD http://192.168.xxx.xxx:8899/command 35
attr adv5m_temperature enableControlSet 1
attr adv5m_temperature httpVersion 1.1
attr adv5m_temperature reading01Name temperature_tool0_actual
attr adv5m_temperature reading01Regex T0:(\d+\.\d+)
attr adv5m_temperature reading02Name temperature_tool0_target
attr adv5m_temperature reading02Regex T0:\d+\.\d+/(\d+)
attr adv5m_temperature reading03Name temperature_bed_actual
attr adv5m_temperature reading03Regex B:(\d+\.\d+)
attr adv5m_temperature reading04Name temperature_bed_target
attr adv5m_temperature reading04Regex B:\d+\.\d+/(\d+)
attr adv5m_temperature requestData ~M105
attr adv5m_temperature timeout 35

hinweise:
1) ob der name des drucks auch bei anderen tools als orca nach dem prinzip "mein_name_ist_FILAMENT_00h00m00s.gcode" aufgebaut ist, weiß ich nicht.
2) der drucker rechnet falsche layer, sobald z.b. 2 einzelne teile auf der plattform gleichzeitig gedruckt werden. die layer werden einfach addiert, sodass bei werkstücken mit z.b. 2x100 layer 200 layer rauskommen. somit ist er auch nach rund 50% fertig mit dem druck. kommt vom drucker, nicht von mir. dies lässt sich umgehen, indem man alle objekte als einen auftrag lädt. allerdings kann man dann im orca keine individuellen einstellungen für jedes bauteil vornehmen.
3) nach wie vor schaffe ich keine abrufe mit httpmod unter 35 sek. bei drucken mit wenigen layern erreicht die druckanzeige, obwohl korreckt beendet, am ende meist nicht 100% bzw. alle soll-layer.

was man noch aus den infos ziehen könnte, wozu ich aber zu blöd bin:
1) das verwendete filament. allerdings nur "grundarten" wie pla. hat man ein filament auf basis von z.b. pla erstellt, so heißt auch das neue filament im namen "PLA".
2) die gesamtzeit des drucks in 00h00m00s. allerdings fehlen z.b. die stundenangaben, bleibt der druck unter 60 min. das aufzudröseln und in readings zu legen schaff' ich leider nicht.

hier noch die angepasste readingsgroup mit cam und vorbereitung für einen schalter zum ausschalten:
defmod rg_ffadv5m readingsGroup adv5m_info :<auftrag:&nbsp;;>,name\
adv5m_temperature :<düse:&nbsp;;>,temperature_tool0_actual,<von>,temperature_tool0_target\
adv5m_temperature :<bett:&nbsp;;>,temperature_bed_actual,<von>,temperature_bed_target\
<hr>\
adv5m_progress :<fertig:&nbsp;;>,percent_completion\
adv5m_progress :<layer:&nbsp;;>,layer_progress,<von>,layer_target\
adv5m_progress :<zustand:&nbsp;;>,status\
adv5m_progress :<aktuell:&nbsp;;>,mode\
<hr>\
adv5m_info :?!cam
attr rg_ffadv5m cellStyle {\
'r:1,c:1' => 'style="text-align:center;;"',\
'r:1,c:2' => 'style="border:1px solid;; -moz-border-radius:4px;; border-radius:4px;; padding:5px;; margin:5px;; float:center;; color:333333;; width:100%;; height:20px;; vertical-align:middle;; text-align:center;; align:center;;"'\
}
attr rg_ffadv5m commands { \
'state.off' => 'set %DEVICE on',\
'state.on' => 'set %DEVICE off'\
}
attr rg_ffadv5m noheading 1
attr rg_ffadv5m nolinks 1
attr rg_ffadv5m nonames 1
attr rg_ffadv5m nostate 1
attr rg_ffadv5m notime 1
attr rg_ffadv5m valueColumns {\
'name' => 'colspan="3";;',\
'cam' => 'colspan="4";; rowspan="4";;',\
'mode' => 'colspan="3";;',\
'status' => 'colspan="3";;'\
}
attr rg_ffadv5m valueFormat {\
'cam' => '<img src=http://192.168.xxx.xxx:8080/?action=stream" width=100&#37;;>'\
}
attr rg_ffadv5m valueIcon {\
'state.on' => 'control_standby@green',\
'state.off' => 'control_standby@red'\
}
attr rg_ffadv5m valueSuffix {\
'temperature_tool0_actual' => '&nbsp;;°c',\
'temperature_tool0_target' => '&nbsp;;°c',\
'temperature_bed_actual' => '&nbsp;;°c',\
'temperature_bed_target' => '&nbsp;;°c',\
'percent_completion' => '&nbsp;;%'\
}
ich hoffe, ich hab nix übersehen ...

anmerkung:
1) ein schalter zum strom schalten ist sicher als "notschalter" sinnvoll, bringt aber fürs einschalten wenig, weil man immer den drucker an seinem eigenen i/o an der front zusätzlich schalten muss.
2) das kamerabild darf derzeit nur 1 mal abgerufen werden. wird also an anderer stelle (z.b. browser) ebenfalls der stream abgerufen, so wird in der readingsgroup kein stream angezeigt. dies könnte ein von flashforge anerkannter bug sein.
→do↑p!dnʇs↓shit←

Prof. Dr. Peter Henning

OK, schau ich mir mal an - wird aber ne Weile dauern, muss morgen zum Arbeiten nach Wien.

LG

pah

the ratman

Zitat von: Prof. Dr. Peter Henning am 30 April 2024, 11:34:06muss morgen zum Arbeiten
och, du armer ... mein beileid *g*

btw - die nacht gabs wieder mal ein fw-update. schaut auf den 1. blick alles noch lauffähig aus. wetten darauf schließ' ich aber derzeit lieber nicht ab ...
→do↑p!dnʇs↓shit←