Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - marcinwojciesz

Strony: [1]
1
Fibaro - skrypty itp / Kalendarz google w fibaro
« dnia: Marzec 28, 2018, 12:59:45 pm  »
Witajcie.
Od jakiegoś czasu chciałem wyświetlać dane z kalendarza Google na aplikacji F.
Znalazłem na innym ale mniej popularnym forum człowieka o nazwie  jcichon01@  który popełnił już coś takiego.
przeniosłem do siebie. A teraz krok po kroku:

1. Zakładam kalendarz Googla i dodaję testowe wydarzenie,
2. Wchodzę w ustawienia i udostępnianie tego kalendarza - znajduje "Tajny adres w formacie iCal" kopiuje,
3. Robie zmienne "GCalendar" bez wartości, druga "Month" i przypisuje dla niego "Styczeń", "Luty", ....."Grudzień" (nie pomyl się ąę musi być i duża litera),
4. Zmienna Month ustawiam na dany miesiąc (myślę, że to zautomatyzuje lada dzień),
5. Dodaje Wirtualne urządzenia Calendar_Bookings (1).vfib - (w zał.)
6. dodaje scene - która musi się odpalać tyle ile chcemy żeby aktualizować nasz kalendarz - (w zał.),
--[[
%% properties

%% globals
--]]

--[[
---------------------------------------------------------------
---------     Google Calendar synchronization         ---------
---------               version 1.2                   ---------
---------------------------------------------------------------

CHANGELOG:
ver 1.0
- initial
ver 1.1
- added support for events defined in .ics file as "recurring".
  Few basic recurrance types are added
ver 1.2
- added handling of "all day" events; small bug fixing;

Scene used to synchronize Google Calendar with HC2. Synchronization
results are stored in the Global Variable and can be used by other
scenes or virtual devices by reading its content using for example
following:
 local jsonMyGCal = fibaro:getGlobal("GCalendar");
 local MyGCal     = json.decode(jsonMyGCal)
 for i = 1, #MyGCal do
   print (MyGCal[i].Name)
   print (MyGCal[i].StartDate)
   print (MyGCal[i].EndDate)
   print (MyGCal[i].WholeDay) - is set to "Yes" or "No"
 end

Part of the code after "baran" from http://www.zwave-community.it/

-- LIST OF GLOBAL VARIABLES NEEDED ------------------------------------------
"GCalendar" holds synchronized Google Calendar events
            Can be read using json.decode(fibaro:GetGlobal("GCalendar"))
        and used in other scenes based on GCalendar events
"Month"     Used by this script to recognize the month for sychronization.
            Idea is to synchronize GCal events for this month & current year
            only. This global variable is updated with Sankotronic's
            "Main Scene for time based events"
--]]

--- Link to private calendar file
---  fill it with the link to you google calendar file
---  https://calendar.google.com/calendar/ical/XXXXXXXX%40gmail.com/private-googleid/yyyyy.ics
---  link can be retrieved from Google Calendar settings page
---  --> ICAL file in Calendar address - page "Calendar XXX details"

-----------------------------------------------------------------
--- VARIABLES
-----------------------------------------------------------------

local gCalUrl ="https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxx/basic.ics"
local HC = net.HTTPClient()

--- Time zone correction: 1 = gmt+1 2=gmt+2 ecc ecc
local timeZone      = 1;

-- debugging variables
local responseDebug = 0;   -- will show the content of GCal file after retrival
local eventDebug    = 0;   -- allows you to trace the parsing process
local outputDebug   = 0;   -- shows the event table in the structured form along with
                           -- global HC2 variable
local recurDebug    = 0;   -- extra debugging for recurring events                       

-- other variables
local MyGCal        = {}
local currentMonth = fibaro:getGlobalValue("Month")

