Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
OpenHab a sterowanie LK
#7
Przedstawiony sposób integracji  LK z OH będzie dotyczył oprogramowania OH v3.3.0 pracującego na raspberry PI 4 z systemem OS Lite 32bit i lan kontrolera v2.0. Większość konfiguracji przeprowadziłem z poziomu przeglądarki, choć są wyjątki i pewne funkcjonalności wymagają dodania plików konfiguracyjnych do odpowiednich folderów w OH. Dane z LK pobieram z pliku XML, który jest dostępny pod adresem http://192.168.X.X/st0.xml. Oczywiście w miejsce X należy wstawić właściwy adres IP dla posiadanego LK. Aby ułatwić sobie pracę zastosowałem nazewnictwo wejść i wyjść zgodne z plikiem XML.
  • W pierwszej kolejności instalujemy HTTP Bindings i taki typ wiązania wybieramy przy dodawaniu LK do sekcji things. Następnie wpisujemy w pola:
Base URL - adres IP  LK
Authentication Mode - Basic Authentication
State Method - GET, Command Method - POST
Content Type - text/plain
  • Kolejny krok to dodanie kanałów typu switch, w tym celu przechodzimy na zakładkę channels i klikamy dodaj kanał. Następnie wpisujemy w pola:
State Transformation - REGEX:(?:.*<out0>(.*?)<.out0>.*)
State URL Extension - st0.xml
Command URL Extension - outs.cgi?out0=%2$s
On Value - 0
Off Value - 1
Read/Write Mode - Read/Write
  • Czynność powtarzamy dodając kolejne wyjścia zmieniając pola <outX> od 0 do 5. Aby LK pobierał dane należy zainstalować RegEx Transformation. Do kanałów wyjściowych dodajemy items. Wybieramy typ switch a po utworzeniu dodajemy Metadata, stateDescription Pattern - %s
Przykładowa strona OH do sterowania LK.
Kod:
sitemap server label="LK Serwer" {
    Frame label="LK2" {
            Frame label="Digital Outputs Control" {
                Switch icon="switch" item=lk2out0 label="lk2out0"
                Switch icon="switch" item=lk2out1 label="lk2out1"
                Switch icon="switch" item=lk2out2 label="lk2out2"
                Switch icon="switch" item=lk2out3 label="lk2out3"
                Switch icon="switch" item=lk2out4 label="lk2out4"
                Switch icon="switch" item=lk2out5 label="lk2out5"
            }
            Frame label="ANALOG Inputs State" {
                Text item=lk2ia0 label="Temperatura płytki"
                Text item=lk2ia1 label="Napięcie zasilania" icon="none"
                Text item=lk2ia2 label="Inp1"
                Text item=lk2ia3 label="Inp2"
                Text item=lk2ia4 label="Inp3"
                Text item=lk2ia5 label="Inp4"
                Text item=lk2ia6 label="Inp5"
                Text item=lk2ia7 label="Inp6"
                Text item=lk2ia8 label="Inp7"
                Text item=lk2ia9 label="Inp8"
                Text item=lk2ia10 label="Inp9"
            }
            Frame label="Digital Inputs State" {
                Text icon="my_siren" label="INP1D" item=lk2di0
                Text icon="my_siren" label="INP2D" item=lk2di1
                Text icon="my_siren" label="INP3D" item=lk2di2
                Text icon="my_siren" label="INP4D" item=lk2di3
            }
        }
}

To tyle jeżeli chodzi o sterowanie przekaźnikami, w kolejnych wpisach dodam odczyt z wejść analogowych i cyfrowych.
Odpowiedz


Wiadomości w tym wątku

Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości