ESP8266 ile modbus enerji metre okuma denemeleri ve custom component macerası
- Şehir
- Ağrı
- Üyelik süresi
- 5 gün
- İtibar
- 14
- Konu sayısı
- 1
- Mesaj sayısı
- 4
- Beğeniler
- 7 / 4
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Son birkaç haftadır Ağrı'da evimin total enerji tüketimini yerel olarak takip etmek için SDM120 modbus enerji metreyle bir şeyler karıştırmaya çalışıyorum. Standart modbus_controller component'i iş gördü ama her saniye polling yapınca ESP8266 stability'den düşüyor, watchdog timeout aldım. Workaround olarak polling interval'i 5 saniyeye çıkardım, bu sefer de anlık power spike'ları kaçıyor. Bir de edge case var şöyle ki voltaj registerını okurken bazen 0xFFFF dönüyor sanırım RS485 to TTL converter ucuz olduğu için sinyal integrity kötü. Benim tarafta MAX485 yerine RS485 isolation modülü denemek var sırada bakalım o noise'i temizleyecek mi. Custom component yazmaya da başladım aslında,standart component'in handle etmediği bir kaç register var,energy total için 0x0156 adresini manuel okuyorum. Home Assistant tarafında sensor refresh latency 8 saniye civarı, kabul edilebilir ama daha iyi olabilir. Şimdilik protobuf API yerine WiFi üzerinden çalışıyorum.
- Şehir
- Erzurum
- Üyelik süresi
- 5 gün
- İtibar
- 80
- Konu sayısı
- 2
- Mesaj sayısı
- 14
- Beğeniler
- 40 / 14
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
ESP8266'da 1 saniye polling watchdog yiyor, ESP32'ye geçince rahatlar bence. SDM120 zaten modbusta sıkıntı çıkarmaz
- Şehir
- İstanbul
- Üyelik süresi
- 5 gün
- İtibar
- 36
- Konu sayısı
- 1
- Mesaj sayısı
- 12
- Beğeniler
- 18 / 33
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
ESP32'ye geçince PlatformIO ile custom component daha sürdürülebilir olur, 0xFFFF dönen registerı lambda'da geçersiz sayıp filtrelemek pratikte işe yarıyor.
- Şehir
- Kocaeli
- Üyelik süresi
- 4 gün
- İtibar
- 86
- Konu sayısı
- 0
- Mesaj sayısı
- 13
- Beğeniler
- 43 / 20
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Lambda filtresi işe yarar ama 0xFFFF'in asıl sebebi hatta bence; 120 ohm terminasyon direnci ekle A/B kablosunu kısa tut, toprağı da ortakla.
- Şehir
- İzmir
- Üyelik süresi
- 5 gün
- İtibar
- 108
- Konu sayısı
- 1
- Mesaj sayısı
- 9
- Beğeniler
- 54 / 33
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Açıkçası merak ediyorum SDM120'le bu kadar uğraş sonunda faturada gerçekten fark görüyor musunuz, yoksa sadece veri mi birikiyor?
- Şehir
- İstanbul
- Üyelik süresi
- 5 gün
- İtibar
- 36
- Konu sayısı
- 1
- Mesaj sayısı
- 12
- Beğeniler
- 18 / 33
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
SDM120 total tüketimi gösteriyor, faturayı düşürmez; cihaz bazlı ayrıştırma lazım. Veri birikince anomali yakalanıyor ama asıl kazanç orada.
- Şehir
- Edirne
- Üyelik süresi
- 5 gün
- İtibar
- 176
- Konu sayısı
- 0
- Mesaj sayısı
- 18
- Beğeniler
- 88 / 20
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
120 ohm ve toprak iyi hoş da abi motor hattının dibinden geçiyorsa 0xffff yine geöir diferansiyel hat gürültüyü sönümlemez o kadar
- Şehir
- Adana
- Üyelik süresi
- 4 gün
- İtibar
- 132
- Konu sayısı
- 2
- Mesaj sayısı
- 30
- Beğeniler
- 66 / 40
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Valla MAX485 yerine izolasyon modülü fiyat olarak ne kadar fark ettirir? Yerel kalması için sadece o modül yererli mi?
- Şehir
- İstanbul
- Üyelik süresi
- 5 gün
- İtibar
- 36
- Konu sayısı
- 1
- Mesaj sayısı
- 12
- Beğeniler
- 18 / 33
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
İzolasyon modülü MAX485'e göre 3-4 kat fiyat farkı yapar, tek başına yetmez. 120 ohm terminasyon ve toprak ortaklığı olmadan 0xFFFF yine dönebilir.
- Şehir
- Muğla
- Üyelik süresi
- 5 gün
- İtibar
- 2
- Konu sayısı
- 0
- Mesaj sayısı
- 7
- Beğeniler
- 1 / 17
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Katılıyorum; ben de component'i ayrı repoda tutup PlatformIO'da pinliyorum, polling'i ana looptan ayırınca 0xFFFF filtresi de rahat çalışıyor.
- Şehir
- Erzurum
- Üyelik süresi
- 2 gün
- İtibar
- 24
- Konu sayısı
- 1
- Mesaj sayısı
- 11
- Beğeniler
- 12 / 8
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@lifepo_merakli93 doğru motor hattı dibinde diferansiyel de kurtarmıyor. Ben olsam ayrı kanaldan blendajlı twisted pair çekerdim, toprağı tek uçtan.
- Şehir
- Diyarbakır
- Üyelik süresi
- 5 gün
- İtibar
- 16
- Konu sayısı
- 0
- Mesaj sayısı
- 10
- Beğeniler
- 8 / 40
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@pil_kurdu97 yazdı (#10):
Katılıyorum; ben de component'i ayrı repoda tutup PlatformIO'da pinliyorum, polling'i ana looptan ayırınca 0xFFFF filtresi de rahat çalışıyor.
Aynen pinli repo CI'da da aynı sürümü garanti ediyor
- Şehir
- Edirne
- Üyelik süresi
- 5 gün
- İtibar
- 176
- Konu sayısı
- 0
- Mesaj sayısı
- 18
- Beğeniler
- 88 / 20
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Aynen blendaj tek uçtan doğru iş izolasyon modülü de toprak potansiyeli farkını kesiyor. senin blendaj toprağını hangi uca verdin inverter tarafına mı
- Şehir
- Adana
- Üyelik süresi
- 4 gün
- İtibar
- 132
- Konu sayısı
- 2
- Mesaj sayısı
- 30
- Beğeniler
- 66 / 40
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@emre_tuncer yazdı (#9):
İzolasyon modülü MAX485'e göre 3-4 kat fiyat farkı yapar, tek başına yetmez. 120 ohm terminasyon ve toprak ortaklığı olmadan 0xFFFF yine dönebilir.
@emre_tuncer izole RS485 modülleri genelde hattın diğer tarafı için ayrı izole DC-DC de ister yoksa toprak farkını yine görüyoruz değil mi?
- Şehir
- Muğla
- Üyelik süresi
- 5 gün
- İtibar
- 2
- Konu sayısı
- 0
- Mesaj sayısı
- 7
- Beğeniler
- 1 / 17
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@akilli_ev_yeni yazdı (#14):
@emre_tuncer izole RS485 modülleri genelde hattın diğer tarafı için ayrı izole DC-DC de ister yoksa toprak farkını yine görüyoruz değil mi?
Aynen DC-DC yoksa izolasyon yarım kalır, toprak farkı aynen durur.
- Şehir
- Manisa
- Üyelik süresi
- 4 gün
- İtibar
- 96
- Konu sayısı
- 2
- Mesaj sayısı
- 28
- Beğeniler
- 48 / 34
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@pil_kurdu97 aynen izole DC-DC yoksa o 0xFFFF yine gelir. Ben de hattı blendajlı kabloyla ayırma taraftarıyım, toprak tek uçtan.
- Şehir
- Balıkesir
- Üyelik süresi
- 5 gün
- İtibar
- 20
- Konu sayısı
- 0
- Mesaj sayısı
- 6
- Beğeniler
- 10 / 33
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
Aynen, lambdayı hostta sahte frame ile test etmek iyi fikir; 0xFFFF'li registerı pytestte besleyip
- Şehir
- Ağrı
- Üyelik süresi
- 5 gün
- İtibar
- 14
- Konu sayısı
- 1
- Mesaj sayısı
- 4
- Beğeniler
- 7 / 4
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@dusuk_voltaj18 yazdı (#17):
Aynen, lambdayı hostta sahte frame ile test etmek iyi fikir; 0xFFFF'li registerı pytestte besleyip
@dusuk_voltaj18 sahte frame fikri aklıma yattı, hostta pytest ile 0xFFFF besleyip filtrenin gerçekten devreye girdiğini görmek lazım
- Şehir
- Edirne
- Üyelik süresi
- 5 gün
- İtibar
- 176
- Konu sayısı
- 0
- Mesaj sayısı
- 18
- Beğeniler
- 88 / 20
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@tuba_tekin yazdı (#18):
@dusuk_voltaj18 sahte frame fikri aklıma yattı, hostta pytest ile 0xFFFF besleyip filtrenin gerçekten devreye girdiğini görmek lazım
@tuba_tekin kısa frame timeout dalını da ekle abi
- Şehir
- Ağrı
- Üyelik süresi
- 5 gün
- İtibar
- 14
- Konu sayısı
- 1
- Mesaj sayısı
- 4
- Beğeniler
- 7 / 4
- Çözüm sayısı
- 0
- Rehber sayısı
- 0
- Proje sayısı
- 0
@lifepo_merakli93 timeout dalını eklemek mantıklı da hostta onu gerçek zamanla sınamak yanıltıcı olur; pyserial mock üzerinde yapay gecikme verince loop zamanlaması ESP8266'daki gibi davranmıyor. Tecrübeme göre daha deterministik yol, read timeout değerini enjekte edilebilir bırakıp sahte frame'i bilerek yarım kesmek, böylece dalın gerçekten çalıştığını görüyorsun.
Bu konuyu bilen birini tanıyor musun?
Bağlantıyı paylaş; soru doğru kişiye ulaşsın.