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


Question

Posted

Cześć, mam taki problem: chciałem zrobić sceną która w przypadku braku prądu wyśle do mnie maila i pusha na telefon. Oczywiście mam UPS-a, router, modem oraz centrala Fibaro HC3 podpięta pod niego. Po wyłączeniu prądu działają na akumulatorze urządzenia około 15 minut. Zrobiłem scenę, która sprawdza czy dane urządzenie ma status dead i sprawdza zmienną czy ma zadziałać. Problem w tym, że urządzenia niedostępne podłączone do sieci 220 V bardzo długo w centrali są widoczne jako dostępne. Sprawdzałem FibaroWallPlug oraz FibaroSwitch. Jak można wymusić sprawdzenie czy dane urządzenie rzeczywiście jest dostępne. Test który wykonałem, pokazuje, że przez około 20 minut widzę w centrali urządzenie FibaroWallPlug jako dostępne pomimo, że wyjąłem je z gniazdka.

Przykład mojej sceny

Deklaracje

{
  conditions = { {
      id = 652,
      isTrigger = true,
      operator = "==",
      property = "dead",
      type = "device",
      value = true
    }, {
      isTrigger = false,
      operator = "==",
      property = "Zasilanie",
      type = "global-variable",
      value = "1"
    } },
  operator = "all"
}
 
Akcje
hub.alert('push', {[1] = 2, }, 'Brak prądu w domu', false, '', false)
hub.alert('email', {[1] = 2, }, 'Brak prądu w domu', false, '', false)
hub.setGlobalVariable('Zasilanie', '0')
hub.setTimeout(1800000, function()
hub.setGlobalVariable('Zasilanie', '1')
end)

 

10 answers to this question

Recommended Posts

  • 0
Posted

Nie wydaje mi się, aby było możliwe przyspieszenie aktualizacji atrybutu dead. Do twojego celu nie jest to zbyt pewny wskaźnik, choć to pomysłowe.

 

Myślę, że najlepiej byłoby odczytać bezpośrednio stan UPS-a. Jeżeli ma API, to nie powinno być problemu z odczytaniem, czy działa w trybie akumulatorowym. Do tego co prawda trzeba napisać program, ale wydaje mi się to rozwiązanie najprostsze. Inne wymagają już kombinowania.

 

Może jest w tym UPS wyjście bezpotencjałowe (tzw. dry-contact), które zmienia stan (zwarte/rozwarte) w zależności od tego, czy zasilanie awaryjne jest aktywne.
Do tego podłączamy Smart Implant, który jest w stanie wykryć taką zmianę (patrz instrukcja SI).

Inny pomysł, potrzebne minimum narzędzi i wiedzy: zasilacz 12V + przekaźnik 12 V + Smart Implant. Napięcie zanika, przekaźnik się rozwiera, SI rejestruje to do centrali.

Następny pomysł: w tablicy rozdzielczej w domu jest zapewne lampka informująca o włączonej fazie. Fotorezystor za kilka zł + rzeczony SI jako woltomierz.

Praktycznie każda instalacja alarmowa dostarcza informację - czy chodzi z sieci czy z akumulatora.

Rzecz jasna w każdym przypadku należy zapewnić podtrzymanie zasilania Smart Implanta (9-24V DC).

 

