Einfache Frage (Vermutlich doch nicht, oder doch ein Bug? ....) ;)

Begonnen von raiderxxl, 15 Mai 2020, 13:02:38

Vorheriges Thema - Nächstes Thema

raiderxxl

Hi,

ich habe eine RG in der ich mir alle Batteriewerte anzeigen lasse:
.*:battery

Passt...

jetzt möchte ich mir zu diesen Devices auch noch das Reading reachable anzeigen (wenn vorhanden) lassen.
(Laut Commandrev. Zweites Reading durch Komma getrennt.)
Also so: .*:battery,reachable
Nun werden mir aber alle Geräte angezeigt die das reading battery oder reachable haben ...


Hab ich was Überlesen oder geht das nicht... :)

Grüßle

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

Beta-User

Handelt es sich nicht an der Stelle um eine devspec?

Dann sollte es - wie üblich - so gehen:
.*:(battery|reachable)

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

raiderxxl

Hallo Beta-User,
leider nein jetzt erscheinen die Geräte mehrfach untereinander :-)

Grüßle

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

Beta-User

Ah, ok, da war doch was...

Da gab es das "!", falls man eventuell nicht vorhandene Readings anzeigen lassen will. Versuch's mal so:
.*:battery,!reachable
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

raiderxxl

 :o jetzt zeigt die RG ALLE Geräte an... ich meine wirklich ALLE :-)

Grüßle

FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

Beta-User

Hmm, ist ja eigentlich logisch, wenn vorne die regex entsprechend großzügig ist. Dann kann ich leider im Moment auch nicht weiter helfen :( .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

flummy1978

Holla,

bin zwar kein readingsgroup Experte, aber imho hast Du es schon richtig gehabt:  .*:battery,reachable findet alle Geräte die das Reading battery haben ... zusätzlich nimmt er das Reading reachable dazu.

valueColumn { battery => 1, reachable=> 2}

fehlt dann noch, dann sollte er die Devices mit beiden Readings in eine Spalte batterie und andere reachable anzeigen. Wenn beides nicht vorhanden ist, dann nur das battery, das reachable sollte dann nicht angezeigt werden.

Aber wie Beta-User schon schrieb, musst Du auf die Auswahl der Devices achten. Wenn diese ".*:battery,reachable" lautet, findet er alle geräte die ein battery Reading haben. Ein Battery Reading findet er z.B. nicht ;)

Vielleicht interessiert Dich meine Readingsgroup dazu, die eine ähnliche Funktion hat: 

Alle Geräte mit Netzwerk (Geräte die Activity,LWT oder ein timestamp Reading haben) werden aufgelistet, darin werden dann Geräte mit linkquality oder Wifi_RSSI in die zweite Spalte geschoben (falls vorhanden) und battery oder Battery readings (falls vorhanden) in die dritte Spalte. Funktioniert soweit ganz gut :)
   

<Gerät>,<Netzwerk>,<Verbindung>,<Batterie> .*:(Activity|LWT|timestamp),(linkquality|Wifi_RSSI),[Bb]attery


Die entsprechenden Icons und Anzeigen kommen dann später dazu, aber erstmal willst Du sicher die Anzeige so haben wie sie sein soll... vielleicht hiflt das ja :)

Grüße
Andreas

raiderxxl

Hallo Andreas,

Danke für deine ausführliche Erläuterung!
Die Spaltenzuordung hab ich eingefügt Klasse!

Trotzdem werden noch Geräte angezeigt die kein Reading battery haben sonder nur reachable...
Ich kenne die ,,[B][b]attery" Schreibweise...

Komisch...
Dankeschön und ein schönes Wochenende...


Hier mal mein raw Export

defmod rg_battery_prz_no readingsGroup *.:battery,reachable
attr rg_battery_prz_no DbLogExclude .*
attr rg_battery_prz_no alias Batteriestatus
attr rg_battery_prz_no group Batteriestatus
attr rg_battery_prz_no mapping %ALIAS
attr rg_battery_prz_no noheading 1
attr rg_battery_prz_no notime 1
attr rg_battery_prz_no room FHEM->Systemstatus
attr rg_battery_prz_no sortDevices 1
attr rg_battery_prz_no valueColumn { battery => 1, reachable=> 2}
attr rg_battery_prz_no valueFormat {return "0" if( $VALUE eq "0" );; return "1" if( $VALUE eq "1" );;return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );;return "100" if( $VALUE > "50");; return "50" if( $VALUE > "30");; return "0" if( $VALUE < "20" )}
attr rg_battery_prz_no valueIcon {'reachable.0' => 'security@red','reachable.1' => 'security@green','battery.0' => 'measure_battery_0@red','batteryPercent.0' => 'measure_battery_0@red','battery.100' => 'measure_battery_100@green','batteryPercent.100' => 'measure_battery_100@green','batteryPercent.50' => 'measure_battery_50@orange',,'battery.50' => 'measure_battery_50@orange'}
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