-- use the table to get the mapping translated into your local language
local monthMapping =
{
    [ "Styczeń" ]   = "January",
    [ "Luty" ]     = "February",
  [ "Marzec" ]     = "March",
    [ "Kwiecień" ]   = "April",
    [ "Maj" ]     = "May",
    [ "Czerwiec" ]   = "June",
    [ "Lipiec" ]     = "July",
    [ "Sierpień" ]    = "August",
    [ "Wrzesień" ]   = "September",
    [ "Październik" ] = "October",
  [ "Listopad" ]   = "November",
  [ "Grudzień" ]   = "December"
  }

local monthNumbers =
{
    [ "January" ]   = 1,
    [ "February" ]   = 2,
  [ "March" ]     = 3,
    [ "April" ]       = 4,
    [ "May" ]     = 5,
    [ "June" ]       = 6,
    [ "July" ]       = 7,
    [ "August" ]      = 8,
    [ "September" ] = 9,
    [ "October" ]     = 10,
  [ "November" ]   = 11,
  [ "December" ]   = 12
  }

local days_in_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };


-----------------------------------------------------------------
--- FUNCTIONS
-----------------------------------------------------------------

function logbug(color, message)
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"));
end

-- is this a whole day event?
function CheckIfWholeDay(startDate, endDate);
 
  if tonumber(os.date("%H", startDate)) == 0 and
     tonumber(os.date("%M", startDate)) == 0 and
     tonumber(os.date("%S", startDate)) == 0 and
     tonumber(os.date("%H", endDate)) == 0 and
     tonumber(os.date("%M", endDate)) == 0 and
     tonumber(os.date("%S", endDate)) == 0 then
    return "Yes";
  else
    return "No";
  end;
end; 

-- append the entry to Calendar variable
function AppendToGCal(startDate, endDate, ev_name);

  if tonumber(os.date("!%Y",startDate)) == tonumber(os.date("!%Y", os.time()))  and
     tostring(os.date("!%B",startDate)) == tostring(monthMapping[currentMonth])         
  then         
    MyGCal[#MyGCal+1] = {
                          Name       = ev_name,
                          StartDate  = startDate,
                          EndDate    = endDate,
                          WholeDay   = CheckIfWholeDay(startDate, endDate)
                        };
    if eventDebug == 1 then
      if MyGCal[i].WholeDay == "Yes" then
        logbug("orange", "Wholeday event.");
      end;   
      logbug("gray", "Record added. Event: "..ev_name..", Start: "..startDate..", End: "..endDate);
    end;                               
  else
    if eventDebug == 1 then
      logbug("darkgray", "Record not within selection criteria, skipping...");
    end;   
  end;
end

--- Fetch the content of GCal - GET HTML
function gCal_GetICalData()
HC:request(
   gCalUrl,
   {
     success = function(response)
       gCalRead_2(response.data)
      end,
     error =  httpError,
     options = {method = "GET" }
   }
 )
end

