Blockscen till diskmaskinen

Här kan du som nybörjare ställa dina frågor utan att skämmas
Post Reply
Perinorr
Ny medlem
Posts: 4
Joined: 13 Jan 2016, 00:59

27 Sep 2018, 21:08

Hej
Kan man via blockscener få till att HC2 skickar
ett meddelande när disken är klar?
Vill få ett meddelande när disken är klar MEN under
ett normalt förlopp går förbrukningen mellan 3W till 2300W.
Behöver alltså en funktion som aktiverar meddelandet när diskmaskinen bara dragit 3W under de sista fem minuterna.
Går det med blockscener eller blir man tvingad till LUA?
RH_Dreambox
Proffsmedlem
Posts: 869
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

28 Sep 2018, 10:18

Det blir minst lika krångligt att försöka skapa en fungerande blockscen som att klistra in den här LUA-koden :-)
Det här geniala skriptet är ursprungligen gjort av Zoran Sankovic - Sankotronic på Fibaros forum.
Jag har gjort några smärre modifieringar för att det skall passa mina behov.
Tex. så har jag lagt in att energiförbrukningen beräknas och läses upp via TTS då scriptet (maskinen) är klar.

Här beskrivs några av de viktigaste parametrarna som du kan "skruva på" för att anpassas till valfri maskin.
Var extremt noggrann med versaler och gemener, för i Fibaron är "Off" inte detsamma som "off".

Ange i headern längst upp i koden vilken ID switchen/pluggen har tex. "68 power"

-- GLOBALA VARIABLER --
Skapa en fördefinierad global variabel med lämpligt namn tex "Diskmaskin" och ge den värdena "On" och "Off".
Skapa en vanlig global variabel med namnet "energiDiskmaskin". Variabeln kommer att lagra energiförbrukningen.
Skapa en vanlig global variabel med namnet "TTS". Variabeln skickar lämplig text till din TTS-lösning.
Har du ingen TTS-lösning så skriv två minustecken framför den raden för att inaktivera den. Se raderna 124 och 125 i koden.
Telegram är inaktiverad
-- fibaro:setGlobal("Telegram", "Diskmaskinen är klar. Den förbrukade " ..energitot.. " kWh")
TTS är aktiv
fibaro:setGlobal("TTS", "Viktigt meddelande. Diskmaskinen är klar. Den förbrukade, " ..energitot.. ", kilowatt&vol=10")

-- APPLIANCE CONTROL DEVICE SETUP --
local deviceID = 68 -- Ange samma ID som du angav i headern längst upp
local deviceMinPower = 2.5 -- Ange en lägsta effekt för maskinen, testa dig fram
local deviceStopDuration = 3 -- Ange antal minuter från standby tills dess ett meddelande skall skickas.
local deviceTurnOff = "No" -- Skriv "Yes" om maskinen skall göras strömlös efter avslutat arbete, ange annars "No". På en Tvättmaskin eller Torktumlare kan det vara lämpligt med "Yes". Man måste då manuellt sätta på pluggen (knappen på den) inför nästa tvätt.

Scriptet kan konfigureras till att skicka PUSH och POPUP till utvalda användare.
Har du Telegram eller en TTS-lösning så fungerar det också.
Vi har tex. en Tablet på hallväggen som via TTS ropar ut när Tvättmaskinen och Torktumlaren är klara. Då slipper man springa till tvättstugan i onödan för att kolla om tvätten är klar.
#############################################

Code: Select all

--[[
%% properties
68 power
%% globals
--]]

-- Ange oven ID för den switch som används, tex "68 power"

--[[
-----------------------------------------------------------------------------
-- APPLIANCE MONITORING SCENE -- HERE PUT NAME OF APPLIANCE
-----------------------------------------------------------------------------
Copyright © 2016 Zoran Sankovic - Sankotronic. All Rights Reserved.
Version 1.0

-- SCENE DESCRIPTION --------------------------------------------------------
This scene can monitor any appliance for power consumption and send push
and/or popup notification when appliance start working and/or when it is
finished. You can also select to switch it off when is done or leave it
under power. Bellow you will find part of code for you to setup for
particular appliance and behavior of this scene.

-- LIST OF GLOBAL VARIABLES NEEDED ------------------------------------------

"applianceStatus" - Skapa en fördefinierad global variabel för den enhet
                    som skall övervakas, tex. "Diskmaskin".
                    Ge variabeln värdena "On" och "Off".
--]]

if (fibaro:countScenes() > 1) then
  fibaro:abort();
end

-- local energitot = 0

-- PART OF CODE FOR USERS TO EDIT AND SETUP ---------------------------------

-- GLOBALA VARIABLER ---------------------------------------------------------
-- Här skriver du namnet på den globala fördefinierade variabel du skapade tex. "Diskmaskin"
-- Värdena för variabeln skall vara "On" and "Off"
local applianceStatus        = "Diskmaskin";
local applianceStatusMapping = {On="On", Off="Off"};

-- EXTRA GLOBALA VARIABLER ---------------------------------------------------
-- Här kan du lägga till egna extra variabler om du utökar denna scen med egen kod

-- APPLIANCE CONTROL DEVICE SETUP -------------------------------------------
-- Lägg in ID för den enhet som skall kontrolleras.
-- Skriv samma ID under properties ovan tex. 68 power
local deviceID           = 68;
-- Lägg in ett effektvärde som som är något högre än maskinens standby-värde
local deviceMinPower     = 2.5;
-- Lägg in antal minuter från standby tills ett meddelande skall skickas
local deviceStopDuration = 3;
-- Skriv "Yes" om enheten skall stängas av efter avslutat arbete
-- Skriv "No" om enheten skall lämnas påslagen
local deviceTurnOff      = "No";

-- USERS, PUSH AND POPUP NOTIFICATION SETUP ---------------------------------
-- Ange den eller de användare som push-meddelanden skall skickas till
local userID   = {49}; -- flera användare {49, 56, 78};
-- Flagga för varje användare om push-meddelande skall skickas
-- send notifications. You can add code in function extraUserCodeFirst()
local userFlag = {1}; -- flera användare tex. userFlag = {1, 1, 0};
-- PUSH MESSAGES SETUP ------------------------------------------------------
-- Ange push-meddelanden för start respektive stopp
local pushMessage = {start = "Diskmaskinen har startats",
                     stop  = "Diskmaskinen är klar "};
-- Skriv "Yes" för att få meddelande vid programstart, annars anger du "No"
local pushStart = "No";
-- Skriv "Yes" för att få meddelande då maskinen är klar, annars anger du "No"
local pushStop  = "No";

-- POPUP MESSAGES SETUP -----------------------------------------------------
-- enter popup message text and button caption for the appliance start and 
-- stop
local popupMainTitle         = "DISKMASKIN";
local popupTimeFormat        = "%H:%M:%S | %d.%m.%Y.";
local popupContentTitleStart = "Diskmaskinen startas";
local popupContentTitleStop  = "Diskmaskinen är klar";
local popupContentBodyStart  = "Diskmaskinen arbetar";
local popupContentBodyOn     = "Diskmaskinen är inte avstängd";
local popupContentBodyOff    = "Diskmaskinen har stängts av";
local popupImgUrl            = "";
local popupButtonCaption     = "OK";
-- enter "Yes" if you want to receive popup notification that appliance
-- started working else put "No"
local popupStart = "No";
-- enter "Yes" if you want to receive popup notification that appliance
-- finished working else put "No"
local popupStop  = "No";

-- DEBUGGING VARIABLES -----------------------------------------------------
-- setup debugging, true is turned on, false turned off.
local deBug        = true;  -- for showing events as they happen
local exDebug      = true; -- for checking loop counter

-- EXTRA FUNCTION WHERE YOU CAN ADD YOUR CODE ----------------------------
-- use this function to add code that will be executed before loop is
-- started and push adn popup notifications are sent
function extraUserCodeFirst()
  -- your code goes here

