SuplaDevice 2.4.2

Zibi
Posty: 412
Rejestracja: śr lip 31, 2019 9:20 am
Lokalizacja: Białogard

Dziekuje działa.
Awatar użytkownika
Lector
Posty: 943
Rejestracja: pt lis 17, 2017 2:26 pm
Lokalizacja: Poznań
Kontakt:

Mam pytanie zrobiłem próbę z przykładem WebInterface, ładnie rozsyła sieć Supla-ESP8266-XXXX ale aplikacja nie wykrywa modułu jak to ma miejsce z firmware GUI Genneric. Trzeba wchodzić na stronę konfiguracyjną i wszystko wpisywać ręcznie.

Co zrobić aby aplikacja rozpoznawała urządzenie?
Niespełniony automatyk. :mrgreen:
Awatar użytkownika
klew
Posty: 4404
Rejestracja: czw cze 27, 2019 12:16 pm

Lector pisze: pt cze 24, 2022 1:43 pm Mam pytanie zrobiłem próbę z przykładem WebInterface, ładnie rozsyła sieć Supla-ESP8266-XXXX ale aplikacja nie wykrywa modułu jak to ma miejsce z firmware GUI Genneric. Trzeba wchodzić na stronę konfiguracyjną i wszystko wpisywać ręcznie.

Co zrobić aby aplikacja rozpoznawała urządzenie?
Tam jest nieco inny format niż ten wykrywany przez apki. Miała być zrobiona aktualizacja tego w apkach, ale jeszcze nie ma
Awatar użytkownika
shimano73
Posty: 1595
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze

Jak wygląda aktualizowanie modułu po przez OTA , znalazłem biblioteki

Kod: Zaznacz cały

 <supla/network/html/sw_update_beta.h>
 <supla/network/html/sw_update.h>
 <supla/network/html/custom_sw_update.h>
 
ale nie wiem czy z ich pomocą da się to to wykonać?
Załączniki
update.jpg
update.jpg (27.66 KiB) Przejrzano 397 razy
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Awatar użytkownika
klew
Posty: 4404
Rejestracja: czw cze 27, 2019 12:16 pm

shimano73 pisze: pn cze 27, 2022 6:53 am Jak wygląda aktualizowanie modułu po przez OTA , znalazłem biblioteki

Kod: Zaznacz cały

 <supla/network/html/sw_update_beta.h>
 <supla/network/html/sw_update.h>
 <supla/network/html/custom_sw_update.h>
 
ale nie wiem czy z ich pomocą da się to to wykonać?
To nie jest przygotowane pod Arduino IDE, tylko do kompilacji na ESP8266 RTOS SDK i na ESP-IDF SDK.
Procedura jest bardzo podobna do tego co jest w "supla-espressif-esp" - czyli update odbywa się za pośrednictwem serwerów Supli. Została natomiast wprowadzona mała modyfikacja, która polega na tym, że urządzenie nie musi się rejestrować w Supli, tylko odpytuje dedykowanego serwera o dostępność nowego softu. Jest to zrobione pod kątem użytkowników komercyjnych urządzeń Supli, którzy decydują się koryzstać z "lokalnego MQTT" bez udziału serwerów Supli.

Może na kolejny release przygotowałbym też opcję na OTA przez podanie nowej binarki z dysku, tak aby to działało z kompilacjami z Arduino IDE.
Awatar użytkownika
shimano73
Posty: 1595
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze

Rozumiem, było by super , będę cierpliwie czekał.
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
radzik_r
Posty: 247
Rejestracja: ndz sie 11, 2019 5:32 pm

klew pisze: czw cze 23, 2022 8:19 am
Zibi pisze: czw cze 23, 2022 8:15 am @klew idziesz jak burza Gratulacje!
Próbowałem odpalić przykład WebInterface ale ciągle pluje mi błedem Bład kompilacji dla płytki ESP8266.

Kod: Zaznacz cały

In file included from D:\Arduino 1.8.16 AT Supla\arduino-ide-portable_1.8.16\arduino-1.8.16\libraries\supla-arduino-master\examples\WebInterface\WebInterface.ino:40:0:

D:\Arduino 1.8.16 AT Supla\arduino-ide-portable_1.8.16\arduino-1.8.16\libraries\supla-arduino-master\src/supla/network/esp_wifi.h: In member function 'virtual void Supla::ESPWifi::setup()':

D:\Arduino 1.8.16 AT Supla\arduino-ide-portable_1.8.16\arduino-1.8.16\libraries\supla-arduino-master\src/supla/network/esp_wifi.h:140:12: error: 'class ESP8266WiFiClass' has no member named 'setHostname'

       WiFi.setHostname(hostname);

            ^

D:\Arduino 1.8.16 AT Supla\arduino-ide-portable_1.8.16\arduino-1.8.16\libraries\supla-arduino-master\src/supla/network/esp_wifi.h:217:12: error: 'class ESP8266WiFiClass' has no member named 'setHostname'

       WiFi.setHostname(hostname);

            ^

Znaleziono wiele bibliotek w "ESP8266WiFi.h"

Wykorzystane: C:\Users\Lenovo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi

Niewykorzystane: D:\Arduino 1.8.16 AT Supla\arduino-ide-portable_1.8.16\arduino-1.8.16\libraries\ESP8266WiFi

exit status 1

Błąd kompilacji dla płytki Generic ESP8266 Module.
Pewnie masz jakiąś starą wersję boardów dla ESP8266.
Jeśli nie aktualizuje Ci się, to upewnij się, że dla ESP8266 masz ustawione:
https://arduino.esp8266.com/stable/pack ... index.json
A dla ESP32:
https://raw.githubusercontent.com/espre ... index.json
U mnie podobna sytuacja. Kompilacje na ESP8266 wywala będy.
Board 2.7.4
Board 3.0.2
Na takich boardach próbowałem

Przy ESP32 kompiluje się bez błędnie
Awatar użytkownika
klew
Posty: 4404
Rejestracja: czw cze 27, 2019 12:16 pm

radzik_r pisze: pn cze 27, 2022 8:25 pm
klew pisze: czw cze 23, 2022 8:19 am Pewnie masz jakiąś starą wersję boardów dla ESP8266.
Jeśli nie aktualizuje Ci się, to upewnij się, że dla ESP8266 masz ustawione:
https://arduino.esp8266.com/stable/pack ... index.json
A dla ESP32:
https://raw.githubusercontent.com/espre ... index.json
U mnie podobna sytuacja. Kompilacje na ESP8266 wywala będy.
Board 2.7.4
Board 3.0.2
Na takich boardach próbowałem

Przy ESP32 kompiluje się bez błędnie
Na 3.0.2 powinno działać. Upewnij się, że masz dobrze ustawione źródło boardów. Jeśli nadal nie będzie działać, to włącz pełne logowanie kompilacji i wyślij mi na priv cały log z kompilacji.
jaku2k
Posty: 619
Rejestracja: ndz maja 24, 2020 8:40 pm
Kontakt:

Witam,
próbuję uruchomić ESP32 z płytką LAN8720. Płytka LAN jest podłączona zgodnie ze schematem udostępnionym przez @elmaya w wątku ESP32+LAN8720 (swoją drogą nie wiedziałem, czy pisać tam czy tu; jako że obsługa LAN dla ESP32 jest już dostępna w SuplaDevice, to zdecydowałem się opublikować post tutaj).
Nie wiem, którym pinem w płytce LAN ustawia się adres, więc poza podłączeniem LAN-u 8720 do ESP i wyłączeniem oscylatora, nic więcej nie robiłem.

Proszę o pomoc.

Poniżej przesyłam błędy, jakie wyświetla ESP.

Kod: Zaznacz cały

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13160
load:0x40080400,len:3036
entry 0x400805e4
Supla - starting initialization
Main storage not configured
Config storage not configured
Relay[0] turn OFF (duration 0 ms)
 **** Digital write[0], gpio: 108; value 0
Relay[1] turn OFF (duration 0 ms)
 **** Digital write[1], gpio: 109; value 0
Relay[2] turn OFF (duration 0 ms)
 **** Digital write[2], gpio: 110; value 0
Relay[3] turn OFF (duration 0 ms)
 **** Digital write[3], gpio: 111; value 0
Relay[4] turn OFF (duration 0 ms)
 **** Digital write[4], gpio: 112; value 0
Relay[5] turn OFF (duration 0 ms)
 **** Digital write[5], gpio: 113; value 0
Relay[6] turn OFF (duration 0 ms)
 **** Digital write[6], gpio: 114; value 0
Relay[7] turn OFF (duration 0 ms)
 **** Digital write[7], gpio: 115; value 0
Relay[8] turn OFF (duration 0 ms)
 **** Digital write[8], gpio: 100; value 0
E (57079) gpio: GPIO can only be used as input mode
Relay[9] turn OFF (duration 0 ms)
 **** Digital write[9], gpio: 101; value 0
E (58080) gpio: GPIO can only be used as input mode
Relay[10] turn OFF (duration 0 ms)
 **** Digital write[10], gpio: 102; value 0
E (59091) gpio: GPIO can only be used as input mode
Relay[11] turn OFF (duration 0 ms)
 **** Digital write[11], gpio: 103; value 0
