[Store Widget] Suite Design X

Discussion et échanges de scripts pour la box eedomus

Re: [Store Widget] Suite Design X

Messagepar xeos » 23 Nov 2019 23:30

ThermoX

Capture d’écran 2019-11-23 à 23.22.10.png
Capture d’écran 2019-11-23 à 23.22.10.png (35.8 Kio) Consulté 11974 fois


Pour ce qui utilisent unz Zone Eedomus je vais mettre a jour smartZone


Mise a jour Sensor X ;)

Capture d’écran 2019-11-23 à 23.41.50.png
Capture d’écran 2019-11-23 à 23.41.50.png (23.76 Kio) Consulté 11974 fois
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar darboo » 24 Nov 2019 11:49

Bonjour,

Pas mal les widget on va commencer à faire des interfaces sympa.

J'ai corrigé ton script météo qui avait deux problèmes :
- Pour la lattitude et longitude l'arrondi doit contenir 2 chiffres après la virgule dont les 0 (par exemple 1d50 et pas 1d5)
- Pour la lattitude et longitude les valeurs négatives sont avec un n et pas le - (n1d49 et pas -1d49)

Sinon les coordonnées à prendre ne sont pas celle de la mairie mais celle de la ville (regarde Lyon par exemple)

Code : Tout sélectionner
<?
 
//*************************************************************************
// Widget Météo Forecast
// Version 0.3
// Cree le 09/11/2019
// Modifie le 24/11/2019
//************************************************************************* 
       
 
$ville  = getArg('ville', $mandatory = false, $default = '');
$long   = getArg('long' , $mandatory = false, $default = '');
$lat    = getArg('lat'  , $mandatory = false, $default = '');
$color  = getArg('color', $mandatory = false, $default = '');
   
if ($ville) {
       $strL = strtolower($ville);
       $strL = str_replace(" ","-",$strL);
}


if ($long && $lat){
    $lat = str_replace(",", ".", $lat);
    $long = str_replace(",", ".", $long);

    $latStr = sprintf("%.2f", $lat);
    $latStr = str_replace(".", "d", $latStr);
    $latStr = str_replace("-", "n", $latStr);

    $longStr = sprintf("%.2f", $long);
    $longStr = str_replace(".", "d", $longStr);
    $longStr = str_replace("-", "n", $longStr);

    $weather = $latStr.$longStr;
}

if ($color == "Blanc") {
        $theme= "pure";
        $background = "white";
} elseif ($color == "Noir") {
        $theme= "dark";
        $background = "black";
   
} else { $theme = "weather_one";
        $background = "white";
}
?>

<html>
    <head>
       
        <meta http-equiv="refresh" content="3600" >
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="mobile-web-app-capable" content="yes">
        <meta name="viewport" content="width=device-width" user-scalable=no>
       
        <style>
            body {  width: 280px;
                    height: 500px;
                    background : <? echo $background?>;
     
                 }
        </style>
    </head>
    <body>
        <a class="weatherwidget-io" href="https://forecast7.com/fr/<? echo $weather?>/<? echo $strL?>/" data-label_1="<?echo $ville?>" data-label_2="" data-icons="Climacons Animated" data-theme="<? echo $theme?>" ></a>
    </body>
   
    <script type="text/javascript">
        !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='https://weatherwidget.io/js/widget.min.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','weatherwidget-io-js');
    </script>
   
</html>
[Store] Healthy Netatmo App
[Store] Aspirateur Xiaomi
[Store] Download station
[Store] Box SFR
darboo
 
Messages : 61
Inscription : 08 Fév 2018

Re: [Store Widget] Suite Design X

Messagepar xeos » 24 Nov 2019 13:19

Merci Darboo pour cette correction, je viens de mettre a jour le script :thumbup:
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar Kimax57 » 24 Nov 2019 23:41

Vraiment top les gars. Vous arrivez à faire un design température et humidité ??
Kimax57
 
Messages : 64
Inscription : 15 Août 2017

Re: [Store Widget] Suite Design X

Messagepar xeos » 25 Nov 2019 09:38

Oui oui pas de souci je fini la mise à jour de smartZone et les cover de Sonos et je m'occupe de l'hydrométrie c'était d'ailleurs prévu :thumbup:
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar xeos » 30 Nov 2019 23:05

Mise à jour player X Sonos et Google home chromecast

Capture d’écran 2019-11-30 à 22.00.01.png
Capture d’écran 2019-11-30 à 22.00.01.png (66.36 Kio) Consulté 11914 fois


Cover Sonos en local sous 5s et refresh a 2 min.