--  local pushMessage = {start = "Torktumlaren har startats",
--                     stop  = "Tvätten är torr "..energitot.." kW"};
  
  if deBug then logbug("yellow", "User extra code before loop executed") end;
end

-- use this function to add code that will be executed after loop is
-- finished and before sending push and popup notifications
function extraUserCodeLast()
  -- your code goes here
  
local energistart = tonumber(fibaro:getGlobalValue("energiDiskmaskin", energistopp))
local energistopp = tonumber(fibaro:getValue(deviceID, "energy"))
local energitot = energistopp - energistart
local energitot = energitot - energitot % 0.01

fibaro:setGlobal("energiDiskmaskin", energistopp)
  
energitot = string.gsub(energitot,"%.",",")
  
-- fibaro:setGlobal("Telegram", "Diskmaskinen är klar. Den förbrukade " ..energitot.. " kWh")
fibaro:setGlobal("TTS", "Viktigt meddelande. Diskmaskinen är klar. Den förbrukade, " ..energitot.. ", kilowatt&vol=10")

  if deBug then logbug("yellow", "User extra code after loop executed") end;
end
-- SLUT PÅ SETUP OCH ANVÄNDARDEFINERAD KOD -----------------------------



-- OBS! ÄNDRA INGEN KOD UNDER DENNA RAD ------------------------------------
-- except if you know what you're doin' :-P

local StartSource = fibaro:getSourceTrigger()
local countdown   = 0;
local version     = "1.0";

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

-- send push notification
function sendPush(message)
  if (#userID == #userFlag) then
    if #userID > 0 then
      for i = 1, #userID do
        if userFlag[i] == 1 then
          fibaro:call(userID[i], "sendPush", message); -- Send message to flagged users
          if deBug then logbug("orange", "Push notification sänd till användaren "..fibaro:getName(userID[i])) end;
        end
      end
    end
  else
    if deBug then logbug("red", "User and flag count is different, not setup correctly. Please check") end;
  end
end

-- send popup notification
function sendPopup(i)
  if i == 1 then
    popupContentTitle = popupContentTitleStart;
    popupContentBody  = popupContentBodyStart;
    popupTypeInfo     = "Info";
    if deBug then logbug("orange", "Popup notification sänd: övervakaren har startats") end;
  else
    popupContentTitle = popupContentTitleStop;
    if deviceTurnOff == "Yes" then
      popupContentBody = popupContentBodyOff
      if deBug then logbug("Yellow", "Övervakaren är nedstängd") end;
    else
      popupContentBody = popupContentBodyOn
    end
    popupTypeInfo     = "Success";
    if deBug then logbug("orange", "Popup notification sänd: övervakaren är avslutad") end;
  end
  -------------------------------------------
  HomeCenter.PopupService.publish({
      -- title (required)
      title = popupMainTitle,
      -- subtitle(optional), e.g. time and date of the pop-up call
      subtitle = os.date(popupTimeFormat),
      -- content header (optional)
      contentTitle = popupContentTitle,
      -- content (required)
      contentBody = popupContentBody,
      -- notification image (assigned from the variable)
      img = popupImgUrl,
      -- type of the pop-up
      type = popupTypeInfo,
      -- buttons definition
      buttons = { { caption = popupButtonCaption, sceneId = 0 } }
    })
  ---------------------------------------------
end

if ((tonumber(fibaro:getValue(deviceID, 'power')) > deviceMinPower) and (StartSource['type'] == "property")) then    
  logbug ("green", "Appliance monitoring scene started version "..version.." - © 2016 Sankotronic");
  fibaro:setGlobal(applianceStatus, applianceStatusMapping.On);
  extraUserCodeFirst();
  if pushStart  == "Yes" then sendPush(pushMessage.start) end;
  if popupStart == "Yes" then sendPopup (1) end;
  while true do
    local power = tonumber(fibaro:getValue(deviceID, 'power'));
    -- if power is greater than minimum then reset countdown
    if (power > deviceMinPower) then
      countdown = deviceStopDuration;
    else
      if (countdown > 0) then countdown = countdown - 1 end;
    end
    -- if countdown is ended then send notification and turn off
    if (countdown == 0) then
      if fibaro:getGlobalValue(applianceStatus) == applianceStatusMapping.On then
        fibaro:setGlobal(applianceStatus, applianceStatusMapping.Off);
        extraUserCodeLast();
        if pushStop      == "Yes" then sendPush(pushMessage.stop) end;
        if popupStop     == "Yes" then sendPopup (2) end;
        if deviceTurnOff == "Yes" then fibaro:call(deviceID, "turnOff") end;
      end
      logbug ("green", "Övervakningsscenen avslutades");
      -- Kill running scene cause it is done with appliance
      fibaro:abort();
    end
    if deBug then logbug("lightgreen", "Effekt: " .. power .. " W - nedräkning: " .. countdown .. " Min.") end;
    fibaro:sleep(60000);
  end
else
  logbug ("lightgreen", "Övervakningsscenen startades manuellt och kommer därför att avslutas.");
  -- Kill running scene cause it is done with appliance
  fibaro:abort();
end
2 st HC2 4.511, Recovery-stickorna ligger i skrivbordslådan nu!
Perinorr
Ny medlem
Posts: 4
Joined: 13 Jan 2016, 00:59

29 Sep 2018, 08:05

Ok, tack!
Ska prova det i helgen!
Perinorr
Ny medlem
Posts: 4
Joined: 13 Jan 2016, 00:59

01 Oct 2018, 23:33

RH_Dreambox wrote:
28 Sep 2018, 10:18
Det blir minst lika krångligt att försöka skapa en fungerande blockscen som att klistra in den här LUA-koden :-)
Det här geniala skriptet är ursprungligen gjort av Zoran Sankovic - Sankotronic på Fibaros forum.
Jag har gjort några smärre modifieringar för att det skall passa mina behov.
Tex. så har jag lagt in att energiförbrukningen beräknas och läses upp via TTS då scriptet (maskinen) är klar.

