Hallo zusammen,
ich nutze jetzt schon recht lange folgendes Skript, welches hier mal vorgestellt worden ist und einen SMS-Versand ermöglichen soll.
Seit dem Update auf 4.530 bekomme ich folgenden Fehler:
Kann da jemand weiterhelfen?
Vielen Dank
Grüße
Volker
Skript:
--[[
%% properties
%% globals
--]]
-- DIESE DATEN ANPASSEN
-- numbers: Handynummer(n)
local numbers = {???}
-- app_key: siehe Artikel
local app_key = '???'
-- sender: Absender (Nur bei SMS);Keine Umlaute, Leerzeichen oder Sonderzeichen
local sender = 'HomeCenter'
-- action: Mögliche Aktion: sms/tts-call/both
local action = 'sms'
-- sms_type: Art der Nachricht: sms/flashsms/threema/facebook/simsme
local sms_type = 'sms'
-- fallback_time: Zeit, nachdem eine SMS zusätzlich (wenn die Nachricht nicht innerhalb der Zeit gelesen wid) versendet wird
-- In Sekunden (0 = deaktiviert; 1 Min = 60; 2 Min = 120; 10 Min = 600)
local fallback_time = '120'
-- AB HIER NICHTS MEHR ANPASSEN
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end
function sms_func(number)
local flashsms = 0
local gateway = 'auto10or11'
local message_type = 'SMS'
local fallback = ''
if (fallback_time ~= '0' and sms_type ~= 'SMS') then
fallback_time = fallback_time/12
-- fibaro:debug('Fallback: '..fallback_time)
fallback = '&tryagain='..fallback_time
else
fallback = '&tryagain=0'
end
if (sms_type == 'threema') then
gateway = '55'
message_type = 'Threema'
elseif (sms_type == 'facebook') then
gateway = '57'
message_type = 'Facebook'
elseif (sms_type == 'simsme') then
gateway = '56'
message_type = 'simsde'
elseif (sms_type == 'flashsms') then
flashsms = 1
message_type = 'FLASH-SMS'
end
local var_text = string.gsub(fibaro:getGlobal('sms_text'), ' ', '+')
local selfhttp = net.HTTPClient({timeout=2000})
url = 'https://www.smsflatrate.net/appkey.php?appkey='..app_key..'&lizenz=215100100&aid=4764&from='..sender..'&to=00'..number..'&text='..var_text..'&flash='..flashsms..'&type='..gateway..''..fallback
selfhttp:request(url, {
options={
headers = selfhttp.controlHeaders,
method = 'GET',
timeout = 5000
},
success = function(status)
if (status.status == 200) then
Debug( 'green', message_type.. '-Nachricht erfolgreich verschickt an +'..number)
Debug( 'white', 'Versendeter Text: ' ..fibaro:getGlobal('sms_text'))
if (fallback_time ~= '0' and sms_type ~= 'sms') then
local fallback_time_calc = ((fallback_time*12)/60)
Debug( 'orange', 'Fallback-Time von '..fallback_time_calc..' min aktiviert!')
end
account_balance_func()
else
Debug( 'red', 'ERROR. Fehlercode: ' ..status.status)
end
end,
error = function(error)
print "ERROR"
print(error)
end
})
end
function call_func(number)
local var_text = string.gsub(fibaro:getGlobal('sms_text'), ' ', '+')
local selfhttp = net.HTTPClient({timeout=2000})
url = 'https://www.smsflatrate.net/appkey.php?appkey='..app_key..'&lizenz=215100100&aid=4764&to=00'..number..'&text='..var_text..'&type=30&voice=katrin'
selfhttp:request(url, {
options={
headers = selfhttp.controlHeaders,
method = 'GET',
timeout = 5000
},
success = function(status)
if (status.status == 200) then
Debug( 'green', 'Anruf an +'..number..' ist rausgegangen')
Debug( 'white', 'Durchgesagter Text: ' ..(fibaro:getGlobal('sms_text')))
account_balance_func()
else
Debug( 'red', 'ERROR. Fehlercode: ' ..status.status)
end
end,
error = function(error)
print "ERROR"
print(error)
end
})
end
function round(num, places)
places = 10 ^ places
return math.floor((num * places) + 0.5 ) / places
end
function account_balance_func()
local selfhttp = net.HTTPClient({timeout=2000})
url = 'https://www.smsflatrate.net/appkey.php?appkey=' ..app_key.. '&lizenz=215100100&aid=4764&request=credits'
selfhttp:request(url, {
options={
headers = selfhttp.controlHeaders,
method = 'GET',
timeout = 5000
},
success = function(status)
local account_balance = round(status.data,2)
if (account_balance < 1) then
Debug( 'orange', 'Achtung. Euer Guthaben ist weniger als 1 €. Guthaben: ' ..account_balance.. ' €')
Debug( 'red', 'Möglicherweise konnte eure gewählten Aktionen nicht durchgeführt werden!')
else
Debug( 'green', 'Restliches Guthaben: ' ..account_balance.. ' €')
end
end,
error = function(error)
print "ERROR"
print(error)
end
})
end
Debug('white', 'smsflatrate.net API 2.3 gestartet')
local var = 'sms_text'
if fibaro:getGlobalValue(var) == nil then
Debug( 'red', 'Varible ' ..var..' nicht gefunden. Bitte anlegen.')
fibaro:sleep(2*1000)
Debug( 'red','Szene abgebrochen')
fibaro:abort()
elseif (tonumber(fibaro:getGlobalValue(var)) == 0 or tonumber(fibaro:getGlobalValue(var)) == 1) then
Debug( 'red', 'Varible ' ..var..' nicht gesetzt. Einmaliger Testtext wird gesetzt.')
fibaro:setGlobal(var, 'Dies ist ein Test')
fibaro:sleep(2*1000)
Debug( 'red','Szene abgebrochen. Beim nächsten Start wird der eingetragene Text versendet.')
fibaro:abort()
end
if (action == 'tts-call') then
for o=1, #numbers do
if numbers[o] ~= nil then
call_func(numbers[o])
end
end
elseif (action == 'sms') then
for o=1, #numbers do
if numbers[o] ~= nil then
sms_func(numbers[o])
end
end
elseif (action == 'both') then
for o=1, #numbers do
if numbers[o] ~= nil then
sms_func(numbers[o])
call_func(numbers[o])
end
end
end