FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: macfly am 30 Dezember 2017, 13:08:10

Titel: [Gelöst] ReadingsVal aus Perl geht nicht, InternalVal wohl ?
Beitrag von: macfly am 30 Dezember 2017, 13:08:10
Hi,

ich programmiere gerade eine Anwesenheitskontrolle (mittels DOIF wird aus den unifi-modul das last_seen ausgewertet), die Stati funktionieren alle perfekt. Die Stati werden einem Dummy zugewiesen, die als userattr noch "name" besitzen, die die Kurzform des Namens hat.
ein presence-dummy heißt z.B. Person.Friedhelm, hat als userattr noch name=Friedhelm, damit ich das später schick machen kann.



Nun möchte ich das ganze in meinen TelegramBot einbauen, dazu habe ich einen Befehl "/personen" definiert und so implementiert:

if($msgText eq "/personen"){
my @persons = devspec2array("Person.*");
my $msg = "Personen:\n";
if (@persons > 0 and defined($defs{$persons[0]})){
  foreach (@persons){
my $presence = InternalVal($_, "STATE", undef);
my $id = InternalVal($_, "NAME", undef);
my $person = ReadingsVal($_, "name", "nobody");
$msg .= "$person ($id) is $presence\n";;
}
}
fhem_bot_response("$msg\n","/hauptmenue");
}


als Antwort bekomme ich immer:

nobody (Person.Friedhelm) is present (oder absent).

wieso klappt das auslesen des userattr nicht?

hier mal ein Dump meines dummys:

defmod Person.Friedhelm dummy
attr Person.Friedhelm userattr name
attr Person.Friedhelm name Friedhelm
attr Person.Friedhelm room Personen


oder hab ich irgendwo ein Denkfehler?

vielen Dank,
Friedhelm
Titel: Antw:ReadingsVal aus Perl geht nicht, InternalVal wohl ?
Beitrag von: Otto123 am 30 Dezember 2017, 13:18:37
Hallo Friedhelm,

wie der Name schon sagt ->
AttrVal für attr
ReadingsVal für Readings
;D
Gruß Otto
Titel: Antw:ReadingsVal aus Perl geht nicht, InternalVal wohl ?
Beitrag von: macfly am 30 Dezember 2017, 16:35:12
Kaum macht man's richtig, funktionierts ..  ;D

Ich überleg, ob ich dafür nicht einen wrapper baue, das ist ja furchtbar nervig, 3 Methoden, um "eigenschaften" von "sachen" auszulesen ..

Dank dir!
Titel: Antw:ReadingsVal aus Perl geht nicht, InternalVal wohl ?
Beitrag von: KernSani am 30 Dezember 2017, 16:37:10
Sind ja unterschiedliche "Sachen" ;-) Setzt du auf "gelöst"? (Subject des ersten Posts editieren und [Gelöst] vorne dran schreiben)



Titel: Antw:[Gelöst] ReadingsVal aus Perl geht nicht, InternalVal wohl ?
Beitrag von: Otto123 am 30 Dezember 2017, 18:37:34
so unterschiedlich kann man es sehen - ich finde es logisch. Und ich habe es nicht gemacht  ;D