Nawiasem mówiąc, czemu ma służyć taka informacja - jest prąd czy nie?

  • 0
  • Inquirer
  • Posted
    17 minut temu, Łukasz997 napisał:

    Nawiasem mówiąc, czemu ma służyć taka informacja - jest prąd czy nie?

    Czasami nie ma nikogo w domu i chciałbym wiedzieć o awarii zasilania. Czasami wywala mi różnicówka i nie mogę zdiagnozować przyczyny ani obwodu na którym coś się dzieje. Po wywaleniu po paru minutach można ją podnieść i problem ustępuje.

    • 0
    Posted

    Jeżeli tylko do tego, to może te ~20 minut opóźnienia nie jest zbyt długo. Jak by się chciało wiedzieć od razu, trzeba kombinować lub wydawać kasę...

    Są też gotowe rozwiązania do rozdzielni - w zasadzie służące do mierzenia parametrów prądu (ze stykiem, działającym gdy parametry poza granicznymi), ale to jest kilkaset złotych.

    W każdym razie - powodzenia.

    • 0
    Posted

    jesli chcesz przyinwestowac 

    Please login or register to see this link.

    z bateria i funkcja wykyrwania braku pradu.

    • Like 1
    • 0
  • Inquirer
  • Posted

    AI pomogło. Po kilku próbach przygotował skrypt, który sprawdza dostępność adresu IP (z dowolnego urządzenia w domu które nie nie jest podpięte pod UPS). Wywołuję scenę co 2 minuty i jeżeli urządzenie nie odpowie na ping to scena wysyła powiadomienia. Działa :-). Podaję dla osób które chciałby wykorzystać:

    DEKLARACJE

    {
      conditions = { {
          isTrigger = true,
          operator = "matchInterval",
          property = "cron",
          type = "date",
          value = {
            date = { "00", "20", "3", "4", "*", "2026" },
            interval = 120
          }
        } },
      operator = "all"
    }

     

    AKCJE

    local deviceIP = "192.168.1.202" -- WPISZ IP URZĄDZENIA BEZ UPS
    local userID = 2
    local http = net.HTTPClient()
     
    http:request("http://" .. deviceIP, {
        options = {
            method = "GET",
            timeout = 3000 -- Czekaj 3 sekundy
        },
        success = function(response)
            print("[OK] Urządzenie " .. deviceIP .. " żyje. Prąd jest.")
        end,
        error = function(err)
            print("[ALARM] Brak odpowiedzi od " .. deviceIP .. ". Prawdopodobny brak prądu!")
            hub.alert('push', {[1] = 2, }, 'Brak prądu w domu', false, '', false)
            hub.alert('email', {[1] = 2, }, 'Brak prądu w domu', false, '', false)
        end
    })
    • Like 1
    • 0
    Posted

    Dobre. Nie wiedziałem, że tak się robi ping po http.

    • 0
  • Inquirer
  • Posted

    Źle napisałem, nie ping ale GET do wskazanego adresu na porcie 80. Czy dany adres zadziała można sprawdzić np w PowerShell w Windows: Invoke-RestMethod -Uri "http://192.168.1.202" 

    Jeżeli GET zwróci nagłówek to znaczy, że urządzenie działa. Jak nie to uznaje błąd. 

    • 0
    Posted

    Jakbyś zmienił polling urządzenia na niską wartość to oznaczało by się jako martwe po prostu... szybko. Zgodnie z ustawieniem pollingu.

    Co do samej funkcjonalności, zarówno nowy DoubleDimmer-Control jak i On/Off-Control2 mają funckję wykrywania i notyfikowania centrali o utracie zasilania, mając jeden z nowych modułów mógłbyś bezpośrednio wykorzystać ich notyfikacje. 

    • Like 1
    • 0
  • Inquirer
  • Posted
    6 godzin temu, m.roszak napisał:

    Jakbyś zmienił polling urządzenia na niską wartość to oznaczało by się jako martwe po prostu... szybko. Zgodnie z ustawieniem pollingu.

    Próbowałem , ale bez rezultatu. Chyba, że zmieniałem nie ten parametr co trzeba ? Zmieniłem Interwał odpytywania na 60 sekund w WallPlug, ale stan urządzenia nie zmienił się po tym czasie na rozłączony

     

    Please login or register to see this image.

    /monthly_2026_04/image.png.3241dd24a3bfa0f9c9a6720ad9827fa4.png" />

    • 0
    Posted

    60 sekund spowoduje próbę komunikacji, musi nie odpowiedzieć bodaj 3 razy by się oznaczyć jako martwy.
    Także to nie będzie po prostu 60 sekund. 

    W zależności od tego jak działa mechanizm (z głowy nie pamietam) będzie to albo około 3 minut (3 krotność interwału) albo kilka sekund powyżej ustawionej wartości. 

    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...