function AppendRecuringEntry(recurance, startDate, endDate, name)
 
  local i = 1;
  local l_rule;
  local l_finish;
  local l_multiplier;
 
  -- is there delimiter like "until", "count"?
  l_rule = "NONE";
  l_finish = "No";

  for l = 1, #recurance do
    -- split the lines               
    recurance[l] = mysplit(recurance[l], "=");

    if recurance[l][1] == "COUNT" then
      l_rule    = "COUNT";
      l_ruleEnd = recurance[l][2];
    elseif  recurance[l][1] == "UNTIL" then
      l_rule    = "UNTIL";
      l_ruleEnd = gCal_UTCTimePhrase(recurance[l][2]);
    end;
 
  end;

  if l_ruleEnd == nil then l_ruleEnd = "not delimited" end; 

  if recurDebug == 1 then
      logbug("lighgray", "Recuring event: "..name..", Baseline date: "..(os.date("%x",startDate)));
      if l_ruleEnd == "not delimited" then
        logbug("gray", "Frequency: "..recurance[1][2]..", Rule: "..l_rule..", End by: "..l_ruleEnd);
      else
        logbug("gray", "Frequency: "..recurance[1][2]..", Rule: "..l_rule..", End by: "..(os.date("%x",l_ruleEnd)));       
      end
  end;   

  -- recognize the dates for recurring events
  while ( tonumber(os.date("%m",startDate)) <= tonumber(monthNumbers[monthMapping[currentMonth]]) -- not exceeding given month
    and tonumber(os.date("!%Y",startDate)) == tonumber(os.date("!%Y", os.time()))                 -- and current year
    and  l_finish == "No" )                                                                       -- should I stop searching?

  do
    if     recurance[1][2] == "WEEKLY"  then l_multiplier = 7;
    elseif recurance[1][2] == "DAILY"   then l_multiplier = 1;
    elseif recurance[1][2] == "MONTHLY" then l_multiplier = tonumber(days_in_month[tonumber(os.date("%m",startDate))]);
    else   l_multiplier = 9999; -- no handling
    end;
   
    if l_multiplier == 9999 then
      l_finish = "Yes";
      if recurDebug == 1 then
          logbug("light red", "Unhandled rule");
      end;     
    else 
      startDate = startDate + l_multiplier * (60 * 60 * 24 );
      endDate   = endDate + l_multiplier * (60 * 60 * 24 ); 
   
      if recurDebug == 1 then
          logbug("gray", "Next occurance within sycnhronization period: "..os.date("!%c",startDate));
      end;   

      AppendToGCal(startDate, endDate, name);

      -- did I reach the end?
      if l_rule == "COUNT" then
        if tonumber(l_ruleEnd) == i then l_finish = "Yes" end;
      elseif rule == "UNTIL" then
        if  startDate >= l_ruleEnd then l_finish = "Yes" end;
      end;
     
      i = i + 1;
    end; 
  end;       
               
end

-- parse the entries
function gCalRead_2(data)

local l_StartDate
local l_EndDate
local l_Name
local l_Recurring
local l_RRule
local l_CurrentBlock
 
data = string.gsub(data, "\r", "") -- Remove CarageReturn
lines = mysplit(data, "\n")        -- Split GCal string

for i,line in ipairs(lines) do
   
  if responseDebug == 1 then
     logbug("gray", "Line: "..i.." RESP "..line)
  end
 
  values = mysplit(line, ":")
 
  if values[1] == "BEGIN" then
      if values[2] == "VEVENT" then
        l_CurrentBlock = "VEVENT";  -- we're at the beginning of event definition
        l_RRule = "No";             -- no recurrance by default
      end
  end
     
   
  if l_CurrentBlock == "VEVENT" then
  --- get the GCal events START,STOP and
  --- v 1.1 for recurring events - time zone included in the timestamp
  ---       syntax as follows: DTSTART;TZID=America/New_York:20120503T180000
  --- v 1.2 in case DTSTART/DTEND contains date only -
  ---       it is whole/multiple day event. e.g. DTSTART;VALUE=DATE:20170312
   
    if values[1] == "DTSTART"
        or string.sub(values[1], 1, 12)  == "DTSTART;TZID"
        or string.sub(values[1], 1, 13)  == "DTSTART;VALUE"
        then
            l_StartDate  = gCal_UTCTimePhrase(values[2])
        end
    if values[1] == "DTEND"
        or string.sub(values[1], 1, 10)  == "DTEND;TZID"
        or string.sub(values[1], 1, 11)  == "DTEND;VALUE"
        then
            l_EndDate = gCal_UTCTimePhrase(values[2])
        end
    if values[1] == "SUMMARY"
        then
            l_Name = values[2]
        end
    if values[1] == "RRULE"
        then
            l_Recurring = mysplit(values[2], ";");
            l_RRule = "Yes";
        end 
    if values[1] == "END"
        then
            l_CurrentBlock = "None"
     
