Jeżeli chodzi o korektę pomiaru temperatury, to od wersji softu 7.1.2 możliwa jest korekta w konsoli na module.
Należy wejść na nasz moduł po adresie IP i w konsoli wpisać polecenie TempOffset oraz wartość korekty np TempOffset -5 oznacza, że czujnik temperatury będzie podawał pomiar o 5 niżej.
Jeżeli chcemy przywrócić oryginalny pomiar wpisujemy TempOffset off
EDIT 23.03.2020 Od wersji softu 8.2 jest już możliwa korekta wilgotności w konsoli w taki sam sposób jak opisany wyżej z tym, że w konsoli należy wpisać polecenie HumOffset źródło: https://github.com/arendst/Tasmota/pull/7934 więc poniższe nie aktualne
Jeżeli chodzi o korektę pomiaru wilgotności to musimy stworzyć wirtualny sensor bazujący na sensorze który chcemy korygować.
Opis:
Na bramce, w folderze AIS:
w pliku configuration.yaml robimy wpis:
sensor: !include sensor.yaml
tworzymy plik sensor.yaml i dodajemy do niego następując wpis:
następnie w kodzie podmieniamy: sensor.sonoff_garderoba_am2301_humidity = nasz sensor bazowy, na podstawie której tworzymy wirtualny sensor float - to wartość o ile korygujemy nasz sensor round - to ilość wyświetlanych miejsc po przecinku nowego sensora
** friendly_name** - własna nazwa nowego sensora
Efekt poniżej, czyli pierwszy bazowy (zawyża pomiar o 3,8), drugi to nasz wirtualny sensor.
Do rozwiązania jest tylko jeden drobny problem, po resecie bramki utworzony sensor pokazuje przez chwilę wartość korekty. Dzieje się to dlatego, że bazowy sensor jeszcze się nie załadował do bramki więc korektę odejmuje od 0. Tak to wygląda na wykresie.
Każdy pik na wykresie to reset bramki
Ktoś ma pomysł jak to rozwiązać ?
Korekta jest mi potrzebna, gdyż po kalibracji czujników DHT21/22 okazało się że nie które zawyżają pomiar o 15% !!
Rozwiązałem problem dla wilgotności “regułą” w konsoli Tasmoty. Ja do testów dodałem 20%, Ty odejmij.
Robimy tak:
w konsoli wpisujemy poniższą regułę
Rule1
on tele-AM2301#humidity do backlog var1 %value%; add1 20; event sendtemp endon
on event#sendtemp do publish TWOJ TOPIC/stat/humidity %var1% endon
zamiast słowa TWOJ TOPIC wpisz topic jaki widzisz w konsoli
teraz jeszcze aktywujemy regułę komendą Rule1 1
Do brokera MQTT teraz idzie jeszcze jakby dodatkowy sensor tylko, że ze skorygowaną wartością.
Nowy sensor musimy dodać ręczenie do AIS poprzez dodanie poniższego wpisu w pliku sensor.yaml
- platform: mqtt
name: “wilgotnosc2”
state_topic: “Sypialnia_grzejnik_F98FEA/stat/humidity”
value_template: “{{ value | round(0) }}”
unit_of_measurement: “%”
Możemy do naszej karty dodać nowy sensor z odpowiednio skorygowaną wartością.
Nie pokazuje wartości po przecinku, bo ograniczyłem to wpisem round(0).
próbuje zrobić ale coś nie działa
zrobiłem Rule1 on tele-AM2301#humidity do backlog var1 %value%; add1 -4; event sendtemp endon on event#sendtemp do publish Sonoff_Basic_Sypialnia_TV_CDB405/stat/humidity %var1% endon
efekt konsoli prawidłowy
W końcu doszedłem czemu mi nie działało, skopiowałem powyższe, a wstawiłeś to jako tekst nie sformatowany i zrobiły się inne " i dlatego nie szło do bramki
winno być tak: - platform: mqtt name: "wilgotnosc2" state_topic: "Sonoff_Basic_Sypialnia_TV_CDB405/stat/humidity" value_template: "{{ value | round(1) }}" unit_of_measurement: "%"
Template otrzymuje stan nieznany zamiast wartości liczbowej, więc najpierw sprawdź czy źródło ma wartość.
No i zamiast float powinno być float(0) (ewentualnie zamiast 0 wstaw tam jakąś spodziewaną wartość lub wręcz jakąś nieprawdopodobną by łatwo wychwycić nieprawidłowość w działaniu).
Tak, ale najpierw by wypadało sprawdzić czy dysponujesz danymi wejściowymi, bo unknown nie jest liczbą.
Dodatkowo zapisałbym 5 jako 5.0 skoro to float, a nie int.
Niestety jak wielu też “nie czuję” template’ów