update readingsGroup

Begonnen von justme1968, 03 September 2013, 22:59:01

Vorheriges Thema - Nächstes Thema

kvo1

Zitatdu machst dir aber das leben unnötig schwer bzw. sogar manches unmöglich weil du für jeden parameter einen eigen dummy hast und jedes mal auch noch state als reading verwendest. damit kannst du anhand des readings nicht mehr unterscheiden um was es gerade geht.

ich denke das was du vor hast wird deutlich einfacher wenn die die zu einem device gehörenden paramter jeweils mit sprechendem namen  in einen einzigen dummy steckst. oder sogar ins original device.

ich glaube da hast Du Recht ! Muß mir das Ganze nochmal konzeptionell überlegen !

Danke
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

moonsorrox

ich schaffe es einfach nicht hinter den Zeiten das Wort "Uhr" einzufügen.
Mit "{'{($VALUE)." Uhr"}'} bekommen alle Werte das Wort Uhr, ich denke ich muss das mit valueFormat machen, aber es gelingt mir nicht.

Die Zeiten kommen teilweise aus "dummys" oder eben beim schließen von "sunset".
Die Zeiten sind zum probieren teilweise die selben, ändert sich aber später.

define rg_RollladenWZ_Test readingsGroup <%fts_shutter_50@LightSeaGreen>,<Öffnen - WoTag>,<Öffnen - WoEnde>,<Schließen>,<Aktuell>,<Modus>\
du_RolloWZmodus:state@du_RolloZeit_hoch,state@du_RolloZeit_hoch_WoE,state@du_RolloZeit_hoch_WoE,state@RollladenWZ,state\
du_RolloSZmodus:state@du_RolloZeit_hoch,state@du_RolloZeit_hoch_WoE,state@du_RolloZeit_hoch_WoE,state@RollladenSZ,state\

attr rg_RollladenWZ_Test alias Rollladensteuerung
attr rg_RollladenWZ_Test cellStyle { "r:1"=>'style="font-weight:normal;;font-size:12px;;color:AntiqueWhite;;"',"c:0"=>'style="font-weight:normal;;font-size:14px;;text-align:left;;padding-left:0pt;;color:LightSteelBlue;;"'}
attr rg_RollladenWZ_Test mapping {du_RolloWZmodus=>"Wohnzimmer",du_RolloSZmodus=>"Schlafzimmer"}
attr rg_RollladenWZ_Test nameStyle style="text-align:center;;color:LightSteelBlue"
attr rg_RollladenWZ_Test room AutomationTest
attr rg_RollladenWZ_Test valueFormat {'state.du_RolloZeit_hoch' { ($VALUE)." Uhr"}'}
attr rg_RollladenWZ_Test valueIcon {'state.FHEM' => 'fts_shutter_automatic@lightgreen', 'state.Beschattung' => 'fts_shutter_updown@blue', 'state.Nachtschicht' => 'fts_shutter_up@crimson', 'state.Aus' => 'general_aus@yellow', 'state.on' => 'fts_shutter_10@white', 'state.50' => 'fts_shutter_80@blue', 'state.70' => 'fts_shutter_30@blue', 'state.75' => 'fts_shutter_30@crimson', 'state.off' => 'fts_shutter_100@blue'}\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

justme1968

wie wäre es valueSuffix zu verwenden?

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

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

moonsorrox

Zitat von: justme1968 am 28 Oktober 2015, 08:54:29
wie wäre es valueSuffix zu verwenden?

gruß
  andre
das hatte ich auch versucht, aber entweder bekomme ich dann bei allen Value das Wort Uhr dahinter oder bei keinem ;)

Da die Zeit Angaben aus einem dummy kommen weiß ich nicht wie ich das dummy abfrage..!  :-\

Einige Versuche habe ich hinter mir, im Wiki gibt es dazu zwei Beispiele einmal das
attr heatingInfo valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}


und einmal das Beispiel

attr rg valueSuffix { state => '°;C' }
bei diesem bekomme ich wie gesagt bei allen Werten das Wort Uhr dahinter.
state in mit dem dummy habe ich noch nicht geschafft..!  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

justme1968

etwas so:attr rg valueSuffix { return '&deg;C' if( InternalVal($DEVICE,'TYPE','') eq 'dummy' );

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

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

moonsorrox

Oh, je da hätte ich ja lange probieren können..!

ich habe das jetzt so drin:
{ return ' Uhr' if( InternalVal($DEVICE,'TYPE',' ') eq 'dummy' )}

siehe mal screenshot, leider ist der Modus auch ein dummy, wie kann ich den ausgrenzen..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

justme1968

das beste ist wenn du nicht state verwendest sondern ein reading mit einem sprechenden namen.

du kannst es auch am device namen fest machen wenn der sprechend genug ist.

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

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

moonsorrox

Zitat von: justme1968 am 28 Oktober 2015, 13:08:29
das beste ist wenn du nicht state verwendest sondern ein reading mit einem sprechenden namen.
ja,
aber leider haben die dummys nur state als reading

Zitat von: justme1968 am 28 Oktober 2015, 13:08:29
du kannst es auch am device namen fest machen wenn der sprechend genug ist.

gruss
   andre
hatte ich schon probiert, aber das ging nicht weil die dummys heißen entweder:
Zitatdu_RolloZeit_hoch
oder
du_RolloZeit_hoch_WoE

einzig Schließen hatte ich bisher noch nicht die richtige Zeit eingetragen da ich noch am testen bin, diese ist ja kein dummy sondern sunset
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

justme1968

du kannst jedes beliebige reading verwenden. mit setreading oder mit readingList. du brauchst noch nicht mal für jeden wert einen eigenen dummy.

bei deinen namen musst du doch nur schauen ob der Zeit im namen vor kommt:{ return ' Uhr' if( $DEVICE =~ m/Zeit/ )}

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

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

moonsorrox

Zitat von: justme1968 am 28 Oktober 2015, 13:22:09
bei deinen namen musst du doch nur schauen ob der Zeit im namen vor kommt:{ return ' Uhr' if( $DEVICE =~ m/Zeit/ )}

gruss
  andre

Ok, dass hat gut funktioniert...!  ;) Danke
nun muss ich "nur" noch das DEF ändern weil ja das Schließen über "sunset" gemacht wird und nicht über "dummy"
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

ich habe nochmals eine Frage zu der Anzeige der Zeiten, speziell zu der letzten Zeit state@du_RolloZeit_runter

DEF:
<%status_automatic@LightSeaGreen>,<Modus>,<Stand>,<Öffnen - WoTag>,<Öffnen - WoEnde>,<Schließen - täglich>
du_RolloWZmodus:state,state@RollladenWZ,state@du_RolloZeit_hoch,state@du_RolloZeit_hoch_WoE,state@du_RolloZeit_runter
du_RolloSZmodus:state,state@RollladenSZ,state@du_RolloZeit_hoch,state@du_RolloZeit_hoch_WoE,state@du_RolloZeit_runter


für das Schließen habe ich mir extra ein dummy gebaut, weil ich es nicht hin bekommen habe aus dem DOIF direkt die Zeit abzufragen.

Das DOIF (di_RollladenWZ) hat ja einen timer (timer_3_c2) welcher bei mir durch:
{sunset("CIVIL",-100)}
gebildet wird.

Ich wollte im obigen DEF dieses dummy (state@du_RolloZeit_runter) durch das DOIF bilden das ging aber nicht..! Ist das so nicht möglich..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

justme1968

ich glaube ich verstehe die frage nicht.

wenn es darum geht ein reading oder internal oder attribut aus dem doif mit anzuzeigen musst du die readingsgroup entsprechend konfigurieren.

wenn du den wert selber berechnen und anzeigen willst ...,<{sunset("CIVIL",-100)}>,... in der readingGroup.

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

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

moonsorrox

Zitat von: justme1968 am 28 Oktober 2015, 17:18:13
wenn es darum geht ein reading oder internal oder attribut aus dem doif mit anzuzeigen musst du die readingsgroup entsprechend konfigurieren.
muss das im DEF passieren oder in einem Attribut

Zitat von: justme1968 am 28 Oktober 2015, 17:18:13
wenn du den wert selber berechnen und anzeigen willst ...,<{sunset("CIVIL",-100)}>,... in der readingGroup.

gruss
  andre
das würde auch gehen habe ich mal probiert, aber da zeigt er mir momentan nicht die richtige Zeit an un des fehlt auch wieder "Uhr" dahinter..

hier mal das DEF:
<%status_automatic@LightSeaGreen>,<Modus>,<Stand>,<Öffnen - WoTag>,<Öffnen - WoEnde>,<Schließen - täglich>
du_RolloWZmodus:state,state@RollladenWZ,state@du_RolloZeit_hoch,state@du_RolloZeit_hoch_WoE,<{sunset("CIVIL",-100)}>
du_RolloSZmodus:state,state@RollladenSZ,state@du_RolloZeit_hoch,state@du_RolloZeit_hoch_WoE,<{sunset("CIVIL",-100)}>


da wäre mir der Timer aus dem DOIF lieber
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kvo1

Hallo Andre,
Zitatdu machst dir aber das leben unnötig schwer bzw. sogar manches unmöglich weil du für jeden parameter einen eigen dummy hast und jedes mal auch noch state als reading verwendest. damit kannst du anhand des readings nicht mehr unterscheiden um was es gerade geht.

ich denke das was du vor hast wird deutlich einfacher wenn die die zu einem device gehörenden paramter jeweils mit sprechendem namen  in einen einzigen dummy steckst. oder sogar ins original device.

Du hattest Recht, es ist viel einfacher EIN dummy mit mehreren spechenden readings anzulegen und sich nicht
mit den vielen "state´s" die Ohren zu brechen ! Danke für den Denkanstoß und "Daumen hoch" für Dein Modul (readingsgroups), immer wieder gern genommen !

Gruss
klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

ph1959de

@Klaus, würdest Du die fertige Lösung hier noch mal im Zusammenhang darstellen? Ich möchte etwas ähnliches machen (und moonsorrox ist wohl auch mittendrin oder mittlerweile fertig) und da wäre es doch schade, wenn jeder nochmal von vorn anfangen müsste.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"