Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

justme1968

stimmt natürlich. ohne echtes reading gibt es auch keine events für das longpoll. die könnte man mit einem trigger erzeugen. aber da du ein passendes echtes reading hat ist es ja noch besser.

das set das es gibt ist nur für das visibility attribut um die rg oder teile daraus aus und ein zu blenden. das ist nicht was du brauchst.

du kannst für das modify einfach $defs{<rg>}->{DEF} verwenden. das ist ja die aktuelle definition.

oder du rufst direkt readingsGroup_updateDevices($defs{<rg}>) auf.

ich bin gerade dabei zu überlegen wie ich per longpoll eine komplette modifizierte rg im frontend ersetzen kann. in dem zusammenhang wird es dann vermutlich ein set refrash oder ähnlich geben. das dauert aber noch etwas.

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

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

Reinerlein

Hi Andre,

danke für die Hilfe. Damit kann man auf jeden Fall erstmal hinkommen.
Spätere Vereinfachungen kann man ja immer noch durchführen. Das ganze lebt ja :)

Grüße
Reiner

strauch

#1142
Zitat von: justme1968 am 26 Januar 2015, 19:08:43
@strauch: du kannst dir links 'umbiegen' in dem du eigene links erzeugst und diese statt dem namen anzeigst.

Danke für den Hinweis. Einfacher als Gedacht ;-). Mal ein Beispiel falls das jemand ebenfalls sucht:
attr readingsgroup_name mapping {wz_Heizung_Clima=>"<a href='fhem?room=Wohnzimmer'>Wohnzimmer</a>"}


Zitat von: justme1968 am 26 Januar 2015, 19:08:43
zu den icons: wenn es der device status ist kannst devStateIcon im oringial device so setzen das es das icon ist das du möchtest und dann %devStateIcon als mapping verwenden. wenn das nicht geht kannst du kannst zuerst mit valueFormat den value so ändern das der device name oder ein typ oder sonst etwas eindeutiges darin auftaucht und dann diesen geänderten eindeutigen wert per valueIcon auf das icon mappen. also so: für die pumpe machst du aus 0 und 1 pumpe.0 und pumpe.1 und für deine heizung entsprechend.

Da bräuchte ich noch mal Hilfe. Das klappt:
{return "eins" if($VALUE == 1); return "zwei" if($VALUE == 2); return "drei" if($VALUE == 3);}

betrifft aber alle Werte auch die Pumpe, ich will das nur für ein Reading "ch_mode" haben. Das geht leider nicht:
{return "eins" if(Value("ch_mode") == 1); return "zwei" if(Value("ch_mode") == 2); return "drei" if(Value("ch_mode") == 3);}

Hast du ein Tipp wie ich das auf ein Reading begrenze? Oder muss ich das doppelt Prüfen?
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

justme1968

ja du musst natürlich $VALUE (und $READING) und $DEVICE prüfen wenn die values identisch sind und du sie unterscheiden möchtest.

wenn es um ein paar feste werte geht ist einfacher die hash variante statt der diversen if und elsif zu verwenden:attr <rg> valueFormat { 'pumpe.ch_mode' => '{"$READING-VALUE"}' }

das setzt für das reading ch_mode des device pumpe bei jedem wert den reading namen vor den wert:
0 -> state-0, 1 -> state-1, ...

du kannst auch den device namen oder irgend etwas anderes eindeutiges verwenden.

die neuen werte kannst du dann bei valueIcon verwenden.

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

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

Tommy82

Hi,
keiner eine idee für mein Problem aus
Zitat#1128
?

Danke
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

chris1284

wenn dein css nicht greift liegts entweder an der falschen "identifikation" /bezeichnung für das html-element oder es wird durch was anderes überschrieben.
da hilft nur zb firefox -> floorplan öffnen -> rechtsklcik auf die seite und "element durchsuchen". dann den slider suchen und anklicken im code. so siehtst du wie er wirklcih im code heist und rechts was an css greift

RoBra81

Hallo,
ich möchte über commands einer ReadingsGroup alle Lampen eines Zimmers oder einer Etage ausschalten. In notifys kann ich dies mit regex machen:
set OG.ez.LI.* off

Wenn ich den gleichen Befehl als command in der ReadingsGroup anlege, erhalte ich eine Fehlermeldung in der Art
please define OG.ez.LI.* first

Wie kann ich in den commands regex verwenden?

Ronny

MaJu

Nutze doch dein notify weiter und verwende dafür in der Readingsgroup einen dummy.
Erlebnisreiche Grüße aus Leipzig!

RoBra81

Da müsste ich für jedes Zimmer einen Dummy anlegen...
Das mit dem notify war auch nur ein Beispiel.

justme1968

geht es wenn du das ganze in ein fhem(...) verpackst ?

fhem("set OG.ez.LI.* off")

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

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

RoBra81


ext23

Zitat@ext23: in den events (für die longpoll aktualisierung) ist eventMap angewendet. beim aufbau wird das reading direkt gelesen und event map ist nicht angewendet. ich habe vorhin eine änderung eingecheckt die das handling von state ändert. schau mal ob das problem damit weg ist.

Sieht bis jetzt alles gut aus, ich denke das hat geholfen. Ich hab das jetzt ein paar Tage beobachtet.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Tommy82

#1152
Zitat von: chris1284 am 29 Januar 2015, 06:21:21
wenn dein css nicht greift liegts entweder an der falschen "identifikation" /bezeichnung für das html-element oder es wird durch was anderes überschrieben.
da hilft nur zb firefox -> floorplan öffnen -> rechtsklcik auf die seite und "element durchsuchen". dann den slider suchen und anklicken im code. so siehtst du wie er wirklcih im code heist und rechts was an css greift

Hi, danke für denTip, anbei mal ein Bild was ich dann im Browser an Code sehe, aber was kann ich daraus jetzt erkennen?

Die cs sieht so aus:
body     { background-color: #444444; font-family:LCARS, Arial, Helvetica, sans-serif; font-size:13px; background-image:url(../images/default/fhemicon_dark.png); background-repeat:no-repeat; }
body[id~=Media]     { background-color: #A5A5A5; font-family:Arial, Helvetica, sans-serif; font-size:13px; background-image:url(../icons/Media.bak); background-repeat:no-repeat; }
#logo { display:none !important;}
#backimg {position:absolute; top:0px; left:0px;}
#fpmenu.fp_arrange   { position:absolute; bottom:20px; left:30px; min-width:310px; font-size:9px; border:1px solid #CCCCCC; background: #111111; -moz-border-radius:8px; border-radius:8px; border-spacing: 6px; padding: 6px;
box-shadow:5px 5px 5px #000; }

#menu    { position:absolute; top:180px; left:30px; width:128px; -moz-border-radius:8px; border-radius:8px; border-spacing: 6px; padding-bottom: 6px; padding-top: 6px;}
#menu.floorplan  { position:absolute; top:180px; left:30px; width:128px; font-size:13px; border:1px solid #CCCCCC; background: #111111; box-shadow:5px 5px 5px #000; padding: 6px;}

#hdr     { position:absolute; top:15px; left:190px; border:1px solid #CCCCCC; background: #111111; -moz-border-radius:8px; border-radius:8px; border-spacing: 6px; padding: 6px;
box-shadow:5px 5px 5px #000; margin-bottom: 10px;}
#content { position:absolute; top:50px; left:180px; bottom:10px; right:10px; text-align:center}
#startcontent {position:absolute; top:20px; left:200px; text-align:left; font-size: 16px; color:gray; }
#errmsg { background-color: #000000; color: #FFFFFF; position:absolute; top:0px; left:40px; z-index: 10; }

a { color:#CCCCCC; text-decoration:none;}
td {padding-left: 3px; padding-right: 3px; padding-top: 3px; padding-bottom: 3px;}

img { -moz-border-radius:8px; border-radius:8px;}

table { -moz-border-radius:8px; border-radius:8px; }
table tr.sel { backround: #333333;}
table a:hover {color: #ffffff;}
table.weather { color: #ffffff; font-size: 14px;}

.fp_Home {border:0px solid red;}

.devicename     { font-size: 14px; text-align:center; color: #FFFFFF; }
.devicestate    { text-align:center; color: #FFFFFF; }
.devicecommands { font-size:14px; text-align:center; color: #FFFFFF; }
        .devicetimestamp{ font-size:10px; text-align:center; color: #FFFFFF; }

#Wettervorhersage1_MaxTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage2_MaxTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage3_MaxTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage4_MaxTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage5_MaxTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage1_MinTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage2_MinTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage3_MinTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage4_MinTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage5_MinTemp {font-size:28px; color: #FFFFFF; }
#Wettervorhersage1_Tag {font-size:28px; color: #FF00FF; }
#Wettervorhersage2_Tag {font-size:28px; color: #FF00FF; }
#Wettervorhersage3_Tag {font-size:28px; color: #FF00FF; }
#Wettervorhersage4_Tag {font-size:28px; color: #FF00FF; }
#Wettervorhersage5_Tag {font-size:28px; color: #FF00FF; }


#Heizung_Fenster    { color: #ffffff; font-size: 14px;}
#sz_Rollo.devicecommands {font-size:12px; text-align:center; }
#ez_Aussentemperatur_dummy.devicestate  {color:green; font-size:30px; }
#HomeStatus.devicestate  {color:green; font-size:30px; }
table.dummy              {min-width:100px;}
table.FHT                {min-width:100px; }
#Wettervorhersage3_MaxTemp.devicestate      {color:green; font-size:11px; }
#ez_FHT.devicestate      {color:green; font-size:30px; }
#Home.fp_Home       {font-size:14px; width:100px; }
#Home.fp_Media           {font-size:14px; text-align:left; }
#Media                   {font-size:14px; }
#Grundriss               {font-size:14px; text-align:left; }
#YahooWetter            {font-size:16px; color:#D4D4D4}
#w_WertListe1            {font-size:20px; color:gray}
.fp_tempvalue            {color:red; font-size:20px; }
.fp_humvalue             {color:blue; font-size:20px; }


h2,h3,h4 { color:#52865D; line-height:1.3; margin-top:1.5em; font-family:Verdana; }


/* detail-selector & slider */
select {  margin-left:5px; margin-right:5px; }
.set,.attr { margin-bottom:5px; float:left; }
.slider { margin-left:10px; float:left; width:140px; height:26px; border:2px solid; color:grey; }
.set .slider { background:#101010; border-radius:8px; }


/* timepicker */
.set .set { margin-bottom:2px; margin-top:3px; }

.handle { position:relative; cursor:pointer; width:50px; height:20px;
          line-height:20px; border:2px solid; color:white; text-align:center; }
.downText { margin-top:2px; }

/* next lines are for openautomation-svg */
svg { height:32px; width:32px; fill:#fff; vertical-align:middle; margin:2px 0; }
g.on { fill:red; }

/* next lines are for remotecontrol */
.rc_body              { border-style: solid; border-color: gray; border-width: 2px;
                        padding: 5px; background: #101010; font-size:6px;}
.rc_button            { padding: 5px 7px;}
.rc_button img        { border-style: solid; border-width: 1px; border-color: transparent; }
.rc_button img:active { border-color: gray; }
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

cotecmania

Hallo,

bei mir aktualisieren sich die Werte des DropDowns für desired-temp nicht, wenn ich an einem Thermostat direkt die Vorgabe ändere.
Das müsste laut Forum doch gefixt sein, oder mache ich noch was falsch ?
Die Ist-Temperatur aktualisiert sich von selbst ...

define HM_Thermostate readingsGroup CUL_HM_HM_CC_RT_DN_......:<%hc_wht_regler>,<{AttrVal($DEVICE,"alias",$DEVICE)}>,measured-temp@{$DEVICE."_Clima"},desired-temp@{$DEVICE."_Clima"},battery,ValvePosition@{$DEVICE."_Clima"} TYPE=MAX:<%hc_wht_regler>,<{AttrVal($DEVICE,"alias",$DEVICE)}>,temperature,desiredTemperature,battery,valveposition
attr HM_Thermostate commands {'desired-temp' => 'desired-temp:', 'desiredTemperature' => 'desiredTemperature:off,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,on'}
attr HM_Thermostate fp_Tablet 30,820,0,
attr HM_Thermostate mapping { "desired-temp" => " "}
attr HM_Thermostate noheading 1
attr HM_Thermostate room Heizung
attr HM_Thermostate valueFormat { 'valveposition' => "%.0f%", 'desiredTemperature' => "%.1f&deg;;C", 'temperature' => "%.1f&deg;;C", 'ValvePosition' => "%.0f%", 'desired-temp' => "%.1f&deg;;C", 'measured-temp' => "%.1f&deg;;C"}
attr HM_Thermostate valueIcon {'battery.ok' => 'batteryfull_32', 'battery.low' => 'batteryleer_32'}
attr HM_Thermostate group Thermostate


Gruss
Joe
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

Elektrolurch

#1154
Hallo Andre,

glaube habe da noch in Zusammenhang mit eventMap ein Fehlerchen gefunden:

attr fritzbox eventMap /on:ein/off:aus/

Dann in der readingsGroup:

commands {'diversity1_state.ein' => 'set $DEVICE diversity 1 off', 'diversity1_state.aus' => 'set $DEVICE diversity 1 on', 'diversity2_state.ein' => 'set $DEVICE diversity 2 off', 'diversity2_state.aus' => 'set $DEVICE diversity 2 on',   'box_guestWlan.ein' => 'set $DEVICE guestWLAN  off', 'box_guestWlan.aus' => 'set $DEVICE guestWLAN  on', 'tam1_state.ein' => 'set $DEVICE tam 1 off', 'tam1_state.aus' => 'set $DEVICE tam 1 on', 'box_wlan_2.4GHz.ein' => 'set $DEVICE wlan aus', 'box_wlan_2.4GHz.aus' => 'set $DEVICE wlan on'}

Da die Anzeige und das Setzen der gleichen Funktion mit untershiedlichen Namen erfolgt, war dass hier mit commands am leichtesten zu realisieren.
Es wird auch korrekt mit ein bzw aus (als Link) angezeigt, kann man Klicken und tut auch das was es soll.

Nur!!! Wenn die Seite neu aufgerufen wird oder mit F5 aktualisiert wird, dann steht da wieder on und off und die Werte sind nicht klickbar, bis dann irgendwann das Fritzbox-Modul seinen internen Update fährt und die readings aktualisiert werden.
Oder ich manuell über die Eingabe des entsprechenden set-Befehls das reading ändere....


Offensichtlich fehlt da beim Komplettaufbau  der readingsGroup eine Auswertung der eventMap.

Version: update vom 2.2.2015

Gruß


Elektrolurch
configDB und Windows befreite Zone!