piątek, 27 października 2017

Monitorowanie aktywności urządzeń w sieci

Lubię wiedzieć co się dzieje. Czy to w domu czy na świecie. Jako że nad światem nie zapanuję, można się chociaż starać sprawdzić co się dzieje w domu ;)

Większość urządzeń ma teraz połączenie bezprzewodowe i je możemy bez problemu monitorować. Laptop, konsole, tablety, drukarki - gdy są włączone na komendę arp-scan odpowiada ich adres MAC. To dzisiaj zrobimy.

Jest co prawda natywny System Alive Checker (Ping), ale u mnie więcej oszukiwał, niż podawał prawdziwe dane. Ostatnio chyba został poprawiony, ale skoro już swoje skrypty mam...

Ruszamy.

Na początek - definiowanie nowej zmiennej w Domoticz.


Niech się nazywa PRESENCE_LIST (jak w przykładzie z forum Domoticz). Format jest następujący: Adres_MAC;ID_Z_Domoticz_TEGO_CZEGO_STAN_SPRAWDZAMY| (pionowa kreska!). Na końcu łańcucha już jej nie dajemy. Czyli na przykład: aa:bb:cc:dd:ee:ff;73|bb:cc:dd:ee:ff:gg;122. Adres MAC urządzeń możemy poznać na przykład za pomocą aplikacji ipscan24.

Cyfra po średniku to IDX naszego urządzenia (które chcemy testować na obecność w sieci!) w Domoticz. Wcześniej należy pamiętać, aby stworzyć odpowiedni sprzęt w sekcji Hardware!

Czyli na przykład Playstation timer jako Dummy w Sekcji Hardware i tam tworzymy dwa Virtual sensors: jeden Switch i drugi Counter Incremental






Później konieczne będzie doinstalowanie arp-scan:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install arp-scan

I przechodzimy do sedna, czyli naszych funkcji badających obecność urządzeń w sieci.

cd domoticz

sudo nano scripts/Check_MAC.sh

I tam wstawiamy:

#!/bin/bash
MAC=$1
IDX=$2

sudo arp-scan --localnet | grep -e $MAC

if [ $? -eq 1 ]
then
echo "Device $MAC Not in LOCAL LAN"
curl "http://IP_Domoticz:Port/json.htm?type=command&param=switchlight&idx=$IDX&switchcmd=Off"
else
echo "Device $MAC in LOCAL LAN"
curl "http://IP_Domoticz:Port/json.htm?type=command&param=switchlight&idx=$IDX&switchcmd=On"
fi

Zamieniając IP_Domoticz:Port na własne IP i port

I WAŻNE, prawa do uruchamiania

sudo chmod +x /home/pi/domoticz/scripts/Check_MAC.sh

sudo nano scripts/lua/script_time_Presence.lua

A tutaj to:

function splitString(str, delim, maxNb)
    -- Eliminate bad cases...
    if string.find(str, delim) == nil then
        return { str }
    end
    if maxNb == nil or maxNb < 1 then
        maxNb = 0    -- No limit
    end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gmatch(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    -- Handle the last field
    if nb ~= maxNb then
        result[nb + 1] = string.sub(str, lastPos)
    end
    return result
end

commandArray = {}
maclist= uservariables['PRESENCE_LIST']
Lines=splitString(maclist,"|")

for i,line in pairs(Lines) do
   --print (i.." "..line)
   macs=splitString(line,";")
   print ("MAC Address to Poll: "..macs[1].." On IDX:"..macs[2])
        execcommand="sudo /home/pi/domoticz/scripts/Check_MAC.sh "..macs[1].." "..macs[2].." &"
    os.execute(execcommand)

end

I na koniec dla KAŻDEGO urządzenia:

sudo nano scripts/lua/script_time_playstation_update.lua

local timer_device_ID = 8 <---- Tu wstawiamy IDX naszego Device z Counter incremental

commandArray = {}
commandArray['UpdateDevice'] = timer_device_ID .. '|0|0'

local TotalMinutesOn = otherdevices_svalues['Playstation timer']
if otherdevices['Playstation 4'] == 'On' then
  TotalMinutesOn = TotalMinutesOn + 1
end
commandArray['UpdateDevice'] = timer_device_ID .. '|0|' .. tostring(TotalMinutesOn)

return commandArray

Co robi powyższa funkcja? Sprawdza, czy urządzenie Playstation 4 (czyli to musicie zmienić na nazwę u siebie) jest dostępna w sieci. Jeżeli tak, zwiększy licznik Playstation timer o 1, czyli i jedną minutę.


I tyle. Koniec. Tutaj jednak należy się Wam wytłumaczenie. Nazwy plików MUSZĄ rozpoczynać się od script_time_*, ponieważ jest to wewnętrzny mechanizm Domoticz, który uruchamia skrypty.

Co teraz zrobiliśmy? Napisaliśmy skrypt, który co minutę się uruchomi i sprawdzi, czy urządzenia zapisane na naszej zmiennej użytkownika są widoczne w sieci. Jeżeli tak, zwiększamy licznik.

Efekt?

Jak poniżej.

Pozdrawiam! Miłej zabawy!



EDIT.

Jak widać w komentarzach, są z tym czasem problemy, jednak ciężko mi określić, czemu może u niektórych z Was nie działać ta funkcja. Dla próby dodałem przed chwilą dzisiaj podłączony czujnik smogu na ESP. Świeża rzecz, nie ma więc prawa być w systemie, działać z tytułu zaszłości, itp. Po kolei:

1. Skoro działa, bo buczy i go słyszę, zbadajmy jaki ma adres MAC:
2. Dodaję wirtualny Switch, na Hardware typu Dummy. Zrobiłem to na istniejącym o nazwie Telefony:
3. Sprawdzam jaki ma IDX:
4. Dodaję adres MAC i IDX do zmiennej (fakt, adres MAC MAŁYMI literami):
5. Po chwili Switch odpowiada:



Idę spać, wyłączam testowy czujnik, po chwili:

79 komentarzy:

  1. Witam po podaniu polecenia sudo apt-get arp-scan pojawia się błąd
    E: Invalid operation arp-scan co moze być przyczyną?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ah! Mój błąd, poprawione! Dziękuję za zgłoszenie.

      Usuń
  2. W drugim poleceniu też jest błąd sudo apt-get ugrade
    Robię wszystko według poradnika jednak nie pokazuje mi ze urządzenie jest włączone można prosić o skrypt w pliku gotowym do wklejenia może podczas kopiowania coś cie miesza

    OdpowiedzUsuń
    Odpowiedzi
    1. Proszę bardzo, w załączniku trzy pliki, które musisz dostosować do swoich potrzeb: https://drive.google.com/file/d/1yg8_R4fJfS9MNZCmCwodg5Cw773mGfQB/view?usp=sharing

      Usuń
    2. Dalej nie widać urzadzen nie wiem w czym problem

      Usuń
    3. Dobra, w takim razie po kolei:
      1. Co odpowiada arp-scan? Dokładnie komenda sudo arp-scan --localnet | grep -e xx:xx:xx:xx:xx:xx - w miejsce xx:xx wstaw adres MAC tego, co chcesz zbadać - na przykład laptop na którym pracujesz
      2. Jeżeli poda adres IP a za nim na czerwono adres MAC, to już jesteśmy do przodu.
      3. Kolejny krok: jaki wynik daje w przeglądarce podanie http://192.168.1.200/json.htm?type=command&param=switchlight&idx=xx&switchcmd=Off? Adres IP zamień na swój, xx na numer IDX wirtual switch, który ma przejść na On, jeżeli sprzęt jest włączony. Czyli na przykład virtual switch o nazwie Laptop.
      4. Powinieneś dostać komendę:
      {
      "status" : "OK",
      "title" : "SwitchLight"
      }
      5. Status urządzenia powinien się zmienić na On

      Usuń
  3. Odpowiada adresem ip czyli ok ale nastęny krok juz nie odpowiada
    {
    "message" : "Error sending switch command, check device/hardware!",
    "status" : "ERROR",
    "title" : "SwitchLight"
    }

    OdpowiedzUsuń
  4. W takim wypadku znaczy to najprawdopodobniej, że próbujesz włączyć coś, czego nie ma, albo co nie może zostać włączone. Możesz załączyć zrzuty ekranu z Devices?

    OdpowiedzUsuń
  5. Mogę tylko nie da się dołączyć załcznika

    OdpowiedzUsuń
    Odpowiedzi
    1. Wrzuć link do imgur czy czegoś podobnego.

      Co do samego rozwiązania - na pewno działa, bo dwa tygodnie temu przechodziłem tą ścieżkę z innym kolegą :) Jeżeli będzie trzeba to jakiś komunikator wykorzystamy.

      Usuń
  6. https://www.fotosik.pl/zdjecie/pelne/fe46535e8fb06d38

    OdpowiedzUsuń
    Odpowiedzi
    1. No to nie ma opcji. Po podaniu IDX = 50, zmianie w podanym wyżej json na On musi przejść na On.

      Przychodzi mi jeszcze jedna rzecz do głowy - masz wpisaną maskę sieci domowej w Settings -> Local Networks? Bo może Domoticz Ci nie akceptuje wywołań z sieci wewnętrznej bez konieczności logowania.

      Usuń
  7. ok po wpisaniu
    http://192.168.1.208:8080/json.htm?type=command&param=switchlight&idx=50&switchcmd=On

    odpowiedż jest
    {
    "status" : "OK",
    "title" : "SwitchLight"
    }

    OdpowiedzUsuń
    Odpowiedzi
    1. Super. W takim razie teraz ikona powinna się świecić na żółto. A jeżeli tak, to teraz kolejny skrypt będzie liczył czas. Ważne, aby dobra nazwa była podana

      Usuń
  8. Tylko nie wiem czemu po około 30 sek wyłącza sie samoczynnie

    OdpowiedzUsuń
    Odpowiedzi
    1. No to kolejne pytanie - czy NA PEWNO masz dobrze przypisany adres MAC do IDX? Wklej może również tutaj zawartość zmiennej PRESENCE_LIST (lub takiej jaka jest u Ciebie). Wygląda na to, że włączasz włącznik ręcznie, jest ok, później skrypt wykrywa, że jednak na podstawie MAC go nie widzi i ustawia go na wyłączony.

      Usuń
  9. PRESENCE_LIST Ciąg znaków 1c:5a:3e:3d:fa:1e;50|1C:23:2C:8D:B5:1D;51

    OdpowiedzUsuń
  10. LUA: MAC Address to Poll: 1C:23:2C:8D:B5:1D On IDX:57
    Takie coś mam w logach ale dalej nie pokazuje urządzeń

    OdpowiedzUsuń
    Odpowiedzi
    1. No ale chwila... W PRESENCE_LIST masz inne IDX...

      Usuń
  11. No nie dodałem nowe urzadzenie i zmienł sie idx i zmienilem tez w presence_list ale dalej nie pokazuje stanu juz tego nie ogarniam

    OdpowiedzUsuń
    Odpowiedzi
    1. Rozumiem. To jest w sumie bardzo prosty mechanizm:
      1. Na podstawie adresu MAC sprawdzamy czy sprzęt odpowiada
      2. Jeżeli tak - włączamy przełącznik na On
      3. Skrypt sprawdza na podstawie nazwy czy jest włączony
      4. Jest włączony -> Dodaj minutę do czasu używania

      I tak w kółko. Działa mi to dla 10 urządzeń bez problemów -
      konsole, komputery, drukarka, telefony. Jedynie tygodniowe wykresy w Domoticz są błędne, ale miesięczne i roczne się rysują.

      Jeżeli jeszcze się nie poddałeś, to starałbym się maksymalnie to na początek uprościć, czyli:
      1. W zmiennej wyłącznie jeden adres
      2. Jeden włącznik
      3. Bez skryptu sumującego czas

      Jeżeli przełącznik włączony pozostanie włączony - to już dobry start. Jeżeli chcesz możemy popisać na jakimś komunikatorze, czy na e-mail - wtedy można więcej i szybciej wiadomości przekazać. FB? What's app?

      Usuń
  12. jankes2008@gmail.com czekam na jakieś namiary

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam. Mam ten sam problem co Ty. Zauważyłem że u Ciebie w PRESENCE_LIST adres MAC ma duże litery. U mnie komenda sudo arp-scan --localnet | grep -e 1c:5a:3e:f5:d0:6e gdy MAC był z dużymi literami nie działała. Po zmianie na małe litery daje wynik: 192.168.0.3 1c:5a:3e:f5:d0:6e (Unknown). Ale i tak nie włącza mi urządzenia, gdy włączę go ręcznie to czas jest zliczany. Co to może być? Dziękuję za pomoc

      Usuń
    2. Panowie, dodałem mały komentarz z objaśnieniem. Może to coś rozjaśni...

      Usuń
  13. Dzięki za pomoc ale u mnie niestety nie włącza urządzenia gdy jest w sieci. Znalazłem takie logi w Domoticzu:
    2017-11-28 17:48:00.174 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Presence.lua: /home/pi/domoticz/scripts/lua/script_time_Presence.lua:34: attempt to concatenate field '?' (a nil value)
    Tu jest problem, jak sprawdzić czy z Presence_List prawidłowo odczytuje MAC i Idx?

    OdpowiedzUsuń
    Odpowiedzi
    1. Na przykład: sudo /home/pi/domoticz/scripts/Check_MAC.sh e0:2a:82:a7:0e:d0 72

      Gdzie pierwsze to MAC, drugie IDX Switcha.

      Ale coraz bardziej mnie to wszystko dziwi. Nawet ostatnio stawiałem Raspbiana od nowa i wszystko to poszło 'od strzału'

      Usuń
  14. I jeszcze taki wpis w logach:
    2017-11-28 19:26:00.214 EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_time_TV_update.lua
    2017-11-28 19:26:00.226 LUA: MAC Address to Poll: 1c:5a:3e:f5:d0:6e On IDX:215

    Jak włączę ręcznie urządzenie to zlicza czas.

    OdpowiedzUsuń
  15. Wszystko się wyjaśniło:
    cd domoticz/scripts
    sudo chmod +x Check_MAC.sh
    Nie było praw dostępu do pliku
    Wielkie dzięki za pomoc wszystko działa.

    OdpowiedzUsuń
    Odpowiedzi
    1. Aaahhh. Fakt! Mam to na liście ‚to do’ przy stawianiu nowej instalacji, zapomniałem tutaj wstawić. Dziękuję bardzo, zaraz poprawię wpis i przy okazji dodam do wpisu o backupie. Tam też brakuje

      Usuń
    2. Witaj,
      mam problem z tym skryptem :( W logach pojawia mi się coś takiego: rror: EventSystem: in /home/domoticz/domoticz/scripts/lua/script_time_dell__update.lua: ...moticz/domoticz/scripts/lua/script_time_dell__update.lua:4: attempt to concatenate global 'timer_device_ID' (a nil value)
      i nie wiem o co chodzi....

      Usuń
    3. Cześć. Literówka się wkradła. W deklaracji zmiennej powinno być: local timer_device_ID = 8. Poprawiłem w blogu, dziękuję za zwrócenie uwagi

      Usuń
  16. Udało mi się usunąć błędy z logów, ale skrypt nadal nie zmienia stanu urządzenia, a co z tym idzie licznik nie nalicza minut :(

    OdpowiedzUsuń
    Odpowiedzi
    1. Może komentarze wcześniej naprowadzą Cię na trop? Krok po kroku robiliśmy to tutaj z innymi osobami.

      Usuń
    2. Check_MAC.sh działa prawidłowo, po jego wywołaniu przez sudo w domoticz zmienia się stan przełącznika. Natomiast skrypt script_time_Presence.lua nie wiedzieć czemu nie wywołuje skryptu Check_MAC :(

      Usuń
    3. E-mail poszedł. Ale - nadałeś prawa do uruchamiania dla pliku?

      Usuń
  17. podałbyś mi do siebie e-mail na adres wojtek@majki.xyz? Cobyśmy komentarzy nie zaśmiecali.....

    OdpowiedzUsuń
  18. ja mam taki bład w logach:
    2018-04-13 12:23:00.346 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Presence.lua: /home/pi/domoticz/scripts/lua/script_time_Presence.lua:33: attempt to concatenate field '?' (a nil value)

    OdpowiedzUsuń
  19. Problem błedu rozwiazany , lecz dalej nie zlicza mi czasu ani stanu.Wojtem Maj rozwiazałes ten problem?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ponownie: co się dzieje gdy odpalisz http://192.168.1.200/json.htm?type=command&param=switchlight&idx=xx&switchcmd=Off? Adres IP zamień na swój, xx na numer IDX wirtual switch, który ma przejść na On, jeżeli sprzęt jest włączony. Czyli na przykład virtual switch o nazwie Laptop.

      Usuń
  20. Po odpaleniu komendy switch(lampka sygnalizujaca zapalenie w domoticzu) się zapala lecz wyłacza się samoczynnie po minucie .Czasu dalej nie zlicza.

    OdpowiedzUsuń
    Odpowiedzi
    1. W takim razie oznacza to, że jednak nie znajduje działającego urządzenia w sieci i skrypt uznaje, że powinien ustawić Switch jako Off. Adresy MAC są poprawnie wpisane w zmienną użytkownika?

      Usuń
  21. A mógłbyś mi podesłać swoje skrypty na email?Albo upchnąć na dysk google

    OdpowiedzUsuń
    Odpowiedzi
    1. Oczywiście. Nawet kiedyś tu były, ale je usunąłem z jakiegoś powodu. https://drive.google.com/open?id=1eF-xJHcdSnQTXsspV3utLs4jkGr2F-MM

      Usuń
  22. Już ogarnełem .Wszystko działa .Serdeczne dzieki!!!

    OdpowiedzUsuń
  23. Hej, super stronka i bardzo cenne rozwiązania! :)
    Zacząłem dopiero przygodę z Domoticzem i staram się wdrożyć to rozwiązanie powyżej - przełącznik działa ale ma problem ze skryptem czytającym czas - dostaje komunikat jak niżej w logach:
    "2018-08-14 01:50:00.434 Error: EventSystem: in /home/pi/domoticz/script_s/lua/script__time_iphone_asia_update.lua: .../domoticz/script_s/lua/script__time_iphone_asia_update.lua:3: unexpected symbol near '='" Podpowiesz coś? Skrypt skopiowany ze strony tylko nazwy zmienione i oczywiście IDX:) Z góry dzięki!:)

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć, miło słyszeć, że informacje są przydatne.

      Na początek polecam pobrać skrypty z google drive umieszczone w linku powyżej, wydaje mi się, że wiele się wtedy wyjaśni. Oczywiście służę pomocą, jeżeli będzie inaczej.

      Usuń
  24. Cześć,

    Nie wiem czemu, ale u mnie ten arp-scan trwa w nieskończoność. Przerobiłem skrypty na arping, ale prawdę mówiąc mam duże wątpliwości, czy skuteczność jest równie dobra.

    Druga sprawa, to czy coś specjalnego trzeba zrobić, żeby na sensorze z licznikiem pojawiła się sekcja "Today" ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Specem nie jestem, ale apr-scan powinien szybko zakończyć działanie, może ma problem z jakimś adresem MAC?

      Co do 'Today' - nic nie robiłem w tym celu - Domoticz sam mi wstawił tę wartość. Ja jednak ciągle jestem na poprzedniej stabilnej wersji, może coś się w tym kontekście zmieniło. Dopiero powoli stawiam wszystko od nowa na Stretch z zamiarem przejścia na nową wersję Domoticz.

      Usuń
    2. Dzięki za info, faktycznie ja używam aktualnie do testów najnowszej wersji z bety i może usunęli ten ficzer, a szkoda.

      Z arp-scan'em to nie mam pojęcia skąd u mnie ten problem ale może jeszcze powalczę, w każdym razie dzięki za info i za całego bloga - jest motywujący do grzebania :)

      Usuń
    3. Będzie jeszcze dużo ciekawostek, solennie obiecuję!

      Usuń
    4. Mam ten sam problem. Nie pokazuje czasu 'Today' tylko zlicza wszystko w jedną wartość.
      W urządzaniu masz ustawiony Typ Counter i uzupełnione 'Value Units' jako Minuty?
      Jest dostępny typ 'Time', lecz on nie pokazuje wartości tylko pytajnik '?', tak jakby był jakiś błąd z tym.

      Czy może testowałeś to już na nowym Stretch ?

      Usuń
    5. Wydaje mi się, że brak Today może mieć coś wspólnego z nową wersją Domoticz. Type: Counter, Value Units jako Minutes (Domoticz trzymam cały po angielsku). Ja nawet nie mam typu Time ;)

      Na Stretch nie przeszedłem, bo nie udało mi się w normalnym czasie (dwa wieczory) wszystkiego skonfigurować tak jak chciałem, a na rok 2019 mam inne plany ;)

      Usuń
  25. Cześć dzięki za super blog!
    Zrobiłem wszystko wg Twojego poradnika, a w logach pojawia się coś takiego
    2018-10-08 20:30:00.121 Status: LUA: MAC Address to Poll: b0:c0:90:9f:d7:a4 On IDX:95
    2018-10-08 20:30:00.220 Status: EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_time_dellewa_update.lua

    więc wydaje się że wszystko dobrze, ale po 4 sekundach taki log:
    2018-10-08 20:30:04.655 Status: User: Admin initiated a switch command (95/Dell Ewa/Off)

    Czemu się przełącza na OFF?

    OdpowiedzUsuń
    Odpowiedzi
    1. Wydaje mi się, że będzie to problem opisywany w jednym z komentarzy: http://cezarowy.blogspot.com/2017/10/monitorowanie-aktywnosci-urzadzen-w.html?showComment=1524482911424#c7508971726931756442

      Usuń
  26. Witam
    Skrypt ciekawy, u mnie na początku nie działał do końca, doinstalowałem culr i poszło. Jeśli chodzi o status wł/wył to działa OK. Problem u mnie wystąpił, gdy do folderu lua zapisałem skrypty dla pomiaru czasu dla każdego komputera stacjonarnego. Skończyło się to najpierw wyczyszczeniem ustawień ( tak jakbym miał nową instalkę Domoticz ), a później przeszedł do Offline. W sumie za pierwszym razem myślałem, że to przypadek. Ale zainstalowałem od nowa całego Armbiana i Domoticza i ponownie dodałem te skrypty i stało się to samo. Samo Orange Pi działa, jak również zainstalowane na nim usługi np. nginx.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja takie przypadki miałem na Raspberry Pi, po instalacji pluginów. Tutaj wydaje mi się, że problemem może być mechanizm uruchamiający skrypty automatycznie (a tak Domoticz robi, gdy pojawia się przedrostek script_time). Wydaje mi się, że zamiast reinstalacji wystarczyłoby skasować 'felerne' pliki z folderu. Przy okazji - jak sprawuje Ci się Orange Pi? Dopiero kilka miesięcy użytkuję Orange Pi Zero Plus i mimo braku wsparcia - jestem całkiem zadowolony.

      Usuń
    2. Ja użytkuję Orange Pi Zero już koło roku. Nie narzekam, działa nieźle ( nie licząc tego skryptu do sprawdzania aktywności :-) ). Udało mi się uruchomić na jego karcie muzycznej radio internetowe sterowane z Domoticza ( wł/wył, wybór stacji, głośność ), integracja z Airly ( sieć czujników zanieczyszczenie PM10/PM2.5), integracja z Burze.dzis.net, nawet ruszył chiński wyświetlacz 320x240 po SPI, udało mi się zaimportować GPIO ( tutaj nieco trudniej było z GPIO niż w Raspberry Pi ) i sterować wentylatorem w oparciu o odczyt temperatury z Orange PI, no i ostatnio napisałem sobie skrypt w Pyhonie, który odczytuje dane z konwertera USB/Uart i dopisuje je do wybranych czujników ( działa, tylko temperatura CPU skoczyła z 37 do 54 stopni i zwiększyło się zużycie CPU z 6% do 27% ).
      Wracając do skryptu - kiedyś używałem skryptu do sterowania pinami ESPEasy - dimmer. Zaczynał się od script_device. Nie było z nim problemu.

      Usuń
    3. Chyba zrezygnuję z tego skryptu, wczoraj na początek dałem tylko samo sprawdzanie aktywności, bez liczenia czasu i w nocy się rozłożył Domoticz. Na szczęście usunięcie plików z katalogu pomogło

      Usuń
    4. No widzę, że się napracowałeś na Orange Pi. Bardzo mnie to pocieszyło, bo dobrze wróży mojemu NAS. Będę wszystko spinał w kolejnych dniach. Co do skryptu - wybieramy to co nam pasuje :) Ma działać stabilnie i cieszyć, a nie stresować. Może spróbuj wbudowanej funkcjonalności w Domoticz? Alive checker się chyba nazywa.

      Usuń
  27. juz nie daje rady
    {
    "message" : "Error sending switch command, check device/hardware !",
    "status" : "ERROR",
    "title" : "SwitchLight"
    }

    OdpowiedzUsuń
  28. http://192.168.2.109:8080/json.htm?type=command&param=switchlight&idx=10&switchcmd=on
    coś nie tak z tym poleceniem (ip, port, idx) wszystko się zgadza

    OdpowiedzUsuń
    Odpowiedzi
    1. Co dokładnie masz pod IDX=10 na zakładce Devices?

      Usuń
  29. no właśnie cały artykuł jest o tym jak zastąpić standardową funkcjonalność domoticza System Alive Checker która nie działa poprawnie !
    generuje mnóstwo fake'owych komunikatów
    a może pójść w tą stronę żeby poprawić tą funkcję w domoticzu
    ja niestety mam go uruchomionego na Synology NAS i nie mam zielonego pojęcia jak tam doinstalować arp-scan
    aczkolwiek bardzo mi zależy żeby np. wiedzieć ile czasu moje dziecko gra na PlayStation

    OdpowiedzUsuń
    Odpowiedzi
    1. Może namp się nada? https://github.com/SynoCommunity/spksrc/issues/3519

      Usuń
  30. Jak zmienić jednostkę w Counter Incremental z Kwh na minuty ?
    Nie mogę znaleźć takiej opcji.
    Pozdrawiam
    Krzysztof

    OdpowiedzUsuń
    Odpowiedzi
    1. Użytkowe>edycja na odpowiednim liczniku.

      Usuń
  31. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  32. Czu urządzenia podpięte do WiFi też powinien pokazywać ? U mnie pokazuje tylko sprzęty podpięte kablem, telefon córki, mimo, iż jest zalogowany do routera - widzę go w liści klientów DHCP i mam go w ręku, to pokazuje, że jest wyłączony.

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie widzi żadnego urządzenie podpiętego przez WiFi,
      jak wpiszę:
      sudo /home/domoticz/domoticz/scripts/Check_MAC.sh d0:f8:8c:8c:57:bf 48
      to mam odpowiedź:
      Device 60:01:94:20:2b:97 Not in LOCAL LAN
      {
      "status" : "OK",
      "title" : "SwitchLight"
      }


      po kablu OK

      Usuń
  33. Witam
    Zainstalowałem ten skrypt. Błędów nie ma, tylko że nie działa z automatu.
    W logach mam:
    2019-11-30 13:11:00.037 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Ania_tel_update.lua
    2019-11-30 13:11:00.053 Status: LUA: MAC Address to Poll: 90:2b:34:1f:bb:40 On IDX:23
    2019-11-30 13:11:00.068 Status: LUA: MAC Address to Poll: 90:2b:34:1f:bb:4e On IDX:27
    2019-11-30 13:11:00.083 Status: LUA: MAC Address to Poll: d0:f8:8c:8c:3b:eb On IDX:29
    2019-11-30 13:11:00.100 Status: LUA: MAC Address to Poll: d0:f8:8c:8c:57:bf On IDX:25
    2019-11-30 13:11:00.118 Status: LUA: MAC Address to Poll: 90:2b:34:1d:b5:03 On IDX:31
    2019-11-30 13:11:00.184 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Piotr_komp_update.lua
    2019-11-30 13:11:00.202 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Basia_komp_update.lua
    2019-11-30 13:11:00.215 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Ania_komp_update.lua
    2019-11-30 13:11:00.228 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Basia_tel_update.lua

    ale nie przełącza.
    Jak zrobię ręcznie:
    sudo /home/domoticz/domoticz/scripts/Check_MAC.sh 90:2b:34:1f:bb:40 23
    to działa i przełącza ( jeśli jest dostępny )
    Zastanawiam się jak ma być z właścicielem i grupą do które nalezą pliki skryptu. U mnie jest zarówno user jak i grupa domoticz.

    OdpowiedzUsuń
  34. Witam
    Niestety w nowej wersji Domoticz 2020.1 pod Armbian Buster na Orange Pi PC licznik dodaje więcej niż 1 minuta - 7 do 10 "na minutę". Efekt - po 10 prawdziwych minutach mam na liczniku 107 minut aktywności.

    OdpowiedzUsuń
    Odpowiedzi
    1. Jako że nie aktualizuję już od dawna, myślałem, że te poprawiono tę funkcjonalność w Domoticz ;)

      Usuń
    2. Witam. Zamiast „Licznika przyrostowego” wybierz „Licznik” i skrypt znowu działa poprawnie.

      Usuń
  35. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  36. Mam to samo :(
    A taki fajny skrypt :(

    OdpowiedzUsuń
  37. Witam, jak wydłużyć czas oczekiwania na odpowiedź urządzenia. Z kilku tylko jedno mi nie działa. Jest one najbardziej oddalone od routera a w windows jako jedyne ping'uje powyżej 100ms

    OdpowiedzUsuń