Nie dam rady sterować roletą, położenie nie jest aktualizowane. Dodam że serwer MQTT działa poprawnie w nasłuchu brokera po uruchomieniu rolety otrzymuję:
Wiadomość 3 otrzymana w /raw/esp8266roletapl/2695724/out o godzinie 19:58:
{
"set": 7,
"position": 7
}
QoS: 0 - Retain: false
Jeżeli nie pokazuje pozycji to masz cos źle wpisane.
Ściągnij sobie program http://mqtt-explorer.com podłącza do swojego MQTT będziesz miał rozeznanie co do ustawienia topic
Jak połączysz z mqtt HA to kliknij w New Subscription i dodaj swój temat odpowiedzialny za pozycje żaluzji, wysteruj swoja żaluzje i zobacz czy zmienia się wartość pozycji, jeżeli tu będzie Ok to znaczy ze masz jakiś błąd w template cover
Wydaje mi się że gdzieś jest błąd w tej konfiguracji, próbuję na rożne sposoby i dalej nie pokazuje stanu. Sterowanie przyciskami działa, nawet kursorem jak przeciągnę roletę to też jest sterowana. Do pełni szczęści brakuje jednak żeby pokazywało ten stan automatycznie
Po części udało mi się rozwiązać problem lecz nie do końca. Status rolety jest pokazywany gdy wcisnę przycisk góra / dół na obrazku roleta jest zamknięta całkowicie lub otwarta. Sterowanie poprzez przesunięcie rolety również jest pokazywane i fizycznie otwiera / zamyka się do zadanej pozycji.
Lecz gdy wcisnę przycisk “Zatrzymaj” status nie jest odświeżony i zostaje na etapie 0% lub 100% w zależności kliknięcia przycisku góra dół lub gdy ręcznie ustawię pozycję rolety np. na 40% otwarcia roleta uruchamia się do zadanej pozycji lecz gdy wcisnę “Zatrzymaj” pozostaje na karcie na 40% mimo tego że fizycznie zatrzymało się na np. 30%
Położenie mam wyświetlane normalnie i odświeżane jest na bieżąco stop/start nie zawiesza % pokazywanego położenia. U mnie 100% to jest otwarcie a 0% jest zamknięcie.
Jaki masz w ogóle sterownik?
Zamieszczam screena z MQTT Explorera (IN wartość którą wysyłam w celu ustawienia pozycji rolety, OUT pierwsza wartość set - zadana pozycja natomiast position - zmienia się na wartość ustawioną w SET dopiero gdy roleta osiągnie zadane położenie
Ten parametr w kodzie masz na true boolean saveItNow = false; //If true will store positions to SPIFFS
int path = 0; //Direction of blind (1 = down, 0 = stop, -1 = up)
int setPos = 0; //The set position 0-100% by the client
long currentPosition = 0; //Current position of the blind
long maxPosition = 2000000; //Max position of the blind. Initial value
boolean loadDataSuccess = false;
boolean saveItNow = false; //If true will store positions to SPIFFS
bool shouldSaveConfig = false; //Used for WIFI Manager callback to save parameters
boolean initLoop = true; //To enable actions first time the loop is run```
Zobacz zdjęcie. Roleta była całkowicie opuszczona do dołu. Wcisnąłem przycisk otwierania rolety (strzałkę do góry). Wartość w shutter-card wskoczyła od razu na 100%. Po około 3 sekundach wcisnąłem STOP.
Wskaźnik po lewej stronie (sensor) wskazał prawidłowe położenie rolety natomiast w shutter-card rolety się nie zaktualizował i pokazuje zadane położenie rolety a nie wziął pod uwagę że nacisnąłem STOP w trakcie otwierania.
Powyższy przykład nie bardzo działa w tej formie. Na razie odpuszczę sobie dalsze próby. Na chwilę obecną zablokowałem przycisk stop. Można sterować przyciskami góra/dół lub ręcznie klikając na pozycję rolety.
Dzięki bardzo za pomoc, wirtualne zimne duże piwko dla Ciebie Artur !
PS. Jak masz zrobione odświeżanie MQTT po restarcie centralki - tak żeby pobrało statusy MQTT i zaktualizowało stany na HA czy to przycisków czy opisanej wyżej rolety ?
Dla osób które by chciały wykonać taki projekt dodam żeby zamiast biblioteki Stepper_28BYJ_48.h zastosowały Stepper.h. Na tej pierwszej silnik nie dał rady podnosić / opuszczać większej rolety. Dodatkowo zmodyfikować trzeba: