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 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.
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