[Store] Gestion des cartes-relais chinoises

Discussion et échanges de scripts pour la box eedomus

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 10:19

Attention pour gérer finement les entrées ce n'est pas l'idéal car il y a toujours une latence. Ce n'est pas comme sur un IPX où on peut faire du push et donc avoir un retour immédiat de l'entrée. Là, ça ne fonctionne que par polling. Moi ça ne me pose pas de souci d'avoir 5 à 10s de retard sur l'ouverture de mes registres motorisés, mais pour de la détection d'ouverture ce n'est pas terrible, car il suffit d'ouvrir et refermer avant le polling pour que ça ne soit pas détecté.
Dernière édition par rover820i le 06 Mars 2021 10:54, édité 1 fois.
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 06 Mars 2021 10:39

Moi ça ne me dérange pas, pour gérer mon remplissage de piscine 10 secondes de retard ce n'est pas grave.
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 14:21

je viens de mettre à jour le script dédié TCP en faisant 3 boucles de 6 secondes (en 30 secondes) au lieu de 5 boucles de 5 secondes.

Dis-moi si c'est mieux ;)

Le port TCP est par défaut 1234 sur le périphérique.

Les input ne sont pas visibles sur la page web du périphérique.
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 06 Mars 2021 14:56

ouiiiiiiii :) mais:
- toujours Operation timed out after 40001 milliseconds with 0 bytes received
- L'entrée 1 n'active rien dans eedomus
- l'entrée 2 s'appelle entrée 1 dans eedomus
- L'entrée 3 s'appelle entrée 2 dans eedomus
- L'entrée 4 s'appelle entrée 3 dans eedomus
- L'entrée 5 s'appelle entrée 4 dans eedomus
- L'entrée 6 s'appelle entrée 5 dans eedomus
- L'entrée 7 s'appelle entrée 6 dans eedomus
- L'entrée 8 s'appelle entrée 7 dans eedomus
- J'arrive bien à activer mes sorties, mais je n'ai pas de retour d'état des sorties.

C'est déjà beaucoup mieux, je suis rassuré et c'est réactif ;)
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 15:04

Non il n'y a pas de retour d'état si tu actives manuellement les sorties en dehors d'eedomus.

A l'origine j'avais créé le script en séparant les E/S et en contrôlant les sorties uniquement depuis eedomus.

Tu dois avoir une version différente du mien, car les entrées étaient décalées sur ma box.

Tu peux éditer le script local netrelayinputtcp.php et à la ligne 20, modifier :

Code : Tout sélectionner
                  $valeurListe = $i-1;


par

Code : Tout sélectionner
                  $valeurListe = $i;
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 06 Mars 2021 15:26

Merci génial, ça correspond maintenant mais la 1 ne fonctionne toujours pas.
Tu ne sais pas comment je pourrai l'activer?

j'ai ce défaut qui s'affiche maintenant :
La règle [10947564] s'est déclenchée 6 fois en une minute, afin d'éviter une saturation son exécution est suspendue pendant une minute.

Veuillez contrôler les critères et actions de vos rêgles ou les désactiver afin d'éviter ce problème.
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 15:44

A quoi correspond cette règle ?
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 15:50

Pour connaitre les valeurs de tes entrées, crée un script intitulé netrelaytest.php et exécute le sur ta box, et donne-moi ici le résultat. Prends soin d'activer les entrées 1 et 8 sur ton netrelay :

Code : Tout sélectionner
<?php
$ip = '192.168.1.166';
$port = '1234';

$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
socket_connect($socket, $ip, $port);
socket_write($socket, 'state=?');
$out = socket_read($socket, 2048);
echo $out;
?>
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 06 Mars 2021 16:04

voici voila
{"cmd":"state","output":"00000000","input":"10000001","sn":"v6248447194e3882"}
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 17:10

Ce n'est pas logique que le script d'origine ne fonctionne pas.

Peux-tu me donner la sortie de ça STP :

Code : Tout sélectionner
<?php
$ip = '192.168.1.166';
$port = '1234';

$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
socket_connect($socket, $ip, $port);
socket_write($socket, 'state=?');
$out = socket_read($socket, 2048);
echo $out;
$out2 = explode(",", $out);
$out2 = explode(":", $out2[2]);
$out2 = str_replace('"', '', $out2[1]);
echo '<br />'.$out2;

// ici je teste pourquoi je n'avais pas utilisé la fonction adhoc (mais y'a une raison forcément...)
$outtest = sdk_json_decode($out);
echo '<br />'.$outtest->{'input'};
?>
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 06 Mars 2021 18:18

Voila

{"cmd":"state","output":"00000000","input":"10000001","sn":"v6248447194e3882"}
10000001
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 22:01

Le résultat est normal.

Je vais t'envoyer dès que possible une liste de scripts à tester.
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 06 Mars 2021 22:56

Bon j'ai fait des tests de mon côté avec installation, RAS. J'ai les bons retours de valeur, et les input s'affichent bien sur eedomus.

Quelques rares timeout mais rien de particulier.

Voici le script initial que j'avais créé avant de faire un plugin, et que j'utilise sur ma box (1 mise à jour toutes les 10 secondes)

Nom : maj-relayv6.php
Code : Tout sélectionner
<?php
$apiList = Array('Code API input1', 'Code API input2', 'Code API input3', 'Code API input4', 'Code API input5', 'Code API input6', 'Code API input7', 'Code API input8'); // tu peux utiliser les périphériques input créés par le programme initial

for($j = 0; $j <= 2; $j++) {
                $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
                socket_connect($socket, '192.168.1.166', '1234');
                socket_write($socket, 'DUMP');
                $out = socket_read($socket, 2048);
                echo $out;
                $out2 = explode("\n", $out);
                for($i = 9; $i <= 16; $i++) {
                    $valeurListe = $i-9;
                    $apiNum = $apiList[$valeurListe];
                    $etat = explode(" ", $out2[$i]);
                    if($etat[0] == "IH") {
                        setValue($apiNum, '1');
                        }
                    else {
                        setValue($apiNum, '0');
                        }
                }
                socket_close($socket);
    sleep(9);
    }
?>



----

Périphérique à créer :

Actionneur HTTP => Valeur : 0 / Description : Verif entrées / URL : http://localhost/script/?exec=maj-relayv6.php

Macro à mettre pour cet actionneur HTTP :
- Attendre 0mn puis Verif entrées
- Attendre 30s puis Verif entrées

---

Règle à créer :

- Tous les jours, toutes les heures, toutes les minutes

- Périphérique Vérification des entrées => macro mise à jour auto

Ensuite, tu lances manuellement la macro de l'actionneur HTTP

Et normalement, tes entrées devraient se mettre à jour...
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 07 Mars 2021 11:34

Désolé je ne comprend pas tout, je rajoute ce script ou je supprime tout?
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 07 Mars 2021 11:59

j'ai tout créer comme tu m'as dit, mais l'entrée 1 ne fonctionne toujours pas
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar Essam10 » 08 Mars 2021 09:52

Est ce qu'on sait faire une Maj ou alors il faut installer reinstaller?
Eedomus +
RFXcom (5 Volets Simu , 3 Chacon Dio, Pluviomètre PCR800,6TGHN132N, 1THGR122NX)
Zigate (7 xiaomi ouverture porte)
Capteur Garage Vision Zwave
2 Sonoff Basic
Essam10
 
Messages : 142
Inscription : 12 Jan 2018
Localisation : Leuze - Belgique

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 08 Mars 2021 17:32

C'est vraiment étrange que l'entrée 1 ne fonctionne pas.

Le code api est bon ?

Après la ligne $etat = explode(" ", $out2[$i]);

Rajoute :

echo $etat[0].' : api '.$apiNum.'<br/>';

Et donne moi le résultat d'une exécution manuelle avec l'entrée 1 et l'entrée 7 activées.
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar tom62440 » 08 Mars 2021 18:57

c'était bien dans le script netrelay.php ?

Donc j'ai fait ca :

<?php
$apiList = getArg("apis", $mandatory = true);
$ip = getArg("ip", $mandatory = true);
$port = getArg("port", $mandatory = true);

$apiList = explode(":", $apiList);

for($j = 0; $j <= 5; $j++) {
$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
socket_connect($socket, $ip, $port);
socket_write($socket, 'DUMP');
$out = socket_read($socket, 2048);
//echo $out;
$out2 = explode("\n", $out);
for($i = 9; $i <= 16; $i++) {
$valeurListe = $i-9;
$apiNum = $apiList[$valeurListe];
$etat = explode(" ", $out2[$i]);
echo $etat[0].' : api '.$apiNum.'<br/>';
echo $etat[0].' : ';
if($etat[0] == "IH") {
setValue($apiNum, '1');
echo $valeurListe.' : '.$apiNum.' ON <br />';
}
else {
setValue($apiNum, '0');
echo $valeurListe.' : '.$apiNum.' OFF <br />';
}
}
socket_close($socket);
sleep(5);
}
?>


Et comme résultat j'ai ça :

Erreur : Veuillez préciser la valeur de l'argument apis afin d'appeler ce script Editer.

Exemple : http://192.168.10.31/script/?exec=netrelay.php&apis=xxx
tom62440
 
Messages : 28
Inscription : 04 Mars 2021

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 08 Mars 2021 22:45

Non, à mettre dans le script que tu as spécifiquement créé suite à mon dernier message.
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: [Store] Gestion des cartes-relais chinoises

Messagepar rover820i » 09 Mars 2021 17:03

Dans le script maj-relayv6.php
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

PrécédentSuivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invité(s)