Retour d'état des imprimantes dans Jeedom

Octoprint et Jeedom.



Le but de ce mini tuto est de vous permettre d'avoir dans Jeedom un retour d'état de votre imprimante 3D gérée via Octoprint.

Mise à jour : Il existe maintenant un plugin Jeedom Octoprint pour gérer vos imprimantes.
Ne vous embêtez plus avec mon script ;) (même si je le garde sous le coude au cas ou)

Pré-requis :

  1. Jeedom.
    •  Avoir installé dans Jeedom les plugins de programmation scripts et virtuel. 
  2. Octoprint.
  3. Savoir se connecter en ssh sur votre 'Jeedom'



Configuration :

  • Connectez vous en ssh sur votre Jeedom.
  • Récupérez le script Octoprint via un wget https://github.com/vishnubob/octocmd/archive/master.zip
  • Décompressez le .zip et copier le script Perl octocmd dans le dossier de Jeddom /usr/share/nginx/www/jeedom/plugins/script/core/ressources
  • Faites un chmod +x sur le fichier copié
  • Faites un chown www-data sur le fichier pour permettre à apache de le lancer (si c'est apache qui fait tourner votre jeedom bien sûr)
  • Modifiez le shell de votre utilisateur www-data (par defaut le shell n'existe pas)
    • Il faut donc éditer le fichier /etc/passwd pour changer le shell /sbin/nologin en /bin/bash)


La documentation disponible ici vous invite à lancer octocmd la 1ère fois avec l'option init pour renseigner les informations de votre Octoprint.

  • Renseignez donc l'url de votre page Octoprint puis son code API. Vous devriez avoir comme message : This configuration works, keep it?
  • Récupérez le fichier de configuration .octocmd.conf qui se trouve maintenant dans le home de l'utilisateur que vous venez d'utiliser pour le placer ou vous le désirez.
  • Modifiez la ligne 408 du script octocmd en remplaçant le chemin par le votre (exemple, je l'ai placé dans le /home j'ai donc mis la ligne: args.config = os.path.join("/home/.octocmd.conf"
  • Connectez vous sur votre Octoprint et vérifiez que ce dernier est bien connecté à votre imprimante (StateOperational)
  • Maintenant en ssh sur votre Jeedom, vous devriez pouvoir lancer la commande ./octocmd status
  • Chez moi, le retour imprimante fraîchement allumé donne:
state: Operational
    flags: operational=True, paused=False, printing=False, sdReady=False, error=False, ready=True, closedOrError=False
temperature:
    bed: actual=25.9, target=0.0, offset=0
    tool0: actual=25.5, target=0.0, offset=0
sd: ready=False

Vérifiez bien que la commande status retourne les informations désirées. Si cela ne fonctionne pas, cherchez à la faire fonctionner.
  • Maintenant dans Jeedom. On peut créer un nouveau script que l'on nomme et que l'on actualise toutes les minutes.
  • Cliquez sur éditer puis copier le script disponible ici
    • Modifiez les deux 1ère variables du script en adaptant avec votre système.
      • La 1ère variable doit contenir le chemin du script perl octocmd.
      • La seconde variable doit contenir l'IP ou le nom de votre serveur Octoprint.
    1. Ce script nécessite les arguments status,bedtemp et extemp.
      1. L option status informe si l imprimante imprime ou non.
      2. L option bedtemp fourni la température du bed.
      3. L option extemp fourni la température de l'extrudeur.
  • Dans les commandes, on ajoute 3 nouvelles commandes pointant sur notre script en ajoutant les options status bedtemp et extemp.


La dernière étape consiste en la création d'un Virtuel nous affichant les informations désirées.


Voici ce que cela donne chez moi pour le retour de ces 3 informations.



A vous de jouer maintenant avec les autres commandes possibles d'octocmd pour vous créez vos retours et vos commandes.


Pour ma part, j'ai fait un scénario permettant d'éteindre automatiquement l'imprimante à la fin d'un print.


Bon courage et bon print.
Bab

5 commentaires:

  1. Bonjour,
    et merci bien pour ce tuto que je vais m'empresser de tester. Pourriez-vous partager votre scénario qui m'interesserait bien pour éteindre automatiquement mon anet A8 branchée sur le secteur via une prise connectée avec mesure de conso.

    RépondreSupprimer
    Réponses
    1. Bonjour,
      C'est le prochain article de prévu :) Le scénario n'est pas très compliqué vous verrez.

      Supprimer
    2. :) Fait https://babounx.blogspot.fr/2018/01/arret-durgence-ou-en-fin-de-print-des.html

      Supprimer
    3. Super ! Merci bien, exactement ce qu'il me fallait ! Un grand merci Babounx baboun

      Supprimer
  2. Bonjour,
    Je ne trouve pas de plugin Octoprint pour controler une prise présente sur Jeedom. Il y en a un pour Domoticz mais pas pour Jeedom. Savez vous s'il y a la possibilité d'envoyer ue requête http local de octoprint a jeedom pour allumer ou éteindre une prise connectée qui permettrait de controler l'allumage ou l'extinction de l'imprimante?
    Merci

    RépondreSupprimer