Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

justme1968

wenn du einen wert aus einem anderen device zusätzlich mit in einer Zeile anzeigen möchtest geht das mit der form <regex>@<device>

battery ist aber ziemlich sicher kein ttribut sondern ein reading.

das webCmd attribut kannst du mit +webCmd@device genau so mit anzeigen. aber es wird nur angezeigt. es ist nicht anklickbar. um etwas anklickbar zu machen musst du das commands attribut verwenden.

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

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

RoBra81

Ich bin gerade dabei für meine Heizkörperbedienung eine ReadingsGroup zu bauen. Momentan bin ich soweit zufrieden, dass ich den aktuellen Stand für alle Heizkörper/Räume vervielfältigen würde. Da ich mir aber nicht sicher bin, ob ich nicht doch irgendwann etwas ändern möchte, wollte ich mal fragen, ob es möglich ist, eine komplette ReadingsGroup in eine Funktion in die myUtils auszulagern (nur die def, keine Attribute)? Ich hätte das gern irgendwie zentral, sodass ich meine Anpassungen immer gleich für alle Floorplans habe...

Vielen Dank
Ronny

justme1968

nein. das geht nicht. nur die attribute kannst du auslagern.

du kannst aber im web frontend auf DEF klicken und das was dort steht per copy und paste in ein andere DEF kopieren.

ansonsten gibt es noch copy

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

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

RoBra81

Hallo,

ich möchte mir mal wieder eine ReadingsGroup zusammenstellen und bin am verzweifeln: Ist es möglich, für eine Icon ein ColSpan (und vielleicht sogar einen style mit width und height) zu definieren? Ich bekomme den colspan für ein reading hin, bräuchte es aber auch für Icons (und auch bei Namen ala <heute> bräuchte ich es und habe es noch nicht hinbekommen)...

Vielen Dank
Ronny

justme1968

mit der eingecheckten version geht beides noch nicht.

in meiner version hier habe ich es schon eingebaut. schau dir mal die version von hier: http://forum.fhem.de/index.php/topic,27218.msg203485.html#msg203485 an. da könnte es für die namen eventuell schon gehen. oder über das cellStyle attribut für jede beliebige zelle.

ich fasse demnächst die ganzen test versionen zusammen und checke es ein.

je nach layout könnte eventuell ein workaround für dich über style beides global für die ganze readingsGroup vorzugeben und dann für jedes element das beides nicht gesetzt haben soll explizit wieder zurück zu setzen.

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

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

RoBra81

Hallo,

ich habe bereits die Version aus dem Link, es geht aber trotzdem nicht: zum einen kann ich das colspan gar nicht mit style sondern nur mit ValueColumns setzen und da kann ich wie gesagt nur Value-Zellen die keine Icons sind beeinflussen. Zum anderen kann ich zwar width setzen, dies hat aber leider keinen Einfluss auf die Icons...

Vielleicht kommt da ja in einer neuen Version noch etwas für mich :-)

Ronny

igami

#726
Hi,

ist es möglich eine feste Breite für eine Spalte festzulegen?
Habe mehrere RGs die alle ähnlich aussehen sollen, jedoch nicht immer die gleiche Anzahl an Elementen in einer Zeile haben. Darunter wird ein SVG platziert, dass die gleiche breite wie die RG hat.

Falls es dazu keine saubere Lösung gibt muss ich wohl einfach leere Spalten dazwischen einfügen.

Edit: seit gestern sieht meine Readingsgroup in der Firma so aus (siehe Anhang).
Es wurden zwischen noch funktionieren und nicht mehr funktioniereren "nur" eine Funktion in den myUtils bearbeitet, und ein update der Module

10_CUL_HM.pm
91_eventTypes.pm

durchgeführt.