--   filter to the events of the current month (and year)
            if l_RRule == "No"
               then
                  AppendToGCal(l_StartDate, l_EndDate, l_Name);
               else     
                  AppendRecuringEntry(l_Recurring, l_StartDate, l_EndDate, l_Name);       
            end; -- recurance
    end;
  end;
   
  end

-- Events are collected
-- pack it into global variable
gCal_OutputToGlobalVar()
 
end

-- parse the Google dates
function gCal_UTCTimePhrase(data)

--- v 1.2 whole-day events are defined by date only

local MyDate = {}
 
MyDate["Year"] = tonumber(string.sub(data, 1, 4))
MyDate["Month"] = tonumber(string.sub(data, 5, 6))
MyDate["Day"] = tonumber(string.sub(data, 7, 8))

if tonumber(string.sub(data, 10, 11)) == nil then -- whole-day event
  MyDate["Hour"] = tonumber("00");
  MyDate["Minute"] = tonumber("00");
  MyDate["Second"] = tonumber("00");
else;
  MyDate["Hour"] = tonumber(string.sub(data, 10, 11))
  MyDate["Minute"] = tonumber(string.sub(data, 12, 13))
  MyDate["Second"] = tonumber(string.sub(data, 14, 15))
end;

return os.time{year=MyDate["Year"], month=MyDate["Month"], day=MyDate["Day"], hour=MyDate["Hour"], min=MyDate["Minute"],sec=MyDate["Second"]}
 
end

function mysplit(inputstr, sep)
 
  if sep == nil then
     sep = "%s"
  end
 
  local t={} ; i=1
    for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
      t[i] = str
      i = i + 1
    end
   
  return t
 
end


-- Move Events into local HC2Table
function gCal_OutputToGlobalVar()

local i

CurrentTimeAndDate = os.time()
 
if outputDebug == 1 then
  logbug("blue", "Current time: "..os.date("%c",CurrentTimeAndDate))     

--sort to have it in chronological order
  table.sort(MyGCal,function(a,b) return a.StartDate < b.StartDate end)
   
  for i = 1, #MyGCal do
     MyGCal[i].StartDate = MyGCal[i].StartDate + timeZone*3600;
     MyGCal[i].EndDate = MyGCal[i].EndDate + timeZone*3600;     
     logbug("lightgreen", "Event name: "..MyGCal[i].Name); 
     if MyGCal[i].WholeDay == "Yes" then
        logbug("gray", "Start date: "..os.date("%x",MyGCal[i].StartDate));
        logbug("gray", "Finish date: "..os.date("%x",MyGCal[i].EndDate));     
        logbug("gray", "Wholeday event: "..MyGCal[i].WholeDay);
     else
        logbug("gray", "Start date: "..os.date("%c",MyGCal[i].StartDate));
        logbug("gray", "Finish date: "..os.date("%c",MyGCal[i].EndDate));       
     end;   
  end;
end

