Smartphone check

Hjälp varandra att vara kreativa för att göra hemmet mer bekvämt.
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

jens wrote:
jompa68 wrote:Om du kör denna test scen (LUA) får du ut något data i logg fönstret nedanför då när du trycker 1,2 resp 3gånger på knappen?
Ändra från 75 till din dimmers ID

Code: Select all

--[[ 
%% properties 
75 sceneActivation 
%% globals 
--]] 
local id= 75; 
local name = fibaro:getName(id) 
fibaro:debug(name); 


  local idn = tonumber(fibaro:getValue(id, "sceneActivation")); 
  if (tonumber(fibaro:getValue(id, "sceneActivation"))==16) 
    then 
    fibaro:debug("1 click s1 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==26) 
    then 
    fibaro:debug("1 click s2 "..idn); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==25) 
    then 
    fibaro:debug("3 click s2 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==15) 
    then 
    fibaro:debug("3 click s1 "..idn); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==14) 
    then 
    fibaro:debug("2 click s1 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==24) 
    then 
    fibaro:debug("2 click s2 "..idn); 
      elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==12) 
    then 
    fibaro:debug("hold click s1 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==13) 
    then 
    fibaro:debug("release click s1 "..idn); 
      elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==22) 
    then 
    fibaro:debug("hold click s2 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==23) 
    then 
    fibaro:debug("release click s2 "..idn); 
      elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==10) 
    then 
    fibaro:debug("change from turn off to turn on s1 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==11) 
    then 
    fibaro:debug("change from turn on to turn off s1 "..idn); 
      elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==20) 
    then 
    fibaro:debug("change from turn off to turn on s2 "..idn); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==21) 
    then 
    fibaro:debug("change from turn on to turn off s2 "..idn); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==17) 
    then 
    fibaro:debug("up "..idn); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==18) 
    then 
    fibaro:debug("down "..idn); 
    end; 

Ska testa när jag kommer hem i eftermiddag... :)

Tittade lite nogrannare då såg jag att det stod så här i den tidigare loggen...

[DEBUG] 22:42:54: 2klick aktiverad, dags att sova
[DEBUG] 22:43:06: 2klick aktiverad, dags att sova
[DEBUG] 15:43:59: 2klick aktiverad, dags att sova
[DEBUG] 20:50:08: 2klick aktiverad, dags att sova
[DEBUG] 20:52:11: 2klick aktiverad, dags att sova
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

Skärmavbild 2013-08-15 kl. 21.22.17.png
Skärmavbild 2013-08-15 kl. 21.22.17.png (438.49 KiB) Viewed 22155 times
Skärmavbild 2013-08-15 kl. 21.22.35.png
Skärmavbild 2013-08-15 kl. 21.22.35.png (445.8 KiB) Viewed 22155 times



Här kommer bilder på mina scener...
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Tror variabeln är känslig på stora och små bokstäver. Ändra i scenen från Sova till sova.

Sen ser jag i bild 2 att du släcker enheter och sen släcker du även sänglampor, du ska nog ändra dom till Tänd istället och sen kommer dom att släckas efter tiden har gått ut (som du satt)
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

jompa68 wrote:Tror variabeln är känslig på stora och små bokstäver. Ändra i scenen från Sova till sova.

Sen ser jag i bild 2 att du släcker enheter och sen släcker du även sänglampor, du ska nog ändra dom till Tänd istället och sen kommer dom att släckas efter tiden har gått ut (som du satt)

Jippi :D

Nu funkar det, verkar som det var stora och små bokstäver...

TACK för hjälpen...
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

jens wrote:
jompa68 wrote:Tror variabeln är känslig på stora och små bokstäver. Ändra i scenen från Sova till sova.

Sen ser jag i bild 2 att du släcker enheter och sen släcker du även sänglampor, du ska nog ändra dom till Tänd istället och sen kommer dom att släckas efter tiden har gått ut (som du satt)

Jippi :D

Nu funkar det, verkar som det var stora och små bokstäver...

TACK för hjälpen...
Ändrade i ditt script från sceneActivation"))==14 till 24 så fick jag det att bli dubbelklick på knapp S2, börjar fatta hur det ska vara, :)
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

jompa68 wrote:Hej Jens
så här har jag gjort.

1. Scenen som kollar om någon är hemma körs varje minut. Scenen "trycker" på den virtuell knappen som gör ett tcp anrop på port 62078 mot dom iPhones som jag har angivit med deras ip adress dom har på mitt lokala nätverk.
Om scenen får träff på någon telefon så sätter den variabel "Hemma" till 1. Så fort scenen ej får träff på telefonerna så sätter den variabeln "Hemma" till 0.

2. I en annan scen så håller jag koll på om variabeln "Hemma" är 1 eller 0 och utför saker efter det, såsom att tända eller släcka lysen, aktivera och avaktivera larm mm.

Scenen körs som kollar telefonerna körs hela tiden, dygnet runt. Förmodar att du inte vill att lysen ska tändas om telefonerna kopplar upp sig mot nätverket under natten, då kan du ha en ytterligare variabel som heter tex "Sova" och den sätter du till 1 när du går och lägger dig. Då kan du i punkt 2 ha en ytterligare koll på variabel såsom

if Hemma == 1 och Sova == 0 then
fibaro:call(66, "turnON")
end

Hojta till om du vill ha hjälp med att skapa en scen utefter dina önskemål.
Givetvis kan jag lägga ut mina scener men dom är super STORA med massor av kod så det kanske blir lite för mycket till att börja med ;)

Hej Jompa,

Hur gör jag om jag vill kontrolera om min TV dator är på gjorde så här men tydligen fel :(
tcpSocket = Net.FTcpSocket("192.168.0.139", 62078) -- den tilldelade ip addressen som iPhone har och port 62078
bytes, errorCode = tcpSocket:write("test")
if errorCode == 0 then
fibaro:setGlobal("LastSeenTV",os.time())
fibaro:log("LastSeenTV: OK")
else
fibaro:log("LastSeenTV: Failed")
end
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Hej Jens
du behöver kolla upp vad för port som kan tänkas vara åtkomlig för din TV. Beträffande din dator så går det ju att antingen köra en ping eller om man vill hantera något på pc kan man logga på med telnet och utföra saker.

Ping

Code: Select all

--[[ 
%% properties 
%% globals 
--]] 

fibaro:log("Start process"); 

local _deviceIp = "192.168.1.220"; 
local _devicePort = 80; 
local _maxRetryProcess = 5; 

-- recursive function to ping device 
local function _ping(retry) 
  retry = retry or 0; 
  --open the socket 
  local tcpSocket = Net.FTcpSocket(_deviceIp, _devicePort); 
  --set the read timeout 
  tcpSocket:setReadTimeout(250); 
  --notify user 
  fibaro:log("Search on the local network, try #" .. retry .. " please wait..."); 
  fibaro:sleep(250);    
  --send packet 
  local bytes, errorCode = tcpSocket:write("ping"); 
  --check for error      
  if errorCode == 0 then 
    return true; 
  else 
    if retry < _maxRetryProcess then 
      fibaro:log("Retry process, please wait..."); 
      fibaro:sleep(1000); 
      return _ping(retry + 1); 
    end 
    return false; 
  end 
end 

--ping device, secure with pcall to catch errors. 
local f, result = pcall(_ping); 

if (f) then 
  if (result == true) then 
    fibaro:log("Server has been found, is awake and listening."); 
  else 
    fibaro:log("Server was not found!"); 
  end 
else 
  fibaro:log("Error: " .. f); 
end 
telnet

Code: Select all

fibaro:log('Contacting with server...'); 
tcpSocket = Net.FTcpSocket("192.168.1.5", 23); 
tcpSocket:setReadTimeout(10000); 

function getAnswer() 
  local s, e, i; 
  i = 0; 
  repeat 
    i = i + 1; 
    s, e = tcpSocket:read(); 
    if (e>0) then 
      fibaro:sleep(1000); 
      fibaro:log('Waiting ' .. i .. '...'); 
    end 
  until (e==0 or i>10); 
  return s; 
end 

-- waiting for server 'introduce' 
a = getAnswer(); 

if (a) then 
  fibaro:log(a); 

  -- captured by Wireshark: MacOS Telnet Client -> Windows Telnet Server 

  tcpSocket:write(string.char(0xff, 0xfc, 0x25, 0xff, 0xfd, 0x01, 0xff, 0xfd, 0x03, 0xff, 0xfb, 0x27, 0xff, 0xfb, 0x1f, 0xff, 0xfa, 0x1f, 0x00, 0x50, 0x00, 0x18, 0xff, 0xf0, 0xff, 0xfb, 0x00, 0xff, 0xfd, 0x00)); 
  fibaro:log(getAnswer()); 

  -- login Administrator inside this hex: 
  tcpSocket:write(string.char(0xff, 0xfa, 0x27, 0x00, 0x00, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x01, 0x2f, 0x74, 0x6d, 0x70, 0x2f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x2d, 0x46, 0x63, 0x54, 0x67, 0x76, 0x6a, 0x2f, 0x6f, 0x72, 0x67, 0x2e, 0x6d, 0x61, 0x63, 0x6f, 0x73, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x2e, 0x78, 0x71, 0x75, 0x61, 0x72, 0x74, 0x7a, 0x3a, 0x30, 0x00, 0x55, 0x53, 0x45, 0x52, 0x01, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0xff, 0xf0, 0xff, 0xfa, 0x27, 0x00, 0x03, 0x53, 0x46, 0x55, 0x54, 0x4c, 0x4e, 0x54, 0x56, 0x45, 0x52, 0x03, 0x53, 0x46, 0x55, 0x54, 0x4c, 0x4e, 0x54, 0x4d, 0x4f, 0x44, 0x45, 0xff, 0xf0)); 
  fibaro:log(getAnswer()); 

  -- password 
  tcpSocket:write('password' .. string.char(0x0d)); 
  fibaro:log(getAnswer()); 

  tcpSocket:write(string.char(0xff, 0xfb, 0x18)); 
  fibaro:log(getAnswer()); 

  repeat 
    tcpSocket:write(string.char(0xff, 0xfa, 0x18, 0x00, 0x58, 0x54, 0x45, 0x52, 0x4d, 0x2d, 0x32, 0x35, 0x36, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0xff, 0xf0)); 
    a = getAnswer(); 
    fibaro:log(a); 
  until (a~=string.char(0xff, 0xfa, 0x18, 0x01, 0xff, 0xf0)); 

  -- waiting for receive command by server and return all answers 
  fibaro:sleep(1000); 
  fibaro:log(getAnswer()); 

else 
  fibaro:log('No answer!'); 
end 
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

Aha, ska testa det...
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
11

Hej

är här någon som vet vilken port det är på android, eller hur jag kan se vilken port det är?

jag är rent ny på detta, så om frågan är dum så snälla ursäkta :oops:

Mvh Bisse
AnderstorpsEl
Ny medlem
Posts: 7
Joined: 24 Feb 2014, 10:54
10

Tjena Jompa!

Fick denna länken av Niklas på Grönahus, om hur man lägger till en iPhone som en virtuell enhet.

Är väldigt ny på Fibaro, och LUA-programmering är verkligen inte min grej.
Vi håller som sagt på att prova lite på våran firma, och hade velat ha styrning på lager-belysningen när någon av våra jobb telefoner ansluts till wlan:et på firman.

Har kikat lite i den här tråden, men hajjar inte så mycket alls.

Du skulle inte kunna göra en mer specifik guide på hur man går till väga?
Med lite bilder och förklaringar?

Hade varit toppen ifall du hade tid till det!

Med vänlig hälsning,
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Hejsan

jodå kommer en guide under kvällen :)
AnderstorpsEl
Ny medlem
Posts: 7
Joined: 24 Feb 2014, 10:54
10

jompa68 wrote:Hejsan

jodå kommer en guide under kvällen :)
Amen det är ju alldeles utmärkt! :D :D

Satt och läste lite här igenom tråden, men det vart så luddigt, med massa olika scripts hit o dit :)

Med vänlig hälsning
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Tror det har blivit lite mer än bara vad det står i rubriken på tråden ;)
AnderstorpsEl
Ny medlem
Posts: 7
Joined: 24 Feb 2014, 10:54
10

jompa68 wrote:Tror det har blivit lite mer än bara vad det står i rubriken på tråden ;)
Japp, det kändes som det.. :)

Men lägger du upp guiden här i denna tråd eller?
Hade varit bra ifall det blev en guide utav det, så man ser lite och får det förklarat lite mer :)
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Johan71
Medlem
Posts: 84
Joined: 24 Jan 2014, 11:46
10

Är det här fortfarande aktuellt för att kunna se när tex barnen är hemma?
Jag har inget behov av att kunna styra scener utan är bara intresserad om dom är hemma?
MVH Johan
_____________________________
Fibaro Home Center 2
Johan71
Medlem
Posts: 84
Joined: 24 Jan 2014, 11:46
10

Hej
Försöker få till det men det går inte så bra

[DEBUG] 21:51:59: -|- Start: 2014-04-03 21:51:59
[DEBUG] 21:51:59: -|- LastSeenJohanna: 2014-04-03 21:51:59
[DEBUG] 21:51:59: -|- LastSeenDidrik: 2014-04-03 21:51:59
[DEBUG] 21:51:59: -|- AbsenceTime: 2014-04-03 21:21:59
[ERROR] 21:51:59: line 39: attempt to compare nil with number

Rad 39 ser ut såhär

if tonumber(LastSeenJohanna) < AbsenceTime and tonumber(LastSeenDidrik) < AbsenceTime then

Någon som har ett tips på vad det kan vara för fel?
MVH Johan
_____________________________
Fibaro Home Center 2
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Har du skapat dessa som variabler?


Jonny sent this from his iPhone using Tapatalk
Johan71
Medlem
Posts: 84
Joined: 24 Jan 2014, 11:46
10

Ja det har jag
MVH Johan
_____________________________
Fibaro Home Center 2
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

Det är viktigt när du skriver variabeln att den är exakt med stora och små bokstäver mellan rum,mm

//Jens


Sent from my iPad using Tapatalk HD
Post Reply