Här beskrivs några av de viktigaste parametrarna som du kan "skruva på" för att anpassas till valfri maskin.
Var extremt noggrann med versaler och gemener, för i Fibaron är "Off" inte detsamma som "off".

Ange i headern längst upp i koden vilken ID switchen/pluggen har tex. "68 power"

-- GLOBALA VARIABLER --
Skapa en fördefinierad global variabel med lämpligt namn tex "Diskmaskin" och ge den värdena "On" och "Off".
Skapa en vanlig global variabel med namnet "energiDiskmaskin". Variabeln kommer att lagra energiförbrukningen.
Skapa en vanlig global variabel med namnet "TTS". Variabeln skickar lämplig text till din TTS-lösning.
Har du ingen TTS-lösning så skriv två minustecken framför den raden för att inaktivera den. Se raderna 124 och 125 i koden.
Telegram är inaktiverad
-- fibaro:setGlobal("Telegram", "Diskmaskinen är klar. Den förbrukade " ..energitot.. " kWh")
TTS är aktiv
fibaro:setGlobal("TTS", "Viktigt meddelande. Diskmaskinen är klar. Den förbrukade, " ..energitot.. ", kilowatt&vol=10")

-- APPLIANCE CONTROL DEVICE SETUP --
local deviceID = 68 -- Ange samma ID som du angav i headern längst upp
local deviceMinPower = 2.5 -- Ange en lägsta effekt för maskinen, testa dig fram
local deviceStopDuration = 3 -- Ange antal minuter från standby tills dess ett meddelande skall skickas.
local deviceTurnOff = "No" -- Skriv "Yes" om maskinen skall göras strömlös efter avslutat arbete, ange annars "No". På en Tvättmaskin eller Torktumlare kan det vara lämpligt med "Yes". Man måste då manuellt sätta på pluggen (knappen på den) inför nästa tvätt.

