[gelöst] AttrVal in Readingsgroup

Begonnen von TWART016, 09 März 2021, 17:37:35

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: TWART016 am 11 März 2021, 23:18:25
Ich möchte nicht nur alle Geräte mit dem Reading group angezeigt bekommen, sondern nur wenn attr group einen bestimmten Werte hat.

Bei Otto geht es um model, bei mir um Abfall.
...und was passiert, wenn du in dem Vorschlag dann eben das Attribut abfragst, dass du eigentlich haben willst...?defmod test_rg readingsGroup group=Abfall:?group

(Die weiterführenden Hinweise von frank solltest du dir m.E. auch näher ansehen...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TWART016

Zitat von: Beta-User am 12 März 2021, 07:41:31
...und was passiert, wenn du in dem Vorschlag dann eben das Attribut abfragst, dass du eigentlich haben willst...?defmod test_rg readingsGroup group=Abfall:?group
Damit wird mir nichts angezeigt.

Bei Frank seinen Vorschlägen werden mit alle Geräte mit dem Attribut group aufgelistet, aber nicht gefiltert nach dessen Inhalt.

Beta-User

Zitat von: TWART016 am 12 März 2021, 09:35:24
Damit wird mir nichts angezeigt.
...und "nichts" kommt dir nicht seltsam vor, obwohl die devspec ja offenbar matches liefern müßte...?

Einen Browser-Refresh hattest du versucht?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

@Beta-User Dieser devspec group=Abfall funktioniert bei mir nicht! Der devspec TYPE= funktioniert!

da ich keine Lust habe mit group zu experimentieren meine Beispiel mit model (mach ich nur um hier zu helfen)  ;) nicht weil es bei mir um "model geht"
Funktioniert:
TYPE=MQTT2_DEVICE:a:model
Funktioniert nicht:
model=sonos2mqtt_speaker:a:model
model=sonos2mqtt_speaker:?model
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

otto, du musst dir die cref anschauen.  ;)

model&sonos2mqtt_speaker:a:model
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

funktioniert :)
Ich habe ja gesagt ich verstehe es nicht. Aber Du meinst in der cref steht: Ober sticht Unter? Oder drüber zählt mehr als drunter?
Zitat<device> can be of the form ATTRIBUTE&VALUE where ATTRIBUTE is the name of an attribute and VALUE is a regex.
<device> can be of the form <STRING> or <{perl}> where STRING or the string returned by perl is inserted as a line in the readings list. skipped if STRING is undef.
<device> can be a devspec (see devspec) with at least one FILTER expression.
denn modell=sonos2mqtt_speaker ist für mich gültiges devspec  :-\
Zitata NAME=VALUE pair, where NAME can be an internal value like TYPE, a Reading-Name or an attribute.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

Zitat<device> can be a devspec (see devspec) with at least one FILTER expression.
wenn man das so auslegt, dass genau ein FILTER da sein muss, dann funktioniert es wieder.  :)

model=sonos2mqtt_speaker:FILTER=STATE=.*:?model
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