logbug("gray", "Added TOTAL of: "..#MyGCal.." calendar records.")

-- move and pack into HC2 global variable
jsonMyGCal = json.encode(MyGCal);
 
fibaro:setGlobal("GCalendar", jsonMyGCal);
 
if outputDebug == 1 then
   logbug("yellow", "MyGCal variable content: ");
   logbug("gray", jsonMyGCal);
end   
 
end


-----------------------------------------------------------------
--- MAIN Code
-----------------------------------------------------------------

-- update calendar
gCal_GetICalData();

logbug("green", "Synchonization completed");
7. W scenie wklejam to co skopiowałem w pkt. 2. w miejsce gdzie już jest wpis a w nim masę xxxxxxxx,
8. Odpalam scenę,
9. Odpalam urządzonko,
10. Jeśli nie ma wyników od razu to czekam parę sek. i uzupełniają się dane,
11. (W planie mam) udostępniam kalendarz żonie i razem możemy dodawać do niego pozycje.

Mam nadzieję, że komuś się to przyda.

2
Inne / Roomba 980
« dnia: Marzec 26, 2018, 06:15:47 pm  »
Witam.
Był wątek Roomba lecz dotyczył wcześniejszych wersji - dlatego pozwoliłem sobie rozpocząć nowy.
Posiadam takowy sprzęt i bardzo mi się podoba.
Chciałbym posterować nim troszkę z poziomu Fibaro.
Znalazłem:
https://github.com/koalazak/dorita980
Ktoś coś zna z tego tematu?

3
Wszystko i o wszystkim / TARGI
« dnia: Listopad 21, 2016, 02:53:51 pm  »
W dn. 3-5 marca 2017 odbędą się targi domu inteligentnego na Stadionie Narodowym w Warszawie.
http://dominteligentny.pl/
https://www.facebook.com/events/660836037433018/

4
Fibaro - sceny / Ferie
« dnia: Styczeń 21, 2016, 02:12:19 pm  »
Witajcie.
W związku z tym, że jest kilka scen które odpalają się wyłącznie w dni wolne lub pracujące bardzo przydaję się scena podana przez ADMIN http://forum.lic.pl/fibaro-sceny/dni-wolne-od-pracy-w-inteligentnym-domu/ ale lada dzień będą ferie, co za tym idzie dni wolne będą tylko dla dzieci i chciałbym zrobić zmienną "ferie". Tylko, że w różnych województwach są w innym czasie. Czy ktoś widział jakieś rozwiązanie bądź ma pomysł jak to zrealizować.
Myślałem aby zrobić coś na zasadzie sceny "imieniny" i tam ręcznie wpisać daty wolne (tym bardziej że szkoły mogą kilka dni same ustawić wolne w innym czasie co szkoła znajdująca się obok).
Nie wiem czy to dobry pomysł i jak się zabrać za to.

5
Wszystko i o wszystkim / Święta
« dnia: Grudzień 24, 2015, 12:26:01 pm  »
Chciałbym życzyć wszystkim Forumowiczom – Zdrowych spokojnych i rodzinnych Świąt Bożego Narodzenia, bardzo bogatego Mikołaja (szczególnie w elementy przydatne do inteligencji naszych domów) oraz spełnienia innych marzeń.
Marcin

6
Z-wave - dyskusja ogólna / CEDIA Expo
« dnia: Listopad 09, 2015, 09:53:19 am  »
A to widzieliście: http://www.twice.com/news/home-automation/cedia-expo-gesture-control-wi-fi-door-locks-doorbells-arrive/58988
Swipe - do końca listopada 2015 za 600 zł
intercom ZA 2000 zł !!!!!!!!!!
dalej boje się pisać.


7
Z-wave - dyskusja ogólna / HC 2 ver. 4.045
« dnia: Maj 28, 2015, 07:19:33 pm  »
http://forum.fibaro.com/index.php?/topic/18531-update-hc2-4045/
a oto zawartość:

Właśnie wydaliśmy wersję 4.045 oprogramowania HC2.

 

Ta wersja wprowadza nowe funkcjonalności jak również naprawia cześć błędów zgłoszonych przez użytkowników.

4.045

 > Nowe funkcjonalności

 Obsługa powiadomień typu popup oraz centrum notyfikacji dla urządzeń mobilnych

 Wymaga:

 - HC2: 4.045,

 - iPhone: 2.5,

 - iPad: 1.50,

 - Fibaro for Android Phone: 1.6,

 - Fibaro for Tablet: 1.3.

 Ważne: Funkcjonalność powiadomień typu popup jest wspierana na poziomie API HC2 od wersji 4.042, niemniej do poprawnego działania wymaga ona wsparcia po stronie aplikacji mobilnych. Ze względu na specyfikę wydawania aktualizacji na platformy mobilne, w szczególności iOS wsparcie to było dodawane stopniowo i funkcjonalność ta może działać na wcześniejszych wersjach aplikacji mobilnych.



 > Rozwiązane zgłoszenia

 Przebudowana obsługa modułów RGB/RGBW

 0001992: FGK-101 with a DS18B20
 0002315: Zmiana opisu panelu diagnostycznego "Z-Wave"
 0002357: Nie prawidłowy wpis dla "Ostani Backup"
 0002429: Błąd zapisu w panelu temperatury
 0002503: Nie można ustawić właściwośći urządzenia virtualnego na wartość ze znakiem "%"
 0002533: Panel alarmu - brak akcji po naruszeniu alarmu
 0002609: Moduł RGBW nie pracuje poprawnie w trybie IN/OUT
 0002619: Panel zdarzeń nie wyświetla dat
 0002671: Nieprawidłowo prezentowana nazwa strumienia w pluginie Sonos
 0002826: Przyspieszone zurzycie baterii w Danfoss LC12
 0002942: Ściemniacz Qubino - nie wyświetla poprawnie stanu
 0002970: Mały błąd w interfejsie HCL (FR)
 0003038: Błędna widoczność backupów w wersji 4.037
 0003146: Roleta v2 - brak w zaawansowanych widoku z ustawieniami protection
 0003228: Informacja o dacie ostatniego backupu
 0003244: Zwave.me KFOB_S Gen 5 nie dodaje się do sieci
 0003247: Brak możliwości zmiany RGB
 0003276: Obsługa ZXT-120
 0002218: RGBW - raportowanie 0-10V
 0002417: FGRGBW 441M EU - brak możliwości zmiany parametrów w nowo dodanych kontrolerach RGB
 0002846: Nie można zapisać ustawień zaawansowanych dla urządzeń Fibaro RGBW
 0003126: FGRGBW 441M EU - martwe urządzenia
 0002675: Wyrównanie elementów w konfiguracji zaawansowanej urządzenia
 0002190: FGRGBW 441M EU - brak możliwości zmiany czym steruje urządzenie
 0003016: HC2 po kilku godzinach brak dostępnej pamięci


 > Znane problemy

 W aplikacji Fibaro na system operacyjny Android występuje problem z wyświetlaniem ikon dla następujących urządzeń:
- Termostat NetAtmo
 - Stacja pogodowa NetAtmo
 - Sonos

 W interfejsie Satela występują niespójności.

 Pomiar energii może nie działać dla niektórych urządzeń
W niektórych konfiguracjach panel alarmu może nie działać

Pluginy do sterowania odbiornikami TV różnych producentów mogą nie działać poprawnie z ich najnowszym oprogramowanie co wynika z ograniczeń wprowadzanych w aktualizacjach. Szczegółow inforamcje o zgodności zostaną dodane do opisu pluginów.

 Naruszona czujka z Arm Delay wywołuje alarm bezpośrednio po uzbrojeniu
 Brak możliwości wyboru zakresu dat w panelu zdarzeń
Ikony urządzeń importowanych przez Gateway Connection nie są wyświetlane prawidłowo
 Importowanie urządzeń- status martwych urządzeń może być różny pomiędzy kontrolerami master i slave
 Urządzenia skonfigurowane niepoprawnie na wersji 3.X nie zostaną poprawnie skonwertowane
 W aplikacjach mobilnych urządzenia mogą być widoczne w innych kategoriach niż zostały skonfigurowane
 Horstmann Thermostat HRT4-ZW- zwiększone zużycie baterii w niektórych przypadkach
 Zamki Z-Wave- mogą nie działać poprawnie




Wszystko jest po POLSKU :)

8
Fibaro - urządzenia / faktyczne zużycie prądu QUBINO
« dnia: Kwiecień 29, 2015, 05:30:46 pm  »
przed aktualizacja moje qubino pokazywało aktualne faktyczne zużycie prądu a w tej chwili żaden z onofów nie pokazuje tego - czy to "ONI" cos wymyślili czy ja coś zwaliłem?
dodam, że w ogóle nie mam ich teraz w zużyciach energiii

9
Z-wave - dyskusja ogólna / Edytor JSON
« dnia: Kwiecień 25, 2015, 07:17:03 pm  »
a to widzieliście?
https://www.jsoneditoronline.org/

10
Fibaro - urządzenia / Ściemniacz Qubino Dimmer czy Fibaro FGD-211
« dnia: Kwiecień 16, 2015, 08:05:59 pm  »
Witajcie.
Nie mam i nigdy nie miałem żadnego ściemniacza, dlatego postanowiłem sobie sprawić takowy ale chciałbym Was jako fachowców zapytać który wybrać Qubino Dimmer czy Fibaro FGD-211. Różnica w cenie jest ok 100 zł ale bardziej mnie interesuje jego praktyczność, który byście polecili?
i dodatkowe pytanie - czy mając przełącznik dotykowy jednoprzyciskowy można jakoś ustawić, że po przytrzymaniu rozjaśnia się potem ściemnia? i czy bypass jest niezbędny?

