Notification Push

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Notification Push

Message 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 ?
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Notification Push

Message par papoo »

pour les notifications pushbullet en lua
viewtopic.php?f=17&t=3940#p35408
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Notification Push

Message 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
Dernière modification par schwinny le 18 juin 2017, 23:03, modifié 2 fois.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Notification Push

Message par papoo »

Attention tu as posté ta clé Pushbullet
Tu devrais éditer ton post
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Notification Push

Message par schwinny »

Merdoum.
merci, depuis ce matin je fais attention en plus ^^
j'ai edité
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Notification Push

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Notification Push

Message par schwinny »

Merci, je vais essayer cela de ce pas :)
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Notification Push

Message par thier »

Attention dans un post précédent ton api token traîne encore...
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Notification Push

Message 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
Répondre