Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Notification Android TV

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Notification Android TV

Message par bart11064 » 07 sept. 2018, 12:16

Bonjour à tous,

Je viens de publier un script sur le market permettant d'envoyer des notifications sur android TV

IMG_20180907_115706.jpg
IMG_20180907_115706.jpg (140.35 Kio) Consulté 2041 fois


Il utilise une appli sur le market qu'il faut donc installer sur Android TV en pré-requis : https://play.google.com/store/apps/deta ... ons.google


Il est possible de faire pas mal d'options concernant ces notifs, voici la liste des paramètres du script :

Code : Tout sélectionner

notifyandroidtv.py -a IP_ADDR -s MSG_TITLE -m MSG_CONTENT [-d DURATION] [-p POSITION] [-t TRANSPARENCY]  [-c COLOR] [-b INTERRUPT] [-i ICON]

  -s MSG_TITLE, --subject MSG_TITLE
                        Title of the notification
  -m MSG_CONTENT, --message MSG_CONTENT
                        Content of the notification
  -a IP_ADDR, --address IP_ADDR
                        IP address of the AndroidTV
  -d DURATION, --duration DURATION
                        Notification duration (s)
  -p POSITION, --position POSITION
                        Notification position (bottom-right or bottom-left or
                        top-right or top-left or center)
  -t TRANSPARENCY, --transparency TRANSPARENCY
                        Transparency (default or 0% or 25% or 50% or 75% or
                        100%)
  -c COLOR, --color COLOR
                        Background color (grey or black or indigo or green or
                        red or cyan or teal or amber or pink)
  -b INTERRUPT, --break INTERRUPT
                        Make the notification interruptive (true or false)
  -i ICON, --icon ICON
                        Path to custom notification icon (.png)
  -img IMAGE, --image IMAGE
                        Path to image showed in notification content (.png)
  -f FONTSIZE, --fontsize FONTSIZE
                        Font size of the notification (small or medium or large or max)

Seuls les paramètres avec l'adresse IP, le titre et le message sont obligatoires, pour les autres, il y a un paramètre par défaut (avec l'icône jeedom par défaut :mrgreen: )

Voici la commande minimale à utiliser :
Capture.PNG
Capture.PNG (20.7 Kio) Consulté 2041 fois

Vous pouvez ensuite faire une commande par type d'évenement :
- info : icone perso + couleur bleu + 5s
- alerte : icone perso + couleur rouge + position centrale + interrompre
...

C'est mon premier script, avec mes maigres compétences, il y a sans doute pas mal de choses à améliorer. N'hésitez pas à me faire vos retours.
Dernière édition par bart11064 le 12 oct. 2018, 23:41, édité 3 fois.

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Notifications Android TV

Message par Naboleo » 07 sept. 2018, 12:33

Présent sans le "s" sur le market : Notification Android TV

J'ai installé la beta, je testerai ce soir... Merci
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Re: Notification Android TV

Message par bart11064 » 07 sept. 2018, 13:15

Naboleo a écrit :
07 sept. 2018, 12:33
Présent sans le "s" sur le market : Notification Android TV
J'ai corrigé le titre du topic. :-)
N'hésite pas à me faire un retour.

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Notification Android TV

Message par Naboleo » 07 sept. 2018, 18:57

Bon, je ne sais pas trop ... je dois avoir fais une boulette, parce que depuis mon téléphone, j'ai bien une notification
[2018-09-07 18:54:36][ERROR] : Erreur exécution de la commande [Aucun][Mibox3][Notification] : Erreur dans l'exécution du terminal, la valeur retournée est : 2. Détails : Array ( [0] => )
- Chemin du script : OK à priori
- Droits : j'ai fait un +x au cas où
- IP dans le script : OK
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Re: Notification Android TV

Message par bart11064 » 07 sept. 2018, 20:15

Tu peux envoyer un screenshot de la configuration de ta commande ?
Et essayer de l'exécuter directement en SSH ?

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Notification Android TV

Message par Naboleo » 07 sept. 2018, 20:24

Voilà
notif.PNG
notif.PNG (186.68 Kio) Consulté 1991 fois
pi@raspberrypi:~ $ sudo /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py -a "192.168.1.21" -s "titre" -m "blbabababababa"

/var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: 5: /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py:
This script allows you to send notifications to your android TV
Before use, you need to install this app on your android TV : https://play.google.com/store/apps/deta ... ons.google (no need to install on phone)
Many customization are available, see help
: not found
/var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: 7: /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: import: not found
/var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: 8: /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: import: not found
/var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: 10: /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: import: not found
/var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: 11: /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: import: not found
from: can't read /var/mail/argparse
/var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: 15: /var/www/html/core/php/../../plugins/script/core/ressources/notifyandroidtv.py: Syntax error: "(" unexpected
Donc tentative d'installation du module
pi@raspberrypi:~ $ python -m pip install io
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting io
Could not find a version that satisfies the requirement io (from versions: )
No matching distribution found for io
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Pas de bol, python est installé par le plugin zwave (entre autres) donc montée de la version de pip, mais c'est pas assez
pi@raspberrypi:~ $ sudo pip install io
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting io
Could not find a version that satisfies the requirement io (from versions: )
No matching distribution found for io
pi@raspberrypi:~ $
Donc mise à jour de jeedom
sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y auto-clean && sudo apt-get -y autoremove
Ajout de voluptuous
pip install voluptuous
et ça marche !
Dernière édition par Naboleo le 07 sept. 2018, 21:27, édité 2 fois.
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Re: Notification Android TV

Message par bart11064 » 07 sept. 2018, 20:53

J'avais déjà effectué les updates python, elles semblent donc bien nécessaires.
J'ai viré voluptuous (et mis à jour sur le market), qui ne servait que durant mon dev.

Merci à toi pour ce retour.

metamax
Timide
Messages : 189
Inscription : 18 févr. 2016, 16:50

Re: Notification Android TV

Message par metamax » 17 sept. 2018, 22:32

Fonctionne du 1er coup !
Bravo et merci !
JEEDOM Stable sur RPI3 + SSD
STICK ZWAVE AEON GEN5 + RFXCOM

DomoJe
Timide
Messages : 8
Inscription : 11 avr. 2017, 16:46

Re: Notification Android TV

Message par DomoJe » 04 oct. 2018, 09:44

Bonjour,

Je viens d'installer et d'utiliser avec succès votre script.
Une amélioration pourrait etre de pouvoir ajouter une image dans le message (lorsque qqun sonne a la porte par exemple)

Super travail en tout cas !!

metamax
Timide
Messages : 189
Inscription : 18 févr. 2016, 16:50

Re: Notification Android TV

Message par metamax » 09 oct. 2018, 18:23

Ca parait jouable avec le paramètre -I non ?
JEEDOM Stable sur RPI3 + SSD
STICK ZWAVE AEON GEN5 + RFXCOM

DomoJe
Timide
Messages : 8
Inscription : 11 avr. 2017, 16:46

Re: Notification Android TV

Message par DomoJe » 10 oct. 2018, 16:04

Biensur, mais l'icone est relativement petit pour reconnaitre quelqu'un...

En utilisant l'application Smartphone + Appli Adroid TV, il est possible d'afficher des images
ex: https://lh3.googleusercontent.com/fx_Y_ ... 0-h1334-rw

bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Re: Notification Android TV

Message par bart11064 » 10 oct. 2018, 16:51

DomoJe a écrit :
10 oct. 2018, 16:04
Biensur, mais l'icone est relativement petit pour reconnaitre quelqu'un...

En utilisant l'application Smartphone + Appli Adroid TV, il est possible d'afficher des images
ex: https://lh3.googleusercontent.com/fx_Y_ ... 0-h1334-rw
Oui j'ai vu ça en mettant à jour l'appli.
Il y a aussi la possibilité de choisir la taille du texte en nouveauté.

Dès que j'ai un peu de temps, je me lance sur ces deux sujets

bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Re: Notification Android TV

Message par bart11064 » 12 oct. 2018, 23:40

Je viens de faire un update du script.
J'y ai ajouté :
  • choix de la taille de la police de caractère
  • ajouter une image à la notification
J'avoue avoir fait des tests très (trop) succincts... Dites moi si vous rencontrez des bugs

Avatar de l’utilisateur
Barto_95
Timide
Messages : 17
Inscription : 29 mai 2016, 15:26

Re: Notification Android TV

Message par Barto_95 » 21 oct. 2018, 16:04

bonjour

j'essaie d'utiliser votre script mais impossible de le faire fonctionner

installation jeedom sous debian 9 DIY

voici le message d'erreur que j'optiens :
./notifyandroidtv.py -a "192.168.1.45" -s "test" -m "c'est ok"
./notifyandroidtv.py: ligne 5:
This script allows you to send notifications to your android TV
Before use, you need to install this app on your android TV : https://play.google.com/store/apps/deta ... ons.google (no need to install on phone)
Many customization are available, see help
: Aucun fichier ou dossier de ce type
./notifyandroidtv.py: ligne 7: import : commande introuvable
./notifyandroidtv.py: ligne 8: import : commande introuvable
./notifyandroidtv.py: ligne 10: import : commande introuvable
from: can't read /var/mail/argparse
./notifyandroidtv.py: ligne 14: erreur de syntaxe près du symbole inattendu « ( »
./notifyandroidtv.py: ligne 14: `parser = ArgumentParser()'

bart11064
Timide
Messages : 57
Inscription : 19 juil. 2018, 10:04

Re: Notification Android TV

Message par bart11064 » 06 nov. 2018, 10:53

Barto_95 a écrit :
21 oct. 2018, 16:04
bonjour

j'essaie d'utiliser votre script mais impossible de le faire fonctionner

installation jeedom sous debian 9 DIY

voici le message d'erreur que j'optiens :
./notifyandroidtv.py -a "192.168.1.45" -s "test" -m "c'est ok"
./notifyandroidtv.py: ligne 5:
This script allows you to send notifications to your android TV
Before use, you need to install this app on your android TV : https://play.google.com/store/apps/deta ... ons.google (no need to install on phone)
Many customization are available, see help
: Aucun fichier ou dossier de ce type
./notifyandroidtv.py: ligne 7: import : commande introuvable
./notifyandroidtv.py: ligne 8: import : commande introuvable
./notifyandroidtv.py: ligne 10: import : commande introuvable
from: can't read /var/mail/argparse
./notifyandroidtv.py: ligne 14: erreur de syntaxe près du symbole inattendu « ( »
./notifyandroidtv.py: ligne 14: `parser = ArgumentParser()'
Bonjour,

Essaye de mettre le chemin complet vers le script plutôt que "./"

Si tu le lance depuis le terminal, il faut l'exécuter de cette façon :

Code : Tout sélectionner

python <chemin vers script>
Essaye de mettre à jour ton debian si ce n'est pas déjà fait :

Code : Tout sélectionner

sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y auto-clean && sudo apt-get -y autoremove

darkwinter
Timide
Messages : 83
Inscription : 23 mars 2017, 06:58

Re: Notification Android TV

Message par darkwinter » 14 mars 2019, 12:51

Bonjour, je cherche sur le market mais je trouve pas le script. Il a changé de nom?

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Notification Android TV

Message par Naboleo » 14 mars 2019, 12:55

darkwinter a écrit :
14 mars 2019, 12:51
Bonjour, je cherche sur le market mais je trouve pas le script. Il a changé de nom?
Si besoin

Code : Tout sélectionner

import base64
import requests
import io

#check ip
print("test")
#reponse = os.property system("ping -c 1 " + args.ip_addr)

#and then check the response...
#if response != 0:
#  exit

from argparse import ArgumentParser

parser = ArgumentParser()
parser.add_argument("-s", "--subject", dest="msg_title", required=True, help="Title of the notification")
parser.add_argument("-m", "--message", dest="msg_content", required=True, help="Content of the notification")
parser.add_argument("-a", "--address", dest="ip_addr", required=True , help="IP address of the AndroidTV")
parser.add_argument("-d", "--duration", dest="duration", type=int, help="Notification duration (s)")
parser.add_argument("-p", "--position", dest="position", help='Notification position (bottom-right or bottom-left or top-right or top-left or center)')
parser.add_argument("-t", "--transparency", dest="transparency", help='Transparency (default or 0%% or 25%% or 50%% or 75%% or 100%%)')
parser.add_argument("-c", "--color", dest="color", help='Background color (grey or black or indigo or green or red or cyan or teal or amber or pink)')
parser.add_argument("-b", "--break", dest="interrupt", help='Make the notification interruptive (true or false)')
parser.add_argument("-i", "--icon", dest="icon", help='Path to custom notification icon (.png)')
parser.add_argument("-img", "--image", dest="image", help='Path to image showed in notification content (.png)')
parser.add_argument("-f", "--fontsize", dest="fontsize", help='Font size of the notification (small or medium or large or max)')

args = parser.parse_args()



DEFAULT_DURATION = 8
DEFAULT_POSITION = 'bottom-right'
DEFAULT_TRANSPARENCY = 'default'
DEFAULT_COLOR = 'grey'
DEFAULT_INTERRUPT = 'false'
DEFAULT_TIMEOUT = 5
DEFAULT_FONTSIZE = 'medium'
DEFAULT_ICON = ('iVBORw0KGgoAAAANSUhEUgAAAH4AAAB+CAYAAADiI6WIAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAD6NSURBVHhe7X2Hn1ZVli3/yPvNmzfT0R5tBROKCBJMICASBEExa/fMdPfMm5k3r7vnTU93jwmonHMgg+TKVV+oXGRERTKIJVFSUXm/tfa+50t8YKFVGLo+XZwbzj333L12OueGGrF+19/L+zt/Ket2/ELLYXxf8KaHX4rj2PAPsmH3r2QEV0j62u1vaumWI9eH8V3EG4pYXtftoBL8QzTxrlLk8pfDTjCMbwo35mHt9tc9GKdrt5vVK/HhjcPEf/dwYx5IupUxxHPjmm2vhcCK8ZaH8d2Fs3pbNoO+IfHD+H4gPvE7sXP7KyGs3fFq1Powvvsgp5EGTWMfwR2rt70sq9pe0nIY3y+EeG17VVa1gmuUJH/E2h0knjsNa7bzgGuXh/HdxKq2F71lUwKCxg6LN3LDFWzZrbvlYXw34Ti9hvhYi795LBrGN4qB8uCM++Vh4r8fGCgPYeKZ7I3gxlVtL8jK1ue1dIhdH8Z3F45jW34JxMPiI4l3ZMdbHsZ3F450W35Rk/a4Fh95gFu+LtoWDOObxJfwsaJlYWifLS8y4kkuNzi4CgNG63ODgHkRuN4+bz3yvLoc7v+yUP3wvpXNAJaJyONZNxK2zepYO+HtIXjbw/2xMlw/sk5kPeCaNgYJcft3nf0Aiae7H7FimwmhtGW+lrccbfOAZ4E5Vup2I8H2c9+zuAhHKIl2ZL8gJU0vSWnzi7K8bZEUt8yVVTsXSAnK5SS86RVZ2/yGFNXOk3WtSICg5KWNC9AuyjZc8/b5KOfpsm4DeF5dj9i+rGWRlUos++H6w76xHq6Bx3l13HWVts7VvqzYhv42v2Sg8GmNjgy93kEC+xEDth+yfi7DsOnlR6zc/jyERmHYwVx26255SLFtPjAPAFkKrLexT4us9PatxEXoBUBjFbr8vKzZ+Zosb31RSlrny4qduIbtc6W4eY7OTpUGXpeVvt9IpwRkTf2vZEXQpi7Z7rIdz0lx21zUh4BwzmXbsE2Ba9d1AsvaD68vPGfb/AiwbzgebXAfj3f1wtc1T1bvhFLWP6fDqGVNULimZ9E/eNbBlLGe71o44llGEb9iu2lKqae9txToSNhCaPGE207rIax/ZvnePpQrUJcoapolK0liy9MKFTSUeWXzIimqel3OyXbpkuPAQVlR81tZ3vCSLINi0EpLcM2l29x53fWbh7E+GNS6vfOFPY9n/Tx22yws2/HmicySub8w+DSUkwTgfI2zZe1OxmFbX7MD167nHDpYf70+A1QCymcEtYKk0yWxvKVAeCltWWBl62yQ8QxKrx8tz3uw/tn2MJa3om7b03pMcct0WblztqzeAQtumSXLGhZIbtkLcujiZhB+BuiQHrkkp7q2S375y7KqdQEUZrYqiZ4zdF4C/dDyWVmOcy9n2MA2nk/R4m1vhpWx1H0A63Eft3tY1jxPWs78Tgm3/Wi3aY6WVJjiRvTfO9dQgX1yxLO/LFchvEdZPOE0JXZ9SEAtdHHOs5xwrPfivNZlP5xlRoCWth0Xt302rHemElPaNE1WN74iLZ+UgPDT0tnXIZ29PdIN6ruxvqd9mRRWm9WRcGsrfJ0av7GN5coQaO04l243IVpduHIKEySvaILrJpq5jjYU86XtzJ+lwDcf1o0cAspG4lfB2Kioy7bNjDr34IDtheGIN4Xlskf8N2rxgFkVlz2LV+uj1bk6nhVG7eM2Q1HLbClomAlrx0VDsCvqF8j6xv8L0k+C6l7pF5E+/MPySi+t/7BU7XpXiuvC1hqyOq8vapEKtAfEWnW4X1w36zfSOXwKH0fySxswRG59TbKqZurw2KzuWclveEqVNXTuQUNYNtY/I5xY1mz9pbsfQa0oaYHbaYbVoLzVYLxVtED7I1ACl62AcEpaZ3jgdhwHF1rS/JyCoWLVzoVS1DBNhV9U9hsll669v79furt7Sb1091wB+R1QBXgAOSIra/9RVjfDo+Dcdi5k4GiXyRddtPUJHojQPlqGboi+BiJcfwY81XQrsV5UP1v4tOv+rix9urUoaLGeVk9FitfWYIL9MoVFGNRleDB4O1i8G3ZYRacpkctDhwhrUnhxlC5bLZwx3CHCE0BrLTcwlDTM07idX/GitHe2gvSLpBqE40dr7+vBQrf09l1Vy++WC6B/h+RvfVmVJdwfWAbjs1o+hOX16VoPBPlgmShGGChujVRQkB4iHuGHAocy5VTPlz0XkyV44g8gH/1HZk8iwuceGjjiVTEjiedFFTc/g2Rnppa3GqVxwQx9uoLCLGqegYswl65ufddCLU2jcYGNC6W45kXZ+WkxSD8Fcrth6SCeLAO9PV1Y6FP09HV6Vn9WDp3zSU75SyqIgsapqmC06KJGKj4xK9QHCrGweZYUNKFO22wpbEI9xHCGmsLWp6UIZCtaeF0mU44yeC1FDTNU4DnVc+RTWSMrGn8Ft/+iFDdE1B0iUJ7OazHHYMlhKFw9LR0XiAoh9xpnfagQ7U6duwy7dypkYeMzALajwyQgr36qEkKFIPEFNS8gbi8GnQdA6mXp7YV7J+HdIJsW3+uVdP3q8ru5Klf6T0vN3mQp9CPxoqBapmmf8uupVEZ8UfNTBg4XadXbrCyEEDl34IgvBOmqALgGwhHK61m1fY4UBJ+Epc8V/+H3ZO+FAkkvn67DvEhZDAUc8SS9hDJ0xNOFUjMpRJZ0WW5MPORAp9TC0SkTVNhS3H7G3ZXbF0lhw7M6BOP2FTuxr/VJdalFAWTadb9GXD8KXFZC+2jcXOihAiDB84jnr7cXLh/gOhWgE2P8Ff7fSWk98wXkCW3MtC3s0YUXt02X5ThfyTYoYSsUow1JGUC5lbTNtToh8DjzFk6RSxvo6jl+f0YK/NNl2+cp0vZZqhQGECYa6dW8ax0i0OPQkCjnEhgRS45ORjiiC5vMgrjM8laBWkhwIkbh9qGTJJqEczxvxM9CP5+CgKdKfuPjmiQVVb+EiN4CAs/B2kGmR3pfjzKLhX61dPzv/fqMfHgDeoZOxPur8BRFVa+BJChW/TQICnKAgOjW8xphqThfQTPKlil67uJGkI8+FzcAat0AYnZxE2J3o2EZ0YD8I7BQeL8gr+4JkD1D2mW55FTZtC0JiZTFUKCkCWEK5F+XeFcxlniuDymusXSL7bZtjuQH4SbrOQ0LkpthcbByxuMSxOHcyhdk/9ktsNvPNG73gnUl3kMvQzt+5LynDyN5xHemdoQmfFCKnt5+eIoLcuJKjeRt5Zz6fCmst6FWfiOUYAf61TYDCjdVx92M10UBKGjtPCmuXaCloua5CCwEXoBSLpKS2teksOoF2bDrDfmkZ7Hk+2coGKIYvqI83KDAk58HRzxLepgo4kkwLd5ZvVt260MKtWyn+dMAxlSUnsXTkhjjlfCmx3Q/Yz2tpvajNFgsSe+U7t6rcPEgU60c/5NfLJNY29QLxejCMrWBrt6rC3T1cJh3UtoO5YPMRbBYJHEgnYTnIp8oRN+obJqMBeZLy4l35IPT+bK3vUA++NyhWD5oL7XSLbcvR50Vsu14lvgP/k5ya6BQTbxGXh89HJQ5dO2DBa99DySbpDviafVKPLWC7pMXxvLWw85PiyqEO1VwuRHhB4RTMHn1T8AyJsry7ZNh/U9odrym6Q9yBXG9B6QzhCvpWKMl9zGGez+G+W6Qq2EA9Pcj5mvdXgPrUxn60FoP4v3a4L/BgpEAbZst+Q1PSl4D4vk2S4AL/CAKIaG9txp1D+KoEyg/Az4Hznk4A5yGahk6MMrolP2SvXUW3LtZHidveF0FIQOLlcngQcMSlC1MPEYYGKLC4k1LWClWW24dXOY8xaDrpsHq1tumSGHLI1CECRqHefPlMoTZiejeTd8OYkloD6yets3lXrh1ljRqKobmdxrrQT+zP+yTflo+PACBX3f/eZC2T8f3hX66YHg8uE/GeipiCWJ2UeUv5VRPIxTpDNruxNmoNFAmnCgE7HGTxD347yJyiNwKuvVHdaLJ3Ds8mPNuQ4gbEE937gn+G0Bhi1u2zlkn2WlTSCZVha1PQPiTNVblbJkn7VerIFqQhPG5Tc5gfI5lxniu0brp1tUDuIze7SAzqM8Nff1QDsZ9VQAqB9Yxvj/f1yJp621uPh/eJ7+JSR1yofr5Ulz9C/m8OwjKP0cbyBWoXFQmRzqBVgzdAG8R7ZfMCiSLLY8rETq2j5HDUIHek8NUZ9gsmavA1XOFbv6bQX4Tsl1dNrdErWSp20B6bsNjUrod2XVwmuRVz5OWg1ng7ygy8ssefyQNAoYVk1LHbxdIVfLdRrcDZW+3beBMng33sIp6LPtwTDfi/a4ThZJZBiuFxZfueEoVoLhpgWRtegEWX4/qZ7VuiHglOhZsuBujhk8ko2qW5DU/ptem1uddX6QshgIFjeZBXShnyYmqEU4rWCGyslt3y0MGEB+FqO2WzOUGEAfrFsimtv8EXYchzvNKnFlzn8Z0DtfIcVcf3LyKHMQigaNX7+wA0dxJYhn+eZiyjQWv0FyP+oBfN5wz43fNBwmSWzcNCd4EzTMKA3Mkr+wlOdtPV39e2zfiw1C3j5O5sMJ+cmIpvXK2El+EayP5RY0x1ztEYJ5ixBuf+Q1TkCjPkG/c4kMJXfPjcfCkWkeRH8Olyl+BjANyuY9TsmQIIqblUrYgjiU4l+4eszMS3w2R9/FmDcqrnZe82A4q6CSUKKx4xDuF4I8jhB5kERfkI8TmF3Wum+GHWX3W5mfldJ8PbZ9GU6SYs4BhmHtn2zyHneeKHIoivgREFDe5ax5aqyfhscSrxXNCIiz8Ww8TgIExsKBlkqIQiRDdYUn9LMnYsEDO9e2GSC8poRR3T4+Zp4Z4kkchk1eAjqAbakKrZEZd3ZKLo5htX5HObiaAOM5TAv56oCy0TB7V18uxPunrQQuX5AvZI4lr5ktREC668UnJh8tu792Kvaekq9emfzVcoAxBlQqb2T6avorQlF4x1yP+CRAPq28KK/fXgiM53j6AXoUJ8zXEc6OrEFnZrbvloULI5QH5EEw+hm0Ek7nC+umSuXmOfHx6HQR9TnnS3Czi51w0ZI1/DD3q7i/jmKNStfO/JX3dC9K4v1DdNyd6uF+JJyuAjQY4CuhASffd7ykPyT8v+89vlcwt02RZw3TJ3vJ0iHgqF0lmp5RsJZ5zBSQfXWHzKK9imBgmHnEepDOMGaLlcdMAoYp4+wDOcDriiZCr141xDrhVoOtzHWeilwuh5DU9ig5j6IOYWrM7CUJuh3VdUELIl3IGwhhjKVgKuA8DduWAgPA7Qfqek8WStRWjhIanJW3z0/Jpbxls/jTa847v4W1ac88k3M3hc7qX7WAR7VxVhane9RaGkS9IUfmrcPUBbLug7Si5gFl42PK99F4bCRHfMhnj98kh4vNASqw8BhskngbMkus6J4Lw/q0g3pFP4g3wQsGZUlLzBgR8VK72XVBi3DSrZvAQsiVXpIc/i7fMtHuRcZ/urpWsLXOlqB4X3DxBw0b65rlw3vvREmO/Z5lY69a5XdUmCx1sEujt5V6b0u1BflFa/m+Ss+FVOdVbh22XVF2UeCpJDPmOeCpjhxyRtPI5ktuMENY4ySPerjVWHoON6xJPzaN15TVM1tItR64PJQobUAYfNeLRudyG8Tp0y0b2fAnxtRsuXi3SmTOGbkoY1plEaeauFBAd+PdzkLJPCssXIiNH+42PSEHrI8jMJ0lu7Uwprf5n7D8IS2ZWjhEBWtM5fk+BXJJHD8IFbuZ57OGNjyRr7ULZfjgdy8wZ0B2AyaIusK4XQnRG0JtD6EByl1r+jOQ0oS8NE/WaSQBvAPGa48ll4ODx12/D8ZiHYTGJzw0+bsS7nRSMI/yWIjBRLSC7bryUtkAQUAJOdnzyRRlc5CkIF+6YpCvxVAAXQy2nNuIw9u5jTD8FivbL2sC/SmEt5wMmQrjjET7GS2ErFLwBQ8OqZ6V8x59R9zjq8ulb5gOWF4TCPsjq6bYkz8IKM316kjNy5Nz7klC4QL7o3afkd/Zc1v0kn7PA/HV1oc/exBLRAUVLLX86LvEkJK5cBgwef+M24hLPzNJpxzcBuvn8INxfyzjJ9Y2T7Krp0nAoGcL6FKS4oZFZuhHPdSZTWCVBEC2J6/Lm2n373pKcsulS2jgDSjVZsgKTJB8KxVK9SmCKZJbNlA/PrFBLZKavbZhxKtE2YkDSR/Kxkbdv6fS7kOPzZk5gV75krnwTW3Zgezu2ddix7I93U8jCCF0BA8tBSauYOUQWf2OEiZ8M4h+DgWO0hJGcEu/cvWWZthy5PnRAvGnEGLMe5ww+jPH6E/J+47/ADX8CIXMe3oSpblinVUm+kc6Yyn0kvRP/0doPnNukWXdxw1SdE88NIndonopsGpreOFmyAxNMCP6pkrR+OoKIH8edQRsIFhz/s02ueV5FlYwn4Imwh8M33swh+SvK/llWV/0Gywekq78d9ZkN4BBAQ4i2YdPG0cQ/YsTTSkF8fLkMHhyPrgwRz2FTPhKOPGgiS7ccuT50gNIF4e7qnsBQ6SnJ2ToLovoIwryA8TbHyBAk/jELN8t31k6QDypHD+qfljrJ3vqs3sTJ8z8p2b6nkNTMhHARRuoh7BZ4lVbkEAhpdHWcusxE/QvyISi+rOST4w7v0azQDR8lHmDB81IBoDKdslvSS1+TwM5MHHcYR1zQNq500TvQS0RbfDjG82aTF1a90Ut82QwUX96GcRyHeEe0IztyfWiBcwce00malPefls97qyCm05qw8ecINrLDMZ2wdY60Ob16UJ/EKfAjhgefkBxm8k2IqbB4zg1k14+T4rbJ2I5wggvP9E+UnIYJklX3lGxt+W8Qdlyu9vOWajeWu+VKtz3CxayeC/o0j9cfXWfeAas/1RGUhILn5diFMhx3Sq7CI1BPqIwantBiNPETlXiC15/LHOQamdwsXCyPty/SmGNcfSzxtxrUxNza2dJ2pAQi4q3ObunuhMAoZMZdRzoFrkIn4bQqxn+S9ZFsaP53yUPGzpjOJI6Wld2ALB4WRYI5nMsNjpHs4Fi9eLr/nBa4//qp8BLTJLjvbbRznJRDAa4qeXT7+sieZ+3dXXDzcN/sF7vW038JxxyTtoOpsqRoHkYgnyjFPLbLO8YugBkAsvqy2Up8fv14JZ6jl1yMOOLJZLDhiKesc4ITpQjXPoI7eBMiJ8ghDwT0lQFBK7DMi4q3PbTulh+V7Jop8n7z/4bV8s0XkEmheaSr3JR4I91SLhLPe+Am+N3HcyRz4zNS7KOLB5HIE2j12YGpkhuAu6+frtsLsc5pV73p4p8pGbXTkFfMklLfLMlcP1uttgd94NM8JM5ZN3+85cvhoiob9rnsnfMF3bJLNgX/IPnrfws/cAI9Y75hrl57DOKvMMZvnSnZHGFwuBoqv67MBwbj2MhnnsO8TsfxjhzucKVbvjHQcIhkWK6C2+BSve05JDeIEyLO5jfT3WK9HlrYDHdbh+Sm7DWIZz8EiBhJ8yLJMBubPzfiKWxyQAu0u2/2qNTprqAkLZ8rJVWLJL/seSmqfFFfquCLkYWVr6J8BeP5Vw0VWI4FtudveRPlm5K1fgEifVDJ1JMBztptrgAKaKv20/18EIOx/ahkvf+ybG75I3pm43ve26eykPwrSABTNkLpmh6GJ3pIyzwYGoey8eX6VRAmOj6sHpNKTuh4xNsOcw3m+ukWItevXzp4Y0m6L2i0ldBoZNM5cLs5UISswFhz7VQQWGX6llmw2+0QHly2PgQRtibatlmNSf9qpyVNHHdf6uNQb59krnpVNtX/P7QRxPoOCH0nyr2wun2wvt1aMhQwYWT9MPZ62Id9+1F3pxRteUmWbf0FznEUuCLdOo7H2aF1PC/BzN89/BF6wANg/9t7yiVx5fOy+1gl2uVMI5Szx+b+u5H8pW6eimHleMluGisZ9Q/B5U+QEow2Cuq/TL4DLeOD3Noy6xk8i4dle9apZLESSsYFdUfeetxS4Qgn2Q/rZAljFxMXljn1DyOx4vIYZNNoFwlWYf0USdk8TfacsjdfrnSHx8G0cAqrv58TI1ewocvLkGnxdLZ0pSdkne9fJH/DK1g+CJzFVs7BX0CMPoNlPmrNO3NnUP8syKVLPu/hggcMF1HyJkw34nuHtEjO2tekoukdHHsAbVEZzbXbbVzXNyojH8+mG8cianb1nYfynJQdRzZKQslrcqozgO3wHKjHFzj4BE7SBozXQTzn67MbkXdAdqFE73ryvZnyy4B6TgnI+YgCulyQQbCCKgEJj1i+LtRT0IKpJGNB7gOS0zgWQHtIqmjlVIachgclyzdaZ9Ly4d6yyqZK5Z63QMxhwDJhyrCz0yZM+vsYUy8BJN9m0Lo6mcNz9uyUNO0rkqUlz8oZfegRrhXun9bINpQauA0djwM2vjZwC/e78xlYi7d7j8uR82WytOBZ2XdyGWpbvOd+l3eopeujWl3eJA965t3ZY2ynoq2v/5Pkbvgl+voxtp/FYZdxhZ9IypYpau3plBmSTj4/mBf0QuIQw3Hp8jiSPyIfGTCtkrDYbLAEhAph++ID+5ElKuC+SDBjWHYDYhn2Edpe4GElvDiA8XXZ47K85k0I6rBc6eNMmJHR00urt6xZX32iZfV1QLCIo16Q59Dt6Pn1sqRgtuz7bCPW25Fd8/EpCxHdXWQH/7NuKEewEYA9SWsTM1QhNy/AH5+6tZm/ExL8aKksKZ6r9/+vyueavesjWtjLmUNm9zqRpMeh76qkVCqoav8Xat35G/5J1tf9Htt2A+fx30eSUo4Y3zJOUoMPSRaMjQTQ2s3o4sl2cBDNpYGKAIuHBpKciAqxyzcENVg1i+vO2qFdDjgR3doyfYgBmfamhRDxNlgHrYGEgwq+4EiiIUBOceswnsRQqCj5UGQfSL/c/7HkrXtFNjf8XkkiWfz1eIQT5DJy3eKHZeShe+URxPd0GYmsyqdumBes8f9eMlf/GusHsf0Mzo1xvRJMZWLnCCOemShfyqTn5xO1/ALHqe5mSS6eJ/V7l2D9mHwBBUjailyqZaxkNsEgWmwUZZYYI88hQDSX4yW/aQIsHp1QCwUYn5U4IHL5+oB7p4uPIhyJHNy/JXTM6sdpXM+re0hS1z0mn16qgTD5zBzjp1mlSh3ovorMmZuwzMxeX36EMLth2f0YNpVu/kfJX8tp0oPAWYAPT7COEWLWaMdjp2hizV1uEoB1dRmLXPXyCW6nh+jo5oOWV0DWcclZ/7qsquKdvENojlbfGe4PX8Bwiad22LxWJ9rpgJ/oQn/3f75cEgrmyKHzldjWLKmVkyWz8X7JbB4rWRr+nAuOlenNIUzol8M8gEd8XjMnO4x4NhRv+fow924uHusYsunQLfhYaAiXF3xYCoJQgKrJEtz/Z/CB2Ml5bM+CmCTpzJiTIRbdG85258zuhVe0/F4yVnDItRfknIZwL+EQewHSyMeyZtGIyXyQwuMlDJ7DzkPoyJEnwYr1xc5pLV2Us301krbiOWnclwMqD2Mfp3H1APzM6vU4aGg/rsEd24H+8KMMnfAc1duWSMbqX8in/SslpRKjmsYH1d1n1ENmlC9kc61Mbw6xrv3LECJeM2+sZLETjAFYdvH5S6EnBvmAxnbdPtEj3xu7wxtkVk2QVUF+qWI/hHMecZMuGu6biZGO38gGaKZVgRGzK9ag9RyWXcdLkC0/h6RrOfa1w7IuQtBwrBQ6JG50UPhI/tTMlQ9jgk1DMcLu3SM9gnzzPARawTGsy9m2/Z+/LwlFs+XAmTVKpjbH452nYP95ImzkJpdC8lYy63fDzedv+gVC3BzJ9T1mcgb52U1jJCPARDhGnl8BLm7HI5ngbCWtnUrGetmB8ZbVO9IzMcZ25LMcEOrHasPZwTG6bNvZnoGzRNl1EyRt83SIYi/A++ucB8eQDIkdx7rq8jUzvizdSI5MaD1yBYGeQ632vipJXDFPKtoSVQn4IoM+TwflIUEc3jHW29CMz+V16LtwSrxHkhKOvUa+keTAOpyTdyGDLt/qX0JLn0hF639J+mo+FHIQ69iGcKCHMRnhkzueJ2G7dPh2/4CgEpyD72hCiHta8n1TdR6DD4Wk+0eDdBgEE71Ymd4k1GsoHBfRyAo8FEV8lh85F4mn6XMjOxVuZKDAMfUPKKwjpkSmEGNA/CRJ3TIdNloOOo9CcBxbkyRnERcgHhJ+HuV5EGrjbRJ+FaDgM9bPlaLKl7HtpFzEeNluo57E+qcokdUD9g4bv3vDhyu4PzwvYBbqiPded4oA69HpmBWDul6ECn3Slm1wFu6g5Kz7Z8nbRI/FyR/Ge1i3SyDVWRjx5lFc2+by2b8D5zZI8vqJUoJsPq1mDIwMRKirhpdUgmLl+lVgRMeCxJvlh4nnHM0IJhjqArwGzG2ENeTGQB0X47GuMZ6luv371a1s/fDXcqRvjRy4XCYfnamUE1ea5ZMzdXLki4AcveCXY1/UIuHzy/72zRiq1cjRs/Vy8mKbnLjUJGtq/yipq+eCAj7ceAnoloZ9K8S3N1kC+1KlZtcSqfsgUer3p0jN3nfF/0GKVLXlyMXeoxA9Yj5IUfKVYGbzkcRzWAe3TNdO8kgitpj/x36O1TGU4yfTePcvGfnF5ma+0AFF4xASP1MYIpJ4r9RzMVRR0Y9J9QcYKZQh4fXxLtlkM46oGO3J8yuX8UHyoyyeXgcKCOI55AprTOTygKCJ3YO4EHP3pkAoSTw8QWbtQ5JWOU7SKibpa8KpWx6TjPInJb1simRWTJHs8ickffNkKayeJVmb5khK6ULJXPm6pC9bJGklr8qB9goIjhbO79Z8JqU1b0CAGDVUYnhU+7ikl0+SzMpHJat8suSVz5TklQvhXneBUnoQm2MnnDWGSKIicN2RjmU+dWsuwgjlHL2N70/KsYsbZWnBPNl7bB3aZX94t86r7trkQbqB2kRFI+j46cX2S3HlmxjdTMHwdrykQy6c3TQ52p3Dr1fGR1YACSXyLNYjt/QAnLsZYSsPSqbfKrECS1YYSJkZjIbtA4L3KXICoyU3eD/cy2jJqBspGf67ccFY9t8Hl0fluB/1Rktq+QPS/OnvICBadxvE1QI29gEc7/M+OaP/UVkWeE5y/dY+28qrHy2ZdXdLEWJmIRKolLVPQ0V4/Cnp6LmsVh0mnqWR6tZJsoFDCcsBdL6IwGYe39XHKeCD0vZxgSzOXag3hziysFju2nfE8yC2S/LRa87tox4fGu2QPZK6fpqkVyG7rp+A/jtZDi2YfLMkt+SZxg7isRGCz/QzTo+2ygMtgSjCuT14Lyz/bhBO0h/U+8/ZvjGSVnuf5DWhTuM9kha4S3KbH8SwZrQk1N2jLxqkwCMEDv83SD8AQXGe+xwEZzc7Oq8yi+dzdSelpG6hdpxDojSeo8GIpwJkVY/XBzouYdxsD16aO48k3ojxyAE8ftxGPQ+HbTpi4Gau6/Qsp29Pykb/byVj7YtqwR1INDnu5zmMeFRjM2yP4DmwobOLD4IidCBMHL68Tm/Y5CDWZvjv8WQ2tGAoZkkPQJ45jY7hHFyCJmfY4SVqN4VI10L33nCPglbOhx84H53tM/dCK89qAFlNoyU9cI9kNuD4lkckzfcIiH9MGo4uhXiPK0kmQPyj03gQWzdtvl1Kfc9Lhu9BSQ/iWN7pgtfgNVDRcuuQPG14RonnJAqFHSY+0iKjoeSrYsDdw9R5RqWMU7Jc8ep1dFKZdiDZe1GWVf2bkk9LpuWrkUe0GSLeI59hg8ke35wNfLJE0soeURmFZWneL7v+PitVpp4bj9rv1Q/J3B0fH1HEc53G2DRORuQ34GA/GgRyIUy6ZnPPOBDb3PrAQUs3F2+AqwmBGmghgB3RTnE7tb9iojQefketSr9YAeHprU8scJ1CZRa/PLAIeQNyB2guL5xKwFL7WwMlWj8L44QWCJmvOHGqN8ISHREh2Hbud8SzPnepq/f26/sW2Ebv0wfFvNDfJOmr5otv97vo00mcBwqGetptEq4/6zd/nPHji5icaeTHlrpB/grfQsmpNhec0/QADOFuKPK9ktFwBwxiJK7vIYRGJmP0yJAXvKiCyziGSZrBedrrQ5NvyIuyZllAi8+DyyTBWT4jyylB5PJQIhdj2lwfLqDiERD/FuTbroSrcVKYtDq1VhJ/Spb53pCMqglw65wjmCR5/sclq3aiuvmCGsTPdc9BtNshXL7NCoXxSCSBxqjFcke8I1iJp+XiLE5Z9Di1XA7fuJ8awAczj8q+kzmSWDJTDpzarP3SJ4LZDmpwSleVCBsYJtTTsGU0yCXON/RCOdM3TEHfH5HkGng/EJTqGwlPdifC2CgoM5LkwASNycyFMoOjgLuwfK8qvW5XYJn7bwC1/ljiqQ2uArUj3vJQgcSrd6B2w+IbDtOC2lVglJAKHj/3GBMFnLfpV7Jk9QxJ3zhLEt+fJu+uRGa/cYYkrZ0iqWvnyDs5C0ENZwg5pUsrtnaMXBAKcnVMrxaOdW+fEc7QQPK9jJx1SDzb8LyPhh3E9l4+ctX4r5KxZhbctx/beO8ApMOyeaz+yLI2YMtdnO9BE9xyFdf56dVqSdmEfsPyedOGw630OngAJNxEag08QMBm+TKC9yiU+CjEl20kSLzmcCA+wzc6HOOdS3AxIXZ5qEG3llLxqAQPL4ZQSLy5SDUULW2oxdm0S/IxiN2FlGqHfCFNcJ3bYD8BOOEWbN+u+/mkLmfw+CCFEh+CI57bw1YdTbyhH9RQQXSIR8JR17wPqeczBAcl+PFiydj4qORXzEbNAzgjLdney9Mf9YTH9aD/3MRmwLr32AHaOYV4nyBJaKOQ9zeQC3H4y0k15kOM6ZmI+WEgcQ6FSi4T8WXqEEs8yxDxkZrhDtDK2BbZyKCDHQnC2n0TJBnJXeDIYgjDu4kDKTmr1PfYSA5dJwR7GePiTlDcAafeCfo500eL69GxO10xZ93MS5hrZzsGN3Gjnp5EeDDizdrDxIN09IXthL66gbpM5hjby9veltyqJ3UuYV3jb3EUZw85G4nhm3sLx/usKs8QetAEa3QgV/t4HcdlTf2/S9pWuuE74YZhlSCdGX9OM8huuNNiPkh35LN0MmSIiEKUogCOeI/LEPHcaCeySrHLLIcK6sLgytL9IL5ykviR3HHIpu+dQ4RKlN01Uf9IYVKw/IQYh1K8923lKUWH8Jt3l3TGTa1Vn5Yh8Z7bjiCePoU3BZV4lIy+Rr5BwwFg9xLYDh00fqjbhfYYdnx7Ey07D2AYCZe9/dMc1D6OfbwfgePoudh3KpZOAyOzR8znvQH7cgfDxmWQvx/h6nFYPRI1DE2zfCAdw9SUursQ738OoFRXD9fvwbl5jmqiEFFHAQ5JeIhT5+qzQHw6NhI8MN7yUMI6PEaSq8aK/8ifIIp2TYJUxmpinsyZPcGidx4rldYTCbL95FJpPf6etBxbLDs/S5HWI0my62i+7Dq4DoewjQuwapCnhHtuHf84q7a7aG67Ix7gsldXFQWWbt/Nw1HdUCB0jfMDvGdfseNtSS0fJ2n+UZqnLFk3QT7vDqDdM/oSpzLO9tRjoT0NYeaJeI38yxlUM7r8s1IhS1dNQOL6oM5JpNYyi39A0kC4Ask2wWEwRwCcvCJs/cag5TtZs8xteggWj+QumgQD3UbstkGH00pYfnL1GLj6/4IQoolX0iE8k2G7FJa/IBllSIK2jpVMCh0Wl7oV2e+WyZKxfrqUbP4niJZPzvCZPYaLMLmEWbSRr5at+6NJD4UALNu5+0OxnuTbK1fHpXrP25JSiSFX892Q113I0MdJ8pq5UArezOHNIntQJHQd+Nk386E4GPdxE0ve/++UQ7LrszxJ2zRJMmqQgTO5qwMvGKZGwsktk4QCIRleB7HEE0p8VoM1xAqxB90KqMvCsCS58iEJHvojhGFZPYVjQoO4PfL5BcllvgWSieFPjg9DFB8SU84B1I2VnDpkxpVPSEnV30PwfEqWf6zASL0+2L5BFcIjPTL2YwdI4z9mqXTflkccluq9f5KU6oclrR5xmPEUVp9ePgFj9NdB5Me4Angdr122pe2jT/Q0BAMG/Q6/zsm7llflmL5cklo+UTJ9D0OZbKIqjLCxhMJlhCwNlv2HEd6nHgAKQKOOIt6R75bd+pCCHQHxdJnBQ3xCx7J6JV7Jh7BIPARH4kv8cyTNdycSITuW3sK0eaRkVI+V4moKnTNqvCVqwo4mm+tuG0j3zmMewLN68uyB570R8ak14yTRf7ukIC7zPjvHyfRAvg/fhQLyef7j2u8efe2br2l9CrAkjgFH0N8jqHtS+31FqiTPN03SatGOb1QU6elI7JzcBkp8JJcKRzyzRMYMximWDrHrQwYfYlkdiN86SYKfcObuFATuER9h8Sz5lWp+OTrFh4QHF5Dmu19SMLRJhptNq79dhVVY8yosh587varJmxHvaYBHpJKp2x3xbhjnWT33eXW4orFZiedsHGvxTR5z9cxNkoM/l8xGE6hOqGBIlrRprKxsfE5WB1+R1YHXZHX98wDW6xfacvAlxUr/IlnX/IqsDC6U5fXz9L3+ZW1PIMaPtPsaII/3JFysNwIZ30EscI08Y0AeDVzmNnP9I0wr7tZZI0d2uPLQI5r4965PPMROKykMgnhku+n+ByUVQk5B/yn41ODfQVgPSEEtiT8A4nk/3SPRI9CRTkQTT2t3kzdm9c4jMDgb8eZ22Be91y8nQPw7GIY+LMlQxKS6OzV+JlaNUvLVI1VD0JWwTKLqLgAhgWUlhF8JRcH23Fpcx9a7JLXy515Gj2y+htn8XZJcd5ukBkYB4MeDEUi5GWLlGQvHa1zioyvcWrDznG9PKZsggQN8i+WMWpUjRIknUUr8MSn0z9aMNx3xncQnQxhq8QFYfM1YWPwbIP0A6kZavLcQRbzn6j1EJnyE2x5NPA6NJH73e3pXkeEyzXevPpdAq09B/9LqRqKfUFAoNsE7iJl1cNF1UAIoaFYtxtW1UI7aUZKH4zMpBxDDYzhuT4MiK1ROEcaI8+h6gNcMuO0ObnvMfqcodkcQxEe6eq0QsezWhxQe8Unl40H8WzcgnrQckSL/s0o8x6N09WlBCAsWn+6HlVSP048MG/GXoi1XiQ+T74i1/WzdkR+HeMZ4HhtFPF39O/qACYlIAdFJNegHrokypdDT6yG/4EjvWi2+Mg/Q3ERdNUcDozR0cRbOxu2j4OJHSWLtjyW7iXP33vEsQ23dAK5eTH0d+kUR32CVtaMRB8SuDwlcZyGMxIox4jvE4RyGQUp0NPFMrHow5GFyx/jHC7E+3okSgqMQqyYgq/8FnDY/afaFEqmTMIzPJDFEfqS1UwmwSVUrDKcQWheHYqP+jHjGeEvuMqoxnKy7Xa2URDHXSAn8nSQj4cvAMC8VfTTQZRvUEtFneilO0GQ13SvJsHSGCioIFYDxPcV3u15fGHdAmbgNpadELubHylaTXQJycRgQ8UOLiIuhNiIzT6x8QHxH/qDEa0wnKSCOAjfiOdFxxLL6OsRRXjCOp+AoiCz/SBD/SBziSXoM8VxW0sPEexyHqyhsJWTxXMUiHxAl8TV7MJwrHyM5jZQfQg3zDCCjEX1qQIyGJ0rD9abUYz88E5cVGP45ElODPI7bSbQ35oZM6G1p/VGy0mN+ZuQPBvGmgUZ8vOUbIVaj3fZ0P92vuWAFTqrQbeh44DZc7G2S4qfFwuJJ/OE/hog3QTuysAhwfrygbq7GUEt2cE4IlxZGoadXP6h/xKBTDoLuq9cQaO0Z6WHQq3gK4J3HjiG8Y7ifcR4d4TZ+lIGuvmrnW3D149F/Wq+BBLFMxXVRLk5GTi5hhI/R9Yjwem1dh4hjBlQf51b5okQOp7d9ITeGohHUKu2kqxBn+UYgcUkBKwnbfgfirwPaQvyjlWrJdR+Tlp9BID8DaXeg/r1KvB/Ea4yHrKOIwjI54A2cEPE4xiV2SjwsLqUKWX31a1HJnREZJtDaxLprn8TTM7i6IeJ5TtuvdZR4HAaTd1++qtqB5K7sYe+acf2I1U5uXHbbv2lEEk9FGTTiQ1ASDfGJx7lg9QZ0RNtAHXQmqcIRf8pzp3aHLPRBQ4AfJS7wcTjHi0BShOOSmRzBzavmV44F8a+A+H2ozUeinDsHvDaM0Eh4+3FOpw/hRI/H2Pk13GAfvT5vrXCiqXLnezrxpNcAK4wseW0DleGtBL0uE8mvTzzIjkSqH3EOiCLeQQlzMPJp/exMSvkDEjj4J494pldGfEjwgBE/U4c8ri2STgVIrcOwtHKc5Fe/COL5KdTTOMbmxcOkk2RHbnQSFyad2y2zdzkCjzNltHtF9rbPSRD/Toh4B0f8t8niI0FZMz8awZjE7JGwDl+7fGPAXfsRq1kqIrbfAMx6WabX3aZj2NSysRjO8dNjvEnD5+GNbCPAiKGwi+pmSXotsuE6UyzzNqZIJJ5/461LdqHu5zjOI95ZdSTB2p6RH73NtrvSKYh7bIrqZ2/IHJfKXW9JctlDuA53zWG5Jdf9XdT2MJCTRCFenZtBdDscYUQi0gBT65CD3Ih4lrHL8QHrDvzUoJYeu8/ieDwwLrMOieeMVcpWEs9xfCzxHjHqYttB/Ewc8zOM4+lVrA16Gg0ncPVh4mnx8BaeRRtgtZEu/Tow0g26LUQ81ZDPBPAdv6NKfEr52JuUXawVxqtzM4huJ0x0LFAHxFNOSjynBkMHheJT9PL1wSTtpwoj3nWCcMSbYpDoUEjAfgsLAEjkrBYtx1l85E2aa4mfAeJ/AuJ5XrSP8ySj1IQRyR2/fGUfNvpCyUYDIcQjnusOjuTQfrdPl80PhIk/Ya6+gsmdKSARdvVfZjSG+CQNPsIegFPLI6+1+FCHbop4EsB1R7rtM9J/7BFPK/dIV8A9sy47g6QvkcRrjPeIj3XPIECJ902XtNofq6eg0vA8DDXaj6r79I8J2JetLiphRrpjkjAiHdlOKWw7vUI4tBBh4lkJnsj7OgenbEm8WbzXDy1NNt964nUYxJgLQbJ0cOssb4SUWgIXXYuLBZIRe3UfLDLZ90NFej2Xf6xjbcY+zhEwMUuuvVPrc3iWVPmQVH/8n0p8Fx9HpbB1PIZMGj5XPwuOGJ9XOw2dt/NRcZgrJNX9CMt/Ixk1I6WgYoES39nP17DxA5H6lYQQ3HAO+0LgupFuyaQllFzX83tfuNKkU+vYxxX5VyvoqVQOMXK7vuxMBg4mv68DtnHjdtRAbkQ8cf0Ox0eYdOuAXRD2KfGwdP9PlPSl1VSCn0piDda1jhGXxDgdGCWLt94tvqP/IfxjAD19F5URGpl+T5Y/FLxvzb8AmVR9myRU3S6J1XdIEhI9Wny6728kpeIOKa5ehHofQkku2xcslDyOxalMAMlXZSCTHrz1MPHh0YQdj93gXucX0C+OGPhd/Krd/wHiR6MPuM4Byy1MOhGPqJvDwIlnPU3w/HcNFvHRZNs+z/o9q06uQQbPTN7rDMljhxIRr9+FUiTV3SXvrh0jx69ugJz58AKfVqXT7faeVaejPQGLnyGJVT/T17SSa6DFHNrV3GGuv/xeKal+Va6oq++wlxzIq+fCzYItfITgWba6cwKUWlJpt2n1hQh6BbaDgk8A8+/JdkmzrAy+AGW7B33/iSpf+Nq/OUQSHg9UAM6exiX+Zsh32mak/ziCfLNqEs+bDnQxrJtUA5ePGJ1a8yNYKYAwkOTHehBDIMToJSsmSXvXZgj3KCyXLyXaRxD4oUJ++pQTOAkVGL5Uos3qeySz+gElPLPmPskoe1gKKp/HcfzKJZ944fvtfGWJHzHkCw+EfYDBwHfh2rGPr1vZxw/tUe3wHwXWP2WKZI5/F4dfuObDIPxk+Ybmv5e0LXDz1T/X69UhLcmPI6NbiViirwVHQ3eAeMRdp62u8zcFT1EUuo3a/6MQ0pnN44QZdXfq+DsTSVA2kr30ur9CZv4/0Vm4aNRLqPtfKG+T7Or7ZOnqhyDejXC4/CxaC4jgu3A74LzrlPjELQ9K0uYxkrQBWD9OkjeMBx6WhLUgvnoujqvQ4y7r8XuBPcAutEPs8cpt2m6XNAFtui2yrmEHtjvYMZ1SL6sbX5PEjVDkalxrnSl6lEziIVJOkYhX92bwJe2E+oY6VIywxccQr2Ns76Cbgo4M3LEgPQBCASZiS8qQgG0dI4vXj5GEDWNl6YbRsnQ98oKtyDhroBDoCI9J9v+tDtVSK+6ShI2PSML6qfLemkclZf0Tkrj6MUleO0W27P21fHAxRT44myEfnc2Vj88VyL7TufLhuVzZfzFbNu54XZaueUTeWz0RSvEUlGG6Yd0URdKamcAMSVr3mCS9Pwnlo7qcsC6ibuiYpyRx7eOA1Vm6bjL6NEETOoap9CCV29w8EZqjiFh3yyGCYuH2f1UMtB3UuSHxNwdn3Sg5ewSXrgrA9QAsOPADWVp+h/6Jzm3tabLv3AY5dCEgBy/UycdnN8iH5wtk7baX9damzrwh7CTXgngIlbcpE+DK+ThVCrxAVvVdkrTxPmk+lgA3znE6/3ggv1XLDxScQlw/AeyS1pN/lsRNfO6Nj2yP1GOTEQaSa0bpy4l8HDqlaqyGiTS0mVaN8yLEpFTfr0j2wBs+XM+ovUfv9adUQVFrUL8WdWvvlYQaJEqQXSzR1yX+m4ZHPEvKOYr4myffEQ+oxbvpQ1wwSGed5PL7xHf493C/H8FNMn7yaTi+kMBXoA5ie628swbE10DgyAuYIVNgSxH/k+spWFh/9Y8RIv5a0srvlKZDKWjhM7TQoVk70z+mY13a8glpOvZnSdg0SsNLavCH2sfkAIH2UPIGDxU0FX3mEDDVB0Xz4VrYZwqHffZz2TxYUu3fajhKD/5AMhp/oqMSvc1af6ck8BzePEKk7L6aLIcYvLZY4uN1lMIfWOeNfCdADheUfM8LLN00WvacSQcpfLWoW7Ni+0M9PVj7HNub5O2VY+2rGQgLS6t+BKHeoY8sJ2A9CQkiz5MR/CvE9Z9Ky6FUHPcpjkfW3mtPxnI+jQ9DdSIRDB6FxW+5z/rhlFL7SKC/zitRMemVdH/sNQFUBF12x0a0wX0Okcd8m4G+Doh4YmDEEyDd/wOzIo4XIVhaDoW8dOMDsvdstpKsPw6dOCjG2IjfgeuUVknfNBVxcxSs/qeS1XgXhnjoDydmOAcPy2L7af7/AeJvk9bD6WjrMxzOd9Fs+GXEc0u7BI+8BeJHxxDvkatkUTEZjrBNvZJH5vcdg028ukWURjxAt8ntdK0gb8nmB2Tf+WyQ06402WSKTYqQeGbUS1dP0mFZGlwnY7ySEfypjvG1s1CEDCR+yZtHSvOhLByDuM5XoKlH+IfunjPp/PxJw+F3wsSD2GSFIx6E0+JDuUj4Or73GFTi2RgsSG+xRlgQrT0RGS/3Ldn8oHz4RY4SrxMoSj5KFJzz5jAp9f1n9Btw6ZUPIJlCIoakLK2OEzT3SGLF3ZKOJCu7DknVhgnS8gn/uAG/b4vYzqYIVSJ+aeKUflyBw734xNPi6ZE8q1d8h9z118HgEg+Xzjl3PhChAoSl8gTwAokBHj9SlmwaLx99QbLOKEFqppwiU+75QMNB+WPmbHmncJokrJ4ii1dOkHdXPSJvLR8n763C8AlDsHdXTpK3Sx+WtwueksDuFXDr4e/KUoFUiZT8s9JwaKkkbh4bcvWW1JF48ySWi7h85C+EdGIwiSfBJDfRT9dpQtRtDnV3y+KN4+XjC8tA1Fmdezf/jP+VeE5/cnbuAJb4t1q3QxWaMSyrR7xuA71N8AmNWLbJliuyE2U72sLIACFDiacGsC0l/gwsfjGIxyghRLxl9UY8M3kPLpuPuabvLQaXeOJ2WLdn7Qq3HXUwdFq6YRyILwE3Z/TrT0o8KOcnvxmV+REDTpUS+ndgoAicC2d9fcZep1Y5XuefJ+M06mUbGWBJHbx3141hhE/oNByxrF69EUn3lNApplp6yOqtv38RGEziibBFOXfq9mEZSdSSDQ/J/gtFIO9UmHjAhnSwWn3AIXwXjve7I2+Luocy7M+DWH1L7JDLcxvaUeKxj5M6DUf/SxK38u0UG1lQMZlrKPGA3qmKID/yWr7XGCjxAxvHk3S6UyZ1ke7TFIHudunGMfLR+TyPeDKuPJnbx8/ujGE7XbaGAiqHy/w90I8rrE7orhqAf3SfZfYnxH/wdyCeOQeGg+iLJp/xiPdcfrSyfo8xUOKJgRIfSbqDI/7ddffKgUsFcrnvkLLGL0UqsKYvqPDhBvLrtnMjn7xwIOHYH4IST9htVtULbONnRa7IEWk6/p+ydLP3gEeA1+YR7/U5TLwNP4eJ/0rEEyY4nfyvNVi2DEUA8cllD8q2z/g1K35KnB/+I2vGIWhVS9VNJNQjNWTpyio2YDsPcHVskzddi3Vri8QfkpoD/0cSttwlfM5ebw3T1TPGaz8jSKaX4o2kYeK/KvGGEPGeRalAGWfL75GGY/wq9S44Zv5BAf6VCv6ZLk7eMLGzPwTYq8+xEfyTneF75v2o14f6fHuF1BouahtMBvn9mEtI+jrR7lXZI+t3v4qxv83H80ItufP6o32yJM/Wh1391yDeBBp285Y0aezH/sTKOyTP9xiIKQPR/CBhM7Ad2AMK3f1xwv40aBi2vSdqv8HdK+cwj38e9Kreq2+U3V+kyuJNoyWh6g59h00fiXL9o0J608mqkAwBnHgKKcL3HINPPGFkO3CdEzg6zIOQeeft3ZX3yeIV4yVx9WRJ2/iUJK2fLqkbZ0n65jmSuXkWwBLY9JyHuRH7wvvTNs2WtM3P6N+5MTyDth+VJe9P1FnCpRX2wifdvN0W9XIQkK5je5KumT48gkv64l7T9wyDTXxozB617WeS6P+5grcu+TqWPhpVcTes/15Jq7pTM29+t5WPWyVX3QvcbWUlthHYnlTN7Q5u/2hFUuU9AOJ4Obffrc/ekWy+J5AI6+atXL6NG7qH4CweSmnje7P6YeK/MvGMoWHh2frtOptH8O4a72HzzRc+EJlW90NJ9/1AMoIgQi2Sx0XEW+eK2ZY3R2DzBB5IVIgsehjesgXRtX+t99/5/B77wHfJ+QxgJPF2nDeN6/Uz3Nb3HLjOARE/8PvxccCTOIXwBBubA1xzjBJrx7pjbg5OOb5se8T6VzrPtwwDlRfqGPG3g3jv0at4xBNfmfhh3DoMEz+MGyJE/KBm9cP41mOY+L9QDBP/F4ph4v9CMUz8XyiuRzx3hidUopeH8d0HSefLH7x/wcmtLyWe5TC+2yDHJJ2WTgXg10D1NWnnAtznPCKXuW8Y3324jzck1vDeCYgnwW5nJNFumfuH8d0GjduV7kbWl1o8NWUY32aQoxvzRH5Zh9O1CdVM7kA831XTryID/ON2LBkDuOzKYXybMdJDvH0Gcsw6/A4+n1XIbblf/j+QTgcbuUwh1AAAAABJRU5ErkJggg==)')
INTERRUPT = {'true': 1,'false': 0,}
POSITIONS = {'bottom-right': 0,'bottom-left': 1,'top-right': 2,'top-left': 3,'center': 4,}
TRANSPARENCIES = {'default': 0,'0%': 1,'25%': 2,'50%': 3,'75%': 4,'100%': 5,}
COLORS = {'grey': '#607d8b','black': '#000000','indigo': '#303F9F','green': '#4CAF50','red': '#F44336','cyan': '#00BCD4','teal': '#009688','amber': '#FFC107','pink': '#E91E63',}
FONTSIZES = {'small': 1,'medium': 0,'large': 2,'max': 3}

"""Initialize default parameters"""

_duration = DEFAULT_DURATION
_position = DEFAULT_POSITION
_transparency = DEFAULT_TRANSPARENCY
_color = DEFAULT_COLOR
_interrupt = DEFAULT_INTERRUPT
_timeout = DEFAULT_TIMEOUT
_fontsize = DEFAULT_FONTSIZE
_target = 'http://{}:7676'.format(args.ip_addr)
_icon_file = io.BytesIO(base64.b64decode(DEFAULT_ICON))


"""Loading user parameters"""

if args.duration is not None:
  _duration = args.duration
if args.position is not None:
  _position = args.position
if args.transparency is not None:
  _transparency = args.transparency
if args.color is not None:
  _color = args.color
if args.interrupt is not None:
  _interrupt = args.interrupt
if args.icon is not None:
  _icon_file = open(args.icon, "rb")
if args.image is not None:
  _image_file = open(args.image, "rb")
if args.fontsize is not None:
  _fontsize = args.fontsize

payload = dict(filename=('icon.png', _icon_file,
                         'application/octet-stream',
                         {'Expires': '0'}), type='0',
               title='%s' % args.msg_title,
               msg='%s' % args.msg_content, duration="%i" % _duration,
               position='%i' % POSITIONS.get(_position),
               bkgcolor='%s' % COLORS.get(_color),
               transparency='%i' % TRANSPARENCIES.get(_transparency),
               offset='0', app='Jeedom AndroidTV Notification', force='true',
               fontsize='%i' % FONTSIZES.get(_fontsize),
               interrupt='%i' % INTERRUPT.get(_interrupt),)

if args.image is not None:
  payload['filename2'] = ('image.png', _image_file, 'application/octet-stream', {'Expires': '0'})

response = requests.post(_target, files=payload, timeout=_timeout)
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

darkwinter
Timide
Messages : 83
Inscription : 23 mars 2017, 06:58

Re: Notification Android TV

Message par darkwinter » 14 mars 2019, 13:06

@Naboleo.

Merci mais je fais quoi du coup avec le code que tu as proposé?

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Notification Android TV

Message par Naboleo » 14 mars 2019, 13:24

@darkwinter
C'est le contenu du fichier notifyandroidtv.py mentionné dans le tout début du sujet. Reste à appliquer l'installation décrite au même endroit si tu veux exploiter la fonction de notification

Pour info, tout à bien l'air d'être dans la market "script"
Pièces jointes
Capture.PNG
Capture.PNG (39.64 Kio) Consulté 1227 fois
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

darkwinter
Timide
Messages : 83
Inscription : 23 mars 2017, 06:58

Re: Notification Android TV

Message par darkwinter » 14 mars 2019, 13:54

@Naboleo

Merci poir ces informations. Pour le coup je pige pas sur le market depuis jeedom je le trouve pas alors qu'il y est bien sur le market https://www.jeedom.com/market

Ça c'est fort lol

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité