[gelöst]AttrVal und userattr

Begonnen von Wuppi68, 12 Januar 2019, 20:56:41

Vorheriges Thema - Nächstes Thema

Wuppi68

ein freundlichen moin moin in die Runde ...

habe momentan ein kleines Problem :-( AttrVal liefert keine Userattribute zurück :-( Oder ich mache was falsch.

Das Notify ist noch im Rohbau ...

List vom Code:
{
use JSON;
Log 3, "$NAME startet";
Log 3, "Evt0: $EVTPART0";
Log 3, "Event: $EVENT";
my $prefix = AttrVal($NAME, 'def_prefix', 'xxx_');
Log 3, "Prefix: $prefix";
my $device = $prefix . substr($EVTPART0, 0, length($EVTPART0)-1);
Log 3, "Device: $device";
my $room = AttrVal($NAME, 'def_room', '');
Log 3, "Room: $room";
my $decoded_json = decode_json substr($EVENT,6);
my %decoded_json = %$decoded_json;
my $key;
if (!IsDevice($device)) {
# Device existiert nicht also anlegen ;-)
fhem "define $device dummy";
fhem "attr $device room $room";
};
# $decoded_json = eval { decode_json $EVENT };
# %decoded_json = %$decoded_json;
foreach $key (keys %decoded_json) {
fhem "setreading $device $key $decoded_json{$key}";
}
}


List vom Notify:
Internals:
   .COMMAND   {
use JSON;
Log 3, "$NAME startet";
Log 3, "Evt0: $EVTPART0";
Log 3, "Event: $EVENT";
my $prefix = AttrVal($NAME, 'def_prefix', 'xxx_');
Log 3, "Prefix: $prefix";
my $device = $prefix . substr($EVTPART0, 0, length($EVTPART0)-1);
Log 3, "Device: $device";
my $room = AttrVal($NAME, 'def_room', '');
Log 3, "Room: $room";
my $decoded_json = decode_json substr($EVENT,6);
my %decoded_json = %$decoded_json;
my $key;
if (!IsDevice($device)) {
# Device existiert nicht also anlegen ;-)
fhem "define $device dummy";
fhem "attr $device room $room";
};
# $decoded_json = eval { decode_json $EVENT };
# %decoded_json = %$decoded_json;
foreach $key (keys %decoded_json) {
fhem "setreading $device $key $decoded_json{$key}";
}
}
   DEF        mqtt_ikea_devices:6.*:.\{.* {
use JSON;
Log 3, "$NAME startet";
Log 3, "Evt0: $EVTPART0";
Log 3, "Event: $EVENT";
my $prefix = AttrVal($NAME, 'def_prefix', 'xxx_');
Log 3, "Prefix: $prefix";
my $device = $prefix . substr($EVTPART0, 0, length($EVTPART0)-1);
Log 3, "Device: $device";
my $room = AttrVal($NAME, 'def_room', '');
Log 3, "Room: $room";
my $decoded_json = decode_json substr($EVENT,6);
my %decoded_json = %$decoded_json;
my $key;
if (!IsDevice($device)) {
# Device existiert nicht also anlegen ;-)
fhem "define $device dummy";
fhem "attr $device room $room";
};
# $decoded_json = eval { decode_json $EVENT };
# %decoded_json = %$decoded_json;
foreach $key (keys %decoded_json) {
fhem "setreading $device $key $decoded_json{$key}";
}
}
   NAME       mqtt_ikea_devices_notify_1
   NOTIFYDEV  mqtt_ikea_devices
   NR         12
   NTFY_ORDER 50-mqtt_ikea_devices_notify_1
   REGEXP     mqtt_ikea_devices:6.*:.\{.*
   STATE      2019-01-12 20:23:26
   TRIGGERTIME 1547321006.90051889
   TYPE       notify
   .attraggr:
   .attrminint:
   READINGS:
     2019-01-12 20:21:26   state           active
Attributes:
   def_prefix ikea_d_
   def_room   Tradfri
   room       Noty Ikea,Tradfri
   userattr   def_prefix def_room
   verbose    3


Log:
2019.01.12 20:23:14.048 3: mqtt_ikea_devices startet
2019.01.12 20:23:14.048 3: Evt0: 65560:
2019.01.12 20:23:14.048 3: Event: 65560: {"9001":"Vorraum Keller","9002":1537096189,"9054":0,"9020":1547294238,"9003":65560,"5750":2,"9019":1,"3":{"6":1,"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS clear 950lm","2":"","3":"1.2.217"},"3311":[{"5850":1,"5851":127,"5717":0,"5711":370,"5709":29969,"5710":26804,"5706":"f1e0b5","9003":0}]}
2019.01.12 20:23:14.048 3: Prefix: xxx_
2019.01.12 20:23:14.048 3: Device: xxx_65560
2019.01.12 20:23:14.048 3: Room:
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

rudolfkoenig

Jetzt muesste noch jemand zeigen, dass fuer mqtt_ikea_devices def_room gesetzt ist.
Dass def_room fuer mqtt_ikea_devices_notify_1 gesetzt ist, zaehlt nicht.
Uebrigens: AttrVal kennt keine Unterschiedung zwischen Userattribute und Andere.

Wuppi68

Zitat von: rudolfkoenig am 12 Januar 2019, 21:06:33
Jetzt muesste noch jemand zeigen, dass fuer mqtt_ikea_devices def_room gesetzt ist.
Dass def_room fuer mqtt_ikea_devices_notify_1 gesetzt ist, zaehlt nicht.
Uebrigens: AttrVal kennt keine Unterschiedung zwischen Userattribute und Andere.

LoL ... sag ich doch mein Fehler  .... war ein wenig "Betriebsblind"

$NAME durch $SELF ersetzt :-)

D a n k e
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen