Readings verschiedener Geräte addieren

Begonnen von Nobby1805, 29 März 2018, 13:24:11

Vorheriges Thema - Nächstes Thema

eisman

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

Nobby1805

Zitat von: Otto123 am 29 März 2018, 18:18:15
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.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

stefan.apetz

#17
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 :-)

frank

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

stefan.apetz

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 :-)

NewbieNew

Guten Morgen,
ich hoffe, es ist ok, wenn ich hier frage:

Zitat von: Otto123 am 29 März 2018, 13:39:24Hi,

set dummy {([dev1:power]+[dev2:power])}
Gruß Otto

Wie kann ich die Summe des dummy aktuell halten? Einmal erstellt, bleibt sie Summe so und aktualisiert sich nicht.

Besten Dank

Otto123

Guten Morgen,

diesen Befehl immer wieder ausführen: ein at Zeitgesteuert, ein notify Event gesteuert.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

juemuc

3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).