Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Sprawdzanie obecnosci WiFi - UW->scena


gray77

Question

Witam wszystkich,

Od dawna szukałem sposobu, by wykrywać pojawienie się mojego telefonu w sieci domowej WiFi.

Przeszukałem chyba cale forum i nic co jest tutaj umieszczone nie odpowiadało mi zbytnio. Być możne z racji moich biednych umiejętności programistycznych i słabej znajomości języka LUA (brak jakiegoś porządnego kursu w oparciu o system Fibaro).

W końcu znalazłem

Please login or register to see this link.

, który w 99% spełnił moje oczekiwanie.

W domu posiadam router Asus RT-N66U i nie jest (z mojego punktu widzenia) tak łatwe dobranie się do listy podłączonych urządzeń, ale po głębszym szperaniu w końcu znalazłem to co chciałem. Jest to lista aktualnie podłączonych urządzeń, aktualizująca się dynamicznie.

 

Przechodząc do rzeczy, powyższy temat umożliwił mi sprawdzanie obecności danego urządzenia w sieci lokalnej, jednak by to zrobić, muszę kliknąć w przycisk na urządzeniu wirtualnym. Owszem, mogę stworzyć scenę, która będzie to za mnie robić ale pomyślałem, po co UW i scena, jeśli można by to zrobić tylko i wyłącznie za pomocą sceny, która uruchamiała by się np co minutę i ustawiała by zmienna globalna. Jak pomyślałem tak zrobiłem i przeniosłem kod z przycisku wirtualnego do sceny. Jak się można domyślić, tutaj pojawiają się schody.

 

Oto kod z przycisku w urządzeniu wirtualnym (po moim dostosowaniu), który świetnie tam działa po naciśnięciu:

Please login or register to see this code.

Pytanie (i prośba) pojawia się następujące: co  muszę dodać/zmienić/napisać inaczej by scena mogla się wykonać bezbłędnie?

 

Pierwszy problem to jak przypisać adres IP do zmiennej IP by potem moc go wykorzystać?

Zrobilem tak (caly kod):

Please login or register to see this code.

I dochodzi do momentu gdzie pojawia się taki oto błąd:

        line 25: attempt to index global"Net" (a nil value)

    linia 25 to: router = Net.FHttp(ip, port);

 

Czy może mi ktoś pomóż?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Przepraszam za tak późną odpowiedź wątek musiał mi umknąć. Scena nie działa z prostego powodu: w scenach jest inne Lua niż w urządzeniach wirtualnych, od v4 można w nich używać zawołań HTTP (chociaż komunikacja po TCP czy UDP nie jest możliwa) ale prezentują się całkiem inaczej. Załączam przykład dla GETa.

Please login or register to see this link.

Link to comment
Share on other sites

  • 0
Guest damian

j.nowacki, ogromny szacunek dla Ciebie za treść posta, za konkretną odpowiedź oraz za przeprosiny na początku.

Wy naprawdę zrozumieliście co się dzieje i próbujecie to poprawić? Cieszy mnie to!

Link to comment
Share on other sites

  • 0

nie mam wielkich osiągnięć w programowaniu ale zrobiłem z Waszą pomocą takie VD dla 4 telefonów i wszystko działało z WP 8.1 do czasu zamiany jednego z nich na Huawei P8

tcpSocket = Net.FTcpSocket("192.168.1.xx", 60792) 
bytes, errorCode = tcpSocket:write("test") 
 
if errorCode == 0 
then 
fibaro:setGlobal("WiFi_Mariusz_Andr", "1");  
fibaro:log("Mariusz w domu");  
else 
fibaro:setGlobal("WiFi_Mariusz_Andr", fibaro:getGlobal("WiFi_Mariusz_Andr") - 1); 
fibaro:log("Mariusz poza domem"); 
end 
 
zmienna jest ale wartość się nie zmienia
podejrzewałem, że problem leży w wolnym porcie w telefonie ale udało mi się zeskanować wolny 60792
jak to poprawić?
mam wiele scen zależnych od zmiennych sterowanych zalogowanymi wifi
zaczynam żałować, że zdradziłem Nokię
 
DD-WRT chyba nie wchodzi w grę - mam Fun Box z Orange
Link to comment
Share on other sites

  • 0

Posiadam router Asus RT-AC68U i urządzenie wirtualne ze skryptem autora tematu, niestety mimo ustawienia właściwego adresu IP, portu, użytkownika , hasła i mac adresu urządzenia które chce sprawdzać nie mogę uzyskać informacji o  zalogowaniu się tego urządzenia. Gdy w skrypcie ustawie stronę logowania routera i sprawdzenie dowolnego tekstu znajdującego się na niej wtedy działa, odnoszę wrażenie że nie mogę się zalogować, co robię nie tak?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...