Zaluzje fasadowe i przełącznik BSEED_TS0601_cover

nie , tutaj suwakiem też moge sobie suwać i nic z tego.

Edit:

przesuwam, klikam wywołaj usługę i cisza.

A wybierasz odpowiednią żaluzję ?
Po mqtt ?


A wywołując CLOSE lub OPEN z usług HA działa?


Sprawdź w logach Z2M czy publikowane są tematy dla twojej żaluzji

kiedy w Z2M wyklikam open / close to rzuci logiem…

Wejdź w Ustawienia → Urządzenia oraz usługi kliknij w MQTT
Screenshot - 10.07.2023 , 20_05_23
KONFIGURUJ


Uzupełnij topic nazwą swojej żaluzji, i wpisz tak jak na rysunku

zigbee2mqtt/Ster_z_zaluzje/set
{
"position": 11


}


Pozbądź się spacji w nazwie swojej żaluzji

pozbyłem się spacji w nazwach, wykonałem te kroki w Z2M jak pokazałeś powyżej kliknąłem “opublikuj” i cisza.

Serio, chyba mam te przełączniki jakieś wybrakowane… trochę działają ale nie tak jak deklarują.

dziwne jest to, że nie rzuca jakoś błędem tylko po prostu nie reaguje. dziwne jest, że zawsze trzyma stan “open” nawet kiedy jako ostania akcja było “close”.

To typowe objawy problemów z zasięgiem sieci Zigbee lub jego stabilnością, nie wiem jakiego koordynatora używasz ale poziom sygnału nie należy do “najwyższych”:
image

To akurat może sugerować, że moduł jest wspierany w Z2M ale jego wsparcie dotyczy “starego sprzetu” (starego hardware/firmware), prawdopodobnie masz nowy moduł z nowymi podzespołami i są różnice co objawia się takimi efektami w działaniu. Tak się zdarza, sam tego doświadczyłem, do tej pory nie udało się rozwiązać wsparcia dla nowych ściemniaczy OTX mimo, że są poprawnie wykrywane w Z2M, o dziwo z bramką TuYa działają poprawnie, w ZHA także poprawnie a w Z2M d…pa :frowning: , tak niestey to bywa z Zigbee.

koordynator jest dobry i raczej nie ma tu z nim problemu. Żaluzja nie łączy się bezpośrednio do niego tyko skacze przez inne elementy, czasem ma 27 a czasem 80, zależy kto gdzie chodzi po domu, nie wiem… co jest włączone itd.

sam domek też jest większy niż mieszkanie w bloku i ma kondygnacje. Wiem do czego zmierzasz, bo miałem taki graniczny zasieg do jednego z grzejników i czasem działał jak chciał ale doszło kilka switchy w gniazdkach gdzieś po drodze i pięknie sie ustabilizowało.

No nic, jak to z Zigbee bywa czasem trzeba poczekać :wink: więc wrócę z prośbą o pomoc w zbudowaniu skryptu NR z pauzą czasową poomiędzy uruchomieniem opuszczania a zatrzymaniem opuszczania. Coś nie mogę tego ułożyć żeby mi zadziałało.

A komendy Open | Close działają w NR?

tak, mogę poprzez NR uruchomić ruch żaluzji w wybranym kierunku ale potem musze wydać kolejną komendę “stop” jeżeli nie chcę aby doszły do krańcówki.
Odczytam w NR position również prawidłowo, jedynie pomimo podpowiedzi kolegów tutaj wariant uruchomienia do zadanej wartości position nie rzucając błędu, teoretycznie wysyłając tą komendę nie ruszy jednak żaluzji.

Jeżeli pozycja nie działa w usługach HA to nie będzie działać też w NR.

Możesz utworzyć sobie pomocników w HA typu input_button.100
pozycja np. 10 20 30 itd.

Karta HA
Screenshot - 11.07.2023 , 15_34_54

Reszta w NR

Po wciśnięciu przycisku w HA
Screenshot - 11.07.2023 , 15_43_53

Screenshot - 11.07.2023 , 15_37_20

Żaluzja zacznie przemieszczać się w wybranym kierunku, następnie zatrzyma się po zadanym czasie w
Screenshot - 11.07.2023 , 15_38_41

Kod:

