Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo, da ich auch schon darüber gestolpert bin, habe ich die rg über "deleteattr myrg room" ausgeblendet.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

da ganze liegt nur indirekt an der readingsGroup sonderen daran das fhem web als fallback STATE anzeigt wenn gar nichts als html zurückgegeben wird. aber scheinbar nur wenn das ganze in einer gruppe ist.

ab morgen sollte es gehen.

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

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

fhainz

Hallo andre,

danke, sieht schon viel besser aus. Bekommst du das freie Feld noch komplett weg?


Grüße

justme1968

leider nein. zumindest nicht innerhalb der readingsGroup. das ganze drum rum wird ja von fhemweb erzeugt und das komm mit devices die 'unsichtbar' sind nicht klar.

da würde nur ein patch für fhemweb helfen. da komme ich aber gerade leider nicht dazu.

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

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

fhainz

Kein Problem! Ist für mich auch so ok.

Danke für die Mühe!


Grüße

P.A.Trick

Andre, ich habe eine Bitte. Ich habe bei mir MAX! Regler in einer rg. Jetzt im Sommer habe ich
die Regler auf off gesetzt. Dann hat das state-Attribut den Wert off anstatt einer Zahl.

Bedingt durch:
valueFormat {temperature => "%.0f °C", desiredTemperature => "%.0f °C", valveposition =>"%.0f %%",maxValveSetting =>"%.0f %%" }
finden sich im Log dann unschöne Meldungen wie diese hier:

Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.
Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.
Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.
Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.
Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.
Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.
Argument "off" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 529.

Kann man dagegen etwas tun?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

justme1968

versuch mal ob ein zusätzliches ...,valveposition.off =>"%s",... ausgewertet wird. ich kann aber gerade nicht nachschauen ob das an dieser stelle geht.

wenn nicht  musst statt dem einfachen format string "%.0f %%" selber etwas perl code schreiben der den unterschied berücksichtig und als string in {} packen. da kannst du dann etwas in der art einbauen:..., valveposition => '{ ($VALUE eq "off")?"%s":"%.0f %%"}', ...

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

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

P.A.Trick

Zitat von: justme1968 am 05 Juli 2014, 17:58:02
versuch mal ob ein zusätzliches ...,valveposition.off =>"%s",... ausgewertet wird. ich kann aber gerade nicht nachschauen ob das an dieser stelle geht.

Perfekt hat funktioniert! Super vielen lieben Dank!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Heiner

Hi, ich habe ein kleines Problem mit dem codeing:

Dieser Code hier funktioniert nicht und ich vermute weil die readigs einen "." im Namen haben. Was muss ich tun damit das klappt?


define ReadingGroup_THZ readingsGroup Heizung:<%sani_boiler_temp@BD7800>,<Wasser>,WWTemp Wechselrichter:<%scene_day@yellow>,<Sonnenminuten>,sunshine.duration Wechselrichter:<%weather_summer@orange>,<UV-Index>,UV.Index Wechselrichter:<%scene_pool@lightblue>,<Pool-Temp>,sensor.1
attr ReadingGroup_THZ valueFormat { WWTemp => '%1.f °C', sunshine.duration => '%1.f °C',sensor.1 => '%1.f °C' }


Ebenfalls toll waere wenn mir jemand sagt wie ich die Soonendauer von Minuten in Stunden umrechnen kann. Ich meine nicht "einfach durch 60 Teilen" sondern wie der code ausehen muesste.

Vielen Dank fuer die Hilfe.
Heiner
--------------------------------
fhem auf Pi3+
CUL 868MHz, Signalduino 434MHz, HM-CFG-USB
HM, THZ, Kostal, Somfy, Conbee, Pytonbinding, FritzBox, FTUI, MQTT2

justme1968

anführungszeichen drum rum machen:attr ReadingGroup_THZ valueFormat { WWTemp => '%1.f °C', 'sunshine.duration' => '%1.f min','sensor.1' => '%1.f °C' }

für die umrechnung auf stunden z.b. etwas in der art:...,'sunshine.duration' => '{int($VALUE/60) ."h ". $VALUE%60 ."min";}',...

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

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

frank

hallo leute,

ich probiere gerade readingsgroup aus, und komme jetzt nicht weiter. vielleicht kann mir jemand auf die sprünge helfen. hier meine definitionen:
Internals:
   DEF        <Raum>,<Tist>,<Tsoll>,<Mode>,<Tnight>,<Tday>,<Hum>,<battery>,<Vist>,<Vsoll> Thermostat.(WZ|OZ|AZ|Bad|Kueche|SZ|GZ|Bad.OG):measured-temp,desired-temp,controlMode,night-temp,day-temp,humidity,battery,<{ReadingsVal("Ventil.".substr($DEVICE,11),"ValvePosition","?")}@ValvePosition>,<{ReadingsVal("Ventil.".substr($DEVICE,11),"ValveDesired","?")}@ValveDesired> Broetje:ToutIst
   NAME       myTemp
   NR         455
   NTFY_ORDER 50-myTemp
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Broetje    1
     Thermostat.AZ 1
     Thermostat.Bad 1
     Thermostat.Bad.OG 1
     Thermostat.GZ 1
     Thermostat.Kueche 1
     Thermostat.OZ 1
     Thermostat.SZ 1
     Thermostat.WZ 1
   DEVICES:
     ARRAY(0x14abd48)
     ARRAY(0x12ac840)
     ARRAY(0x14af7d8)
     ARRAY(0x149bfc8)
     ARRAY(0x14af1e8)
     ARRAY(0x1495f30)
     ARRAY(0x14afc30)
     ARRAY(0x149c018)
     ARRAY(0x149c128)
     ARRAY(0x14abd58)
   Fhem:
     last_update 1404742143.40404
   Helper:
     Bm:
       Readingsgroup_get:
         cnt        1
         dmx        0
         mAr
         max        0
         tot        0
       Readingsgroup_notify:
         cnt        894
         dmx        0
         max        342
         tot        11469
         mAr:
           HASH(0x13a4698)
           HASH(0x12b7070)
