Moin,
schon ein älteres Thema, aber ich greife es nochmal auf.
Folgende Definition:
defmod SolarPower notify Shelly_Gartenhaus:power:.*|Shelly_Solar_Garage:power:.*|solax:pv_total_power:.*|solax:home_power:.*|solax:battery_remain_capacity:.*|solax:grid_feed_in_power:.* {
my $power1 = ReadingsVal("Shelly_Gartenhaus","power",0);;
my $power2 = ReadingsVal("Shelly_Solar_Garage","power",0);;
my $power3 = ReadingsVal("solax","pv_total_power",0);;
my $power = 0;;
$power = $power1 + $power2 + $power3;;
my $consumption1 = ReadingsVal("solax","home_power",0);;
my $consumption2 = ReadingsVal("Shelly_Solar_Garage","power",0);;
my $consumption3 = ReadingsVal("Shelly_Gartenhaus","power",0);;
my $houseConsumption = 0;;
$houseConsumption = $consumption1 + $consumption2 + $consumption3;;
my $batteryPower = ReadingsVal("solax","battery_power",0);;
my $battery_remain_capacity = ReadingsVal("solax","battery_remain_capacity",0);;
my $inverter_powerexported = ReadingsVal("solax","grid_feed_in_power",0);;
$consumption1 = "Test";;
fhem("setreading virtualSolar home_power" . "$consumption1");;
fhem("setreading virtualSolar pv_total_power" . $power . ";;");;
fhem("setreading virtualSolar battery_remain_capacity" . $battery_remain_capacity . ";;");;
fhem("setreading virtualSolar battery_power" . $batteryPower . ";;");;
fhem("setreading virtualSolar grid_feed_in_power" . $inverter_powerexported . ";;");;
fhem("setreading virtualSolar test 12345678");;
}
In meinem Zieldevice wird das Reading test mit 12345678 richtig geschrieben. Das auch bei jedem Notify. Aber: alle andere kommt nicht an. Sprich: das setreading wird nicht ausgeführt.
Das Log schmeisst zudem folgendes:
2022.11.22 09:21:46 1: PERL WARNING: "my" variable $consumption1 masks earlier declaration in same scope at (eval 478) line 1.
2022.11.22 09:21:46 1: PERL WARNING: Use of uninitialized value $consumption1 in concatenation (.) or string at (eval 478) line 1.
Wo ist mein (Denk-) Fehler?
Danke :-)