Pour être plus universel, j’ai transformé mon code en :
$urlOctopi='http://octopi'; // url de votre octopi. Peut aussi être de la forme http://ip
$apiKey='XXXXXXXXXXXXXXXXXX';
$commandeOctopi='connect';
$api='connection';// l'API
$cmd="curl -H 'Content-Type: application/json' -H 'X-Api-Key: " .$apiKey
."' -X POST -d '{\"command\":\""
.$commandeOctopi
."\"}' "
.$urlOctopi
."/api/"
.$api
."& ";
exec ($cmd);
Pour la température de la buse, il faut trouver le GCode correspondant.
dans l’exemple ci-dessus, le gcode pour le bed est ```
M140 S050
Je crois mais il faudrait vérifier que pour la buse c’est M104. Là par exemple pour la chauffer à 150° :
M104 S150
Cela donne donc
$urlOctopi='http://octopi'; // url de votre octopi. Peut aussi être de la forme http://ip
$apiKey='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$commandeOctopi='M104 S150';
$api="printer/command";// l'API
$cmd="curl -H 'Content-Type: application/json' -H 'X-Api-Key: " .$apiKey
."' -X POST -d '{\"command\":\""
.$commandeOctopi
."\"}' "
.$urlOctopi
."/api/"
.$api
."& ";
exec ($cmd);
Tant mieux si on peut le supprimer, je vais les supprimer y compris dans les codes ci-dessus car c’est plus simple. Avec, ça marche,
mais si tu veux combiner deux commande à la fois
Ca ne devait pas être
commandeOctopi='\"M140 S060\",\"M104 S205\"';
Mais ça devait plutôt être
$commandeOctopi='\"M140 S060,M104 S205'\" ';
En fait, les \" correspond à des " et donc ce que l'on mettait dans la variable était
"M140 S060,M104 S205"
Je suis en train de tester le fait de pouvoir relancer une impression par jeedom:
Je mémorise l’ancien fichier et je donne la possibilité par un clic de relancer la dernière impression. Utile lorsque l’on a la même pièce à faire en plusieurs exemplaires.
Commande pour sélectionner le fichier à imprimer
// sélectionne le fichier à imprimer
$impNomFichierImpression=cmd::byString('#[imp 3d][V imprimante 3D][Dernier nom fichier]#')->execCmd(); //nom du fichier à imprimer
$urlOctopi=cmd::byString('#[imp 3d][V imprimante 3D][Url octopi]#')->execCmd(); // url de votre octopi. Peut aussi être de la forme http://ip
$apiKey=cmd::byString('#[imp 3d][V imprimante 3D][API key octopi]#')->execCmd(); // la clef API
// les deux lignes précédentes peuvent être remplacé par quelque chose du genre :
//$urlOctopi='http://octopi'; // url de votre octopi. Peut aussi être de la forme http://ip
//$apiKey='XXXXXX';// votre clef API
$commandeOctopi='select';
//$api='files/local/fixationBobine.aw.gcode';// l'API sans / devant
$api='files/local/'.$impNomFichierImpression;// l'API sans / devant
$cmd="curl -H 'Content-Type: application/json' -H 'X-Api-Key: " .$apiKey
."' -X POST -d '{\"command\":\""
.$commandeOctopi
."\"}' "
.$urlOctopi
."/api/"
.$api
."& ";
exec ($cmd);
Et pour l’impression elle même :
// démarre l'impression
$urlOctopi=cmd::byString('#[imp 3d][V imprimante 3D][Url octopi]#')->execCmd(); // url de votre octopi. Peut aussi être de la forme http://ip
$apiKey=cmd::byString('#[imp 3d][V imprimante 3D][API key octopi]#')->execCmd();
$commandeOctopi='start';
$api='job';// l'API
$cmd="curl -H 'Content-Type: application/json' -H 'X-Api-Key: " .$apiKey
."' -X POST -d '{\"command\":\""
.$commandeOctopi
."\"}' "
.$urlOctopi
."/api/"
.$api
."& ";
exec ($cmd);