Scriptet kan konfigureras till att skicka PUSH och POPUP till utvalda användare.
Har du Telegram eller en TTS-lösning så fungerar det också.
Vi har tex. en Tablet på hallväggen som via TTS ropar ut när Tvättmaskinen och Torktumlaren är klara. Då slipper man springa till tvättstugan i onödan för att kolla om tvätten är klar.
#############################################

Code: Select all

--[[
%% properties
68 power
%% globals
--]]

-- Ange oven ID för den switch som används, tex "68 power"

--[[
-----------------------------------------------------------------------------
-- APPLIANCE MONITORING SCENE -- HERE PUT NAME OF APPLIANCE
-----------------------------------------------------------------------------
Copyright © 2016 Zoran Sankovic - Sankotronic. All Rights Reserved.
Version 1.0

-- SCENE DESCRIPTION --------------------------------------------------------
This scene can monitor any appliance for power consumption and send push
and/or popup notification when appliance start working and/or when it is
finished. You can also select to switch it off when is done or leave it
under power. Bellow you will find part of code for you to setup for
particular appliance and behavior of this scene.

-- LIST OF GLOBAL VARIABLES NEEDED ------------------------------------------

"applianceStatus" - Skapa en fördefinierad global variabel för den enhet
                    som skall övervakas, tex. "Diskmaskin".
                    Ge variabeln värdena "On" och "Off".
--]]

if (fibaro:countScenes() > 1) then
  fibaro:abort();
end

-- local energitot = 0

-- PART OF CODE FOR USERS TO EDIT AND SETUP ---------------------------------

-- GLOBALA VARIABLER ---------------------------------------------------------
-- Här skriver du namnet på den globala fördefinierade variabel du skapade tex. "Diskmaskin"
-- Värdena för variabeln skall vara "On" and "Off"
local applianceStatus        = "Diskmaskin";
local applianceStatusMapping = {On="On", Off="Off"};

-- EXTRA GLOBALA VARIABLER ---------------------------------------------------
-- Här kan du lägga till egna extra variabler om du utökar denna scen med egen kod

-- APPLIANCE CONTROL DEVICE SETUP -------------------------------------------
-- Lägg in ID för den enhet som skall kontrolleras.
-- Skriv samma ID under properties ovan tex. 68 power
local deviceID           = 68;
-- Lägg in ett effektvärde som som är något högre än maskinens standby-värde
local deviceMinPower     = 2.5;
-- Lägg in antal minuter från standby tills ett meddelande skall skickas
local deviceStopDuration = 3;
-- Skriv "Yes" om enheten skall stängas av efter avslutat arbete
-- Skriv "No" om enheten skall lämnas påslagen
local deviceTurnOff      = "No";

-- USERS, PUSH AND POPUP NOTIFICATION SETUP ---------------------------------
-- Ange den eller de användare som push-meddelanden skall skickas till
local userID   = {49}; -- flera användare {49, 56, 78};
-- Flagga för varje användare om push-meddelande skall skickas
-- send notifications. You can add code in function extraUserCodeFirst()
local userFlag = {1}; -- flera användare tex. userFlag = {1, 1, 0};
-- PUSH MESSAGES SETUP ------------------------------------------------------
-- Ange push-meddelanden för start respektive stopp
local pushMessage = {start = "Diskmaskinen har startats",
                     stop  = "Diskmaskinen är klar "};
-- Skriv "Yes" för att få meddelande vid programstart, annars anger du "No"
local pushStart = "No";
-- Skriv "Yes" för att få meddelande då maskinen är klar, annars anger du "No"
local pushStop  = "No";

