W lecie ubiegłego roku kupiłem w sklepie action gniazdko:
Teraz przyszedł czas na odłączenie się od chmury. Trochę to trwało ale znalazłem opisy jak to zrobić bez rozbierania urządzenia i lutowania kabelków.
Skorzystałem z https://github.com/tuya-cloudcutter/tuya-cloudcutter oraz https://github.com/openshwprojects/OpenBK7231T_App Zastosowałem istniejącą konfigurację dla LSC Smart Connect Plug i gniazdko działa bez połączenia z Internetem.
Niestety nie wszystko było jak w oryginale. Miałem tylko jedną LED do tego niebieską, która powinna wskazywać połączenie WiFi a wskazywała zadziałanie przekaźnika.
Dlatego postanowiłem zajrzeć do środka.
Udało się otworzyć obudowę bez uszkodzenia.
Jak widać zasilacz nieizolowany dlatego nie polecam podłączania do 230 V przy otwartej obudowie. Na masie może znaleźć się faza!
Przyjrzałem się ścieżkom na pcb od modułu MCU do przycisku, LEDów i przekaźnika.
Wyniki oględzin:
P6 - załączanie przekaźnika przez R5 i Q1
P7 - przycisk SW1
P8 - LED1 (czerwona)
P26 - LED2 (niebieska)
Zasilanie 3,3 V i masa oczywista a pozostałe nie podłączone.
Po złożeniu obudowy mogłem zmodyfikować ustawienia pinów:
Po lewej jest proponowana konfiguracja dla podobnego gniazdka, a po prawej moje ustawienie.
Gniazdko teraz działa jak chciałem i choć brakuje mu choćby minutnika to liczę że wkrótce oprogramowanie upodobni się do tasmoty.
Gniazdko teraz działa jak chciałem i choć brakuje mu choćby minutnika to liczę że wkrótce oprogramowanie upodobni się do tasmoty.
Właściwie to minutnik jest i to można go zrobić na wiele sposobów. Po prostu rozwijamy dokumentację i dopiero będą robione materiały, w tym kursy na YT oraz symulator urządzenia na Windowsa by ćwiczyć robienie automatyzacji i skryptów na PC bez posiadania fizycznego urządzenia IoT:
BTW: Symulator działa nawet z MQTT i łączy się z Home Assistant.
Co do minutników, to wyłączy przekaźnik po 2 sekundach po każdym jego załączeniu (kanał 0):
Poniższy skryptowy wątek (musi być uruchomiony jako startScript plik.txt) wykona odliczanie korzystając z kanału jako zmiennej (można ją wyświetlać i publikować), na starcie ustawi przekaźnik na 1 a po odliczeniu na 0:
Jak chcesz natomiast jakiś konkretny minutnik bądź jakąś określoną składnie, to daj znać jaką, to też można zrobić.
Tworzę pierwsze na świecie oprogramowanie open source przeznaczone dla platform BK7231T i N, XR809, BL602, W600 i W800 używanych w różnych urządzeniach IoT, pozwalające uwolnić je od serwerów producenta, uwolnić od śledzenia, dowolnie modyfikować i sparować z Home Assistant.
Dodatkowo publikuję różnorodne materiały, często tutoriale czy też praktyczne demonstracje.
Jeśli podoba Ci się moja twórczość i w czymś Ci pomogłem, to rozważ wsparcie mnie tutaj:
https://www.paypal.com/paypalme/openshwprojects Mój Github:
https://github.com/openshwprojects Mój tutorial PIC18F SDCC:
https://www.elektroda.pl/rtvforum/topic3635522.html
Wraz z dniem wczorajszym, firmware stało się kompatybilne z ioBroker. W celu uruchomienia wysyłania TELE w stylu Tasmoty (niezbędne dla ioBroker sonoff plugin), należy włączyć flagę 30.
Demonstracja:
Tworzę pierwsze na świecie oprogramowanie open source przeznaczone dla platform BK7231T i N, XR809, BL602, W600 i W800 używanych w różnych urządzeniach IoT, pozwalające uwolnić je od serwerów producenta, uwolnić od śledzenia, dowolnie modyfikować i sparować z Home Assistant.
Dodatkowo publikuję różnorodne materiały, często tutoriale czy też praktyczne demonstracje.
Jeśli podoba Ci się moja twórczość i w czymś Ci pomogłem, to rozważ wsparcie mnie tutaj:
https://www.paypal.com/paypalme/openshwprojects Mój Github:
https://github.com/openshwprojects Mój tutorial PIC18F SDCC:
https://www.elektroda.pl/rtvforum/topic3635522.html
Co jakiś czas widzę tematy o podmianie fw w tych różnych fabrycznych urządzeniach.
Gdzie można znaleźć jakieś info o tym systemie, żeby poukładać sobie w głowie co to jest i co potrafi?
Rozumiem, że chodzi o fakt, że te wszystkie gotowe produkty używają tego samego modułu bezprzewodowego i poprzez podmianę fw zyskujemy nad nimi kontrolę bezpośrednią, ustawiając co gdzie jest podpięte do wbudowanego modułu?
Jak potem wygląda sterowanie? Te moduły łączą się do lokalnej sieci WiFi, którą im zapiszemy? I potem mamy jakąś apkę, która w tej sieci wyłapuje urządzenia, które się zgłoszą?
Ciekawi mnie to o tyle, że jestem przed projektowaniem instalacji w domu i dobrze byłoby mieć rozeznanie co to potrafi, jakie są rozgryzione już sprzęty, którymi można sterować itp.
Kiedyś myślałem o jakimś własnym sterowaniu, ale życie weryfikuje i niestety obecnie nie mam aż tyle wolnego czasu, by zrobić to w jakimś sensownym czasookresie :/
Stąd chętnie skorzystałbym z czegoś gotowego, co można zaadaptować do potrzeb
Rozumiem, że chodzi o fakt, że te wszystkie gotowe produkty używają tego samego modułu bezprzewodowego i poprzez podmianę fw zyskujemy nad nimi kontrolę bezpośrednią, ustawiając co gdzie jest podpięte do wbudowanego modułu?
Tak dobrze nie ma. Modułów jest coraz więcej, różnice są czasem spore.
krisRaba wrote:
Jak potem wygląda sterowanie? Te moduły łączą się do lokalnej sieci WiFi, którą im zapiszemy? I potem mamy jakąś apkę, która w tej sieci wyłapuje urządzenia, które się zgłoszą?
Mniej więcej tak właśnie, choć dziś apka to może być np. karta przeglądarki internetowej bez menu.
Jeśli tych urządzeń masz 2-3 to pewnie wystarczą zakładki w przeglądarce do każdego urządzenia. Ale jeśli więcej albo chcemy wykorzystać zależności między urządzeniami, to nie obejdzie się bez jakiegoś sytemu jak np. Home Assistant.
Ja zmieniłem firmware ze względu żeby odłączyć się od chmury i pozbyć się firmowych aplikacji w smartfonie. Przestało to być wygodne gdy do każdego urządzenia trzeba dedykowaną aplikację.
Dla mnie wygodniej jest mieć dostęp do domowej sieci LAN ze świata, niż wszystko z domu wysyłać do chmury żeby np. zgasić światło w sąsiednim pokoju. A takie właśnie rozwiązania dostajemy domyślnie kupując urządzenie i działając wg instrukcji obsługi.
Tak. HA tez mozesz dac dostep na swiat , najważniejsze ze masz jedna aplikację, bez chmur w chinach no i zarządzanie możesz robić dowolnie oraz jedne urządzenia mogć wpływać sterować inne itp itd
Pięknie, to muszę koniecznie rozeznać temat Mi najbardziej by odpowiadało, żeby było tylko lokalnie lub jeśli już, to z zewnątrz wbić się po jakimś VPNie, ale żeby bezpośredni ruch z neta dla urządzeń był niemożliwy. Muszę poszukać, czy da się tak zrobić np. na jakimś routerze
Przyjrzałem się ścieżkom na pcb od modułu MCU do przycisku, LEDów i przekaźnika.
Po złożeniu obudowy mogłem zmodyfikować ustawienia pinów:
Mam pytanko jeszcze do znawców tematu. Patrzę na te fotki i w tym gniazdku jest moduł, który na świat ma wyprowadzonych bardzo mało pinów, bo w sumie i po co więcej w takim urządzeniu.
Z drugiej strony konfiguracja pinów pokazuje aż 28 pozycji...
Czy da się kupić taki moduł, który miałby wyprowadzonych możliwie dużo linii, posadzić go na swoim PCB i dowolnie skonfigurować, że np. tutaj PWM jeden, drugi, tu jakieś on/off'y, tu wejścia itp?
I to sobie dodać potem do HA jako swój moduł, który coś tam robi? Kurczę, bo to by meeega przyspieszyło rozwój i integrację jakichś swoich wynalazków
Są też w tym jakieś przepychacze interfejsów? Np. z poziomu HA zdefiniować, że ma wypychać do tego modułu jakąś ramkę, którą ten z kolei wysyła dalej po swoim UART, czy czymkolwiek innym?
Oglądałem jakiś trailer odnośnie HA 2022.10 i coraz bardziej mi się to podoba Tak się obawiałem, że to jest zaraźliwe
Od razu zaznaczam, że odpowiadam w kontekście mojego projektu OpenBeken, co prawda Tasmota dla popularnego ESP też posiada skryptowalny system Rules, ale nie widziałem tam aż tylu np. możliwych przekaźników (w panelu mogę wybrać od 1 do... 8):
krisRaba wrote:
Z drugiej strony konfiguracja pinów pokazuje aż 28 pozycji...
Czy da się kupić taki moduł, który miałby wyprowadzonych możliwie dużo linii, posadzić go na swoim PCB i dowolnie skonfigurować, że np. tutaj PWM jeden, drugi, tu jakieś on/off'y, tu wejścia itp?
I to sobie dodać potem do HA jako swój moduł, który coś tam robi? Kurczę, bo to by meeega przyspieszyło rozwój i integrację jakichś swoich wynalazków
Każdy wolny pin można oskryptować i zagospodarować, ogranicza nas jedynie to, że np. PWM dane MCU może wspierać tylko na określonych pinach.
krisRaba wrote:
Są też w tym jakieś przepychacze interfejsów? Np. z poziomu HA zdefiniować, że ma wypychać do tego modułu jakąś ramkę, którą ten z kolei wysyła dalej po swoim UART, czy czymkolwiek innym?
W moim firmware jest możliwych do 64 kanałów o różnych rolach, możesz dowolnie parować przyciski, przełączniki, przekaźniki, PWMy, ADC, możesz wyzwalać zdarzenia na bazie odczytów lub klików (pojedynczy, podwójny, potrójny, poczwórny klik), możesz tworzyć timery (np. wyłączyć przekaźnik po 5 minutach), możesz sterować peryferiami (dodaję nowe sterowniki na bieżąco), itd...
Możesz podłączyć DHT11 i oskryptować go tak (bez pisania kodu C, w gotowym firmware, bez HA) że gdy temperatura przekroczy granicę to np. wykonuje on jakąś akcję (włącza przekaźnik na 10 minut)
OpenBeken może też wysyłać i odbierać dowolne rzeczy po MQTT albo wysyłać np. GET do serwera (i do GET można wsadzić rezultaty pomiarów...)
Przykład np z I2C:
p.kaczmarek2 wrote:
Nowa aktualizacja I2C!
Dodałem sterownik MCP23017.
MCP23017 to 16-bitowy ekspander portów.
Umożliwia podłączenie np. 16 przekaźników do pojedynczej magistrali I2C.
W obecnym systemie możliwe jest mapowanie 16 pinów MCP23017 na kanały OpenBeken.
Tutaj używane jest polecenie:
Polecenie zostało użyte na sterowniku 4 przekaźników. Kanały 5, 6, 7 itd. są mapowane na bity ekspandera.
Oto jak to wygląda w interfejsie użytkownika (nie zawracałem sobie głowy dodawaniem wszystkich 16 kanałów, tylko kilka):
Oto diody LED podczas testu:
Oto cała konfiguracja (zignoruj czujniki temperatury TC74 na magistrali I2C, skupmy się na MCP23017):
Z adnotacjami:
Teraz możesz zapytać - dlaczego? Dlaczego 16 kanałów? Dlaczego MCP23017?
Dzieje się tak, ponieważ pozwala na użycie tego modułu:
To byłby bardzo tani i fajny sposób na kontrolowanie wielu przekaźników. Ponadto możesz mieć wiele MCP na tej samej magistrali I2C...
.
Inny przykład, kontrola wiatraczka na trzech przekaźnikach, skrypt na prośbę użytkownika z symulacją bo nie miałem takiego urządzenia:
p.kaczmarek2 wrote:
Witam ponownie @digitalsko ,
dzięki naszemu Symulatorowi urządzeń OpenBeken, który pozwala mi symulować dowolne urządzenie w systemie Windows i szybko tworzyć skrypty, przygotowałem dla Ciebie następujący skrypt:
setChannelType 10 OffLowMidHigh
setChannelLabel 1 "Relay 1"
setChannelLabel 2 "Relay 2"
setChannelLabel 3 "Relay 3"
setChannelLabel 10 "Fan Speed"
// hide raw relay channel buttons from gui
setChannelVisible 1 0
setChannelVisible 2 0
setChannelVisible 3 0
// optional gui buttons
startDriver httpButtons
setButtonLabel 0 "Toggle Fan"
setButtonLabel 1 "Next Fan Speed"
setButtonCommand 0 Do_Power_Press
setButtonCommand 1 Do_Cycle_Press
setButtonEnabled 0 1
setButtonEnabled 1 1
// button colour
addChangeHandler Channel10 == 0 setButtonColor 0 red
addChangeHandler Channel10 != 0 setButtonColor 0 green
// off by default
setButtonColor 0 red
// translate fan state (0-4) to relay states
addChangeHandler Channel10 == 0 backlog SetChannel 1 0; SetChannel 2 0; SetChannel 3 0
// Fan on Low - R2 on
addChangeHandler Channel10 == 1 backlog SetChannel 1 1; SetChannel 2 0; SetChannel 3 0
// Fan on Medium - R2, R3 on
addChangeHandler Channel10 == 2 backlog SetChannel 1 1; SetChannel 2 1; SetChannel 3 0
// Fan on High - R2, R3, R4 on
addChangeHandler Channel10 == 3 backlog SetChannel 1 1; SetChannel 2 1; SetChannel 3 1
// change to OnClick if you want?
addEventHandler OnPress 11 Do_Power_Press
addEventHandler OnPress 9 Do_Cycle_Press
// power press will just toggle channel 10 - so if non zero it goes to 0, if zero, then goes to 1
alias Do_Power_Press toggleChannel 10
// cycle press will cycle values 0, 1, 2 and 3 for channel 10?
// AddChannel [ChannelIndex][ValueToAdd][ClampMin][ClampMax][bWrapInsteadOfClamp]
alias Do_Cycle_Press addChannel 10 1 1 3 1
Nie jestem pewien, czy dokładnie tego potrzebujesz, ale możesz je zmodyfikować, aby pasowało do twoich potrzeb, a jeśli pojawi się jakiś problem, mogę również wykonać modyfikację dla ciebie. Jestem tu by pomóc.
Oto krótka prezentacja skryptu:
Musisz zaktualizować do najnowszej wersji, aby móc korzystać ze wszystkich funkcji tego skryptu.
Inne przykłady:
Quote:
- CB2S + DHT11 test circuit:
- WB2S + LCD 2x16 with I2C driver + MCP23017 port expander test circuit:
- WB2S + bistable switch and potentiometer test circuit:
- WB2S + IR receiver test circuit:
- WB2S + Software SPI test:
More about my test setups will be covered in dedicated OBK topic.
W przypadku Tasmoty możesz łatwo uruchomić mnóstwo gotowych sterowników na ESP, w przypadku OpenBeken możesz działać na 'nieznanych chińskich modułach' typu BK7231 (T i N), BL602, W800/W801, W600/W601, XR809 i wkrótce wiecej
Tworzę pierwsze na świecie oprogramowanie open source przeznaczone dla platform BK7231T i N, XR809, BL602, W600 i W800 używanych w różnych urządzeniach IoT, pozwalające uwolnić je od serwerów producenta, uwolnić od śledzenia, dowolnie modyfikować i sparować z Home Assistant.
Dodatkowo publikuję różnorodne materiały, często tutoriale czy też praktyczne demonstracje.
Jeśli podoba Ci się moja twórczość i w czymś Ci pomogłem, to rozważ wsparcie mnie tutaj:
https://www.paypal.com/paypalme/openshwprojects Mój Github:
https://github.com/openshwprojects Mój tutorial PIC18F SDCC:
https://www.elektroda.pl/rtvforum/topic3635522.html
Czyli językiem skryptowym da się wykonywać logikę na samym module, że swoją funkcję pełni niezależnie.
Dodatkowo można go spiąć np. z Home Assistant i tam zrobić jakieś harmonogramy nadrzędne, monitorować stan itp Piękna sprawa
Muszę przejrzeć wspomniane moduły i zobaczyć który się najlepiej nada i potem wypadałoby coś ogarnąć w boju, żeby lepiej to poczuć
Ja póki co układam sobie w głowie poszczególne elementy instalacji elektrycznej i ewentualnie czy coś w danym miejscu "smarcić" czy nie