2cv001 Posté(e) Avril 5, 2020 Posté(e) Avril 5, 2020 (modifié) Je me suis essayé aux API Octoprint. Comme j'ai pas mal galéré, je mets à disposition le résultats de mes "trouvailles" Les API sont un moyen de piloter octoprint. Grâce aux API, on peut lui donne des ordres, et octopi s'exécute sans passer par son interface web. Il devient facile par exemple de déclencher une impression automatiquement à une certaine heure ou pourquoi pas, en y ajoutant un capteur de présence, lorsque vous rentrez chez vous. Vous pouvez aussi faire votre propre "poste de commande" en php ou autres (bon, pas beaucoup d'intérêt pour cette dernière idée vu la puissance de l'interface web d'octoprint, mais ça peut vous donner des idées. Site de référence API Octoprint : https://docs.octoprint.org/en/master/api/index.html Pour tester les API avec curl en ligne de commande: - Ouvrez une session SSH avec votre octopi (pour l'instant, je ne détaille pas car il y a d'autres tuto sur le sujet, mais à votre dispo..) - et tapez (ou copier coller puis modifiez les commandes suivantes dans la console SSH. Attention remplacez FD1....04 ou les ........ par votre propre clef API Quel intérêt ? C'est assez instructif, mais surtout cela est un point de départ pour, une fois les API bien compris et testées, pouvoir programmer en python, php, c pour automatiser les choses. Pour connaitre l'état d'une connexion curl -G "octopi/api/connection" --http1.1 -H "Host: octopi.local" -H "X-Api-Key: FD1....04" -H "Content-Type: application/json" Et ça vous renvoie quelque chose comme ça : {"current":{"baudrate":115200,"port":"/dev/ttyUSB0","printerProfile":"_default","state":"Printing"},"options":{"baudratePreference":115200,"baudrates":[250000,230400,115200,57600,38400,19200,9600],"portPreference":"/dev/ttyUSB0","ports":["/dev/ttyS0","/dev/ttyUSB0"],"printerProfilePreference":"_default","printerProfiles":[{"id":"_default","name":"CR10"}]}} pour y voir plus clair, vous pouvez par exemple aller sur http://json.parser.online.fr/ et y recopier ce résultat. Vous obtenez { "current":{ "baudrate":115200, "port":"/dev/ttyUSB0", "printerProfile":"_default", "state":"Printing" }, "options":{ "baudratePreference":115200, "baudrates":[ 250000, 230400, 115200, 57600, 38400, 19200, 9600 ], "portPreference":"/dev/ttyUSB0", "ports":[ "/dev/ttyS0", "/dev/ttyUSB0" ], "printerProfilePreference":"_default", "printerProfiles":[ { "id":"_default", "name":"CR10" } ] } } Vous pouvez faire pareil avec tous les autres API. Connaitre l'état de l'imprimante (compris les températures) curl -G "octopi/api/printer?history=true&limit=2" --http1.1 -H "Host: octopi.local" -H "X-Api-Key: ..............." -H "Content-Type: application/json" { "sd":{ "ready":true }, "state":{ "flags":{ "cancelling":false, "closedOrError":false, "error":false, "finishing":false, "operational":true, "paused":false, "pausing":false, "printing":true, "ready":false, "resuming":false, "sdReady":true }, "text":"Printing" }, "temperature":{ "bed":{ "actual":65.2, "offset":0, "target":65.0 }, "history":[ { "bed":{ "actual":65.5, "target":65.0 }, "time":1586104453, "tool0":{ "actual":199.6, "target":200.0 } }, { "bed":{ "actual":65.2, "target":65.0 }, "time":1586104458, "tool0":{ "actual":199.6, "target":200.0 } } ], "tool0":{ "actual":199.6, "offset":0, "target":200.0 } } } Lancer une connexion curl -H "Content-Type: application/json" -H "X-Api-Key: FD1....04" -X POST -d '{"command":"connect"}' http://octopi/api/connection Lancer, annuler une impression Pour lancer une impression curl -H "Content-Type: application/json" -H "X-Api-Key: ..........." -X POST -d '{"command":"start"}' http://octopi/api/job Pour annuler une impression : curl -H "Content-Type: application/json" -H "X-Api-Key: ........." -X POST -d '{"command":"cancel"}' http://octopi/api/job Pour sélectionner le fichier à imprimer (remplacez le nom du fichier .gcode) POur le sélectionner sans l'imprimer curl -H "Content-Type: application/json" -H "X-Api-Key: ................" -X POST -d '{"command":"select"}' http://octopi/api/files/local/brideMaintienRoulementBoite.gcode Pour sélectionner et l’imprimer : Testé ok curl -H "Content-Type: application/json" -H "X-Api-Key: ............" -X POST -d '{"command":"select","print":"true"}' http://octopi/api/files/local/brideMaintienRoulementBoite.gcode Etc.... N'hésitez pas à tester d'autres API et à nous partager vos "curl" Modifié (le) Avril 5, 2020 par 2cv001 1
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant