Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Status Snapmaker Artisan auslesen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Status Snapmaker Artisan auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MP_Trixi last edited by MP_Trixi

      Hallo,

      ich habe einen Snapmaker Artisan (das ist ein 3in1 Gerät für 3D-Druck, Lasergravur/-scheiden, CNC).
      Da würde ich gerne zumindest mal den aktuellen Status abfragen (was macht das Gerät? Zumindest ist es im idle oder führt es einen Job aus). Es hängt an einer Zigbee Steckdose, die den Strom misst, damit habe ich es rudimentär aber mehr schlecht als recht erstmal umgesetzt.

      Das Gerät ist im lokalen Netzwerk. Die dazugehörige Software ist Luban:
      https://snapmaker.com/snapmaker-luban
      https://github.com/Snapmaker/Luban

      Diese kann sich mit dem Gerät verbinden, sieht die verschiedene Werte (Status, Temperaturen,...) und kann es auch steuern. Dies geht auch mit anderer Software wie Cura über ein Plugin:
      https://github.com/Snapmaker/SnapmakerCuraPlugin/tree/main

      Ich habe da mal bei Letzterem in ein Script im Verzeichnis network_plugin reingeschaut. Hier wird wohl eine Verbindung via Port 8080 auf eine API (api_prefix = ":8080/api/v1") aufgemacht (zur API habe ich leider nichts gefunden). Ein Versuch das einfach mal im Browser mit ip-adresse:8080/api/v1 aufzurufen ging nicht (ERR_CONNECTION_REFUSED). Ich bin im Scripting leider nicht so firm, als dass ich da sonst was Brauchbares rauslesen könnte. Aber da draußen gibts ja Euch - denke mal dass es evtl. für Euch ganz easy ist und ihr mir einen Tipp habt, wie ich damit evtl. den Status regelmäßig in einen Datenpunkt laden kann. Denke mal, dass die Magie in diesem Python Script irgendwo verborgen ist:
      https://github.com/Snapmaker/SnapmakerCuraPlugin/blob/main/network_plugin/HTTPNetworkedPrinterOutputDevice.py
      oder wie es Luban macht:
      https://github.com/Snapmaker/Luban/blob/767fdd048eb1c141ce539dd2f12aeb076ab9582d/src/app/flux/machine/Server.js

      Ich bin auch mal noch den offiziellen weg gegangen und habe dazu einen Adapter Request aufgemacht:
      https://github.com/ioBroker/AdapterRequests/issues/869
      Wenn es mehrere brauchen könnten wäre das evtl. was. Sonst reicht mir aktuell auch erstmal eben nur den Status in einen Datenpunkt zu bekommen.

      Danke im Voraus 🙂

      P.S: Hier sind die Zustände zu finden die ich gerne hätte: https://github.com/Snapmaker/Luban/blob/main/packages/luban-platform/src/machine-state/common/WorkflowStatus.ts

      Was ich auch schon versucht habe: Das Gerät an einen Raspi mit Octoprint anzuschließen (dafür gibt es ja einen Adapter). Allerdings bringt Octoprint nur den Status, wenn der Job auch über Octoprint gestartet wurde (was ja dann nur für 3D Drucke geht).

      MPTrixi created this issue in ioBroker/AdapterRequests

      open Snapmaker 3in1 Devices #869

      M 1 Reply Last reply Reply Quote 2
      • M
        MP_Trixi @MP_Trixi last edited by Homoran

        Niemand? Ich habe das Gefühl, dass hier (https://github.com/Snapmaker/Luban/blob/767fdd048eb1c141ce539dd2f12aeb076ab9582d/src/app/flux/machine/Server.js) drin fast alles fertig vorliegt, bekomme es aber mit meinen arg beschränkten Programmierfähigkeiten nicht hin.
        So wie es aussieht muss man:

        1. Per Post (denke mal das geht so mit dem Browser nicht) sich mit der API verbinden. Das sollte der Aufruf dazu sein:
          http://<ip-Adresse des Snapmaker>:8080/api/v1/connect
          Da sollte ein JSON u.a. mit einem Token zurückkommen (beim ersten mal muss eine Verbindung am Bildschirm des Gerätes freigegeben werden)
        2. Mit dem Token sollte man den Status auslesen können
          http://<ip-Adresse des Snapmaker>:8080/api/v1/status?token=<token>

        Verbindet man sich mit Luban, wird im C:\Users\User\AppData\Roaming\snapmaker-luban\machine.json ein Token aktualisiert. Da ich schon an 1. scheitere habe ich mal versucht mich mit Luban zu verbinden und den dort abgelegten Token für 2. zu verwenden. Leider auch ohne Erfolg.

        M Negalein 2 Replies Last reply Reply Quote 0
        • M
          MP_Trixi @MP_Trixi last edited by MP_Trixi

          @mp_trixi
          so wie es aussieht hat mein Modell gar keine API mehr und kommuniziert direkt via TCP. Da war die Rede von einem “SACP connector". Keine Ahnung was das ist. Hat das damit überhaupt Aussicht auf Erfolg mit iobroker, sprich kann sowas damit gesteuert/angesprochen werden?

          Das wäre wohl sowas:
          https://github.com/macdylan/sm2uploader/blob/master/sacp.go
          Zeile 151

          https://github.com/macdylan/sm2uploader/blob/master/connector_sacp.go

          1 Reply Last reply Reply Quote 0
          • Negalein
            Negalein Global Moderator @MP_Trixi last edited by Negalein

            @mp_trixi sagte in Status Snapmaker Artisan auslesen:

            Niemand?

            wäre sehr begeistert, wenn sich jemand dem annehmen könnte.

            PS: habs mal nach "Allgemein" verschoben. Passt hier mMn besser als in "Scripte".

            M 1 Reply Last reply Reply Quote 0
            • M
              MP_Trixi @Negalein last edited by

              @negalein
              Mal schauen ob es hier besser läuft 😊
              Hast auch nen Snapmaker? Welches Model?

              Negalein 1 Reply Last reply Reply Quote 0
              • Negalein
                Negalein Global Moderator @MP_Trixi last edited by

                @mp_trixi sagte in Status Snapmaker Artisan auslesen:

                Hast auch nen Snapmaker? Welches Model?

                Jep, den Artisan 😄

                M 1 Reply Last reply Reply Quote 0
                • M
                  MP_Trixi @Negalein last edited by

                  @negalein
                  Na. Dann hoffen wir mal dass jemand was mit dem SACP anfangen kann und wir damit zum Ziel kommen.

                  1 Reply Last reply Reply Quote 0
                  • skvarel
                    skvarel Developer last edited by skvarel

                    Vielleicht kann ich @jkvarel überreden, sich das mal anzugucken. Einen snap-inventwo Adapter 🙂

                    Wir haben den A350. Zur Zeit läuft er noch über den Repetier-Server und dem Adapter dazu. Da wir uns jetzt von den Creality Druckern trennen und auf Bambu wechseln, brauchen wir den Server nicht mehr. Den Bambu bekomme ich in den ioBroker, mir fehlt dann aber der Snapmaker.

                    Negalein M 3 Replies Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @skvarel last edited by

                      @skvarel sagte in Status Snapmaker Artisan auslesen:

                      Vielleicht kann ich @jkvarel überreden, sich das mal anzugucken. Einen snap-inventwo Adapter

                      Ja, das wäre Mega!!!

                      HHab schon versucht den Artisan in Octoprint einzubinden.
                      Funktioniert nur so lala, da nicht der komplette Status übermittelt wird.

                      1 Reply Last reply Reply Quote 0
                      • M
                        MP_Trixi @skvarel last edited by

                        @skvarel
                        Hi - ja das wäre wirklich super. Ich war dazu auch schon anderweitig unterwegs. Vom Snapmaker Support kam nichts brauchbares ((noch) nicht unterstützt). Im Snapmaker Forum habe ich brauchbarere Antworten dazu erhalten (ich hoffe es ist ok, dies hier zu verlinken):
                        https://forum.snapmaker.com/t/do-snapmaker-2-0-devices-have-a-webpage/5455/53

                        Der Artisan unterscheidet sich zum A350 wohl darin, dass von HTTP over TCP auf SACP over TCP umgestellt wurde. Beim 2.0 gibt es eine Möglichkeit via UDP zumindest den Status zu erhalten. Vlt. wäre das ja auch für den Artisan ein erster Schritt (zum Letzteren gibt es ein HomeAssistant Beispiel und python Script).

                        1 Reply Last reply Reply Quote 1
                        • Negalein
                          Negalein Global Moderator last edited by

                          @skvarel sagte in Status Snapmaker Artisan auslesen:

                          Vielleicht kann ich @jkvarel überreden, sich das mal anzugucken. Einen snap-inventwo Adapter

                          Hallo

                          Konntest du ihn überreden? 😉

                          1 Reply Last reply Reply Quote 0
                          • Negalein
                            Negalein Global Moderator @skvarel last edited by

                            @skvarel sagte in Status Snapmaker Artisan auslesen:

                            Vielleicht kann ich @jkvarel überreden, sich das mal anzugucken. Einen snap-inventwo Adapter

                            Hallo

                            Gibt es Neuigkeiten? 😉

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              matze19999 @Negalein last edited by

                              @negalein Ich habe ein Python Script geschrieben welches sich über SACP over TCP mit dem Artisan verbindet und ein paar Kommendas ausführen kann: https://github.com/matze19999/SnapmakerSACP-Python

                              Negalein 1 Reply Last reply Reply Quote 0
                              • Negalein
                                Negalein Global Moderator @matze19999 last edited by

                                @matze19999 sagte in Status Snapmaker Artisan auslesen:

                                Ich habe ein Python Script geschrieben welches sich über SACP over TCP mit dem Artisan verbindet und ein paar Kommendas ausführen kann

                                kann es auch den Status auslesen?
                                Bed Temp
                                Print Temp
                                Print Time
                                Start
                                End

                                Das wäre sehr cool.

                                Und könnte man das dann in ioB bringen?

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                584
                                Online

                                31.6k
                                Users

                                79.6k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                1115
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo