Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Google Tabelle in ioBroker-Datenpunkte

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Google Tabelle in ioBroker-Datenpunkte

    This topic has been deleted. Only users with topic management privileges can see it.
    • sigi234
      sigi234 Forum Testing Most Active @Mic last edited by sigi234

      @Mic sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

      Hi,

      Google bietet eine einfache API, um Daten aus Google-Tabellen mittels JavaScript (node.js) auszulesen. Das bietet schöne Einsatzzwecke, da Google-Tabellen von "überall" und durch bis zu 100 User gleichzeitig gepflegt werden können.
      Mein Einsatzzweck war jetzt primär die Darstellung aktueller Aktienkurse bzw. Wertpapierkurse in ioBroker und VIS.
      "Google Tabellen" bietet nämlich mit der Formel =GOOGLEFINANCE schöne Möglichkeiten, Daten zu Wertpapieren abzufragen und in der Google-Tabelle auszugeben (aktueller Kurs, KGV, etc.).

      API-Schlüssel erstellen, dabei unter "API-Einschränkungen" auf "Google Sheets API" limitieren ???

      Mic 1 Reply Last reply Reply Quote 0
      • Mic
        Mic Developer @sigi234 last edited by

        @sigi234 sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

        API-Schlüssel erstellen, dabei unter "API-Einschränkungen" auf "Google Sheets API" limitieren ???

        Korrekt. Vorgehensweise:

        1. Link-Freigabe für Tabelle: TabelleIn Google Tabellen oben auf den grünen "Freigabe"-Button klicken. Da die Linkfreigabe entsprechend aktivieren.
        2. "Google Sheets API" aktivieren
        3. API-Schlüssel erstellen, dabei unter "API-Einschränkungen" auf "Google Sheets API" limitieren (zur Sicherheit)

        Zu Punkt 3:
        apisz.png

        sigi234 1 Reply Last reply Reply Quote 0
        • sigi234
          sigi234 Forum Testing Most Active @Mic last edited by sigi234

          @Mic sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

          @sigi234 sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

          API-Schlüssel erstellen, dabei unter "API-Einschränkungen" auf "Google Sheets API" limitieren ???

          Korrekt. Vorgehensweise:

          1. Link-Freigabe für Tabelle: TabelleIn Google Tabellen oben auf den grünen "Freigabe"-Button klicken. Da die Linkfreigabe entsprechend aktivieren.
          2. "Google Sheets API" aktivieren
          3. API-Schlüssel erstellen, dabei unter "API-Einschränkungen" auf "Google Sheets API" limitieren (zur Sicherheit)

          Zu Punkt 3:
          apisz.png

          Erledigt.

          Welchen Code muss ich wo eingeben in Excel

          01:43:53.768	error	javascript.0 (8624) script.js.Test.Google_Tabellen compile failed: at script.js.Test.Google_Tabellen:223
          
          

          Screenshot (1089)_LI.jpg

          Screenshot (1091).png

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

            1. Du hast im Script unter GOOGLE_SPREADSHEET_ID eine komplette URL eingetragen, aber da darf nur die Google Spreadsheet ID rein. Siehe auch https://developers.google.com/sheets/api/guides/concepts
            2. Zu GOOGLEFINANCE: Siehe hier die Beschreibung der Funktion: https://support.google.com/docs/answer/3093281?hl=de

            Generell kannst du eine x-beliebige Tabelle zum Testen nehmen, leer darf sie halt nicht sein und muss mit den Einstellungen des Scripts übereinstimmen.

            sigi234 1 Reply Last reply Reply Quote 1
            • sigi234
              sigi234 Forum Testing Most Active @Mic last edited by sigi234

              @Mic

              Ok soweit komme ich jetzt:

              Screenshot (1107).png

              Im Skript kommt noch immer:

              15:21:18.755	info	javascript.0 (8624) Stop script script.js.Test.Google_Tabellen
              15:21:18.761	info	javascript.0 (8624) Start javascript script.js.Test.Google_Tabellen
              15:21:18.762	error	javascript.0 (8624) script.js.Test.Google_Tabellen compile failed: at script.js.Test.Google_Tabellen:223
              15:22:01.561	info	javascript.0 (8624) Stop script script.js.Test.Google_Tabellen
              15:22:01.565	info	javascript.0 (8624) Start javascript script.js.Test.Google_Tabellen
              15:22:01.565	error	javascript.0 (8624) script.js.Test.Google_Tabellen compile failed: at script.js.Test.Google_Tabellen:223
              

              LOG:

              javascript.0	2019-12-29 15:22:01.566	error	(8624) at process._tickCallback (internal/process/next_tick.js:68:7)
              javascript.0	2019-12-29 15:22:01.566	error	(8624) at promise.then (C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\index.js:19:49)
              javascript.0	2019-12-29 15:22:01.566	error	(8624) at tryCatcher (C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\utils.js:11:23)
              javascript.0	2019-12-29 15:22:01.566	error	(8624) at client.get (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\states\statesInRedis.js:581:17)
              javascript.0	2019-12-29 15:22:01.566	error	(8624) at adapter.getForeignState (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:855:17)
              javascript.0	2019-12-29 15:22:01.566	error	(8624) at createProblemObject (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1264:17)
              javascript.0	2019-12-29 15:22:01.566	error	(8624) at prepareScript (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1211:37)
              javascript.0	2019-12-29 15:22:01.565	error	(8624) at compile (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:988:28)
              javascript.0	2019-12-29 15:22:01.565	error	(8624) at Object.createScript (vm.js:277:10)
              javascript.0	2019-12-29 15:22:01.565	error	(8624) at new Script (vm.js:83:7)
              javascript.0	2019-12-29 15:22:01.565	error	(8624) SyntaxError: Invalid regular expression: missing /
              javascript.0	2019-12-29 15:22:01.565	error	(8624) ^
              javascript.0	2019-12-29 15:22:01.565	error	(8624) strTemp = strTemp.replace(/[+/g, ""); // remove all >[<
              javascript.0	2019-12-29 15:22:01.565	error	at script.js.Test.Google_Tabellen:223
              javascript.0	2019-12-29 15:22:01.565	error	(8624) script.js.Test.Google_Tabellen compile failed:
              javascript.0	2019-12-29 15:22:01.565	info	(8624) Start javascript script.js.Test.Google_Tabellen
              
              1 Reply Last reply Reply Quote 0
              • Mic
                Mic Developer last edited by Mic

                Deine Google-Tabelle ergibt für das Script keinen Sinn. Du brauchst eine Tabelle wie im Screenshot oben (erster Beitrag).

                sigi234 1 Reply Last reply Reply Quote 0
                • Mic
                  Mic Developer last edited by

                  Habe das Script aktualisiert. Mit Version 0.2. gibt es nun einen Datenpunkt ".jsonTable". Damit kann der Tabelleninhalt mittels Widget "basic - Table" ausgegeben werden.

                  Siehe hierzu auch die neuen Einstellungen:

                  // JSON-Tabelle: Welche Spalten sollen für die JSON-Tabelle verwendet werden? 1. Spalte = 1, 2. Spalte 2, usw.
                  // Hiermit kann ebenso die Spalten-Reihenfolge bestimmt werden.
                  const GOOGLE_JSON_COLUMNS = [1, 6, 4, 5]
                  

                  Hier der Link zum Script:
                  Github: ioBroker-Script "Google Sheets"

                  1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @Mic last edited by

                    @Mic sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                    Deine Google-Tabelle ergibt für das Script keinen Sinn. Du brauchst eine Tabelle wie im Screenshot oben (erster Beitrag).

                    Was mache ich dann falsch?

                    Mic 1 Reply Last reply Reply Quote 0
                    • Mic
                      Mic Developer @sigi234 last edited by

                      @sigi234 sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                      Was mache ich dann falsch?

                      Zum Testen: Einfach diese Tabelle abtippen (müssen nicht alle Spalten sein, und musst auch nicht alles 1:1 übernehmen):
                      Bild Text

                      sigi234 1 Reply Last reply Reply Quote 0
                      • sigi234
                        sigi234 Forum Testing Most Active @Mic last edited by

                        @Mic sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                        @sigi234 sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                        Was mache ich dann falsch?

                        Zum Testen: Einfach diese Tabelle abtippen (müssen nicht alle Spalten sein, und musst auch nicht alles 1:1 übernehmen):
                        Bild Text

                        Ach so, dachte die Zellen werden automatisch ausgefüllt.

                        Mic 1 Reply Last reply Reply Quote 0
                        • Mic
                          Mic Developer @sigi234 last edited by Mic

                          @sigi234 sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                          Ach so, dachte die Zellen werden automatisch ausgefüllt.

                          Nein 🙂
                          Dieses Script holt sich nur alle Daten von Google Tabellen, um diese dann in ioBroker darzustellen.

                          Umgekehrt wäre auch möglich, aber das ist nicht Ziel dieses Scripts.

                          sigi234 1 Reply Last reply Reply Quote 0
                          • sigi234
                            sigi234 Forum Testing Most Active @Mic last edited by sigi234

                            @Mic

                            Jetzt hab ich es gecheckt.😂

                            Screenshot (1112).png

                            Möchte ich jetzt den Eurokurs hinzufügen, gebe ich das einfach in die Tabelle ein, ausschlaggebend ist der ISIN?

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

                              @sigi234
                              Für den aktuellen Kurs eines Wertpapiers in Euro gibst du folgende Formel ein:

                              =googlefinance("FRA:MSF";"price")
                              

                              Dabei entspricht im ersten Teil "FRA:MSF ":

                              1. FRA: die Frankfurter Börse.
                              2. MSF: das ist das Ticker-Symbol, in diesem Beispiel steht MSF für Microsoft.
                                z.B. CIS ist das Ticker-Symbol für die Cisco-Aktie, APC für Apple, usw. Etwa über folgenden Link bekommt man das Tickersymbol (hier als "Kürzel" bezeichnet): https://www.boerse-frankfurt.de/aktie/cisco-systems-inc
                                tickersym.png

                              Die Google Tabellen Formel für Cisco wäre also =googlefinance("FRA:CIS";"price")

                              Neben dem aktuellen Kurs kann man sich z.B. auch das KGV (Kurs-Gewinn-Verhältnis) ausgeben lassen. Von Cisco wäre das: =googlefinance("FRA:CIS";"pe")

                              Details siehe https://support.google.com/docs/answer/3093281?hl=de

                              1 Reply Last reply Reply Quote 1
                              • N
                                Nanouk last edited by Nanouk

                                Servus,

                                ich versuche mit dem Script die Werte meines Pools aus einer Google Tabelle zu bekommen, aber irgendwo hab ich einen Fehler drin.
                                Folgende Fehlermedlung erhalte ich:

                                javascript.0 (6770) script.js.Service.Poolwerte: Antwort von Google: { "error": { "code": 400, "message": "Unable to parse range: Pool!A1:E9999", "status": "INVALID_ARGUMENT" } }

                                API sollte passen, die Tabelle ist auch freigegeben.

                                Wie könnte ich den Fehler finden?

                                Grüße,
                                Oliver

                                Mic 1 Reply Last reply Reply Quote 0
                                • Mic
                                  Mic Developer @Nanouk last edited by

                                  @Nanouk sagte in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                                  Wie könnte ich den Fehler finden?

                                  Hi, hast du schon mal nach dem Fehler im Web/Google gesucht? Also z.B. nach error 400 Unable to parse range

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    Nanouk last edited by

                                    @Mic said in [Vorlage] Google Tabelle in ioBroker-Datenpunkte:

                                    error 400 Unable to parse range

                                    Hi, ja hab ich und ich hab auch schon mit A2:E30 etc. probiert, da ich dachte es liegt vielleicht an den Namen, welche ich in Zeile 1 habe, oder dass es mit E9999 vielleicht einfach zu hoch ist. Es führte aber kein Weg zum Erfolg.

                                    Gruß , Oliver

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      Nanouk last edited by Nanouk

                                      So, wenn ich im Script den Namen leer lasse, dann geht es.

                                      Über IFTTT wird die Google Tabelle immer wieder aktualisiert.
                                      Dabei wird immer eine Reihe hinzugefügt.

                                      Hat jemand eine Idee wie man es lösen kann, dass das Script immer nur nie letzte oder die letzten 4 Zeilen zieht?
                                      Mit Range geht es ja nicht weil immer eine neue Zeile hinzukommt.

                                      Grüße Oliver

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      889
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

                                      javascript
                                      3
                                      18
                                      3514
                                      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