-- POPUP MESSAGES SETUP -----------------------------------------------------
-- enter popup message text and button caption for the appliance start and 
-- stop
local popupMainTitle         = "DISKMASKIN";
local popupTimeFormat        = "%H:%M:%S | %d.%m.%Y.";
local popupContentTitleStart = "Diskmaskinen startas";
local popupContentTitleStop  = "Diskmaskinen är klar";
local popupContentBodyStart  = "Diskmaskinen arbetar";
local popupContentBodyOn     = "Diskmaskinen är inte avstängd";
local popupContentBodyOff    = "Diskmaskinen har stängts av";
local popupImgUrl            = "";
local popupButtonCaption     = "OK";
-- enter "Yes" if you want to receive popup notification that appliance
-- started working else put "No"
local popupStart = "No";
-- enter "Yes" if you want to receive popup notification that appliance
-- finished working else put "No"
local popupStop  = "No";

-- DEBUGGING VARIABLES -----------------------------------------------------
-- setup debugging, true is turned on, false turned off.
local deBug        = true;  -- for showing events as they happen
local exDebug      = true; -- for checking loop counter

-- EXTRA FUNCTION WHERE YOU CAN ADD YOUR CODE ----------------------------
-- use this function to add code that will be executed before loop is
-- started and push adn popup notifications are sent
function extraUserCodeFirst()
  -- your code goes here

--  local pushMessage = {start = "Torktumlaren har startats",
--                     stop  = "Tvätten är torr "..energitot.." kW"};
  
  if deBug then logbug("yellow", "User extra code before loop executed") end;
end

-- use this function to add code that will be executed after loop is
-- finished and before sending push and popup notifications
function extraUserCodeLast()
  -- your code goes here
  
local energistart = tonumber(fibaro:getGlobalValue("energiDiskmaskin", energistopp))
local energistopp = tonumber(fibaro:getValue(deviceID, "energy"))
local energitot = energistopp - energistart
local energitot = energitot - energitot % 0.01

fibaro:setGlobal("energiDiskmaskin", energistopp)
  
energitot = string.gsub(energitot,"%.",",")
  
-- fibaro:setGlobal("Telegram", "Diskmaskinen är klar. Den förbrukade " ..energitot.. " kWh")
fibaro:setGlobal("TTS", "Viktigt meddelande. Diskmaskinen är klar. Den förbrukade, " ..energitot.. ", kilowatt&vol=10")

  if deBug then logbug("yellow", "User extra code after loop executed") end;
end
-- SLUT PÅ SETUP OCH ANVÄNDARDEFINERAD KOD -----------------------------



-- OBS! ÄNDRA INGEN KOD UNDER DENNA RAD ------------------------------------
-- except if you know what you're doin' :-P

local StartSource = fibaro:getSourceTrigger()
local countdown   = 0;
local version     = "1.0";

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

