Zitat von: Ralli am 01 Februar 2026, 19:47:07Das ist schon klar. Aber es wird einmal an der 191 und einmal an der 181 ein Callback registriert.
define Frank_Handy UnifiClient Xiaomi-13
attr Frank_Handy event-on-change-reading .*
attr Frank_Handy oldreadings presence
attr Frank_Handy stateFormat {ReadingsVal($name,"presence","absent") eq "absent" ? "absent since ".ReadingsVal($name,"_f_last_seen","") : "present since ".ReadingsVal($name,"_f_uptime","")}
attr Frank_Handy userReadings presence:fhem_state.* {(ReadingsVal($name,'fhem_state','disconnected') eq 'disconnected' ? 'absent' : 'present') }
# CODE Xiaomi-13
# DEF Xiaomi-13
# FUUID 694dc6f0-f33f-9ecb-fd42-84f8e7d03641f4f0
# IODev UX7
# LASTInputDev UX7
# MODEL Xiaomi Communications Co Ltd
# MSGCNT 7718
# NAME Frank_Handy
# NOTIFYDEV global
# NR 613
# STATE present since 0d 0h 11m 42s
# TYPE UnifiClient
# UX7_MSGCNT 7718
# UX7_TIME 2026-02-02 08:42:18
# VERSION 0.0.3 BETA
# eventCount 7718
# OLDREADINGS:
# 2026-02-02 08:28:38 presence absent
# READINGS:
[...]
setstate Frank_Handy 2026-02-02 08:30:48 presence present
[...]
{
if(["^.*_Handy$:presence" eq present])
{
fhem("msg push $device: present");
}
elsif(["^.*_Handy$:presence" eq absent])
{
fhem("msg push $device: absent");
}
}
{
if(["^.*_Handy$:presence"])
{
fhem("msg push $device: $event");
}
}
Dann triggert es, aber in $event stehen etliche readings, statt nur "absent" oder "present".2026-02-02 08:48:20 msgConfig globalMsg fhemMsgPush: Frank_Handy: _f_diff_tx_bytes: 0,fhem_state: disconnected,network_members_group_ids: ARRAY(0x5e21e7f103e8),last_ipv6: ARRAY(0x5e21e79eaff8),_f_last_seen_duration: 0d 0h 0m 46s,satisfaction_avg: HASH(0x5e21e79e1b28),ipv6_addresses: ARRAY(0x5e21e8a85340),presence: absent
bzw:2026-02-02 08:49:59 msgConfig globalMsg fhemMsgPush: Frank_Handy: _f_last_seen: 2026-02-02 08:49:51,satisfaction: 99,tx_bytes: 182,_f_uptime: 0d 0h 0m 22s,uptime: 22,_uptime_by_uap: 22,tx_rate: 1201000,_f_assoc_time: 32d 7h 49m 29s,satisfaction_real: 99,wifi_tx_attempts: 99,_f_last_seen_duration: 0d 0h 0m 8s,rssi: 38,_last_seen_by_uap: 1770018591,_f_uptime_by_uap: 0d 0h 0m 22s,rx_bytes: 414,satisfaction_avg: HASH(0x5e21e7a42780),_f_last_seen_by_uap: 2026-02-02 08:49:51,ipv6_addresses: ARRAY(0x5e21e8c71598),satisfaction_reason: 2048,fhem_state: connected,_f_diff_tx_bytes: -20017,assoc_time: 1770018569,wifi_tx_retries_percentage: 10,network_members_group_ids: ARRAY(0x5e21e7ef6448),signal: -56,dhcpend_time: 230,latest_assoc_time: 1770018569,rx_packets: 5,_f_latest_assoc_time: 2026-02-02 08:49:29,last_ipv6: ARRAY(0x5e21e87be430),last_seen: 1770018591,tx_packets: 1,_f_dhcpend_time: 0d 0h 3m 50s,disconnect_timestamp: 1770018487,ccq: 819,tx_retries: 11,presence: present
ZitatHast Du auch mal meine Version von 70_DENON_AVR ausprobiert?Nein.
Zitat von: rudolfkoenig am 01 Februar 2026, 18:04:44Erwartungsgemaess ist das nicht: FHEMWEB stellt anhand diesen Suffixen fest, welches Widget gewuenscht ist.Die Widgetwahl funktioniert ja auch wie erwartet. Aber der usage-String hat ja auch die "Bedeutung" als Fehlermeldungstext. Und da sollte m.E.n. die Widget-Suffixe weggestrippt werden und NICHT als Text mit angezeigt werden. Beim Set ist das auch so, nur eben nicht bem Get.
Wenn nichts angegeben ist, wird ein simples Textfeld angeboten.
Zitat von: rudolfkoenig am 01 Februar 2026, 18:15:55Generell: der Wert ders Widgets wird aus einem Reading mit dem gleichen Namen ausgelesen.Genau so hatte ich's auch verstanden. Aber im Modul DENON_AVR ist's nunmal vom ursprünglichen Autor anders implementiert worden (hab's ohne wirklichen Erfolg mal testweise geändert).
Zitat von: Prof. Dr. Peter Henning am 28 Januar 2026, 03:37:44Hast Du das Rauslöschen aus der App und neu anlernen/hinzufügen schon versucht?Zitat von: Gisbert am 27 Januar 2026, 13:52:36Bekommst du gar keine Readings mehr, oder nur keine Readings von den neu hinzugefügten Datenpunkten?
Na, das Problem ist etwas schwerwiegender. Denn ich bekomme keinerlei Readings, weder vorher noch nachher.
LG
pah
Zitat von: sash.sc am 01 Februar 2026, 20:20:02Habe eigentlich gehofft es ein bisschen einfacher bzw kürzer machen zu können.
([#min:"":"E10"] < 1.70)([@:"":"E10":$_< 1.70)([#:"":"E10":$_< 1.70)([@:a"TS_":"E10":$_< 1.70)