scripts Ping smartphone connecté reseau wifi

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 <\>.
nickos
Messages : 50
Inscription : 28 sept. 2014, 19:28

scripts Ping smartphone connecté reseau wifi

Message par nickos »

salut a tous

sur le forum domoticz.com j'ai vue un scripte qui permait de faire un ping tous les x temps et d'utilisé la présence ou non du smartphone comme switch virtuel.
Qui peut-étre pratique pour couplé au chauffage pour le coupé quand on est pas présent ou activé l'alarme ou je ne sais quoi.

ici
http://www.domoticz.com/wiki/Domoticz_P ... using_Perl
et la discussion sur le forum
http://www.domoticz.com/forum/viewtopic ... =17#p13294

moi j'ai une erreur a la ligne 21

Code : Tout sélectionner

Could not get http://192.168.1.6:8080/json.htm?type=devices&filter=all&used=true&order=Name! at ./ping_by_ip.pl line 21.
elle

Code : Tout sélectionner

die "Could not get $domo_cmd!" unless defined $json;
mon ping_by_ip.pl

Code : Tout sélectionner

#!/usr/bin/perl
   use v5.14;
   use LWP::Simple;                # From CPAN
   use JSON qw( decode_json );     # From CPAN
   use Data::Dumper;               # Perl core module
   use strict;                     # Good practice
   use warnings;                   # Good practice
   use utf8;
   use feature     qw< unicode_strings >;
   # Configuration section, please update to your values
   my $domoticz = "192.168.1.6:8080";  # ip and port of your Domoticz server 
   my $domo_cmd = "http://$domoticz/json.htm?type=devices&filter=all&used=true&order=Name";

           # Array of (device idx, IP)
                     my %IP=(872=>'192.168.1.12',	# Ip 1
                             873=>'192.168.1.8',	# Ip 2
                             681=>'192.168.5.24');      # Ip 3
   my $debug=0;
   # Get the JSON url
   my $json = get( $domo_cmd );
   die "Could not get $domo_cmd!" unless defined $json;
   # Decode the entire JSON
   my $decoded = JSON->new->utf8(0)->decode( $json );
   my @results = @{ $decoded->{'result'} };
   #Put JSON switch and status in a Table
   my @tab;
   foreach my $f ( @results ) {
     if ($f->{"SwitchType"}) {
           $tab[$f->{"idx"}]=$f->{"Status"};
     }
   }
   # Now we go all over the IP to check if they are alive
   foreach my $k (keys %IP) {
           my $ip=$IP{$k};
           my $res=system("sudo ping $ip -w 3 2>&1 > /dev/null");
   #print $k." ".$res."\n";
           if (($res==0)&&($tab[$k] eq 'Off')) {
                   #If device answered to ping and device status is Off, turn it On in Domoticz
                   if ($debug) {print "$k is On\n"};
                  `curl -s "http://$domoticz/json.htm?type=command&param=switchlight&idx=$k&switchcmd=On"`;
           } elsif (($res!=0)&&($tab[$k] eq 'On')) {
                   #If device did NOT answer to ping and device status is On, turn it Off in Domoticz
                   if ($debug) {print "$k is Off\n"};
                  `curl -s "http://$domoticz/json.htm?type=command&param=switchlight&idx=$k&switchcmd=Off"`;
           } else {
                   if ($debug) {print "do nothing: $k is ".$tab[$k]."\n";}

        }
}
si quelqu'un a une idée :cry:
Rpi B avec Domoticz + RFXcom 433.92Mhz + Carte 8 relais sur Gpio
+ 9 Module 1000W DI.O+ 1 Multi modules DI.O + 2 Détecteur de fumée sans fil FA20RF
Rpi B avec squeezlite + Webcam sous Motion
Rpi B avec squeezlite
Rpi B avec Raspbmc + Squeelite pour xbmc
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: scripts Ping smartphone connecté reseau wifi

Message par patrice »

Bonjour

LA première idée c'est que ton domoticz , n'est pas en 192.168.1.6:8080

parce que l'url http://192.168.1.6:8080/json.htm?type=d ... order=Name
est bonne et affiche qq chose

Si tu fait un copier coller de cette url dans un navigateur tu as une erreur ?

D'autre part fais attention à cette/ces lignes dans le script
# Array of (device idx, IP)
my %IP=(41=>'192.168.5.19', # Ip 1
44=>'192.168.5.21', # Ip 2
681=>'192.168.5.24'); # Ip 3

41,44,681 sont les idx des virtual devices et apres la => tu met l'ip a pinguer

si tu as une seule ip met comme cela

# Array of (device idx, IP)
my %IP=(86=>'192.168.1.76'); # Ip 3
my $debug=0;


si tu mets my $debug a 1 , tu as un petit message qui te dit ce qui ce passe
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: scripts Ping smartphone connecté reseau wifi

Message par jackslayter »

moi j'utilise celui la qui est plus simple et marche bien

à mettre dans /domoticz/scripts/lua
et le nommer script_time_ping.lua (ping ou autre chose, tel, pc, tablette)

Code : Tout sélectionner

