Linki bezpośrednie odczyt

User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

nebraska wrote: Sun May 07, 2023 8:31 pm Zrobiłem test z Supla bez CFG i działa.
Potem wróciłem do Supla z cfg i tam nie działa cały czas 0.0 :roll:
Dodanie serwera webowego do konfiguracji Supli, zjada sporo dodatkowego RAM-u. Nie było to optymalizowane pod kątem ESP8266.
Polecam przejść na ESP32, albo szukać oszczędności na pamięci RAM.
Najlepsze suple dla Twojego domu :mrgreen:
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

klew wrote: Mon May 08, 2023 7:52 am
nebraska wrote: Sun May 07, 2023 8:31 pm Zrobiłem test z Supla bez CFG i działa.
Potem wróciłem do Supla z cfg i tam nie działa cały czas 0.0 :roll:
Dodanie serwera webowego do konfiguracji Supli, zjada sporo dodatkowego RAM-u. Nie było to optymalizowane pod kątem ESP8266.
Polecam przejść na ESP32, albo szukać oszczędności na pamięci RAM.
Dzięki @klew za naprowadzenie. Wymieniłem na ESP32 wrzuciłem biblioteki i śmiga. Zostało tylko dodać wyświetlacz i finito. Czas najwyższy chyba już zmienić esp8266 --->>> Na ESP32. Zasoby Supli rosną i jednak sam proc to mega większe możlwiośći.
User avatar
jamsjamsen
Posts: 72
Joined: Sat Jan 28, 2017 11:08 am
Location: 0xE952

Post

nebraska wrote: Mon May 08, 2023 12:04 pm

Dzięki @klew za naprowadzenie. Wymieniłem na ESP32 wrzuciłem biblioteki i śmiga. Zostało tylko dodać wyświetlacz i finito. Czas najwyższy chyba już zmienić esp8266 --->>> Na ESP32. Zasoby Supli rosną i jednak sam proc to mega większe możlwiośći.
Jaki Model ESP32 Wroom 32?? , bo jest jeszcze wypasiona wersja Wrover z PSRAM?
Byłem na Supla Offline Party 2023 & 2024 ;
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

jamsjamsen wrote: Mon May 08, 2023 3:55 pm
nebraska wrote: Mon May 08, 2023 12:04 pm

Dzięki @klew za naprowadzenie. Wymieniłem na ESP32 wrzuciłem biblioteki i śmiga. Zostało tylko dodać wyświetlacz i finito. Czas najwyższy chyba już zmienić esp8266 --->>> Na ESP32. Zasoby Supli rosną i jednak sam proc to mega większe możlwiośći.
Jaki Model ESP32 Wroom 32?? , bo jest jeszcze wypasiona wersja Wrover z PSRAM?
Dokładnie ten z linku, mam wersję 30 pionowa.

6,59 zł 19%OFF | 1 sztuk ESP32 pokładzie rozwoju WiFi + Bluetooth ultra-niski pobór mocy dwurdzeniowy ESP-32S ESP32-WROOM-32D ESP32-WROOM-32U ESP 32
https://a.aliexpress.com/_EIcVelB
User avatar
jamsjamsen
Posts: 72
Joined: Sat Jan 28, 2017 11:08 am
Location: 0xE952

Post

nebraska wrote: Mon May 08, 2023 4:45 pm
Dokładnie ten z linku, mam wersję 30 pionowa.

6,59 zł 19%OFF | 1 sztuk ESP32 pokładzie rozwoju WiFi + Bluetooth ultra-niski pobór mocy dwurdzeniowy ESP-32S ESP32-WROOM-32D ESP32-WROOM-32U ESP 32
https://a.aliexpress.com/_EIcVelB
Ok dzieki za info, dokładnie taki sam używam do Supla z Expanderami na 32 przekaźniki według zaleceń @Krycha88, gdyż ESP8266 ledwo dyszał na tym projekcie, tak więc nie wiedziałem ,że tak cieńko będzie też z nim przy odczycie linków bezpośrednich, ale dobrze ,że mamy takich fachowców na forum jak @klew i zawsze naprowadzą czy wytłumaczą wielki szacun dla Nich ;)
Byłem na Supla Offline Party 2023 & 2024 ;
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

Dokładnie tak wielki szacun dla @klew. Jeśli będziesz planował powiadomienia to też lepiej iść w Esp32 bo tam też jest problem z pamięcia RAM. Ja powoli przesiadam się z 8266 bo często pojawiają się problemy to pinów mało albo RAMu.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

nebraska wrote: Sun May 07, 2023 12:08 pm
klew wrote: Fri May 05, 2023 12:32 pm
nebraska wrote: Fri May 05, 2023 11:21 am Mam odpowiedź wklejałem róznie już ten link i nic nie czyta z tego kanału wirtualnego odległości.
Rezultat wykonania jest zaprezentowany jako strona internetowa, ponieważ Ty (lub Twoja przeglądarka) poprosiła o odpowiedź w formacie HTML.
Jeśli chcesz użyć linku bezpośredniego w innym oprogramowaniu, dodaj odpowiedni nagłówek żądania by otrzymać odpowiedź łatwiejszą w przetworzeniu.
Accept: application/json
Rzewczywiście coś Cloud przestał respektować parametr "format=json". Nie wiem jak to prosto z przeglądarki objeść.
Natomiast możesz zerknąć do źródeł odczytanej strony (prawy przycisk myszy i "pokaż źródło", albo skrót "ctrl+u" - na chrome i FF sprawdzałem).
Tam poszukaj słowa: "state":
Razem z " oraz :

