ioBroker Forum


Nutzungsbedingungen |Datenschutzrichtlinie
Cloud |Dokumentation
Aktuelle Zeit: 20.02.2018, 10:24

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 30 Beiträge ]  Gehe zu Seite Vorherige 1 2
Autor Nachricht
BeitragVerfasst: 09.02.2018, 07:27 
Offline
professional

Registriert: 26.12.2014, 09:40
Beiträge: 252
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
Переведи драйвер sql в debug режим и посмотри какой формируется запрос, возможно где-то ошибку допускаем. Раз отправка работает, значит ошибка именно в запросе.


Nach oben
   
BeitragVerfasst: 12.02.2018, 05:39 
Offline
professional

Registriert: 11.05.2017, 05:15
Beiträge: 122
Wohnort: Самара
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal
длинное не выводится:
Spoiler: Show hidden text
sql.0 2018-02-12 08:36:40.914 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-12 08:36:40.884 debug SELECT max(id) AS id FROM db_gammu.inbox
sql.0 2018-02-12 08:36:39.688 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-12 08:36:39.677 debug SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM inbox WHERE UDH LIKE ? AND UpdatedInDB = ?
sql.0 2018-02-12 08:36:39.662 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-12 08:36:39.652 debug SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE ID = 3 <-третье сообщение (длинное)
javascript.0 2018-02-12 08:36:39.642 info script.js.Test.SMS_SQL: NEW Request START with sql.0 <-начало запроса

короткое выводится:
Spoiler: Show hidden text
sql.0 2018-02-12 08:40:55.516 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-12 08:40:55.504 debug SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM db_gammu.inbox WHERE ID = 2
sql.0 2018-02-12 08:40:55.482 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-12 08:40:55.468 debug SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE ID = 2 <-второе сообщение (короткое)
javascript.0 2018-02-12 08:40:55.458 info script.js.Test.SMS_SQL: NEW Request START with sql.0 <-начало запроса
[/spoiler]

кусок скрипта:
Spoiler: Show hidden text
// () выдаем смс по запросу
on("javascript.0.sms.in.requesIDtest", function (obj) {
console.log("NEW Request START with sql.0");
sendTo('sql.0', 'query','SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE ID = ' + obj.state.val, function(res) {
if (res.error) {
console.error(res.error);
}
if(res.result[0].UDH !== ''){
udh = res.result[0].UDH.substring(0, res.result[0].UDH.length - 1);
date = res.result[0].UpdatedInDB;
sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM inbox WHERE UDH LIKE ? AND UpdatedInDB = ?', ['%'+udh+'%', date], function(res) {
if (res.error) {
console.error(res.error);
}
setState("javascript.0.sms.in.requestPHONEtest", res.result[0].SenderNumber);
setState("javascript.0.sms.in.requestTIMEtest", res.result[0].ReceivingDateTime);
setState("javascript.0.sms.in.requestTEXTtest", res.result[0].TextDecoded);
});
}
if(res.result[0].UDH === ''){
sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM db_gammu.inbox WHERE ID = ' + obj.state.val, function(res) {
if (res.error) {
console.error(res.error);
}
setState("javascript.0.sms.in.requestPHONEtest", res.result[0].SenderNumber);
setState("javascript.0.sms.in.requestTIMEtest", res.result[0].ReceivingDateTime);
setState("javascript.0.sms.in.requestTEXTtest", res.result[0].TextDecoded);
});
}
});
//console.log("NEW Request STOP");
});

_________________
DE: Rabatte auf einkäufe im Internet; RU: Скидки на покупки в интернете; EN: Discounts for purchases on the Internet
Делаем BITCOIN
NODEJS: 6.11.0
IOBROKER: 1.7.6


Nach oben
   
BeitragVerfasst: 12.02.2018, 12:04 
Offline
professional

Registriert: 26.12.2014, 09:40
Beiträge: 252
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
Так ты опять, где получение самого СМС вставил свой кусок кода, я же тебе его переписывал по другому.
Какая система? Если линукс, то открой консоль и выполни команду
Code:
tail -f /opt/iobroker/log/iobroker.log.[сегодняшняя дата]

После этого выполняй код, у тебя в реальном времени будет идти лог.

Ты в телеграмм группе есть?


Nach oben
   
BeitragVerfasst: 13.02.2018, 03:36 
Offline
professional

Registriert: 11.05.2017, 05:15
Beiträge: 122
Wohnort: Самара
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal
если так сделать:
Spoiler: Show hidden text
//sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM db_gammu.inbox WHERE UDH LIKE ? AND UpdatedInDB = ?', '%'+udh+'%', date, function(res) {
sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM db_gammu.inbox WHERE UDH LIKE %'+udh+'% AND UpdatedInDB = ' +date, function(res) {

тогда javascript ругается:
Spoiler: Show hidden text
javascript.0 2018-02-13 06:34:22.629 error at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
javascript.0 2018-02-13 06:34:22.629 error at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
javascript.0 2018-02-13 06:34:22.629 error at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
javascript.0 2018-02-13 06:34:22.629 error at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
javascript.0 2018-02-13 06:34:22.629 error at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:228:12)
javascript.0 2018-02-13 06:34:22.629 error at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:270:10)
javascript.0 2018-02-13 06:34:22.629 error at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
javascript.0 2018-02-13 06:34:22.629 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:48:30)
javascript.0 2018-02-13 06:34:22.629 error at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3151:71)
javascript.0 2018-02-13 06:34:22.629 error at Object.cb (script.js.Test.SMS_SQL:151:84)
javascript.0 2018-02-13 06:34:22.629 error TypeError: Cannot read property '0' of undefined
javascript.0 2018-02-13 06:34:22.624 error message messagebox.system.adapter.javascript.0 [object Object] Cannot read property '0' of undefined
javascript.0 2018-02-13 06:34:22.622 error script.js.Test.SMS_SQL: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%05000341030% A
sql.0 2018-02-13 06:34:22.611 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:22.596 debug SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM db_gammu.inbox WHERE UDH LIKE %05000341030% AND UpdatedInDB = 2018-02-01T02:22:48.000Z
sql.0 2018-02-13 06:34:22.578 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:22.556 debug SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE ID = 3 <-третье сообщение (длинное)
javascript.0 2018-02-13 06:34:22.541 info script.js.Test.SMS_SQL: NEW Request START with sql.0
sql.0 2018-02-13 06:34:20.860 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:20.849 debug SELECT max(id) AS id FROM db_gammu.inbox
sql.0 2018-02-13 06:34:10.951 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:10.939 debug SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM db_gammu.inbox WHERE ID = 2
sql.0 2018-02-13 06:34:10.917 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:10.904 debug SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE ID = 2 <-второе сообщение (короткое)
javascript.0 2018-02-13 06:34:10.895 info script.js.Test.SMS_SQL: NEW Request START with sql.0
sql.0 2018-02-13 06:34:07.633 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:07.621 debug SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM db_gammu.inbox WHERE ID = 1
sql.0 2018-02-13 06:34:07.603 debug sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
sql.0 2018-02-13 06:34:07.586 debug SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE ID = 1 <-первое сообщение (короткое)
javascript.0 2018-02-13 06:34:07.572 info script.js.Test.SMS_SQL: NEW Request START with sql.0

2 коротких вывелись, на запрос третьего сыпятся ошибки...

_________________
DE: Rabatte auf einkäufe im Internet; RU: Скидки на покупки в интернете; EN: Discounts for purchases on the Internet
Делаем BITCOIN
NODEJS: 6.11.0
IOBROKER: 1.7.6


Nach oben
   
BeitragVerfasst: 13.02.2018, 11:01 
Offline
professional

Registriert: 26.12.2014, 09:40
Beiträge: 252
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
А почему у тебя дата не приводится к формату YYYY-MM-DD?
И строчка запроса неправильная, у тебя выборка приходит как непонятный формат, а не как строка. Вот этот должен правильно сработать.

Code:
"SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded ORDER BY UDH SEPARATOR '') as TextDecoded FROM smsd.inbox WHERE  UDH LIKE '"+udh+"%' AND ReceivingDateTime LIKE '" + date + "%'"