E (60102) gpio: GPIO can only be used as input mode
Relay[12] turn OFF (duration 0 ms)
 **** Digital write[12], gpio: 104; value 0
Relay[13] turn OFF (duration 0 ms)
 **** Digital write[13], gpio: 105; value 0
Relay[14] turn OFF (duration 0 ms)
 **** Digital write[14], gpio: 106; value 0
Relay[15] turn OFF (duration 0 ms)
 **** Digital write[15], gpio: 107; value 0
Relay[16] turn OFF (duration 0 ms)
 **** Digital write[16], gpio: 32; value 0
Relay[17] turn OFF (duration 0 ms)
 **** Digital write[17], gpio: 33; value 0
Initializing network layer
Network AP/hostname: SUPLA-ESP32
Enter normal mode
establishing Lan connection
E (64241) lan87xx: lan87xx_pwrctl(409): power up timeout
E (64241) lan87xx: lan87xx_init(491): power control failed
E (64242) esp_eth: esp_eth_driver_install(215): init phy failed
Using Supla protocol version 16
Current status: [5] SuplaDevice initialized
Conn fail counter 1
Current status: [8] No connection to network
Conn fail counter 2
Conn fail counter 3
Conn fail counter 4
Conn fail counter 5
Conn fail counter 6
Connection fail counter overflow. Trying to setup network interface again
establishing Lan connection
E (124857) esp_netif_lwip: esp_netif_new: Failed to configure netif with config=0x3ffb2610 (config or if_key is NULL or duplicate key)
E (124867) esp.emac: esp_eth_mac_new_esp32(595): alloc emac interrupt failed
i kod:

Kod: Zaznacz cały

/*
  Copyright (C) AC SOFTWARE SP. Z O.O.

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2
  of the License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

/*
-(50MHz) Osc. Enable to GND -
GPIO22 - EMAC_TXD1   : TX1
GPIO19 - EMAC_TXD0   : TX0
GPIO21 - EMAC_TX_EN  : TX_EN
GPIO26 - EMAC_RXD1   : RX1
GPIO25 - EMAC_RXD0   : RX0
GPIO27 - EMAC_RX_DV  : CRS
GPIO17 - EMAC_TX_CLK : nINT/REFCLK (50MHz)
GPIO23 - SMI_MDC     : MDC
GPIO18 - SMI_MDIO    : MDIO
GND                  : GND
3V3                  : VCC
*/

#define supla_lib_config_h_  // silences debug messages
#include <SuplaDevice.h>
#include <Adafruit_MCP23017.h>
#include <SPI.h>
#include <supla/io.h>
#include <supla/control/relay.h>
#include <supla/network/esp32eth.h>
  Supla::ESPETH Eth(0);  // uint_t ETH_ADDR = I²C-address of Ethernet PHY (0 or 1)
 
Adafruit_MCP23017 mcp;
Adafruit_MCP23017 mcp2;

class MyMcp23017 : public Supla::Io {
  public:
    void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
      if ((pin >= 100) && (pin <= 115)) {
        mcp.digitalWrite(pin - 100, val);
               return;
      }
      if (pin <= 99) {
        return ::digitalWrite(pin, val);  // ------------------------------ so that the other channels work normally
      }
    }

    int customDigitalRead(int channelNumber, uint8_t pin) {
      if ((pin >= 100) && (pin <= 115)) {
        return mcp.digitalRead(pin - 100);
      }
      if (pin <= 99) {
        return ::digitalRead(pin);  // ------------------------------ so that the other channels work normally
      }
      if ((pin >= 200) && (pin <= 215)) {
        return mcp2.digitalRead(pin - 200);
      }
    }
} MyMcp23017;

 
 void setup() {
  Serial.begin(115200);
    Wire.begin(4,16); //Wire.begin (sda, scl)
    mcp.begin();  //ustawia adres MCP na 0x20
   
  mcp.pinMode(0, OUTPUT);
  mcp.pinMode(1, OUTPUT);
  mcp.pinMode(2, OUTPUT);
  mcp.pinMode(3, OUTPUT);
  mcp.pinMode(4, OUTPUT);
  mcp.pinMode(5, OUTPUT);
  mcp.pinMode(6, OUTPUT);
  mcp.pinMode(7, OUTPUT);
  mcp.pinMode(8, OUTPUT);
  mcp.pinMode(9, OUTPUT);
  mcp.pinMode(10, OUTPUT);
  mcp.pinMode(11, OUTPUT);
  mcp.pinMode(12, OUTPUT);
  mcp.pinMode(13, OUTPUT);
  mcp.pinMode(14, OUTPUT);
  mcp.pinMode(15, OUTPUT);
  
    mcp2.begin(1);  //ustawia adres MCP2 na 0x21
     
  mcp2.pinMode(0, INPUT);  mcp2.pullUp(0, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(1, INPUT);  mcp2.pullUp(1, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(2, INPUT);  mcp2.pullUp(2, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(3, INPUT);  mcp2.pullUp(3, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(4, INPUT);  mcp2.pullUp(4, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(5, INPUT);  mcp2.pullUp(5, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(6, INPUT);  mcp2.pullUp(6, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(7, INPUT);  mcp2.pullUp(7, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(8, INPUT);  mcp2.pullUp(8, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(9, INPUT);  mcp2.pullUp(9, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(10, INPUT);  mcp2.pullUp(10, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(11, INPUT);  mcp2.pullUp(11, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(12, INPUT);  mcp2.pullUp(12, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(13, INPUT);  mcp2.pullUp(13, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(14, INPUT);  mcp2.pullUp(14, HIGH);  // turn on a 100K pullup internally
  mcp2.pinMode(15, INPUT);  mcp2.pullUp(15, HIGH);  // turn on a 100K pullup internally
  
  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x8B,0x90,0x40,0x6C,0x89,0xAC,0xCB,0xE5,0x34,0x4D,0x60,0x8B,0x97,0x9B,0xF2,0x89};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x2E,0x6E,0x02,0xF8,0xF8,0xE9,0x91,0xE7,0x74,0xD8,0x5C,0xD5,0x6C,0x85,0x57,0xA5};

  auto r101 = new Supla::Control::Relay(108);
  auto r102 = new Supla::Control::Relay(109);
  auto r103 = new Supla::Control::Relay(110);
  auto r104 = new Supla::Control::Relay(111);
  auto r105 = new Supla::Control::Relay(112);
  auto r106 = new Supla::Control::Relay(113);
  auto r107 = new Supla::Control::Relay(114);
  auto r108 = new Supla::Control::Relay(115);
  auto r109 = new Supla::Control::Relay(100);
  auto r110 = new Supla::Control::Relay(101);
  auto r111 = new Supla::Control::Relay(102);
  auto r112 = new Supla::Control::Relay(103);
  auto r113 = new Supla::Control::Relay(104);
  auto r114 = new Supla::Control::Relay(105);
  auto r115 = new Supla::Control::Relay(106);
  auto r116 = new Supla::Control::Relay(107);
  auto r117 = new Supla::Control::Relay(32);
  auto r118 = new Supla::Control::Relay(33);

    
  /*
     Having your device already registered at cloud.supla.org,
     you want to change CHANNEL sequence or remove any of them,
     then you must also remove the device itself from cloud.supla.org.
     Otherwise you will get "Channel conflict!" error.
  */
  
  /*
     SuplaDevice Initialization.
     Server address is available at https://cloud.supla.org
     If you do not have an account, you can create it at
     https://cloud.supla.org/account/create SUPLA and SUPLA CLOUD are free of
     charge

  */

  SuplaDevice.begin(
      GUID,              // Global Unique Identifier
      "cloud.supla.org",  // SUPLA server address
      "moj@mail.com",   // Email address used to login to Supla Cloud
      AUTHKEY);          // Authorization key
}

void loop() {
  SuplaDevice.iterate();
}
Pozdrawiam
Jakub
wojaran
Posty: 1
Rejestracja: pn sie 15, 2022 5:24 pm

Witam
mam taki problem że stworzyłem sobie nowy sensor SUPLA_CHANNELTYPE_GENERAL_PURPOSE_MEASUREMENT:

#include "air_quality_sensor.h"

#include <supla/time.h>

Supla::Sensor::AirQualitySensor::AirQualitySensor() : lastReadTime(0) {
channel.setType(SUPLA_CHANNELTYPE_GENERAL_PURPOSE_MEASUREMENT);
channel.setDefault(SUPLA_CHANNELFNC_GENERAL_PURPOSE_MEASUREMENT);
}

double Supla::Sensor::AirQualitySensor::getValue() {
return READ_NOT_AVAILABLE;
}

void Supla::Sensor::AirQualitySensor::iterateAlways() {
if (millis() - lastReadTime > 10000) {
lastReadTime = millis();
channel.setNewValue(getValue());
}
}

i ogólnie go zarejestrowało, widzę go w urządzeniach supla-cloud, widzę w kodzie że wysyła wartości ESP32, ale nie widzę żadnej wartości w supla-cloud?
gdzie może leżeć problem?

Pozdrawiam
ODPOWIEDZ

Wróć do „Arduino IDE”