Komunikacja dwukierunkowa

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Carrex95
Posts: 19
Joined: Sun Apr 14, 2024 6:59 pm

Post

YoMan wrote: Mon Apr 15, 2024 8:09 pm
Carrex95 wrote: Mon Apr 15, 2024 6:57 pm Poza tematem mogli by w supli dodać urządzenie w stylu potencjometru/suwaka czyli wartość od do i przeskok o wartość jako zdalne termostaty lub wartość otwarcia rolet/oddymiaczy a może coś takiego jest ?
NIestety takicjh luksusów to my tu nie mamy :lol: :lol: Jak zawsze pozostaje kombinowanie. Z działających sterowników "analogowych" masz rolety (oddymiacze chyba pod to podpadną) i dimmery (oraz nie wiem czy juz działa okno dachowe) i jeżeli jesteś w stanie podpasować sterowanie pod to to jest jakaś proteza.
No szkoda może kiedyś się rozwinie
Carrex95
Posts: 19
Joined: Sun Apr 14, 2024 6:59 pm

Post

A wracając
Jest możliwość odczytu danych urządzeń z serwera przez esp?
User avatar
klew
Posts: 8647
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Carrex95 wrote: Tue Apr 16, 2024 6:22 am A wracając
Jest możliwość odczytu danych urządzeń z serwera przez esp?
Obecnie w Supli urządzenia komunikują się tylko z serwerem i nie mają dostępu do danych innych urządzeń.
Sceny, Reakcje, Wyzwalacze Akcji, Harmonogramy itp. są realizowane przez serwer.

Ludzie często to odbchodzą używając Linków Bezpośrednich, które pozwalają odczytać stan dowolnego innego urządzenia.

Proponuję od razu z planów i projektów wyeliminować ESP8266.
Espressif za niecałe dwa lata kończy całkowicie wsparcie dla tej serii (https://www.espressif.com/en/products/l ... commitment).

Dokładanie "Arduino" to też nie jest najlepszy pomysł. Ogólnie ESP32 są w wersjach, które mają po kilkadziesiąt GPIO i raczej ciężko to wszystko sensownie wykorzystać, a robienie kombajnów to też średni pomysł - już lepiej to rozbić na kilka urządzeń i w razie awarii nie mieć rozwalonej całej automatyki :).

Proponuję trochę się zagłębić w tematy poruszane na forum. Uruchom sobie kilka testowych urządzeń, dodaj do serwera, zobacz jak się tym steruje z apki, co można zrobić w Cloud itd.

Jeśli pozansz Suplę i się w nią wpasujesz, to powinno iść łatwo.
Jeśli będziesz "wymyślał" wszystko na nowo, to zderzysz się z wieloma ograniczeniami Supli, który po prostu nie przeskoczysz tak łatwo.
To że źródła są otwarte, nie znaczy, że łatwo w to wejść. Poznaj najpierw architekturę całego systemu, zobacz co za co odpowiada itd.
Widzimy się na Supla Offline Party vol. 2 :!:
User avatar
YoMan
Posts: 2338
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa

Post

klew wrote: Tue Apr 16, 2024 7:30 am To że źródła są otwarte, nie znaczy, że łatwo w to wejść.
właśnie się o tym przekonuję :(
YoMan
________________________________________
Wziąłem udział w Supla Offline Party 2023 ;)
Carrex95
Posts: 19
Joined: Sun Apr 14, 2024 6:59 pm

Post

klew wrote: Tue Apr 16, 2024 7:30 am
Carrex95 wrote: Tue Apr 16, 2024 6:22 am A wracając
Jest możliwość odczytu danych urządzeń z serwera przez esp?
Obecnie w Supli urządzenia komunikują się tylko z serwerem i nie mają dostępu do danych innych urządzeń.
Sceny, Reakcje, Wyzwalacze Akcji, Harmonogramy itp. są realizowane przez serwer.

Ludzie często to odbchodzą używając Linków Bezpośrednich, które pozwalają odczytać stan dowolnego innego urządzenia.

Proponuję od razu z planów i projektów wyeliminować ESP8266.
Espressif za niecałe dwa lata kończy całkowicie wsparcie dla tej serii (https://www.espressif.com/en/products/l ... commitment).

Dokładanie "Arduino" to też nie jest najlepszy pomysł. Ogólnie ESP32 są w wersjach, które mają po kilkadziesiąt GPIO i raczej ciężko to wszystko sensownie wykorzystać, a robienie kombajnów to też średni pomysł - już lepiej to rozbić na kilka urządzeń i w razie awarii nie mieć rozwalonej całej automatyki :).

Proponuję trochę się zagłębić w tematy poruszane na forum. Uruchom sobie kilka testowych urządzeń, dodaj do serwera, zobacz jak się tym steruje z apki, co można zrobić w Cloud itd.

Jeśli pozansz Suplę i się w nią wpasujesz, to powinno iść łatwo.
Jeśli będziesz "wymyślał" wszystko na nowo, to zderzysz się z wieloma ograniczeniami Supli, który po prostu nie przeskoczysz tak łatwo.
To że źródła są otwarte, nie znaczy, że łatwo w to wejść. Poznaj najpierw architekturę całego systemu, zobacz co za co odpowiada itd.
Liczyłem że uda się z serwera pobrać bezpośrednio dane.
O linkach wiem jednak to są dane wysłane bez autoryzacji i w urządzeniach takich jak uchylenie okna czy brama automatyczna bym nie chciał.
I też nie robić śmietnika mieszając mqtt z http.

Poza tym nie chodziło mi o duże urządzenie bardziej wyglądem jak zdalny licznik energii tylko z dwustanami I/O

Pozatym mniejsza ilość urządzeń w sieci bo 1 by łączyło się z serwerem a inne między sobą po rs

No nic przejrze bibliotekę a jak nic nie wymyślę to zacznę się zgłębiać na rapisberry

Jak już będę zdesperowany to wsadze telefon do rozdzielnicy i androidem będę sterować 😁😁😁
User avatar
klew
Posts: 8647
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

MQTT z http?
Supła używa własnego protokołu.
Po MQTT udostępnia wszystkie swoje urządzenia i ich stan
Widzimy się na Supla Offline Party vol. 2 :!:
Carrex95
Posts: 19
Joined: Sun Apr 14, 2024 6:59 pm

Post

klew wrote: Tue Apr 16, 2024 8:15 pm MQTT z http?
Supła używa własnego protokołu.
Po MQTT udostępnia wszystkie swoje urządzenia i ich stan
O to myślałem że supla korzysta z MQTT
Czyli jest możliwość po MQTT odczytać kilka urządzeń z serwera a raczej ich wartości?
Carrex95
Posts: 19
Joined: Sun Apr 14, 2024 6:59 pm

Post

Kod wrote: Tue Apr 16, 2024 8:25 pm #include <ESP8266WiFi.h>
#include <PubSubClient.h>

// Dane WiFi
const char* ssid = "nazwa_sieci";
const char* password = "hasło";

// Dane MQTT
const char* mqtt_server = "adres_brokera_mqtt";
const int mqtt_port = 1883; // Zmień na 8883 dla MQTT z SSL
const char* mqtt_user = "użytkownik";
const char* mqtt_password = "hasło";

WiFiClient espClient;
PubSubClient client(espClient);

void setup_wifi() {
delay(10);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
}

void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++) {
Serial.print((char)payload);
}
Serial.println();
}

void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
Serial.println("connected");
client.subscribe("topic/urządzenia"); // Subskrybuj odpowiedni topic
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}

void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);
}

void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
}


Mam coś takiego ?
User avatar
klew
Posts: 8647
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Jeśli się połączysz z brokerem MQTT na serwerze Supli, to będziesz mógł czytać stan wszystkich urządzeń i nimi sterować.
Natomiast nie dodasz w ten sposób swojego urządzenia do Supli. Do tego trzeba użyć bibiliteki SuplaDevice (jest dostępna w managerze bibliotek w Arduino IDE).
Widzimy się na Supla Offline Party vol. 2 :!:
Carrex95
Posts: 19
Joined: Sun Apr 14, 2024 6:59 pm

Post

Super zacznę od stworzenia urządzenia z 1 przekaźnikiem i 2 termometrami
Jeden ma odczytywać rzeczywistą temperaturę a drugi jako temperatura zadana którą będzie sztucznie wysyłana na serwer przez MQTT
Muszę się jeszcze trochę wdrożyć w w suple jak to wykonać dziękuję za pomoc 😄

Return to “Pomysły i koncepcje”