Skip to content
Permalink
Browse files

Update zigbee2mqtt.class.php

  • Loading branch information...
directman66 committed Mar 10, 2019
1 parent c1e110f commit e6cd88409a6f04ee4a2acd487b312cf9ff8972cc
Showing with 33 additions and 24 deletions.
  1. +33 −24 modules/zigbee2mqtt/zigbee2mqtt.class.php
@@ -180,13 +180,13 @@ function childsToArray($items,$prev_path='') {
* @access public
*/
function setProperty($id, $value, $set_linked=0) {
debmes('Нужно изменить значение id='.$id.' на '.$value, 'zigbee2mqtt');
debmes('Нужно изменить значение id='.$id.' на '.$value, 'zigbee2mqtt');
debmes("SELECT * FROM zigbee2mqtt WHERE ID='".$id."'", 'zigbee2mqtt');
$rec=SQLSelectOne("SELECT * FROM zigbee2mqtt WHERE ID='".$id."'");
if (!$rec['ID'] || !$rec['PATH']) {
debmes('Не хватает данных', 'zigbee2mqtt');
debmes('Не хватает данных', 'zigbee2mqtt');
return 0;
}
@@ -232,7 +232,7 @@ function setProperty($id, $value, $set_linked=0) {
if(!$mqtt_client->connect(true, NULL,$username,$password))
{
debmes('Ошибка подключения к mqtt', 'zigbee2mqtt');
debmes('Ошибка подключения к mqtt', 'zigbee2mqtt');
return 0;
}
@@ -246,7 +246,7 @@ function setProperty($id, $value, $set_linked=0) {
if (($rec['PAYLOAD_ON'])||$rec['PAYLOAD_OFF']) {
debmes('Подменяем '.$value. " на ". $rec['PAYLOAD_ON']."/".$rec['PAYLOAD_OFF'], 'zigbee2mqtt');
debmes('Подменяем '.$value. " на ". $rec['PAYLOAD_ON']."/".$rec['PAYLOAD_OFF'], 'zigbee2mqtt');
//if (($rec['PAYLOAD_ON'])&& ($value=="1")) $json=array( $rec['METRIKA']=> $rec['PAYLOAD_ON']);
//if (($rec['PAYLOAD_OFF'])&& ($value=="0")) $json=array( $rec['METRIKA']=> $rec['PAYLOAD_OFF']);
@@ -255,15 +255,15 @@ function setProperty($id, $value, $set_linked=0) {
if ($value=="0") $json=array( $rec['COMMAND_VALUE']=> $rec['PAYLOAD_OFF']);
$jsonvalue=json_encode($json) ;
debmes('Заменили '.$value. " на ". $jsonvalue, 'zigbee2mqtt');
debmes('Заменили '.$value. " на ". $jsonvalue, 'zigbee2mqtt');
} else
{
$json=array( $rec['COMMAND_VALUE']=> $value);
$jsonvalue=json_encode($json) ;
}
debmes('Публикую zigbee2mqqtt '.$rec['PATH_WRITE'].":".$jsonvalue, 'zigbee2mqtt');
debmes('Публикую zigbee2mqqtt '.$rec['PATH_WRITE'].":".$jsonvalue, 'zigbee2mqtt');
if ($rec['PATH_WRITE']) {
@@ -300,13 +300,13 @@ function setProperty($id, $value, $set_linked=0) {
function setPropertyDevice($id, $value, $set_linked=0) {
debmes('Нужно изменить значение id='.$id.' на '.$value, 'zigbee2mqtt');
debmes('Нужно изменить значение id='.$id.' на '.$value, 'zigbee2mqtt');
debmes("SELECT * FROM zigbee2mqtt WHERE DEV_ID='".$id."'", 'zigbee2mqtt');
$rec=SQLSelectOne("SELECT * FROM zigbee2mqtt WHERE DEV_ID='".$id."'");
if (!$rec['ID'] || !$rec['PATH']) {
debmes('Не хватает данных', 'zigbee2mqtt');
debmes('Не хватает данных', 'zigbee2mqtt');
return 0;
}
@@ -352,7 +352,7 @@ function setPropertyDevice($id, $value, $set_linked=0) {
if(!$mqtt_client->connect(true, NULL,$username,$password))
{
debmes('Ошибка подключения к mqtt', 'zigbee2mqtt');
debmes('Ошибка подключения к mqtt', 'zigbee2mqtt');
return 0;
}
@@ -366,7 +366,7 @@ function setPropertyDevice($id, $value, $set_linked=0) {
if (($rec['PAYLOAD_ON'])||$rec['PAYLOAD_OFF']) {
debmes('Подменяем '.$value. " на ". $rec['PAYLOAD_ON']."/".$rec['PAYLOAD_OFF'], 'zigbee2mqtt');
debmes('Подменяем '.$value. " на ". $rec['PAYLOAD_ON']."/".$rec['PAYLOAD_OFF'], 'zigbee2mqtt');
//if (($rec['PAYLOAD_ON'])&& ($value=="1")) $json=array( $rec['METRIKA']=> $rec['PAYLOAD_ON']);
//if (($rec['PAYLOAD_OFF'])&& ($value=="0")) $json=array( $rec['METRIKA']=> $rec['PAYLOAD_OFF']);
@@ -375,15 +375,15 @@ function setPropertyDevice($id, $value, $set_linked=0) {
if ($value=="0") $json=array( $rec['COMMAND_VALUE']=> $rec['PAYLOAD_OFF']);
$jsonvalue=json_encode($json) ;
debmes('Заменили '.$value. " на ". $jsonvalue, 'zigbee2mqtt');
debmes('Заменили '.$value. " на ". $jsonvalue, 'zigbee2mqtt');
} else
{
$json=array( $rec['COMMAND_VALUE']=> $value);
$jsonvalue=json_encode($json) ;
}
debmes('Публикую zigbee2mqqtt '.$rec['PATH_WRITE'].":".$jsonvalue, 'zigbee2mqtt');
debmes('Публикую zigbee2mqqtt '.$rec['PATH_WRITE'].":".$jsonvalue, 'zigbee2mqtt');
if ($rec['PATH_WRITE']) {
@@ -429,8 +429,8 @@ function setPropertyDevice($id, $value, $set_linked=0) {
*/
function processMessage($path, $value) {
debmes('Сработал processMessage :'.$path." value:". $value.' strpos:'. strpos($path,"set"),'zigbee2mqtt');
//debmes('Сработал processMessage :'.$path." value:". $value,'zigbee2mqtt');
debmes('Сработал processMessage :'.$path." value:". $value.' strpos:'. strpos($path,"set"),'zigbee2mqtt');
//debmes('Сработал processMessage :'.$path." value:". $value,'zigbee2mqtt');
if (preg_match('/\#$/', $path)) {
return 0;
}
@@ -458,13 +458,13 @@ function processMessage($path, $value) {
//if (strpos($dev_title,"/set/")==0)
//если нет в пути параметра set, управляющие свои значения нам не нужны
//если нет в пути параметра set, управляющие свои значения нам не нужны
//if (strpos($path,"set")===false)
//debmes($path.' strpos:'. strpos($path,"set"), 'zigbee2mqtt');
if (strpos($path,"set")>0)
{
debmes('путь содержит set, его мы записывать не будем', 'zigbee2mqtt');
debmes('путь содержит set, его мы записывать не будем', 'zigbee2mqtt');
}
else
{
@@ -544,14 +544,14 @@ function processMessage($path, $value) {
if (($rec['PAYLOAD_ON'])||$rec['PAYLOAD_OFF']) {
if ($value==$rec['PAYLOAD_ON']) $newvalue=1;
if ($value==$rec['PAYLOAD_OFF']) $newvalue=0;
debmes('Заменили '.$value. " на ". $newvalue, 'zigbee2mqtt');
debmes('Заменили '.$value. " на ". $newvalue, 'zigbee2mqtt');
} else
{$newvalue=$value;}
//пишем в переменную
//пишем в переменную
// setGlobal($rec['LINKED_OBJECT'].'.'.$rec['LINKED_PROPERTY'], $newvalue, array($this->name=>'0'));
debmes('Вызываю setglobal: value:'.$rec['LINKED_OBJECT'].'.'.$rec['LINKED_PROPERTY'].' value:'. $newvalue,'zigbee2mqtt');
debmes('Вызываю setglobal: value:'.$rec['LINKED_OBJECT'].'.'.$rec['LINKED_PROPERTY'].' value:'. $newvalue,'zigbee2mqtt');
setGlobal($rec['LINKED_OBJECT'].'.'.$rec['LINKED_PROPERTY'], $newvalue, array('zigbee2mqtt'=>'0'));
}
if ($rec['LINKED_OBJECT'] && $cmd_rec['LINKED_METHOD']) {
@@ -590,6 +590,15 @@ function admin(&$out) {
$out['CYCLERUN'] = 0;
}
$permit=SQLSelectOne("select * from zigbee2mqtt where TITLE='zigbee2mqtt/bridge/config/permit_join' ");
//if $permit['VALUE']=
$out['PERMIT']=$permit['VALUE'];
$this->getConfig();
$out['MQTT_CLIENT']=$this->config['MQTT_CLIENT'];
$out['MQTT_HOST']=$this->config['MQTT_HOST'];
@@ -1286,18 +1295,18 @@ function edit_mqtt(&$out, $id) {
function propertySetHandle($object, $property, $value) {
debmes('Сработал propertySetHandle object:'.$object." property:". $property." value:". $value, 'zigbee2mqtt');
debmes('Сработал propertySetHandle object:'.$object." property:". $property." value:". $value, 'zigbee2mqtt');
$sql="SELECT * FROM zigbee2mqtt WHERE LINKED_OBJECT LIKE '".DBSafe($object)."' AND LINKED_PROPERTY LIKE '".DBSafe($property)."'";
debmes($sql, 'zigbee2mqtt');
$mqtt_properties=SQLSelect($sql);
$total=count($mqtt_properties);
debmes($object.":". $property.":". $value. ' найдено результатов '. $total, 'zigbee2mqtt');
debmes($object.":". $property.":". $value. ' найдено результатов '. $total, 'zigbee2mqtt');
if ($total) {
for($i=0;$i<$total;$i++) {
debmes('Запускаем setProperty '. $mqtt_properties[$i]['ID'].":".$value, 'zigbee2mqtt');
debmes('Запускаем setProperty '. $mqtt_properties[$i]['ID'].":".$value, 'zigbee2mqtt');
$this->setProperty($mqtt_properties[$i]['ID'], $value);
}
}
@@ -1392,7 +1401,7 @@ function get_map(){
}
debmes('Запрашиваем карту ', 'zigbee2mqtt');
debmes('Запрашиваем карту ', 'zigbee2mqtt');
@@ -1440,7 +1449,7 @@ function sendcommand($topic, $command){
}
debmes('Запрашиваем '.$topic.' '.$command, 'zigbee2mqtt');
debmes('Запрашиваем '.$topic.' '.$command, 'zigbee2mqtt');
$mqtt_client->publish($topic,$command);
$mqtt_client->close();
}

0 comments on commit e6cd884

Please sign in to comment.
You can’t perform that action at this time.