Przykłady użycia funkcji rscalc (Lua) dla Wiser for KNX

utworzone przez | 23/04/2022 | Baza wiedzy

W każdym Wiser for KNX (LSS100100) oraz spaceLYnk (LSS100200) wbudowana jest funkcja rscalc. Funkcja ta oblicza moment wschodu słońca i jego zachodu podając go w specyficzny sposób – jest to liczba minut liczona od północy do świtu i zmierzchu.

-- obliczanie momentu wschodu / zachodu
-- pobrano z thinkofhome.pl

function rscalc2(latitude, longitude, when)
  local pi = math.pi
  local doublepi = pi * 2
  local rads = pi / 180.0

  local TZ = function(when)
    local ts = os.time(when)
    local utcdate, localdate = os.date('!*t', ts), os.date('*t', ts)
    localdate.isdst = false
    
    local diff = os.time(localdate) - os.time(utcdate)
    return math.floor(diff / 3600)
  end

  local range = function(x)
    local a = x / doublepi
    local b = doublepi * (a - math.floor(a))
    return b < 0 and (doublepi + b) or b
  end

  when = when or os.date('*t')

  local y2k = { year = 2000, month = 1, day = 1 }
  local y2kdays = os.time(when) - os.time(y2k)
  y2kdays = math.ceil(y2kdays / 86400)

  local meanlongitude = range(280.461 * rads + 0.9856474 * rads * y2kdays)
  local meananomaly = range(357.528 * rads + 0.9856003 * rads * y2kdays)
  local lambda = range(meanlongitude + 1.915 * rads * math.sin(meananomaly) + rads / 50 * math.sin(2 * meananomaly))

  local obliq = 23.439 * rads - y2kdays * rads / 2500000

  local alpha = math.atan2(math.cos(obliq) * math.sin(lambda), math.cos(lambda))
  local declination = math.asin(math.sin(obliq) * math.sin(lambda))

  local LL = meanlongitude - alpha
  if meanlongitude < pi then
    LL = LL + doublepi
  end

  local dfo = pi / 216.45

  if latitude < 0 then
    dfo = -dfo
  end

  local fo = math.min(math.tan(declination + dfo) * math.tan(latitude * rads), 1)
  local ha = 12 * math.asin(fo) / pi + 6

  local timezone = TZ(when)
  local equation = 12 + timezone + 24 * (1 - LL / doublepi) - longitude / 15

  local wschod, zachod = equation - ha, equation + ha

  if wschod > 24 then
    wschod = wschod - 24
  end

  if zachod > 24 then
    zachod = zachod - 24
  end

  return math.floor(wschod * 60), math.ceil(zachod * 60)
end

Z pozoru mało użyteczna informacja, więc jak ją można wykorzystać?

Wyświetlanie godziny wschodu i zachodu słońca na wizualizacji

Aby wyświetlić w wizualizacji KNX godziny wschodu i zachodu wykorzystamy 2 tekstowe obiekty komunikacyjne, np. 10/1/1 i 10/1/2. Utwórzmy je na karcie Obiekty, nadając im typ danych DPT16. Jest to 14-bajtowy typ danej, w zupełności wystarczający do zmieszczenia 5 znaków .

Załóżmy, że punktem odniesienia będzie Warszawa, ale można podać długość i szerokość geograficzną dowolnego innego miasta (lub wsi) w Polsce.

Utwórzmy skrypt harmonogramowy, uruchamiający się codziennie o godz. 02:01:

Okno tworzenia skryptu uruchamianego zgodnie z harmonogramem. Przykładowa konfiguracja skryptu korzystającego z funkcji rscalc.

W treści skryptu wklejamy poniższy kod, dostosowując go do swoich potrzeb:

szerokosc_geograficzna = 52.13
dlugosc_geograficzna = 21.00

wschod, zachod = rscalc(szerokosc_geograficzna, dlugosc_geograficzna)

wschod_godzina = math.floor(wschod / 60)
wschod_minuta = wschod % 60

zachod_godzina = math.floor(zachod / 60)
zachod_minuta = zachod % 60

grp.write('10/1/1','Wschód: ' .. string.format('%02d:%02d', wschod_godzina, wschod_minuta))
grp.write('10/1/2','Zachód: ' .. string.format('%02d:%02d', zachod_godzina, zachod_minuta))

Elektromobilność – słowniczek pojęć

SkrótRozwinięcie skrótuWyjaśnienie pojęciaEVCEElectrical Vehicle Charging ExpertSprzęt i oprogramowanie firmy Schneider Electric służące do zarządzania mocą ładowania w systemach ładowania (wiele punktów ładowania pojazdów)EVSEElectric Vehicle Supply EquipmentSprzęt...

Wesołych Świąt Wielkanocnych

Wszystkim swoim Parterom, Współpracownikom i Klientom życzymy, aby czas świąt był okazją do odpoczynku i zadumy, a także wypełniał Wasze serca nadzieją i dodawał sił, tak byście mogli zrealizować wszystkie swoje plany. Życzymy wielu radości i satysfakcji w życiu...

Ile kosztuje dom inteligentny KNX?

Nigdy nie ma jednej odpowiedzi na to pytanie. Kiedy zamiast "dzień dobry" słyszę od rozmówcy-klienta "ile kosztuje dom inteligentny" - odpowiedzieć mogę wyłącznie "to zależy". Biorąc pod uwagę 2 skrajne przypadki można podać kwotę zaledwie kilka procent wyższą od...

Tabela błędów KNX Multitouch Pro

Jeżeli Twój regulator KNX Schneider Electric Multitouch Pro po uruchomieniu wyświetla 4-cyfrowy błąd na czerwonym tle to znalazłeś się w dobrym miejscu. Poniżej zamieściliśmy tabelę błędów wyświetlonych na przyciskach MTN6215-5910 oraz MTN6215-0310. Numer błęduKod...

Jakie są różnice między LSS100100, a LSS100200? Który lepszy?

Krótko mówiąc żaden z nich nie jest lepszy od drugiego - mają po prostu różne zastosowania. LSS100100, czyli Wiser for KNX (a dawniej homeLYnk) jest urządzeniem zaprojektowanym i dalej rozwijanym w kierunku obsługi domów inteligentnych, gdzie najważniejszy jest...

Usługi zdalne w Wiser for KNX

Z angielskiego - Remote Services - w homeLYnk i Wiser for KNX są jednym z podstawowych sposobów integracji KNX z innymi systemami. Przykładowy link, aby wyciągnąć z Wiser for KNX listę alertów do formatu xml:...

Jak zrobić symulację status FB w KNX?

Czasami integratorom zdarza się konieczność stworzenia adresu statusowego KNX, a nie ma dla niego żadnego źródła informacji. Wówczas najczęściej stosowanym pomysłem jest powielenie informacji z adresu sterującego na adres statusowy. W Wiser for KNX taki efekt można...

Czy warto mierzyć temperaturę podłogi?

W tym tekście poruszę temat czujek podłogowych. Dla system integratorów z przymrużeniem oka. Dla inwestorów – na poważnie.

Jak budować struktury adresów grupowych w ETS (KNX)

Jednym z pierwszych elementów, które warto przemyśleć rozpoczynając programowanie systemu KNX jest adresacja grupowa. Adresy grupowe są to elementy pozwalające tworzyć powiązania między funkcjami różnych urządzeń. Opiera się o nie cały program działania każdej...

Ładowarki na Warsaw Home Light 2022

Kolejne wydarzenia z nami! Jeszcze kilka dni temu odliczaliśmy wspólnie z wami do wydarzenia na Instagramie: Odliczanie do Warsaw Home Light na Insta

Dobór adapterów głowic do zaworów termostatycznych

Dobór adapterów do zaworów i rozdzielaczy nie zawsze jest prosty i oczywisty. Poniższa tabela przedstawia połączenie doświadczeń i danych ze specyfikacji różnych producentów w temacie kompatybilności adapterów napędów zaworów do zaworów termostatycznych montowanych na...

KNX w domu

Ten wpis stanowi krótkie podsumowanie cyklu KNX w domu publikowanego w formie relacji na Instagramie o korzyściach z zastosowania KNX w domach i rezydencjach. Wykorzystanie instalacji KNX służy 4 podstawowym celom: poprawieniu szeroko rozumianego komfortu,...

Aktualizacja oprogramowania MTN6215-5910 (Multitouch KNX Schneider Electric)

Instrukcja aktualizacji firmware w regulatorach Schneider Electric Multitouch D-Life

Siedle i Jung – Produkty

Certyfikat uczestnictwa potwierdzający obecność na szkoleniu z zakresu produktów automatyki domowej i budynkowej KNX oraz systemów wideodomofonowych Siedle można pobrać z linku: Certyfikat-Siedle-i-Jung-Produkty-11.05.2022Pobierz Szkolenie miało na celu zapoznanie...

Szkolenie Siedle i Jung – Produkty

W dniu 11 maja, w ramach samodoskonalenia, rozwoju kompetencji i oferty, miałem okazję uczestniczyć w szkoleniu produktowym przeprowadzonym w siedzibie Jung - szkolenie zatytułowano Siedle i Jung - Produkty. Początek obu prezentacji zaczął się od krótkiego...