Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo Andre,

also: Bei "Anlagenfrostschutz:texdtField" wird das Reading sofort gesetzt.
bei "Anlagenfrostschutz:-10,-5,0,5,10" passiert nach Auswahl des Menüpunktes nichts, der Wert des Readings bleibt auf dem alten Wert.
Wird da tatsächlich die setFN aufgerufen?
Ok. Steht im Log. Setze nur noch nicht den Wert an der HzAnlage (einmal für 10 und für -10):
2014.03.04 12:14:24 3: UNMETH_TEMP: low 100 high 0
2014.03.04 12:14:24 4: Wcmcom set HzAnlage Anlagenfrostschutz 10 low 100 high 0
2014.03.04 12:14:24 4: Wcmcom set.. telegram {"prot":"coco","telegramm":[[10,0,2,2560,0,0,100,0]]}
2014.03.04 12:15:13 3: UNMETH_TEMP: low 156 high 255
2014.03.04 12:15:13 4: Wcmcom set HzAnlage Anlagenfrostschutz -10 low 156 high 255
2014.03.04 12:15:13 4: Wcmcom set.. telegram {"prot":"coco","telegramm":[[10,0,2,2560,0,0,156,255]]}

Heißt also, ich muss verifizieren, was die Hz draus macht und dann das Reading danach selbst setzen?

Und was ist mit dem "textField"?
Ist das ein Bug und warum hat den bisher niemand bemerk?

Gruß

Elektrolurch

configDB und Windows befreite Zone!

justme1968

ja natürlich musst du die readings aus deinem set selber passend setzen. da gibt es keinen Automatismus. genau da kannst du ja dann passend reagieren.

textField war bis jetzt nur in verbindung mit einem dummy verwendent und über ein notify ausgewertet. ich habe jetzt hier: http://forum.fhem.de/index.php/topic,14701.msg145182.html#msg145182einen kleinen patch gepostet bei dem angegeben werden kann ob set oder wie bisher setreading verwendet werden soll.

du würdest dann in einem modul <cmd>:textField,set verwenden.

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

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

Elektrolurch

Ok, prima. Probiere ich morgen aus.
Das wäre auch eine sinnvolle Ergänzung zu Stefans "Einsteiger-Doku" für das programmiern von Modulen.
Ich bin da schon beim dummy drüber gestolpert, da musste ich nämlich auch einige Verrenkungen machen, um inkorrekte Datums- und Zeitangaben abzufangen, die nämlich auch dann immer schon im Reading standen. Ich hatte mir nämlich neben dem Textfeld dafür noch einen "set" - Knopf gesetzt, um auf Plausi checken zu können, bzw. mir ein notify auf die Redings  gesetzt (zweiter Fall). Also zwei verschiedene Wege...
configDB und Windows befreite Zone!

strauch

Zitat von: strauch am 26 Februar 2014, 12:35:42
define reading_battStatus readingsGroup .*:[Bb]attery,batteryLevel
attr reading_battStatus alias Batterie Status
attr reading_battStatus mapping %ALIAS
attr reading_battStatus notime 1
attr reading_battStatus valueFormat {"batteryLevel" => "%.1f V"}


Danke fürs prüfen.

@andre kannst du hier noch mal drüber schauen ob ich einen Fehler habe?
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

ich kann keinen fehler finden. bist du ganz sicher das das batteryLevel reading wirklich bei allen devices nur eine zahl ohne einheiten enthält?

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

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

strauch

Ah du hast recht. Das ist wohl irgendwann nachgepflegt worden. Früher stand noch kein V bei der Spannung inzwischen steht das so auch in den Readings. Danke. Habs entfernt, mal schauen.
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.

Elektrolurch

Hallo,

das mit den Einheiten ist so ein generelles Problem, wenn das device die Einheiten im Reading mitliefert, hat man später Probleme mit dem Rechnen / Vergleichen. Zumindest spuckt perl dann immer Fehlermeldungen aus. Ich bin der Meinung, das Device soltle nur den Wert liefern, die Einheit gehört immer in die Darstellungsebene.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

ja.

eigentlich sollten alle readings ohne einheiten sein.

am besten fragst du mal beim modul autor an.

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

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

strauch

#368
Dann schreib ich dem Martin mal ne PN. Wobei ich dachte dafür gibts %EVPART1 2 usw.?
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.

micomat

hi leute,

ich hab seid n paar tagen folgenden fehler immer wieder mal im log:
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE Temp$/ at ./FHEM/33_readingsGroup.pm line 491.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE Temp$/ at ./FHEM/33_readingsGroup.pm line 496.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE Temp$/ at ./FHEM/33_readingsGroup.pm line 780.


meine readingsgroup-cfg sieht wie folgt aus:
define rgTHZ readingsGroup Mythz:*Temp
attr rgTHZ group THZ


kann mir hier jemand weiterhelfen?

danke
markus
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

justme1968

es muss .*Temp heißen.

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

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

micomat

shitfuckmistpunkt! :) und ich such mir hier stundenlang einen nach dem fehler ab...
danke, funktioniert hats trotzdem.

gruß
markus
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

fhainz

Hallo!

Ich wollte gerade bei einer readingsGroup das nameStyle Attribut anwenden. Leider schaff ich es nicht nur einen Namen klein geschrieben darzustellen.

nameStyle { if($READING eq "clearDate"){ style="font-size:10px;" } }

Kann es sein das ich nur alle Namen gleichzeitig um-stylen kann und nicht jeden für sich selbst?


Grüße

justme1968

das sollte auch unterschiedlich gehen. da steckt die gleiche routeine dahinter.

mach mal bitte ein komplettes beispiel das probleme hat.

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

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

fhainz

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