flummy1978

Bitte Gern  :) .... Schön wenn es geholfen hat ... aber der Rest ist dennoch merkwürdig, wobei:

wie gesagt, kein Experte, eher laienhafter Versuch zu helfen ;)
Zitat von: raiderxxl am 16 Mai 2020, 10:02:57
attr rg_battery_prz_no valueFormat {return "0" if( $VALUE eq "0" );; return "1" if( $VALUE eq "1" );;return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );;return "100" if( $VALUE > "50");; return "50" if( $VALUE > "30");; return "0" if( $VALUE < "20" )}
Hier könnte imho der Grund liegen. Wenn Du return "0" if( $VALUE eq "0" ) machst, könnte er ein Gerät anzeigen, dessen battery Wert 0 ist (ist ja nicht da also 0).

Wenn Du es richtig haben willst, würde ich an Deiner Stelle einmal Value Icon und Format löschen, dann siehst Du die Ausgabe der RG und somit auch welche Readings bei reachable gelesen werden, so dass er dann das Gerät anzeigt. Danach kannst Du Dich dann Schritt für Schritt an die Anzeigen rantasten

Abgesehen dasvon kannst Du den Teil:
return "0" if( $VALUE eq "0" );; return "1" if( $VALUE eq "1" );;
weglassen weil die Routine keine 0 ausgeben muss, wenn der Wert 0 ist und 1 bei Wert 1 --> Denn das ist ja bereits der Wert.
Zudem als Tipp von mir (weil ich mir damit selbst schon mal n Beinchen gestellt hab):
nimm lieber eindeutige Dinge in der Definition also lieber

{return "batt_low" if( $VALUE eq "0" );; return "batt_high" if( $VALUE eq "1" );;.......
Oder auch
{return "batt_0" if( $VALUE eq "0" );; return "batt_1" if( $VALUE eq "1" );;.......


statt 1 und 0. Das erleichtert bei der Fehlersuche schon ungemein. Weiter hinten auch

return "batt_high(1)" if( $VALUE >= 50);;

dann brauchst Du in Valueicon nur ein Icon für Batterie > 50 und musst nur dieses zuordnen, die restlichen machst Du dann separat.

VG
Andreas

raiderxxl

Hi

Die Attribute hab ich natürlich auch schon gelöscht... kein unterschied.

Grüße

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

raiderxxl

Hier mal zum nachstellen:

RG

defmod rg_battery_prz_no readingsGroup *.:battery,reachable
attr rg_battery_prz_no DbLogExclude .*

Testgeräte

defmod test dummy
attr test DbLogExclude .*
attr test alias Rauchmelder Test
attr test icon secur_smoke_detector

setstate test 2020-05-16 12:31:56 battery 100
setstate test 2020-05-16 12:33:32 reachable 1

defmod test1 dummy
attr test1 DbLogExclude .*
attr test1 alias Rauchmelder Test1
attr test1 icon secur_smoke_detector

setstate test1 2020-05-16 12:31:56 battery 100

defmod test2 dummy
attr test2 DbLogExclude .*
attr test2 alias Rauchmelder Test2
attr test2 icon secur_smoke_detector

setstate test2 2020-05-16 12:31:56 battery 100

defmod test3 dummy
attr test3 DbLogExclude .*
attr test3 alias Rauchmelder Test3
attr test3 icon secur_smoke_detector

setstate test3 2020-05-16 12:34:30 reachable 1

FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

raiderxxl

Das kann doch nun wirklich nicht so schwer sein...
Oder ist es ein bug? Den so wie es in der Bibel (Commandref)steht funktioniert es nicht...


Schönen Vatertag euch allen...


Grüßle

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

Frank_Huber

Dein "zum nachstellen" hat imho nen fehler.
Setstate..... setzt das Internal STATE, nicht ein reading.
https://fhem.de/commandref_DE.html#setstate

Was du willst ist setreading.
https://fhem.de/commandref_DE.html#setreading



Gesendet von meinem S68Pro mit Tapatalk


raiderxxl

#13
Hallo Frank,
das sind raw Exporte die mir FHEM vorgibt also können die nicht falsch sein!  ;)
Und nein es werden die Reading gesetzt!
Die können auch weggelassen werden dann müssen die readingswerte von Hand mit setreading gesetzt werden....


Das tut aber eigentlich nichts zur Sache...

Liebe Grüße

Pascal


FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

Frank_Huber

Ach so,
Dann passt es.
Dachte weil du "zum nachstellen" geschrieben hast wäre das komplett zum Fehler reproduzieren. Inkl der befehle zum readings setzen.

Gesendet von meinem S68Pro mit Tapatalk