erdems98
@erdem_s98 · Mitglied seit August 2025
Veri analisti · su ve atık su · sahada 17 yıl
- Themen
- 2
- Antworten
- 8
- Punkte
- 0
Erstellte Forenantworten
Von English mit KI übersetzt ·
Seit Version 2.2.0 gibt es auf der Geräteseite einen Log-Tab. Sind das dieselben Daten wie bei der resourceType-Abfrage oben?
Since 2.2.0 the device page has a Log tab. Same data as the resourceType query above?
Von Türkçe mit KI übersetzt ·
Mit dem komplementären Filter ist die Verzögerung fast verschwunden, das Team hatte ohnehin schon einen MPU6050 gefunden. Wir haben auch die Kalibrierung gemacht, der Unterschied links-rechts ist weg. Beim Grafik-last ist auch der 180-Unsinn verschwunden. Gut, dass ich diesen Beitrag gelesen habe, bevor ich Hakan Beys Vorschlag ausprobiert habe 🙂
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 🙂
Von Türkçe mit KI übersetzt ·
Ja, es ist der Mittelwert der letzten 20 Messwerte. Bei 10 Hz dauert es 2 Sekunden.
Evet, son 20 okumanın ortalaması. 10 Hz’de 2 saniye ediyor.
Von Türkçe mit KI übersetzt ·
Der Child-Device bekommt den Befehl, und die Stelle, an der du hängst, ist die ESP32-Seite. Ein Befehl an ein Gerät hinter dem Gateway kommt über v1/gw/rpc beim Gateway an, Änderungen an Shared Attributes kommen über v1/gw/attributes. Dein Code hört wahrscheinlich nur auf v1/rpc/req/+, und das gilt für die eigenen Befehle des Gateways. Deshalb bleibt der Befehl im Status Sent. Bei den Wasserstationen bin ich genau an derselben Stelle hängengeblieben.Das habe ich gemacht:
- Den Befehl light.set zum Profil der Dimmer hinzugefügt (nicht zu dem des Gateways), Basic Tier, Parameter level (Number, 0-100).
- In der Slider-Karte: Run a command: Device = atolye-3 Child, Command = light.set, für level The control’s value. Den Slider 0-100 wandle ich auf der ESP32-Seite in 0-255 um.
- Den Slot Current value mit der Level-Telemetrie desselben Child verbunden, damit die Karte den echten Wert des Dimmers anzeigt.
- Für das Licht habe ich Ask before running ausgeschaltet, damit bei jedem Verschieben keine Bestätigung abgefragt wird.
Auf der ESP32-Seite abonnierst du nach jeder Verbindung v1/gw/rpc. Gib die eingehende Nachricht zuerst auf der seriellen Schnittstelle aus und schau dir ihre Struktur an. Daraus bestimmst du, für welches Child sie gedacht ist, und schreibst dann per 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));
}
}
Die Regeln für Kontrollkarten findest du hier: 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ı
Von Türkçe mit KI übersetzt ·
+1. Die Standardlaufzeit des Schlüssels beträgt 90 Tage, trag sie in den Kalender ein, sonst erscheint die Seite nach drei Monaten stillschweigend leer.
+1. Anahtarın varsayılan süresi 90 gün, takvime yaz, yoksa üç ay sonra sayfa sessizce boş gelir.
Von Türkçe mit KI übersetzt ·
Der Port ist eine Sache für sich: Wenn du das Gerätetoken auf die Seite packst, kann jeder, der den Quelltext der Seite ansieht, mit diesem Token Daten im Namen deines Geräts veröffentlichen. Die Gewächshaustemperatur zeigt 80 Grad an, deine Mama dreht durch 🙂 Hol das Token da raus.
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.
Von Türkçe mit KI übersetzt ·
Die Rechnung hat alles sehr klar gemacht, danke. Den am Fenster habe ich mit einem 0,5-W-Panel + 1-F-Superkondensator + BQ25570 aufgebaut, seit zwei Wochen ohne Batterie; supercap_v sinkt nachts nicht unter 3,9. Bei den anderen bin ich auf NTP + stündlichen Batch-Versand umgestellt, die Steigung von battery_v ist von 25 mV pro Tag auf 6 mV pro Tag gefallen. Die Idee mit dem Bienenstock und der Waschmaschine habe ich begraben 🙂
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 🙂
Von Türkçe mit KI übersetzt ·
Die Uhr ist nicht synchron, aber ich verwende überhaupt kein NTP. Irgendwo hatte ich gelesen, dass es verboten ist, ts-Werte zu erfinden.
Saat senkron değil ama, NTP hiç yapmıyorum. ts uydurmak yasak diye okumuştum bir yerde.

