Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

P.A.Trick

Zitat von: fhainz am 16 März 2014, 12:59:33
Hier die list meiner RG:
Internals:
   CFGFN      ./FHEM/readingsGroups.cfg
   DEF        d_stromverbrauchAllgemein:,<Aktuell>,power,<Durchschnitt Heute / Monat>,<{ReadingsVal("d_stromverbrauchAllgemein","power_avg_day","").' W / '.ReadingsVal("d_stromverbrauchAllgemein","power_avg_month","").' W';}>
d_stromverbrauchAllgemein:,<Min / Max Heute>,<{ReadingsVal("d_stromverbrauchAllgemein","power_min_day","").' W / '.ReadingsVal("d_stromverbrauchAllgemein","power_max_day","").' W';}>,<Min / Max Monat>,<{ReadingsVal("d_stromverbrauchAllgemein","power_min_month","").' W / '.ReadingsVal("d_stromverbrauchAllgemein","power_max_month","").' W';}>
hourCounterAllgemein:,<Heute>,countsPerDay,<Gestern>,appCountsPerDay
hourCounterAllgemein:,<Aktuelle Stunde>,appCountsPerHourTemp,<Letzte Stunde>,appCountsPerHour
hourCounterAllgemein:,<Aktuell Woche>,appCountsPerWeekTemp,<Letzte Woche>,appCountsPerWeek
hourCounterAllgemein:,<Aktuells Monat>,appCountsPerMonthTemp,<Letztes Monat>,appCountsPerMonth
hourCounterAllgemein:,<Gesamt>,countsOverall,<Start der Messung>,clearDate
   NAME       stromverbrauchAllgemeinRG
   NR         577
   NTFY_ORDER 50-stromverbrauchAllgemeinRG
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     d_stromverbrauchAllgemein 1
     hourCounterAllgemein 1
   DEVICES:
     ARRAY(0x7fe042bab0a8)
     ARRAY(0x7fe043ad9250)
     ARRAY(0x7fe043aea008)
     ARRAY(0x7fe045808ac8)
     ARRAY(0x7fe0458c8190)
     ARRAY(0x7fe043ccb660)
     ARRAY(0x7fe045a93240)
   Fhem:
     last_update 1394970913.34849
Attributes:
   alias      Stromverbrauch
   group      Stromverbrauch Allgemein
   mapping     
   nameStyle  { if($READING eq "clearDate"){ 'style="font-size:10px"' } }
   noheading  1
   room       5.2 Strom
   valueFormat { if($DEVICE eq "d_stromverbrauchAllgemein"){ sprintf("%.2f W", $VALUE);}elsif($READING eq "clearDate"){ sprintf("%s", $VALUE); } else{sprintf("%.2f kWh", $VALUE/1000);} }
   valueStyle { stromverbrauchGesamtAllgemeinRGvalueStyle($DEVICE,$READING,$VALUE); }


valueStyle aus 99_myUtils
sub stromverbrauchGesamtAllgemeinRGvalueStyle($$$){

  my $device = shift;
  my $reading = shift;
  my $value = shift;
 
  # hourCounter Values sind in W
 
  if( $reading eq "state" ){
    if( $value > 3000 ){
      'style="color:red"'
    }
    elsif( $value > 2000 ){
      'style="color:orange"'
    }
    else{
    'style="color:green"'
  }
  }
  elsif( ( $reading eq "power_avg_day" || $reading eq "power_avg_month" ) ){
    if( $value > 300 ){
      'style="color:red"'
    }
    elsif( $value > 250 ){
      'style="color:orange"'
    }
    else{
    'style="color:green"'
  }
  }
  elsif( ( $reading eq "countsPerDay" || $reading eq "appCountsPerDay" ) ){
    if( $value > 5000 ){
      'style="color:red"'
    }
    elsif( $value > 4000 ){
      'style="color:orange"'
    }
    else{
    'style="color:green"'
  }
  }
  elsif( ( $reading eq "countsPerWeek" || $reading eq "appCountsPerWeek" ) && $value > 35000 ){
    'style="color:red"'
  }
  elsif( ( $reading eq "countsPerMonth" || $reading eq "appCountsPerMonth" ) && $value > 140000 ){
    'style="color:red"'
  }
  elsif( $reading eq "clearDate" ){
    'style="font-size:10px"'
  }
  else{
    'style="color:green"'
  }
}


Ist mein code falsch?

Grüße


Hallo fhainz, kannst du mir sagen wie du die einzelnen Werte im Reading ermittelst?
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

fhainz

Hallo!

Die bekomme ich vom HourCounter Modul.

Grüße

P.A.Trick

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

da das label von deinem clearDate nicht automatisch von der readingsGroup erzeugt wird sondern von dir über das <Start der Messung>. d.h. du kannst nicht auf clearDate prüfen. das readinsg oder der value auf den du prüfen musst heisst so wie das label das du selber vergeben hast. am besten baust du mal ein Log ein und schaust was wirklich ankommt.

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

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

fhainz

Zitat von: justme1968 am 16 März 2014, 15:47:27
da das label von deinem clearDate nicht automatisch von der readingsGroup erzeugt wird sondern von dir über das <Start der Messung>. d.h. du kannst nicht auf clearDate prüfen.
Aber klar, ich ja den Namen und nicht den Wert ändern. -.-

Danke nun klappts natürlich!

Grüße

CQuadrat

Hallo Zusammen,

da ich Homematic-Geräte benutze, habe ich das Heizungswerte2-Beispiel aus dem Wiki (http://www.fhemwiki.de/wiki/ReadingsGroup) für mich etwas angepasst.

Durch einen eingebauten Log
  {Log 1, "myTemplisten_HeizungUpDown: return -> $ret "};
am Ende der Routine myTemplisten_HeizungUpDown($$) (unmittelbar vor dem return), habe ich festgestellt, dass diese Routine (auch bei Inaktivität) alle paar Minuten mehrfach aufgerufen wird, wenn ich die Readingsgroup im Webfrontend anzeigen lasse. Ist das normal?
Abgesehen davon, regiert das Setzen der "neuen" Temperaturen beim Klicken auf Up oder Down sehr träge.


(...)
2014.03.24 14:32:23.481 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:23.512 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:23.986 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:24.017 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:24.258 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:24.289 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:24.528 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:24.559 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:24.644 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:24.973 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:25.002 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:25.086 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:25.402 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:25.432 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:32:25.661 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:32:25.691 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5

(...)

2014.03.24 14:35:24.323 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:24.386 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:25.410 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:25.471 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:25.977 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:26.037 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:26.527 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:26.591 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:26.762 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:27.473 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:27.536 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:27.707 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:28.357 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:28.420 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5
2014.03.24 14:35:28.902 1: myTemplisten_HeizungUpDown: return -> %control_arrow_upward@red%setreading Hzkp_Flur desired-new 19.5
2014.03.24 14:35:28.960 1: myTemplisten_HeizungUpDown: return -> %control_arrow_downward@blue%setreading Hzkp_Flur desired-new 18.5

(...)



Danke und Gruß

Christoph
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

justme1968

je nach genauer konfiguration wird die routine bei jeder änderung an einem reading aufgerufen das einfluss auf die anzeige haben kann.

das kannst du minimieren wenn du bei allen beteiligten devices event-on-change-reading entsprechend setzt.

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

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

CQuadrat

Danke für den Hinweis - werde ich mal ausprobieren.

Kann das auch die Ursache für das träge Schaltverhalten sein?

FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

justme1968

da müsstes du mehr logs liefern.

bei allen tests die ich gemacht hatte hat das userinterface immer sofort reagiert. egel wie schnell geklickt habe.

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

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

CQuadrat

Wie man im obigen Log sieht, wird in der Routine myTemplisten_HeizungUpDown($$) bei einem Notify jeweils in die Zweige if( $CMD eq "up" ) { und if( $CMD eq "down" ) { verzweigt -  und das obwohl nicht im Frontend angeklickt wird. Das ist aber doch definitiv nicht normal. Oder?
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

justme1968

in meiner ursprünglichen version wurden die pfeile abhängig von der soll temperatur eingefärbt und deshalb würde da die routine z.b. bei jedem notify auf desired aufgerufen.

du kannst in der readingsGroup angeben für welche readings der code zuständig ist.

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

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

CQuadrat

Zitat von: justme1968 am 24 März 2014, 14:47:29
bei allen tests die ich gemacht hatte hat das userinterface immer sofort reagiert. egel wie schnell geklickt habe.

Das träge Schaltverhalten liegt ziemlich eindeutig am RasPI. Ich habe testhalber FHEM mal auf meinem Notebook laufen lassen. Ergebnis: sofortige Reaktion beim Klicken auf Up bzw Down.

Jetzt muss ich mal schauen, wo der RasPI hier bremst. Webfrontend ist sowieso recht langsam unter dieser Konfiguration. Vielleicht sollte ich auf eine andere Plattform ausweichen....
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

stromer-12

Ich habe mal im FLOORPLAN eine Logausgabe eingefügt.

Floorplan bringt Fehlermeldung:
ERROR: Floorplan 1_Veranda&arg.ba.hz=desired-temp&dev.ba.hz=ba.hz&val.ba.hz=17.5&cmd.ba.hz=set not defined

Im Logfile steht folgende URL-pfad
2014.03.28 18:42:14 3: FLOORPLAN:floorplan/1_Veranda&arg.ba.hz=desired-temp&dev.ba.hz=ba.hz&val.ba.hz=17.5&cmd.ba.hz=set

Bei funktionierenden Befehl steht noch "/Heizungswerte?" anstelle des 1. "&"  drin.
2014.03.28 18:42:53 3: FLOORPLAN:floorplan/1_Veranda/Heizungswerte?arg.ve.hz=desired-temp&dev.ve.hz=ve.hz&val.ve.hz=20.5&cmd.ve.hz=set

Wieso wird nur bei der ersten Zeile die Name der Readingroup eingefügt und bei den anderen nicht?
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

justme1968

#388
ich kann das problem reproduzieren. ich habe aber noch überhaupt keine idee wie es dazu kommt.

auf den 'normalen fhemweb seiten' werden die dropdown menüs in der readings group so wie jedes andere element per POST abgesendet.

auf dem floorplan werden sie mit GET abgesendet. und dabei stimmt dann die url nicht. es schaut gerade eher so aus als ob es zufall ist das die erste zeile doch geht.

mal sehen was ich noch rausfinde....

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

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

justme1968

ich habe eine lösungsidee mal sehen was ulim dazu sagt. es müsste dazu eine kleinigkeit am floorplan geändert werden.

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

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