Neues Modul readingsGroup

Begonnen von Niko, 24 August 2013, 11:59:11

Vorheriges Thema - Nächstes Thema

Tommy82

Hast du einen Tip für mich wie ich den relativ einfach finden kann? Da ich mittlerweile einige rd's im einsatz habe
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

franky08

Hallo, Andre. Habe folgendes Attribut in readingsGroup:

attr Lenovo_Tab_Site2 cellStyle { "r:1" => 'style="color:#3A5FCD;;font-size:152px"',"r:2" => 'style="color:#FF7F24;;font-size:56px"',"r:3" => 'style="color:#FF7F24;;font-size:56px"'

Soweit, sogut ABER nach einem Server Neustart bleibt davon in der config nur:

{ "r:1" => 'style="color:

und der Rest ist weg. Schon mehrfach getestet und natürlich mit save config gesichert.
Hat da jemand einen Tip?

P.S. es ist egal ob das cellStyle Attribut in der Webansicht oder direkt in der config angelegt wird, nach einem shutdown ist es nur noch "verstümmelt" vorhanden.
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

krikan


franky08

Joh, kann z.Zt. Nicht updaten da WVC sonst nicht mehr läuft und ich warten will bis das Modul gefixt ist.

Danke,
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

justme1968

du kannst entweder farbnamen verwenden oder den inhalt des attributs in eine sub in 99_myUtils auslagern und diese nur aufrufen.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

franky08

Das mit der sub hatte ich schon einmal in Angriff genommen aber bin dabei leider an der Syntax gescheitert was das setzen von einfachen und doppelten Anführungszeichen angeht.
Das geht nicht:

sub cell()

{

fhem "attr Lenovo_Tab_Site2 cellStyle { 'r:1' => 'style=color:#3A5FCD;font-size:152px','r:2' => 'style=color:#FF7F24;font-size:56px','r:3' => 'style=color:#FF7F24;font-size:56px' }";
}

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

justme1968

du musst keinen fhem aufruf machen. die sub gibt einfach eine referenz auf den hash zurück.

such mal etwas weiter oben im thread. da gibt es beispiele.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

oder du gibst den string direkt zurück: sub cell()
{
  return "{ 'r:1' => 'style=color:#3A5FCD;font-size:152px','r:2' => 'style=color:#FF7F24;font-size:56px','r:3' => 'style=color:#FF7F24;font-size:56px' }";
}


hier ist noch eine variante beschrieben: http://forum.fhem.de/index.php/topic,30959.msg235755.html#msg235755.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Pfriemler

Kurze Zwischenfragen - SUFU etc. erfolglos:

1. Ich möchte eine readingsGroup platzieren, mit der ich auf kritische Batteriezustände in allen Geräten hingewiesen werde. Das geht mit der Def .*:battery ja prima. Auswahl der Anzeigen, Formatierung, Farbe - alles klar.
Wie kann ich erreichen, dass nur Geräte in der Übersicht erscheinen, die einen kritischen Batteriezustand haben - also als reading battery den Wert "low". Ich finde dazu nix.

2. In der <devspec> kann ich ja auch Internals als Kriterium angeben, etwa "TYPE=CUL_HM". Leider liefern die state-Sensoren in HM auch in den Sensorkanälen ein battery-reading, so dass ich von einem Gerät bei acht Kanälen neun Batteriemeldungen bekomme. Ich dachte hier also, auf ein INTERNAL zu filtern, dass nur die Geräte haben, konkret: IODev. Da könnte ich ja auch auf HM filtern (konkret auf das Device "HMLAN1", mehr habe ich bis jetzt nicht:
define battStatus readingsGroup IODev=HMLAN1:battery

Die Liste ist dann aber leer.
Mit IODev=HM.*:battery ebenso, aber - jetzt kommt's: mit IODev=H.*:battery werden alle Geräte (ohne Kanäle) angezeigt, wie ich möchte. Gleiches passiert mit IODev=.*:battery. Allerdings werden in beiden Fällen auch FHTs gelistet, die als IODev den CUL1 haben - aber wo bitte ist das H in CUL1?

Wo ist der Denkfehler?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

justme1968

#1329
zu 1.: für alle geräte deren zustand nicht kritisch ist in valueFormat undef zurück geben. das gerät wird dann ausgelassen. wichtig: wenn sich während die readingsGroup angezeigt wird der zustand auf kritisch ändert kann das gerät nicht per longpoll wieder eingeblendet werden sondern nur durch reload. wenn das einblenden auch per longpoll gehen soll musst du per cellStyle die höhe der zeile auf 0 setzen.

zu 2.: das mit IODev geht nicht weil das intern kein name ist sondern eine referenz auf eine interne datenstruktur. das H.* geht mehr oder weniger nur zufällig und macht nicht das was du erwartest.

du kannst aber statt über das internal IODev über das attribut IODev gehen:define battStatus readingsGroup IODev&HMLAN1:battery

ansonsten schau mal hier: http://forum.fhem.de/index.php/topic,31792.msg286846.html#msg286846 da ist beschrieben wie man z.b. über den den TYPE CUL_HM und das subtype attribut (oder mehr als ein internal und attribut) gehen kann.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ich habe eben eine version eingecheckt bei der man auch auf das internal IODev filtern kann.

ab morgen im update.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Pfriemler

Zitat von: justme1968 am 22 April 2015, 17:13:52
zu 1.: für alle geräte deren zustand nicht kritisch ist in valueFormat undef zurück geben.

{ ($VALUE eq 'low')?"niedrig":undef }

Funktioniert. Und gleich eingedeutscht. Prima!
Da die Seite nur gelegentlich aufgerufen wird, ist die eventuelle Nichtaktualität hier gar kein Problem. Aber Danke für den Hinweis.

Zitatzu 2.: das mit IODev geht nicht weil das intern kein name ist sondern eine referenz auf eine interne datenstruktur.
Bäh. Es steht aber so in den Internals. Da dachte ich ehmd.

Zitatdas H.* geht mehr oder weniger nur zufällig und macht nicht das was du erwartest.
Ich habe ja nicht den blassesten Schimmer gehabt. Aber nun lassen wir es ruhen.

Zitatdu kannst aber statt über das internal IODev über das attribut IODev gehen:define battStatus readingsGroup IODev&HMLAN1:battery
Das hatte ich erst mal übersehen, dass das IODev auch dort steht. Mit
IODev&HMLAN.:battery IODev&CUL.:battery
erwische ich wohl alle Geräte die über mehrere HMLANs oder CULs laufen - vorausgesetzt ich habe nicht mehr als je neun davon ... Mit je einem gehts jedenfalls.

Den Hinweis auf :FILTER nehme ich mir dann auch mal zu Herzen. Spannende Sache das, wie kam ich bisher ohne aus?  ;D Vielen DANK!
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Pfriemler

Mist. Einen noch:
Wieso filtert IODev&HMLAN.:FILTER=serialNr!=KEQxxxxxxx:battery IODev&CUL.:battery
(xxxxxxx=Seriennummer) nicht nur das eine Gerät, sondern alle aus der Anzeige? Mit
TYPE=CUL_HM:FILTER=serialNr!=KEQxxxxxxx:battery IODev&CUL.:battery
funktioniert's hingegen (obwohl ich ja da wieder die Kanäle dabei habe die ich nicht wollte). Hat das was mit den unterschiedlchen Suchbereichen (Internals, Attributs) zu tun?
Hintergrund: Der betreffende Aktor wird mit knapp 5V netzversorgt und meldet trotzdem ein Batterieproblem, weil sich die Schwelle nicht unter 5V setzen lässt...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

justme1968

das liegt daran das die & variante readingsGroup spezifisch ist.

FILTER verwendet das generelle devspec format das in der commandref beschreiben ist hier gibt es die & variante nicht

beide lassen sich leider nicht kombinieren.

ich habe vorhin einen patch gepostet damit das IODev in den internals auch per devspec und list funktioniert. wenn rudi das übernimmt kannst du IODev=... auch mit FILTER verwenden.

bis dahin kannst du bei TYPE=... bleiben und in valueFormat prüfen ob AttrVal($DEVICE,"IODev",undef) vorhanden ist und wenn nicht undef zurück geben. dann wird das device auch übersprungen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

rudi hat es eingecheckt. sollte als ab morgen gehen.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968