Page 1 sur 1

Je bloque sur un envoi de notif / mail

Publié : 03 déc. 2018, 22:05
par Datawolf
Salut,
Les devices TEXT c'est bien beau, mais j'ai décidé de passer à l'envoi de mail.
J'ai fait un script qui contrôle de niveau des piles de mes sondes, mais je ne reçois pas de mail.
Je me suis alors inscrit à pushbullet, le bouton "test" marche bien, mais je ne reçois rien du script.
J'ai d'abord cru que c'était à cause du '%' et je l'ai viré, mais rien à faire.

Code : Tout sélectionner

--[[
Tous les samedis matin, vérifie le niveau des piles
Et envoie un mail en deçà d'un certain seuil
--]]

return {
	on = { timer =   { 'at 21:52 on mon'	}
	},
	execute = function(domoticz, timer)

      local lowBat = 30	-- seuil de l'alerte
      
      local subsystem = "pushbullet"

      domoticz.devices().forEach(function(device)
        batLevel = device.batteryLevel
        if batLevel ~= nil then -- uniquement pour les devices pour lesquels ça fait sens
          info = 'Pourcentage batterie '..device.name..' '..batLevel..''
          domoticz.log(info,domoticz.LOG_INFO)
--          if ( batLevel < lowBat) then
--                                                                    'subject        #body      #extraData#priority#sound#subsystem'
             commandArray[#commandArray+1] = {['SendNotification'] = 'Notif Domusticz#'..info..'#'..     '#'..    '#'.. '#'.. subsystem ..''}
--                                                                   'objet          #message   #    adresse@mail.com'             
             commandArray[#commandArray+1] = {['SendEmail']        = 'Notif Domusticz#'..info..'#'..'monadresse@gmail.com'}             
--          end -- if level
        end -- if nil
      end) -- forEach

	end -- execute function
}
help !

@+
Datawolf

Re: Je bloque sur un envoi de notif / mail

Publié : 04 déc. 2018, 13:27
par papoo
Bonjour,
tu utilises des commandArray dans un script dzvents, ce n'est pas nécessaire
pour l'envoi de notification il y a la fonction domoticz.notify()
pour spécifier un ou plusieurs systèmes de notification il faut respecter la syntaxe domoticz.NSS_{le système de notification}
les Systèmes de notification disponibles :
NSS_GOOGLE_CLOUD_MESSAGING NSS_HTTP NSS_KODI NSS_LOGITECH_MEDIASERVER NSS_NMA NSS_PROWL NSS_PUSHALOT NSS_PUSHBULLET NSS_PUSHOVER NSS_PUSHSAFER
Pour une notification sur plusieurs systèmes, séparez les systèmes par une virgule.

Exemple :{domoticz.NSS_TELEGRAM, domoticz.NSS_HTTP}

pour l'envoi de mail il y a la fonction domoticz.email('sujet', 'message, 'adresse@mail.com')

ce qui donnerait pour ton script

Code : Tout sélectionner

--[[
Tous les samedis matin, vérifie le niveau des piles
Et envoie un mail en deçà d'un certain seuil
--]]

return {
	on = { timer =   {'at 21:52 on mon'}},

	execute = function(domoticz, timer)

      local lowBat = 30	-- seuil de l'alerte
      
      local subsystem = "domoticz.NSS_PUSHBULLET"
                    --[[ Systèmes de notification disponibles :
                        NSS_GOOGLE_CLOUD_MESSAGING NSS_HTTP NSS_KODI NSS_LOGITECH_MEDIASERVER NSS_NMA NSS_PROWL NSS_PUSHALOT NSS_PUSHBULLET NSS_PUSHOVER NSS_PUSHSAFER
                        Pour une notification sur plusieurs systèmes, séparez les systèmes par une virgule.
                        Exemple :{domoticz.NSS_TELEGRAM, domoticz.NSS_HTTP}
                    --]]

      domoticz.devices().forEach(function(device)
        batLevel = device.batteryLevel
        if batLevel ~= nil and batLevel < lowBat then -- uniquement pour les devices pour lesquels ça fait sens
          info = 'Pourcentage batterie '..device.name..' '..batLevel..''
          domoticz.log(info,domoticz.LOG_INFO)
       
        domoticz.notify("Notif Domoticz", info, domoticz.PRIORITY_HIGH, ' ', ' ', subsystem)                                    
        domoticz.email('Notif Domoticz', info, 'monadresse@gmail.com')

        end -- if nil
      end) -- forEach

	end -- execute function
}

Re: Je bloque sur un envoi de notif / mail

Publié : 04 déc. 2018, 20:38
par Datawolf
Bonjour Papoo,

Je te remercie pour ton aide.
Je reçois désormais le mail.
En revanche toujours pas de pushbullet. Snif.
(au fait, il faut que l'app soit ouverte ?)

@+
Datawolf

Re: Je bloque sur un envoi de notif / mail

Publié : 04 déc. 2018, 22:40
par papoo
c'est de ma faute j'ai mis des " " au lieu de { }
celui ci devrai mieux fonctionner

Code : Tout sélectionner

--[[
Tous les samedis matin, vérifie le niveau des piles
Et envoie un mail en deçà d'un certain seuil
--]]
local scriptName = 'test notif'
local scriptVersion = '1.0'

return {
    active = true,
	on = { timer =   {'at 21:52 on mon'}},
    	-- on = { timer =   {'every minute'}},
    logging =   {   level    =   domoticz.LOG_DEBUG,
                -- level    =   domoticz.LOG_INFO,             -- Seulement un niveau peut être actif; commenter les autres
                -- level    =   domoticz.LOG_ERROR,            -- Only one level can be active; comment others    
                -- level    =   domoticz.LOG_MODULE_EXEC_INFO,

                marker = scriptName..' v'..scriptVersion }, 
    
    
    
	execute = function(domoticz, timer)

      local lowBat = 90	-- seuil de l'alerte
      
      local subsystem = {domoticz.NSS_PUSHBULLET}
                    --[[ Systèmes de notification disponibles :
                        NSS_GOOGLE_CLOUD_MESSAGING NSS_HTTP NSS_KODI NSS_LOGITECH_MEDIASERVER NSS_NMA NSS_PROWL NSS_PUSHALOT NSS_PUSHBULLET NSS_PUSHOVER NSS_PUSHSAFER
                        Pour une notification sur plusieurs systèmes, séparez les systèmes par une virgule.
                        Exemple :{domoticz.NSS_TELEGRAM, domoticz.NSS_HTTP}
                    --]]

        domoticz.devices().forEach(function(device)
            batLevel = device.batteryLevel
            if batLevel ~= nil and batLevel < lowBat then -- uniquement pour les devices pour lesquels ça fait sens
                info = 'Pourcentage batterie '..device.name..' '..batLevel..''
                domoticz.log(info,domoticz.LOG_DEBUG)
                domoticz.notify("Notif Domoticz", info, domoticz.PRIORITY_HIGH, ' ', ' ', subsystem)                                          
                domoticz.email('Notif Domoticz', info, 'monadresse@gmail.com')
            end -- if nil
        end) -- forEach

	end -- execute function
}

Re: Je bloque sur un envoi de notif / mail

Publié : 05 déc. 2018, 10:00
par Datawolf
En effet, ça marche. Merci !
En revanche, je trouve la notification dans pushbullet mais je n'ai aucune notification ios (bien que autorisées dans paramétrage, et app ouverte). :(
Peut-être parce que c'est le même compte que celui de la clé d'API ?

EDIT:
pushbullet ne marche pas, pushover est payant, pushsafer marche mais il est payant, telegram ne marche pas, clickatell est payant...
Je vais finir par acheter une clé 3G... :?

Re: Je bloque sur un envoi de notif / mail

Publié : 05 déc. 2018, 15:22
par papoo
Pour moi
Pushbullet et Telegram fonctionnent correctement

Re: Je bloque sur un envoi de notif / mail

Publié : 05 déc. 2018, 16:10
par Datawolf
Je lis dans l'app les notifs envoyées à pushbullet, mais je n'ai aucune notification au sens ios.

J'ai galéré un peu avec Telegram pour obtenir la clé puis l'Id, mais j'y suis arrivé. Cependant, rien ne lui parvient.

Re: Je bloque sur un envoi de notif / mail

Publié : 05 déc. 2018, 17:08
par papoo
Tu as créé un bot pour Telegram ?

Re: Je bloque sur un envoi de notif / mail

Publié : 06 déc. 2018, 14:31
par Datawolf
Oui, j'ai créé un bot et j'ai obtenu l'Id.
Mais ça ne marchait pas parce je n'avais pas envoyé de message au bot.
Maintenant que c'est fait j'ai bien les notifications dans Telegram, mais comme je laisse toujours le son de mon iphone à zéro, c'est silencieux.
Mes SMS, pourtant, font du bruit...