Potrzebuje zrobić odczyt stanu naładowania baterii li-ion. Pomiar odbywa się przez dzielnik na rezystorach 4,2 * (100k / (100k + 330k)). Domoticz odbiera dane , ale pytanie jak wyświetlić je jako wartość napięcia w V?
Custom sensor lub napiecie
Ale w ten sposob to chyba zaprezentuje dane nominalne (od 1-1000), a mnie chodzi o prezentacje napięcia rzeczywistego baterii (czyli przy uwzględnieniu dzielnika).
A jaki soft uzywasz
Tasmote. Do domoticza raportuje regułą
on analog#a0div10 do publish domoticz/in {"idx":134,"svalue":"%value%"} endon
Działa ale pokazuje wartość nominalną oczytywaną przez wejscie analogowe np. 996 , a ja potrzebuje odczyt rzeczywisty na baterii czyli 4,05V
Nie pomoge w tasmocie. Nigdy nie uzywalem. Moze ktos pomoze. Natomiast w AFE jest mozliwosc ze to przelicza. W espeasy tez. Mysle ze potrzebna tam jest regula ktora to przeliczy.
Niestety AFE nie ma funkcji głębokiego usypiania, a przy pracy na baterii to niezbędne. Może ktoś jeszcze podpowie jak to odpowiednio przedstawić w domoticzu.
to chyba nie takie proste ale mozliwe;)
jezeli Cie dobrze zrozumialem to zalozyles, ze napieciu 4.2V odpowiada m/w 3.3V po dzielniku a to wartosci 1024, teraz wystarczy to co jest publikowane na wyjsciu analogowym przemnozyc przez 0,00419921 (przy powyzszych zalozeniach) otrzymasz wynik w V. Jezeli chcesz zrobic to w Tasmocie to trzeba sie z ta strona tasmota-matma zaprzyjaznic i chyba dokonac wlasnej kompilacji softu, przy czym nalezy jeszcze znalezc formule obcinajaca miejsca po przecinku.
btw ja jako len wyrzucilbym te wartosci do grafany i tam w polu select dodalbym math i mial ladny wykres w voltach;)
ewentualnie moze jest kafelek w Domo, ktory pozwala na mnozenie, ktorego zwyczajnie tak normalnie sie nie uzywa, oczywiscie zrobisz to przez bash/Lua/DzV, pewnie sa jakies juz gotowe skrypty.
w sumie natchnales mnie abym w koncu naprawil cisnienie z czujnikow Xiaomi, przy okazji chyba rozwiazalem Twoj problem;)
return {
active = true,
on = {
timer = {'every 10 minutes'}
},
logging = {
level = domoticz.LOG_ERROR
},
execute = function(domoticz)
local voltage = domoticz.devices('Nazwa_czujnika_odbierajacego_dane_bezposrednio_z_analogu').voltage lub custom * 0,00419921
domoticz.devices('Nazwa_nowego_czujnika_custom').update(0, domoticz.round(voltage))
end
}
tworzysz nowy kafelek np. custom labelka Axis jako V
powyzszy kod do DzVents wybierasz skrypt device
po chwili (ustaw do testu timer np 1 min) w nowym kafelku powinienes miec przeliczone na V
wartosc 0,00419921 jest poprawnie policzona ale przy zalozeniu idealnych rezystorow 100/330 kOhm (co niemozliwe), czyli mierzysz i jeszcze raz liczysz;)
Tasmote. Do domoticza raportuje regułą
on analog#a0div10 do publish domoticz/in {"idx":134,"svalue":"%value%"} endon
Działa ale pokazuje wartość nominalną oczytywaną przez wejscie analogowe np. 996 , a ja potrzebuje odczyt rzeczywisty na baterii czyli 4,05V
Takie trzy linijki wpisane w consoli tasmoty załatwiają sprawę
rule1 on tele-analog#A0 do backlog var1 %value%; mult1 0.0041015625; event sendbatt endon
rule1+ on event#sendbatt do publish domoticz/in {"idx":134,"nvalue":0,"svalue":"%var1%"} endon
rule1 1
pierwsza tworzy regułę która przelicza dane (wg. zadanego mnożnika), druga wysyła wynik do domoticza (wpisać odpowiedni "idx"), trzecia uruchamia regułę.
Sprawdzone - działa.