NEWS
Arduino+Mqtt FAQ для начинающих.
- 
					
					
					
					
 Когда начинаю выкидывать еще больше ошибок, то одно не находит то другое… Ну да ладно пойду рыть по форуму. Что бы выкидывать что то нужно понять что нужно а что не очень.. Спасиб.. ` 
 Какие там могут быть ошибки? вот код оставил только mqtt! ```` 
 #include <spi.h> // Ethernet shield
 #include <ethernet.h> // Ethernet shield
 #include <pubsubclient.h> // MQTT
 ! byte mac[] = { 0xC1, 0x7C, 0x38, 0x41, 0x89, 0x12 };
 byte server[] = { 192, 168, 1, 190 }; //IP Брокера
 byte ip[] = { 192, 168, 1, 167 }; //IP Клиента (Arduino)
 ! EthernetClient ethClient;
 PubSubClient client(server, 1883, callback, ethClient);
 #define id_connect "myhome-kitchen"
 #define Prefix_subscribe "myhome/Kitchen/"
 ! ///////////////Объявляем порты ввода-вывода
 ! ////////////////////////////////////////////////////////////////////////////
 void callback(char* topic, byte* payload, unsigned int length) {
 payload[length] = '\0';
 // Serial.print(topic);
 // Serial.print("=");
 String strTopic = String(topic);
 String strPayload = String((char*)payload);
 // Serial.println(strPayload);
 callback_iobroker(strTopic, strPayload);
 }
 ////////////////////////////////////////////////////////////////////////////
 void setup() {
 ! Ethernet.begin(mac, ip);
 if (client.connect(id_connect)) {
 client.publish("myhome/Kitchen/Change_Counter", "0");
 client.subscribe("myhome/Kitchen/#");
 }
 }
 /////////////////////////////////////////////////////////////////////////
 void loop() {
 client.loop();
 if (!client.connected()) {
 if (client.connect(id_connect)) {
 client.subscribe("myhome/Kitchen/#");
 }
 }
 }
 ! /////////////////////////////////От Брокера//////////////////////////////////////////////
 void callback_iobroker(String strTopic, String strPayload){
 if (strTopic == "0"){} 
 }</pubsubclient.h></ethernet.h></spi.h>
 ```` `Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT, но в логах инфу видно ! filename="88.JPG" index="1">~~ 
 а вот в MQTT ничего нового! filename="99.JPG" index="0">~~ ` 
 не там смотришь, смотри не в system а просто в mqtt.0
- 
					
					
					
					
 Какие там могут быть ошибки? вот код оставил только mqtt ! ```` 
 #include <spi.h> // Ethernet shield
 #include <ethernet.h> // Ethernet shield
 #include <pubsubclient.h> // MQTT
 ! byte mac[] = { 0xC1, 0x7C, 0x38, 0x41, 0x89, 0x12 };
 byte server[] = { 192, 168, 1, 190 }; //IP Брокера
 byte ip[] = { 192, 168, 1, 167 }; //IP Клиента (Arduino)
 ! EthernetClient ethClient;
 PubSubClient client(server, 1883, callback, ethClient);
 #define id_connect "myhome-kitchen"
 #define Prefix_subscribe "myhome/Kitchen/"
 ! ///////////////Объявляем порты ввода-вывода
 ! ////////////////////////////////////////////////////////////////////////////
 void callback(char* topic, byte* payload, unsigned int length) {
 payload[length] = '\0';
 // Serial.print(topic);
 // Serial.print("=");
 String strTopic = String(topic);
 String strPayload = String((char*)payload);
 // Serial.println(strPayload);
 callback_iobroker(strTopic, strPayload);
 }
 ////////////////////////////////////////////////////////////////////////////
 void setup() {
 ! Ethernet.begin(mac, ip);
 if (client.connect(id_connect)) {
 client.publish("myhome/Kitchen/Change_Counter", "0");
 client.subscribe("myhome/Kitchen/#");
 }
 }
 /////////////////////////////////////////////////////////////////////////
 void loop() {
 client.loop();
 if (!client.connected()) {
 if (client.connect(id_connect)) {
 client.subscribe("myhome/Kitchen/#");
 }
 }
 }
 ! /////////////////////////////////От Брокера//////////////////////////////////////////////
 void callback_iobroker(String strTopic, String strPayload){
 if (strTopic == "0"){} 
 }</pubsubclient.h></ethernet.h></spi.h>
 ```` `Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT, но в логах инфу видно ! filename="88.JPG" index="2">~~ 
 а вот в MQTT ничего нового! filename="99.JPG" index="1">~~ не там смотришь, смотри не в system а просто в mqtt.0а нету у меня просто mqtt.0 !  
- 
					
					
					
					
 Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT, но в логах инфу видно ! filename="88.JPG" index="2">~~ 
 а вот в MQTT ничего нового! filename="99.JPG" index="1">~~ не там смотришь, смотри не в system а просто в mqtt.0а нету у меня просто mqtt.0 ! filename="100.JPG" index="0">~~ ` 
 Надеюсь обновлял? лучше рестартани вообще iobroker
- 
					
					
					
					
 не там смотришь, смотри не в system а просто в mqtt.0 ` а нету у меня просто mqtt.0 ! filename="100.JPG" index="0">~~ Надеюсь обновлял? лучше рестартани вообще iobrokerРестартанул, не появилось, удалил MQQT драйвер, поставил заново все равно только system(( :oops:  
- 
					
					
					
					
 а нету у меня просто mqtt.0 ! filename="100.JPG" index="0">~~ Надеюсь обновлял? лучше рестартани вообще iobrokerРестартанул, не появилось, удалил MQQT драйвер, поставил заново все равно только system(( :oops:  ` `
 По фильтру Detskay тоже ничего? у тебя ардуина публикует данные при старте?client.publish("myhome/Kitchen/Change_Counter", "0"); //публикует на iobroker если его нет создает объект. 
- 
					
					
					
					
 Надеюсь обновлял? лучше рестартани вообще iobroker ` Рестартанул, не появилось, удалил MQQT драйвер, поставил заново все равно только system(( :oops:  ` `
 По фильтру Detskay тоже ничего? у тебя ардуина публикует данные при старте?client.publish("myhome/Kitchen/Change_Counter", "0"); //публикует на iobroker если его нет создает объект. ` Вот где собака порылась…. Выключил, включил ардуину и все появилось. Спасибо за терпение.. 
- 
					
					
					
					
 Теперь осталось разобраться в твоём коде и понять как публикуются данные. 
- 
					
					
					
					
 Похоже проблема в подключении к локалке, пока что не вижу шилда в сети … Спасибо, сейчас попробую голый скетч залить. На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&t=1609](http://forum.iobroker.net/viewtopic.php?f=33&t=1609), мало ли)не посмотришь где я косячу ? ! ```` 
 #include <spi.h> // Ethernet shield
 #include <ethernet.h> // Ethernet shield
 #include <pubsubclient.h> // MQTT
 #include <virtualwire.h>
 #include <easytransfervirtualwire.h>
 #include <wire.h>
 #include <liquidcrystal_i2c.h>
 LiquidCrystal_I2C lcd(0x27,16,2);
 ///
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
 byte server[] = {192, 168, 0, 102}; //IP Брокера
 IPAddress ip(192, 168, 0, 112);
 ! EthernetClient ethClient;
 PubSubClient client(server, 1883, callback, ethClient);
 #define id_connect "UNO_1"
 #define Prefix_subscribe "UNO/Detskaya/"
 ! ////////////////////////////////////////////////////////////////////////////
 void callback(char* topic, byte* payload, unsigned int length) {
 payload[length] = '\0';
 // Serial.print(topic);
 // Serial.print("=");
 String strTopic = String(topic);
 String strPayload = String((char*)payload);
 // Serial.println(strPayload);
 callback_iobroker(strTopic, strPayload);
 }
 ! ////////////////////////////////////////////////////////////////////////////
 //create object
 EasyTransferVirtualWire ET;
 ! struct SEND_DATA_STRUCTURE
 {
 //put your variable definitions here for the data you want to send
 //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
 //Struct can'e be bigger then 26 bytes for VirtualWire version
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! };
 ! //give a name to the group of data
 SEND_DATA_STRUCTURE mydata;
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! void setup(){
 //start the library, pass in the data details
 ET.begin(details(mydata));
 Serial.begin(9600);
 // Initialise the IO and ISR
 vw_set_ptt_inverted(true); // Required for DR3100
 vw_setup(2000); // Bits per sec Скорость порта
 vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
 vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран 
 lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip); 
 if (client.connect(id_connect)) {
 client.publish("UNO/Detskaya/Temp", "0");
 client.publish("UNO/Detskaya/Pressure", "0");
 client.subscribe("UNO/Detskaya/#");
 }} ! void loop(){ //check and see if a data packet has come in. 
 if(ET.receiveData()){
 //this is how you access the variables. [name of the group].[variable name]
 //since we have data, we will blink it out.
 if (mydata.ID == 1)
 {
 int TempBMP= (mydata.TemperatureBMP);
 TempBMP = ((TempBMP)/100);
 float TempDS= (mydata.TemperatureDS);
 TempDS = ((TempDS)/100);
 float Pressure2= (mydata.Pressure);
 Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт 
 // Serial.println(", TempBMP:");
 // Температуру в градусах Цельсия
 Serial.print(TempDS);
 Serial.print(" C°,");
 // Температуру в градусах Цельсия
 Serial.print(Pressure2);
 Serial.print(" mm/");
 //Выводим давление в мм.рт ст
 Serial.println();
 Serial.println();
 delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных 
 lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
 lcd.print("T1:");//Выводим первую температуру
 lcd.print(TempDS);
 lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
 lcd.print(" T2:");//Выводим вторую температуру
 lcd.print(TempBMP);
 //аналогично выводим вторую строку
 lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
 lcd.print("Davlenie:");//Выводим давление
 lcd.print(Pressure2);
 }} ! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h> Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope
- 
					
					
					
					
 Похоже проблема в подключении к локалке, пока что не вижу шилда в сети … Спасибо, сейчас попробую голый скетч залить. На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&t=1609](http://forum.iobroker.net/viewtopic.php?f=33&t=1609), мало ли)не посмотришь где я косячу ? ! ```` 
 #include <spi.h> // Ethernet shield
 #include <ethernet.h> // Ethernet shield
 #include <pubsubclient.h> // MQTT
 #include <virtualwire.h>
 #include <easytransfervirtualwire.h>
 #include <wire.h>
 #include <liquidcrystal_i2c.h>
 LiquidCrystal_I2C lcd(0x27,16,2);
 ///
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
 byte server[] = {192, 168, 0, 102}; //IP Брокера
 IPAddress ip(192, 168, 0, 112);
 ! EthernetClient ethClient;
 PubSubClient client(server, 1883, callback, ethClient);
 #define id_connect "UNO_1"
 #define Prefix_subscribe "UNO/Detskaya/"
 ! ////////////////////////////////////////////////////////////////////////////
 void callback(char* topic, byte* payload, unsigned int length) {
 payload[length] = '\0';
 // Serial.print(topic);
 // Serial.print("=");
 String strTopic = String(topic);
 String strPayload = String((char*)payload);
 // Serial.println(strPayload);
 callback_iobroker(strTopic, strPayload);
 }
 ! ////////////////////////////////////////////////////////////////////////////
 //create object
 EasyTransferVirtualWire ET;
 ! struct SEND_DATA_STRUCTURE
 {
 //put your variable definitions here for the data you want to send
 //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
 //Struct can'e be bigger then 26 bytes for VirtualWire version
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! };
 ! //give a name to the group of data
 SEND_DATA_STRUCTURE mydata;
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! void setup(){
 //start the library, pass in the data details
 ET.begin(details(mydata));
 Serial.begin(9600);
 // Initialise the IO and ISR
 vw_set_ptt_inverted(true); // Required for DR3100
 vw_setup(2000); // Bits per sec Скорость порта
 vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
 vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран 
 lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip); 
 if (client.connect(id_connect)) {
 client.publish("UNO/Detskaya/Temp", "0");
 client.publish("UNO/Detskaya/Pressure", "0");
 client.subscribe("UNO/Detskaya/#");
 }} ! void loop(){ //check and see if a data packet has come in. 
 if(ET.receiveData()){
 //this is how you access the variables. [name of the group].[variable name]
 //since we have data, we will blink it out.
 if (mydata.ID == 1)
 {
 int TempBMP= (mydata.TemperatureBMP);
 TempBMP = ((TempBMP)/100);
 float TempDS= (mydata.TemperatureDS);
 TempDS = ((TempDS)/100);
 float Pressure2= (mydata.Pressure);
 Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт 
 // Serial.println(", TempBMP:");
 // Температуру в градусах Цельсия
 Serial.print(TempDS);
 Serial.print(" C°,");
 // Температуру в градусах Цельсия
 Serial.print(Pressure2);
 Serial.print(" mm/");
 //Выводим давление в мм.рт ст
 Serial.println();
 Serial.println();
 delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных 
 lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
 lcd.print("T1:");//Выводим первую температуру
 lcd.print(TempDS);
 lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
 lcd.print(" T2:");//Выводим вторую температуру
 lcd.print(TempBMP);
 //аналогично выводим вторую строку
 lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
 lcd.print("Davlenie:");//Выводим давление
 lcd.print(Pressure2);
 }} ! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h> Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope `Типы переменных передаваемые в функцию не совпадают. Пробуй так if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } }
- 
					
					
					
					
 На всякий случай http://forum.iobroker.net/viewtopic.php?f=33&t=1609, мало ли) ` не посмотришь где я косячу ? ! ```` 
 #include <spi.h> // Ethernet shield
 #include <ethernet.h> // Ethernet shield
 #include <pubsubclient.h> // MQTT
 #include <virtualwire.h>
 #include <easytransfervirtualwire.h>
 #include <wire.h>
 #include <liquidcrystal_i2c.h>
 LiquidCrystal_I2C lcd(0x27,16,2);
 ///
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
 byte server[] = {192, 168, 0, 102}; //IP Брокера
 IPAddress ip(192, 168, 0, 112);
 ! EthernetClient ethClient;
 PubSubClient client(server, 1883, callback, ethClient);
 #define id_connect "UNO_1"
 #define Prefix_subscribe "UNO/Detskaya/"
 ! ////////////////////////////////////////////////////////////////////////////
 void callback(char* topic, byte* payload, unsigned int length) {
 payload[length] = '\0';
 // Serial.print(topic);
 // Serial.print("=");
 String strTopic = String(topic);
 String strPayload = String((char*)payload);
 // Serial.println(strPayload);
 callback_iobroker(strTopic, strPayload);
 }
 ! ////////////////////////////////////////////////////////////////////////////
 //create object
 EasyTransferVirtualWire ET;
 ! struct SEND_DATA_STRUCTURE
 {
 //put your variable definitions here for the data you want to send
 //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
 //Struct can'e be bigger then 26 bytes for VirtualWire version
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! };
 ! //give a name to the group of data
 SEND_DATA_STRUCTURE mydata;
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! void setup(){
 //start the library, pass in the data details
 ET.begin(details(mydata));
 Serial.begin(9600);
 // Initialise the IO and ISR
 vw_set_ptt_inverted(true); // Required for DR3100
 vw_setup(2000); // Bits per sec Скорость порта
 vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
 vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран 
 lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip); 
 if (client.connect(id_connect)) {
 client.publish("UNO/Detskaya/Temp", "0");
 client.publish("UNO/Detskaya/Pressure", "0");
 client.subscribe("UNO/Detskaya/#");
 }} ! void loop(){ //check and see if a data packet has come in. 
 if(ET.receiveData()){
 //this is how you access the variables. [name of the group].[variable name]
 //since we have data, we will blink it out.
 if (mydata.ID == 1)
 {
 int TempBMP= (mydata.TemperatureBMP);
 TempBMP = ((TempBMP)/100);
 float TempDS= (mydata.TemperatureDS);
 TempDS = ((TempDS)/100);
 float Pressure2= (mydata.Pressure);
 Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт 
 // Serial.println(", TempBMP:");
 // Температуру в градусах Цельсия
 Serial.print(TempDS);
 Serial.print(" C°,");
 // Температуру в градусах Цельсия
 Serial.print(Pressure2);
 Serial.print(" mm/");
 //Выводим давление в мм.рт ст
 Serial.println();
 Serial.println();
 delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных 
 lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
 lcd.print("T1:");//Выводим первую температуру
 lcd.print(TempDS);
 lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
 lcd.print(" T2:");//Выводим вторую температуру
 lcd.print(TempBMP);
 //аналогично выводим вторую строку
 lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
 lcd.print("Davlenie:");//Выводим давление
 lcd.print(Pressure2);
 }} ! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h> Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope `Типы переменных передаваемые в функцию не совпадают. Пробуй так if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Остались только эти ошибки priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope 'callback_iobroker' was not declared in this scope но судя по всему дело все в тех же переменных 
- 
					
					
					
					
 не посмотришь где я косячу ? ! ```` 
 #include <spi.h> // Ethernet shield
 #include <ethernet.h> // Ethernet shield
 #include <pubsubclient.h> // MQTT
 #include <virtualwire.h>
 #include <easytransfervirtualwire.h>
 #include <wire.h>
 #include <liquidcrystal_i2c.h>
 LiquidCrystal_I2C lcd(0x27,16,2);
 ///
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
 byte server[] = {192, 168, 0, 102}; //IP Брокера
 IPAddress ip(192, 168, 0, 112);
 ! EthernetClient ethClient;
 PubSubClient client(server, 1883, callback, ethClient);
 #define id_connect "UNO_1"
 #define Prefix_subscribe "UNO/Detskaya/"
 ! ////////////////////////////////////////////////////////////////////////////
 void callback(char* topic, byte* payload, unsigned int length) {
 payload[length] = '\0';
 // Serial.print(topic);
 // Serial.print("=");
 String strTopic = String(topic);
 String strPayload = String((char*)payload);
 // Serial.println(strPayload);
 callback_iobroker(strTopic, strPayload);
 }
 ! ////////////////////////////////////////////////////////////////////////////
 //create object
 EasyTransferVirtualWire ET;
 ! struct SEND_DATA_STRUCTURE
 {
 //put your variable definitions here for the data you want to send
 //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
 //Struct can'e be bigger then 26 bytes for VirtualWire version
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! };
 ! //give a name to the group of data
 SEND_DATA_STRUCTURE mydata;
 byte ID;
 long TemperatureBMP = 0;
 long TemperatureDS = 0;
 long Pressure = 0;
 ! void setup(){
 //start the library, pass in the data details
 ET.begin(details(mydata));
 Serial.begin(9600);
 // Initialise the IO and ISR
 vw_set_ptt_inverted(true); // Required for DR3100
 vw_setup(2000); // Bits per sec Скорость порта
 vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
 vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран 
 lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip); 
 if (client.connect(id_connect)) {
 client.publish("UNO/Detskaya/Temp", "0");
 client.publish("UNO/Detskaya/Pressure", "0");
 client.subscribe("UNO/Detskaya/#");
 }} ! void loop(){ //check and see if a data packet has come in. 
 if(ET.receiveData()){
 //this is how you access the variables. [name of the group].[variable name]
 //since we have data, we will blink it out.
 if (mydata.ID == 1)
 {
 int TempBMP= (mydata.TemperatureBMP);
 TempBMP = ((TempBMP)/100);
 float TempDS= (mydata.TemperatureDS);
 TempDS = ((TempDS)/100);
 float Pressure2= (mydata.Pressure);
 Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт 
 // Serial.println(", TempBMP:");
 // Температуру в градусах Цельсия
 Serial.print(TempDS);
 Serial.print(" C°,");
 // Температуру в градусах Цельсия
 Serial.print(Pressure2);
 Serial.print(" mm/");
 //Выводим давление в мм.рт ст
 Serial.println();
 Serial.println();
 delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных 
 lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
 lcd.print("T1:");//Выводим первую температуру
 lcd.print(TempDS);
 lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
 lcd.print(" T2:");//Выводим вторую температуру
 lcd.print(TempBMP);
 //аналогично выводим вторую строку
 lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
 lcd.print("Davlenie:");//Выводим давление
 lcd.print(Pressure2);
 }} ! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h> Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope `Типы переменных передаваемые в функцию не совпадают. Пробуй так if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Остались только эти ошибки priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope 'callback_iobroker' was not declared in this scope но судя по всему дело все в тех же переменных ` 
 Ну ругается же на 28 строку - callback_iobroker(strTopic, strPayload);Где в коде сама функция, вызываешь функуию callback_iobroker(strTopic, strPayload); а самой функции нету 
- 
					
					
					
					
 Типы переменных передаваемые в функцию не совпадают. Пробуй так if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Остались только эти ошибки priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope 'callback_iobroker' was not declared in this scope но судя по всему дело все в тех же переменных ` 
 Ну ругается же на 28 строку - callback_iobroker(strTopic, strPayload);Где в коде сама функция, вызываешь функуию callback_iobroker(strTopic, strPayload); а самой функции нету ` как раз хотел спросить что делает эта функция /////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа…......... 
 6907_bildschirmfoto_2018-11-13_um_11.24.02.png
 6907_bildschirmfoto_2018-11-13_um_11.23.52.png
 6907_bildschirmfoto_2018-11-13_um_11.22.48.png
 6907_bildschirmfoto_2018-11-13_um_11.22.24.png
 6907_bildschirmfoto_2018-11-13_um_11.22.08.png
 6907_bildschirmfoto_2018-11-13_um_11.25.35.png
- 
					
					
					
					
 как раз хотел спросить что делает эта функция /////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа…......... ` 
 Эта функция принимает strTopic от iobroker.
- 
					
					
					
					
 как раз хотел спросить что делает эта функция /////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа…......... 
 Эта функция принимает strTopic от iobroker.Для примера: /////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "myhome/Lighting/BedRoom_Main") { if (strPayload == "0") { digitalWrite(23, 0); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "0"); } else if (strPayload == "1") { digitalWrite(23, 1); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "1"); } }
- 
					
					
					
					
 как раз хотел спросить что делает эта функция /////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа…......... 
 Эта функция принимает strTopic от iobroker.Для примера: /////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "myhome/Lighting/BedRoom_Main") { if (strPayload == "0") { digitalWrite(23, 0); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "0"); } else if (strPayload == "1") { digitalWrite(23, 1); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "1"); } } ```` `как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ?? я эту функцию временно закоментил и залил скетч. объекты создались но данные не приходят везде стоит - 0 !  
- 
					
					
					
					
 как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ?? я эту функцию временно закоментил и залил скетч. объекты создались но данные не приходят везде стоит - 0 ! filename="77.JPG" index="0">~~ ` 
 Правильно понял, это callback.а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker. добавь строки в общий луп char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); 
- 
					
					
					
					
 как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ?? я эту функцию временно закоментил и залил скетч. объекты создались но данные не приходят везде стоит - 0 ! filename="77.JPG" index="0">~~ ` 
 Правильно понял, это callback.а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker. добавь строки в общий луп char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); ` А разве сейчас не так ? void loop(){ //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } }
- 
					
					
					
					
 как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ?? я эту функцию временно закоментил и залил скетч. объекты создались но данные не приходят везде стоит - 0 ! filename="77.JPG" index="0">~~ ` 
 Правильно понял, это callback.а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker. добавь строки в общий луп char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); ` А разве сейчас не так ? void loop(){ //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `нет, не ужели нельзя чуток подумать и вникнуть в код? void loop(){ char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } }
- 
					
					
					
					
 Правильно понял, это callback. а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker. добавь строки в общий луп char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); ` А разве сейчас не так ? void loop(){ //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `нет, не ужели нельзя чуток подумать и вникнуть в код? void loop(){ char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Пришлось еще объявить в начале программы (глобально) float TempDS и float Pressure2, иначе выдавал ошибку но легче не стало на брокер ничего не передает. на LCD всё отображает. :roll: :? 
- 
					
					
					
					
 Пришлось еще объявить в начале программы (глобально) float TempDS и float Pressure2, иначе выдавал ошибку но легче не стало на брокер ничего не передает. на LCD всё отображает. :roll: :? ` 
 замени строки :#define id_connect "UNO_1" #define Prefix_subscribe "UNO/Detskaya/" на #define id_connect "UNO-Detskaya" #define Prefix_subscribe "UNO/Detskaya/" 
 
		
	