Variable mit ReadingsVal belegen

Begonnen von grappa24, 12 September 2014, 09:39:22

Vorheriges Thema - Nächstes Thema

grappa24

Hallo, ich bräuchte mal die Hilfe der Perl-Profis. Ich möchte ein Reading auslesen und über eine Variable in ein dummy schreiben:

define FBDECT_20000_temp dummy

FBCECT_20000 {
   my $temp=ReadingsVal("FBDECT_20000","temperature","");
   fhem ("set FBCECT_20000_temp $temp");
}


Mein dummy lässt sich "davon nicht beeindrucken"   :)
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

strauch

Ich hätte ein ganz anderen Ansatz (wenn es dir als Readings reicht und kein state sein muss:

attr FBDECT_20000_temp userReadings temperature {sprintf(ReadingsVal("FBDECT_20000","temperature","0"));}

Ansonsten probiere deines mal mit setstate, wenn du es als State haben willst.
FBCECT_20000 {
   my $temp=ReadingsVal("FBDECT_20000","temperature","");
   fhem ("setstate FBCECT_20000_temp $temp");
}
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

igami

Was hast du denn damit vor?

Es gibt doch auch das Modul ReadinsgProxy
http://fhem.de/commandref#readingsProxy

Ansonsten liegt der fehler doch glaube ich darin, dass es heißen muss:

FBCECT_20000 {
   my $temp=ReadingsVal("FBDECT_20000","temperature","");
   {fhem ("set FBCECT_20000_temp $temp")};
}


Gruß
Igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

justme1968

die erste frage hierbei ist immer warum soll das reading als kopie in einen dummy? in den aller meisten fällen ist das unnötig.

ansonsten ist ein ganz einfaches notify (mit der passenden regex) auf das original device und einem set <dummy device> %EVTPART1 das mittel der wahl.

user readings sind hier keine möglichkeit weil sie nur durch events im eigenen device getriggert werden.

gruss
  andre

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

grappa24

Zitat von: justme1968 am 12 September 2014, 10:02:42
die erste frage hierbei ist immer warum soll das reading als kopie in einen dummy?
Danke Andre, ich möchte "einfach nur" ein Reading aus einer FBDECT Instanz in einen floorplan platzieren
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

justme1968

#5
das geht wie oben beschrieben per notify.define FBDECT_20000_temp dummy
define myNotify notify FBCECT_20000:temperature.* set FBDECT_20000_temp %EVTPART1


ansonsten schau dir mal readingsGroup an. beispiele im forum und im wiki. damit kannst du die readings die du anzeigen willst auch formatieren. und (was bei einem einzigen reading noch nicht wirklich relevant ist) longpoll updates werden nur gemacht wenn die readingsGroup auch irgendwo angezeigt wird.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

grappa24

Damit kommt der Fehler Unknown module FBCECT_20000:temperature.*
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

justme1968

oben hat ein notify gefehlt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

grappa24

Danke Andre, genau das hab ich gesucht!
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

kvo1

Hallo Andre,
ich hatte ein ähnliche Problem und dank deiner erklärung gelöst.

Zitatdefine Zaehlerstand dummy
define myNotify notify HCN2_Gas:countsOverall.* set Zaehlerstand %EVTPART1

Ich benötige aber nur 1/10 von %EVTPART1  ! , bekommen das aber nicht hin hin , weder
%EVTPART1\./10
noch
%EVTPART1\/10 geht

:'(  schon klar das sind sicher Basic´s ... stehe dennoch auf dem Schlauch !

Danke
klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

justme1968

rechnen kannst du nur auf perl ebene. du brauchst etwas in der art:
{ fhem("set Zaelerstand ". $EVTPART1 / 10 ) }

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

kvo1

genau das war´s

define myNotify notify HCN2_Gas:countsOverall.* { fhem("set Zaehlerstand ". $EVTPART1 / 10 ) }

Danke & Gruss
klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB