
4AA0007063102182F01150701440157038FFFB32FB4CFA023A72F4F
54AA0007063102182F01150701440157038FFFB32FB4CFA023A72F4F
54AA0007063102182F011C0501450157038FEEDA4BDBCFA023A72F4F
54AA0007063102182F011C0501450157038FEEDA4BDBCFA023A72F4F
54AA0007063102182F012C060121015703900E018002CFA023A72F4F
54AA0007063102182F012C060121015703900E018002CFA023A72F4F
54AA00070631021931012D0901A00157039006282529CFA023A72F4F
54AA00070631021930011D07018001570390154F2850CFA023A72F4F
54AA0007063102192F013B090184015703901D767A77CFA023A72F4F
54AA0007063102192F013B090184015703901D767A77CFA023A72F4F
54AA0007063102172E012F0B01B001570390139DB69ECFA023A72F4F
ohne Sonne Nachts:
54AA0007063102004501541101410157010101B2E4B3CFA023A72F4F
54AA0007063102004501541101410157010101B2E4B3CFA023A72F4F
54AA00070631020145015410013E0157010101D908DACFA023A72F4F
54AA000706310201460106020148015701010100DE01CFA023A72F4F
54AA000706310200460112020112015701010127DA28CFA023A72F4Fattr NOTIFY-NAME userattr players
attr NOTIFY-NAME players PLAYER-NAME1[,PLAYER-NAME2,PLAYER-NAME3...]gesetzt werden.Bilresa:action:.* {
# Liste der Player aus Attribut
my @targets = split(",", AttrVal("di_Bilresa_SB","players",""));
return unless @targets;
my $act = ReadingsVal("Bilresa","action","");
my $lvl255 = ReadingsNum("Bilresa","action_level",0);
# 0–255 → 0–100
my $lvl = int(($lvl255/255)*100);
$lvl = 0 if $lvl < 0;
$lvl = 100 if $lvl > 100;
# Helper-Hash für intern genutzte Speicherwerte
my $hash = $defs{"di_Bilresa_SB"};
$hash->{helper}{lastUsed} //= $targets[0];
my $last = $hash->{helper}{lastUsed};
###################################
# Double → Favoriten wechseln
###################################
if($act eq "on_double") {
my $favstr = ReadingsVal($last,"ftuiFavoritesItems","");
return unless $favstr ne "";
my @fav = split(":", $favstr);
return unless @fav;
my $current = ReadingsVal($last,"favorites","");
my $idx = 0;
for(my $i=0; $i<@fav; $i++){
if($fav[$i] eq $current){
$idx = $i;
last;
}
}
$idx = ($idx+1) % scalar(@fav);
fhem("set $last favorites $fav[$idx]");
return;
}
###################################
# Scroll → Lautstärke 0–100
###################################
if($act eq "brightness_move_to_level") {
my $current = ReadingsNum($last,"volume",-1);
if($current != $lvl) {
fhem("set $last volume $lvl");
}
return;
}
###################################
# Single → Mute Toggle
###################################
if($act eq "on" || $act eq "off") {
my $muted = ReadingsVal($last,"mute","off");
if($muted eq "on") {
fhem("set $last mute"); # Alternativ: fhem("set $last toggleMute") falls unterstützt
} else {
fhem("set $last mute");
}
return;
}
}Ist noch sehr frisch, möglicherweise buggy und sicher optimierbar. Als NARP (Nicht Annähernd Richtiger Programmierer) habe ich es mit freundlicher Unterstützung durch ChatGPT gebaut...###########################################
# IKEA Bilresa E2490 Remote
# contributed by dadoc
###########################################
name:zigbee2mqtt_IKEA_Bilresa_E2490
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
desc:IKEA Bilresa E2490 remote with dial (Matter + Zigbee)
order:L12e
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[\b]?([^/:]+)[/].*:, ? $1 : undef }
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal("DEVICE","devicetopic",AttrVal("DEVICE","readingList","")) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","devicetopic",AttrVal("DEVICE","readingList","")) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:ICON;ICON as set, defaults to control_home;{ AttrVal("DEVICE","icon","control_home") }
attr DEVICE icon ICON
attr DEVICE stateFormat Click: click Action: action
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE readingList $\DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
# Mapped Actions
attr DEVICE jsonMap \
on:on \
off:off \
on_double:on_double \
brightness_move_to_level:brightness_move_to_level
# State of dial or action
attr DEVICE stateFormat { \
ReadingsVal($name,"action","-") eq "brightness_move_to_level" \
? "scroll ".ReadingsVal($name,"action_level","-") \
: ReadingsVal($name,"action","-") \
}
attr DEVICE model IKEA_Bilresa_E2490
setreading DEVICE attrTemplateVersion 20260218
026.02.20 10:24:25 4: Signalduino868/msg READ: ␂MN;D=54AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F;N=17;R=253;␃
2026.02.20 10:24:25 4: Signalduino868 Parse_MN: Found 2-FSK Protocol id 217 length 56 RSSI = -75.5 -> vevor_7in1
2026.02.20 10:24:25 5: Signalduino868 vevor: xy=E3 E4 sum=ref=A0 len=54 data=AA00070631020E2F011804015B015703269CE3A0E4
2026.02.20 10:24:25 4: Signalduino868 ParseMN: ID=217 dmsg=W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F
2026.02.20 10:24:25 5: Signalduino868 Dispatch: W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F, test ungleich: disabled
2026.02.20 10:24:25 4: Signalduino868 Dispatch: W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F, -75.5 dB, dispatch
2026.02.20 10:24:25 5: Signalduino868: dispatch W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F
2026.02.20 10:24:25 4: Signalduino868: SD_WS_Parse protocol 217, rawData AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F
2026.02.20 10:24:25 4: Signalduino868: SD_WS_Parse decoded protocol-id 217 (Vevor7in1), sensor-id 0706
2026.02.20 10:24:25 4: Signalduino868: using longid for 0 device SD_WS_217_0706_0
2026.02.20 10:24:25 4: Signalduino868/msg READ: ␂MN;D=54AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F;N=17;R=254;␃
2026.02.20 10:24:25 4: Signalduino868 Parse_MN: Found 2-FSK Protocol id 217 length 56 RSSI = -75 -> vevor_7in1
2026.02.20 10:24:25 5: Signalduino868 vevor: xy=E3 E4 sum=ref=A0 len=54 data=AA00070631020E2F011804015B015703269CE3A0E4
2026.02.20 10:24:25 4: Signalduino868 ParseMN: ID=217 dmsg=W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F
2026.02.20 10:24:25 5: Signalduino868 Dispatch: W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F, test gleich
2026.02.20 10:24:25 4: Signalduino868 Dispatch: W217#AA00070631020E2F011804015B015703269CE3A0E4CFA023A72F4F, Dropped (1) due to short time and equal msg2026.02.20 10:29:45 4: Signalduino868/msg READ: ␂MN;D=54AA0007063102103201140301C001570279D053FB54CFA023A72F4F;N=17;R=253;␃
2026.02.20 10:29:45 4: Signalduino868 Parse_MN: Found 2-FSK Protocol id 217 length 56 RSSI = -75.5 -> vevor_7in1
2026.02.20 10:29:45 5: Signalduino868 vevor: xy=53 54 sum=ref=FB len=54 data=AA0007063102103201140301C001570279D053FB54
2026.02.20 10:29:45 4: Signalduino868 ParseMN: ID=217 dmsg=W217#AA0007063102103201140301C001570279D053FB54CFA023A72F4F
2026.02.20 10:29:45 5: Signalduino868 Dispatch: W217#AA0007063102103201140301C001570279D053FB54CFA023A72F4F, test ungleich: disabled
2026.02.20 10:29:45 4: Signalduino868 Dispatch: W217#AA0007063102103201140301C001570279D053FB54CFA023A72F4F, -75.5 dB, dispatch
2026.02.20 10:29:45 5: Signalduino868: dispatch W217#AA0007063102103201140301C001570279D053FB54CFA023A72F4F
2026.02.20 10:29:45 4: Signalduino868: SD_WS_Parse protocol 217, rawData AA0007063102103201140301C001570279D053FB54CFA023A72F4F
2026.02.20 10:29:45 4: Signalduino868: SD_WS_Parse decoded protocol-id 217 (Vevor7in1), sensor-id 0706
2026.02.20 10:29:45 4: Signalduino868: using longid for 0 device SD_WS_217_0706_0Zitat von: LaChris1980 am 18 Februar 2026, 20:23:03Ich hab nun mal nur die Bereiche "OA" und "0B" auslesen lassen.Ich weiß nicht was genau Du gemacht hast, aber Du musst den Code schon sinngemäß ändern...
Dabei sehe ich aber keine Änderungen wenn ich den Wert ändere:01000B0A1003-0A-BE0A0027028A
01000C0B1003-0B-01000C0B1003-0104370B00271003-decode: UNKNOWN Register REQUEST
#my @numbers = (1..65535);
#my $cmd = "0A" . sprintf("%04X", $indice);attr <Proxy> ASC 2
set myASC scanForShuttersattr <Proxy> ASC_CommandTemplate set $name state $pos attr <Proxy> event-on-change-reading ASC_.*,state für die Event-Erkennung!attr <Proxy> ASC_Open_Pos 100
attr <Proxy> ASC_Closed_Pos 0
attr <Proxy> ASC_Pos_Reading state