Merci de me dire si le cover s'affiche correctement en lecture album.
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar xeos » 01 Déc 2019 23:50

Mise à jour sensorX

- Ajout humidité

Capture d’écran 2019-12-01 à 23.44.32.png
Capture d’écran 2019-12-01 à 23.44.32.png (20.17 Kio) Consulté 11895 fois


Les valeurs se mettront en place selon le choix à l'installation.
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar Anthony86 » 03 Déc 2019 08:40

Bonjour

sympa ses Widget. Peut ont les integres sur google Home?

Merci
Box Eedomus, modules Ecodevice, compteur Gioanola eau, Fibaro FGS-222 Switch,Fibaro FGMS-001-ZW5,REMOTEC ZXT-120 , 2 smoke sensor , 5 QUBINO ZMNHJD1, RFXcom,2 sondes Oregon THGR810, 3 sondes THN132N, 1 sonde BTHGN129
Anthony86
 
Messages : 513
Inscription : 09 Jan 2017

Re: [Store Widget] Suite Design X

Messagepar xeos » 03 Déc 2019 20:35

Bonsoir Anthony86

Le widget s'installant sur la box on ne peut pas l'intégrer sur GH.
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar afelixlag » 13 Jan 2020 16:58

bonsoir

j'ai peut etre mal lu le sujet sur le thermostat, mais quand je modifie la consigne
il passe de 19 à 20 et ignore 19,5.

ai je raté quelque chose?

sinon les widgets sont splendides
bravo
afelixlag
 
Messages : 9
Inscription : 07 Août 2015

Re: [Store Widget] Suite Design X

Messagepar xeos » 15 Jan 2020 17:07

Salut,
il faut que j'ajoute le choix du step, je vais faire une mise a jour ce soir .
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar xeos » 01 Fév 2020 22:54

Mise à jour d'une partie du design. Attention le code est différent donc ca demande une réinstallation de vos widgets.
Ajout d'un picker pour les lampes RGB.
Ajout du thermostat style Nest.
uniformisation design et certains sont responsive dans les unités.

A savoir que vous pouvez mettre plusieurs API pour des commandes de groupe sur Toggle, Slider et Picker.
Vous avez juste a séparer les Api avec une virgule. Ex: xxxxxx,xxxxxx,xxxxxx. Mais cette fonction fonctionne qu'en local, sur le portail seul le premier Api est pris en charge. Je ferai une mise a jour prochaine de correction.

Ce sera la base des prochaines mise à jour donc plus de changement du code.

Capture d’écran 2020-02-01 à 22.42.24.png
Capture d’écran 2020-02-01 à 22.42.24.png (1.17 Mio) Consulté 11589 fois
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar benj70b » 01 Fév 2020 23:03

Tres Joli cette nouvelle version, bravo et merci ;)
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [Store Widget] Suite Design X

Messagepar benj70b » 04 Fév 2020 01:35

Le plugin Picker X ne s'installait plus à cause d'une erreur dans eedomus_plugin.json :

store:['rgb','rgba','hex','hsl',deConZ] à la place de store:['rgb','rgba','hex','hsl','deConZ'] ( les ' sur deConZ)

j'ai fait la correction sur le store ;) je te tiendrai au courant de mes tests
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [Store Widget] Suite Design X

Messagepar xeos » 04 Fév 2020 07:32

:thumbup:
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar benj70b » 04 Fév 2020 22:37

Bon , j'ai fait des tests et il y a un probleme avec la fonction setvalue, elle fonctionne de facon différente si elle est executée sur la box ou sur le serveur eedomus :

voici un exemple de code (il faut pour tester, créer un capteur virtuel de type texte)

Code : Tout sélectionner
header("Content-Type:text/plain;");
$api = [CODE API DU CAPTEUR VIRTUEL];
$tm = time();
setvalue($api,$tm,false,true);
$i=0;
while ($i < 50)
{
    $i++;
    $val = getvalue($api);
    usleep(10000);
    if ($val['value'] == $tm)  break;
}
echo $i.' - '.$tm.' - '.$val['value'];   
die();


Si on l'execute a partir de la box : http://[IP EEDOMUS LOCAL]/script/?exec=[SCRIPT TEST].php ou
via https://secure.eedomus.com/script_proxy/?exec=[SCRIPT TEST].php (= box via redirection) on obtient un resultat du type : 14 - 1580850785- 1580850785 et la valeur est bien fixée dans le widget associé.

si on l'execute a partir du serveur eedomus : https://secure.eedomus.com/script/?exec=[SCRIPT TEST].php on obtient 50 - 1580850890 - 1580850785, la valeur n'est a fixée et il est indiqué 1580850890 (en cours) dans le widget.

Je vais ouvrir un ticket.
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [Store Widget] Suite Design X

Messagepar xeos » 04 Fév 2020 22:44

Salut Benj

J'ai commencé à faire ca ce matin vite fait. J'ai pas de deconz, ni de Hue , ni the yeelight donc je peux pas tester et j'ai pas fini donc je sais pas si je suis sur la bonne voix.
Code : Tout sélectionner
<?php
  //*************************************************************************
// Widget Picker
// Version 0.1f
// Cree le 01/02/2020
// modifier pour benj70b le 03.02
//************************************************************************* 

//argument donne par l'actionneur
$nom =     getArg('nom', $mandatory = false, $default = '');
$apis     = getArg('api', $mandatory = false, $default = '');
$polling  = getArg('polling', $mandatory = false, $default = '10');
$type  =    getArg('type', $mandatory = false, $default = '');
$url  =    getArg('url', $mandatory = false, $default = '');

//arguments donnes par le javascipt
$setlevel  = getArg('setlevel', false, NULL);
$refresh   = getArg('refresh' , false, false);

// on recupere la valeur si possible
if ($apis){
    switch ($type){
            case "deConZ":     $periph = getValue($apis , $value_text = false);
                                $level = $periph["value"];
                                $lvls = explode(',', $level);
                                $lvls[0] = floor($lvls[0] * 2.54);
                                $lvls[1] = floor($lvls[1] * 2.54);
                                $lvls[2] = floor($lvls[2] * 2.54);
                                $level = $lvls[0].','.$lvls[1].','.$lvls[2];
            break;
            case "Zwave":        $periph = getValue($apis , $value_text = false);
                              $level  = $periph["value"];
                             
            break;
            case "Zigate":     $periph = getValue($apis , $value_text = false);
                             $level  = $periph["value"];
                             
            break;
            case "Yeelight":   $level  = "255, 255, 255";
                             
            break;
            case "Hue":     $periph = getValue($apis , $value_text = false);
                                $level = $periph["value"];
                                $lvls = explode(',', $level);
                                $lvls[0] = floor($lvls[0] * 2.54);
                                $lvls[1] = floor($lvls[1] * 2.54);
                                $lvls[2] = floor($lvls[2] * 2.54);
                                $level = $lvls[0].','.$lvls[1].','.$lvls[2];
   }   
}

// Si requete ajax "refresh"
if ($refresh) {
    $data = array(
        'level'  => $level,
    );
   
    //creation du json
    $r = '{';
    foreach($data as $k => $v) {
        $r .= '"'. $k . '":' . $v . ',';
    }
    $r = substr($r, 0, -1);
    $r .= '}';
   
    // On retourne le json
    die($r);
}


// Widget
//---------------------------------------------------------------------------->
 
?>

<html>
<head>
 <meta http-equiv="Content-Language" content="fr" />   
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Sintony:400">
<style><? sdk_get_widget_default_style(); ?>

body {
     margin : 5vh 5vh;
    padding : 0;
    position: fixed;
     width: 95%;
     height: 85vh;

 
  .wrapper {
    font-family: Helvetica;
    flex-direction: column;
   position: relative;
   margin : -10px;
    height : 100%;
 
}   
.wrap {
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
.name {
    margin-right: 25px;
    text-align: right;
    font-size: 10px;
    font-style: bold;
    color: <? echo $police ?>;
}
 

</style>
</head>
 <body>
     <div class="wrapper">
    <div class="wrap">
      <div class="half">
        <div class="colorPicker"></div>
     
        </div>
      </div>
      <? if ($_GET['app'] !== NULL){?><p class="name"><?php echo $nom; ?></p></p><?}?> 
</div>
   
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>       
    <script src="https://cdn.jsdelivr.net/npm/@jaames/iro/dist/iro.min.js"></script>
     <script type="text/javascript">
            //-------variables-------------
           
           
            var rgb           = "rgba(<? echo $level?>)"
            var polling         = <? echo ($polling*1000);?>;
           
           
            //-------insertion des variables dans le HTML
                   updatehtml;
                   
            function updatehtml()   {
            if (temp) {
                $temp.text(temp + '°')
            };
             if (target) {
                $target.text(target + '°')
            };
            }
            function insertParam(key, value){
                key     = encodeURI(key);
                value   = encodeURI(value);
                var kvp = document.location.search.substr(1).split('&');
                var i   = kvp.length;
                var x;
                while(i--)  {
                    x = kvp[i].split('=');
                    if (x[0] == key) {
                        x[1] = value;
                        kvp[i] = x.join('=');
                        break;
                    }
                }
                if(i<0) {
                    kvp[kvp.length] = [key,value].join('=');
                }
                return document.location + '?' + kvp.join('&');
            }
           
           
           
            function refreshData(){
                $.get(insertParam('refresh', 1), {},
                    function(data){
                        console.log("data =",data);
                        var data = JSON.parse(data);
                        level  = data.level;
                    }
                );
            }
           
           
            function modifyLight(rgb){
               $.get(insertParam('setlevel',rgb), {}, function(){});
            }



var colorPicker = new iro.ColorPicker(".colorPicker", {
  width:   <? if ($_GET['app'] == "ios"){?>170<?}else{?>210<?}?> ,
  borderWidth: 1,
  borderColor: "#fff",
})


const type = '<? echo $type ?>';
switch (type) {
  case 'Hue':
    colorPicker.on(["input:end"], function(color){
    rgb = colorPicker.color.hsv;
    console.log(rgb);
    modifyLight(rgb);
    })
    break;
  case 'Zigate':
   colorPicker.on(["input:end"], function(color){
    level = colorPicker.color.rgbString;
    rgb = level.replace('rgb(', '').replace(/["'()]/g,"");
    console.log(rgb);
    modifyLight(rgb);
   })
    break;
    case 'deConZ':
    colorPicker.on(["input:end"], function(color){
    level = colorPicker.color.rgbString;
    rgb = level;
     console.log(rgb);
    modifyLight(rgb);
    })
    break;
  case 'Yeelight':
    colorPicker.on(["input:end"], function(color){
    level = colorPicker.color.hexString;
    rgb = level;
     console.log(rgb);
    modifyLight(rgb);
    })
    break;
    case 'Zwave':
   colorPicker.on(["input:end"], function(color){
    level = colorPicker.color.rgbString;
    rgb = level.replace('rgb(', '').replace(/["'()]/g,"");
    console.log(rgb);
    modifyLight(rgb);
   })
   
 
}




        </script>
    </body>
</html>
<?
// Si requete ajax "setLevel"
    if ($setlevel !== NULL) {
        switch ($type){
            case "deConZ":  $setlevel = str_replace(" ","", $setlevel);
                            $lvls = explode(',', $setlevel);
                            $lvls[0] = floor($lvls[0] / 2.54);
                            $lvls[1] = floor($lvls[1] / 2.54);
                            $lvls[2] = floor($lvls[2] / 2.54);
                            $setlevel = $lvls[0].','.$lvls[1].','.$lvls[2];
                            foreach($Tapi as $device){httpQuery("http://localhost/script/?exec=2B_deconz.php&vars=[VAR1]&action=PUT&json={on:true, transitiontime:!TR!, xy:[!XY!], colormode:xy}&rgb=$setlevel&use=1,0&set=1&api=$device", 'get');}
            break;
            case "Zwave":     $Tapi       = explode(",", $apis);
                            foreach($Tapi as $device){ setValue($device, $setlevel);}
            break;
            case "Zigate":     $Tapi       = explode(",", $apis);
                            foreach($Tapi as $device){ setValue($device, $setlevel);}
            break;
            case "Yeelight":     $Tapi       = explode(",", $apis);
                            foreach($Tapi as $device){httpQuery("http://localhost/script/?exec=yeelight.php&ip_or_mac=$device&time=0&command=set_rgb&value=$setlevel", 'get');}
            break;
            case "Hue":     $Tapi       = explode(",", $apis);
                            foreach($Tapi as $device){httpQuery("http://[VAR1]/api/[VAR2]/lights/[VAR3]/state/$setlevel", 'get');}
        }
           
        die('Ok');
   
    }   
?>


Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar xeos » 04 Fév 2020 22:48

Si tu veux échanger en direct je suis sur le groupe skype de merguez07
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: [Store Widget] Suite Design X

Messagepar benj70b » 04 Fév 2020 22:54

Pour les Periph http RGB type hue, deconz ou yeelight, wifi , il faudra passer par un actionneur intermediaire pour le pilotage ou sinon que l'equipe d'eedomus ajoute un "template" de type defaut sur ce type actionneur.

sinon je vais essayer de le faire fonctionner en passant en modifiant ton javascript pour faire l'appel ajax en local ou via script_proxy mais la faut gérer la redirection ;)
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [Store Widget] Suite Design X

Messagepar xeos » 04 Fév 2020 22:56

:thumbup:
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

PrécédentSuivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

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