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. JavaScript
  5. [gelöst] Skript auf AXIOS/httpGet umbauen

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[gelöst] Skript auf AXIOS/httpGet umbauen

Geplant Angeheftet Gesperrt Verschoben JavaScript
59 Beiträge 18 Kommentatoren 11.6k Aufrufe 19 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.
  • bahnuhrB bahnuhr

    @haus-automatisierung
    so, habs ausprobiert (bin jetzt auf 8.3.0).

    Wenn ich folgenden kleinen code ausführe:

    httpGet(`http://192.168.243.203/YamahaExtendedControl/v1/main/setPower?power=standby`, { responseType: 'text' }, (err, response) => {
        if (err) { console.error(err); } else { log (""); }
    });
    

    kommt trotzdem im log:

    	script.js.Scripte.test6: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
    

    Warum kommt dies im log ?
    (httpGet ist in JS auch rot unterstrichen)

    Benutze doch httpGet.

    haus-automatisierungH Offline
    haus-automatisierungH Offline
    haus-automatisierung
    Developer Most Active
    schrieb am zuletzt editiert von
    #20

    @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

    Warum kommt dies im log ?
    (httpGet ist in JS auch rot unterstrichen)

    Kann ich nicht reproduzieren, die Meldung kommt auch nur, wenn require aufgerufen wird. Und das passiert bei Dir im Script ja nicht.

    Du hast aber schon über npm installiert (und nicht über GitHub), oder?

    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
    📚 Meine inoffizielle ioBroker Dokumentation

    bahnuhrB 2 Antworten Letzte Antwort
    0
    • haus-automatisierungH haus-automatisierung

      @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

      Warum kommt dies im log ?
      (httpGet ist in JS auch rot unterstrichen)

      Kann ich nicht reproduzieren, die Meldung kommt auch nur, wenn require aufgerufen wird. Und das passiert bei Dir im Script ja nicht.

      Du hast aber schon über npm installiert (und nicht über GitHub), oder?

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #21

      @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

      Und das passiert bei Dir im Script ja nicht.

      korrekt, aber die Meldung kommt trotzdem.

      @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

      Du hast aber schon über npm installiert (und nicht über GitHub), oder?

      ja, über npm


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • haus-automatisierungH haus-automatisierung

        @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

        Warum kommt dies im log ?
        (httpGet ist in JS auch rot unterstrichen)

        Kann ich nicht reproduzieren, die Meldung kommt auch nur, wenn require aufgerufen wird. Und das passiert bei Dir im Script ja nicht.

        Du hast aber schon über npm installiert (und nicht über GitHub), oder?

        bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #22

        @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

        die Meldung kommt auch nur, wenn require aufgerufen wird.

        Das ist bei mir nicht so.
        Habe mal iob komplett neu gestartet.

        Meldung kommt, obwohl im aufgerufenen Script kein request drin steht.
        (wohl aber noch bei anderen).

        Kann es sein, dass die Meldung trotzdem kommt, weil irgendwo noch ein request drin steht (von den gefühlt 500 Scripten).


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        joergeliJ 1 Antwort Letzte Antwort
        0
        • bahnuhrB bahnuhr

          @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

          die Meldung kommt auch nur, wenn require aufgerufen wird.

          Das ist bei mir nicht so.
          Habe mal iob komplett neu gestartet.

          Meldung kommt, obwohl im aufgerufenen Script kein request drin steht.
          (wohl aber noch bei anderen).

          Kann es sein, dass die Meldung trotzdem kommt, weil irgendwo noch ein request drin steht (von den gefühlt 500 Scripten).

          joergeliJ Offline
          joergeliJ Offline
          joergeli
          schrieb am zuletzt editiert von
          #23

          @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

          Kann es sein, dass die Meldung trotzdem kommt, weil irgendwo noch ein request drin steht (von den gefühlt 500 Scripten).

          Meines Erachtens nicht, da ich ebenfalls gerade am Umbauen von request auf httpGet bin.
          Bei bereits auf httpGet umgestellten Scripten kommt keine request-deprecated-Meldung mehr, bei den Scripten die noch request verwenden, kommt sie noch.

          bahnuhrB 1 Antwort Letzte Antwort
          2
          • joergeliJ joergeli

            @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

            Kann es sein, dass die Meldung trotzdem kommt, weil irgendwo noch ein request drin steht (von den gefühlt 500 Scripten).

            Meines Erachtens nicht, da ich ebenfalls gerade am Umbauen von request auf httpGet bin.
            Bei bereits auf httpGet umgestellten Scripten kommt keine request-deprecated-Meldung mehr, bei den Scripten die noch request verwenden, kommt sie noch.

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #24

            @joergeli
            Danke für die Info.
            Bei mir ist das nicht ! so.

            Folgendes Script zum Starten von Licht:

            
            // Bewegung: Bad_EG -> Dimmer einschalten
            
            on('alias.0.HM.Bewegung.Bad_EG.MOTION', function (obj) {  // Bewegung erkannt
                var Status_auto = getState('javascript.0.System.Automatik.Licht.Bad_EG').val;   //  Automatik Licht true
                var Licht_level = getState('alias.0.HM.Dimmer.Bad_EG.LEVEL').val;   //  Licht level aktuell
                var Hell = getState('alias.0.HM.Bewegung.Bad_EG.BRIGHTNESS').val;   //  Helligkeit
                var Modus_Dusche = getState('javascript.0.System.Modus.Modus_Dusche').val;   //  Modus Dusche aktiv?
            
                if(Status_auto === true && Licht_level === 0 && Modus_Dusche == false) {   //  Automatik Licht auf true und Licht ist aus und Modus überprüfen
                    if (Hell < 35) {
                        setState('alias.0.HM.Dimmer.Bad_EG.LEVEL',5);
                        log("Helligkeit = " + Hell + "; Dimmer Bad_EG auf 5% eingeschaltet.");
                        setTimeout(function() {
                            pruef_aus();
                        }, 120000);   // nach 2 min. Prüfung
                    }
                }
            });
            
            function pruef_aus() {
                var level = getState('alias.0.HM.Dimmer.Bad_EG.LEVEL').val;   //  Licht level aktuell
                var Modus_Dusche = getState('javascript.0.System.Modus.Modus_Dusche').val;   //  Modus Dusche aktiv?
                if (level > 0) {
                    if (getState('alias.0.HM.Bewegung.Bad_EG.MOTION').val == false){
                        if (Modus_Dusche == false) {
                            setState('alias.0.HM.Dimmer.Bad_EG.LEVEL', 0);
                            log("Licht Bad EG ausgeschaltet.");
                        }
                    } else {
                        log("Licht Bad EG nicht ausgeschaltet. Erneute Prüfung nach 2 min.");
                        setTimeout(function() {
                            pruef_aus ();
                        }, 120000);   // nach 2 min. erneute Prüfung
                    }
                }
            }
            
            // -----------------------------------------------------------------------------------------------------------
            // Bewegung: Bad_EG -> Spiegelschrank einschalten
            
            on('mqtt.2.Wemos_BadEG.PIR1', function (obj) {  // Bewegung erkannt mit Wemos
                var Status_auto2 = getState('javascript.0.System.Automatik.Licht.Bad_EG').val;   //  Automatik Licht true
                var Licht_state = getState('mqtt.2.Wemos_BadEG.POWER').val;   //  Licht Spiegelschrank aktuell
                var Hell2 = getState('alias.0.HM.Bewegung.Bad_EG.BRIGHTNESS').val;   //  Helligkeit
                var Modus_Dusche2 = getState('javascript.0.System.Modus.Modus_Dusche').val;   //  Modus Dusche aktiv?
                if(obj.state.val == "ON" && Status_auto2 == true && Licht_state == "OFF" && Modus_Dusche2 == false) {   //  Automatik Licht auf true und Licht ist aus und Modus überprüfen
                    if (Hell2 < 100) {
                        httpGet("http://192.168.243.175/cm?cmnd=Power1%20On", { responseType: 'text' }, (err, response) => { if (err) { console.error(err); } else { log (""); } });
                        log("Helligkeit = " + Hell2 + "; Licht Bad EG - Spiegelschrank eingeschaltet.");
                        setTimeout(function() {
                            pruef_aus2();
                        }, 120000);   // nach 2 min. Prüfung
                    }
                }
            });
            
            function pruef_aus2() {
                var state2 = getState('mqtt.2.Wemos_BadEG.POWER').val;   //  Licht Spiegelschrank aktuell
                var Modus_Dusche2 = getState('javascript.0.System.Modus.Modus_Dusche').val;   //  Modus Dusche aktiv?
                if (state2 == "ON") {
                    if (getState('alias.0.HM.Bewegung.Bad_EG.MOTION').val === false){
                        if (Modus_Dusche2 === false) {
                            httpGet("http://192.168.243.175/cm?cmnd=Power1%20Off", { responseType: 'text' }, (err, response) => { if (err) { console.error(err); } else { log (""); } });
                            log("Licht Bad EG - Spiegelschrank ausgeschaltet.");
                        }
                    } else {
                        log("Licht Bad EG - Spiegelschrank nicht ausgeschaltet. Erneute Prüfung nach 2 min.");
                        setTimeout(function() {
                            pruef_aus2();
                        }, 120000);   // nach 2 min. erneute Prüfung
                    }
                }
            }
            
            
            // Bewegung: Bad_EG -> Spiegelschrank - Status ändert sich
                on('mqtt.2.Wemos_BadEG.POWER', function (obj) {  // Status Power ändert sich
                    if (obj.state.val == "ON") { if (getState("javascript.0.Geräte.Bad-EG.Spiegelschrank").val != true) { setState("javascript.0.Geräte.Bad-EG.Spiegelschrank", true); }
                    } else { if (getState("javascript.0.Geräte.Bad-EG.Spiegelschrank").val != false) { setState("javascript.0.Geräte.Bad-EG.Spiegelschrank", false); }}
                });
            
                on('javascript.0.Geräte.Bad-EG.Spiegelschrank', function (obj) {  // Status Variable ändert sich
                    if (obj.state.val == true) { if (getState("mqtt.2.Wemos_BadEG.POWER").val != "ON") { 
                        httpGet("http://192.168.243.175/cm?cmnd=Power1%20On", { responseType: 'text' }, (err, response) => { if (err) { console.error(err); } else { log (""); } });
                    }
                    } else { if (getState("mqtt.2.Wemos_BadEG.POWER").val != "OFF") { 
                        httpGet("http://192.168.243.175/cm?cmnd=Power1%20Off", { responseType: 'text' }, (err, response) => { if (err) { console.error(err); } else { log (""); } });
                    }}
                });
            

            Wenn ich dieses Script neu starte mit:
            dfc6a9bd-519c-4e78-b839-52dad719b8aa-image.png

            dann kommt sofort im log:

            javascript.0	08:31:27.975	info	Start JavaScript script.js.Scripte.Licht.Bad_EG (JavaScript/js)
            javascript.0	08:31:27.987	warn	script.js.Scripte.Licht.Bad_EG: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
            javascript.0	08:31:27.987	info	script.js.Scripte.Licht.Bad_EG: registered 4 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
            

            und dieses ist umgestellt auf httpGet.

            Äußerst merkwürdig das ganze.


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            1 Antwort Letzte Antwort
            0
            • bahnuhrB bahnuhr

              @haus-automatisierung
              so, habs ausprobiert (bin jetzt auf 8.3.0).

              Wenn ich folgenden kleinen code ausführe:

              httpGet(`http://192.168.243.203/YamahaExtendedControl/v1/main/setPower?power=standby`, { responseType: 'text' }, (err, response) => {
                  if (err) { console.error(err); } else { log (""); }
              });
              

              kommt trotzdem im log:

              	script.js.Scripte.test6: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
              

              Warum kommt dies im log ?
              (httpGet ist in JS auch rot unterstrichen)

              Benutze doch httpGet.

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von liv-in-sky
              #25

              @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

              arum kommt dies im log ?
              (httpGet ist in JS auch rot unterstrichen)
              Benutze doch httpGet.

              hatte das auch - das passierte als ich ein script kopierte und dieses dann auf httpget änderte- obwohl das orginal abgeschalten war, kam diese meldung

              habe dann das alte nochmal gestartet und wieder beendet, dann war die meldung weg

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              bahnuhrB 1 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @bahnuhr sagte in [gelöst] Skript auf AXIOS umbauen:

                arum kommt dies im log ?
                (httpGet ist in JS auch rot unterstrichen)
                Benutze doch httpGet.

                hatte das auch - das passierte als ich ein script kopierte und dieses dann auf httpget änderte- obwohl das orginal abgeschalten war, kam diese meldung

                habe dann das alte nochmal gestartet und wieder beendet, dann war die meldung weg

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #26

                @liv-in-sky sagte in [gelöst] Skript auf AXIOS umbauen:

                habe dann das alte nochmal gestartet und wieder beendet, dann war die meldung weg

                Dieser Versuch hab ich schon hinter mir.
                iob hatte ich gestern komplett neu gestartet.

                Meldung kommt trotzdem !


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                haus-automatisierungH 1 Antwort Letzte Antwort
                0
                • bahnuhrB bahnuhr

                  @liv-in-sky sagte in [gelöst] Skript auf AXIOS umbauen:

                  habe dann das alte nochmal gestartet und wieder beendet, dann war die meldung weg

                  Dieser Versuch hab ich schon hinter mir.
                  iob hatte ich gestern komplett neu gestartet.

                  Meldung kommt trotzdem !

                  haus-automatisierungH Offline
                  haus-automatisierungH Offline
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #27

                  @bahnuhr Hast Du Scripts in global liegen?

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  bahnuhrB 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    @bahnuhr Hast Du Scripts in global liegen?

                    bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von bahnuhr
                    #28

                    @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

                    @bahnuhr Hast Du Scripts in global liegen?

                    ja !
                    Das ist ne Idee, schau ich gleich mal nach.

                    Nachtrag:
                    alle durchgeschaut; da ist nix mit request.
                    Nachtrag2:
                    doch eines gefunden, ändere das gleich mal ab.


                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    haus-automatisierungH joergeliJ 2 Antworten Letzte Antwort
                    0
                    • bahnuhrB bahnuhr

                      @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

                      @bahnuhr Hast Du Scripts in global liegen?

                      ja !
                      Das ist ne Idee, schau ich gleich mal nach.

                      Nachtrag:
                      alle durchgeschaut; da ist nix mit request.
                      Nachtrag2:
                      doch eines gefunden, ändere das gleich mal ab.

                      haus-automatisierungH Offline
                      haus-automatisierungH Offline
                      haus-automatisierung
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #29

                      @bahnuhr sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                      @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:
                      Nachtrag2:
                      doch eines gefunden, ändere das gleich mal ab.

                      Alles andere hätte mich jetzt auch echt gewundert 🙃

                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                      📚 Meine inoffizielle ioBroker Dokumentation

                      bahnuhrB 2 Antworten Letzte Antwort
                      0
                      • haus-automatisierungH haus-automatisierung

                        @bahnuhr sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                        @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:
                        Nachtrag2:
                        doch eines gefunden, ändere das gleich mal ab.

                        Alles andere hätte mich jetzt auch echt gewundert 🙃

                        bahnuhrB Online
                        bahnuhrB Online
                        bahnuhr
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #30

                        @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

                        Alles andere hätte mich jetzt auch echt gewundert 🙃

                        ja, mich ja auch.
                        Deshalb war es ja merkwürdig.

                        ;-) wär ich aber bestimmt noch drauf gekommen. ;-)


                        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                        Danke.
                        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                        ScreenToGif :https://www.screentogif.com/downloads.html

                        1 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

                          @bahnuhr sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                          @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:
                          Nachtrag2:
                          doch eines gefunden, ändere das gleich mal ab.

                          Alles andere hätte mich jetzt auch echt gewundert 🙃

                          bahnuhrB Online
                          bahnuhrB Online
                          bahnuhr
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #31

                          @haus-automatisierung

                          erledigt, warn ist weg.
                          Es lag an dem globalen Script.
                          Danke


                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                          Danke.
                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                          ScreenToGif :https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • bahnuhrB bahnuhr

                            @haus-automatisierung sagte in [gelöst] Skript auf AXIOS umbauen:

                            @bahnuhr Hast Du Scripts in global liegen?

                            ja !
                            Das ist ne Idee, schau ich gleich mal nach.

                            Nachtrag:
                            alle durchgeschaut; da ist nix mit request.
                            Nachtrag2:
                            doch eines gefunden, ändere das gleich mal ab.

                            joergeliJ Offline
                            joergeliJ Offline
                            joergeli
                            schrieb am zuletzt editiert von
                            #32

                            @bahnuhr sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                            Nachtrag:
                            alle durchgeschaut; da ist nix mit request.
                            Nachtrag2:
                            doch eines gefunden, ändere das gleich mal ab.

                            Du weißt, wie man automatisch nach Begriffen in allen Scripten suchen kann?
                            Dazu im Scripte-Tag das Lupensymbol rechts oben anklicken und dann den entspr. Suchbegriff eingeben (hier: request).
                            Dann werden alle Scripte aufgelistet, die diesen Suchbegriff enthalten, s. Screenshot:
                            request.jpg

                            Danach nicht vergessen, die Suche wieder auszuschalten: das "durchgestrichene T" nochmals anklicken.

                            1 Antwort Letzte Antwort
                            0
                            • NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #33

                              Hallo

                              Ich habe auch 8 Scripte und 5 Blocklys, wo noch request läuft.
                              Reicht mWn nicht, einfach request durch httpGet oder axios zu ersetzen.

                              Könnte da wer über meine Scripte drüberschaun?

                              Das ist zB eins von den 8.

                              var url = "http://10.0.1.93/middleware.php/data.json?from=now&uuid[]=bc3edcd0-24c4-11ea-b257-bdbd9553c516&uuid[]=deda8550-24c4-11ea-b402-275ee0956365";
                              var pfad = "Volkszaehler.";
                              var idAKTUELLER_VERBRAUCH = pfad + "AKTUELLER_VERBRAUCH";
                              var idAKTUELLE_ERZEUGUNG = pfad + "AKTUELLE_LIEFERUNG";
                              // var idAKTUELLE_HEIZUNG = pfad + "AKTUELLE_HEIZUNG";
                               
                               
                              // Vorgegebene Funktion, die nur dazu dient, das JSON einzulesen
                              // Angelehnt an: http://www.iobroker.net/docu/?page_id=3691
                              var request = require("request");
                              function readJson(url, callback) {
                                  request(url, function(err, state, body) {
                                      if (body) {
                                          var json = {};
                                          if (body !== "") {
                                              try {
                                                  json = JSON.parse(body);
                                              } catch (ex) {
                                                  json = {};
                                              }
                                              if (!json) {
                                                  json = {};
                                              }
                                          }
                                          callback(null, json);
                                      } else {
                                          var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                                          log(error, "warn");
                                          callback(error, null);
                                      }
                                  });
                              }
                               
                              // Erzeugen der Objekte in ioBroker
                              createState(idAKTUELLER_VERBRAUCH, 0, {
                                  name: 'Aktueller Verbrauch',
                                  desc: 'Aktueller Verbrauch',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'W'
                              });
                              createState(idAKTUELLE_ERZEUGUNG, 0, {
                                  name: 'Aktuelle Erzeugung',
                                  desc: 'Aktuelle Erzeugung',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'W'
                              });
                              // createState(idAKTUELLE_HEIZUNG, 0, {
                              //     name: 'Aktuelle Heizung',
                              //     desc: 'Aktuelle Heizung',
                              //     type: 'number',
                              //     role: 'value',
                              //     unit: 'W'
                              // });
                               
                              // Startet das Skript alle 2 Sekunden neu
                              schedule("*/2 * * * * *", function() {
                                  readJson(url, function(err, json) {
                                      if (!err) {
                                          var wert1 = json.data[0].tuples[0][1];
                                          var wert2 = json.data[1].tuples[0][1];
                                          // var wert3 = json.data[2].tuples[0][1];
                                          // Setzen der Werte in ioBroker
                                          // Man füllt die oben erzeugten Objekte jetzt mit den Werten
                                          setState(idAKTUELLER_VERBRAUCH, wert1);
                                          setState(idAKTUELLE_ERZEUGUNG, wert2);
                                          // setState(idAKTUELLE_HEIZUNG, wert3);
                                      } else {
                                          log("Fehler beim Auslesen des JSON fuer Volkszaehler. Keine Daten erhalten.", "warn");
                                      }
                                  });
                              });
                              
                              

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • NegaleinN Negalein

                                Hallo

                                Ich habe auch 8 Scripte und 5 Blocklys, wo noch request läuft.
                                Reicht mWn nicht, einfach request durch httpGet oder axios zu ersetzen.

                                Könnte da wer über meine Scripte drüberschaun?

                                Das ist zB eins von den 8.

                                var url = "http://10.0.1.93/middleware.php/data.json?from=now&uuid[]=bc3edcd0-24c4-11ea-b257-bdbd9553c516&uuid[]=deda8550-24c4-11ea-b402-275ee0956365";
                                var pfad = "Volkszaehler.";
                                var idAKTUELLER_VERBRAUCH = pfad + "AKTUELLER_VERBRAUCH";
                                var idAKTUELLE_ERZEUGUNG = pfad + "AKTUELLE_LIEFERUNG";
                                // var idAKTUELLE_HEIZUNG = pfad + "AKTUELLE_HEIZUNG";
                                 
                                 
                                // Vorgegebene Funktion, die nur dazu dient, das JSON einzulesen
                                // Angelehnt an: http://www.iobroker.net/docu/?page_id=3691
                                var request = require("request");
                                function readJson(url, callback) {
                                    request(url, function(err, state, body) {
                                        if (body) {
                                            var json = {};
                                            if (body !== "") {
                                                try {
                                                    json = JSON.parse(body);
                                                } catch (ex) {
                                                    json = {};
                                                }
                                                if (!json) {
                                                    json = {};
                                                }
                                            }
                                            callback(null, json);
                                        } else {
                                            var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                                            log(error, "warn");
                                            callback(error, null);
                                        }
                                    });
                                }
                                 
                                // Erzeugen der Objekte in ioBroker
                                createState(idAKTUELLER_VERBRAUCH, 0, {
                                    name: 'Aktueller Verbrauch',
                                    desc: 'Aktueller Verbrauch',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'W'
                                });
                                createState(idAKTUELLE_ERZEUGUNG, 0, {
                                    name: 'Aktuelle Erzeugung',
                                    desc: 'Aktuelle Erzeugung',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'W'
                                });
                                // createState(idAKTUELLE_HEIZUNG, 0, {
                                //     name: 'Aktuelle Heizung',
                                //     desc: 'Aktuelle Heizung',
                                //     type: 'number',
                                //     role: 'value',
                                //     unit: 'W'
                                // });
                                 
                                // Startet das Skript alle 2 Sekunden neu
                                schedule("*/2 * * * * *", function() {
                                    readJson(url, function(err, json) {
                                        if (!err) {
                                            var wert1 = json.data[0].tuples[0][1];
                                            var wert2 = json.data[1].tuples[0][1];
                                            // var wert3 = json.data[2].tuples[0][1];
                                            // Setzen der Werte in ioBroker
                                            // Man füllt die oben erzeugten Objekte jetzt mit den Werten
                                            setState(idAKTUELLER_VERBRAUCH, wert1);
                                            setState(idAKTUELLE_ERZEUGUNG, wert2);
                                            // setState(idAKTUELLE_HEIZUNG, wert3);
                                        } else {
                                            log("Fehler beim Auslesen des JSON fuer Volkszaehler. Keine Daten erhalten.", "warn");
                                        }
                                    });
                                });
                                
                                
                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von paul53
                                #34

                                @negalein sagte: request durch httpGet oder axios zu ersetzen.

                                Lass Zeile 10 weg und ersetze Zeilen 12, 13 durch

                                    httpGet(url, (err, response) => {
                                        if(!err) {
                                            const body = response.data;
                                

                                Die Funktion liest nicht nur das JSON ein, sondern wandelt es auch in ein Objekt.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                NegaleinN 1 Antwort Letzte Antwort
                                3
                                • paul53P paul53

                                  @negalein sagte: request durch httpGet oder axios zu ersetzen.

                                  Lass Zeile 10 weg und ersetze Zeilen 12, 13 durch

                                      httpGet(url, (err, response) => {
                                          if(!err) {
                                              const body = response.data;
                                  

                                  Die Funktion liest nicht nur das JSON ein, sondern wandelt es auch in ein Objekt.

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von Negalein
                                  #35

                                  @paul53 sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                                  request durch httpGet oder axios zu ersetzen.

                                  habs jetzt so geändert.

                                  var url = "http://10.0.1.93/middleware.php/data.json?from=now&uuid[]=bc3edcd0-24c4-11ea-b257-bdbd9553c516&uuid[]=deda8550-24c4-11ea-b402-275ee0956365";
                                  var pfad = "Volkszaehler.";
                                  var idAKTUELLER_VERBRAUCH = pfad + "AKTUELLER_VERBRAUCH";
                                  var idAKTUELLE_ERZEUGUNG = pfad + "AKTUELLE_LIEFERUNG";
                                  // var idAKTUELLE_HEIZUNG = pfad + "AKTUELLE_HEIZUNG";
                                   
                                   
                                  // Vorgegebene Funktion, die nur dazu dient, das JSON einzulesen
                                  // Angelehnt an: http://www.iobroker.net/docu/?page_id=3691
                                  //var request = require("request");
                                  function readJson(url, callback) {
                                      httpGet(url, (err, response) => {
                                          if(!err) {
                                              const body = response.data;
                                              var json = {};
                                              if (body !== "") {
                                                  try {
                                                      json = JSON.parse(body);
                                                  } catch (ex) {
                                                      json = {};
                                                  }
                                                  if (!json) {
                                                      json = {};
                                                  }
                                              }
                                              callback(null, json);
                                          } else {
                                              var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                                              log(error, "warn");
                                              callback(error, null);
                                          }
                                      });
                                  }
                                   
                                  // Erzeugen der Objekte in ioBroker
                                  createState(idAKTUELLER_VERBRAUCH, 0, {
                                      name: 'Aktueller Verbrauch',
                                      desc: 'Aktueller Verbrauch',
                                      type: 'number',
                                      role: 'value',
                                      unit: 'W'
                                  });
                                  createState(idAKTUELLE_ERZEUGUNG, 0, {
                                      name: 'Aktuelle Erzeugung',
                                      desc: 'Aktuelle Erzeugung',
                                      type: 'number',
                                      role: 'value',
                                      unit: 'W'
                                  });
                                  // createState(idAKTUELLE_HEIZUNG, 0, {
                                  //     name: 'Aktuelle Heizung',
                                  //     desc: 'Aktuelle Heizung',
                                  //     type: 'number',
                                  //     role: 'value',
                                  //     unit: 'W'
                                  // });
                                   
                                  // Startet das Skript alle 2 Sekunden neu
                                  schedule("*/2 * * * * *", function() {
                                      readJson(url, function(err, json) {
                                          if (!err) {
                                              var wert1 = json.data[0].tuples[0][1];
                                              var wert2 = json.data[1].tuples[0][1];
                                              // var wert3 = json.data[2].tuples[0][1];
                                              // Setzen der Werte in ioBroker
                                              // Man füllt die oben erzeugten Objekte jetzt mit den Werten
                                              setState(idAKTUELLER_VERBRAUCH, wert1);
                                              setState(idAKTUELLE_ERZEUGUNG, wert2);
                                              // setState(idAKTUELLE_HEIZUNG, wert3);
                                          } else {
                                              log("Fehler beim Auslesen des JSON fuer Volkszaehler. Keine Daten erhalten.", "warn");
                                          }
                                      });
                                  });
                                  
                                  

                                  Seitdem kommt immer

                                  javascript.0 2024-05-21 22:00:04.003	warn	script.js.common.Volkszaehler: Fehler beim Auslesen des JSON fuer Volkszaehler. Keine Daten erhalten.
                                  javascript.0 2024-05-21 22:00:04.003	warn	script.js.common.Volkszaehler: (timeout of 2000ms exceeded) ERROR bei Abfrage von: http://10.0.1.93/middleware.php/data.json?from=now&uuid[]=bc3edcd0-24c4-11ea-b257-bdbd9553c516&uuid[]=deda8550-24c4-11ea-b402-275ee0956365
                                  

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  1 Antwort Letzte Antwort
                                  0
                                  • spicerS Offline
                                    spicerS Offline
                                    spicer
                                    schrieb am zuletzt editiert von spicer
                                    #36

                                    Rein zur Info. Vielleicht bringt das ja jemandem etwas ;)
                                    Hatte eine "request" Statusabfrage für ein 2 Kanal Shelly Relais in Blockly.
                                    Habe die nun auf httpGet umgebaut.

                                    Auswahl_001.png

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                      <variables>
                                        <variable id="E[*Zo^$tgAM,^`rYg^])">kanal0</variable>
                                        <variable id="TQ)gbSh^wT5;8tF}T^nr">kanal1</variable>
                                        <variable id="dS7SBWx%D(:^gT-)AED1">response</variable>
                                      </variables>
                                      <block type="variables_set" id="s?@slMwdnK+,UEa?{1|c" x="138" y="-62">
                                        <field name="VAR" id="E[*Zo^$tgAM,^`rYg^])">kanal0</field>
                                        <value name="VALUE">
                                          <block type="text_join" id=";vat3UEcQWG?a+Bcf%[(">
                                            <mutation items="2"></mutation>
                                            <value name="ADD0">
                                              <block type="get_value" id="_O~dp%pE-r6XZb/n+g,/">
                                                <field name="ATTR">val</field>
                                                <field name="OID">0_userdata.0.Shelly_(Boilersteuerung)_IP_Adresse</field>
                                              </block>
                                            </value>
                                            <value name="ADD1">
                                              <block type="text" id=";9%*x8:DvKn4Zr1[rpX4">
                                                <field name="TEXT">/relay/0</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="variables_set" id="u:=x,qNiiV.kHPx1mQUp">
                                            <field name="VAR" id="TQ)gbSh^wT5;8tF}T^nr">kanal1</field>
                                            <value name="VALUE">
                                              <block type="text_join" id="L`G9_Q4~#Wj)H~?%+j^t">
                                                <mutation items="2"></mutation>
                                                <value name="ADD0">
                                                  <block type="get_value" id="b/ie;GOcmF(3vcM~Imhu">
                                                    <field name="ATTR">val</field>
                                                    <field name="OID">0_userdata.0.Shelly_(Boilersteuerung)_IP_Adresse</field>
                                                  </block>
                                                </value>
                                                <value name="ADD1">
                                                  <block type="text" id="`xl:v4wa7(m~J2oHj^ay">
                                                    <field name="TEXT">/relay/1</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="schedule" id="Os$n~Pf|//l((B`LiMpv">
                                                <field name="SCHEDULE">10 * * * * *</field>
                                                <statement name="STATEMENT">
                                                  <block type="http_get" id="eTyh=%eunC]8ho{Z4vlO">
                                                    <field name="TIMEOUT">2000</field>
                                                    <field name="UNIT">ms</field>
                                                    <field name="TYPE">text</field>
                                                    <value name="URL">
                                                      <shadow type="text" id="[35arL4q*P_qtNi):l5H">
                                                        <field name="TEXT">http://</field>
                                                      </shadow>
                                                      <block type="variables_get" id="*[](iu^7hov;{JkB3L[0">
                                                        <field name="VAR" id="E[*Zo^$tgAM,^`rYg^])">kanal0</field>
                                                      </block>
                                                    </value>
                                                    <statement name="STATEMENT">
                                                      <block type="update" id="zvA`Um(v7L{n71nJf{yM">
                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                        <field name="OID">0_userdata.0.Boiler_OG_(0)_Status</field>
                                                        <field name="WITH_DELAY">FALSE</field>
                                                        <value name="VALUE">
                                                          <block type="get_attr" id="SB#5wbEL^bwf%5h/h+@K">
                                                            <value name="PATH">
                                                              <shadow type="text" id="W4tzCjd7*0c8w2+f|j@S">
                                                                <field name="TEXT">data.ison</field>
                                                              </shadow>
                                                            </value>
                                                            <value name="OBJECT">
                                                              <block type="variables_get" id="Z*xk#JW7EGF)0Wyr5sn4">
                                                                <field name="VAR" id="dS7SBWx%D(:^gT-)AED1">response</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="debug" id="mVL(4bm-Y:}~?D6=?.NL" disabled="true">
                                                            <field name="Severity">warn</field>
                                                            <value name="TEXT">
                                                              <shadow type="text" id="5UdI+a16i%{s:wlq1X]q">
                                                                <field name="TEXT">test</field>
                                                              </shadow>
                                                              <block type="get_attr" id="`x#N1!oziArCcey3/Z(@">
                                                                <value name="PATH">
                                                                  <shadow type="text" id="_jb`1^PkZLv-b:ZQ)qNm">
                                                                    <field name="TEXT">data.ison</field>
                                                                  </shadow>
                                                                </value>
                                                                <value name="OBJECT">
                                                                  <block type="variables_get" id="/F~$0I}thMJ900NaYe-j">
                                                                    <field name="VAR" id="dS7SBWx%D(:^gT-)AED1">response</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </statement>
                                                    <next>
                                                      <block type="http_get" id="Zn}GLtb{e^dt+$NODz=)">
                                                        <field name="TIMEOUT">2000</field>
                                                        <field name="UNIT">ms</field>
                                                        <field name="TYPE">text</field>
                                                        <value name="URL">
                                                          <shadow type="text" id="IqhveZy7llAw)bU5EJ][">
                                                            <field name="TEXT">http://</field>
                                                          </shadow>
                                                          <block type="variables_get" id="c#$N_,}o#kE?^YY1%6|=">
                                                            <field name="VAR" id="TQ)gbSh^wT5;8tF}T^nr">kanal1</field>
                                                          </block>
                                                        </value>
                                                        <statement name="STATEMENT">
                                                          <block type="update" id=":ir}AMj5X`8@yNEA,s$c">
                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                            <field name="OID">0_userdata.0.Boiler_EG_(1)_Status</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE">
                                                              <block type="get_attr" id="?AW79Fmiu,jnO`rx^$t0">
                                                                <value name="PATH">
                                                                  <shadow type="text" id="F%Lf#dE60sB[Coga^6Yz">
                                                                    <field name="TEXT">data.ison</field>
                                                                  </shadow>
                                                                </value>
                                                                <value name="OBJECT">
                                                                  <block type="variables_get" id="-_ii~1doIWAi}55O7]qV">
                                                                    <field name="VAR" id="dS7SBWx%D(:^gT-)AED1">response</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <next>
                                                              <block type="debug" id="F$[alX?Xq;`cQe0s_yKI" disabled="true">
                                                                <field name="Severity">warn</field>
                                                                <value name="TEXT">
                                                                  <shadow type="text" id="5YG7`78f-Zph)R[VX)0M">
                                                                    <field name="TEXT">test</field>
                                                                  </shadow>
                                                                  <block type="get_attr" id="MuksX?ZFb5e-HyJCkaJj">
                                                                    <value name="PATH">
                                                                      <shadow type="text" id="0Q@*AE];_d@%SN]QU)#K">
                                                                        <field name="TEXT">data.ison</field>
                                                                      </shadow>
                                                                    </value>
                                                                    <value name="OBJECT">
                                                                      <block type="variables_get" id="uUx0xQ;$8aeYI6Lk[wV*">
                                                                        <field name="VAR" id="dS7SBWx%D(:^gT-)AED1">response</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </statement>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </statement>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </xml>
                                    

                                    Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                                    (Murphys Gesetz)

                                    1 Antwort Letzte Antwort
                                    0
                                    • C Offline
                                      C Offline
                                      c1olli
                                      schrieb am zuletzt editiert von
                                      #37

                                      @djmarc75
                                      Hallo,
                                      ich nehme mal an es geht um dieses Blockly
                                      https://forum.iobroker.net/topic/57207/adresse-aus-gps-koordinaten-ermitteln/16

                                      Ich hab es versucht umzubauen, aber habe leider funktionierende keine Lösung gefunden.
                                      Kannst Du dein Blockly posten?

                                      Gruß
                                      Olli

                                      DJMarc75D 1 Antwort Letzte Antwort
                                      0
                                      • C c1olli

                                        @djmarc75
                                        Hallo,
                                        ich nehme mal an es geht um dieses Blockly
                                        https://forum.iobroker.net/topic/57207/adresse-aus-gps-koordinaten-ermitteln/16

                                        Ich hab es versucht umzubauen, aber habe leider funktionierende keine Lösung gefunden.
                                        Kannst Du dein Blockly posten?

                                        DJMarc75D Offline
                                        DJMarc75D Offline
                                        DJMarc75
                                        schrieb am zuletzt editiert von DJMarc75
                                        #38

                                        @c1olli sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                                        Kannst Du dein Blockly posten?

                                        Logo:

                                        Screenshot 2024-05-27 194610.png

                                        Lehrling seit 1975 !!!
                                        Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                        https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                        C spicerS 2 Antworten Letzte Antwort
                                        2
                                        • DJMarc75D DJMarc75

                                          @c1olli sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:

                                          Kannst Du dein Blockly posten?

                                          Logo:

                                          Screenshot 2024-05-27 194610.png

                                          C Offline
                                          C Offline
                                          c1olli
                                          schrieb am zuletzt editiert von
                                          #39

                                          @djmarc75
                                          Jetzt wirds klarer - werde ich morgen dann mal nachbauen.
                                          Danke

                                          Gruß
                                          Olli

                                          DJMarc75D 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

                                          588

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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