11
Fibaro - urządzenia / usuwanie urządzeń
« dnia: Kwiecień 08, 2015, 05:03:28 pm  »
Po którymś nerwie nieopacznie zresetowałem motiona i danfosa - oczywiście po kolejnym dodaniu do HC2 znalazły się bez większych dramatów, ALE! wcześniej ich nie wywaliłem z w/w centralki i teraz z nic w świecie nie chcą zniknąć - HELP.

12
Dyskusja ogólna / święta
« dnia: Kwiecień 04, 2015, 04:40:43 pm  »
Witajcie - nie wiedziałem gdzie umieścić mój post wiec postanowiłem tu:

Koledzy - Wszystkim Wam życzę dobrze przeżytych Świąt Wielkiej Nocy, wypełnionych radością, a w Lany Poniedziałek aby wasze centralki znowu się pomyliły i odpaliły sceny "podlewanie ogrodu".
Marcin

13
Fibaro - urządzenia / elektrozawory
« dnia: Marzec 29, 2015, 09:01:16 pm  »
Drodzy koledzy, tym razem chciałbym zapytać Was jakie macie albo jakie polecacie elektrozawory do wody ciepłej a jakie do zimnej, oczywiście chciałbym aby działały w niezawodnym systemie zaczynającym się na F.
Czeka mnie w ciągu 3-4 m-cy wymiana rur i pomyślałem, że fajnie by było mieć takie cudeńka.

14
Fibaro - skrypty itp / Wake On Lan
« dnia: Marzec 25, 2015, 09:50:50 pm  »
Robimy nowe urządzenie wirtualne z portem 80
klejamy

--[[
 %% properties

 %% globals
 --]]

 -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits)
 function convertMacAddress(address)
   local s = string.gsub(address, ":", "");
   local x = "";  -- will contain converted MAC
   for i=1, 12, 2 do
     x = x .. string.char(tonumber(string.sub(s, i, i+1), 16));
   end
   return x;
 end

 fibaro:log("Start process");

 -- MAC adress
 local _macAddress = convertMacAddress("BB:AA:CC:77:88:00");
 -- Create Magic Packet 6 x FF
 local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff);
 -- Broadcast Address
 local _broadcastAddress = "255.255.255.255";
 -- Default port used
 local _wakeOnLanPort = 9;

 fibaro:sleep(750);

 for i = 1, 16 do
   _magicPacket = _magicPacket .. _macAddress;
 end

 fibaro:log("Magic packet successfully created");

 fibaro:sleep(1000);

 socket = Net.FUdpSocket();
 socket:setBroadcast(true);

 local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort);
 --check for error     
 if errorCode == 0 then
   fibaro:log("Successfully sent");
 else
   fibaro:log("Transfer failed");
 end

 -- clean up memory
 socket = nil;

 fibaro:sleep(1000);
 fibaro:log("Please wait for the server startup."); 



MAC ADRES podmieniamy na własny :)
i smiga

Niestety nie wiem czyj to był projekt :( ale działą i to się liczy.

Strony: [1]