Hi zusammen!
Beim HC2 hatte ich eine schöne Szene, mit der ich verschiedene SMS auslösen konnte. Kann man die evtl. für das HC3 anpassen?
–[[
%% properties
%% globals
–]]
– DIESE DATEN ANPASSEN
– numbers: Handynummer(n)
local numbers = {49xxxxxxxxxx}
– app_key: siehe Artikel
local app_key = ‚xxxxxx‘
– sender: Absender (Nur bei SMS);Keine Umlaute, Leerzeichen oder Sonderzeichen
local sender = ‚FibaroAlert‘
– 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‘,
checkCertificate = false,
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‘,
checkCertificate = false,
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‘,
checkCertificate = false,
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(21000)
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(21000)
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