[{"id":"7667a88ea78f5ab6","type":"switch","z":"6d8bd611fc040349","name":"Opening | Closing","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"opening","vt":"str"},{"t":"eq","v":"closing","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":1030,"y":240,"wires":[["e79790574d88f8d0","8a28f80f1a472bed"],["5f30aeff9fa73fa0","3c8121b45a4cee42"]]},{"id":"191d95aca9c57b27","type":"server-state-changed","z":"6d8bd611fc040349","name":"","server":"1be24b09.4dad55","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"cover.ster_z_zaluzje","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":760,"y":240,"wires":[["7667a88ea78f5ab6"]]},{"id":"5f30aeff9fa73fa0","type":"delay","z":"6d8bd611fc040349","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1240,"y":280,"wires":[[]]},{"id":"e79790574d88f8d0","type":"delay","z":"6d8bd611fc040349","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1240,"y":180,"wires":[[]]},{"id":"8a28f80f1a472bed","type":"debug","z":"6d8bd611fc040349","name":"debug 34","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1040,"y":100,"wires":[]},{"id":"3c8121b45a4cee42","type":"debug","z":"6d8bd611fc040349","name":"debug 35","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1080,"y":360,"wires":[]},{"id":"4f7939c2cb95084c","type":"server-state-changed","z":"6d8bd611fc040349","name":"","server":"1be24b09.4dad55","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_button.100","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":570,"y":540,"wires":[["dbf538aba77dda79","b4bfde1e626e79fd"]]},{"id":"d827dd8342577131","type":"server-state-changed","z":"6d8bd611fc040349","name":"","server":"1be24b09.4dad55","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_button.50","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":590,"y":620,"wires":[["717c5f3ebbab5188"]]},{"id":"717c5f3ebbab5188","type":"delay","z":"6d8bd611fc040349","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":820,"y":620,"wires":[[]]},{"id":"dbf538aba77dda79","type":"delay","z":"6d8bd611fc040349","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":800,"y":540,"wires":[["49fda9f66552d7c4"]]},{"id":"b4bfde1e626e79fd","type":"api-call-service","z":"6d8bd611fc040349","name":"","server":"1be24b09.4dad55","version":5,"debugenabled":false,"domain":"cover","service":"close_cover","areaId":[],"deviceId":[],"entityId":["cover.ster_z_zaluzje"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":870,"y":480,"wires":[[]]},{"id":"49fda9f66552d7c4","type":"api-call-service","z":"6d8bd611fc040349","name":"","server":"1be24b09.4dad55","version":5,"debugenabled":false,"domain":"cover","service":"stop_cover","areaId":[],"deviceId":[],"entityId":["cover.ster_z_zaluzje"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1070,"y":560,"wires":[[]]},{"id":"1be24b09.4dad55","type":"server","name":"Home Assistant_2022","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

delay musisz dopasować do pozycji którą chcesz osiągnąć.

Bez sprawdzania pozycji tej żaluzji, wszystko będzie tylko protezą, ale można użyć zamiast przycisków “100”, “50”, pomocnika input_number i znając czas całego cyklu, zrobić coś na zasadzie suwaka, gdzie każda pozycja odzwierciedla czas pracy, po którym następuje stop.
3
Zasada jest prosta, ustawienie 5 jest nadpisywane w msg.delay i taki czas w sekundach pracuje silnik.
Przykładowy flow poniżej, ale nie należy go traktować jako gotowca.


flows.json (3,1 KB)

no i fajny pomysł! :wink:
na razie zrobiłem testowo scenariusze na 10 sekund w górę i 10 sekund w dół.
działają.
Teraz jest jeszcze utrudnienie. WREDNE. :slight_smile:
to są żaluzje fasadowe, więc posiadają łopaty ( takie 10 cm szerokości) kiedy żaluzja jedzie do góry zawsze jedzie na łopatkach ustawionych poziomo (czyli pełny prześwit) , kiedy jedzie w dół zawsze jedzie na żaluzjach ustawionych w pion ( czyli zero prześwitu) . Dowcip jest taki, że puszczając żaluzje do góry z pozycji łopat w pionie silnik pierwsze kilka sekund powoli obraca łopatami aż do ustawienia ich w poziom i wówczas dostaje speeda i ciągnie je w górę już szybciej.
Analogicznie kiedy z otwartych łopat jedziemy w dół… kilka pierwszych sekund silnik powoli przestawia je do pionu i rusza z kopyta potem w dół.

muszę porobić warianty, które będą posiadały jakoś informacje o ostatnim ustawieniu czyli czy żaluzja jechała w górę ostatnio czy w dół i czy więcej niż 5 sekund ( tyle mniej więcej trwa obrót łopat) i wówczas miałbym info czy łopaty są otwarte w danej pozycji czy zamknięte.

chyba chaos tu zrobiłem z tym opisem ale może ktoś ogarnie z czym się mierzę :slight_smile:

testowo poukładałem to tak.

Powodzenia na polu walki. :pray:

Skoro suwak położenia (pozycja) się zmienia to można ją cyklicznie odczytywać (?).
Wtedy start/stopem da się sterować do wyznaczonej pozycji.

Zrób próbę dla Twojej żaluzji - debug ustaw na complete msg object
zaluzja
… następnie uruchom żaluzje i podczas ruchu sprawdź co dostajesz

HA może filtrować i nic możesz nie zobaczyć, lepiej byłoby to sprawdzić w MqttExplorer.
Jeszcze lepiej to w NR zacznij używać

Będzie Ci łatwiej

zrobiłem ten test.
jest tak, że kiedy puszczę co sekundę badanie stanu to wraca mi ciągle ta sama wartość, pomimo, że żaluzja pojechała dalej.
w moich skryptach robie delay i pobieram pozycję i wówczas pojawia się już zaktualizowana.
Ale nie wiem czy to przez delay czy przez to, że wcześniej poszło stop i ruch się zatrzymał.

Nie umiem tego sprawdzić w MqttExplorer bo nigdy tego komponentu nie uzywałem…

Zrobiłem dopisek - gdybyś nie zauważył :slight_smile:

tak, juz doinstalowałem, widze dodatkowe nody na liście i teraz kombinuję co z tym dalej robić :smiley: może mnie olśni

trochę tak na czuja lecę :smiley: :smiley: :smiley: na codzień w bazach danych siedzę i moim językiem SQL, a to wygląda jak coś co miałem naście lat temu do Lego NTX :slight_smile: tyle, że sie musze naumieć :smiley:

pytanie, bo tam w nodzie od mqtt musze podać serwer mqtt i nie mam go na liście rozwijanej. Jak toto odszukać i tam dodać?

kliknij w ołówek i go dodaj wypełniając swoimi danymi

ok, czyli definiuję.
user i password też tutaj definiuję? czy to sie podaje z ustawień w innym miejscu? bo jechałem kiedyś z jakiegoś kreatora jak stawiałem HA a potem to już zawsze z backupów :wink: , nie pamiętam jak to leciało :smiley:

Jeśli Mqtt masz jako dodatek to IP jest takie same jak HA a dane logowania chyba można odczytać z konfiguracji. To są te same dane jak przy konfiguracji zigbee. Nie mam jak Ci tego pokazać.