-- send push notification
function sendPush(message)
  if (#userID == #userFlag) then
    if #userID > 0 then
      for i = 1, #userID do
        if userFlag[i] == 1 then
          fibaro:call(userID[i], "sendPush", message); -- Send message to flagged users
          if deBug then logbug("orange", "Push notification sänd till användaren "..fibaro:getName(userID[i])) end;
        end
      end
    end
  else
    if deBug then logbug("red", "User and flag count is different, not setup correctly. Please check") end;
  end
end

-- send popup notification
function sendPopup(i)
  if i == 1 then
    popupContentTitle = popupContentTitleStart;
    popupContentBody  = popupContentBodyStart;
    popupTypeInfo     = "Info";
    if deBug then logbug("orange", "Popup notification sänd: övervakaren har startats") end;
  else
    popupContentTitle = popupContentTitleStop;
    if deviceTurnOff == "Yes" then
      popupContentBody = popupContentBodyOff
      if deBug then logbug("Yellow", "Övervakaren är nedstängd") end;
    else
      popupContentBody = popupContentBodyOn
    end
    popupTypeInfo     = "Success";
    if deBug then logbug("orange", "Popup notification sänd: övervakaren är avslutad") end;
  end
  -------------------------------------------
  HomeCenter.PopupService.publish({
      -- title (required)
      title = popupMainTitle,
      -- subtitle(optional), e.g. time and date of the pop-up call
      subtitle = os.date(popupTimeFormat),
      -- content header (optional)
      contentTitle = popupContentTitle,
      -- content (required)
      contentBody = popupContentBody,
      -- notification image (assigned from the variable)
      img = popupImgUrl,
      -- type of the pop-up
      type = popupTypeInfo,
      -- buttons definition
      buttons = { { caption = popupButtonCaption, sceneId = 0 } }
    })
  ---------------------------------------------
end

if ((tonumber(fibaro:getValue(deviceID, 'power')) > deviceMinPower) and (StartSource['type'] == "property")) then    
  logbug ("green", "Appliance monitoring scene started version "..version.." - © 2016 Sankotronic");
  fibaro:setGlobal(applianceStatus, applianceStatusMapping.On);
  extraUserCodeFirst();
  if pushStart  == "Yes" then sendPush(pushMessage.start) end;
  if popupStart == "Yes" then sendPopup (1) end;
  while true do
    local power = tonumber(fibaro:getValue(deviceID, 'power'));
    -- if power is greater than minimum then reset countdown
    if (power > deviceMinPower) then
      countdown = deviceStopDuration;
    else
      if (countdown > 0) then countdown = countdown - 1 end;
    end
    -- if countdown is ended then send notification and turn off
    if (countdown == 0) then
      if fibaro:getGlobalValue(applianceStatus) == applianceStatusMapping.On then
        fibaro:setGlobal(applianceStatus, applianceStatusMapping.Off);
        extraUserCodeLast();
        if pushStop      == "Yes" then sendPush(pushMessage.stop) end;
        if popupStop     == "Yes" then sendPopup (2) end;
        if deviceTurnOff == "Yes" then fibaro:call(deviceID, "turnOff") end;
      end
      logbug ("green", "Övervakningsscenen avslutades");
      -- Kill running scene cause it is done with appliance
      fibaro:abort();
    end
    if deBug then logbug("lightgreen", "Effekt: " .. power .. " W - nedräkning: " .. countdown .. " Min.") end;
    fibaro:sleep(60000);
  end
else
  logbug ("lightgreen", "Övervakningsscenen startades manuellt och kommer därför att avslutas.");
  -- Kill running scene cause it is done with appliance
  fibaro:abort();
end
________________________

Kul, fick det att fungera. Får pusch för start och stopp av diskmaskinen. :D
Däremot vad menar du med TTS ?
Har avaktiverat den funktionen i koden men skulle gärna fått med energiförbrukning vilket inte kommer med nu.

//P
RH_Dreambox
Proffsmedlem
Posts: 869
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

02 Oct 2018, 09:45

TTS, "text to speech" innebär att den textsträng du skickar till den globala variabeln TTS behandlas i ett script för att sedan läsas upp via en ljudenhet.
Hur scriptet ser ut beror på vilken ljudenhet du använder.
Många föredrar SONOS, men jag använder en app (zenitgatekeeper) i min Samsung tablet. Så om du vill använda dig av SONOS så måste tillhörande script anpassas för detta.
Du kan ju också skicka information om energiförbrukning till mobilen med en liten anpassning av koden.

Zenitgatekeeper har utvecklats av en kille som kallar sig "davandev" och gjordes ursprungligen för ett annat ändamål.
Men han var lyhörd för önskemål och anpassade appen med ett valfritt "ding-dong"-ljud före själva meddelandet så att det var lättare att höra texten som lästes upp.
Volymen bestäms av koden i slutet på textsträngen (&vol=10). Om jag minns rätt så är max volym 15.
Här finns appen att ladda ned om du är intresserad. Appen installerade jag med hjälp av "appinstaller", och ding-dong-ljudet hämtade jag från de ljud som fanns i "paddan".

https://github.com/davandev/AlarmContro ... /v.0.1.619
2 st HC2 4.511, Recovery-stickorna ligger i skrivbordslådan nu!
Post Reply