UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
Hej
Jak poprawnie zrobić sterowanie roletą mając do dyspozycji tylko przekaźniki (góra/dół) w OH działa bez problemu ale nie wiem jak to przepisać do HA. Mogę zrobić przycisk z automatyzacją który się wyłączy po czasie potrzebnym do zamknięcia ale jak zrobić uchylenie?
I żeby to było poprawnie a wygląd cieszył okiem, a nie np trzy oddzielne przyciski dla każdej rolety.
Trochę mało danych. Nie wiadomo jakie to "przekaźniki", czy jest zabezpieczenie przed włączeniem obu kierunków jednocześnie, pomiar prądu etc.
W HA również robisz za pomocą automatyzacji wbudowanej, lub NodeRed.
Zwykły przekaźnik NC/NO, silniki z wbudowanymi krańcówkami żadnej amperometryki nic więcej.
Jedyne zabezpieczenie przed włączenie dwóch kierunków jednocześnie to uwzględnić to w programie (tak mam na OH)
Jak zwykły przekaźnik to wgralbym esphome. Jest konfiguracja zabezpieczająca, dodał bym krańcówki i resztę opedzil w NR
Nie chcę ESP przekaźniki są wpięte zamiast przycisku ściennego. Kiedyś może wymienię silnik w roletach na bardziej Smart ale na chwilę obecną zostaje tak.
Wolałbym bez NR niby logika coś jak w PLC ale jakoś mi nie idzie wywoływanie takiego programu z poziomu panelu.
@szpila86 wybacz, nie rozumiem. Nie wiem już jak to sterujesz z OH, gdzie tu Modbus? Musi być jakiś kontroler, który wykonuje polecenia. Logika o jakiej wspominasz właśnie może być w kontrolerze.
Co do silników smart - nie wiem czy to dobry kierunek. Przejrzyj wątki choćby tu.
To odskoczę na chwilę do OH
Things:
Bridge modbus:tcp:Przekazniki "Przekaźniki strych Bridge" [ host="192.168.86.xxx", port=502, id=3] { Bridge poller PkStrych "PKS" [ start=1, length=16, refresh=500, type="holding" ] { Thing data Pk1 "PK1" [ readStart="1", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="1", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk2 "PK2" [ readStart="2", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="2", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk3 "PK3" [ readStart="3", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="3", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk4 "PK4" [ readStart="4", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="4", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk5 "PK5" [ readStart="5", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="5", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk6 "PK6" [ readStart="6", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="6", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk7 "PK7" [ readStart="7", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="7", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk8 "PK8" [ readStart="8", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="8", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk9 "PK9" [ readStart="9", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="9", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk10 "PK10" [ readStart="10", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="10", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk11 "PK11" [ readStart="11", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="11", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk12 "PK12" [ readStart="12", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="12", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk13 "PK13" [ readStart="13", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="13", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk14 "PK14" [ readStart="14", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="14", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk15 "PK15" [ readStart="15", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="15", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk16 "PK16" [ readStart="16", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="16", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] } }
Reguła:
rule "Rolety jadalnia" when Item RolJad received command then switch(receivedCommand) { case UP: { logInfo("Rolety jadalnia","ROLETA: " + receivedCommand) Pk1S_S.sendCommand(OFF) Pk2S_S.sendCommand(ON) } case STOP: { logInfo("Rolety jadalnia","ROLETA: " + receivedCommand) Pk1S_S.sendCommand(OFF) Pk2S_S.sendCommand(OFF) } case DOWN: { logInfo("Rolety jadalnia","ROLETA: " + receivedCommand) Pk2S_S.sendCommand(OFF) Pk1S_S.sendCommand(ON) } default : { logInfo("Rolety jadalnia","ROLETA: " + receivedCommand) } } end
Możesz podrzucić link bo nie działa odnośnik. Myślałem o silnikach z wbudowanym wifi z pozycją rolety i zabezpieczeniach choćby wykrywającym przeciążenie czy przeszkodę.
Nadal nic nie wiem, nie napisałeś jak masz to podłączone - elektrycznie - do komputera. Podajesz za to configi z OH, z których widzę jedynie, że lata po IP.
Myślałem o silnikach z wbudowanym wifi z pozycją rolety i zabezpieczeniach choćby wykrywającym przeciążenie czy przeszkodę
sprawdź wpierw czy będziej je w stanie spiąć z systemem. Pomijam już koszt, który na pewno będzie wyższy niż zwykły silnik + moduł.
To odskoczę na chwilę do OH
Wreszcie jakiś konkret, ale nie ma tu nic o stanach pośrednich ( uchyleniu). Napisz jak to robiłeś w OH.
Możesz podrzucić link bo nie działa odnośnik.
nie podawałem linku, sorry moje zdanie tak mogło sugerować, jednak miałem na myśli to forum. Było kilka wątków nt. silników rolet, teraz nie ma czasu, jak odnajdę jakiś to podeślę.
Stanu pośredniego nie ma. Nie ma skąd pobrać takiej info. Pełen ruch w dół trwa X sek, w górę Y sek.
Elektrycznie przekaźniki są podpięte w miejsce zwykłych przycisków, a sterowane po modbus nie ma nic więcej. Tylko stan NC i NO uzależnione os OH lub HA
sprawdź wpierw czy będziej je w stanie spiąć z systemem. Pomijam już koszt, który na pewno będzie wyższy niż zwykły silnik + moduł.
Silnik z wifi na pewno wyjdzie drożej ale czy to nie będzie stabilniejsze.... choć może jeden ch... grzyb - musze to przemyśleć.
Macie może jakiś moduł do polecenia tak żeby obsługiwał już pozycję rolety i był po wifi? Tak żeby nie wymagał dodatkowej bramki do łączności.
Stanu pośredniego nie ma. Nie ma skąd pobrać takiej info
Nie mam jak dokładnie sprawdzić, bo mam rolety na shelly 2.5, ale na szybko zrobiłem dwóch pomocników w HA , roleta up i drugi roleta down , do tego komponent z hacs https://github.com/kotborealis/home-assistant-custom-components-cover-time-based-synced
Działa to tak
Jak tego chcesz to działaj, mój cały plik w config HA wygląda tak
cover: - platform: cover_time_based_synced devices: my_room_cover_time_based: name: Roleta Biuro travelling_time_up: 26 travelling_time_down: 24 close_switch_entity_id: input_boolean.roleta_down open_switch_entity_id: input_boolean.roleta_up send_stop_at_ends: False #optional aliases: #optional - my_room_cover_time_based
A jak chcesz przejść na moduły wifi z zabezpieczeniem, to proponuję shelly , mają dokładne pozycjonowanie, kalibrację i zabezpieczenia przed przeciążeniem.
@szpila86 tak jak już tu wspomniał kolega - Shelly 2,5 lub nowszy Shelly plus 2,5
Stanu pośredniego nie ma. Nie ma skąd pobrać takiej info. Pełen ruch w dół trwa X sek, w górę Y sek.
i może tego się trzymaj. Isom podał Ci bardzo dobry i prosty przykład. Przy pomocy tego utworzysz 3 przyciski. Utworzych do tego skróty, które będą działać wg ustalonego schematu np. uchylenie - otwieranie z czasem 3s.
Wiem, że ten czas pewnie będzie się różnił w zależności od warunków, ale jeśli nie ma enkodera na silniku to tylko czas pozostaje. Nie mam rolet, za to podobne rozwiązanie mam w innym urządzeniu, też oparciu o czas i sprawdza się. Zrobiłem dodatkowo tryb test - otwórz - zamknij by ustawić stan - początek lub koniec.
Tak mam zrobione na OH a w HA to nawet nie raczkuje - chyba bariera jakaś psychologiczna ;(
@szpila86 tak jak już tu wspomniał kolega - Shelly 2,5 lub nowszy Shelly plus 2,5
Nie mogęznaleść... czy to to samo co Shelly Plus 2PM?
Po czasie widzę że amperometryka by mi się przydała (jedną roletę już 2x składałem)
Jak wróce do domu to zacznę eksperyment... 😀
Taka rozkminka sterowanie przekaźnikami jest przez rejestr holdingowy
Bridge modbus:tcp:Przekazniki "Przekaźniki strych Bridge" [ host="192.168.xx.xx", port=502, id=3] { Bridge poller PkStrych "PKS" [ start=1, length=16, refresh=500, type="holding" ] { Thing data Pk1 "PK1" [ readStart="1", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="1", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] Thing data Pk2 "PK2" [ readStart="2", readValueType="int16", readTransform="JS(Read16relay.js)", writeStart="2", writeValueType="int16", writeTransform="JS(Write16relay.js)", writeType="holding" ] ...
potem zmiana logiki
(function(inputData) { var out = inputData ; if (inputData == '0' ){ out = 'OFF'; //opened } else if (inputData == '1' ){ out = 'ON' ; //closed } return out ; })(input)
Jak w HA to ogarnąć?
- name: Przekazniki_strych type: tcp host: 192.168.xx.xx port: 502 switches: - name: "Roleta_jadalnia_w_gore? " address: ?001 write_type: coil/holding? verify: input_type: ?
Jak w HA to ogarnąć?
To zależy jak to podłączysz, jak zostaniesz przy tym co masz to już Isom podawał Ci przykład prostej automatyki z pomocnikiem.
Jeśli zastąpisz to Shelly plus 2PM to większość masz w samym module, integrujesz to z HA i masz dostępne przyciski, napięcie, prąd, moc. Mając takie dane - prosta automatyka - ustomatyzacje i sceny - gdzie ustawiasz co ma się wykonać.
tylko żeby użyć "Cover Time Based Synced" musze mieć zdeklarowane przyciski do rolety góra i dół, które muszę zintegrować przez Modbus za pomocą rejestru holdning chyba że coś źle rozumiem?
Panowie napalam się jak szczerbaty na sucharek.
Czy te sterowniki będą komunikować się bez dostępu do Internetu? Tylko w sieci domowej?
tylko żeby użyć "Cover Time Based Synced" musze mieć zdeklarowane przyciski do rolety góra i dół, które muszę zintegrować przez Modbus za pomocą rejestru holdning chyba że coś źle rozumiem?
tak, jednak nic więcej nie podpowiem bo nie mam takiego sterowania.
Panowie napalam się jak szczerbaty na sucharek.
Czy te sterowniki będą komunikować się bez dostępu do Internetu? Tylko w sieci domowej?
tak, Shelly ma swój web service, chmura przez sieć potrzebna, kiedy Shelly pracuje samodzielnie, a Ty kontrolujesz przez apkę.
ustawienia -> integracje - > dodaj -> shelly
podajesz adres IP, warto ustawić na stałe, lub zrobić rezerwację w DHCP
Dziękuję.
Co do shelly na chwilę obecną temat wyczerpany pozostaje tylko odczyt/zapis do rejestru holding w HA. Rodzaj sterownika raczej nie ma znaczenia jeśli to standard?
Podglądam pakiety do hosta ale nic nie trafia
- name: Przekazniki_strych
type: tcp
host: 192.168.xx.xx
port: 502
switches:
- name: "Roleta_jadalnia_w_gore? "
address: ?001
write_type: coil/holding?
verify:
input_type: ?