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. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. GSM модем + gammu + MYSQL + IOBroker

NEWS

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

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

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

GSM модем + gammu + MYSQL + IOBroker

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
30 Beiträge 2 Kommentatoren 7.7k Aufrufe
  • Ä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.
  • P Offline
    P Offline
    Pooh
    schrieb am zuletzt editiert von
    #9

    а как определить, что пришло длинное?

    https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
    https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
    https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
    https://www.timestope.com/freepooh - witness code: freepooh

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      spectrekr
      schrieb am zuletzt editiert von
      #10

      @Pooh:

      а как определить, что пришло длинное? `

      Самый первый запрос из приведенного кода. Если поле UDH в базе не пустое, то СМС длинное и собирается по этому полю, последняя цифра это номер СМС по порядку, в составном. Но надо учитывать, что поле UDH может быть не уникальным в большом промежутке времени, по-этому я сделал выборку по этому полю и дате получения сообщения.

      connection.query('SELECT UDH, UpdatedInDB FROM inbox WHERE  ID = ?', [id], function(err, res_udh, fields) {
                  if (err) throw err;
                  if(res_udh[0].UDH !== ''){}
      
      
      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        Pooh
        schrieb am zuletzt editiert von
        #11

        как получить конкретное сообщение?

        как получить количество всех целых сообщений (включая собранных из кусков), а не общее количество кусков?

        Помоги, плз,

        Хотелось бы получить:

        'sms.in.id' - номер последней пришедшей собранной СМС (а не номер последнего куска)

        'sms.in.count' - Общее Количество пришедших СМС в базе (целых, а не общее количество кусков)

        'sms.in.text' - Текст последней пришедшей СМС (у меня сейчас предпоследняя, так и не поборол)

        И самое главное:

        'sms.in.requesID' - Если тут ввести номер существующей СМС в базе…

        'sms.in.requestTEXT' - ...то здесь увидим собственно текст запрошенной СМС

        https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
        https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
        https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
        https://www.timestope.com/freepooh - witness code: freepooh

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          Pooh
          schrieb am zuletzt editiert von
          #12

          Большинство вопросов решил

          Хотелось бы иметь возможность выборочно читать конкретное сообщение, сейчас только по ID… помогите, плз

          Пока сделал так:

          createState('sms.in.requesID',0);
          createState('sms.in.requestTEXT',0);
          createState('sms.in.requestPHONE',0);
          createState('sms.in.requestTIME',0);
          
          createState('sms.in.lastID',0);
          createState('sms.in.lastTEXT',0);
          createState('sms.in.lastPHONE',0);
          createState('sms.in.lastTIME',0);
          
          //createState('sms.in.quantity',0);
          
          createState('sms.phone.signal',0);
          createState('sms.phone.imei',0);
          
          var mysql = require('mysql');
          
          var connection = mysql.createConnection ({
              host: 'localhost',
              user: 'gammu_user',
              password: 'ХХХХХХХХХ',
              database: 'db_gammu',
              socketPath: '/var/run/mysqld/mysqld.sock'
          });
          
          var count, udh, ud_c, date;
          
          // создаем подключение к базе
          connection.connect(function(err) {
          if (err) {
              log('error connecting: ' + err.stack);
              return;
              }
              log('connected as id ' + connection.threadId);
          });
          
          // по расписанию проверяем наличие новых смс
          schedule("*/20 * * * * *", function () {
              connection.query('SELECT max(id) AS id FROM inbox', function(err, res_id, fields) {
                  if (err) throw err;
                  setState("javascript.0.sms.in.lastID", res_id[0].id);
              });
          });
          
          // выводим крайнюю смс
          on("javascript.0.sms.in.lastID", function (obj) {
              connection.query('SELECT UDH, UpdatedInDB FROM inbox WHERE  ID = ?', [obj.state.val], function(err, res_udh, fields) {
                      if (err) throw err;
                      if(res_udh[0].UDH !== '') {
                          udh = res_udh[0].UDH.substring(0, res_udh[0].UDH.length - 1);
                          date = res_udh[0].UpdatedInDB;
                          connection.query('SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM inbox WHERE UDH LIKE ? AND UpdatedInDB = ?',  ['%'+udh+'%', date], function(err, res, fields) {
                                  if (err) throw err;
                                  setState("javascript.0.sms.in.lastPHONE", res[0].SenderNumber);
                                  setState("javascript.0.sms.in.lastTIME", res[0].ReceivingDateTime);
                                  setState("javascript.0.sms.in.lastTEXT", res[0].TextDecoded);
                          });
                      }
                      if(res_udh[0].UDH === '') { 
                          connection.query('SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM inbox WHERE  ID = ?', [obj.state.val], function(err, res, fields) {
                              if (err) throw err;
                              setState("javascript.0.sms.in.lastPHONE", res[0].SenderNumber);
                              setState("javascript.0.sms.in.lastTIME", res[0].ReceivingDateTime);
                              setState("javascript.0.sms.in.lastTEXT", res[0].TextDecoded);
                          });
                      }
              });
          });
          
          // выдаем смс по запросу
          on("javascript.0.sms.in.requesID", function (obj) {
              connection.query('SELECT UDH, UpdatedInDB FROM inbox WHERE  ID = ?', [obj.state.val], function(err, res_udh, fields) {
                      if (err) throw err;
                      if(res_udh[0].UDH !== ''){
                          udh = res_udh[0].UDH.substring(0, res_udh[0].UDH.length - 1);
                          date = res_udh[0].UpdatedInDB;
                          connection.query('SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded SEPARATOR "") as TextDecoded FROM inbox WHERE UDH LIKE ? AND UpdatedInDB = ?',  ['%'+udh+'%', date], function(err, res, fields) {
                                  if (err) throw err;
                                  setState("javascript.0.sms.in.requestPHONE", res[0].SenderNumber);
                                  setState("javascript.0.sms.in.requestTIME", res[0].ReceivingDateTime);
                                  setState("javascript.0.sms.in.requestTEXT", res[0].TextDecoded);
                          });
                      }
                      if(res_udh[0].UDH === ''){ 
                          connection.query('SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM inbox WHERE  ID = ?', [obj.state.val], function(err, res, fields) {
                              if (err) throw err;
                              setState("javascript.0.sms.in.requestPHONE", res[0].SenderNumber);
                              setState("javascript.0.sms.in.requestTIME", res[0].ReceivingDateTime);
                              setState("javascript.0.sms.in.requestTEXT", res[0].TextDecoded);
                          });
                      }
            });
          });
          
          // ОТПРАВКА. Отслеживает изменение в переменной и отправляет текст на русском языке, если необходимо использовать латиницу то заменяем Unicode_No_Compression на Default_No_Compression.
          on("javascript.0.sms.out.text", function (obj) {
              connection.query('INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID, Coding) VALUES (' + "'" + getState("javascript.0.sms.out.phone").val + "','" + getState("javascript.0.sms.out.text").val + "','IOBroker'," + "'Unicode_No_Compression');", function(err, res, fields) {
              if (err) throw err;
              });
          });
          
          // получаем сведения о подключенном модеме, IMEI, уровень сигнала (по расписанию)
          schedule("*/20 * * * *", function () {
              connection.query('SELECT * FROM phones', function(err, res, fields) {
                  if (err) throw err;
                  setState("javascript.0.sms.phone.signal", res[0].Signal);
                  setState("javascript.0.sms.phone.imei", res[0].IMEI);
              });
          });
          
          

          https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
          https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
          https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
          https://www.timestope.com/freepooh - witness code: freepooh

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            spectrekr
            schrieb am zuletzt editiert von
            #13

            Так а что ты подразумеваешь под выборочным чтением, у тебя же по ID читает, ты хочешь по другому признаку? Подробней опиши что ты под этим понимаешь.

            Еще бы я сделал по другому, убрал бы mysql пакет из js. Поставил драйвер SQL, настройки сохранил бы в нем, и через него запросы делал. Чуть безопаснее. Да и пакет в актуальном состоянии будет. Имхо.

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              Pooh
              schrieb am zuletzt editiert von
              #14

              да, читает четко по ID, но количество ID - это количество кусков, а не реальных сообщений. т.е. я отправил 3 сообщения, одно короткое, другое длинное (из 3 допустим кусков), третье опять короткое. следовательно количество ID будет 5, а количество сообщений - 3.

              если выбирать по ID то 1 - это первое сообщение, 2, 3 или 4 - это второе, а 5 - это третье

              а хотелось бы выбирать по Номеру сообщений, 1 - первое короткое, 2 - второе длинное из 3 частей, 3 - третье…

              и да, mysql я бы убрал, если бы знал как :-)

              https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
              https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
              https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
              https://www.timestope.com/freepooh - witness code: freepooh

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                spectrekr
                schrieb am zuletzt editiert von
                #15

                Убрать, я описал как.

                Запросы после установки sql драйвера и настройки подключения к БД, будут вида

                //по расписанию проверяем наличие новых смс
                schedule("* * * * *", function () {
                    sendTo('sql.0', 'query','SELECT max(id) AS id FROM smsd.inbox', function(res) {
                        if (res.error) {
                            console.error(res.error);
                        };
                        setState('sms.in.id', res.result[0].id);
                    });
                });
                

                По аналогии думаю разберешься. По поводу того как ты хочешь СМС удобно читать, мне приходит мысль создать дополнительную таблицу с 2 столбцами, ID СМС и IDs из текущей таблицы. Как раз у тебя и получится, что в первом столбце будет нужные тебе номера, а во втором список ID из которых состоит СМС.

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  Pooh
                  schrieb am zuletzt editiert von
                  #16

                  с базой не понял, надо новый инстанцию sql создавать? можно, если не затруднит, расписать чуть подробнее и по шагам?

                  https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                  https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                  https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                  https://www.timestope.com/freepooh - witness code: freepooh

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    spectrekr
                    schrieb am zuletzt editiert von
                    #17

                    База где хранится история объектов и входящие sms на одном сервере? Если да, то просто используете запросы, только в поле где указывали таблицу откуда делать выборку указываете через точку база.таблица. Если пользователи баз разные, то пользователю указанному в настройках драйвера для хранения истории необходимо дать права на чтение с базы SMS.

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      Pooh
                      schrieb am zuletzt editiert von
                      #18

                      Не работает :-(

                      Подскажите, плз, где ошибка?:

                      // () выдаем смс по запросу
                      on("javascript.0.sms.in.requesIDtest", function (obj) {
                          sendTo('sql.0', 'query','SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE  ID = ?', [obj.state.val], function(err, res_udh, fields) {
                                  if (res.error) {
                                  console.error(res.error);
                              }
                                  if(res_udh.result[0].UDH !== ''){
                                      udh = res_udh.result[0].UDH.substring(0, res_udh.result[0].UDH.length - 1);
                                      date = res_udh.result[0].UpdatedInDB;
                                      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(err, res, fields) {
                                              if (err) throw err;
                                              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_udh.result[0].UDH === ''){ 
                                      sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM db_gammu.inbox WHERE  ID = ?', [obj.state.val], function(err, res, fields) {
                                         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);
                                      });
                                  }
                        });
                      });
                      
                      

                      ЗЫ а отправка работает:

                      // () ОТПРАВКА. Отслеживает изменение в переменной и отправляет текст на русском языке, если необходимо использовать латиницу то заменяем Unicode_No_Compression на Default_No_Compression.
                      on("javascript.0.sms.out.text", function (obj) {
                          sendTo('sql.0', 'query', 'INSERT INTO db_gammu.outbox (DestinationNumber, TextDecoded, CreatorID, Coding) VALUES (' + "'" + getState("javascript.0.sms.out.phone").val + "','" + getState("javascript.0.sms.out.text").val + "','IOBroker'," + "'Unicode_No_Compression');", function(res) {
                          if (res.error) {
                                  console.error(res.error);
                              }
                          });
                      });
                      

                      https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                      https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                      https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                      https://www.timestope.com/freepooh - witness code: freepooh

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        spectrekr
                        schrieb am zuletzt editiert von
                        #19

                        Пробуй так.

                        // () выдаем смс по запросу
                        on("javascript.0.sms.in.requesIDtest", function (obj) {
                            sendTo('sql.0', 'query','SELECT UDH, UpdatedInDB FROM db_gammu.inbox WHERE  ID = ' + obj.state.val, function(err, res_udh, fields) {
                                    if (res.error) {
                                    console.error(res.error);
                                }
                                    if(res_udh.result[0].UDH !== ''){
                                        udh = res_udh.result[0].UDH.substring(0, res_udh.result[0].UDH.length - 1);
                                        date = res_udh.result[0].UpdatedInDB;
                                        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(err, res, fields) {
                                                if (err) throw err;
                                                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_udh.result[0].UDH === ''){
                                        sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM db_gammu.inbox WHERE  ID = ' + obj.state.val, function(err, res, fields) {
                                           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);
                                        });
                                    }
                          });
                        });
                        

                        Мне кажется он неправильно формирует запрос с подстановкой данных.

                        1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          Pooh
                          schrieb am zuletzt editiert von
                          #20

                          не работает :-(

                          https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                          https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                          https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                          https://www.timestope.com/freepooh - witness code: freepooh

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            spectrekr
                            schrieb am zuletzt editiert von
                            #21

                            Переведи драйвер sql в debug режим и посмотри какой формируется запрос, возможно где-то ошибку допускаем. Раз отправка работает, значит ошибка именно в запросе.

                            1 Antwort Letzte Antwort
                            0
                            • P Offline
                              P Offline
                              Pooh
                              schrieb am zuletzt editiert von
                              #22

                              длинное не выводится:

                              ! 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 <-начало запроса
                              короткое выводится:

                              ! 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 <-начало запроса

                              кусок скрипта:

                              ! // () выдаем смс по запросу
                              ! 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");
                              ! });

                              https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                              https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                              https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                              https://www.timestope.com/freepooh - witness code: freepooh

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                spectrekr
                                schrieb am zuletzt editiert von
                                #23

                                Так ты опять, где получение самого СМС вставил свой кусок кода, я же тебе его переписывал по другому.

                                Какая система? Если линукс, то открой консоль и выполни команду

                                tail -f /opt/iobroker/log/iobroker.log.[сегодняшняя дата]
                                

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

                                <size size="50">Ты в телеграмм группе есть?</size>

                                1 Antwort Letzte Antwort
                                0
                                • P Offline
                                  P Offline
                                  Pooh
                                  schrieb am zuletzt editiert von
                                  #24

                                  если так сделать:

                                  ! //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 ругается:

                                  ! 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 коротких вывелись, на запрос третьего сыпятся ошибки…

                                  https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                                  https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                                  https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                                  https://www.timestope.com/freepooh - witness code: freepooh

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    spectrekr
                                    schrieb am zuletzt editiert von
                                    #25

                                    А почему у тебя дата не приводится к формату YYYY-MM-DD?

                                    И строчка запроса неправильная, у тебя выборка приходит как непонятный формат, а не как строка. Вот этот должен правильно сработать.

                                    "SELECT SenderNumber, ReceivingDateTime, GROUP_CONCAT(TextDecoded ORDER BY UDH SEPARATOR '') as TextDecoded FROM smsd.inbox WHERE  UDH LIKE '"+udh+"%' AND ReceivingDateTime LIKE '" + date + "%'"
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • P Offline
                                      P Offline
                                      Pooh
                                      schrieb am zuletzt editiert von
                                      #26

                                      ок, спасибо! Вот так вроде заработало, тестирую…:

                                      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) {
                                      

                                      https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                                      https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                                      https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                                      https://www.timestope.com/freepooh - witness code: freepooh

                                      1 Antwort Letzte Antwort
                                      0
                                      • P Offline
                                        P Offline
                                        Pooh
                                        schrieb am zuletzt editiert von
                                        #27

                                        Осталась последняя "хотелка" с данной связкой - оперировать не кусками сообщений, а целыми… с какой стороны подойти не знаю...

                                        https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                                        https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                                        https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                                        https://www.timestope.com/freepooh - witness code: freepooh

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          spectrekr
                                          schrieb am zuletzt editiert von
                                          #28

                                          Я же тебе предлагал уже решение. Создаешь дополнительную таблицу в базе с 2 полями, первое - уникальный ID, можно автоматический, второй - ID смс. И при получении СМС в данную таблицу заносишь ID пришедшей смс, если составное, то через туже "," вносишь список. Потом уже, когда тебе надо читать СМС, то выборку делаешь сначала с этой таблицы, а потом по полученному ID выборку из inbox.

                                          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

                                          834

                                          Online

                                          32.4k

                                          Benutzer

                                          81.6k

                                          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