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

<?
//*************************************************************************
// 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>
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();
<?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');
}
?>
Retour vers Scripts & Périphériques du store
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invité(s)