Zitat von: Otto123 am 12 März 2021, 11:58:35
bei mir nicht :(
hast du genau mein beispiel probiert, oder wieder deine spezial variante mit "a:model"?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

was denkst Du von mir  :o
natürlich genau Deinen Vorschlag:
Internals:
   CFGFN     
   DEF        model=sonos2mqtt_speaker:FILTER=STATE=.*:?model
   FUUID      6049ec83-f33f-18bf-7714-6c272089b0962805
   NAME       test_rg
   NR         11128
   NTFY_ORDER 50-test_rg
   STATE      Initialized
   TYPE       readingsGroup
   changed    0
   mayBeVisible 1
   CONTENT:
   CONTENT2:
   DEVICES:
   fhem:
     lastDefChange 61
     last_update 1615546623.26233
   helper:
     DEF       
Attributes:
vsInternals:
   CFGFN     
   DEF        model&sonos2mqtt_speaker:?model
   FUUID      6049ec83-f33f-18bf-7714-6c272089b0962805
   NAME       test_rg
   NR         11128
   NTFY_ORDER 50-test_rg
   STATE      Initialized
   TYPE       readingsGroup
   changed    0
   mayBeVisible 1
   CONTENT:
     MQTT2_RINCON_000E586BE2A201400 1
     MQTT2_RINCON_000E58F42D5201400 1
     MQTT2_RINCON_347E5C82560801400 1
     MQTT2_RINCON_48A6B8195BE801400 1
     MQTT2_RINCON_48A6B8195CFA01400 1
     MQTT2_RINCON_7828CA0CB0F201400 1
     MQTT2_RINCON_7828CA6D23AC01400 1
     MQTT2_RINCON_B8E93743FCBE01400 1
   CONTENT2:
   DEVICES:
     ARRAY(0x3a9bbb0)
     ARRAY(0x39f02f0)
     ARRAY(0x3ae59e8)
     ARRAY(0x37a1638)
     ARRAY(0x37499c0)
     ARRAY(0x396ff98)
     ARRAY(0x39d1580)
     ARRAY(0x37730e8)
   fhem:
     lastDefChange 62
     last_update 1615549094.14878
   helper:
     DEF       
     positions:
       MQTT2_RINCON_000E586BE2A201400.model 1:1
       MQTT2_RINCON_000E58F42D5201400.model 2:1
       MQTT2_RINCON_347E5C82560801400.model 3:1
       MQTT2_RINCON_48A6B8195BE801400.model 4:1
       MQTT2_RINCON_48A6B8195CFA01400.model 5:1
       MQTT2_RINCON_7828CA0CB0F201400.model 6:1
       MQTT2_RINCON_7828CA6D23AC01400.model 7:1
       MQTT2_RINCON_B8E93743FCBE01400.model 8:1
     values:
       formated:
         undef
         ARRAY(0x39efe40)
       orig:
         undef
         ARRAY(0x3a8ef80)
       prefixsuffix:
         undef
         ARRAY(0x3729bf0)
Attributes:
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

seltsam...
bei mir geht auch das einwandfrei (habe keine sonos):

defmod rg_test readingsGroup <device>,<alias>,<model> \
model=VIRTUAL:FILTER=STATE=.*:a:alias,a:model
attr rg_test mapping $DEVICE
attr rg_test nameStyle style="color:yellow"
attr rg_test room 01_Test
attr rg_test valueColumn {"alias" => 1, "model" => 2}
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

kann ich bestätigen - Deine DEF geht auch bei mir  :o
Mal sehen was TWART016 dazu sagt, ob diese Idee mit seiner group funktioniert?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

DeeSPe

#27
Zitat von: frank am 12 März 2021, 12:44:23
seltsam...
bei mir geht auch das einwandfrei (habe keine sonos):

defmod rg_test readingsGroup <device>,<alias>,<model> \
model=VIRTUAL:FILTER=STATE=.*:a:alias,a:model
attr rg_test mapping $DEVICE
attr rg_test nameStyle style="color:yellow"
attr rg_test room 01_Test
attr rg_test valueColumn {"alias" => 1, "model" => 2}


Wofür ist dieser Teil ":FILTER=STATE=.*"?
Da es jeden STATE erfasst kann man das doch ganz getrost weg lassen, oder täusche ich mich?
Klappt nämlich auch ohne den Teil bei mir.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Otto123

Ohne klappt es eben nicht:
Internals:
   CFGFN     
   DEF        <device>,<alias>,<model>
model=VIRTUAL:a:alias,a:model
   FUUID      604b5698-f33f-520c-0d92-478e0b89b93bace0
   NAME       rg_test
   NR         1615461
   NTFY_ORDER 50-rg_test
   STATE      Initialized
   TYPE       readingsGroup
   changed    0
   mayBeVisible 1
   CONTENT:
   CONTENT2:
   DEVICES:
     ARRAY(0x6463400)
   fhem:
     lastDefChange 216
     last_update 1615550167.24787
   helper:
     DEF       
Attributes:
versus mit Internals:
   CFGFN     
   DEF        <device>,<alias>,<model>
model=VIRTUAL:FILTER=STATE=.*:a:alias,a:model
   FUUID      604b5698-f33f-520c-0d92-478e0b89b93bace0
   NAME       rg_test
   NR         1615461
   NTFY_ORDER 50-rg_test
   STATE      Initialized
   TYPE       readingsGroup
   changed    0
   mayBeVisible 1
   CONTENT:
     Rauchmelder_Team 1
     TeamDev1   1
   CONTENT2:
   DEVICES:
     ARRAY(0x6465b40)
     ARRAY(0x54bc538)
     ARRAY(0x6923f60)
   fhem:
     lastDefChange 217
     last_update 1615552895.82281
   helper:
     DEF       
     positions:
       Rauchmelder_Team.model 2:1
       TeamDev1.model 3:1
     values:
       formated:
         undef
         ARRAY(0x5907328)
       orig:
         undef
         ARRAY(0x5e356e0)
       prefixsuffix:
         undef
         ARRAY(0x69a6808)
Attributes:
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

ZitatWofür ist dieser Teil ":FILTER=STATE=.*"?
Da es jeden STATE erfasst kann man das doch ganz getrost weg lassen, oder täusche ich mich?

damit readingsgroup devspec2array benutzt.

      if( $device[1] && $device[1] =~ m/^FILTER=/ ) {
        my @device = split(":", $param);                # split all to get multiple FILTER but exclude the : before the readings
        my $devspec = shift(@device);
        while( @device && $device[0] =~ m/^FILTER=/ ) {
          $devspec .= ":";
          $devspec .= shift(@device);
        }
        my $regex =  join(':', @device);                # merge the rest back again
        foreach my $d (devspec2array($devspec)) {
          $list{$d} = 1;
          push @devices, [$d,$regex];
        }

      } elsif($device[0] =~ m/^<.*>$/) {


Zitat<device> can be a devspec (see devspec) with at least one FILTER expression.


trotzdem ist das buggy, denn die anzahl der doppelpunkte ist entscheidend.
manche devspec ohne FILTER werden über spezialfälle behandelt und funktionieren dann eben auch.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html