'Inteligenty' dom ze sterownikiem PLC

Główna => Sterowanie i Wizualizacje => Wątek zaczęty przez: primary1 w Marca 28, 2014, 07:08:58 pm

Tytuł: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: primary1 w Marca 28, 2014, 07:08:58 pm
Witam.

Ostatnio dość intensywnie zajmuje się kwestią zarządzania systemem inteligentnego budynku opartego na sterowniku PLC.
Trafiłem na bardzo ciekawy projekt - openHAB - i wygląda na to, że wykorzystam go do sterowania z tabletów (w formie panelu operatorskiego na ścianie) i ze smartfonów z androidem.
Każdy kto ma jakiś serwer spięty z PLC, albo jest w stanie uruchomić Raspberry Pi może pomyśleć nad takim rozwiązaniem.
Nie będę się za bardzo rozpisywać o openHAB i odsyłam do strony projektu: http://www.openhab.org

Tak na szybko: oprogramowanie instalujemy na komputerze/minikomputerze i konfigurujemy do współpracy z urządzeniami, sterownikami itp. Od reki wspieranych jest dużo protokołów komunikacyjnych, w tym oczywiście modbus. Oprogramowanie może posłużyć do zarządzania, zbierania danych (wykresy) a nawet i sterowania urządzeniami wraz z zaawansowanymi regułami automatyki. Interfejs jest dostępny z przeglądarki i aplikacji na urządzenia mobilne. Poza tym zarządzać możemy przez e-mail, komunikator, terminal itp...

Pisałem już o tym na innym forum, ale pomyślałem, że może Was coś takiego zainteresuje, dlatego postanowiłem napisać również tu.
Pozdrawiam.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: bogasman w Grudnia 04, 2014, 11:54:08 am
Używam w domu OpenHABa postawionego na BananaPi. Pracuje stabilnie.
Bardzo obiecujący system z olbrzymim potencjałem. W projekcie jest duża aktywność, powstaje dużo rozszerzeń do znanych urządzań. Np. co mnie ucieszyło, to kilka dni temu dodany został np. "binding" do Satela napisany przez rodaka. Podstawowy interfejs nie powala jeszcze na kolana, ale zupełnie wystarczy no i są rozszerzenia, które są całkiem eleganckie. Jedynym problemem jest dla mnie dokumentacja, często napisana bardzo słabo i chaotycznie. Trudno też znaleźć przykłady. Natomiast jest w miarę dobre wsparcie od autorów, programistów i użytkowników. Projekt jest młody ale bardzo dynamicznie sie rozwija.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: krwi w Października 30, 2015, 09:21:20 am
Chciałem przetestować openHAB ale mam problem z poprawnym odczytem stanów wyjść. Czysta instalacja openHAB, wgrany jedynie wago binding, połączenie się nawiązuje natomiast w logu dostaję ciągle "MySwitch1 state updated to OFF" dla wszystkich skonfigurowanych itemów niezależnie czy wyjście jest aktywne czy nie.
Dopiero poznaję openHAB więc może coś źle zrozumiałem ale nie mogę z tym ruszyć do przodu, czy szanowni koledzy mogli by wkleić przykładową konfigurację?
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: krwi w Listopada 07, 2015, 08:00:06 pm
Na to wygląda że binding Wago jest uwalony (albo ja nie umiem go skonfigurować) przełączyłem się na binding ModBus i zaczął poprawnie sczytywać statusy.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: ziutol w Listopada 09, 2015, 07:57:49 am
Witam
Jestem początkujący  z Openhab  mógłbym prosić o przykład   zmiany stanu  wyjścia sterownika i konfiguracji  biblioteki binding ModBus.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: krwi w Listopada 09, 2015, 09:33:27 am
Je też dopiero zacząłem z OpenHab (jeszcze nie wiem czy będę to wykorzystywał) ale żeby się połączyć i odczytywać co 10 sek stany 74 wyjść wystarczyło:

w opnhab.cfg:
modbus:poll=10000
modbus:tcp.slave2.connection=192.168.0.1:502:rtu
modbus:tcp.slave2.id=1
modbus:tcp.slave2.type=coil
modbus:tcp.slave2.start=512
modbus:tcp.slave2.length=74

w .items:
Group   ALL

Switch MySwitch0 "My Modbus Switch0" (ALL) {modbus="slave2:0"}
Switch MySwitch1 "My Modbus Switch1" (ALL) {modbus="slave2:1"}
Switch MySwitch2 "My Modbus Switch2" (ALL) {modbus="slave2:2"}
Switch MySwitch3 "My Modbus Switch3" (ALL) {modbus="slave2:3"}
...
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Listopada 28, 2015, 08:53:21 pm
Witaj,

Czy udało Ci sie sterować wyjściami Wago poprzez openHab ?

Mogę odczytywać stany ale niestety nie mogę dojść czy da się nimi sterować ?
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: krwi w Listopada 30, 2015, 03:41:50 pm
Niestety napotkałem ten sam problem ale myślałem, że to coś u mnie sknocone. Nie udało mi się tego rozwiązać, na razie porzuciłem OpenHAB i przymierzam się do napisania własnej wizualizacji.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Listopada 30, 2015, 07:12:21 pm
Ok czyli jesteśmy na tym samym etapie,

Ja się jeszcze nie poddaje, musi być możliwość sterowania.

Pozdrawiam,
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: marek w Grudnia 02, 2015, 07:35:32 pm
Witam.
Ja używam co prawda po tcp i tego slave2 mam dla włączników:

modbus:tcp.slave2.connection=x.x.x.x:502
modbus:tcp.slave2.type=coil
modbus:tcp.slave2.id=1
modbus:tcp.slave2.start=12288
modbus:tcp.slave2.length=48

a w items:

Switch   MyS1   "Test Switch"   (Intern)      { modbus="slave2:>0:<1" }
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Grudnia 02, 2015, 09:38:53 pm
Witaj,

Czy przy takiej konfiguracji możesz sterować wyjściami wago z OpenHab ?

Mi przy tej konfiguracji (wysokiego adresu) nie podaje nawet stanu wyjść.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: marek w Grudnia 02, 2015, 10:13:00 pm
Wyjściami steruje poprzez NOVRAM (12288... 24575, %MW0... %MW12287) oraz Fb_LatchingRelay sprawdzając bit w pamięci do którego może pisać openhab poprzez modbusa oraz wejścia fizyczne i na podstawie tego ustawiam wyjście oraz drugą zmienną w pamięci którą openhab czyta.

Jakoś nie miałem "mądrzejszego" pomysłu.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Grudnia 02, 2015, 10:31:13 pm
Mógł byś mi bardziej łopatologicznie to opisać. Najlepiej z przykładem :D

Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: marek w Grudnia 02, 2015, 10:34:13 pm
Mógłbym:
VAR
   LIGHT1: Fb_LatchingRelay;
        VIS_LIGHT1 AT %MX0.0 : BOOL;
   VIS_LIGHT2 AT %MX0.1 : BOOL;
END_VAR

LIGHT1(xSwitch:=IN1 OR VIS_LIGHT1); OUT1:=LIGHT1.xActuator; VIS_LIGHT2:=OUT1; VIS_LIGHT1:=FALSE;
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Grudnia 03, 2015, 06:22:26 pm
DZIAŁA :-)

Dzięki wielkie.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Grudnia 04, 2015, 07:58:12 pm
Marek,

Jeszcze jedno pytanie udało Ci sie przejąć kontrole nad roletami poprzez openhab ?
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: marek w Grudnia 08, 2015, 02:47:39 pm
Jeszcze nie posiadam rolet :)
Z tego co pamiętam rollershutter nie ma zaimplementowanej obsługi modbus'a, więc trzeba stworzyć przełączniki obsługujące poszczególne funkcje poszczególnych rolet i potem w rules zdefiniować ich obsługę.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Grudnia 08, 2015, 06:57:18 pm
Ok czyli jednak ta droga, ktoś na forum openhab chwalił się że napisał obsługę ale nie odpisuje na PM
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: primary1 w Grudnia 14, 2015, 11:08:56 am
U siebie do rolet używam typu Number i Selection item. Stan rolety wybieram z listy od 0 do 100% co 10%.
Wcześniej używałem Rollershutter. W starych kopiach znalazłem obsługę po Modbus:

items:
Rollershutter Roleta_Parter_Salon_TylP "Tył prawa [%d %%]" (Rolety, Rolety_Parter, Rolety_Salon, Rolety_SalonG)
Number Roleta_Parter_Salon_TylP_M {modbus="slave2:19"}

rules:
rule "Roleta_Parter_Salon_TylP zapis"
when
        System started
            or
Item Roleta_Parter_Salon_TylP received command
then
    var State = Roleta_Parter_Salon_TylP.state as DecimalType
    var Pos   = State.toBigDecimal.toBigInteger.intValue
        sendCommand(Roleta_Parter_Salon_TylP_M, Pos)
end
rule "Roleta_Parter_Salon_TylP odczyt"
when

Item Roleta_Parter_Salon_TylP_M changed
then
var State = Roleta_Parter_Salon_TylP_M.state as DecimalType
var Pos   = State.toBigDecimal.toBigInteger.intValue
Roleta_Parter_Salon_TylP.state = new PercentType(Pos)
end

Nie jestem pewny czy to działająca konfiguracja, ale można się na tym wzorować.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: zim w Grudnia 14, 2015, 07:47:06 pm
Witaj,

Dzięki za przykład niestety u mnie nie działa...

Możesz podesłać "aktualny" sposób ?
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: primary1 w Grudnia 15, 2015, 01:21:50 pm
Będę miał chwilę to podeślę jeszcze przykład ze sterowaniem przez "markery" odpowiadające akcjom góra, dół i stop.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: oktawian w Grudnia 17, 2015, 05:07:48 pm
Witam,
Rasperry łączy się z integrą
01:32:36.276 INFO  o.o.c.s.AbstractActiveService[:169] - Satel Refresh Service has been started
01:32:36.287 INFO  o.o.b.s.i.protocol.Ethm1Module[:65] - Connecting to ETHM-1 module at 192.168.10.201:7094
01:32:36.305 INFO  o.o.b.s.i.protocol.Ethm1Module[:70] - ETHM-1 module connected successfuly

ale nie przekazuje żadnych rozkazów, mam włączoną integrację na ethm. Czy mógłby ktoś podesłać mi swoje pliki konfiguracyjne ? items, rules, sitemap, script, próbuję ogarnąć temat ale nie działa.

Podstawy jakie mnie interesują to:
podnoszenie, opuszczanie rolet, (pojedyńczo i grupowo)
sterowanie wyjściami (garaż itp.)
uzbrajanie alarmu
kasowanie alarmów

Dodatkowo chcę to ogarnąć na tablet z androidem, coś ala
https://github.com/smar000/openhab-dashboard/blob/master/tmp/image.jpg

Oczywiście dogadamy się $
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: hexal w Października 23, 2016, 04:50:51 pm
Wyjściami steruje poprzez NOVRAM (12288... 24575, %MW0... %MW12287) oraz Fb_LatchingRelay sprawdzając bit w pamięci do którego może pisać openhab poprzez modbusa oraz wejścia fizyczne i na podstawie tego ustawiam wyjście oraz drugą zmienną w pamięci którą openhab czyta.

Jakoś nie miałem "mądrzejszego" pomysłu.
Mógłbym:
VAR
   LIGHT1: Fb_LatchingRelay;
        VIS_LIGHT1 AT %MX0.0 : BOOL;
   VIS_LIGHT2 AT %MX0.1 : BOOL;
END_VAR

LIGHT1(xSwitch:=IN1 OR VIS_LIGHT1); OUT1:=LIGHT1.xActuator; VIS_LIGHT2:=OUT1; VIS_LIGHT1:=FALSE;

Witam,
ja analogicznie steruję światłem przez Fb_LatchingRelay i żeby nie przerabiać zbytnio kodu na PLC uzupełniłem jedynie deklarację zmiennych o %MX tj. np. VIS_K01  AT %MX0.8: BOOL; VIS_K02  AT %MX0.9: BOOL;VIS_K19  AT %MX1.10: BOOL; itd. - wtedy wiem gdzie szukać ich przy komunikacji przez modbus w openhab.
W samym openhab mam:
cfg
modbus:tcp.slave2.connection=x.x.x.x:502
modbus:tcp.slave2.type=coil
modbus:tcp.slave2.id=1
modbus:tcp.slave2.start=12288
modbus:tcp.slave2.length=100
.item
Switch cewka_VIS_K19 "PLC_PRG.VIS_K19" (ALL) {autoupdate="false",modbus="slave2:26"}
.sitemap
Switch item=cewka_VIS_K19 label="VIS_K19_kominek" mappings=[ON="ON"]
.rule
rule "Automatically switch off switch"
when
   Item cewka_VIS_K19 received command ON
then
    createTimer(now.plusSeconds(1))[|
      cewka_VIS_K19.sendCommand(OFF)
   ]
end

Wtedy po wciśnięciu lampy (VIS_K19_kominek) na ON zmienna %MX1.10 przyjmuje wartość 1 a po jednej sekundzie dzięki zapisom w .rules automatycznie przyjmuje wartość 0. Nie trzeba angażować dodatkowych zmiennych i działa :)

Teraz walczę żeby z danych wyciągniętych z plc_visu.xml odszyfrować adresy zmiennych innych niż stany 0/1 tj. zapisane w PLC zmienne przechowujące czas, datę zdarzeń i statystyki załączeń światła bo jakoś tego nie widzę.
Tytuł: Odp: Otwarty system automatyki domowej openHAB
Wiadomość wysłana przez: tomekcz w Kwietnia 28, 2019, 03:04:21 pm
Witam serdecznie.
Mam problem z sterowaniem przez openhab. To znaczy tak - zdeklarowałem zmienne globalne w codesy ,dodałem adres TEST %MW3.11:BOOL
Po skompilowaniu projektu i załadowaniu go do sterownika wciskając switch w openhab widzę w zmiennych globalnych zmianę z FALSE na TRUE i odwrotnie ale nie może to wysterować Fb_LatchingRelay. W samym bloku również mam na xSwitch IN27 OR TEST. Gdy wciskam przycisk podłączony do wejścia IN27 również widzę to w Openhab.

Proszę podpowiedzcie mi co żle robie?