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. ioBroker Allgemein
  4. SQL-Protokollierung abfragen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

SQL-Protokollierung abfragen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
23 Beiträge 9 Kommentatoren 2.3k Aufrufe 7 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.
  • CodierknechtC Codierknecht

    @smilie108 sagte in SQL-Protokollierung abfragen:

    als es diese influx geschichte macht

    Was denn jetzt? SQL oder Influx?

    Smilie108S Offline
    Smilie108S Offline
    Smilie108
    schrieb am zuletzt editiert von Smilie108
    #12

    @codierknecht naja er schreibt die datenpunkte in sql gleich rein als in influx und mit influx werde ich einfach nicht warm sorry ;) Geschmacksache
    Allerdings ist es recht fein wenn man bei den Objekten die Protokolierung einfach aktivieren kann die meisten werte die ich allerdings habe kommen über nod red da ich das shon hatte bevor ich iobroker kannte.
    Alles neu machen alleine schon von den berechnungen ist mir zu aufwändig außerdem hängt am nod red eine 1500er von Siemens für die ganzen modbus usw geschichten ( Wechselrichter, Wärmepumpe, usw.. )
    Von Nodred in iobroker übertrage ich die Daten die ich brauche für vis2.
    Naja inzwischen komme ich immer mehr in den iobroker rein und es erschließen sich da noch andere möglichkeiten.
    Da aber ein PC nie sicher vor ausfällen lasse ich das meiste in der SPS laufen da ich erstens die sehr gut programieren kann und zweitens dort keine daten verliere.
    Die brauchen normalerweise nie einen neustart ;)
    Im gegensatz zu allen pc sachen die irgendwann wegen irgendwelcher Updates oder sonstigen Sachen einen neustart brauchen und dann hoffentlich wieder starten wenn nicht wieder irgendwas querschießt.
    Bei mysql baue ich halt normalerweise die datenbancken anders auf ;)

    Aber danke muss ich jetzt mal austesten wie das so geht ;)
    Danke an all eure hinweise

    Apropos zur Hardware der sollte das alles schlucken ist ein Lenovo Thinkcenter mit 32gb ram und Intel Gold proz mit nvme und ssd Platte ;)

    Hoffe ich habe die meisten fehler ausgebessert und es ist leichter Lesbar ;)

    CodierknechtC 2 Antworten Letzte Antwort
    0
    • Smilie108S Smilie108

      @codierknecht naja er schreibt die datenpunkte in sql gleich rein als in influx und mit influx werde ich einfach nicht warm sorry ;) Geschmacksache
      Allerdings ist es recht fein wenn man bei den Objekten die Protokolierung einfach aktivieren kann die meisten werte die ich allerdings habe kommen über nod red da ich das shon hatte bevor ich iobroker kannte.
      Alles neu machen alleine schon von den berechnungen ist mir zu aufwändig außerdem hängt am nod red eine 1500er von Siemens für die ganzen modbus usw geschichten ( Wechselrichter, Wärmepumpe, usw.. )
      Von Nodred in iobroker übertrage ich die Daten die ich brauche für vis2.
      Naja inzwischen komme ich immer mehr in den iobroker rein und es erschließen sich da noch andere möglichkeiten.
      Da aber ein PC nie sicher vor ausfällen lasse ich das meiste in der SPS laufen da ich erstens die sehr gut programieren kann und zweitens dort keine daten verliere.
      Die brauchen normalerweise nie einen neustart ;)
      Im gegensatz zu allen pc sachen die irgendwann wegen irgendwelcher Updates oder sonstigen Sachen einen neustart brauchen und dann hoffentlich wieder starten wenn nicht wieder irgendwas querschießt.
      Bei mysql baue ich halt normalerweise die datenbancken anders auf ;)

      Aber danke muss ich jetzt mal austesten wie das so geht ;)
      Danke an all eure hinweise

      Apropos zur Hardware der sollte das alles schlucken ist ein Lenovo Thinkcenter mit 32gb ram und Intel Gold proz mit nvme und ssd Platte ;)

      Hoffe ich habe die meisten fehler ausgebessert und es ist leichter Lesbar ;)

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

      @smilie108
      Mit Interpunktion und Groß-/Kleinschreibung könnte man den Text sogar sinnverstehend lesen :-(

      "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

      1 Antwort Letzte Antwort
      0
      • Smilie108S Smilie108

        @codierknecht naja er schreibt die datenpunkte in sql gleich rein als in influx und mit influx werde ich einfach nicht warm sorry ;) Geschmacksache
        Allerdings ist es recht fein wenn man bei den Objekten die Protokolierung einfach aktivieren kann die meisten werte die ich allerdings habe kommen über nod red da ich das shon hatte bevor ich iobroker kannte.
        Alles neu machen alleine schon von den berechnungen ist mir zu aufwändig außerdem hängt am nod red eine 1500er von Siemens für die ganzen modbus usw geschichten ( Wechselrichter, Wärmepumpe, usw.. )
        Von Nodred in iobroker übertrage ich die Daten die ich brauche für vis2.
        Naja inzwischen komme ich immer mehr in den iobroker rein und es erschließen sich da noch andere möglichkeiten.
        Da aber ein PC nie sicher vor ausfällen lasse ich das meiste in der SPS laufen da ich erstens die sehr gut programieren kann und zweitens dort keine daten verliere.
        Die brauchen normalerweise nie einen neustart ;)
        Im gegensatz zu allen pc sachen die irgendwann wegen irgendwelcher Updates oder sonstigen Sachen einen neustart brauchen und dann hoffentlich wieder starten wenn nicht wieder irgendwas querschießt.
        Bei mysql baue ich halt normalerweise die datenbancken anders auf ;)

        Aber danke muss ich jetzt mal austesten wie das so geht ;)
        Danke an all eure hinweise

        Apropos zur Hardware der sollte das alles schlucken ist ein Lenovo Thinkcenter mit 32gb ram und Intel Gold proz mit nvme und ssd Platte ;)

        Hoffe ich habe die meisten fehler ausgebessert und es ist leichter Lesbar ;)

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

        @smilie108
        Mit Influx werde auch ich nicht warm. SQL ist halt mein täglich Brot.
        Ich war nur verwirrt, weil Du plötzlich Influx ins Soiel gebracht hast.

        Die Tabellen sind schon OK aufgebaut. Die sind halt normalisiert.

        Ich würde das SQL eher mit JOIN aufbauen

        SELECT dp.name, data.val, data.ts
          FROM datapoints AS dp
         INNER JOIN ts_number AS data ON data.id = dp.id 
         WHERE data.ts >= 1672527600000
           AND data.ts < 1704063540000 
           AND dp.name IN ('javascript.0.test.test1', 'javascript.0.test.test2')
        

        Hier mal gleich mit der in meinem Team vorgegebenen Einrückung.

        "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

        Smilie108S 1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @smilie108
          Mit Influx werde auch ich nicht warm. SQL ist halt mein täglich Brot.
          Ich war nur verwirrt, weil Du plötzlich Influx ins Soiel gebracht hast.

          Die Tabellen sind schon OK aufgebaut. Die sind halt normalisiert.

          Ich würde das SQL eher mit JOIN aufbauen

          SELECT dp.name, data.val, data.ts
            FROM datapoints AS dp
           INNER JOIN ts_number AS data ON data.id = dp.id 
           WHERE data.ts >= 1672527600000
             AND data.ts < 1704063540000 
             AND dp.name IN ('javascript.0.test.test1', 'javascript.0.test.test2')
          

          Hier mal gleich mit der in meinem Team vorgegebenen Einrückung.

          Smilie108S Offline
          Smilie108S Offline
          Smilie108
          schrieb am zuletzt editiert von Smilie108
          #15

          @codierknecht Mhm gibt es eigentlich da auch eine möglichkeit den einzelnen id´s andere Namen zuzuweisen.
          In meinem fall ist der Name zb "zigbee.0.00158d0009ef1902.temperature" wäre einfach lesbarer wenn ich da zb Temperatur Wohnzimmer draus machen könnte.
          Beim ts geht das ja noch wenn ich in Zeile 1 bei data.ts ein as time mache aber bei den einzelen id´s steig ich aus. :face_with_rolling_eyes:

          Im moment mache ich das so
          SELECT ts as time, val as Luftdruck Küche FROM iobroker1.ts_number WHERE id = 58 and ts between ${__from} and ${__to} ORDER BY ts DESC LIMIT 10000
          Dann bekomme ich in grafana die richtigen arrays.
          Normalerweise habe ich pro ts die kompletten Werte für diesen Zeitpunkt und lese sie so aus
          SELECT * FROM Azzurro1.Warmepumpe1 where time between $__timeFrom() and $__timeTo() ORDER BY ID DESC LIMIT 10000

          Dann bekomme ich ein array für die Variabeln und ein für jede Variabel ein array mit den Werten.
          Wenn ich die Abfragen verwende die ich von euch bekommen habe bekomme ich 3 arrays mit den bezeichnungen val ts und name.

          Brauche aber für jeden ts die zb 2 werte dazu.

          Hoffe ich habe das jetzt richtig geschrieben oder geht das dann nur über einzelabfragen.

          Danke das ihr euer wissen teilt ;) Stehe da komplett vor einer Wand.

          MFg smilie108

          Danke im voraus

          OliverIOO B CodierknechtC 3 Antworten Letzte Antwort
          0
          • Smilie108S Smilie108

            @codierknecht Mhm gibt es eigentlich da auch eine möglichkeit den einzelnen id´s andere Namen zuzuweisen.
            In meinem fall ist der Name zb "zigbee.0.00158d0009ef1902.temperature" wäre einfach lesbarer wenn ich da zb Temperatur Wohnzimmer draus machen könnte.
            Beim ts geht das ja noch wenn ich in Zeile 1 bei data.ts ein as time mache aber bei den einzelen id´s steig ich aus. :face_with_rolling_eyes:

            Im moment mache ich das so
            SELECT ts as time, val as Luftdruck Küche FROM iobroker1.ts_number WHERE id = 58 and ts between ${__from} and ${__to} ORDER BY ts DESC LIMIT 10000
            Dann bekomme ich in grafana die richtigen arrays.
            Normalerweise habe ich pro ts die kompletten Werte für diesen Zeitpunkt und lese sie so aus
            SELECT * FROM Azzurro1.Warmepumpe1 where time between $__timeFrom() and $__timeTo() ORDER BY ID DESC LIMIT 10000

            Dann bekomme ich ein array für die Variabeln und ein für jede Variabel ein array mit den Werten.
            Wenn ich die Abfragen verwende die ich von euch bekommen habe bekomme ich 3 arrays mit den bezeichnungen val ts und name.

            Brauche aber für jeden ts die zb 2 werte dazu.

            Hoffe ich habe das jetzt richtig geschrieben oder geht das dann nur über einzelabfragen.

            Danke das ihr euer wissen teilt ;) Stehe da komplett vor einer Wand.

            MFg smilie108

            Danke im voraus

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #16

            @smilie108
            Es ist halt eine technische Abfrage
            Wie du es darstellst ist ja wieder was anderes.

            Wenn man will könnte man in der Datenbank noch eine mappingtabelle
            Name zu datenpunkt
            Oder name zu id
            Hinzufügen
            Und das dann in den Ergebnissen ausgeben lassen.

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            0
            • Smilie108S Smilie108

              @codierknecht Mhm gibt es eigentlich da auch eine möglichkeit den einzelnen id´s andere Namen zuzuweisen.
              In meinem fall ist der Name zb "zigbee.0.00158d0009ef1902.temperature" wäre einfach lesbarer wenn ich da zb Temperatur Wohnzimmer draus machen könnte.
              Beim ts geht das ja noch wenn ich in Zeile 1 bei data.ts ein as time mache aber bei den einzelen id´s steig ich aus. :face_with_rolling_eyes:

              Im moment mache ich das so
              SELECT ts as time, val as Luftdruck Küche FROM iobroker1.ts_number WHERE id = 58 and ts between ${__from} and ${__to} ORDER BY ts DESC LIMIT 10000
              Dann bekomme ich in grafana die richtigen arrays.
              Normalerweise habe ich pro ts die kompletten Werte für diesen Zeitpunkt und lese sie so aus
              SELECT * FROM Azzurro1.Warmepumpe1 where time between $__timeFrom() and $__timeTo() ORDER BY ID DESC LIMIT 10000

              Dann bekomme ich ein array für die Variabeln und ein für jede Variabel ein array mit den Werten.
              Wenn ich die Abfragen verwende die ich von euch bekommen habe bekomme ich 3 arrays mit den bezeichnungen val ts und name.

              Brauche aber für jeden ts die zb 2 werte dazu.

              Hoffe ich habe das jetzt richtig geschrieben oder geht das dann nur über einzelabfragen.

              Danke das ihr euer wissen teilt ;) Stehe da komplett vor einer Wand.

              MFg smilie108

              Danke im voraus

              B Offline
              B Offline
              Blockmove
              schrieb am zuletzt editiert von
              #17

              @smilie108 said in SQL-Protokollierung abfragen:

              @codierknecht Mhm gibt es eigentlich da auch eine möglichkeit den einzelnen id´s andere Namen zuzuweisen.
              In meinem fall ist der Name zb "zigbee.0.00158d0009ef1902.temperature" wäre einfach lesbarer wenn ich da zb Temperatur Wohnzimmer draus machen könnte.
              Beim ts geht das ja noch wenn ich in Zeile 1 bei data.ts ein as time mache aber bei den einzelen id´s steig ich aus. :face_with_rolling_eyes:
              Danke im voraus

              Ich nutze da einfach einen Alias. Da kannst du den Datenpunkt frei benennen und bist unabhängig von irgendwelcher Hardware. Du kannst - wenn ich’s recht weiß - im SQL-Adapter einen eigenen Namen vergeben

              The difference beetween Man and Boys:
              The price of their toys 😀

              Smilie108S 1 Antwort Letzte Antwort
              0
              • B Blockmove

                @smilie108 said in SQL-Protokollierung abfragen:

                @codierknecht Mhm gibt es eigentlich da auch eine möglichkeit den einzelnen id´s andere Namen zuzuweisen.
                In meinem fall ist der Name zb "zigbee.0.00158d0009ef1902.temperature" wäre einfach lesbarer wenn ich da zb Temperatur Wohnzimmer draus machen könnte.
                Beim ts geht das ja noch wenn ich in Zeile 1 bei data.ts ein as time mache aber bei den einzelen id´s steig ich aus. :face_with_rolling_eyes:
                Danke im voraus

                Ich nutze da einfach einen Alias. Da kannst du den Datenpunkt frei benennen und bist unabhängig von irgendwelcher Hardware. Du kannst - wenn ich’s recht weiß - im SQL-Adapter einen eigenen Namen vergeben

                Smilie108S Offline
                Smilie108S Offline
                Smilie108
                schrieb am zuletzt editiert von
                #18

                @blockmove Ja das ist schon Richtig. das geht in Grafana.
                Aber wenn ich dann das Ergebniss in einer Tabelle im vis möchte zb die lezten 10 werte oder so für den eine Verlaufs Anzeige dann geht das so wieder nicht.
                Eigentlich müsste das Ergebniss dan ts| Name Var1| wert var 1| Name var 2 | wert var2 usw. aussehen.

                Wenn ich zb.
                SELECT time as time, Aktueller_Energieverbrauch_in_W as Strom, Wärmeleistung as Wärme, ROUND((Wärmeleistung/Aktueller_Energieverbrauch_in_W),2) as Leistungsfaktor FROM Warmepumpe1 where time between $__timeFrom() and $__timeTo() ORDER BY ID DESC LIMIT 1000;
                das verwende kann ich es ganz normal als Tabelle verwenden.
                So geht es allerdings nicht mit den werten aus der Sql Objekt Sicherung.

                ;)

                1 Antwort Letzte Antwort
                0
                • Smilie108S Smilie108

                  @codierknecht Mhm gibt es eigentlich da auch eine möglichkeit den einzelnen id´s andere Namen zuzuweisen.
                  In meinem fall ist der Name zb "zigbee.0.00158d0009ef1902.temperature" wäre einfach lesbarer wenn ich da zb Temperatur Wohnzimmer draus machen könnte.
                  Beim ts geht das ja noch wenn ich in Zeile 1 bei data.ts ein as time mache aber bei den einzelen id´s steig ich aus. :face_with_rolling_eyes:

                  Im moment mache ich das so
                  SELECT ts as time, val as Luftdruck Küche FROM iobroker1.ts_number WHERE id = 58 and ts between ${__from} and ${__to} ORDER BY ts DESC LIMIT 10000
                  Dann bekomme ich in grafana die richtigen arrays.
                  Normalerweise habe ich pro ts die kompletten Werte für diesen Zeitpunkt und lese sie so aus
                  SELECT * FROM Azzurro1.Warmepumpe1 where time between $__timeFrom() and $__timeTo() ORDER BY ID DESC LIMIT 10000

                  Dann bekomme ich ein array für die Variabeln und ein für jede Variabel ein array mit den Werten.
                  Wenn ich die Abfragen verwende die ich von euch bekommen habe bekomme ich 3 arrays mit den bezeichnungen val ts und name.

                  Brauche aber für jeden ts die zb 2 werte dazu.

                  Hoffe ich habe das jetzt richtig geschrieben oder geht das dann nur über einzelabfragen.

                  Danke das ihr euer wissen teilt ;) Stehe da komplett vor einer Wand.

                  MFg smilie108

                  Danke im voraus

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

                  @smilie108
                  Vielleicht in der Art:

                  SELECT * FROM (
                      SELECT ts as time, val as Luftdruck_Kueche 
                        FROM iobroker1.ts_number
                       WHERE id = 58 
                         AND ts BETWEEN ${__from} AND ${__to} 
                    UNION
                      SELECT ts as time, val as Temperatur_Kueche 
                        FROM iobroker1.ts_number
                       WHERE id = 59 
                         AND ts BETWEEN ${__from} AND ${__to} 
                    UNION
                      SELECT ts as time, val as Blubb 
                        FROM iobroker1.ts_number
                       WHERE id = 42 
                         AND ts BETWEEN ${__from} AND ${__to} 
                  )
                  ORDER BY ts DESC LIMIT 10000
                  

                  Keine Leerzeichen und/oder Umlaute in Variablen oder Feldnamen!

                  "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

                  Smilie108S 1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    @smilie108
                    Vielleicht in der Art:

                    SELECT * FROM (
                        SELECT ts as time, val as Luftdruck_Kueche 
                          FROM iobroker1.ts_number
                         WHERE id = 58 
                           AND ts BETWEEN ${__from} AND ${__to} 
                      UNION
                        SELECT ts as time, val as Temperatur_Kueche 
                          FROM iobroker1.ts_number
                         WHERE id = 59 
                           AND ts BETWEEN ${__from} AND ${__to} 
                      UNION
                        SELECT ts as time, val as Blubb 
                          FROM iobroker1.ts_number
                         WHERE id = 42 
                           AND ts BETWEEN ${__from} AND ${__to} 
                    )
                    ORDER BY ts DESC LIMIT 10000
                    

                    Keine Leerzeichen und/oder Umlaute in Variablen oder Feldnamen!

                    Smilie108S Offline
                    Smilie108S Offline
                    Smilie108
                    schrieb am zuletzt editiert von Smilie108
                    #20

                    @codierknecht Mhm da bekomme ich die Meldung

                    MySQL meldet: Dokumentation
                    #1248 - Für jede abgeleitete Tabelle muss ein eigener Alias angegeben werden

                    Das mit UNION hatte ich schon probiert aber egal wie ich das auch aus der Doku übernommen hatte ging es nicht.
                    Deswegen dachte ich ja ich frage hier mal wo ihr an dem Adapter arbeitet und sicher das ein oder andere Problem schon gelöst bekommen habt.

                    wenn ich zb

                    SELECT * FROM PVTageswerte WHERE id=3788;

                    code_text
                    ```ID 	time 	PV Erzeugt Aktueller Tag 	Verbrauch am Ausgang Aktueller Tag 	Gekaufte Energie Aktueller Tag 	Energie Eingespeist Aktueller Tag 	Batterie Laden Aktueller Tag 	Batterie Entladen Aktueller Tag 	Autark 	
                    3788	2023-10-19 23:59:45	16.06	14.18	9.77	10.28	0.04	0	31.29395218002813	12.464	18	
                    

                    mache dann bekomme ich die werte von dem tag als Zeile mit den Überschriften der Spalten .
                    Und ich war eigentlich der Meinung das sowas eigentlich nicht so schwer sein kann.

                    Wenn das nicht geht muss ich halt wieder alle werte per eigenem Skript wieder in eine verarbeitbare form in die Datenbank schreiben und kann nicht einfach den haken setzen. ;)

                    F 1 Antwort Letzte Antwort
                    0
                    • Smilie108S Smilie108

                      @codierknecht Mhm da bekomme ich die Meldung

                      MySQL meldet: Dokumentation
                      #1248 - Für jede abgeleitete Tabelle muss ein eigener Alias angegeben werden

                      Das mit UNION hatte ich schon probiert aber egal wie ich das auch aus der Doku übernommen hatte ging es nicht.
                      Deswegen dachte ich ja ich frage hier mal wo ihr an dem Adapter arbeitet und sicher das ein oder andere Problem schon gelöst bekommen habt.

                      wenn ich zb

                      SELECT * FROM PVTageswerte WHERE id=3788;

                      code_text
                      ```ID 	time 	PV Erzeugt Aktueller Tag 	Verbrauch am Ausgang Aktueller Tag 	Gekaufte Energie Aktueller Tag 	Energie Eingespeist Aktueller Tag 	Batterie Laden Aktueller Tag 	Batterie Entladen Aktueller Tag 	Autark 	
                      3788	2023-10-19 23:59:45	16.06	14.18	9.77	10.28	0.04	0	31.29395218002813	12.464	18	
                      

                      mache dann bekomme ich die werte von dem tag als Zeile mit den Überschriften der Spalten .
                      Und ich war eigentlich der Meinung das sowas eigentlich nicht so schwer sein kann.

                      Wenn das nicht geht muss ich halt wieder alle werte per eigenem Skript wieder in eine verarbeitbare form in die Datenbank schreiben und kann nicht einfach den haken setzen. ;)

                      F Offline
                      F Offline
                      fastfoot
                      schrieb am zuletzt editiert von
                      #21

                      @smilie108 wenn du immer die gleichen Werte(ids) abfrägst dann kannst du das Ergebnis so pivotieren. Die ts und ids und Spaltennamen und die Instanz im sendTo() musst du natürlich anpassen, die sind meinen Testdaten und meiner Faulheit geschuldet. Getestet mit Mariadb sollte aber mit MySQL auch so laufen

                      const query = `
                      SELECT ts,
                       nullif (sum(case when id = 1000 then val ELSE 0 END),0) AS id1,
                       nullif(sum(case when id = 1001 then val ELSE 0 END),0) AS id2,
                       nullif(sum(case when id = 2646 then val ELSE 0 END),0) AS id3
                      FROM iobroker.ts_number
                      WHERE ts BETWEEN 1 AND 30 AND id IN(1000,1001,2646)
                      GROUP BY ts
                      -- ORDER BY ts DESC
                      -- LIMIT 100`
                      
                      sendTo("sql.1", "query", query, res => {
                         log(res.result);
                         setState('0_userdata.0.test', JSON.stringify(res.result));
                      })
                      

                      Pivot.PNG

                      iobroker läuft unter Docker auf QNAP TS-451+
                      SkriptRecovery: https://forum.iobroker.net/post/930558

                      Smilie108S 1 Antwort Letzte Antwort
                      1
                      • F fastfoot

                        @smilie108 wenn du immer die gleichen Werte(ids) abfrägst dann kannst du das Ergebnis so pivotieren. Die ts und ids und Spaltennamen und die Instanz im sendTo() musst du natürlich anpassen, die sind meinen Testdaten und meiner Faulheit geschuldet. Getestet mit Mariadb sollte aber mit MySQL auch so laufen

                        const query = `
                        SELECT ts,
                         nullif (sum(case when id = 1000 then val ELSE 0 END),0) AS id1,
                         nullif(sum(case when id = 1001 then val ELSE 0 END),0) AS id2,
                         nullif(sum(case when id = 2646 then val ELSE 0 END),0) AS id3
                        FROM iobroker.ts_number
                        WHERE ts BETWEEN 1 AND 30 AND id IN(1000,1001,2646)
                        GROUP BY ts
                        -- ORDER BY ts DESC
                        -- LIMIT 100`
                        
                        sendTo("sql.1", "query", query, res => {
                           log(res.result);
                           setState('0_userdata.0.test', JSON.stringify(res.result));
                        })
                        

                        Pivot.PNG

                        Smilie108S Offline
                        Smilie108S Offline
                        Smilie108
                        schrieb am zuletzt editiert von
                        #22

                        @fastfoot Super danke so funkktionieren alle abfragen die ich brauche egal ob für Tabelle ( ja nullwerte muss ich noch filtern ) oder auch in Grafana ;)

                        ;) ;) ;) ;) Vielen Dank

                        JensenJ 1 Antwort Letzte Antwort
                        0
                        • Smilie108S Smilie108

                          @fastfoot Super danke so funkktionieren alle abfragen die ich brauche egal ob für Tabelle ( ja nullwerte muss ich noch filtern ) oder auch in Grafana ;)

                          ;) ;) ;) ;) Vielen Dank

                          JensenJ Offline
                          JensenJ Offline
                          Jensen
                          schrieb am zuletzt editiert von Jensen
                          #23

                          sorry, Fehlbeitrag

                          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
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          541

                          Online

                          32.7k

                          Benutzer

                          82.4k

                          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