define rg_12170_1 readingsGroup <Beleuchtung>,<Status>,<>,<Fenster>,<>,<Status>,<Batterie>\
EIB_1118:<Beleuchtung.1>,state,<>,<Fenster.1>,<>,state@CUL_HM_HM_SEC_SC_2_26AA3B,battery@CUL_HM_HM_SEC_SC_2_26AA3B\
EIB_1117:<Beleuchtung.2>,state,<>,<Fenster.2>,<>,state@CUL_HM_HM_SEC_SC_2_26AA4E,battery@CUL_HM_HM_SEC_SC_2_26AA4E\
EIB_1116:<Beleuchtung.3>,state,<>,<Fenster.3>,<>,state@CUL_HM_HM_SEC_SC_2_26AC38,battery@CUL_HM_HM_SEC_SC_2_26AC38\
CUL_HM_HM_SEC_SC_2_26B663:<>,<>,<>,<Fenster.4>,<>,state@CUL_HM_HM_SEC_SC_2_26B663,battery@CUL_HM_HM_SEC_SC_2_26B663\
<>,<>,<>,<>,<>,<>,<>\
<Raumklima>,<>,<>,<Heizung>,<Temperatur>,<Ventil>,<Batterie>\
CUL_HM_HM_CC_RT_DN_255103:<Solltemperatur>,dayTemp@d_ClimaControl_12170,<>,<Heizung.1>,measured-temp,actuator,battery\
CUL_HM_HM_CC_RT_DN_25510C:<>,<Start>,<Ende>,<Heizung.2>,measured-temp,actuator,battery\
CUL_HM_HM_CC_RT_DN_25528E:<Werktag>,weekday_start@d_ClimaControl_12170,weekday_end@d_ClimaControl_12170,<Heizung.3>,measured-temp,actuator,battery\
CUL_HM_HM_CC_RT_DN_255617:<Samstag>,saturday_start@d_ClimaControl_12170,saturday_end@d_ClimaControl_12170,<Heizung.4>,measured-temp,actuator,battery\
<>,<>,<>,<>,<>,<>,<>\
<Klimaanlage>,<Power>,<Status>,<Richtung>,<Temperatur>,<Geschwindigkeit>,<Filter>\
<Klimaanlage.1>,<%control_standby@lightgreen>,<kühlen>,<2>,<23.6 °C>,<%vent_ventilation_level_2>,<%sani_water_tap@lightgreen>\
<Klimaanlage.2>,<%control_standby@lightgreen>,<kühlen>,<2>,<22.9 °C>,<%vent_ventilation_level_1>,<%sani_water_tap@lightgreen>
attr rg_12170_1 commands {'EIB_1118.state' => 'trigger ntfy_toggle EIB_1118', 'EIB_1117.state' => 'trigger ntfy_toggle EIB_1117', 'EIB_1116.state' => 'trigger ntfy_toggle EIB_1116', 'dayTemp' => 'dayTemp:', 'weekday_start' => 'weekday_start:', 'weekday_end' => 'weekday_end:', 'saturday_start' => 'saturday_start:', 'saturday_end' => 'saturday_end:'}
attr rg_12170_1 mapping {'dayTemp' => '', 'weekday_start' => '', 'weekday_end' => '', 'saturday_start' => '', 'saturday_end' => ''}
attr rg_12170_1 nameStyle {($READING eq "Beleuchtung"||$READING eq "Status"||$READING eq "Fenster"||$READING eq "Batterie"||$READING eq "Raumklima"||$READING eq "Heizung"||$READING eq "Temperatur"||$READING eq "Ventil"||$READING eq "Klimaanlage"||$READING eq "Power"||$READING eq "Richtung"||$READING eq "Geschwindigkeit"||$READING eq "Filter")?'style="font-size:20px;;color:
attr rg_12170_1 noheading 1
attr rg_12170_1 nonames 1
attr rg_12170_1 room 1.2.170:Antriebstechnik
attr rg_12170_1 sortby 10
attr rg_12170_1 valueFormat {'measured-temp' => "%0.1f &deg;;C", 'actuator' => "%0.1f %%" }
attr rg_12170_1 valueIcon {'state.on' => 'li_wht_on', 'state.off' => 'li_wht_off', 'state.closed' => 'fts_window_1w','state.open' => 'fts_window_1w_tilt',  'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red'}
attr rg_12170_1 valueStyle style="font-size:16px"

Was fehlt sind die Freitexte die in <> stehen.

rg funktioniert wieder, es fehlte nur ein Teil des nameStyle attr -.-

Grüße
Igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Spartacus

Hallo,
ich brauche mal einen Tipp:
Habe folgende ReadingsGroup:
<>,<Player>,<Sender>,<>,<Status>
Sonos_Buero:<%icoSONOSPLAYER_icon-S3.png>,<Büro>,currentSender,currentAlbum,transportState,


Jetzt möchte ich mit dem Attribut valueStyle in Abhöngigkeit vom transportState die Farbe vom Reading "currentSender" ändern, kriege es aber nicht hin:
{
if($READINGS eq "currentSender" && ReadingsVal($DEVICE, "transportState", "") eq "PLAYING" )
{
'style="color:green"'
}
elseif ($READINGS eq  "currentSender" && ReadingsVal($DEVICE, "transportState", "") eq "STOPPED" )
{
'style="color:red"'
}
}


Wo mache ich den logischen Fehler?

Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

justme1968

es gibt keine $READINGS variable und es muss elsif statt elseif heissen.

also etwa so:{
  if($READING eq "currentSender" && ReadingsVal($DEVICE, "transportState", "") eq "PLAYING" ) {
    'style="color:green"'
  } elsif ($READING eq "currentSender" && ReadingsVal($DEVICE, "transportState", "") eq "STOPPED" ) {
    'style="color:red"' }
}


ein blick ins log file hätte zu beiden einen hinweis bringen müssen.

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

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

Spartacus

Halle,
yep! Besten Dank! Das war es. Allerdings wird die Farbe nur bei einem Refresh im Browser geändert. Ist das so korrekt? Ich habe das im Wiki so verstanden, dass hier direkt geändert wird, wenn sich der state von "PLAYING" auf "STOPPED" ändert.

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

justme1968

#730
wenn du möchtest das sich die farbe live ändert musst du entweder das reading einfärben das sich ändert. also bei transportState oder du muss dir <{...}@reading> version verwenden weil die readingsGroup sonst nicht weiß das transportState einfluss auf die darstellung von currentSender hat.

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

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

Spartacus

Hi Andre,
sorry! Aber das raffe ich nicht!
Zitat von: justme1968 am 23 Oktober 2014, 13:00:26
wenn du möchtest das sich die farbe life ändert musst du entweder das reading einfärben das sich ändert. also bei transportState oder du muss dir <{...}@reading> version verwenden weil die readingsGroup sonst nicht weiß das transportState einfluss auf die darstellung von currentSender hat.
gruß
  andre

Kann man das irgendwo an einem Beispiel sehen? Habe keine Ahnung wonach ich suchen soll! Brauche noch nen Tipp! Sorry!

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

dancatt

Hallo,

gibt es irgendeine Möglichkeit die Ausgabe zu sortieren bzw. zu gruppieren?

Beispiel:
Es gibt mehrere Räume mit mehreren Heizungsthermostaten. Manche Räume haben auch noch ein Wandthermostat.
Nun möchte ich alle Thermostate eines Raumes gruppiert haben und falls in diesem Raum noch ein Wandthermostat existiert dieses an erster Stelle aufführen.

Code sieht ungefähr folgendermaßen aus (bitte Syntaxfehler ignorieren da frei aus dem Kopf erstellt):

define Heizungswerte readingsGroup <%sani_heating>,<Ventil>,<Soll>,<Ist> .*thermostat.*_Clima$:ValvePosition,desired-temp,measured-temp


Ergebnis soll sein:

Bad_Wandthermostat_Clima...
Bad_Heizungsthermostat_1_Clima...
Bad_Heizungsthermostat_2_Clima...
Kinderzimmer1_Heizungsthermostat_1_Clima...
Kinderzimmer1_Heizungsthermostat_2_Clima...
Kinderzimmer2_Wandthermostat_Clima...
Kinderzimmer2_Heizungsthermostat_1_Clima...
Kinderzimmer2_Heizungsthermostat_2_Clima...
Wohnzimmer_Heizungsthermostat_1_Clima...
Wohnzimmer_Heizungsthermostat_2_Clima...
Wohnzimmer_Heizungsthermostat_3_Clima...


Vermeiden möchte ich folgendes:

define Heizungswerte readingsGroup <%sani_heating>,<Ventil>,<Soll>,<Ist> \
Bad_Wandthermostat_Clima$:ValvePosition,desired-temp,measured-temp \
Bad_Heizungsthermostat_1_Clima$:ValvePosition,desired-temp,measured-temp \
Bad_Heizungsthermostat_2_Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer1_Heizungsthermostat_1_Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer1_Heizungsthermostat_2_Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer2_Wandthermostat_Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer2_Heizungsthermostat_1_Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer2_Heizungsthermostat_2_Clima$:ValvePosition,desired-temp,measured-temp \
Wohnzimmer_Heizungsthermostat_1_Clima$:ValvePosition,desired-temp,measured-temp \
Wohnzimmer_Heizungsthermostat_2_Clima$:ValvePosition,desired-temp,measured-temp \
Wohnzimmer_Heizungsthermostat_3_Clima$:ValvePosition,desired-temp,measured-temp


Ich hoffe es kann einer verstehen was ich meine  ???

Vielen Danke.

Gruß Daniel
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

justme1968

du hast fünf möglichkeiten...

1. du setzt das sortDevices attribut und verwendest das sortby attribut

2. du setzt das sortDevices attribut und alle wird alphabetisch sortiert. deine wandthermostate landen dann aber jeweils am ende der gruppe. da kannst du aber durch sanftes umbenennen gegensteuern.

3. du kannst von hand gruppieren und die regex so wählen das du nicht alles hinschreiben musst:define Heizungswerte readingsGroup <%sani_heating>,<Ventil>,<Soll>,<Ist> \
Bad_W.*Clima$:ValvePosition,desired-temp,measured-temp \
Bad_H.*Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer1.*Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer2_W.*Clima$:ValvePosition,desired-temp,measured-temp \
Kinderzimmer2.*Clima$:ValvePosition,desired-temp,measured-temp \
Wohnzimmer.*Clima$:ValvePosition,desired-temp,measured-temp


4. du kannst alles so wie in deinem beispiel explizit hin schreiben

5. du verwendest pro raum eine eigene readingsGroup

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

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

justme1968

@Spartacus: etwas in der art:

- statt currentSender direkt in der liste anzugeben gibst du ,...<{ReadingsVal($DEVICE,"currentSender","")@ currentSender|transportState}

- statt valueFormat steckst du deine farbgebung in nameFormat

- für alle anderen werte setzt du ein default valueFormat mit der normalen farbe.

das ganze ist leider etwas umständlich. die readingsGroup weiss ja nicht das der eine wert einfluss auf die farbe des anderen haben soll und aktualisiert die farbe nicht automatisch.

einfacher ist wenn du direkt den wert einfärbst von dem die farbe auch abhängt.

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

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