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.
  • Smilie108S Offline
    Smilie108S Offline
    Smilie108
    schrieb am zuletzt editiert von
    #1

    @apollon77 Mal ne frage. Wie schaffe ich es aus der etwas komischen speicherung beim sql adapter mehrer id´s mit einer id as name für einen gewissen zeitraum auszulesen damit man es für eine table oder so verwenden kann zb.
    SELECT ts as time, val as Temperatur Küche FROM iobroker1.ts_number WHERE id = 56 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
    SELECT ts as time, val as Luftfeuchte Küche FROM iobroker1.ts_number WHERE id = 57 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
    das ganze bitte als beispiel funktioniert wenn ich 2 getrennte abfragen mache aber würde das ganze gerne so einlesen bzw ist das ja auch nur ein test es würden ja noch mehr temperaturen usw kommen.

    Danke für eine info

    Mfg smilie108

    CodierknechtC B haus-automatisierungH OliverIOO 4 Antworten Letzte Antwort
    0
    • Smilie108S Smilie108

      @apollon77 Mal ne frage. Wie schaffe ich es aus der etwas komischen speicherung beim sql adapter mehrer id´s mit einer id as name für einen gewissen zeitraum auszulesen damit man es für eine table oder so verwenden kann zb.
      SELECT ts as time, val as Temperatur Küche FROM iobroker1.ts_number WHERE id = 56 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
      SELECT ts as time, val as Luftfeuchte Küche FROM iobroker1.ts_number WHERE id = 57 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
      das ganze bitte als beispiel funktioniert wenn ich 2 getrennte abfragen mache aber würde das ganze gerne so einlesen bzw ist das ja auch nur ein test es würden ja noch mehr temperaturen usw kommen.

      Danke für eine info

      Mfg smilie108

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

      @smilie108 sagte in SQL-Protokollierung abfragen:

      aus der etwas komischen speicherung beim sql adapter

      Was soll daran komisch sein?

      das ganze bitte als beispiel funktioniert wenn ich 2 getrennte abfragen mache aber würde das ganze gerne so einlesen bzw ist das ja auch nur ein test es würden ja noch mehr temperaturen usw kommen.

      Und jetzt bitte nochmal verständlich ;-)

      "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
      • arteckA Offline
        arteckA Offline
        arteck
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        ich versteh nur bahnhof...

        was ist das Ziel ??

        zigbee hab ich, zwave auch, nuc's genauso und HA auch

        ? 1 Antwort Letzte Antwort
        0
        • arteckA arteck

          ich versteh nur bahnhof...

          was ist das Ziel ??

          ? Offline
          ? Offline
          Ein ehemaliger Benutzer
          schrieb am zuletzt editiert von
          #4

          @arteck sagte in SQL-Protokollierung abfragen:

          was ist das Ziel ??

          Moin,

          meine Glaskugel sagt mir, dass das in etwa so aussehen soll, so würde ich das machen.

          time Raum Temperatur Luftfeuchtigkeit
          2023-10-20 10:00.00 Küche 19 °C 54 %

          Ist aber nicht ganz deutlich in meiner Glaskugel, kann also auch ganz anders gemeint sein, denn val einmal als Temperatur Küche dann als Luftfeuchte Küche

          time Temperatur Küche Luftfeuchte Küche
          2023-10-20 10:00.00 19 °C 54 %

          Kommt dann noch ein Zimmer dazu, dann wird die Tabelle breiter.

          time Temperatur Küche Luftfeuchte Küche Temperatur Esszimmer Luftfeuchte Esszimmer
          2023-10-20 10:00.00 19 °C 54 % 20 °C 50 %

          Kenne mich aber auch nicht mit dem SQL-DB-Modell aus, was da wo in welcher Tabelle gespeichert ist.

          VG
          Bernd

          P.S.: Nicht hauen, wenn es dummes Zeug ist, ist scheinbar heute nicht mein Tag :)

          1 Antwort Letzte Antwort
          1
          • Smilie108S Smilie108

            @apollon77 Mal ne frage. Wie schaffe ich es aus der etwas komischen speicherung beim sql adapter mehrer id´s mit einer id as name für einen gewissen zeitraum auszulesen damit man es für eine table oder so verwenden kann zb.
            SELECT ts as time, val as Temperatur Küche FROM iobroker1.ts_number WHERE id = 56 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
            SELECT ts as time, val as Luftfeuchte Küche FROM iobroker1.ts_number WHERE id = 57 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
            das ganze bitte als beispiel funktioniert wenn ich 2 getrennte abfragen mache aber würde das ganze gerne so einlesen bzw ist das ja auch nur ein test es würden ja noch mehr temperaturen usw kommen.

            Danke für eine info

            Mfg smilie108

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

            @smilie108

            Vielleicht hilft dir das weiter:
            Subquery

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

            1 Antwort Letzte Antwort
            0
            • Smilie108S Smilie108

              @apollon77 Mal ne frage. Wie schaffe ich es aus der etwas komischen speicherung beim sql adapter mehrer id´s mit einer id as name für einen gewissen zeitraum auszulesen damit man es für eine table oder so verwenden kann zb.
              SELECT ts as time, val as Temperatur Küche FROM iobroker1.ts_number WHERE id = 56 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
              SELECT ts as time, val as Luftfeuchte Küche FROM iobroker1.ts_number WHERE id = 57 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
              das ganze bitte als beispiel funktioniert wenn ich 2 getrennte abfragen mache aber würde das ganze gerne so einlesen bzw ist das ja auch nur ein test es würden ja noch mehr temperaturen usw kommen.

              Danke für eine info

              Mfg smilie108

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

              @smilie108 Die Frage ist zwar ziemlich verwirrend gestellt, aber eventuell suchst Du

              SELECT id as name, ts as time, val FROM iobroker1.ts_number WHERE id IN (56, 57)
              

              Alternativ ein Inner join auf die andere Tabelle mit den Objekt-IDs.

              Aber irgendwie verstehe ich nicht, warum Du Temperatur und Luftfeuchte im gleichen Ergebnis-Set haben willst.

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

              1 Antwort Letzte Antwort
              1
              • CodierknechtC Offline
                CodierknechtC Offline
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                Vielleicht will er ja sowas erreichen?
                Meine Glaskugel ist leider auch etwas eingetrübt.

                6f26e9dd-39cb-46bc-ae73-96e346834cbe-image.png

                "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
                1
                • Smilie108S Smilie108

                  @apollon77 Mal ne frage. Wie schaffe ich es aus der etwas komischen speicherung beim sql adapter mehrer id´s mit einer id as name für einen gewissen zeitraum auszulesen damit man es für eine table oder so verwenden kann zb.
                  SELECT ts as time, val as Temperatur Küche FROM iobroker1.ts_number WHERE id = 56 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
                  SELECT ts as time, val as Luftfeuchte Küche FROM iobroker1.ts_number WHERE id = 57 and ts between timestamp1 and timestamp2 ORDER BY ts DESC LIMIT 1000
                  das ganze bitte als beispiel funktioniert wenn ich 2 getrennte abfragen mache aber würde das ganze gerne so einlesen bzw ist das ja auch nur ein test es würden ja noch mehr temperaturen usw kommen.

                  Danke für eine info

                  Mfg smilie108

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

                  @smilie108

                  also eigentlich ist es nicht so schwer.
                  hier ein beispiel mit allen wahlmöglichkeiten für numerische datenpunkte

                  SELECT dp.name,data.val, data.ts
                  FROM `datapoints` as dp, ts_number as data 
                  WHERE 
                     dp.id=data.id and 
                     data.ts>=1672527600000 and 
                     data.ts < 1704063540000 and 
                     dp.name in 
                        (
                           "javascript.0.test.test1",
                           "javascript.0.test.test2"
                        )
                  

                  Zeile 2 werden alle Tabellen ausgewählt, aus denen du daten einsammeln willst. hier ist jede tabelle noch mit einem alias versehen, das man nicht den kompletten namen mit angeben muss
                  Zeile 1: hier werden alle Felder aufgezählt, die nachher als Daten zurückgegeben werden sollen
                  ab Zeile 3 wird, ganz wichtig der constraint, also abhängigkeit zwischen den beiden Tabellen abgebildet. Ansonsten erhälst du ein kartesisches Produkt beider Tabellen. Das heißt jeder Datenasatz aus der einen Tabelle wird mit jedem Datensatz aus der anderen Tabelle kombiniert. bei jeweils 100 Datensätzen in beiden Tabellen kommen dann schon mal 100*100 Ergebniszeilen heraus. Das macht dein Server wahrscheinlich Memory-technisch nicht mit und macht auch kein Sinn.
                  daher dp.id=data.id
                  die bedingung auf den zeitstempel muss ich glaube ich nicht erklären
                  bei der wahl von ein oder mehreren datenpunkten, kann man den IN operator nehmen. da kann man dann bequem alle aufzählen ohne zuviel zu wiederholen

                  der timestamp kannst du am besten so berechnen

                  new Date("2023-12-31#23:59:00").getTime()
                  

                  theoretisch geht es auch mehrere sql-statements in einem ergebnis zurückzugeben. bspw wenn du von ts_number und von ts_bool zurückgeben willst, das würde dann über ein UNION operator gehen, dann muss man sich aber auch um die konvertierung von val kümmern.
                  daher ist das eigentlich nicht notwendig
                  https://www.w3schools.com/sql/sql_union.asp

                  das obige sql statement geht auch noch mit einem join, aber dir reicht glaube ich eine notation vollkommen aus.

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

                  Smilie108S CodierknechtC 2 Antworten Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @smilie108

                    also eigentlich ist es nicht so schwer.
                    hier ein beispiel mit allen wahlmöglichkeiten für numerische datenpunkte

                    SELECT dp.name,data.val, data.ts
                    FROM `datapoints` as dp, ts_number as data 
                    WHERE 
                       dp.id=data.id and 
                       data.ts>=1672527600000 and 
                       data.ts < 1704063540000 and 
                       dp.name in 
                          (
                             "javascript.0.test.test1",
                             "javascript.0.test.test2"
                          )
                    

                    Zeile 2 werden alle Tabellen ausgewählt, aus denen du daten einsammeln willst. hier ist jede tabelle noch mit einem alias versehen, das man nicht den kompletten namen mit angeben muss
                    Zeile 1: hier werden alle Felder aufgezählt, die nachher als Daten zurückgegeben werden sollen
                    ab Zeile 3 wird, ganz wichtig der constraint, also abhängigkeit zwischen den beiden Tabellen abgebildet. Ansonsten erhälst du ein kartesisches Produkt beider Tabellen. Das heißt jeder Datenasatz aus der einen Tabelle wird mit jedem Datensatz aus der anderen Tabelle kombiniert. bei jeweils 100 Datensätzen in beiden Tabellen kommen dann schon mal 100*100 Ergebniszeilen heraus. Das macht dein Server wahrscheinlich Memory-technisch nicht mit und macht auch kein Sinn.
                    daher dp.id=data.id
                    die bedingung auf den zeitstempel muss ich glaube ich nicht erklären
                    bei der wahl von ein oder mehreren datenpunkten, kann man den IN operator nehmen. da kann man dann bequem alle aufzählen ohne zuviel zu wiederholen

                    der timestamp kannst du am besten so berechnen

                    new Date("2023-12-31#23:59:00").getTime()
                    

                    theoretisch geht es auch mehrere sql-statements in einem ergebnis zurückzugeben. bspw wenn du von ts_number und von ts_bool zurückgeben willst, das würde dann über ein UNION operator gehen, dann muss man sich aber auch um die konvertierung von val kümmern.
                    daher ist das eigentlich nicht notwendig
                    https://www.w3schools.com/sql/sql_union.asp

                    das obige sql statement geht auch noch mit einem join, aber dir reicht glaube ich eine notation vollkommen aus.

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

                    @oliverio @Codierknecht Codierknecht hatte recht und auch @dp20eic das eine für die graphik in grafana denn wenn man mal 10 sensoren hat kann man 20 bis 30 abfragen nehmen je nach anzahl der werte. was etwas mühselig ist. Das andere ist im vis eine kleine Tabelle die die aktuellen temperaturen anzeigen soll. ;)
                    Und naja arbeite schn sehre lange mit mysql da mache ich tabellen anders als es diese influx geschichte macht das ist zu unübersichtlich für meinen geschmack ;) aber jeder mag es anderes und das ist gut so ;)

                    Danke auf alle fälle an alle ;) DANKE

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • Smilie108S Smilie108

                      @oliverio @Codierknecht Codierknecht hatte recht und auch @dp20eic das eine für die graphik in grafana denn wenn man mal 10 sensoren hat kann man 20 bis 30 abfragen nehmen je nach anzahl der werte. was etwas mühselig ist. Das andere ist im vis eine kleine Tabelle die die aktuellen temperaturen anzeigen soll. ;)
                      Und naja arbeite schn sehre lange mit mysql da mache ich tabellen anders als es diese influx geschichte macht das ist zu unübersichtlich für meinen geschmack ;) aber jeder mag es anderes und das ist gut so ;)

                      Danke auf alle fälle an alle ;) DANKE

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

                      @smilie108 sagte in SQL-Protokollierung abfragen:

                      als es diese influx geschichte macht

                      Was denn jetzt? SQL oder Influx?

                      "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
                      • OliverIOO OliverIO

                        @smilie108

                        also eigentlich ist es nicht so schwer.
                        hier ein beispiel mit allen wahlmöglichkeiten für numerische datenpunkte

                        SELECT dp.name,data.val, data.ts
                        FROM `datapoints` as dp, ts_number as data 
                        WHERE 
                           dp.id=data.id and 
                           data.ts>=1672527600000 and 
                           data.ts < 1704063540000 and 
                           dp.name in 
                              (
                                 "javascript.0.test.test1",
                                 "javascript.0.test.test2"
                              )
                        

                        Zeile 2 werden alle Tabellen ausgewählt, aus denen du daten einsammeln willst. hier ist jede tabelle noch mit einem alias versehen, das man nicht den kompletten namen mit angeben muss
                        Zeile 1: hier werden alle Felder aufgezählt, die nachher als Daten zurückgegeben werden sollen
                        ab Zeile 3 wird, ganz wichtig der constraint, also abhängigkeit zwischen den beiden Tabellen abgebildet. Ansonsten erhälst du ein kartesisches Produkt beider Tabellen. Das heißt jeder Datenasatz aus der einen Tabelle wird mit jedem Datensatz aus der anderen Tabelle kombiniert. bei jeweils 100 Datensätzen in beiden Tabellen kommen dann schon mal 100*100 Ergebniszeilen heraus. Das macht dein Server wahrscheinlich Memory-technisch nicht mit und macht auch kein Sinn.
                        daher dp.id=data.id
                        die bedingung auf den zeitstempel muss ich glaube ich nicht erklären
                        bei der wahl von ein oder mehreren datenpunkten, kann man den IN operator nehmen. da kann man dann bequem alle aufzählen ohne zuviel zu wiederholen

                        der timestamp kannst du am besten so berechnen

                        new Date("2023-12-31#23:59:00").getTime()
                        

                        theoretisch geht es auch mehrere sql-statements in einem ergebnis zurückzugeben. bspw wenn du von ts_number und von ts_bool zurückgeben willst, das würde dann über ein UNION operator gehen, dann muss man sich aber auch um die konvertierung von val kümmern.
                        daher ist das eigentlich nicht notwendig
                        https://www.w3schools.com/sql/sql_union.asp

                        das obige sql statement geht auch noch mit einem join, aber dir reicht glaube ich eine notation vollkommen aus.

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

                        @oliverio

                        das obige sql statement geht auch noch mit einem join, aber dir reicht glaube ich eine notation vollkommen aus.

                        Geschmacksache. Ich persönlich finde Joins deutlich besser lesbar.

                        "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
                        • 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
                                          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

                                          596

                                          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