Attributes:
   commands   { 'desired-temp' => 'desired-temp:','controlMode' => 'controlMode:' }
   mapping    { 'Broetje' => 'Garten','Thermostat.AZ' => 'EG Arbeitszimmer','Thermostat.SZ' => 'OG Schlafzimmer','Thermostat.WZ'=>'EG Wohnzimmer','Thermostat.Kueche' => 'EG Küche','Thermostat.GZ' => 'OG Gästezimmer','Thermostat.Bad' => 'EG Bad','Thermostat.Bad.OG' => 'OG Bad','Thermostat.OZ' => 'EG Kaminzimmer','desired-temp' => '' }
   nameStyle  style="color:yellow"
   notime     1
   room       info
   valueFormat { 'measured-temp' => "%2.1f °C",'ToutIst' => "%2.1f °C",'night-temp' => "%2.1f °C",'day-temp' => "%2.1f °C",'humidity' => "%2i %" }
   valueIcon  {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red'}


ich versuche in einer zeile readings eines weiteren devices zu integrieren. mit folgendem code
<{ReadingsVal("Ventil.".substr($DEVICE,11),"ValvePosition","?")}@ValvePosition>
bekomme ich im prinzip auch die richtigen daten an die richtige stelle. leider sind diese daten vom typ "name" und nicht "value". dadurch bekommen sie die gleiche farbe wie meine überschriften. nicht so schön. das geschieht bestimmt durch die spitzen klammern. aber ohne gibt es nur ärger. ist mein vorhaben nicht umsetzbar, oder kenne ich den trick noch nicht?

eine 2. frage wäre, wie könnte ich den hintergrund einer bestimmten, kompletten zeile farblich verändern? in abhängigkeit eines readings zb.

ps: welcher thread ist eigentlich der richtige für fragen? dieser oder update readingsgroup?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

#506
zu 1.:
ich bin gerade dabei einzubauen das man direkt das ein reading eines anderen device referenzieren kann. das ganze wird dann so aussehen:define <rg> readingsGroup define:reading1,reading2,readingx@device,reading4an den reading namen wird also mit @ der andere device name angehängt.

das reading ist dann ein 'echtes' reading das mit valueStyle und valueFormat beeinflusst werden kann.

es ist aber zur zeit nur möglich den anderen device namen fest einzutragen. d.h. den namen aus dem aktuellen device zu erzeugen geht noch nicht. da gibt es noch ein kleines logisches problem das ich erst lösen muss.

ich habe mal eine test version mit dem aktuellen stand angehängt.

zu 2.:
das geht zur zeit nicht. ich könnte mir vorstellen ein attribut rowStyle einzubauen.

gruss
  andre

edit: aktualisierte test version im nächsten post.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

#507
ich habe das ganze noch etwas erweitert. der @device teil kann jetzt auch @{...} sein und man kann von dort eine eigene sub aufrufen die dann den passenden device namen abhängig vom aktuellen device erzeugt.

also das reading so:...,ValvePosition@{valveOfDevice($DEVICE)},...

und in 99_myUtils.pm:sub
valveOfDevice ($) {
  my ($DEVICE) = @_;

  return "Ventil.".substr($DEVICE,11);
}


in deinem fall enthält der code kein leerzeichen und es würde auch direkt gehen:...,ValvePosition@{"Ventil.".substr($DEVICE,11)},...

gruss
  andre

ps: die readings aus einem anderen device werden wie die <{...}> variante auch noch nicht per longpoll aktualisiert. dazu muss ich erst noch ein paar dinge umbauen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

frank

hallo andre,

vielen dank für den blitz-service. hier kommen die updates ja schneller, als man updaten kann.  ;)

augenblicklich stürzt fhem regelmässig nach dem modify der definition ab. ich wollte jedes mal die direkte variante probieren, also
...,ValvePosition@{"Ventil.".substr($DEVICE,11)},....

da nicht zu jedem "primär"-device ein "sekundär"-device existiert, vermute ich diesen umstand als ursache. es wird also auf nicht existierende readings zugegriffen, sofern dass nicht abgefangen wird. ich werde aber nochmal die version mit 99-utils probieren, um diese fälle zu unterbinden.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

nicht existierende readings und nicht existierende devices sollten kein problem sein. bei meinen tests geht es auch damit.

bitte kontrolliere noch mal das du keine leerzeichen eingebaut hast.

steht bei dem absturz etwas im log oder auf der console?

anbei noch mal eine aktualisierte version bei der auch longpoll für die reading@device einträge geht.

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

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