Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. ist Objekid in mysql vorhanden

NEWS

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

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

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

ist Objekid in mysql vorhanden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 218 Aufrufe 2 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.
  • M Offline
    M Offline
    mrbelvedere58
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    ich habe ein kleines Problem mit der Verbindung von Objektid und SQL.
    ich bin was dieses angeht noch Anfänger und habe das ganze so zusammen gepuzzelt.
    ich schreibe 3 werte als string in die Datenbank diese sind auch vorhanden ts_string
    id=55 ts=1732173193906 val=Name des Anrufers
    id=56 ts=1732173193906 val=Telefonnummer des Anrufers
    id=57 ts=1732173193906 val=Bild Pfad des Anrufers zb. /vis.0/main/img/anrufer/peter.png
    diese kann ich auch abrufen.

    const telefonnummer = '030655555'; // diese nummer soll von einer Objektid kommen
    
    sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE val LIKE '%${telefonnummer}%'`, (result) => {
        const uniqueTimestamps = new Set(); result.result.forEach(row => { uniqueTimestamps.add(row.ts); });
            uniqueTimestamps.forEach(timestamp => {
                sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE ts = ${timestamp}`, (result) => {
                    result.result.forEach(row => {
                        const { val, id } = row;
                            if (id == "55") {
                                console.log(`${val}`); // hier kommt schreiben rein für Bild
                            }
                            if (id == "56") {
                                console.log(`${val}`); // hier kommt schreiben rein für Name
                            }
                            if (id == "57") {
                                console.log(`${val}`); // hier kommt schreiben rein für tel Nummer
                            }
                    });
                });
            });
    });
    

    soweit geht das
    jetzt habe ich ver sucht das ganze über eine Objektid zu lösen wenn objektid sich aktualisiert wird dann soll die dort eingetragene Telefonnummer in eine variable gesetzt werden. das geht
    es soll nun geprüft werden ob es diese Nummer in der Datenbank gibt wenn ja dann aktualisire Objektid mit den in der DB vorhandenen Daten.

    on({ id: [].concat(['0_userdata.0.HandyZustand.Anrufer-Nummer']), change: 'any' }, async (obj) => {
      const telefonnummer = obj.state ? obj.state.val.trim().toLowerCase() : '';
        console.log(`${telefonnummer}`); // die nummer wird ausgegeben
          const  result = await sendToAsync('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE val LIKE '%${telefonnummer}%'`, (result) => {
          if (result.length >= 0) {
        const uniqueTimestamps = new Set(); result.result.forEach(row => { uniqueTimestamps.add(row.ts); });
            uniqueTimestamps.forEach(timestamp => {
                sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE ts = ${timestamp}`, (result) => {
                    result.result.forEach(row => {
                        const { val, id } = row;
                            if (id == "55") {
                                console.log(`${val}`); // hier für Bild
                            }
                            if (id == "56") {
                                console.log(`${val}`); // hier für Name
                            }
                            if (id == "57") {
                                console.log(`${val}`); // hier für Telefonnummer
                            }
                    });
                });
            });
    } else {
              console.log(`kein zugrif auf db`);
           }
    });
    });
    

    als Ausgabe bekomme ich nur kein zugrif auf db wo liegt hier das Problem ich komme nicht weiter vielleicht hat ja einer eine idee

    T 1 Antwort Letzte Antwort
    0
    • M mrbelvedere58

      Hallo zusammen,
      ich habe ein kleines Problem mit der Verbindung von Objektid und SQL.
      ich bin was dieses angeht noch Anfänger und habe das ganze so zusammen gepuzzelt.
      ich schreibe 3 werte als string in die Datenbank diese sind auch vorhanden ts_string
      id=55 ts=1732173193906 val=Name des Anrufers
      id=56 ts=1732173193906 val=Telefonnummer des Anrufers
      id=57 ts=1732173193906 val=Bild Pfad des Anrufers zb. /vis.0/main/img/anrufer/peter.png
      diese kann ich auch abrufen.

      const telefonnummer = '030655555'; // diese nummer soll von einer Objektid kommen
      
      sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE val LIKE '%${telefonnummer}%'`, (result) => {
          const uniqueTimestamps = new Set(); result.result.forEach(row => { uniqueTimestamps.add(row.ts); });
              uniqueTimestamps.forEach(timestamp => {
                  sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE ts = ${timestamp}`, (result) => {
                      result.result.forEach(row => {
                          const { val, id } = row;
                              if (id == "55") {
                                  console.log(`${val}`); // hier kommt schreiben rein für Bild
                              }
                              if (id == "56") {
                                  console.log(`${val}`); // hier kommt schreiben rein für Name
                              }
                              if (id == "57") {
                                  console.log(`${val}`); // hier kommt schreiben rein für tel Nummer
                              }
                      });
                  });
              });
      });
      

      soweit geht das
      jetzt habe ich ver sucht das ganze über eine Objektid zu lösen wenn objektid sich aktualisiert wird dann soll die dort eingetragene Telefonnummer in eine variable gesetzt werden. das geht
      es soll nun geprüft werden ob es diese Nummer in der Datenbank gibt wenn ja dann aktualisire Objektid mit den in der DB vorhandenen Daten.

      on({ id: [].concat(['0_userdata.0.HandyZustand.Anrufer-Nummer']), change: 'any' }, async (obj) => {
        const telefonnummer = obj.state ? obj.state.val.trim().toLowerCase() : '';
          console.log(`${telefonnummer}`); // die nummer wird ausgegeben
            const  result = await sendToAsync('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE val LIKE '%${telefonnummer}%'`, (result) => {
            if (result.length >= 0) {
          const uniqueTimestamps = new Set(); result.result.forEach(row => { uniqueTimestamps.add(row.ts); });
              uniqueTimestamps.forEach(timestamp => {
                  sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE ts = ${timestamp}`, (result) => {
                      result.result.forEach(row => {
                          const { val, id } = row;
                              if (id == "55") {
                                  console.log(`${val}`); // hier für Bild
                              }
                              if (id == "56") {
                                  console.log(`${val}`); // hier für Name
                              }
                              if (id == "57") {
                                  console.log(`${val}`); // hier für Telefonnummer
                              }
                      });
                  });
              });
      } else {
                console.log(`kein zugrif auf db`);
             }
      });
      });
      

      als Ausgabe bekomme ich nur kein zugrif auf db wo liegt hier das Problem ich komme nicht weiter vielleicht hat ja einer eine idee

      T Offline
      T Offline
      TT-Tom
      schrieb am zuletzt editiert von TT-Tom
      #2

      @mrbelvedere58

      Warum baust du die Anfrage der
      Nummer nicht genau so auf wie vom timestamp?
      Ohne const und await.
      Zusätzlich würde ich mir das result von der Nummer im log mal ausgeben um zu wissen was zurück kommt.

      Gruß Tom
      https://github.com/tt-tom17
      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

      NSPanel Script Wiki
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      NSPanel Adapter Wiki
      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

      M 1 Antwort Letzte Antwort
      0
      • T TT-Tom

        @mrbelvedere58

        Warum baust du die Anfrage der
        Nummer nicht genau so auf wie vom timestamp?
        Ohne const und await.
        Zusätzlich würde ich mir das result von der Nummer im log mal ausgeben um zu wissen was zurück kommt.

        M Offline
        M Offline
        mrbelvedere58
        schrieb am zuletzt editiert von
        #3

        @tt-tom das soll ein Telefonbuch werden in Verbindung mi dem tr-064 Adapter und vom Handy über macrodroid was auch alles geht daher brauche ich die Nummer ich habe ja mehrere Einträge in der db.
        der timestamp ist immer 3x gleich für die einträge in der db daher kann ich nur die val mit der Telefonnummer abfragen. C

        bei result kommt nichts zurück er geht gar nicht erst dort hin habe es auch mit diesem Scrip probiert er geht nicht in die db

        on({ id: [].concat(['0_userdata.0.HandyZustand.Anrufer-Nummer']), change: 'any' }, async (obj) => {
          const telefonnummer = obj.state ? obj.state.val.trim().toLowerCase() : '';
            console.log(`${telefonnummer}`); // die nummer wird ausgegeben
        
        
            sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE val LIKE '%${telefonnummer}%'`, (result) => {
                const uniqueTimestamps = new Set(); result.result.forEach(row => { uniqueTimestamps.add(row.ts); });
                    uniqueTimestamps.forEach(timestamp => {
                        sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE ts = ${timestamp}`, (result) => {
                            result.result.forEach(row => {
                               const { val, id } = row;
                                    if (id == "55") {
                                    console.log(`${val}`); // hier kommt schreiben rein für Bild
                                    }
                                   if (id == "56") {
                                    console.log(`${val}`); // hier kommt schreiben rein für Name
                                    }
                                    if (id == "57") {
                                    console.log(`${val}`); // hier kommt schreiben rein für tel Nummer
                                    }
                            });
                        });
                    });
            });
        });
        

        es wird nur das obere log ausgegeben aber nichts aus der db

        M 1 Antwort Letzte Antwort
        0
        • M mrbelvedere58

          @tt-tom das soll ein Telefonbuch werden in Verbindung mi dem tr-064 Adapter und vom Handy über macrodroid was auch alles geht daher brauche ich die Nummer ich habe ja mehrere Einträge in der db.
          der timestamp ist immer 3x gleich für die einträge in der db daher kann ich nur die val mit der Telefonnummer abfragen. C

          bei result kommt nichts zurück er geht gar nicht erst dort hin habe es auch mit diesem Scrip probiert er geht nicht in die db

          on({ id: [].concat(['0_userdata.0.HandyZustand.Anrufer-Nummer']), change: 'any' }, async (obj) => {
            const telefonnummer = obj.state ? obj.state.val.trim().toLowerCase() : '';
              console.log(`${telefonnummer}`); // die nummer wird ausgegeben
          
          
              sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE val LIKE '%${telefonnummer}%'`, (result) => {
                  const uniqueTimestamps = new Set(); result.result.forEach(row => { uniqueTimestamps.add(row.ts); });
                      uniqueTimestamps.forEach(timestamp => {
                          sendTo('sql.0', 'query', `SELECT val, ts, id FROM homematic.ts_string WHERE ts = ${timestamp}`, (result) => {
                              result.result.forEach(row => {
                                 const { val, id } = row;
                                      if (id == "55") {
                                      console.log(`${val}`); // hier kommt schreiben rein für Bild
                                      }
                                     if (id == "56") {
                                      console.log(`${val}`); // hier kommt schreiben rein für Name
                                      }
                                      if (id == "57") {
                                      console.log(`${val}`); // hier kommt schreiben rein für tel Nummer
                                      }
                              });
                          });
                      });
              });
          });
          

          es wird nur das obere log ausgegeben aber nichts aus der db

          M Offline
          M Offline
          mrbelvedere58
          schrieb am zuletzt editiert von
          #4

          @mrbelvedere58 hat sich erledigt die Nummer in der db hatten ein Leerzeichen drin
          trotzdem vielen dank

          M 1 Antwort Letzte Antwort
          0
          • M mrbelvedere58

            @mrbelvedere58 hat sich erledigt die Nummer in der db hatten ein Leerzeichen drin
            trotzdem vielen dank

            M Offline
            M Offline
            mrbelvedere58
            schrieb am zuletzt editiert von
            #5

            @mrbelvedere58 [Gelöst]

            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

            749

            Online

            32.4k

            Benutzer

            81.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