Page 1 sur 1

Notification Push

Publié : 18 juin 2017, 15:06
par schwinny
Bonjour.

Je cherche la possibilité d'obtenir des alertes push via script lua.

J'ai actuellement un script qui me previent des que ma variable "Alarme Diurne" passe a On ou a off.

J'ai crée un compte pushbullet.
j'ai ensuite crée 2 device sur PushingBox:
Activation Alarme XXXXXX
Desactivation Alarme YYYYY
Dans mon script lua, j'ai crée donc ceci:

Code : Tout sélectionner

elseif otherdevices['Armement Diurne'] == 'Off' and beaconHome==0 then  -- switch On Alarm because all beacon are away
	table.insert (commandArray, { ['Armement Diurne'] ='On' } )
	sms = 'Alarme%20diurne%20Activée%20Automatiquement'
	message = 'Alarme diurne activée automatiquement'
	print('Alarme Diurne Activée Automatiquement')	
	notification_SMS(sms)
	commandArray['OpenURL'] = 'http://api.pushingbox.com/pushingbox?devid=XXXXX
end

Code : Tout sélectionner

if (devicechanged[AlarmeDiurne] == 'Off') then
	message = 'Alarme diurne desactivé'
	sms = 'Alarme%20diurne%20Desactivée'
	notification_SMS(sms)
	commandArray['OpenURL'] = 'http://api.pushingbox.com/pushingbox?devid=YYYYY'
end
Le soucis est que cela ne fonctionne pas...

voici le lot:

Code : Tout sélectionner

2017-06-18 14:56:20.510 User: Admin initiated a switch command (137/Armement Diurne/On)
2017-06-18 14:56:20.760 EventSystem: Script event triggered: /home/schwinny/domoticz/scripts/lua/script_variable_ActivationAutoAlarme.lua
2017-06-18 14:56:21.609 EventSystem: Fetching url...
2017-06-18 14:56:21.609 EventSystem: Script event triggered: /home/schwinny/domoticz/scripts/lua/script_device_Alarme.lua
2017-06-18 14:56:22.079 Error: Error opening url: http://api.pushingbox.com/pushingbox?devid=XXXX
j'ai donc tenté de le mettre directement sur le "Alarme Diurne" via les action on et off, ça remonte bien sur pushingbox mais cela ne redescend pas sur pushing bullet....


bref...

je cherche donc a pouvoir recevoir une notification push sur l'activation de l'alarme ou désactivation via si possible les scripts lua et AUSSI via les actions On/Off des capteurs virtuels.
Je préfère via script lua car cela me permettrais d'appeler des alertes push sur des cas précis... exemple: alarme active + détection de présence... --> Cambriolage? --> alerte push...


pouvez vous me filer un coup d demain svp ?

Re: Notification Push

Publié : 18 juin 2017, 17:25
par papoo
pour les notifications pushbullet en lua
viewtopic.php?f=17&t=3940#p35408

Re: Notification Push

Publié : 18 juin 2017, 18:26
par schwinny
Merci papa.

seulement ça ne fonctionne pas.

j'ai tenté de mettre ceci en appel de script:

Pushbullet(Alarme Desarmé;Desarmement Alarme)
Pushbullet('Alarme Desarmé;Desarmement Alarme')
Pushbullet("Alarme Desarmé;Desarmement Alarme")

rien ne fonctionne.
j'ai soit des erreur nill

Code : Tout sélectionner

2017-06-18 18:22:52.252 Error: EventSystem: in /home/schwinny/domoticz/scripts/lua/script_device_Alarme.lua: ...e/schwinny/domoticz/scripts/lua/script_device_Alarme.lua:49: attempt to call global 'Pushbullet' (a nil value)
soit

Code : Tout sélectionner

2017-06-18 18:22:14.492 Error: EventSystem: in /home/schwinny/domoticz/scripts/lua/script_device_Alarme.lua: ...e/schwinny/domoticz/scripts/lua/script_device_Alarme.lua:49: ')' expected near 'Desarm'

Voici le contenu de mes scripts

Code : Tout sélectionner

-- Si deactivation de l'alarme, envoyer sms
if (devicechanged[AlarmeDiurne] == 'Off') then
	message = 'Alarme diurne desactivé'
	sms = 'Alarme%20diurne%20Desactivée'
	notification_SMS(sms)
	-- Notification Push
	[color=#FF0000]Pushbullet(Alarme Desarmé;Desarmement Alarme)[/color]
end
j'ai dans mon Json.lua ceci:

Code : Tout sélectionner

-- fonction curl
  function Pushbullet(Message)  -- séparer titre et objet du message par un ;
    local pb_token = 'o.eeeeeeeeeeeeeeeee'
    local pb_total = Message
    local val=string.find(pb_total,";")
    local pb_title = string.sub(pb_total,1,val-1)
    local pb_body = string.sub(pb_total,val+1)
   --Pour Windows
    --local pb_command = 'c:\\Programs\\Curl\\curl -u ' .. pb_token .. ': "https://api.pushbullet.com/v2/pushes" -d type=note -d title="' .. pb_title .. '" -d body="' .. pb_body ..'"'
    --pour Linux
   local pb_command = 'curl -u ' .. pb_token .. ': "https://api.pushbullet.com/v2/pushes" -d type=note -d title="' .. pb_title .. '" -d body="' .. pb_body ..'"'
    -- Run curl command
    exec_success = os.execute(pb_command)
   -- usage : Pushbullet('message') -- message : titre;objet du message
  end

Re: Notification Push

Publié : 18 juin 2017, 18:30
par papoo
Attention tu as posté ta clé Pushbullet
Tu devrais éditer ton post

Re: Notification Push

Publié : 18 juin 2017, 18:32
par schwinny
Merdoum.
merci, depuis ce matin je fais attention en plus ^^
j'ai edité

Re: Notification Push

Publié : 18 juin 2017, 22:58
par thier
Voici comment je procéde pour les push et script lua. Il faut curl et une uservariable ici pushbullet. Les scripts devant m'alerter la remplisse et le script device ci-dessous m'alerte aussitôt.
Pour commencer, le script d'alerte:

Code : Tout sélectionner

--[[
script_device_pushbullet.lua
Envoi une notification Pushbullet si la uservariable 'pushbullet' n'est pas égal à zéro.
Après envoi, remise à zéro de la uservariable 'pushbullet'.
--]]
commandArray = {}
if (uservariables["pushbullet"] ~= '0' ) then
	local titre = 'Domoticz'
	local message = uservariables["pushbullet"]

  	-- Run curl command
  	print("envoi notification pushbullet: " .. message)
 	envoi_succes = os.execute ('/home/pi/domoticz/scripts/sh/pushbullet_touslesappareils.sh "'..titre..'" "'..message..'" ')

  	if envoi_succes then
    	print("envoi notification pushbullet : success")
    	-- RAZ de la uservariable pushbullet 
   	 commandArray['Variable:pushbullet'] = '0'
 	else
    	print("envoi notification pushbullet: échec")
  	end
end
return commandArray
Il faut un script sh. Ici /home/pi/domoticz/scripts/sh/pushbullet_touslesappareils.sh

Code : Tout sélectionner

#!/bin/bash
api=ici tu mets ta clé api pushbullet
title="$1"
body="$2"
curl -u $api: https://api.pushbullet.com/v2/pushes -d type=note -d title="$title" -d body="$body"
Ensuite dans tes lua qui doivent t'alerter il faut remplir la uservariable 'pushbullet' avec ton texte. par exemple

Code : Tout sélectionner

commandArray ['Variable:pushbullet']='Signal de la sonde extérieure perdu'
ça fonctionne nickel avec une latence de quelques secondes. Par contre il faut savoir que la version gratuite de pushbullet implique une limite de 100 messages par mois. Si tu as des questions, n’hésite pas.

Re: Notification Push

Publié : 18 juin 2017, 23:01
par schwinny
Merci, je vais essayer cela de ce pas :)

Re: Notification Push

Publié : 18 juin 2017, 23:02
par thier
Attention dans un post précédent ton api token traîne encore...

Re: Notification Push

Publié : 18 juin 2017, 23:04
par schwinny
merci mais en fait, je l'avais modifié suite a ton message, je t'en remercie :)
l'apikey était un fake mais je viens de remplacer par eeeeeee pour éviter la confusion