[Framework SC] les scenarios en php
Re: [Framework SC] les scenarios en php
Merci Djul !!!!!
Comme d'habitude, toujours aussi réactif
Encore Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii !
Comme d'habitude, toujours aussi réactif
Encore Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii !
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean
En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal
En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal
Re: [Framework SC] les scenarios en php
De rien
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.94 en ligne
ATTENTION, CHANGEMENT DE SYNTAXE !
Depuis la v0.91 Le framework n'est plus statique. Voir ce post:
viewtopic.php?f=27&t=17645&start=260#p491514
------------
Changelog v0.94 :
- Ajout du support de JPI v0.94
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
ATTENTION, CHANGEMENT DE SYNTAXE !
Depuis la v0.91 Le framework n'est plus statique. Voir ce post:
viewtopic.php?f=27&t=17645&start=260#p491514
------------
Changelog v0.94 :
- Ajout du support de JPI v0.94
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.95 en ligne
------------
Changelog v0.95 :
- Ajout du support de JPI v0.95
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
[/quote]
------------
Changelog v0.95 :
- Ajout du support de JPI v0.95
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Salut à tous,
J'ai 2 problèmes ici avec ce merveilleux framework et les capteurs de mouvement Xiaomi (des detecteurs de porte fonctionnent nickel ) :
1er, le détail :
$detecteurs_etat = array('#[Gateway Bureau][Chambre Parents Baie Vitree][Mouvement]#', '#[Gateway Salon][Veranda][Mouvement]#');
$sc->setLog('compteur : ' . count($detecteurs_etat)); => FONCTIONNE
$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c'est tout.'); => NE FONCTIONNE PAS
2ème, le détail :
for ($i = 0; $i < count($detecteurs_etat); $i++) {
$interrupteur = $sc->getEquipement($detecteurs_etat[$i]);
$sc->setLog($interrupteur); => FONCTIONNE
$sms=getCond($detecteurs_etat[$i]); => NE FONCTIONNE PAS
}
Quand ça ne fonctionne pas, le "en cours" de l'exection ne finit jamais et je n'ai pas de log, je suis contraint de l'arrêter.
Une idée ?
Merciii !
J'ai 2 problèmes ici avec ce merveilleux framework et les capteurs de mouvement Xiaomi (des detecteurs de porte fonctionnent nickel ) :
1er, le détail :
$detecteurs_etat = array('#[Gateway Bureau][Chambre Parents Baie Vitree][Mouvement]#', '#[Gateway Salon][Veranda][Mouvement]#');
$sc->setLog('compteur : ' . count($detecteurs_etat)); => FONCTIONNE
$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c'est tout.'); => NE FONCTIONNE PAS
2ème, le détail :
for ($i = 0; $i < count($detecteurs_etat); $i++) {
$interrupteur = $sc->getEquipement($detecteurs_etat[$i]);
$sc->setLog($interrupteur); => FONCTIONNE
$sms=getCond($detecteurs_etat[$i]); => NE FONCTIONNE PAS
}
Quand ça ne fonctionne pas, le "en cours" de l'exection ne finit jamais et je n'ai pas de log, je suis contraint de l'arrêter.
Une idée ?
Merciii !
Re: [Framework SC] les scenarios en php
Je suis loin de chez moi jusqu'a fin décembre.
Je vais regarder ça quand je rentre.
A tu essayer avec le debug activé pour avoir le log détaillé des erreurs php ?
( pour activer le debug : http://rulistaff.free.fr/sc/doc/?Utilisation )
Je vais regarder ça quand je rentre.
A tu essayer avec le debug activé pour avoir le log détaillé des erreurs php ?
( pour activer le debug : http://rulistaff.free.fr/sc/doc/?Utilisation )
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Je viens de regarder plus en détail ton code posté et il y a des erreurs de syntaxes :
Normal que ça ne fonctionne pas car tu n'as pas échappé le guillemet simple dans une zone texte.
Il faut faire :
$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c\'est tout.');
ou
$sc->setLog('compteur : ' . count($detecteurs_etat) . " et c'est tout.");
Ensuite
La fonction getCond sert à évaluer une expression Jeedom (String) et retourne un boolean (true ou false).
http://rulistaff.free.fr/sc/doc/?class-sc#_getCond
Hors là il y a juste une commande envoyée dedans...
Pour exécuter une commande il faut utiliser la fonction setCmd :
http://rulistaff.free.fr/sc/doc/?class-sc#_setCmd
Et je te conseille vivement d'activer le DEBUG lors de la création de ton bloc code (Voir post précédent ci-dessus)
Cela te permettra de voir dans le log scenario_execution de Jeedom le détail des erreur de syntaxes ainsi que le bloc code et le numéro de ligne concerné.
Code : Tout sélectionner
$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c'est tout.'); => NE FONCTIONNE PAS
Il faut faire :
$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c\'est tout.');
ou
$sc->setLog('compteur : ' . count($detecteurs_etat) . " et c'est tout.");
Ensuite
Code : Tout sélectionner
$sms=getCond($detecteurs_etat[$i]);
http://rulistaff.free.fr/sc/doc/?class-sc#_getCond
Hors là il y a juste une commande envoyée dedans...
Pour exécuter une commande il faut utiliser la fonction setCmd :
http://rulistaff.free.fr/sc/doc/?class-sc#_setCmd
Et je te conseille vivement d'activer le DEBUG lors de la création de ton bloc code (Voir post précédent ci-dessus)
Cela te permettra de voir dans le log scenario_execution de Jeedom le détail des erreur de syntaxes ainsi que le bloc code et le numéro de ligne concerné.
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Merci beaucoup, c'était bien vu, j'étais fatigué .
Re: [Framework SC] les scenarios en php
Et je ne découvre ça que maintenant
Je vais tester ça
Merci
Je vais tester ça
Merci
Re: [Framework SC] les scenarios en php
Update du framework SC v0.95c en ligne
------------
Changelog v0.95c :
- Ajout du support de JPI v0.954
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
------------
Changelog v0.95c :
- Ajout du support de JPI v0.954
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.95d en ligne
------------
Changelog v0.95d :
- Ajout du support de JPI v0.958
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
------------
Changelog v0.95d :
- Ajout du support de JPI v0.958
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.95e en ligne
------------
Changelog v0.95e :
- Ajout du support de JPI v0.96
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
------------
Changelog v0.95e :
- Ajout du support de JPI v0.96
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.96 en ligne
------------
Changelog v0.96 :
- Ajout du support de JPI v0.965
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
------------
Changelog v0.96 :
- Ajout du support de JPI v0.965
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update Ok.
Merci.
Merci.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.97 en ligne
------------
Changelog v0.97 :
- Ajout d'un début de librairie : files
Avec une première fonction permettant de générer un lien de téléchargement (avec une durée de validité) d'un fichier local
http://rulistaff.free.fr/sc/doc/?class-sc_files
- Ajout du support de JPI v0.967
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
- Ajout de la fonction générique ASK_MMS dans la librairie JPI
http://192.168.100.1/sc/doc/?class-sc_jpi#_ASK_MMS
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
------------
Changelog v0.97 :
- Ajout d'un début de librairie : files
Avec une première fonction permettant de générer un lien de téléchargement (avec une durée de validité) d'un fichier local
http://rulistaff.free.fr/sc/doc/?class-sc_files
- Ajout du support de JPI v0.967
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
- Ajout de la fonction générique ASK_MMS dans la librairie JPI
http://192.168.100.1/sc/doc/?class-sc_jpi#_ASK_MMS
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Re: [Framework SC] les scenarios en php
Update du framework SC v0.97b en ligne
------------
Changelog v0.97b :
- Librairie : files
Correction de la fonction makeDownloadUrl
Ajout des paramètres $address, $https et $port
Afin de spécifier l'adresse où joindre Jeedom
http://192.168.100.1/sc/doc/?class-sc_f ... ownloadUrl
http://rulistaff.free.fr/sc/doc/?class-sc_files
- Ajout du support de JPI v0.9675 (et 0.9676)
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
------------
Changelog v0.97b :
- Librairie : files
Correction de la fonction makeDownloadUrl
Ajout des paramètres $address, $https et $port
Afin de spécifier l'adresse où joindre Jeedom
http://192.168.100.1/sc/doc/?class-sc_f ... ownloadUrl
http://rulistaff.free.fr/sc/doc/?class-sc_files
- Ajout du support de JPI v0.9675 (et 0.9676)
http://rulistaff.free.fr/sc/doc/?class-sc_jpi
------------
* Pour installer / mettre à jour le framework :
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
Code : Tout sélectionner
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation
------------
ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:
Code : Tout sélectionner
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
- m.georgein
- Timide
- Messages : 299
- Inscription : 18 mars 2016, 23:46
- Localisation : 13820
Re: [Framework SC] les scenarios en php
Bonjour djul,
Ton framework étant remarquable et particulièrement intelligent et bien écrit je me suis donc décidé à l'adopter en base pour mes propres classes.
Et c'est là que je bute, apparemment la variable $sc ne passe pas la barrière de classe même si on la met en global, il faudrait donc la passer en paramètre à TOUTES les fonctions et SOUS FONCTIONS. Dans mon cas cela risque d'être injouable (plus de 1000 appel de base).
pour être plus clair j'ai fait ce petit code de test :
J'ai essaye dans ce bout de code de placer des global $sc; un peu partout mais rien à faire.
Quelque chose m'échappe ? As tu une idée ? Moi je ne comprends pas (je ne suis pas assez pointu en php).
Merci d'avance
Ton framework étant remarquable et particulièrement intelligent et bien écrit je me suis donc décidé à l'adopter en base pour mes propres classes.
Et c'est là que je bute, apparemment la variable $sc ne passe pas la barrière de classe même si on la met en global, il faudrait donc la passer en paramètre à TOUTES les fonctions et SOUS FONCTIONS. Dans mon cas cela risque d'être injouable (plus de 1000 appel de base).
pour être plus clair j'ai fait ce petit code de test :
Code : Tout sélectionner
class test {
function log($message) {
$sc->log($message);
}
}
test::log("test de message");
Quelque chose m'échappe ? As tu une idée ? Moi je ne comprends pas (je ne suis pas assez pointu en php).
Merci d'avance
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1
Re: [Framework SC] les scenarios en php
Avant le framework était statique et donc SC était global (tout comme la variable $scenario de Jeedom que le framework passait en global)
Un problème s'est alors posé lors de l'exécution de scénarios au sein d'un autre scénario dans le même runtime (start avec l'option sync).
Dans ce cas forcément plus rien ne marchait correctement (les logs n'allaient plus dans le bon scénario et certaines fonctions ne marchaient plus).
Du coup oui, il faut passer $sc à chaque fois dans les fonctions et classes, afin d'être sur que $sc corresponde bien au scénario en cours et non au potentiel scénario parent.
Il te suffit juste de rajouter un constructeur dans ta classe pour stocker la variable sc
Et appeler ta classe systématiquement de manière dynamique dans tes scénarios avec new
Et enfin utiliser -> et plus les ::
edit:
ce qui donnerait :
J'ai rajouté une fonction statique dans ta classe pour te montrer qu'il est est possible d'utiliser les 2 simultanément.
Un problème s'est alors posé lors de l'exécution de scénarios au sein d'un autre scénario dans le même runtime (start avec l'option sync).
Dans ce cas forcément plus rien ne marchait correctement (les logs n'allaient plus dans le bon scénario et certaines fonctions ne marchaient plus).
Du coup oui, il faut passer $sc à chaque fois dans les fonctions et classes, afin d'être sur que $sc corresponde bien au scénario en cours et non au potentiel scénario parent.
Il te suffit juste de rajouter un constructeur dans ta classe pour stocker la variable sc
Et appeler ta classe systématiquement de manière dynamique dans tes scénarios avec new
Et enfin utiliser -> et plus les ::
edit:
ce qui donnerait :
Code : Tout sélectionner
class test {
private $sc;
function __construct($sc) {
$this->sc = $sc;
}
function log($message) {
$this->sc->log($message);
}
static function statiqueEx($a) {
return ($a + 10);
}
}
$test = new test($sc);
$test->log("test de message");
$calcul = test::statiqueEx(5); // retourne 10
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
- m.georgein
- Timide
- Messages : 299
- Inscription : 18 mars 2016, 23:46
- Localisation : 13820
Re: [Framework SC] les scenarios en php
Merci pour ta réponse détaillée, alors pour résumer :
L'appel aux fonctions de ma classe (mg) est ok avec la syntaxe
mg->mafonction() sous réserve d'avoir déclaré le constructeur et de faire suivre la classe par
$mg = new mg($sc);
A l’intérieur de ma classe, l'appel aux fonctions de sc se fait par $this->sc->fonctionsc()
Un autre soucis, tous mes scénario démarrent par un include_once de ma classe et du coup apparemment l'appel par $sc->fonctionsc ne fonctionne plus avec le message : PHP Fatal error: Call to a member function log() on null in /var/www/html/sc/sc.class.php(1956)
exemple de code :
Pour finir, quelle syntaxe utiliser pour appeler une fonction de la classe par une autre, j'ai essayé différent modes d'appel et aucun ne fonctionne (self:: $this-> et autres)
Pour être plus clair, j'ai fait un petit code de démo des différents problèmes que me pose cette intégration :
Encore désolé de t'ennuyer avec ces soucis mais avant de remodéliser mes 12000 lignes de codes je préfère être sur des procédures !!!!
Quand j'en aurais fini, si tu as besoin de bouts de code pour la doc (transpo de scénario vers sc ! ), ou un coup de main (sc, jpi, darksobre), ce sera avec plaisir.
L'appel aux fonctions de ma classe (mg) est ok avec la syntaxe
mg->mafonction() sous réserve d'avoir déclaré le constructeur et de faire suivre la classe par
$mg = new mg($sc);
A l’intérieur de ma classe, l'appel aux fonctions de sc se fait par $this->sc->fonctionsc()
Un autre soucis, tous mes scénario démarrent par un include_once de ma classe et du coup apparemment l'appel par $sc->fonctionsc ne fonctionne plus avec le message : PHP Fatal error: Call to a member function log() on null in /var/www/html/sc/sc.class.php(1956)
exemple de code :
Code : Tout sélectionner
include_once getRootPath() . '/mg/mg.class.php';
$mg->Message('PAW_TTS', "NR en approche à 9,9 kilomètres."); //<===== ligne OK
$sc->log('test'); // ====> Ligne en erreur
Pour être plus clair, j'ai fait un petit code de démo des différents problèmes que me pose cette intégration :
Code : Tout sélectionner
//DEBUG ON
class mg {
private $sc;
function __construct($sc) {
$this->sc = $sc;
}
function message($message) {
$this->sc->log("ppel d'une fonction sc depuis une fonction de la classe"); // FONCTIONNE
}
static function statiqueEx($a) {
// Appel de la fonction message de la classe
mg->message("Appel d'une fonction de la classe depuis une autre fonction de la classe"); // NE FONCTIONNE PAS
}
}
$mg = new mg($sc);
$mg->message("Appel de fonction de la classe depuis l'extérieur de la classe"); // FONCTIONNE
$this->sc->log("Appel de fonction de sc depuis l'extérieur de la classe"); // NE FONCTIONNE PAS (quand la ligne ' include_once ....' de la classe est déclarée
$calcul = mg::statiqueEx(5); // retourne 15 // Appel d'une fonction statique de la classe depuis l'extérieur, FONCTIONNE
Quand j'en aurais fini, si tu as besoin de bouts de code pour la doc (transpo de scénario vers sc ! ), ou un coup de main (sc, jpi, darksobre), ce sera avec plaisir.
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1
Re: [Framework SC] les scenarios en php
Code : Tout sélectionner
include_once getRootPath() . '/mg/mg.class.php';
$mg->Message('PAW_TTS', "NR en approche à 9,9 kilomètres."); //<===== ligne OK
$sc->log('test');
A quel endroit tu fais ton $mg=new($sc) dans ce code ?
En théorie il n'y a pas de raison que ça ne marche pas, sauf si quelque-part dans ton fichier mg.class.php la variable $sc est écrasée.
Code : Tout sélectionner
static function statiqueEx($a) {
// Appel de la fonction message de la classe
mg->message("Appel d'une fonction de la classe depuis une autre fonction de la classe"); // NE FONCTIONNE PAS
}
Une fonction statique est une bête fonction autonome, qui est toujours identique (même si tu crées 50 objects différent de ta classe avec new) et si tu veux utiliser $sc ou $mg dedans il faudra donc forcément l'envoyer en paramètre.
Donc tout ce qui est $this-> ne marchera pas dans des fonctions statiques.
Par contre self:: marchera partout dans ta classe (à la condition d'appeler une fonction statique)
http://php.net/manual/fr/language.oop5.static.php
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité