Hier ist ein Patch. Ungetestet, da ich keine Gassensoren habe.
Plus bedeutet Zeile dazu, Minus Zeile geht weg.
diff --git a/scripts/cun/CUL_RegVar.php b/scripts/cun/CUL_RegVar.php
index 72f0f88..5edcdbc 100644
--- a/scripts/cun/CUL_RegVar.php
+++ b/scripts/cun/CUL_RegVar.php
@@ -110,6 +110,7 @@ elseif ($IPS_SENDER == "RegisterVariable")
// E0101E2997805002F02
$type=substr($line,2,1);
$addr=substr($line,3,2);
+ $addr_num=hexdec($addr);
$catname='EM1010CUL';
$sensorname='EM1010 Sensor';
$vartypes=array( 'ID'=>array('type'=>3,'profile'=>''),
@@ -140,19 +141,19 @@ elseif ($IPS_SENDER == "RegisterVariable")
corr2 is the correction factor for energy
*/
$cfnew=(($cf1==0)||($cf2==0));
- if($addr >= 1 && $addr <= 4) { // EMWZ: nRotation in 5 minutes
+ if($addr_num >= 1 && $addr_num <= 4) { // EMWZ: nRotation in 5 minutes
$cf1 = ($cf1 ? $cf1 : 150); //Zählerkonstanzte U/kwh
$cf2 = ($cf2 ? $cf2 : 150);
$corr1=12/$cf1;
$corr2=1/$cf2;
- } elseif ($addr >= 5 && $addr <= 8) { // EMEM
+ } elseif ($addr_num >= 5 && $addr_num <= 8) { // EMEM
$cf1 = ($cf1 ? $cf1 : 0.01);
$cf2 = ($cf2 ? $cf2 : 0.001);
$corr1=$cf1;
$corr2=$cf2;
- } elseif($addr >= 9 && $addr <= 12) { // EMGZ: 0.01
+ } elseif($addr_num >= 9 && $addr_num <= 12) { // EMGZ: 0.01
$cf1 = ($cf1 ? $cf1 : 0.01);
$cf2 = ($cf2 ? $cf2 : 0.01);
$corr1=$cf1;
Tommi