Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] - Prusa Telemetriedaten mit Blockly einbinden

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    351

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

[gelöst] - Prusa Telemetriedaten mit Blockly einbinden

Geplant Angeheftet Gesperrt Verschoben Blockly
22 Beiträge 5 Kommentatoren 2.6k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Homoran

    @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

    Es gibt (mindestens) zwei URLs, die ich im Webbrowser aufrufen kann:
    http://192.xxx.xxx.xxx/api/printer und http://192.xxx.xxx.xxx/api/version
    Ich werde jeweils (einmalig) nach einem Benutzernamen und dem Passwort gefragt,
    danach kann ich mir die Daten als JSON String anschauen.

    der Browser wird die Credentials im Cache halten.
    Dein Blockly hat da keinen Zugriff drauf.

    hylamayn.deH Offline
    hylamayn.deH Offline
    hylamayn.de
    schrieb am zuletzt editiert von
    #3

    @homoran
    Hi,

    ja, das ist klar :)
    Die Frage ist, anders formuliert: wie kann ich das Eintippen in ein Web-Formular
    (die Eingabemaske für Benutzername und Passwort) per Blockly realisieren?
    Das ist ja ansich keine unmögliche (oder ungewöhnliche) Aufgabe, eine Webseite zu parsen.
    Sollte man als Laie meinen ;)

    Christoph

    HomoranH CodierknechtC 2 Antworten Letzte Antwort
    0
    • hylamayn.deH hylamayn.de

      @homoran
      Hi,

      ja, das ist klar :)
      Die Frage ist, anders formuliert: wie kann ich das Eintippen in ein Web-Formular
      (die Eingabemaske für Benutzername und Passwort) per Blockly realisieren?
      Das ist ja ansich keine unmögliche (oder ungewöhnliche) Aufgabe, eine Webseite zu parsen.
      Sollte man als Laie meinen ;)

      Christoph

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #4

      @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

      Das ist ja ansich keine unmögliche (oder ungewöhnliche) Aufgabe, eine Webseite zu parsen.

      kommt auf die Art der Zugriffsverwaltung an.

      einige können (noch) die Credentials im URL mitgeben: ip@user:pass, oder andere arten.

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • hylamayn.deH hylamayn.de

        @homoran
        Hi,

        ja, das ist klar :)
        Die Frage ist, anders formuliert: wie kann ich das Eintippen in ein Web-Formular
        (die Eingabemaske für Benutzername und Passwort) per Blockly realisieren?
        Das ist ja ansich keine unmögliche (oder ungewöhnliche) Aufgabe, eine Webseite zu parsen.
        Sollte man als Laie meinen ;)

        Christoph

        CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #5

        @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

        Die Frage ist, anders formuliert: wie kann ich das Eintippen in ein Web-Formular
        (die Eingabemaske für Benutzername und Passwort) per Blockly realisieren?

        Gar nicht.

        Das ist ja ansich keine unmögliche (oder ungewöhnliche) Aufgabe, eine Webseite zu parsen.
        Sollte man als Laie meinen

        Doch.

        Für HTTPS gibt's noch die "old school" Variante der Übergabe von Benutzername + Kennwort im URL.
        Nach dem Muster: https://user:password@192.168.x.y/api/printer
        Wird hier vermutlich nicht funktionieren, käme aber auf einen Versuch an.
        Oder man übergibt einen zusätzliche Header mit der (Basic-) Authentifizierung.
        Oder ein Token als Parameter. Das scheint mir so vergesehen zu sein.
        0a4c8b9b-527b-431e-9fca-ef6092591fbd-grafik.png

        Deine lokalen IP's brauchst Du hier übrigens nicht anonymisieren - das sind IP's in Deinem Netz. Damit kann von außen keiner etwas anfangen.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        hylamayn.deH 1 Antwort Letzte Antwort
        1
        • CodierknechtC Codierknecht

          @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

          Die Frage ist, anders formuliert: wie kann ich das Eintippen in ein Web-Formular
          (die Eingabemaske für Benutzername und Passwort) per Blockly realisieren?

          Gar nicht.

          Das ist ja ansich keine unmögliche (oder ungewöhnliche) Aufgabe, eine Webseite zu parsen.
          Sollte man als Laie meinen

          Doch.

          Für HTTPS gibt's noch die "old school" Variante der Übergabe von Benutzername + Kennwort im URL.
          Nach dem Muster: https://user:password@192.168.x.y/api/printer
          Wird hier vermutlich nicht funktionieren, käme aber auf einen Versuch an.
          Oder man übergibt einen zusätzliche Header mit der (Basic-) Authentifizierung.
          Oder ein Token als Parameter. Das scheint mir so vergesehen zu sein.
          0a4c8b9b-527b-431e-9fca-ef6092591fbd-grafik.png

          Deine lokalen IP's brauchst Du hier übrigens nicht anonymisieren - das sind IP's in Deinem Netz. Damit kann von außen keiner etwas anfangen.

          hylamayn.deH Offline
          hylamayn.deH Offline
          hylamayn.de
          schrieb am zuletzt editiert von
          #6

          @codierknecht

          Hallo,

          nur damit ich den Strang für mich abschließen kann:
          ich kann im Browser diese Adresse aufrufen:
          http://192.168.178.117/api/printer (nicht https, wirklich http).
          Dann bekomme ich ein Fenster, wo ich Username und Passwort (nicht den API-Token) eingeben kann,
          die ich in PrusaLink hinterlegt habe.
          Und ab dann kann ich fröhlich meine Telemetrie-Daten abrufen, kriege z.B.:

          {"temperature": {"tool0": {"actual": 35.8, "target": 0.0}, "bed": {"actual": 35.7, "target": 0.0}}, "sd": {"ready": true}, "state": {"text": "Operational", "flags": {"operational": true, "paused": false, "printing": false, "cancelling": false, "pausing": false, "sdReady": true, "error": false, "ready": true, "closedOrError": false, "finished": false, "prepared": false, "link_state": "IDLE"}}, "telemetry": {"temp-bed": 35.7, "temp-nozzle": 35.8, "material": " - ", "z-height": 50.0, "print-speed": 100, "axis_x": 0.0, "axis_y": 0.0, "axis_z": 50.0}, "storage": {"local": {"free_space": 5557104640, "total_space": 7388884992}, "sd_card": null}}
          

          Diese Daten automatisiert abzurufen über ein Blockly-Script ist also wirklich >>unmöglich<<, ja? Und gleich weiter: warum das denn? :)
          Und wenn ja: wie kann ich denn sonst per Blockly auf solche Daten zugreifen (es geht wohl um das Stichwort "API", richtig? ;) )

          Christoph

          HomoranH 1 Antwort Letzte Antwort
          0
          • hylamayn.deH hylamayn.de

            @codierknecht

            Hallo,

            nur damit ich den Strang für mich abschließen kann:
            ich kann im Browser diese Adresse aufrufen:
            http://192.168.178.117/api/printer (nicht https, wirklich http).
            Dann bekomme ich ein Fenster, wo ich Username und Passwort (nicht den API-Token) eingeben kann,
            die ich in PrusaLink hinterlegt habe.
            Und ab dann kann ich fröhlich meine Telemetrie-Daten abrufen, kriege z.B.:

            {"temperature": {"tool0": {"actual": 35.8, "target": 0.0}, "bed": {"actual": 35.7, "target": 0.0}}, "sd": {"ready": true}, "state": {"text": "Operational", "flags": {"operational": true, "paused": false, "printing": false, "cancelling": false, "pausing": false, "sdReady": true, "error": false, "ready": true, "closedOrError": false, "finished": false, "prepared": false, "link_state": "IDLE"}}, "telemetry": {"temp-bed": 35.7, "temp-nozzle": 35.8, "material": " - ", "z-height": 50.0, "print-speed": 100, "axis_x": 0.0, "axis_y": 0.0, "axis_z": 50.0}, "storage": {"local": {"free_space": 5557104640, "total_space": 7388884992}, "sd_card": null}}
            

            Diese Daten automatisiert abzurufen über ein Blockly-Script ist also wirklich >>unmöglich<<, ja? Und gleich weiter: warum das denn? :)
            Und wenn ja: wie kann ich denn sonst per Blockly auf solche Daten zugreifen (es geht wohl um das Stichwort "API", richtig? ;) )

            Christoph

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #7

            @hylamayn-de Du hast aber schon die letzte Antwort von @Codierknecht gelesen?

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            hylamayn.deH 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @hylamayn-de Du hast aber schon die letzte Antwort von @Codierknecht gelesen?

              hylamayn.deH Offline
              hylamayn.deH Offline
              hylamayn.de
              schrieb am zuletzt editiert von
              #8

              @homoran

              Gelesen schon, vielleicht nicht verstanden ;)

              Ich habe den API-Key (=Token, ja?), mir fehlt nur die Info, wie ich ihn in Blockly einsetze, um die Daten abrufen zu können.
              Im Webbrowser brauche ich keinen API-Key und kein Token, sonder eben (ich könnte mich hier wiederholen ;) ) nur Username und Passwort...
              Wie frage ich Telemetriedaten vom PRUSA Mk3s per Blockly ab? Hat das schonmal jemand geschafft?
              Christoph

              HomoranH CodierknechtC 2 Antworten Letzte Antwort
              0
              • hylamayn.deH hylamayn.de

                @homoran

                Gelesen schon, vielleicht nicht verstanden ;)

                Ich habe den API-Key (=Token, ja?), mir fehlt nur die Info, wie ich ihn in Blockly einsetze, um die Daten abrufen zu können.
                Im Webbrowser brauche ich keinen API-Key und kein Token, sonder eben (ich könnte mich hier wiederholen ;) ) nur Username und Passwort...
                Wie frage ich Telemetriedaten vom PRUSA Mk3s per Blockly ab? Hat das schonmal jemand geschafft?
                Christoph

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #9

                @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                ich könnte mich hier wiederholen

                und ich müsste es jetzt, da alles bereits geschrieben wurde

                @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                vielleicht nicht verstanden

                hast du es denn versucht?

                @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                Nach dem Muster: https://user:password@192.168.x.y/api/printer

                was kam da raus

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                hylamayn.deH 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                  ich könnte mich hier wiederholen

                  und ich müsste es jetzt, da alles bereits geschrieben wurde

                  @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                  vielleicht nicht verstanden

                  hast du es denn versucht?

                  @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                  Nach dem Muster: https://user:password@192.168.x.y/api/printer

                  was kam da raus

                  hylamayn.deH Offline
                  hylamayn.deH Offline
                  hylamayn.de
                  schrieb am zuletzt editiert von
                  #10

                  @homoran said in Prusa Telemetriedaten mit Blockly einbinden:

                  @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                  ich könnte mich hier wiederholen

                  und ich müsste es jetzt, da alles bereits geschrieben wurde

                  Witzig.

                  @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                  vielleicht nicht verstanden

                  hast du es denn versucht?

                  Versucht zu verstehen, was @codierknecht geschrieben hat? Es war in deutsch geschrieben, es war semantisch und grammatikalisch in Ordnung und klar formuliert. Also ja, ich habe das verstanden.
                  Das heißt aber nicht, dass ich weiß wie ich das umzusetzen habe. Und danach habe ich gefragt.
                  Wie macht man das Folgende in Blockly:

                  Oder man übergibt einen zusätzliche Header mit der (Basic-) Authentifizierung.
                  Oder ein Token als Parameter. Das scheint mir so vergesehen zu sein.>

                  @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                  Nach dem Muster: https://user:password@192.168.x.y/api/printer
                  was kam da raus

                  Wie @Codierknecht selbst schon vorher gesagt hatte funktioniert das so nicht, weder mit "http" noch mit "https".

                  Christoph

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • hylamayn.deH hylamayn.de

                    @homoran said in Prusa Telemetriedaten mit Blockly einbinden:

                    @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                    ich könnte mich hier wiederholen

                    und ich müsste es jetzt, da alles bereits geschrieben wurde

                    Witzig.

                    @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                    vielleicht nicht verstanden

                    hast du es denn versucht?

                    Versucht zu verstehen, was @codierknecht geschrieben hat? Es war in deutsch geschrieben, es war semantisch und grammatikalisch in Ordnung und klar formuliert. Also ja, ich habe das verstanden.
                    Das heißt aber nicht, dass ich weiß wie ich das umzusetzen habe. Und danach habe ich gefragt.
                    Wie macht man das Folgende in Blockly:

                    Oder man übergibt einen zusätzliche Header mit der (Basic-) Authentifizierung.
                    Oder ein Token als Parameter. Das scheint mir so vergesehen zu sein.>

                    @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                    Nach dem Muster: https://user:password@192.168.x.y/api/printer
                    was kam da raus

                    Wie @Codierknecht selbst schon vorher gesagt hatte funktioniert das so nicht, weder mit "http" noch mit "https".

                    Christoph

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von Homoran
                    #11

                    @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                    Versucht zu verstehen, was @codierknecht geschrieben hat?

                    nein!

                    du sollst in einem Browser, in dem du die Credentials noch nicht eingegeben hast, oder in einem inkognito Tab in die Adresszeile

                    @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                    Nach dem Muster: https://user:password@192.168.x.y/api/printer

                    deine Credentials und die IP deines Prusa eingeben

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    hylamayn.deH 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                      Versucht zu verstehen, was @codierknecht geschrieben hat?

                      nein!

                      du sollst in einem Browser, in dem du die Credentials noch nicht eingegeben hast, oder in einem inkognito Tab in die Adresszeile

                      @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                      Nach dem Muster: https://user:password@192.168.x.y/api/printer

                      deine Credentials und die IP deines Prusa eingeben

                      hylamayn.deH Offline
                      hylamayn.deH Offline
                      hylamayn.de
                      schrieb am zuletzt editiert von
                      #12

                      @homoran said in Prusa Telemetriedaten mit Blockly einbinden:

                      @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                      Versucht zu verstehen, was @codierknecht geschrieben hat?

                      nein!

                      du sollst in einem Browser, in dem du die Credentials noch nicht eingegeben hast, oder in einem inkognito Tab in die Adresszeile

                      @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                      Nach dem Muster: https://user:password@192.168.x.y/api/printer

                      deine Credentials und die IP deines Prusa eingeben

                      Das funktioniert im Browser tadellos, und zwar nur mit "http". Bei "https" kommt:
                      "Die Website ist nicht erreichbar192.168.178.117 hat die Verbindung abgelehnt."

                      Nur in Blockly kriege ich das nicht hin:

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <variables>
                          <variable id="YyN?0+-c0yZwIIzVi80;">result</variable>
                        </variables>
                        <block type="schedule" id="7kOG2-xtNF,TGXL1D,wP" x="-912" y="-462">
                          <field name="SCHEDULE">*/20 * * * * *</field>
                          <statement name="STATEMENT">
                            <block type="request" id="v-XtTy~3mxe-:F+]sI+}">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                              <field name="WITH_STATEMENT">TRUE</field>
                              <field name="LOG"></field>
                              <value name="URL">
                                <shadow type="text" id="dg,6Vk.Z1%W.2/HIYLmX">
                                  <field name="TEXT">http://christoph:geheim@192.168.178.117/api/printer</field>
                                </shadow>
                              </value>
                              <statement name="STATEMENT">
                                <block type="debug" id="-5uRqKuj:!vDX)Yb+%^-">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                    <shadow type="text" id="?oFfkgrFOeR0uzD[KyQ2">
                                      <field name="TEXT">test</field>
                                    </shadow>
                                    <block type="variables_get" id="%^QkU`@.zE.R~Itd~Kxu">
                                      <field name="VAR" id="YyN?0+-c0yZwIIzVi80;">result</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </statement>
                        </block>
                      </xml>
                      

                      Hier bekomme ich statt der gewünschten Daten in der Variablen "result" die Fehlermeldung der abgefragten Seite:

                      <!DOCTYPE html> <html> <head> <title>401 - Unauthorized</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <style> body {width: 80%; margin: auto; padding-top: 30px;} h1 {text-align: center; color: #707070;} p {text-indent: 30px; margin-top: 30px; margin-bottom: 30px;} </style> </head> <body> <h1>401 - Unauthorized</h1> <p>Method GET for /api/printer uri.</p> <hr> <small><i>webmaster: webmaster@192.168.178.117 </i></small> </body> </html>
                      

                      Christoph

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • hylamayn.deH hylamayn.de

                        @homoran said in Prusa Telemetriedaten mit Blockly einbinden:

                        @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                        Versucht zu verstehen, was @codierknecht geschrieben hat?

                        nein!

                        du sollst in einem Browser, in dem du die Credentials noch nicht eingegeben hast, oder in einem inkognito Tab in die Adresszeile

                        @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                        Nach dem Muster: https://user:password@192.168.x.y/api/printer

                        deine Credentials und die IP deines Prusa eingeben

                        Das funktioniert im Browser tadellos, und zwar nur mit "http". Bei "https" kommt:
                        "Die Website ist nicht erreichbar192.168.178.117 hat die Verbindung abgelehnt."

                        Nur in Blockly kriege ich das nicht hin:

                        <xml xmlns="https://developers.google.com/blockly/xml">
                          <variables>
                            <variable id="YyN?0+-c0yZwIIzVi80;">result</variable>
                          </variables>
                          <block type="schedule" id="7kOG2-xtNF,TGXL1D,wP" x="-912" y="-462">
                            <field name="SCHEDULE">*/20 * * * * *</field>
                            <statement name="STATEMENT">
                              <block type="request" id="v-XtTy~3mxe-:F+]sI+}">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                <field name="WITH_STATEMENT">TRUE</field>
                                <field name="LOG"></field>
                                <value name="URL">
                                  <shadow type="text" id="dg,6Vk.Z1%W.2/HIYLmX">
                                    <field name="TEXT">http://christoph:geheim@192.168.178.117/api/printer</field>
                                  </shadow>
                                </value>
                                <statement name="STATEMENT">
                                  <block type="debug" id="-5uRqKuj:!vDX)Yb+%^-">
                                    <field name="Severity">log</field>
                                    <value name="TEXT">
                                      <shadow type="text" id="?oFfkgrFOeR0uzD[KyQ2">
                                        <field name="TEXT">test</field>
                                      </shadow>
                                      <block type="variables_get" id="%^QkU`@.zE.R~Itd~Kxu">
                                        <field name="VAR" id="YyN?0+-c0yZwIIzVi80;">result</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                              </block>
                            </statement>
                          </block>
                        </xml>
                        

                        Hier bekomme ich statt der gewünschten Daten in der Variablen "result" die Fehlermeldung der abgefragten Seite:

                        <!DOCTYPE html> <html> <head> <title>401 - Unauthorized</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <style> body {width: 80%; margin: auto; padding-top: 30px;} h1 {text-align: center; color: #707070;} p {text-indent: 30px; margin-top: 30px; margin-bottom: 30px;} </style> </head> <body> <h1>401 - Unauthorized</h1> <p>Method GET for /api/printer uri.</p> <hr> <small><i>webmaster: webmaster@192.168.178.117 </i></small> </body> </html>
                        

                        Christoph

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #13

                        @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                        Das funktioniert im Browser tadellos,

                        auch wenn du in dem Browser noch nie deine Credentials in das Popup eingegeben hattest?

                        wenn ja, dann

                        @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                        Nur in Blockly kriege ich das nicht hin:

                        schaffen wir das

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Antwort Letzte Antwort
                        0
                        • hylamayn.deH hylamayn.de

                          @homoran

                          Gelesen schon, vielleicht nicht verstanden ;)

                          Ich habe den API-Key (=Token, ja?), mir fehlt nur die Info, wie ich ihn in Blockly einsetze, um die Daten abrufen zu können.
                          Im Webbrowser brauche ich keinen API-Key und kein Token, sonder eben (ich könnte mich hier wiederholen ;) ) nur Username und Passwort...
                          Wie frage ich Telemetriedaten vom PRUSA Mk3s per Blockly ab? Hat das schonmal jemand geschafft?
                          Christoph

                          CodierknechtC Offline
                          CodierknechtC Offline
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #14

                          @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                          Im Webbrowser brauche ich keinen API-Key und kein Token

                          Nö - da sitzt ja dann auch jemand mit der Hand am Arm vor dem Bildschirm und kann die Credentials eingeben. Und zu allem Unglück "merkt" sich der Browser auch noch die Daten ... zumindest solange bis die Session abläuft.
                          Für etwas Automatisiertes wie Blockly ist das völlig unbrauchbar. Dein Ansinnen, da etwas zu "parsen" und per Blockly "von hinten durch die Brust ins Auge" irgendwelche Eingaben zu machen, funktioniert nicht.

                          Für genau diesen Anwendungsfall ist so ein API-Token gedacht.
                          Das wird in den URL eingebaut - wie genau, das sollte irgendwo bei Prusa herauszufinden sein.
                          In der Regel funktioniert das nach dem Prinzip:

                          http://192.168.x.y/api/printer?key=1234567890abdcef
                          

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          hylamayn.deH 1 Antwort Letzte Antwort
                          0
                          • CodierknechtC Codierknecht

                            @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                            Im Webbrowser brauche ich keinen API-Key und kein Token

                            Nö - da sitzt ja dann auch jemand mit der Hand am Arm vor dem Bildschirm und kann die Credentials eingeben. Und zu allem Unglück "merkt" sich der Browser auch noch die Daten ... zumindest solange bis die Session abläuft.
                            Für etwas Automatisiertes wie Blockly ist das völlig unbrauchbar. Dein Ansinnen, da etwas zu "parsen" und per Blockly "von hinten durch die Brust ins Auge" irgendwelche Eingaben zu machen, funktioniert nicht.

                            Für genau diesen Anwendungsfall ist so ein API-Token gedacht.
                            Das wird in den URL eingebaut - wie genau, das sollte irgendwo bei Prusa herauszufinden sein.
                            In der Regel funktioniert das nach dem Prinzip:

                            http://192.168.x.y/api/printer?key=1234567890abdcef
                            
                            hylamayn.deH Offline
                            hylamayn.deH Offline
                            hylamayn.de
                            schrieb am zuletzt editiert von
                            #15

                            @codierknecht
                            "durch die Brust ins Auge"? Ich bin gespannt, was Du zu meiner Lösung sagst ... ;)

                            Ich hab das weder mit Blockly noch mit Javascript hinbekommen, auf die API des Prusa zuzugreifen.
                            Statt dessen verwende ich dazu NodeRed, wo das problemlos geht. Ich schicke die JSON Datei, die
                            ich damit bekomme, in einen Datenpunkt unter dem Namespace Nodered. Und diesen Datenpunkt
                            (eigentlich zwei, da ich die Metadaten unter einer anderen Adresse noch mitnehme) verwende ich,
                            um in einem Blockly-Script daraus Datenpunkte unter 0_userdata zu erstellen.
                            Und damit habe ich alle gewünschten Parameter. So wie ich das unter Octoprint ganz ohne Aufwand
                            auch haben könnte. Aber wo ist da der Spaß? ;)
                            Ausserdem ist mir natürlich klar, dass Prusalink Beta-Software ist. Nach der nächsten Revision könnten
                            Teile der Daten nicht mehr gesendet werden (ist sowieso einiges redundant) oder das Ganze klappt
                            gar nicht mehr. So what? ;)

                            Danke für Eure Hilfe!

                            Christoph

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • hylamayn.deH hylamayn.de

                              @codierknecht
                              "durch die Brust ins Auge"? Ich bin gespannt, was Du zu meiner Lösung sagst ... ;)

                              Ich hab das weder mit Blockly noch mit Javascript hinbekommen, auf die API des Prusa zuzugreifen.
                              Statt dessen verwende ich dazu NodeRed, wo das problemlos geht. Ich schicke die JSON Datei, die
                              ich damit bekomme, in einen Datenpunkt unter dem Namespace Nodered. Und diesen Datenpunkt
                              (eigentlich zwei, da ich die Metadaten unter einer anderen Adresse noch mitnehme) verwende ich,
                              um in einem Blockly-Script daraus Datenpunkte unter 0_userdata zu erstellen.
                              Und damit habe ich alle gewünschten Parameter. So wie ich das unter Octoprint ganz ohne Aufwand
                              auch haben könnte. Aber wo ist da der Spaß? ;)
                              Ausserdem ist mir natürlich klar, dass Prusalink Beta-Software ist. Nach der nächsten Revision könnten
                              Teile der Daten nicht mehr gesendet werden (ist sowieso einiges redundant) oder das Ganze klappt
                              gar nicht mehr. So what? ;)

                              Danke für Eure Hilfe!

                              Christoph

                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #16

                              @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                              Ich hab das weder mit Blockly noch mit Javascript hinbekommen,

                              du hast ja auch nichts gezeigt!

                              wenn das mit

                              @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                              NodeRed, ... problemlos geht.

                              geht das auch mit Blockly!

                              Aber ohne Feedback, logs und Infos kann man nicht dein Problem sehen.

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              hylamayn.deH 1 Antwort Letzte Antwort
                              1
                              • HomoranH Homoran

                                @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                                Ich hab das weder mit Blockly noch mit Javascript hinbekommen,

                                du hast ja auch nichts gezeigt!

                                wenn das mit

                                @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                                NodeRed, ... problemlos geht.

                                geht das auch mit Blockly!

                                Aber ohne Feedback, logs und Infos kann man nicht dein Problem sehen.

                                hylamayn.deH Offline
                                hylamayn.deH Offline
                                hylamayn.de
                                schrieb am zuletzt editiert von
                                #17

                                @homoran @Codierknecht

                                Nochmal vielen Dank für Eure Hilfe.
                                Ich will es kurz machen und den Thread dann auch gleich schließen (Kann ich das eigentlich?).
                                Eure Vorschläge funktionieren so nicht. Mehr oder weniger habe ich das auch schon geschrieben.

                                Der Grund, dass das mit meinem Blockly nicht geklappt hat, ist: beim Aufruf der
                                API-URL muss eine "digest authentification" durchgeführt werden, und diese Möglichkeit
                                gibt es wohl nicht im "request" Modul (?). Hab jedenfalls nichts gefunden dazu.

                                Ich verwende jetzt das "exec" Modul, und mache meine Abfrage per "curl".
                                Wahrscheinlich ist das sicherheitstechnisch Mist, aber es funktioniert.

                                Christoph

                                HomoranH 1 Antwort Letzte Antwort
                                0
                                • hylamayn.deH hylamayn.de

                                  @homoran @Codierknecht

                                  Nochmal vielen Dank für Eure Hilfe.
                                  Ich will es kurz machen und den Thread dann auch gleich schließen (Kann ich das eigentlich?).
                                  Eure Vorschläge funktionieren so nicht. Mehr oder weniger habe ich das auch schon geschrieben.

                                  Der Grund, dass das mit meinem Blockly nicht geklappt hat, ist: beim Aufruf der
                                  API-URL muss eine "digest authentification" durchgeführt werden, und diese Möglichkeit
                                  gibt es wohl nicht im "request" Modul (?). Hab jedenfalls nichts gefunden dazu.

                                  Ich verwende jetzt das "exec" Modul, und mache meine Abfrage per "curl".
                                  Wahrscheinlich ist das sicherheitstechnisch Mist, aber es funktioniert.

                                  Christoph

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #18

                                  @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                                  Eure Vorschläge funktionieren so nicht.

                                  wir haben ja noch gar keine richtigen Vorschläge gemacht.
                                  Dazu fehlen uns noch die notwendigen Informationen.

                                  Das bisherige waren nur allgemeine Möglichkeiten.

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  CodierknechtC 1 Antwort Letzte Antwort
                                  1
                                  • HomoranH Homoran

                                    @hylamayn-de sagte in Prusa Telemetriedaten mit Blockly einbinden:

                                    Eure Vorschläge funktionieren so nicht.

                                    wir haben ja noch gar keine richtigen Vorschläge gemacht.
                                    Dazu fehlen uns noch die notwendigen Informationen.

                                    Das bisherige waren nur allgemeine Möglichkeiten.

                                    CodierknechtC Offline
                                    CodierknechtC Offline
                                    Codierknecht
                                    Developer Most Active
                                    schrieb am zuletzt editiert von Codierknecht
                                    #19

                                    @homoran
                                    Wenn's damit funktioniert ... alles tutti.
                                    Ob NodeRed, Blockly oder gleich in JS ist dabei ja wurscht - am Ende kommt eh nur JS dabei raus.

                                    Die nutzen den API Key wohl etwas "unkonventionell" und scheinen den Begriff "API" nicht so recht verstanden zu haben oder grundsätzlich anders zu interpretieren.
                                    Den jedes Mal von Hand eingeben zu müssen hat für mich jedenfalls nix mit "Application Programming Interface" zu tun.

                                    @hylamayn-de
                                    Wenn der Thread für Dich erledigt ist, dann bearbeite bitten Deinen Eingangspost und setz ein "[gelöst] - " vor den Titel.

                                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                    HmIP|ZigBee|Tasmota|Unifi
                                    Zabbix Certified Specialist
                                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                    HomoranH 1 Antwort Letzte Antwort
                                    1
                                    • CodierknechtC Codierknecht

                                      @homoran
                                      Wenn's damit funktioniert ... alles tutti.
                                      Ob NodeRed, Blockly oder gleich in JS ist dabei ja wurscht - am Ende kommt eh nur JS dabei raus.

                                      Die nutzen den API Key wohl etwas "unkonventionell" und scheinen den Begriff "API" nicht so recht verstanden zu haben oder grundsätzlich anders zu interpretieren.
                                      Den jedes Mal von Hand eingeben zu müssen hat für mich jedenfalls nix mit "Application Programming Interface" zu tun.

                                      @hylamayn-de
                                      Wenn der Thread für Dich erledigt ist, dann bearbeite bitten Deinen Eingangspost und setz ein "[gelöst] - " vor den Titel.

                                      HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #20

                                      @codierknecht sagte in Prusa Telemetriedaten mit Blockly einbinden:

                                      Wenn der Thread für Dich erledigt ist,

                                      ich? :joy:

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        Snatch
                                        schrieb am zuletzt editiert von
                                        #21

                                        Ich habe auch vor auf den Prosa zuzugreifen. Meine Idee ist, einen RGB-Streiben anhand der Informationen aus der API unterschiedlich leuchten zu lassen und natürlich auch gewisse Informationen in ioBroker anzeigen zu lassen.

                                        @hylamayn-de Kannst du deine Lösung hier mal detailliert zeigen?

                                        Danke und Grüße

                                        1 Antwort Letzte Antwort
                                        1
                                        • K Offline
                                          K Offline
                                          Kammi_
                                          schrieb am zuletzt editiert von
                                          #22

                                          Hi hier ist mal der ansatz dafür

                                          diese zeile im Blockly müsstet ihr ändern

                                          curl -v http://192.168.0.91/api/printer --digest -u USER:PASSWORD
                                          

                                          um die api einzusehen
                                          http://ip/api/printer
                                          http://ip/api/version

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                            <variables>
                                              <variable id="B=%HkNFd;Jc-lk:s1;ct">result</variable>
                                            </variables>
                                            <block type="on" id="iHq6A)^AZ=QN+;coR^ht" x="238" y="-387">
                                              <field name="OID">tuya.0.bffbff9117c8137818tkbd.1</field>
                                              <field name="CONDITION">true</field>
                                              <field name="ACK_CONDITION"></field>
                                              <statement name="STATEMENT">
                                                <block type="schedule" id="$@Q{Q!oh$(Xi+YfJ+Sth">
                                                  <field name="SCHEDULE">*/30 * * * * *</field>
                                                  <statement name="STATEMENT">
                                                    <block type="exec" id="rl%::%dMuDzH:Oq|nx4Y">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                                      <field name="WITH_STATEMENT">TRUE</field>
                                                      <field name="LOG">info</field>
                                                      <value name="COMMAND">
                                                        <shadow type="text" id="S*SWo2P:N:YD_t7GS@AP">
                                                          <field name="TEXT">curl -v   http://192.168.0.91/api/printer  --digest -u USER:PASSWORD</field>
                                                        </shadow>
                                                      </value>
                                                      <statement name="STATEMENT">
                                                        <block type="comment" id="yX7S6rmlAz8S41pwf76$">
                                                          <field name="COMMENT">Bett-Temperatur</field>
                                                          <next>
                                                            <block type="update" id="/JU=hq_EbM2uBYcH#CaL">
                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                              <field name="OID">0_userdata.0.Prusa_Mini_Data.MK4.temp_bed</field>
                                                              <field name="WITH_DELAY">FALSE</field>
                                                              <value name="VALUE">
                                                                <block type="get_attr" id="3/qiV[k;qu[CEb1F)vlm">
                                                                  <value name="PATH">
                                                                    <shadow type="text" id="@oLvnd+50^[4HE/z}A32">
                                                                      <field name="TEXT">telemetry.temp-bed</field>
                                                                    </shadow>
                                                                  </value>
                                                                  <value name="OBJECT">
                                                                    <shadow type="get_object" id="RBy5134AZ8s%X*gAr;oY">
                                                                      <field name="OID">Object ID</field>
                                                                    </shadow>
                                                                    <block type="convert_json2object" id="wY8~t+qQ~SSt/NP+P?2v">
                                                                      <value name="VALUE">
                                                                        <block type="variables_get" id="LbTt(:6:+br;^?Ac98Z-">
                                                                          <field name="VAR" id="B=%HkNFd;Jc-lk:s1;ct">result</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="comment" id="){|e{c5FD%a!Wj:zbQ?`">
                                                                  <field name="COMMENT">Nozzle-Temperatur</field>
                                                                  <next>
                                                                    <block type="update" id="KI|.h+7Bi_(u^I?ED4/*">
                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                      <field name="OID">0_userdata.0.Prusa_Mini_Data.MK4.temp_nozzle</field>
                                                                      <field name="WITH_DELAY">FALSE</field>
                                                                      <value name="VALUE">
                                                                        <block type="get_attr" id="3JtjS~*Azu.Tvy0B5ZdR">
                                                                          <value name="PATH">
                                                                            <shadow type="text" id="@.t;#czSI9/wagM2I$4k">
                                                                              <field name="TEXT">telemetry.temp-nozzle</field>
                                                                            </shadow>
                                                                          </value>
                                                                          <value name="OBJECT">
                                                                            <shadow type="get_object" id="RBy5134AZ8s%X*gAr;oY">
                                                                              <field name="OID">Object ID</field>
                                                                            </shadow>
                                                                            <block type="convert_json2object" id="B!?BT$h.22H?X|dNhtuE">
                                                                              <value name="VALUE">
                                                                                <block type="variables_get" id="UwY@-hJ:*uEOSI3{OP]d">
                                                                                  <field name="VAR" id="B=%HkNFd;Jc-lk:s1;ct">result</field>
                                                                                </block>
                                                                              </value>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </statement>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </statement>
                                            </block>
                                          </xml>
                                          
                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          668

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe