Autor Thema: Readings verschiedener Geräte addieren  (Gelesen 6425 mal)

Offline eisman

  • Full Member
  • ***
  • Beiträge: 383
Antw:Readings verschiedener Geräte addieren
« Antwort #15 am: 29 März 2018, 19:26:38 »
hi,

userReadings powersume {ReadingsVal("ST01C2","power",0) + ReadingsVal("ST01C2","power",0)}

oder notify

defmod nPower notify ST01C2:power:.*|ST01C2:power:.* {\
   my $power1 = ReadingsVal("ST01C2","power",0);;\
   my $power2 = ReadingsVal("ST01C2","power",0);;\
   my $power  = 0;;\
   $power = $power1 + $power2;;\
   fhem("set Power " . $power . ";;");;\

ST01C2 device
Power dummy

bei mir gehts (aufwand 1min)

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee        / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                           / 1X Raspberry, i2c,onewire,gpio

1x auf Windows 2012 Hyper-V-S

Offline Nobby1805

  • Sr. Member
  • ****
  • Beiträge: 699
Antw:Readings verschiedener Geräte addieren
« Antwort #16 am: 29 März 2018, 19:49:59 »
Von mir aus schreib doch jetzt in den Ausführungsteil an statt set ActionDetector
setreading PowerNotify SummPower {([Aqua_Pwr:power]+[Buero_Pwr:power])}
Und poste bitte keine Screenshots sonders list ....
Ich meine zwar, dass mein 2. oder 3. Versuch genau so aussah ... aber jetzt klappt es

Danke an alle Helferlein  ;D
FHEM-Featurelevel: 6   (fhem.pl:23904/2021-03-07) auf Windows 10 Pro mit Strawberry Perl 5.26.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Offline stefan.apetz

  • Jr. Member
  • **
  • Beiträge: 50
  • fhem - geil, aber da geht noch was :-)
Antw:Readings verschiedener Geräte addieren
« Antwort #17 am: 22 November 2022, 09:35:24 »
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 :-)
« Letzte Änderung: 22 November 2022, 09:38:00 von stefan.apetz »

Offline frank

  • Hero Member
  • *****
  • Beiträge: 11279
Antw:Readings verschiedener Geräte addieren
« Antwort #18 am: 22 November 2022, 10:00:11 »
da fehlen leerzeichen zwischen readingname und value.
bsp:
fhem("setreading virtualSolar pv_total_power $power");;
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline stefan.apetz

  • Jr. Member
  • **
  • Beiträge: 50
  • fhem - geil, aber da geht noch was :-)
Antw:Readings verschiedener Geräte addieren
« Antwort #19 am: 22 November 2022, 11:19:04 »
Danke, hat geklappt. Lässt sich ja auch einfacher / schöner darstellen:

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 $hausverbrauch1 = ReadingsVal("solax","home_power",0);;
   my $hausverbrauch2 = ReadingsVal("Shelly_Solar_Garage","power",0);;
   my $hausverbrauch3 = ReadingsVal("Shelly_Gartenhaus","power",0);;
   
   my $houseConsumption = 0;;
   
   $houseConsumption = $hausverbrauch1 + $hausverbrauch2 + $hausverbrauch3;;

   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);;
   
   
   
   fhem("setreading virtualSolar home_power $houseConsumption");;
   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 ");;
   }

Jetzt hab ich alles korrekt in meinem Dummy Device :-)