Aller au contenu

GO Print

[TUTO] intégrer son imprimante 3d et gérer le stock de filaments et +


jybi89

Messages recommandés

Bonjour à tous,

Apres plusieurs heures de recherche, de lecture, avec l'aide de plusieurs utilisateurs de ce forum lesimprimantes3d.fr et du forum Home Assistant Communauté Francophone. J'ai enfin pu écrire ce tuto.


Etant utilisateur de Home Assistant, je souhaitais avoir un "control" sur ma ender 3v2, avoir les remontés d'informations (un maximum), ne pas avoir une interface graphique de gestion supplémentaire puisque je centralise le flux de mes données sur HA ... et surtout...gérer la consommation des filaments.

En concertation avec les modos et responsables de ce forum, je vais vous faire une rapide présentation des fonctions de cette intégration (que je pense être presque complète) et vous indiquerai le lien du tuto héberger sur le forum d' HACF

Avant tout, je tiens à remercier :
@PPAC @papaone @BenGamin(connu sous @Badidi dans HACF) @fran6p et l'ensemble de cette communauté pour toutes ces précieuses informations et questions/réponses.
Sur HACF: une pensée particulière pour@Clemalex et ses connaissances en langage, @golfvert et @fredarro (les autres fans de Node Red) et les videos de@DcJona (ecrans tactile nextion, mqtt, NR et weemos).

 

 

Dans le tuto, vous trouverez :
- la création des entités mqtt Octoprint -> HA,
- les codes utilisés pour les cartes, (avec les codes pour créer les inputs boolean, input number ect...),
- intégration de la camera branchée sur octoprint,
- les liens pour programmer les weemos pour les rubans led,
- les stl pour les support des led,
- les flow Node Red que vous faire en automatisation si vous n'êtes pas utilisateur de node red,
- la gestion des filaments ! qui de plus désagréable que de lancer un print sans savoir si le stock de filament est suffisant !?! permet aussi de commander une bobine avant la fin,
- visu sur la consommation electrique,
- visu sur la temperature et l'humidité des boites de filament,
- envoi de la photo du print final sur Telegram,
- notification Telegram s'il reste 10m de filament dans une la bobine concernée
- et tous les flow node red 🙂

la petite présentation en video car je suis limité en taille de piece jointe par post 😉

 

et pour l'ecran Nextion :

 

N hésitez à posez des questions ici ou sur HACF, faire des remarque (je débute dans l'impression 3D) et surtout d'apporter des améliorations ! 

Pour ma part je cherche à faire des macro gcode ! mais c'est une autre histoire :))
 

Bonne lecture du tuto à tous (il semble un peu long mais il y a beaucoup d'images 😄 )
[TUTO] intégrer son imprimante 3d et gérer le stock de filaments et + - Home Assistant - Tutoriels & Partages / Intégration - Home Assistant Communauté Francophone (hacf.fr)

 

 

 



Modifié (le) par jybi89
correction
  • J'aime 4
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Alors là, chapeau pour ton tutoriel complet 😉

Merci pour ce partage.

Utilisant HomeAssistant, j'ai grâce à ton tutoriel appris de nouvelles choses et ça c'est une chose que j'adore (apprendre).

N'hésite pas si tu as des questions sur l'impression 3D à venir les poser ici. De nombreux contributeurs, chacun avec ses compétences, connaissances, essaiera de te faire progresser.

🙂

Modifié (le) par fran6p
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

  • fran6p pinned this topic
  • 2 weeks later...

Une mise à jour du plugin octoprint Home Assistant : ca s'annonce pas mal du tout 🙂 j'attends la fin de l'impression pour voir ce que cela donne

Release 3.3.0 · cmroche/OctoPrint-HomeAssistant (github.com)

  • Support camera snapshots, and prep work to support images via MQTT plugin
  • Adding support for connect/disconnect (from printer)1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

  • 7 months later...

Hello,

Pour information j'ai crée un flow Node-RED (les domoticiens doivent connaitre) pour gérée les filaments et remonter les information dans Home Assistant depuis le plugin FilamentManager d'Octoprint et je balance tt dans MQTT.

Ca permet de récupérer dynamiquement tt les informations sur les filaments et de les afficher dans Home Assistant.

image.thumb.png.6a13b4b45e8d4e1811238f9d312d41a3.png

[{"id":"c149e48bea15ff25","type":"group","z":"85c70839c0b6be32","name":"FilamentManager","style":{"stroke":"#000000","fill":"#addb7b","label":true,"color":"#000000"},"nodes":["875a80342ba7f272","3e8386a587337e04","306884563dac1643","67e5ad1a648db995","335c7509a37f1a87","b1c0831515fb907b","b380bf8cb1407279","27dd6084663d4473","9792b0182ed43dc0","9d4cf91fc80217b9","9e84ca11197a4667","56d73242208e035c","cf4b9feca6db9d43","f78bbc85fd3c2a8e","87c36504dd947da8","5743f9277fe69799","1e04c7ea67db3cd3"],"x":34,"y":29,"w":1952,"h":122},{"id":"875a80342ba7f272","type":"inject","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":150,"y":70,"wires":[["b380bf8cb1407279"]]},{"id":"3e8386a587337e04","type":"function","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Get Spools","func":"msg.url = msg.octoprint_url+'/plugin/filamentmanager/spools'\nmsg.headers = {}\nmsg.headers['X-Api-Key'] = msg.api_key;\nmsg.method = \"GET\"\n    \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":450,"y":70,"wires":[["306884563dac1643"]]},{"id":"306884563dac1643","type":"http request","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","senderr":false,"x":610,"y":70,"wires":[["67e5ad1a648db995"]]},{"id":"67e5ad1a648db995","type":"json","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","property":"payload","action":"","pretty":false,"x":760,"y":70,"wires":[["335c7509a37f1a87"]]},{"id":"335c7509a37f1a87","type":"change","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Spools => Payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.spools","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":930,"y":70,"wires":[["b1c0831515fb907b"]]},{"id":"b1c0831515fb907b","type":"split","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":1090,"y":70,"wires":[["9792b0182ed43dc0"]]},{"id":"b380bf8cb1407279","type":"credentials","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"API Key","props":[{"value":"api_key","type":"msg"},{"value":"octoprint_url","type":"msg"},{"value":"ha_prefix","type":"msg"}],"x":300,"y":70,"wires":[["3e8386a587337e04","56d73242208e035c"]]},{"id":"27dd6084663d4473","type":"mqtt out","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","topic":"","qos":"0","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"94fffe91.c7ff7","x":1910,"y":90,"wires":[]},{"id":"9792b0182ed43dc0","type":"function","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Format Sensor for Auto-Discovery","func":"var payload = msg.payload\nvar profile = payload.profile\n\nmsg.payload = []\nmsg.payload.push({\n    \"topic\": msg.ha_prefix+\"/sensor/octoprint/filament_\"+payload.id+\"/config\",\n    \"payload\": {\n        \"name\": \"filament_\"+payload.id,\n        \"uniq_id\": \"filament_\"+payload.id,\n        \"stat_t\": msg.ha_prefix+\"/sensor/octoprint/filament_\"+payload.id+\"/state\",\n        \"json_attr_t\": msg.ha_prefix+\"/sensor/octoprint/filament_\"+payload.id+\"/attributes\",\n        \"unit_of_measurement\": \"g\",\n        \"device\": {\n            \"identifiers\": [ \"filament_\"+payload.id ],\n            \"name\": payload.name,\n            \"model\": profile.material,\n            \"manufacturer\": profile.vendor\n        }\n    }\n})\n\n\nname = payload.name.split(\" / \")[0]\ncolor = payload.name.split(\" / \")[1]\nrestant = payload.weight - payload.used\nused_percent = 100 * payload.used / payload.weight\nstate_percent = 100 - used_percent\n\nmsg.payload.push({\n    \"topic\": msg.ha_prefix+\"/sensor/octoprint/filament_\"+payload.id+\"/attributes\",\n    \"payload\": {\n        \"id\": payload.id,\n        \"cost\": payload.cost,\n        \"name\": name,\n        \"color\": color,\n        \"temp_offset\": payload.temp_offset,\n        \"used\": payload.used.toFixed(1),\n        \"used_percent\": used_percent.toFixed(1),\n        \"state_percent\": state_percent.toFixed(1),\n        \"weight\": payload.weight,\n        \"density\": profile.density,\n        \"diameter\": profile.diameter,\n        \"material\": profile.material,\n        \"vendor\": profile.vendor\n    }\n})\n\nmsg.payload.push({\n    \"topic\": msg.ha_prefix+\"/sensor/octoprint/filament_\"+payload.id+\"/state\",\n    \"payload\": restant.toFixed(1)\n})\n   \n    \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1310,"y":70,"wires":[["9d4cf91fc80217b9"]]},{"id":"9d4cf91fc80217b9","type":"split","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":1550,"y":90,"wires":[["9e84ca11197a4667"]]},{"id":"9e84ca11197a4667","type":"change","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Format Topic & Payload","rules":[{"t":"set","p":"topic","pt":"msg","to":"payload.topic","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"payload.payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1730,"y":90,"wires":[["27dd6084663d4473"]]},{"id":"56d73242208e035c","type":"function","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Get Selections","func":"msg.url = msg.octoprint_url+'/plugin/filamentmanager/selections'\nmsg.headers = {}\nmsg.headers['X-Api-Key'] = msg.api_key;\nmsg.method = \"GET\"\n    \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":460,"y":110,"wires":[["cf4b9feca6db9d43"]]},{"id":"cf4b9feca6db9d43","type":"http request","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","senderr":false,"x":630,"y":110,"wires":[["f78bbc85fd3c2a8e"]]},{"id":"f78bbc85fd3c2a8e","type":"json","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","property":"payload","action":"","pretty":false,"x":770,"y":110,"wires":[["87c36504dd947da8"]]},{"id":"87c36504dd947da8","type":"change","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Selections => Payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.selections","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":110,"wires":[["5743f9277fe69799"]]},{"id":"5743f9277fe69799","type":"split","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":1110,"y":110,"wires":[["1e04c7ea67db3cd3"]]},{"id":"1e04c7ea67db3cd3","type":"function","z":"85c70839c0b6be32","g":"c149e48bea15ff25","name":"Format Sensor for Auto-Discovery","func":"var payload = msg.payload\nvar spool = payload.spool\nvar profile = spool.profile\n\nmsg.payload = []\nmsg.payload.push({\n    \"topic\": msg.ha_prefix+\"/sensor/octoprint/filament_select/config\",\n    \"payload\": {\n        \"name\": \"filament_select\",\n        \"uniq_id\": \"filament_select\",\n        \"stat_t\": msg.ha_prefix+\"/sensor/octoprint/filament_select/state\",\n        \"json_attr_t\": msg.ha_prefix+\"/sensor/octoprint/filament_select/attributes\",\n        // \"unit_of_measurement\": \"g\",\n        \"device\": {\n            \"identifiers\": [ \"filament_select\" ],\n            \"name\": spool.name,\n            \"model\": profile.material,\n            \"manufacturer\": profile.vendor\n        }\n    }\n})\n\n\nname = spool.name.split(\" / \")[0]\ncolor = spool.name.split(\" / \")[1]\nrestant = spool.weight - spool.used\nused_percent = 100 * spool.used / spool.weight\nstate_percent = 100 - used_percent\n\nmsg.payload.push({\n    \"topic\": msg.ha_prefix+\"/sensor/octoprint/filament_select/attributes\",\n    \"payload\": {\n        \"cost\": spool.cost,\n        \"name\": name,\n        \"color\": color,\n        \"temp_offset\": spool.temp_offset,\n        \"used\": spool.used.toFixed(1),\n        \"used_percent\": used_percent.toFixed(1),\n        \"state_percent\": state_percent.toFixed(1),\n        \"weight\": spool.weight,\n        \"density\": profile.density,\n        \"diameter\": profile.diameter,\n        \"material\": profile.material,\n        \"vendor\": profile.vendor\n    }\n})\n\nmsg.payload.push({\n    \"topic\": msg.ha_prefix+\"/sensor/octoprint/filament_select/state\",\n    \"payload\": \"[\"+profile.material+\"] \"+profile.vendor+\" : \"+name\n})\n   \n    \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1320,"y":110,"wires":[["9d4cf91fc80217b9"]]},{"id":"94fffe91.c7ff7","type":"mqtt-broker","name":"Mosquitto","broker":"mosquitto.mosquitto","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]


 
  • J'aime 2
  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

Je viens de parcourir, super tuto!

pour ma part, je suis sous Domoticz pour ma domotique et avec Octoprint, j'ai le retour l'info pour m'indiquer par SMS la fin de l'impression et l'arrêt Auto de l'imprimante 10mn apes la fin d'impression avec Domoticz.

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...