Forum Smart'ny Dom

[Domoticz] Przełącz...
 

[Domoticz] Przełącznik wyboru do wyboru sceny.  

  RSS
Jankowsky
(@fb_-janmatuszak)
Młodzik

Cześć wszystkim! No nareszcie już trochę sprzętu mam, czas go rozgryźć! 

Mój zestaw, Raspbery Pi 3B+, Domoticz, Mosquito, NodeMCU + 4 przekaźniki (na tą chwilę) 

Stworzyłem sobie wirtualne przełączniki do każdego z osobna. Mam przełącznik p1, p2, p3, p4 który wyzwala odpowiedni stan na przekaźniku 1,2,3,4. Logiczne 🙂 

Chciałbym jednak osiągnąć 2 zamiary bezpośrednie. 

Pierwszy zamiar jest taki. Aby móc sterować odpowiednio przełącznikiem wyboru i odpowiednio:

dla Level0 => p1,p2,p3,p4 = OFF,

dla Level1 => p1=ON & p2,p3,p4 = OFF,

dla Level2 => p2,p3 = ON & p1, p4 = OFF

dla Level3 => p1,p4 = ON & p2, p3 = OFF

Jak mam to zrobić, naprawdę nie wiem. 

 

Drugim zamiarem bezpośrednim jest dodanie fizycznego przycisku (monostabilnego), który będzie przełączał się odpowiednio: 

z Level 0 na Level1, z Level1 na Level2, z Level2 na Level3 itd... ale również, dłuższe przyciśnięcie w dowolnym momencie powoduje Level0 czyli wszystko na 0

Cytuj
Dodane : 15/03/2019 5:02 pm
isom
 isom
(@isom)
Zasłużony Moderator

@fb_-janmatuszak ambitny plan jak na początki 🙂 ale ok jak to zrobić ? Można to zrobić na kilka sposobów ale chyba najprostszy i dość uniwersalny bo można go wykorzystać do przełączników wirtualnych opartych na GPIO samej maliny, będzie skrypt  bash.

Podam przykład dla trzech przełączników gdzie dwa są włączane a jeden wył , przełączniki o IDX 50, 51, 52 

Logujesz się przez ssh i edytujesz swój skrypt czyli 

sudo nano scena1.sh

"scena1" to dowolna nazwa skryptu , która nie ma nic wspólnego z przełącznikami możesz nazwać jak chcesz  do pustego okna wklejasz to co poniżej 

#!/bin/bash
curl "http://192.168.x.xxx:8084/json.htm?type=command&param=switchlight&idx=50&switchcmd=On"
curl "http://192.168.x.xxx:8084/json.htm?type=command&param=switchlight&idx=51&switchcmd=On"
curl "http://192.168.x.xxx:8084/json.htm?type=command&param=switchlight&idx=52&switchcmd=Off"

Oczywiście adres IP to adres Twojej maliny i port taki jak masz ustawiony , IDX musisz odczytać ze swoich przełączników

Zapisujesz wciskając Ctrl + X  i  ENTER

Nadajesz prawa wykonalności 

sudo chmod +x scena1.sh

i sprawdzasz 

./scena1.sh

Jak dostaniesz status OK dla wszystkich komend to jesteś w domu

Potem do przełącznika wyboru w miejscu "Akcje wyboru" np dla poziomu 10 wstawiasz 

script:///home/pi/scena1.sh

I masz dla poziomu 10 przełącznika załączenie dwóch i wyłączenie jednego przełącznika 

 

Drugi  twój zamiar mogę opisać w temacie zdarzeń domoticza Blockly 

 

OdpowiedzCytuj
Dodane : 15/03/2019 9:13 pm
Jankowsky
(@fb_-janmatuszak)
Młodzik

Hm.... bardzo fajne rozwiązanie, ale..... co jeśli przekaźniki podpięte są do ESP? (NodeMCU na wersji ESP-12F)

Czy skrypt można przerobić na: 

#!/bin/bash

curl "http://ip_esp/contorl?cmd=GIPIO,NUMER_PINU,Stan_Pinu"

curl "http://ip_esp/contorl?cmd=GIPIO,NUMER_PINU,Stan_Pinu"

curl "http://ip_esp/contorl?cmd=GIPIO,NUMER_PINU,Stan_Pinu"

Do obsługi ESP -> wrzuciłem esp-easy mega, dzięki czemu raportuje on do Domoticza stan aktualnego pinu. 

OdpowiedzCytuj
Dodane : 16/03/2019 1:06 pm
isom
 isom
(@isom)
Zasłużony Moderator

Przy tym rozwiązaniu które zaproponowałem nie ważne do czego są podpięte przekaźniki , ponieważ skrypt wykorzystuje IDX urządzenia więc czy to będzie GPIO 2 czy 12 nie ma znaczenia . Jeżeli użyjesz w skrypcie komend dla softu espeasy czyli 

http://192.168.x..xxx/control?cmd=GPIO,x,1

http://192.168.x..xxx/control?cmd=GPIO,x,0

to też oczywiście będzie działać , ale nie zadziała już dla GPIO wykorzystanego bezpośrednio z RBPi , lub z softem AFE wgranym do tego samego modułu .

Teraz pomyśl jak rozbudujesz system i nagle zapragniesz zmienić soft a skrypty tego softu nie obsłużą , to musisz oprócz zmiany oprogramowania edytować wszystkie skrypty . Sposób który zaproponowałem zadziała z każdym softem 

OdpowiedzCytuj
Dodane : 16/03/2019 5:04 pm
Jankowsky
(@fb_-janmatuszak)
Młodzik

Hm.... mamy to już za sobą, bardzo prosto tworzy się zdarzenia w Domoticz. Wybór odpowiedniego poziomu na przycisku już rozwiązałem. Pacz screen poniżej. Pozostaje teraz temat, wykrycia stanu pinu do którego przypniemy włącznik mono stabilny. Może jakieś podpowiedzi?  

OdpowiedzCytuj
Dodane : 16/03/2019 8:11 pm
isom
 isom
(@isom)
Zasłużony Moderator

@fb_-janmatuszak skoro tak dobrze sobie radzisz to masz tu trzecią możliwość , sceny tworzy się równie prosto jak zdarzenia a można dodatkowo zarządzać czasem załączenia poszczególnych przekaźników. 

A co do podpowiedzi o którą prosisz 
W domoticzu można tworzyć sobie zmienne użytkownika, taka zmienna może być liczbą całkowitą , datą , ciągiem znaków itd...
tworząc zmienną z liczbą całkowitą można utworzyć zdarzenie , które będzie tą zmienną zwiększać o 1 po załączeniu przycisku.
Czyli tworzymy zmienną z wartością 0 i zdarzenie
"Jeżeli przycisk = ON i zmienna = 0
 Włącz Poziom 1 i ustaw zmienną na 1
Jeżeli przycisk = ON i zmienna =1
Włącz Poziom 2 i ustaw zmienną na 2 "  itd...
OdpowiedzCytuj
Dodane : 16/03/2019 10:58 pm
Udostępnij:



Udostępnij
  • 1
    Share
  
Pracuję

Proszę Zaloguj Się lub Zarejestruj