Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Grafana rederer mit Service Account

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    [gelöst] Grafana rederer mit Service Account

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

      Hallo, ich habe gerade den Grafana rederer als docker image endlich mal zum Laufen gebracht.
      Es funktioniert auch soweit alles nun möchte ich gerne Bilder im Javascript erzeugen lassen und per telegram versenden.

      Ich habe auch schon eine Anleitung gesehen, wo dies mittels eines API Keys möglich ist.
      Nun im meinem Image (Grafana 9.5.2) werden diese nicht mehr unterstützt und es gibt so genannte Service accounts.
      Darin wird ein Token erzeugt.

      Die Frage ist nun, wie kann ich auf dem ioBroker JS heraus das Rendern anstoßen und die Bilder versenden

      ? 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @Ben1983 last edited by

        @ben1983

        Moin,

        ich bin ja kein Freund von YT Videos, aber vielleicht hilft dir das ja, um das Prinzip zu verstehen.

        https://www.youtube.com/watch?v=3H6tgjM_PbE

        VG
        Bernd

        Ben1983 1 Reply Last reply Reply Quote 0
        • Ben1983
          Ben1983 @Guest last edited by Ben1983

          @dp20eic Danke hat funktioniert.

          Jetzt stellt sich mir nur noch die Frage, ob ich den Curl befehl brauche, oder ob es auch mit nem http request geht?

          Oder Brauche ich den curl wegen dem beearer autentification?

          Edit: ich brauche den ja zum erezugen des Bildes im Ordner, sonst bekomme ich ja nur die Bilddaten selber zurück.
          Oder?

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @Ben1983 last edited by

            @ben1983 sagte in Grafana rederer mit Service Account:

            Edit: ich brauche den ja zum erezugen des Bildes im Ordner, sonst bekomme ich ja nur die Bilddaten selber zurück.
            Oder?

            Moin,

            kann ich Dir nicht sagen, da ich ja keine YT Videos schaue, schon gar nicht, wenn es sich um IT handelt 🙂

            Soweit ich das aber verstehe, willst Du Dir ja immer das zum Zeitpunkt gültige Bild an Telegramm schicken lassen, daher geht das nur per curl, da Du ja in dem Augenblick die API von Grafana ansprichst und das Panel neu gerendert wird.

            Vielleicht weis hier noch einer mehr darüber, ich nicht.
            Ich nutze kein Telegram usw. und mir etwas ans Telefon schicken tue ich auch nicht, ich schaue dann direkt ins Grafana oder meine Visu.

            Wenn Du http machst, dann ist es ja der normale Link zum Panel oder Dashboard, so wie Du es vielleicht in einer Visu nutzt, mittels iFrame oder so.

            Also, wenn da noch zweifle sind, entweder mal bei Google vorbeischauen oder warten, ob hier noch jemand mehr dazusagen kann.

            VG
            Bernd

            Ben1983 Glasfaser 2 Replies Last reply Reply Quote 2
            • Ben1983
              Ben1983 @Guest last edited by

              @dp20eic ich meinte einfach die render url, aber dann wird ja kein png erzeugt. schon ok.

              ? 1 Reply Last reply Reply Quote 0
              • ?
                A Former User @Ben1983 last edited by

                @ben1983 sagte in Grafana rederer mit Service Account:

                @dp20eic ich meinte einfach die render url, aber dann wird ja kein png erzeugt. schon ok.

                Moin,

                zwing mich nicht YT zu schauen 😉

                Was hast Du denn schon gemacht oder wo hakt es denn noch?
                Zeig doch lieber, was Du machst, gemacht hast.

                VG
                Bernd

                1 Reply Last reply Reply Quote 2
                • Glasfaser
                  Glasfaser @Guest last edited by Glasfaser

                  @Ben1983

                  @dp20eic sagte in Grafana rederer mit Service Account:
                  Vielleicht weis hier noch einer mehr darüber, ich nicht.
                  Ich nutze kein Telegram usw.

                  Kann helfen ...

                  Gugst du :

                  https://forum.iobroker.net/post/962671

                  https://forum.iobroker.net/topic/63833/gelöst-iobroker-telegram-versand-grafana-mittels-renderer

                  Ben1983 1 Reply Last reply Reply Quote 0
                  • Ben1983
                    Ben1983 @Glasfaser last edited by

                    @glasfaser Ich habe es jetzt so gelöst:

                    // Verkleinert die Funktion des Sendens
                    onMessage("RenderImage",(data,callback) =>{
                        // Breite abfragen => Default 1000
                        if(!data.width){
                            data.width = 1000;
                        }
                    
                        // Bildpfad abfrage, sost standard
                        if(!data.imagepath){
                            data.imagepath = '/opt/iobroker/temp/cam/Grafana1.png';
                        }
                    
                        // Id des Panels anhand des Bildes festlegen
                        let panelId = 2;
                        if(data.imagename === "Leistungsverlauf"){
                            panelId = 2;
                        }
                        else if (data.imagename === "Speicherverlauf") {
                            panelId = 28;
                        }
                    
                        // Zuweisen der Endzeit => default now()
                        if(!data.end){
                            data.end = Date.now();
                        }
                    
                        // Startzeit zuweisen, wenn eine differenz angegeben wurde
                        if(data.difference)
                        {
                            data.start = data.end - data.difference;
                        }
                    
                        // Zuweisen der Startzeit => default vor 24 Stunden
                        if(!data.start){
                            data.start = data.end - 24 * 60 * 60 * 1000;
                        }
                    
                        // Image redern lassen
                        const curlbefehl = `curl -H "Authorization Bearer glsa_5SZ6C35KTQaNjV1bsUuOPC1lRhQ2wtoE_31a522d1" "http://192.168.2.80:3010/render/d-solo/3Gu0sEU4k/pv-anlage-and-speicher?orgId=1&refresh=5s&from=${data.start}&to=${data.end}&panelId=${panelId}&width=${data.width}&height=500&tz=Europe%2FBerlin" > ${data.imagepath}`;
                        exec(curlbefehl, function(err, stdout, stderr) {
                        if (err) {
                            callback(false);
                        }
                        else{
                            callback(true);
                        }
                        });
                    });
                    

                    So kann ich mir flexibel ein Bild erzeugen lassen, mit variablen start und endzeiten.

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

                    Support us

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

                    465
                    Online

                    32.0k
                    Users

                    80.5k
                    Topics

                    1.3m
                    Posts

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