NEWS
ist Objekid in mysql vorhanden
-
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 dbwo liegt hier das Problem ich komme nicht weiter vielleicht hat ja einer eine idee -
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 dbwo liegt hier das Problem ich komme nicht weiter vielleicht hat ja einer eine ideeWarum 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. -
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.@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. Cbei 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
-
@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. Cbei 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
@mrbelvedere58 hat sich erledigt die Nummer in der db hatten ein Leerzeichen drin
trotzdem vielen dank -
@mrbelvedere58 hat sich erledigt die Nummer in der db hatten ein Leerzeichen drin
trotzdem vielen dank@mrbelvedere58 [Gelöst]
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden