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.
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¶m=switchlight&idx=$IDX&switchcmd=Off”
else
echo „Device $MAC in LOCAL LAN”
curl „http://IP_Domoticz:Port/json.htm?type=command¶m=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:
Witam po podaniu polecenia sudo apt-get arp-scan pojawia się błąd
E: Invalid operation arp-scan co moze być przyczyną?
Ah! Mój błąd, poprawione! Dziękuję za zgłoszenie.
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
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
Dalej nie widać urzadzen nie wiem w czym problem
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¶m=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
Odpowiada adresem ip czyli ok ale nastęny krok juz nie odpowiada
{
"message" : "Error sending switch command, check device/hardware!",
"status" : "ERROR",
"title" : "SwitchLight"
}
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?
Mogę tylko nie da się dołączyć załcznika
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.
https://www.fotosik.pl/zdjecie/pelne/fe46535e8fb06d38
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.
Mam wpisane 192.168.1.*
ok po wpisaniu
http://192.168.1.208:8080/json.htm?type=command¶m=switchlight&idx=50&switchcmd=On
odpowiedż jest
{
"status" : "OK",
"title" : "SwitchLight"
}
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
Tylko nie wiem czemu po około 30 sek wyłącza sie samoczynnie
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.
PRESENCE_LIST Ciąg znaków 1c:5a:3e:3d:fa:1e;50|1C:23:2C:8D:B5:1D;51
Kurde no… Dobrze jest…
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ń
No ale chwila… W PRESENCE_LIST masz inne IDX…
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
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?
jakieś namiary na fb
jankes2008@gmail.com czekam na jakieś namiary
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
Panowie, dodałem mały komentarz z objaśnieniem. Może to coś rozjaśni…
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?
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.
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'
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.
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
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….
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
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 🙁
Może komentarze wcześniej naprowadzą Cię na trop? Krok po kroku robiliśmy to tutaj z innymi osobami.
podałbyś mi do siebie e-mail na adres wojtek@majki.xyz? Cobyśmy komentarzy nie zaśmiecali…..
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 🙁
E-mail poszedł. Ale – nadałeś prawa do uruchamiania dla pliku?
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)
Problem błedu rozwiazany , lecz dalej nie zlicza mi czasu ani stanu.Wojtem Maj rozwiazałes ten problem?
Ponownie: co się dzieje gdy odpalisz http://192.168.1.200/json.htm?type=command¶m=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.
Po odpaleniu komendy switch(lampka sygnalizujaca zapalenie w domoticzu) się zapala lecz wyłacza się samoczynnie po minucie .Czasu dalej nie zlicza.
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?
A mógłbyś mi podesłać swoje skrypty na email?Albo upchnąć na dysk google
Oczywiście. Nawet kiedyś tu były, ale je usunąłem z jakiegoś powodu. https://drive.google.com/open?id=1eF-xJHcdSnQTXsspV3utLs4jkGr2F-MM
Już ogarnełem .Wszystko działa .Serdeczne dzieki!!!
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!:)
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.
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" ?
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 ?
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 😉
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.
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 🙂
Będzie jeszcze dużo ciekawostek, solennie obiecuję!
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?
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
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.
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.
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 320×240 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.
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
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.
juz nie daje rady
{
"message" : "Error sending switch command, check device/hardware !",
"status" : "ERROR",
"title" : "SwitchLight"
}
http://192.168.2.109:8080/json.htm?type=command¶m=switchlight&idx=10&switchcmd=on
coś nie tak z tym poleceniem (ip, port, idx) wszystko się zgadza
Co dokładnie masz pod IDX=10 na zakładce Devices?
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
Może namp się nada? https://github.com/SynoCommunity/spksrc/issues/3519
Jak zmienić jednostkę w Counter Incremental z Kwh na minuty ?
Nie mogę znaleźć takiej opcji.
Pozdrawiam
Krzysztof
Użytkowe>edycja na odpowiednim liczniku.
Ten komentarz został usunięty przez autora.
Witam
Mam ze skryptem mały problem.
W logach mam
2019-11-18 20:08:00.464 Status: LUA: MAC Address to Poll: 90:2b:34:1f:bb:40 On IDX:30
2019-11-18 20:08:00.480 Status: LUA: MAC Address to Poll: 90:2b:34:1f:bb:4e On IDX:26
2019-11-18 20:08:00.496 Status: LUA: MAC Address to Poll: d0:f8:8c:8c:3b:eb On IDX:28
2019-11-18 20:08:00.524 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Ania_komp_update.lua
2019-11-18 20:08:00.543 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Basia_komp_update.lua
2019-11-18 20:08:00.559 Status: EventSystem: Script event triggered: /home/domoticz/domoticz/scripts/lua/script_time_Basia_tel_update.lua
W terminalu jak wpiszę:
domoticz@orangepione:~/domoticz/scripts$ sudo /home/domoticz/domoticz/scripts/Check_MAC.sh 90:2b:34:1f:bb:40 30
to mam:
192.168.0.219 90:2b:34:1f:bb:40 GIGA-BYTE TECHNOLOGY CO.,LTD.
Device 90:2b:34:1f:bb:40 in LOCAL LAN
curl: (6) Could not resolve host: http
Ręcznie mogę włączyć „przełącznik” i zlicza, ale automatycznie nie chce.
Ustawienia sprzętu:
Basia komputer 0001406A 1 Basia komp stan Light/Switch Switch Off
Basia komputer 82041 1 Basia komp czas General Counter Incremental 1 Minuty
Basia telefon 0001406C 1 Basia telefon stan Light/Switch Switch Off
Basia telefon 82029 1 Basia telefon czas General Counter Incremental 0 Minuty
Ania komputer 0001406E 1 Ania komp stan Light/Switch Switch Off
Ania komputer 82031 1 Ania komp czas General Counter Incremental 0 Minuty
Zmienna PRESENCE_LIST:
90:2b:34:1f:bb:40;30|90:2b:34:1f:bb:4e;26|d0:f8:8c:8c:3b:eb;28
Zapomniałem dodać:
script_time_Basia_tel_update.lua
local timer_device_ID = 29
commandArray = {}
commandArray[’UpdateDevice’] = timer_device_ID .. '|0|0′
local TotalMinutesOn = otherdevices_svalues[’Basia telefon czas’]
if otherdevices[’Basia telefon stan’] == 'On’ then
TotalMinutesOn = TotalMinutesOn + 1
end
commandArray[’UpdateDevice’] = timer_device_ID .. '|0|’ .. tostring(TotalMinutesOn)
return commandArray
script_time_Presence.lua
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/domoticz/domoticz/scripts/Check_MAC.sh "..macs[1].." "..macs[2].." &"
os.execute(execcommand)
end
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.
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
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.
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.
Ten komentarz został usunięty przez autora.
Mam to samo 🙁
A taki fajny skrypt 🙁
Jako że nie aktualizuję już od dawna, myślałem, że te poprawiono tę funkcjonalność w Domoticz 😉
Witam. Zamiast „Licznika przyrostowego” wybierz „Licznik” i skrypt znowu działa poprawnie.
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
52 yr old Research Nurse Arlyne Dilger, hailing from Saint-Hyacinthe enjoys watching movies like Americano and Inline skating. Took a trip to Historic Fortified Town of Campeche and drives a Jaguar D-Type. pojawiaja sie na tej stronie internetowej