ID – zrób to sam

Inteligentny dom stworzony własnymi rękami

Skrypty

1. Wykrywanie zmiany stanu

Przydatny link: dokumentacja

W tym prostym skrypcie będziemy wykrywać zmianę stanu połączenia TV z siecią LAN i wyświetlać w logach odpowiedni komunikat.

Tworzymy nowy skrypt w j. Javascript i nazywamy go statusy_tv

Tworzymy nowy skrypt
//funkcja wykrywająca zmianę stanu obiektu o danym id
on({id:'ping.1.192_168_1_100'/*Tv*/, change: "ne"}, function(obj){
    //aktualny stan obiektu
    if(obj.state.val){
        //jeśli true - TV jest w sieci
        console.log("TV jest włączony");
    }else{
        //jeśli false - TV nie ma w sieci
        console.log("TV jest wyłączony");
    }
});

Szczegółowy opis on() znajdziemy tutaj, w artykułach będę opisywał przypadki ze skryptów.

W przypadku powyższego skryptu funkcja przyjmuje następujące parametry:
ping.1.192_168_1_100 – adres widoczny w zakładce Objects, przechowujący informację o stanie połączenia urządzenia z siecią LAN. Jeżeli urządzenie jest połączone to zmienna przyjmuje wartość true.

change: “ne” – parametr mówiący jaka zmiana wartości ma wywołać akcję. W tym przypadku zmiana wartości ma być różna od wartości poprzedniej, czyli zmiana z true na false i odwortnie. parametr change może przyjmować następujące wartości:

  • eq – nowa wartość ma być równa starej wartości
  • ne – nowa wartość ma być różna od starej wartości
  • gt – nowa wartość ma być większa od starej wartości
  • ge – nowa wartość ma być większa lub równa od starej wartości
  • lt – nowa wartość ma być mniejsza od starej wartości
  • le – nowa wartość ma być mniejsza lub równa od starej wartości
  • any – akcja zostanie wywołana na dowolną zmianę, nawet jak zostanie wpisana ta sama wartość

Jeżeli skrypt wymaga, aby nowa lub stara wartość była znana to możemy ja “wyciągnąć” używając obiektu obj

on({id:'ping.1.192_168_1_100'/*Tv*/, change: "ne"}, function(obj){
    var nowa_wartosc = obj.state.val;
    var stara_wartosc = obj.oldState.val;
});

Funkcja on() i parametr change będzie chyba jedną z najczęściej używanych, będzie można jej użyć np. do wykonania jakiejś akcji po wykryciu ruchu.

ZOSTAW ODPOWIEDŹ

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *