Kolejna prośba o ws...
 
Powiadomienia
Wyczyść wszystko

Domoticz Kolejna prośba o wsparcie przy skryptach Blockly i DzVents

szmydu
(@szmydu)
Stażysta

Cześć, mam prośbę o wsparcie w doprowadzeniu dwóch skryptów do oczekiwanego przeze mnie działania.

1. Sterowanie oświetleniem w wiatrołapie przez czujkę PIR i dwie zmienne:

Wiatrołap PIR

Ogólnie to działa, lecz jak światło się zapali to nie da się zgasić światła przyciskiem, gaśnie i momentalnie się zapala. Oświetlenie gaśnie samo po 60s (domyślny czas zmiany stanu czujki) + 20s jak nie wykryje ruchu. Problemu nie ma jak w warunku jest tylko jedna zmienna, obojętnie która (dla jasności Ryśka to kot 🙂 )

2. Mama taki skrypt, nie mojego autorstwa, do robienia zdjęć z kamery gdy ktoś zadzwoni do drzwi:

return {
on = {
devices = {'Dzwonek'},
},

execute = function(domoticz, device)
if(device.state == 'On') then
local teleTok = **********************
local chatId = '***************************
local snapFile = '/home/pi/domoticz/scripts/camera_'
local domoReq = 'http://******************/cgi-bin/snapshot.cgi'
local camName = 'Kamera'
os.execute('wget -O "'..snapFile..camName..'.jpg" "'..domoReq..'"')
os.execute('curl -s -X POST "https://api.telegram.org/bot'..teleTok..'/sendPhoto?chat_id='..chatId..'" -F photo="@'..snapFile..camName..'.jpg"')
os.execute("rm " ..snapFile..camName..'.jpg')

end
end
}

Chciałbym aby zdjęcie nie było robione po każdym naciśnięciu klawisza dzwonka, tylko np. z przerwą 5 s pomiędzy naciśnięciami.

 

Cytuj
Autor tematu Dodane : 11/05/2021 9:57 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@szmydu w skrypcie foto - telegram można zmienić

execute = function(domoticz, device)
if(device.state == 'On') then

na

execute = function(domoticz, device)
if device.state =='On' and device.lastUpdate.secondsAgo > 4 then

to spowoduje że po pierwszym naciśnięciu dzwonka zostanie wysłana fotka i następne naciśnięcia muszą być w odstępach dłuższych niż 4 sek.

Przy pierwszym nie pomogę bo nic nie wiadomo , skryptu widać kawałek , nie wiadomo po co są zmienne , szczególnie ta z kotem i nie widzę powodu żeby oświetlenie dało się wyłączyć przyciskiem skoro jest aktywowane czujnikiem a przycisk nie występuje w skrypcie 

 

OdpowiedzCytuj
Dodane : 11/05/2021 12:06 pm
szmydu
(@szmydu)
Stażysta

Dzięki za skrypt do foto, co do światła w wiatrołapie to działa to tak. Włącznik na ścianie jest podpięty pod arduino i przez MySensors jest widoczny w Domoticzu. W skrypcie ten włącznik to "Ośw. wiatrołap".  Zmienna Dzień ustawiana jest na 1 pomiędzy wschodem i zachodem słońca, a RyśkaNaWyganiu ustawiana jest na 1 gdy kot nocuje w wiatrołapie. Czujka PIR ma zapalać światło gdy Dzień = 0 i  RyśkaNaWyganiu = 0 (żeby kot nie zapalał światła jak jest w wiatrołapie). Wcześniej wkleiłem tylko fragment bo w jednym skrypcie w kolejnych "else if" mam następne czujki PIR obsłużone. Przeniosłem obsługę czujki PIR w wiatrołapie do osobnego skryptu dla przejrzystości. Cały skrypt wygląda tak:

wiatrołap 2

i jak czujka PIR zaświeci światło i gasi, lecz niemożliwe jest zgaszenie przyciskiem. Jak usunę zmienne to skrypt wygląda tak :

wiatrołap 3

i czujka ładnie zapala światło i gasi. Możliwe jest też gaszenie przyciskiem.

 

 

Zmieniłem w skrypcie linijkę którą wskazałeś na:

if device.state =='On' and device.lastUpdate.secondsAgo > 4 then

lecz niestety to nie działa. Zdjęcia przestały w ogóle przychodzić. Poprawiłem na :

if (device.state =='On' and device.lastUpdate.secondsAgo > 4) then

lecz też nic to nie dało.

W logu domoticza jest:

2021-05-11 14:33:18.273 (Arduino - dzwonkowe) Light/Switch (Dzwonek)
2021-05-11 14:33:18.371 Status: dzVents: Info: Handling events for: "Dzwonek", value: "Off"
2021-05-11 14:33:18.371 Status: dzVents: Info: ------ Start internal script: Dzwonek - zdjęcie: Device: "Dzwonek (Arduino - dzwonkowe)", Index: 49
2021-05-11 14:33:18.371 Status: dzVents: Info: ------ Finished Dzwonek - zdjęcie
OdpowiedzCytuj
Autor tematu Dodane : 11/05/2021 1:40 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@szmydu dziwne to trochę, wklej taki skrypt zmieniając dane na swoje i wrzuć logi 

return {
    on = { 
       devices = {'Dzwonek'},
    },
    logging =
    {
        level = domoticz.LOG_DEBUG,
        marker = Fotka_dzwonek,
    },
    execute = function(dz, device)
        if device.state == 'On' and device.lastUpdate.secondsAgo > 4 then
            dz.log('Ktoś dzwoni do drzwi')
            local teleTok   = 'xxxxxxxxxxxxxxxxxxxxx'
            local chatId    = 'xxxxxxxxxxxxxxx'
            local snapFile  = '/home/pi/domoticz/scripts/camera_'
            local domoReq   = 'http://adres kamery'
            local camName   = 'Nazwa kamery'
            os.execute('wget -O "'..snapFile..camName..'.jpg" "'..domoReq..'"')
            os.execute('curl -s -X POST "https://api.telegram.org/bot'..teleTok..'/sendPhoto?chat_id='..chatId..'" -F photo="@'..snapFile..camName..'.jpg"')
            os.execute("rm " ..snapFile..camName..'.jpg')
            dz.log('Foto poszło ')
        end
    end
}

Co do blockly to napisz jak - czym zmieniasz tą zmienną kot , to może coś zrobię w dzVents

OdpowiedzCytuj
Dodane : 11/05/2021 6:32 pm
szmydu
(@szmydu)
Stażysta

Uruchomiłem ten skrypt i zdjęcie nie doszło. W logach jest:

2021-05-11 21:31:20.265 (Arduino - dzwonkowe) Light/Switch (Dzwonek)
2021-05-11 21:31:20.161 Status: User: Admin initiated a switch command (49/Dzwonek/On)
2021-05-11 21:31:20.359 Status: dzVents: Info: Handling events for: "Dzwonek", value: "On"
2021-05-11 21:31:20.359 Status: dzVents: Info: ------ Start internal script: Dzwonek 2: Device: "Dzwonek (Arduino - dzwonkowe)", Index: 49
2021-05-11 21:31:20.359 Status: dzVents: Info: ------ Finished Dzwonek 2
2021-05-11 21:31:21.399 (Arduino - dzwonkowe) Light/Switch (Dzwonek)
2021-05-11 21:31:21.544 Status: dzVents: Info: Handling events for: "Dzwonek", value: "Off"
2021-05-11 21:31:21.544 Status: dzVents: Info: ------ Start internal script: Dzwonek 2: Device: "Dzwonek (Arduino - dzwonkowe)", Index: 49
2021-05-11 21:31:21.544 Status: dzVents: Info: ------ Finished Dzwonek 2

 

Po usunięciu fragmentu " and device.lastUpdate.secondsAgo > 4 " zdjęcia dochodzą. 

Co do zmiennej Kot, to steruje nią zwykły wirtualny przycisk i zdarzenie w blockly. Gdy ON to zmienna przyjmuje wartość 1 gdy OFF to zmienna przyjmuje wartość 0.

PS. Gdzie można znaleźć jakieś materiały do dzVents ? Jest opis struktury w domoticzu jak się dodaje nowy skrypt, i z nim się zapoznałem,  ale cała zabawa zaczyna się po poznaniu funkcji i metod. Jest gdzieś jaki ich wykaz i opis ? Nie chciałbym za każdym razem zawracać głowy jak wpadnę na kolejny pomysł automatyzacji w domu 🙂 

OdpowiedzCytuj
Autor tematu Dodane : 11/05/2021 9:36 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

To co widać u Ciebie to u mnie jest wtedy gdy aktywuję przełącznik w czasie krótszym niż 4 sek . Mam przełącznik "test" pierwsze włączenie wyzwala skrypt i wysyła fotkę , kolejne trzy włączenia w odstępach krótszych niż 4 sek daje w logu to sam co u Ciebie i oczywiście nie wysyła fotek bo tak ma być 

2021-05-12 10:08:25.849 Status: dzVents: Info: Handling events for: "test", value: "On"
2021-05-12 10:08:25.849 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:25.849 Status: dzVents: Info: Ktoś dzwoni do drzwi
2021-05-12 10:08:29.876 Status: dzVents: Info: Foto poszło
2021-05-12 10:08:29.876 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:30.082 Status: dzVents: Info: Handling events for: "test", value: "Off"
2021-05-12 10:08:30.082 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:30.082 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:30.219 Status: dzVents: Info: Handling events for: "test", value: "On"
2021-05-12 10:08:30.219 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:30.219 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:32.120 Status: dzVents: Info: Handling events for: "test", value: "Off"
2021-05-12 10:08:32.120 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:32.121 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:33.582 Status: dzVents: Info: Handling events for: "test", value: "On"
2021-05-12 10:08:33.582 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:33.582 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:35.669 Status: dzVents: Info: Handling events for: "test", value: "Off"
2021-05-12 10:08:35.670 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:35.670 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:36.887 Status: dzVents: Info: Handling events for: "test", value: "On"
2021-05-12 10:08:36.887 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:36.887 Status: dzVents: Info: ------ Finished Foto
2021-05-12 10:08:38.920 Status: dzVents: Info: Handling events for: "test", value: "Off"
2021-05-12 10:08:38.920 Status: dzVents: Info: ------ Start internal script: Foto: Device: "test (Czujniki użytk)", Index: 474
2021-05-12 10:08:38.920 Status: dzVents: Info: ------ Finished Foto

Pytanie , jaką masz wersję domoticz a co za tym idzie Dzvents ? 

 

OdpowiedzCytuj
Dodane : 12/05/2021 10:32 am
szmydu
(@szmydu)
Stażysta

Domoticz jest w wersji 2020.2. Dokładnie:

Version: 2020.2
Build Hash: b63341bc0
Compile Date: 2020-04-26 13:47:55
dzVents Version: 3.0.2
Python Version: 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0]

 

Na forum domoticza znalazłem taki wpis:

Tjalling94 wrote: Tuesday 22 September 2020 22:01I'm running some dzVents scripts that use the 'lastUpdate' from the triggeredDevice. For some months the lastUpdate is the current time (or 1-2 sec old) while expect it to be the time it was updated before this script was called. I can't figure out what's wrong.

This is a bug in latest Stable. It was fixed in build 12002

OdpowiedzCytuj
Autor tematu Dodane : 12/05/2021 11:15 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

Można kombinować inną metodą zablokować wysyłanie fotek przy kolejnych szybkich wciśnięciach, ale opóźni to wysłanie fotki a nie o to tu chodzi , nie korzystam już ze starej wersji domoticz , dlatego u mnie działa bez problemu . Co powstrzymuje Cię przed aktualizacją ? Zrób kopię systemu na wszelki wypadek i wrzuć 2021.1 , ta wersja jest już od miesiąca

OdpowiedzCytuj
Dodane : 12/05/2021 11:39 am
szmydu
(@szmydu)
Stażysta

Niestety nie działa dobrze machinon theme pod nową wersją a z niego korzystam. Dokładnie nie działają wykresy.

OdpowiedzCytuj
Autor tematu Dodane : 12/05/2021 12:52 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@szmydu Jakie wykresy ? Pierwsze słyszę , że nie działają

1
2

 

OdpowiedzCytuj
Dodane : 12/05/2021 1:28 pm
szmydu
(@szmydu)
Stażysta

No właśnie o te wykresy temperatur chodzi. Wszystko sie ładnie otwierało tylko samego wykresu (linii) nie było. Czyściłem cały cache przeglądarki i nic to nie dało, więc wróciłem do 2020.2.  Ale widzę, że ponownie muszę zrobić update. Skoro u ciebie działa to u mnie też musi. Co ciekawe wykresy z opcji "własny wykres" rysowały się prawidłowo.

OdpowiedzCytuj
Autor tematu Dodane : 12/05/2021 1:41 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@szmydu mam  dwa serwery z machinon i na obu wykresy działają wstawiam fotki z drugiego

3
4

 

OdpowiedzCytuj
Dodane : 12/05/2021 2:12 pm
szmydu
(@szmydu)
Stażysta

Zrobiłem ponownie aktualizację. Wyczyściłem cały cache przeglądarki i jak kliknę w jakikolwiek termometr to mam taki widok:

Zrzut ekranu 2021 05 12 190017

Na 2020.2 wykresy są widoczne.  Co w takim razie mogę robić źle ? Tak jak poprzednio wykres własny działa:

Zrzut ekranu 2021 05 12 190500

 

PS. Modyfikacja skryptu do zdjęć na nowej wersji działa. Z oświetleniem też sobie poradziłem. Wystarczyło dodać kolejną zmienną przechowującą informację o tym czy oświetlenie włączone przez PIR i jak tak, to już nie zapalać, aż do kolejnego wykrycia ruchu. Gotowy działający skrypt w blockly (może komuś się przyda):

Zrzut ekranu 2021 05 13 003923

 

Nierozwiązany zostaje tylko temat wykresów na najnowszej wersji 🙁

OdpowiedzCytuj
Autor tematu Dodane : 12/05/2021 7:02 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@szmydu przypuszczalnie masz starą wersję motywu , aktualizuj do wer 1.17.1 , albo przejdź na wersję beta . W obu przypadkach wykresy powinny działać.

Mam na głównym serwerze machinon .beta 1.17.2, a na slave wersję stable 1.17.1 

OdpowiedzCytuj
Dodane : 13/05/2021 9:16 am
szmydu
(@szmydu)
Stażysta

Mam

Machinon theme V.1.17.1

 

Jak próbuję zaktualizować (git pull) to dostaję informację "Already up to date.". Jak go podbić do 1.71.2 ?

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2021 10:17 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@szmydu wersja 1.17.2 to wersja beta , więc jak chcesz to musisz zainstalować motyw w wersji beta ( mogą być dwa obok siebie )

1

 Ale w wersji 1.17.1 wykresy powinny działać , bo taką mam na jednym serwerze a fragment wykresu wstawiłem wcześniej

2

 Sprawdź , przełącz się na domyślny motyw , wyczyść cache i wróć do machinon , albo zobacz na innej przeglądarce  

OdpowiedzCytuj
Dodane : 13/05/2021 12:37 pm
szmydu
(@szmydu)
Stażysta

Dziwna sprawa bo na innych motywach wszystko jest ok. Problem dotyczy tylko machiniona. Sprawdzałem na Chrome, Firefox i Edge. Zainstalowałem też Operę i wykresów brak 🙁 więc to raczej nie cache.

 

Skąd wziąć machinion w wersji 1.17.2 ?  Tu : https://github.com/domoticz/Machinon jest tylko 1.16.2 jako najnowsza.

 

W tym poście też piszą o problemie z wykresami, lecz rozwiązania brak -> https://www.domoticz.com/forum/viewtopic.php?f=8&t=24084&sid=dbd9e99193c0692ec6887f164592855d&start=640  

Machinon is not showing my electricity chart (gas is working fine)
All charts are empty.
When switching to default theme, I do have graphs.

Is this a known issue?

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2021 2:13 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

Doinstaluj 

cd domoticz/www/styles
git clone  https://github.com/domoticz/machinon.git  machinon-beta
cd machinon-beta
git checkout beta
sudo /etc/init.d/domoticz.sh restart

Po tym będziesz miał wybór  między beta a stable tak  jak na moim zrzucie powyżej 

OdpowiedzCytuj
Dodane : 13/05/2021 3:09 pm
szmydu
(@szmydu)
Stażysta

Przejście na betę rozwiązało problem 🙂 Ciekawe, że jak usunąłem katalog machinon i pociągnąłem od nowa wersje stable, po czy zrestartowałem domoticza i wyczyściłem cały cache z przeglądarki, to i tak wykresy nie działały. Coś w tej wersji stable musi być nie tak, choć o dziwo u ciebie działa dobrze.

Kolejny raz dzięki za pomoc.

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2021 5:06 pm
Udostępnij: