[Framework SC] les scenarios en php

Update du Framework SC v0.995c en ligne :slightly_smiling_face:


Ajout de fonctions concernant le nouveau plugin zwavejs (équivalentes à celles déjà existantes avec openzwave)

Changelog v0.995b :

  • Mise à jour de la librairie sc cmd en v0.995a :
    Ajout de la fonction cmd-> getZwaveJsBatEquipements : Trouve les équipements Z-Wave (zwavejs) fonctionnant sur batterie.
    Ajout de la fonction cmd-> checkLastZwaveJsMessage : Vérifie la dernière communication d’un équipement Z-Wave (zwavejs).
    Ajout de la fonction cmd-> refreshZwaveJsValue : Force le rafraîchissement des valeurs d’une classe d’un équipement Z-Wave (zwavejs).
    Ajout de la fonction cmd-> refreshZwaveJsValues : Force le rafraîchissement de toutes les valeurs d’un équipement Z-Wave (zwavejs).

  • Corrections typo

  • Compatible avec Jeedom v4.xx et Jeedom v3.xx (certaines fonctions récentes ne fonctionneront pas sous Jeedom v3)


Pour installer le Framework SC et/ou voir la doc c’est ICI


1 « J'aime »

Voici en exemple mon code lancé tout les jours à 14h00 :

Ce code envoi des sms (une seule fois par équipement même si on n’intervient pas pour régler le pb, grâce à une variable) et un email si un équipement ne communique plus sur le réseau depuis 24h.

Update du Framework SC v0.995d en ligne :slightly_smiling_face:


Changelog v0.995d :

  • Diverses petites corrections et optimisations, correction d’un bug d’espace dans le nom du fichier de log lors d’une erreur avec l’api

  • Corrections typo

  • Compatible avec Jeedom v4.xx et Jeedom v3.xx (certaines fonctions récentes ne fonctionneront pas sous Jeedom v3)


Pour installer le Framework SC et/ou voir la doc c’est ICI


3 « J'aime »

Update du Framework SC v0.995e en ligne :slightly_smiling_face:


Changelog v0.995e :

  • Mise à jour de la librairie sc jpi en v0.9955 afin de supporter en natif les actions de JPI v0.99551.

Ma de la doc des fonctions auto générées afin de respecter l’ordre du menu actions de l’interface web de JPI, ainsi que les sous-menus (maintenant affichés dans la description).
ex:
image

  • Petites corrections et optimisations

  • Compatible avec Jeedom v4.xx et Jeedom v3.xx (certaines fonctions récentes ne fonctionneront pas sous Jeedom v3)


Pour installer le Framework SC et/ou voir la doc c’est ICI


1 « J'aime »

Bonjour @dJuL ,
C’est moi où depuis la dernière version du core jeedom, les logs ne s’affichent plus correctement ?
Je ne sais pas si c’est lié à Framework_SC on non :-/ ou s’il faut une màj de ce dernier

image

PS : Et par ailleurs, merci pour ce framework dont je me sers depuis des années :wink:

Oui j’ai vu ça, c’est la dernière maj de Jeedom qui provoque ça.
Je vais essayer de regarder ça ce WE :wink:

Par ailleurs tout fonctionne bien c’est juste un soucis d’affichage dans les journaux.

Salut,

ça a été corrigé normalement, il faut remettre à jour le core et ça doit être OK.

Corrigé peut être pour le pb d’encodage qu’on semble distinguer dans la capture postée par @aztazt

Mais le log ne prend plus le html directement depuis la dernière maj :

Il faut donc que je corrige de mon côté pour que le html s’affiche de nouveau.

Sauf erreur tu trouveras toutes les infos ici :

Merci !

Dommage, un simple strip_tags() du contenu lors du téléchargement du fichier de log et une limitation des tags et attributs autorisés aurait suffit plutôt que de faire des replace juste pour l’affichage…
J’avais pas vu ce topic.

Du coup c’est pas la première fois que le html est supprimé dans les logs, je vais réfléchir si je le réautorise via l’installation du framework, ou si je fais avec la nouvelle façon, mais cela implique refaire énormément de mofifs partout pour un rendu moins bon…

edit: en attendant vous pouvez rajouter cette ligne dans vos scénario pour désactiver le html :

$sc->htmlLog(false); //Désactive le html dans le log

http://rulistaff.free.fr/sc/doc/?class-sc#_htmlLog

Bon au final j’ai corrigé dans Jeedom, c’est juste une ligne à modifier, c’est ulra simple.
Je modifie l’install du framework et publie une maj. dans le WE…

2 « J'aime »

Hello @dJuL,

Oui, c’est ce que j’avais fait au début, ça semblait super logique effectivement.
Mais strip_tags() est un peu con con et shoot tout jusqu’au prochain > et dans les scenarios il peut y avoir des comparaisons et notamment 42 < 500, donc toute la fin de la ligne disparait…
Cf : Problème d'affichage dans les log scénario - #19 par Bad

Alors tu vas me dire il suffit de les remplacer par &lt;, oui, mais ca fout la zone dans l’afichage en mode brut… donc j’ai fait au moins pire, la cible dans l’alpha est beaucoup plus propre.

Bad

Ah ok je pensais que strip_tag() était meilleur que ça…
Après on peut « triché » avec un regexp en se disant qu’en html il n’y a pas d’espace dans les balises mais c’est un peu bidouille.

En tout cas en JS pas de soucis :

console.log($('<i/>').html('<span> 2 < 5 & 5 > 2 </span>').text());

=> 2 < 5 & 5 > 2

Update du Framework SC v0.995f en ligne :slightly_smiling_face:


Changelog v0.995f :

  • Mise à jour de l’installation et de l’intégration dans Jeedom afin de supporter à nouveau l’affichage des logs en HTML, supporte également l’affichage en mode brut. Reste compatible avec la nouvelle coloration des logs intégrée à Jeedom.

J’ai fait un truc mieux que juste réactiver le html, ayant vu que la sécurité du html pouvait poser des questions de sécurité à certains, le html est entièrement filtré et sécurisé: pas de JS possible aucun événement possible, aucun lien externe autorisé

  • Maj de la doc

  • Petites corrections et optimisations

  • Compatible avec Jeedom v4.xx et Jeedom v3.xx (certaines fonctions récentes ne fonctionneront pas sous Jeedom v3)


Pour installer le Framework SC et/ou voir la doc c’est ICI


log HTML :

log BRUT :

Voici le code qui gère le html (également dispo dans la doc Function Installation | Framework sc en bas de page) :

      /**
       * Framework SC / HTML SECURE LOG
       */
      if (colorMe) {
        if (isScenaroLog) {
          log = jeedom.log.scenarioColorReplace(log)
        } else {
          log = jeedom.log.stringColorReplace(log)
        }
        log = $($.parseHTML(log, false)); //parse HTML and remove <script>...</script>
        log.filter('*').add(log.find('*')).each(function() { //all elements 
          var el = $(this),
            attributes = this.attributes;
          $.each(attributes, function(i) { //all attributes
            if (attributes[i]) {
              var attr = attributes[i].name.toLowerCase();
              if (['style', 'class', 'href', 'target'].indexOf(attr) == -1) { //remove all attributes exept whitelist
                el.removeAttr(attr);
              }
              else if (attr == 'href' && /^https?:\//i.test(el.attr('href'))) { //remove all external links
                el.removeAttr('target').attr('href', '#external-link-forbidden');
              }
            }
          });
        });
        _params.display.empty().append(log); //append html log
      }
      else {
        log = $($.parseHTML(log, false)); //parse HTML and remove <script>...</script>
        log.filter('style').add(log.find('style')).remove(); //remove <style>...</style>
        _params.display.text(log.text()); //remove all html tags and decode to plain text
      }
      /**
       * Fin Framework SC
       */

:slight_smile:

3 « J'aime »

Bonjour dJuL,

On dirait que côté hébergement Free il y a eu un problème :

J’ai remarqué cela pour ma part vers minuit cette nuit.

Merci, je vais migré ça ailleurs.
Cet hébergement doit avoir au moins 20 ans et ils désactivent ça d’un coup sans prévenir…
Bon après c’est gratuit, donc…

Update du Framework SC v0.995g en ligne :slightly_smiling_face:


Changelog v0.995g :

  • Migration du framework, le site free ayant été suspendu et demandant trop de contraintes pour le débloquer.

  • Maj de la librairie $sc->install()

  • Maj du fichier d’installation

  • Maj de la doc

  • Petites corrections et optimisations

  • Compatible avec Jeedom v4.xx et Jeedom v3.xx (certaines fonctions récentes ne fonctionneront pas sous Jeedom v3)


Pour installer le Framework SC et/ou voir la doc c’est ICI


Il faudra modifier vôtre scenario d’installation/maj du framework avec le nouveau lien :

eval(file_get_contents("https://www.jpi-domotique.com/sc/install"));

https://www.jpi-domotique.com/sc/doc/?Installation

2 « J'aime »

Quelle réactivité, c’est ouf, merci @dJuL ! :+1:
(et en plus, ça fonctionne ! :slight_smile: )

Update du Framework SC v0.995h en ligne :slightly_smiling_face:


Changelog v0.995h :

  • Maj du fichier d’installation
    Le bouton download du fichier de log dans Jeedom télécharge le contenu du log en JS (et non plus via le serveur) afin de supprimer le HTML dans le fichier téléchargé (uniquement si le navigateur le supporte).
    image

  • Maj de la doc (typo / corrections / maj de vieux lien vers l’ancien forum)

  • Petites corrections

  • Compatible avec Jeedom v4.xx


Pour installer le Framework SC et/ou voir la doc c’est ICI


Pour ceux qui sont encore en v0.995f ou antérieure Il faudra modifier vôtre scenario d’installation/maj du framework avec le nouveau lien :

eval(file_get_contents("https://www.jpi-domotique.com/sc/install"));

Voici le code qui gère le download en JS (également dispo dans la doc Function Installation | Framework sc en bas de page) :

if (URL && URL.createObjectURL) { //HTML5 download
  $('#bt_scenarioLogDownload').off('click').on('click', function() {
    if (colorMe) {
      log = log.clone();
      log.filter('style').add(log.find('style')).remove(); //remove <style>...</style>
    }   
    var url = URL.createObjectURL(new Blob([ log.text() ], { type: 'text/plain' }), { oneTimeOnly: true });
    $(this).attr({ href: url, download: _params.log.split('/').pop(), target: '_blank' });
    setTimeout(function() {
      URL.revokeObjectURL(url);
    }, 250);
  });
}

:slight_smile:

1 « J'aime »