Powinna tam być widoczna wartość tego jsona, oraz jakie są parametry.

U mnie na THW widać tam:
"state":{"connected":true,"humidity":38.858,"temperature":25.605}
@klew Dziękuje po raz kolejny. W linijce mam
state":{"connected":true,"depth":4.01}};
Wystarczyło zmienić na "depth" i czyta.
Wielkie dzięki mistrzu.
Pytanie czy można odczytać dwa miejsca po przecinku, teraz mi czyta 4.0 Czy będzie zaokrąglał? tak informacyjnie pytam.
Okazało się, że "format=json" w Cloud działa tylko dla konkretnych komend linku. Tzn. musi tam być "/read?format=json" aby to działało. Jak dasz sam link, kończący się tymi losowymi znakami, to w tym miejscu "format=json" nie jest wspierany.
Najlepsze suple dla Twojego domu :mrgreen:
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

jamsjamsen wrote: Fri May 05, 2023 6:12 pm
klew wrote: Fri May 05, 2023 12:32 pm

Rzewczywiście coś Cloud przestał respektować parametr "format=json".
U mnie na przeglądarce Safari macOS czyta "format=json" bez problemu dostaje odczyt w formacie json z serwera nawet linki z Supla MEW-1 śmigają bez problemu
Jak odczytać dane z mewa? Kombinowałem z Twoim przykładem i nie mogę odczytać. Inne kanały jak "temperature, humidity, value, itp" odczytuje, a z licznika energii nic.
Chciałem odczytać sobie np ten parametr

Code: Select all

"totalForwardActiveEnergy"
podstawiłem w to miejsce i cały czas 0 :roll:

Code: Select all

  
  WiFiClientSecure *client = new WiFiClientSecure;
  client->setInsecure();
  HTTPClient https;
  https.begin(*client, host);// HTTPS
  int httpCode = https.GET();

  String json = https.getString();
  //https.end();

  DynamicJsonDocument doc(1024);
  deserializeJson(doc, json);

  double licznik = doc["totalForwardActiveEnergy"];
  dtostrf(licznik, 4, 0, war_energii);   
Adamo28
Posts: 223
Joined: Sun Nov 08, 2020 2:54 pm

Post

Hej, poniżej lekko przycięty kod kolegi z 2/3 strony tematu, odczytuje moc z każdej fazy osobno i je sumuje, w json nie widzę aby była łączna wartość przesyłana do użytkownika, o tyle dziwnie że po mqtt można to pobrać jedną wartością. Chyba że ktoś ma sztuczkę na to :?: Ten kawałek wyciąłem z przykładu który ma dodatkowo obsługę wyświetlacza TFT. Czasami mi się resetowało esp i okazało się że brakuje po prostu pamięci, obciąłem buffor JSON do tej wartości poniżej i resetu ustały jednak niektóre wartości poszły właśnie w 0, więc może zwróć uwagę jak to u ciebie wygląda czy to nie kwestia pamięci. Przykład działa, wyświetla to samo co apka.

Code: Select all

#include <Arduino.h>
#include <ArduinoJson.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
 
const char* ssid = "<<<wifi>>>";
const char* password = "<<<pass>>>";

WiFiClientSecure client;

String serverName = "<<<link>>>"; //Direct Link mew-01

unsigned long lastTime = 0;

// Set timer to 5 seconds (5000)
unsigned long timerDelay = 5000;

void setup() {
 Serial.begin(115200); 
 WiFi.begin(ssid, password);
 client.setInsecure();
 Serial.println("Connecting");
  
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
 Serial.println("");
 Serial.print("Connected to WiFi network with IP Address: ");
 Serial.println(WiFi.localIP());
 Serial.println("Timer set to 5 seconds (timerDelay variable), it will take 5 seconds before publishing the first reading.");
}

void loop() {
  
  //Send an HTTP POST request every 10 minutes
  if ((millis() - lastTime) > timerDelay) {
    
    //Check WiFi connection status
    if(WiFi.status()== WL_CONNECTED){
      HTTPClient http;
      String serverPath = serverName;
      
      // Your Domain name with URL path or IP address with path
      http.begin(client, serverPath.c_str());
        
      // Send HTTP GET request
      int httpResponseCode = http.GET();
      
      if (httpResponseCode>0) {
        Serial.print("HTTP Response code: ");
        Serial.println(httpResponseCode);
        String json = http.getString();
        StaticJsonDocument<600> filter;
        filter["phases"][0]["totalForwardActiveEnergy"] = true;
        StaticJsonDocument<600> doc;
        deserializeJson(doc, json, DeserializationOption::Filter(filter));
        double val15 = doc["phases"][0]["totalForwardActiveEnergy"];
        double val16 = doc["phases"][1]["totalForwardActiveEnergy"];
        double val17 = doc["phases"][2]["totalForwardActiveEnergy"];

        Serial.println("Energia Czynna Pobrana:");
        Serial.println(val15);
        Serial.println(val16);
        Serial.println(val17);
        Serial.print("Razem:");
        Serial.print(val15 + val16 + val17);
        Serial.println(" kWh");
        Serial.println(" ");

      }
      else {
        Serial.print("Error code: ");
        Serial.println(httpResponseCode);
      }
      // Free resources
      http.end();
    }
    else {
      Serial.println("WiFi Disconnected");
    }
    lastTime = millis();
  }
}
You do not have the required permissions to view the files attached to this post.
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

@Adamo28 Bardzo dziękuje!

Return to “Pomoc”