commandArray = {}

ping_success=os.execute('ping -c1 192.168.1.1') -- l'adresse ip de ton téléphone ou autre
if ping_success then
     if ( otherdevices['xx'] == 'Off') then -- xx c'est le nom du switch virtuel que tu as créé
                  print(" ping connect success ")
                 commandArray['xx']='On'
    end

else
      if (otherdevices['xx'] == 'On') then
                print(" ping connect fail ")           
               commandArray['xx']='Off'
      end
end
return commandArray
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
nickos
Messages : 50
Inscription : 28 sept. 2014, 19:28

Re: scripts Ping smartphone connecté reseau wifi

Message par nickos »

bonsoir a tous et merci pour les reponses

patrice,
domoticz est bien sue l'IP 192.168.1.6 et le port interne est bien 8080.
dans mon navigateur (chrome) l'adresse http://192.168.1.6:8080/json.htm?type=d ... order=Name me donne cette erreur 400 Bad Request
pour mes idx c'est bien ceux des mes virtual devices idx 873 pour le 192.168.1.8 et l'idx 872 pour le 192.168.1.12

jackslayter
Je crois avoir déja testé cette méthode la sans succès.si tu peux m'en dir plus a ecrire dans le crontab -e etc ...

merci
Rpi B avec Domoticz + RFXcom 433.92Mhz + Carte 8 relais sur Gpio
+ 9 Module 1000W DI.O+ 1 Multi modules DI.O + 2 Détecteur de fumée sans fil FA20RF
Rpi B avec squeezlite + Webcam sous Motion
Rpi B avec squeezlite
Rpi B avec Raspbmc + Squeelite pour xbmc
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: scripts Ping smartphone connecté reseau wifi

Message par mike913 »

Bonsoir,

Tout est dit dans le post de jackslayter il n' y a rien à rajouter dans le crontab. Il suffit de placer le script dans le répertoire /domoticz/scripts/lua/ et de lui donné un nom correct: script_time_XXXXX.lua tu met ce que tu veux à la place des XX , et ne pas oublier de rendre le script exécutable.
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: scripts Ping smartphone connecté reseau wifi

Message par jackslayter »

pas besoin de rendre le script exécutable ça marche sans pour les lua
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: scripts Ping smartphone connecté reseau wifi

Message par patrice »

Bonjour,rebonjour

Nickos : A mon avis il y a un caractère pourri qui s'est logé quelque part par la et que l'on ne voit pas (utf8 sans BOM ) ....

Supprime tout le contenu de ton script et refait un copier/coller tout neuf, tout propre et retente le coup

Dans le pire des cas ouvre ton fichier sous windows avec notepad++ , pour voir a quoi il ressemble
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
nickos
Messages : 50
Inscription : 28 sept. 2014, 19:28

Re: scripts Ping smartphone connecté reseau wifi

Message par nickos »

bonjour ou re re re

Apret avoir tous supprimé et tous reecrit j'ai toujour une erreur avec

Code : Tout sélectionner

 ~/domoticz/scripts $ ./ping_by_ip.pl

Code : Tout sélectionner

Could not get domo_cmd! at ./ping_by_ip.pl line 21.
la ligne 21

Code : Tout sélectionner

die "Could not get domo_cmd!" unless defined $json;
ça commence a etre :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil:
Rpi B avec Domoticz + RFXcom 433.92Mhz + Carte 8 relais sur Gpio
+ 9 Module 1000W DI.O+ 1 Multi modules DI.O + 2 Détecteur de fumée sans fil FA20RF
Rpi B avec squeezlite + Webcam sous Motion
Rpi B avec squeezlite
Rpi B avec Raspbmc + Squeelite pour xbmc
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: scripts Ping smartphone connecté reseau wifi

Message par patrice »

re, re en effet

pourrais tu faire un

Code : Tout sélectionner

 sudo apt-get install libjson-perl libdatetime-perl libwww-perl 
puis ressayer, il doit manquer un truc a json_decode
et
apt-get update
apt-get upgrade
aussi
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
nickos
Messages : 50
Inscription : 28 sept. 2014, 19:28

Re: scripts Ping smartphone connecté reseau wifi

Message par nickos »

re

Code : Tout sélectionner

pi@domoticz ~ $ sudo apt-get install libjson-perl libdatetime-perl libwww-perl
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
libdatetime-perl est déjà la plus récente version disponible.
libjson-perl est déjà la plus récente version disponible.
libwww-perl est déjà la plus récente version disponible.
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  libgail-3-0
Veuillez utiliser « apt-get autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
update et upgrade a ete fait avant et apret mais ça ne fonctionne toujours pas :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil:
c'est enervant :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:
Rpi B avec Domoticz + RFXcom 433.92Mhz + Carte 8 relais sur Gpio
+ 9 Module 1000W DI.O+ 1 Multi modules DI.O + 2 Détecteur de fumée sans fil FA20RF
Rpi B avec squeezlite + Webcam sous Motion
Rpi B avec squeezlite
Rpi B avec Raspbmc + Squeelite pour xbmc
Répondre