erdems98
@erdem_s98 · Membre depuis août 2025
Veri analisti · su ve atık su · sahada 17 yıl
- Sujets
- 2
- Réponses
- 8
- Points
- 0
Toutes mes réponses sur les forums
Traduit de English par IA ·
Depuis la version 2.2.0, la page de l’appareil dispose d’un onglet Log. Ce sont les mêmes données que la requête resourceType ci-dessus ?
Since 2.2.0 the device page has a Log tab. Same data as the resourceType query above?
Traduit de Türkçe par IA ·
Avec le filtre complémentaire, le retard a presque disparu, et l’équipe avait de toute façon déjà trouvé un MPU6050. Nous avons aussi fait la calibration, la différence gauche-droite a disparu. En faisant last sur le graphique, le problème du 180 a disparu aussi. Heureusement que j’ai lu cet article avant d’essayer la suggestion de Hakan Bey 🙂
Tamamlayıcı filtre ile gecikme neredeyse kayboldu, ekip bir MPU6050 bulmuştu zaten. Kalibrasyonu da yaptık, sağ-sol farkı gitti. Grafikte last yapınca 180 saçmalığı da bitti. Hakan Bey’in önerisini denemeden önce bu yazıyı okumuş olmam iyi oldu 🙂
Traduit de Türkçe par IA ·
Oui, c’est la moyenne des 20 dernières mesures. À 10 Hz, cela prend 2 secondes.
Evet, son 20 okumanın ortalaması. 10 Hz’de 2 saniye ediyor.
Traduit de Türkçe par IA ·
La commande arrive bien au child, et le point bloquant se situe côté ESP32. Une commande destinée à un appareil derrière la passerelle descend vers la passerelle via v1/gw/rpc, et les changements d’attributs partagés passent par v1/gw/attributes. Ton code n’écoute probablement que v1/rpc/req/+, qui concerne les commandes propres à la passerelle. C’est pour ça que la commande reste à Sent. Je suis tombé exactement sur le même problème avec les stations d’eau.Voici ce que j’ai fait :
- Ajouté la commande light.set au profil des dimmers (et non à celui de la passerelle), niveau Basic, paramètre level (Number, 0-100).
- Sur la carte curseur : Run a command : Device = child atolye-3, Command = light.set, pour level La valeur du contrôle (The control’s value). Je convertis le curseur 0-100 en 0-255 côté ESP32.
- Lié le slot Current value à la télémétrie level de ce même child, pour que la carte affiche la vraie valeur du dimmer.
- Pour la lumière, j’ai désactivé Ask before running, pour ne pas demander de confirmation à chaque glissement.
Côté ESP32, après chaque connexion, abonne-toi à v1/gw/rpc. Affiche d’abord le message reçu sur le port série pour examiner sa structure, puis déduis-en pour quel child il est destiné et effectue l’écriture BLE :
mqtt.subscribe("v1/gw/rpc", 1);
void onMsg(char* topic, byte* payload, unsigned int len) {
if (strcmp(topic, "v1/gw/rpc") == 0) {
Serial.write(payload, len); // önce yapıya bak
Serial.println();
// child adını ve level'ı çöz:
// bleSetLevel(name, map(level, 0, 100, 0, 255));
}
}
Les règles des cartes de contrôle sont ici : Kontrol kartları
Child’a komut gidiyor, takıldığın yer ESP32 tarafı. Gateway arkasındaki bir cihaza gönderilen komut gateway’e v1/gw/rpc üzerinden iniyor, shared attribute değişiklikleri de v1/gw/attributes üzerinden. Senin kod büyük ihtimalle sadece v1/rpc/req/+ dinliyor, o da gateway’in kendi komutları için. Komut o yüzden Sent’te kalıyor. Ben de su istasyonlarında aynı yerde takılmıştım.
Yaptığım şey şöyle:
- light.set komutunu dimmer’ların profiline ekle (gateway’inkine değil), Basic tier, parametre level (Number, 0-100).
- Slider kartında Run a command: Device = atolye-3 child’ı, Command = light.set, level için The control’s value. 0-100 slider’ı ESP32 tarafında 0-255’e çeviriyorum.
- Current value slot’unu aynı child’ın level telemetrisine bağla, kart dimmer’ın gerçek değerini göstersin.
- Işık için Ask before running’i kapattım, her kaydırmada onay sormasın.
ESP32 tarafında her bağlantıdan sonra v1/gw/rpc‘ye abone ol. Gelen mesajı önce seri porta bastırıp yapısına bak, hangi child için geldiğini oradan çözüp BLE yazmasını yaparsın:
mqtt.subscribe("v1/gw/rpc", 1);
void onMsg(char* topic, byte* payload, unsigned int len) {
if (strcmp(topic, "v1/gw/rpc") == 0) {
Serial.write(payload, len); // önce yapıya bak
Serial.println();
// child adını ve level'ı çöz:
// bleSetLevel(name, map(level, 0, 100, 0, 255));
}
}
Kontrol kartlarının kuralları burada: Kontrol kartları
Traduit de Türkçe par IA ·
+1. La durée de validité par défaut de la clé est de 90 jours, notez-la dans votre calendrier, sinon la page s’affichera silencieusement vide au bout de trois mois.
+1. Anahtarın varsayılan süresi 90 gün, takvime yaz, yoksa üç ay sonra sayfa sessizce boş gelir.
Traduit de Türkçe par IA ·
Le port mis à part, si tu mets le token de l’appareil dans la page, quiconque regarde le code source de la page peut publier des données au nom de ton appareil avec ce token. La température de la serre affiche 80 degrés, ta mère va paniquer 🙂 Retire le token de là.
Port bir yana, cihaz token’ını sayfaya koyarsan sayfanın kaynağına bakan herkes o token ile senin cihazın adına veri basabilir. Sera sıcaklığı 80 derece görünür, annen panik olur 🙂 Token’ı oradan çıkar.
Traduit de Türkçe par IA ·
Le calcul a bien clarifié les choses, merci. J’ai monté celui près de la fenêtre avec un panneau 0,5 W + un supercondensateur 1 F + BQ25570, cela fait deux semaines sans pile ; supercap_v ne descend pas sous 3,9 la nuit. Sur les autres, je suis passé à NTP + envoi groupé toutes les heures, et la pente de battery_v est passée de 25 mV par jour à 6 mV par jour. J’ai enterré l’idée de la ruche et de la machine à laver 🙂
Hesap çok netleştirdi, teşekkürler. Pencere kenarındakini 0,5 W panel + 1 F süperkap + BQ25570 ile kurdum, iki haftadır pil yok, supercap_v geceleri 3,9’un altına inmiyor. Diğerlerinde NTP + saatlik dizi gönderime geçtim, battery_v eğimi günde 25 mV’den 6 mV’ye düştü. Petek ve çamaşır makinesi fikrini gömdüm 🙂
Traduit de Türkçe par IA ·
L’horloge n’est pas synchronisée, mais je n’utilise pas du tout NTP. J’ai lu quelque part qu’inventer des ts est interdit.
Saat senkron değil ama, NTP hiç yapmıyorum. ts uydurmak yasak diye okumuştum bir yerde.