Nach oben
   
BeitragVerfasst: 13.02.2018, 11:34 
Offline
professional

Registriert: 11.05.2017, 05:15
Beiträge: 122
Wohnort: Самара
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal
ок, спасибо! Вот так вроде заработало, тестирую...:
Code:
sendTo('sql.0', 'query',"SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded ORDER BY UDH SEPARATOR '') as TextDecoded FROM db_gammu.inbox WHERE  UDH LIKE '"+udh+"%' AND ReceivingDateTime LIKE '" + formatDate(date, 'YYYY-MM-DD') + "%'" , function(res) {

_________________
DE: Rabatte auf einkäufe im Internet; RU: Скидки на покупки в интернете; EN: Discounts for purchases on the Internet
Делаем BITCOIN
NODEJS: 6.11.0
IOBROKER: 1.7.6


Nach oben
   
BeitragVerfasst: 15.02.2018, 17:53 
Offline
professional

Registriert: 11.05.2017, 05:15
Beiträge: 122
Wohnort: Самара
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal
Осталась последняя "хотелка" с данной связкой - оперировать не кусками сообщений, а целыми... с какой стороны подойти не знаю...

_________________
DE: Rabatte auf einkäufe im Internet; RU: Скидки на покупки в интернете; EN: Discounts for purchases on the Internet
Делаем BITCOIN
NODEJS: 6.11.0
IOBROKER: 1.7.6


Nach oben
   
BeitragVerfasst: 16.02.2018, 09:28 
Offline
professional

Registriert: 26.12.2014, 09:40
Beiträge: 252
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
Я же тебе предлагал уже решение. Создаешь дополнительную таблицу в базе с 2 полями, первое - уникальный ID, можно автоматический, второй - ID смс. И при получении СМС в данную таблицу заносишь ID пришедшей смс, если составное, то через туже "," вносишь список. Потом уже, когда тебе надо читать СМС, то выборку делаешь сначала с этой таблицы, а потом по полученному ID выборку из inbox.


Nach oben
   
BeitragVerfasst: 19.02.2018, 04:05 
Offline
professional

Registriert: 11.05.2017, 05:15
Beiträge: 122
Wohnort: Самара
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal
Если бы я знал как с базами работать... кроме сопоставления номеров смс с ID смс нужен еще флаг - прочитана\обработана смс или нет.
Какая будет структура таблицы? в какой базе ее создавать? в иоброкерской или в gammu'вской?

_________________
DE: Rabatte auf einkäufe im Internet; RU: Скидки на покупки в интернете; EN: Discounts for purchases on the Internet
Делаем BITCOIN
NODEJS: 6.11.0
IOBROKER: 1.7.6


Nach oben
   
BeitragVerfasst: 19.02.2018, 15:19 
Offline
professional

Registriert: 26.12.2014, 09:40
Beiträge: 252
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
Можно попробовать создать и в gammu базе, не должна помещать, структура из 2 столбцов, помечать прочитано или нет, я особого смысла не вижу, так как таблица будет вестись не автоматически, а из ващего скрипта, т.е. ее назначение удобная навигация по уже прочитанным СМС.

Примерно так создать таблицу, это 1 раз выполнить.
Code:
sendTo('sql.0', 'query',"CREATE TABLE db_gammu.sms_struckt ( id INT NOT NULL PRIMARY KEY, ids VARCHAR(100)")


Заполнять примерно так,

Code:
sendTo('sql.0', 'query',"SELECT GROUP_CONCAT(id SEPARATOR ",") as ids FROM db_gammu.inbox WHERE  UDH LIKE '"+udh+"%' AND ReceivingDateTime LIKE '" + formatDate(date, 'YYYY-MM-DD') + "%'" , function(res) { 
if (res.error) {
console.error(res.error);
}
sendTo('sql.0', 'query',"INSERT INTO db_gammu.sms_struckt ids VALUE " + res.result[0].ids);


Код надо проверять, писал по памяти.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 30 Beiträge ]  Gehe zu Seite Vorherige 1 2

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu Forum:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de