Batterie-Icon anzeigen (s. Bilder)

Begonnen von Invers, 21 Januar 2014, 23:27:21

Vorheriges Thema - Nächstes Thema

justme1968

und noch was: wenn du ans {} und der definition der readingsGroup jeweils noch ein @reading_name anhängst bekommst du auch eine automatische aktualisierung per longpoll wenn sich der wert des readings ändert.

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

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

Waldmensch

Ich hatte, um diesen Effekt zu erreichen, das reading mit
fht_bad:actuator,<{ReadingsVal($DEVICE,"measured-temp","0")."°C"}>.................
über den actuator eingeleitet, weil der sehr häufig kommt und dann die readinggroup mit Attribut "alwaysTrigger" auf 1 versehen. Zumindest werden die Icons live gesetzt. Ich verstehe das jetzt so, das ich den Aktuator vorn weglassen kann und statdessen so schreiben kann?
<{ReadingsVal($DEVICE,"measured-temp","0")."°C"}@measured-temp>.................

Ich habe ja noch Wettersensoren drin. Würde dann
.....<{ReadingsVal("CUL_WS_8","humidity","0")."%"}@humidity>...... auch funktionieren oder bezieht sich das "@reading" nur auf die Readings des Eingangsdevices (hier fht_bad)

Hier nochmal die eine ganze Zeile wie sie aktuell ist mit Wettersensor
fht_wohnzimmer:actuator,<{ReadingsVal($DEVICE,"measured-temp","0")."°C"}>,<{ReadingsVal("CUL_WS_8","humidity","0")."%"}>,<{ReadingsVal($DEVICE,"desired-temp","0")."°C"}>,<{fht_devStateIcon($DEVICE)}>,<{fhttk_devStateIcon("fht_tk_wohnzimmer")}>

justme1968

das alwaysTrigger kannst du zur zeit ignorieren. das ist dazu da auch zu triggern wenn die readingsGroup gerade nirgends angezeigt wird. die optimierung musste ich aber komplett abschalten weil ein fhemweb update dazwischen gekommen ist.

ein <{...}> ohne @reading wird grundsätzlich nur ein mal beim aufbau der seite ausgewertet. wenn es auch ausgewertet werden soll wenn sich ein reading ändert um dann die readingsGroup per longpoll zu aktualisieren muss das zugehörige reading hinzugefügt werden. das @reading ist also nur wichtig wenn du die seite mit der readingGroup offen lässt und sie automatisch aktualisiert werden soll.

ich meine es funktionier für jedes device das die readingsGroup kennt. wenn es von diesem device nicht irgendwo ein normales reading gibt sollte es reichen wenn du ans ende noch ein CUL_WS_8:dummyhängst. also eine eigene zeile für das device mit einem reading das es nicht gibt. damit kennt die readingGroup das device aber zeigt keine extra zeile an weil es das reading nicht gibt.

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

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

Waldmensch

Zitat von: justme1968 am 09 Februar 2014, 13:17:45
ich meine es funktionier für jedes device das die readingsGroup kennt. wenn es von diesem device nicht irgendwo ein normales reading gibt sollte es reichen wenn du ans ende noch ein CUL_WS_8:dummyhängst. also eine eigene zeile für das device mit einem reading das es nicht gibt. damit kennt die readingGroup das device aber zeigt keine extra zeile an weil es das reading nicht gibt.

Okay, soweit alles verstanden. Danke für die Erklärung.

Eine Sache ist mir noch nicht ganz klar mit dem dummy(s) hinten anfügen. Ich habe ja z.B. 3x fht_tk die ich als Dummy anlegen müßte. Oben müßte ich dann jeweils <{....}@Window> eintragen? Das würde heißen, das egal welcher FHTTK gerade triggert alle 3 Icons geprüft werden? Oder muß ich das device noch mit ins spiel bringen, Marke <{....}@fht_tk_kueche:Window> o.ä.

Vielen Dank für Deine Geduld  :)

justme1968

es wird zur zeit nur der reading name geprüft. das man dort das device angeben kann muss ich noch einbauen. mal sehen ob der : von der syntax her passt.

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

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

Waldmensch

Zitat von: justme1968 am 09 Februar 2014, 13:44:41
es wird zur zeit nur der reading name geprüft. das man dort das device angeben kann muss ich noch einbauen. mal sehen ob der : von der syntax her passt.

gruss
  andre

Also habe ich es richtig verstanden, das wenn einer von den 3 FHTTK dummys triggert alle icons geprüft werden. Ist ja nicht schlimm - ich wills nur verstehen. Wenn Du später die devices mit ins Spiel bringen würdest, könnte man dann auch quasi auf die dummys verzichten?

justme1968

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

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

Waldmensch


locodriver

#113
Hallo @all:

Ich habe mich heute mal an die Sache rangemacht und nach etwas probieren das so hinbekommen (s.u.). Das ist mein erster Versuch mit readingsgroup. ;)

Wo kann ich die gelbe Tabellenbeschriftung erweitern (wärmer, kälter, Feuchtigkeit, Batterie)?

Ich habe HM-Geräte, der Windowstatus wird bei den alten TCs nicht im Gerät sondern nur im Kanal "_WindowRec" angezeigt. Wie kann ich das Reading entsprechend angeben, damit es angezeigt wird und die Batterie des Fensterkontaktes würde auch noch ganz gut hierher passen, dann wäre alles komplett. Lässt sich das realisieren - dann muss ja noch (irgendwie) der Fenstersensor (WZ_Balkon bzw. BD_Fenster) mit eingefügt werden.

Ich weiß auch nicht, ob die von mir verwendeten und angepassten Codeteile für meine Geräte schon vollständig angepasst sind - im Wiki ist ja nur ein FHT-Bsp. angegeben. Mittlerweile gibt es ja schon 2 verschiedene HM-Geräte und noch Max.

Hier mal der Code:

##############################################
# $Id: 99_myUtils.pm 0 2013-11-18 Uwe $

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}

sub
myUtils_HeizungUpDown($$)
{
  my($DEVICE,$CMD) = @_;

  my $icon = $CMD;
  my $VALUE = ReadingsVal($DEVICE,"desired-new","20" );
  $VALUE = ReadingsVal($DEVICE,"desired-temp","20" ) if( !$VALUE || $VALUE == 0 );
  my $link;

  if( $CMD eq "up" ) {
    $icon = "control_arrow_upward";
    $VALUE += 0.5;

    if( $VALUE <= 24 ) {
      $icon .= "\@red";
      $link = "setreading $DEVICE desired-new $VALUE";
    }
  } elsif( $CMD eq "down" ) {
    $icon = "control_arrow_downward";
    $VALUE -= 0.5;

    if( $VALUE >= 16 ) {
      $icon .= "\@blue";
      $link = "setreading $DEVICE desired-new $VALUE";
    }
  }

  my $notify = "notifyHeizungUpDown";
  if( !defined($defs{$notify}) ) {
    CommandDefine(undef, "$notify notify .*:desired-new.* { myUtils_HeizungUpDownNotify(\$NAME,\$EVTPART1); }"  );
  }

  my $ret = "%$icon";
  $ret .= "%$link" if( $link );

  return $ret;
}
sub
myUtils_HeizungUpDownNotify($$)
{
  my($DEVICE,$VALUE) = @_;

  return if( $VALUE == 0 );

  my $at = "triggerHeizungUpDown_$DEVICE";
  CommandDelete(undef, $at) if( defined($defs{$at}) );
  CommandDefine(undef, "$at at +00:00:30 {my \$v = ReadingsVal(\"$DEVICE\",\"desired-new\",undef);fhem(\"set $DEVICE"."_Clima desired-temp \$v\") if( \$v ); fhem(\"setreading $DEVICE desired-new 00\");}" );

  return undef;
}

1;


Hier habe ich am Ende den Kanal in "_Climate" umbenannt.

Meine cfg:

define Heizungswerte readingsGroup <%sani_heating>, < >,<Act>,<Soll>,<Ist> .._Regler:actuator,desired-temp,measured-temp,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired.*>,desired.new,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired.*>,humidity,window,battery|WZ_Balkon:state,battery
attr Heizungswerte nameStyle style="color:yellow;;font-weight:bold"
attr Heizungswerte room 010Wohnung
attr Heizungswerte valueIcon {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'window.closed' => 'fts_window_1w@lightgreen', 'window.open' => 'fts_window_1w_open@red'}
attr Heizungswerte valueStyle {($VALUE eq "00")?'style="visibility:hidden"':''}


Hier "fehlen" die Prozentzeichen hinter der Feuchtigkeit und vom "WZ_Balkon" ist nichts zu sehen  :(.

Die Balkontür sieht so aus:
define WZ_Balkon CUL_HM ......
attr WZ_Balkon .devInfo ......
attr WZ_Balkon .stc 80
attr WZ_Balkon actCycle 028:00
attr WZ_Balkon actStatus alive
attr WZ_Balkon autoReadReg 4_reqStatus
attr WZ_Balkon eventMap /tilted:gekippt/open:offen/closed:geschlossen/
attr WZ_Balkon expert 2_full
attr WZ_Balkon firmware 2.0
attr WZ_Balkon model HM-SEC-RHS
attr WZ_Balkon peerIDs 00000000,........,
attr WZ_Balkon room 001Wohnzimmer
attr WZ_Balkon serialNr IEQ.....
attr WZ_Balkon subType threeStateSensor


Danke schon mal für Tipps in die richtige Richtung,

Uwe

Edit: Die Tabellenüberschriften habe ich schon mal hinbekommen :-)

... und die Einheiten hinter den Temperaturen und der Feuchtigkeit auch...

define Heizungswerte readingsGroup <%sani_heating>, < >,<Act>,<Soll>,<Ist>,<kälter>,< >,<wärmer>,<Feuchte>,<Batt.TC> .._Regler:actuator,desired-temp,measured-temp,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired.*>,desired.new,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired.*>,humidity,window,battery
attr Heizungswerte valueFormat { 'desired-temp' => "%.1f&deg;;C", 'measured-temp' => "%.1f&deg;;C",'humidity'=>"%.0f %"}
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

cerberus

Hallo, ich habe zu Beginn folgende Variante mit Hilfe von Wiki realisiert, jedoch folgendes Problem.

Wähle ich die Temperatur aus, sei es mittels der fest vorgegebenen Werten (Wiki Variante 1) als auch mittels Pfeile (Wiki Variante 2) wird das ReadingFenster nicht aktualisiert sondern die FHEM Startseite angezeigt. Ich muss dann erst wieder den Raum auswählen um das Reading wieder zu sehen. Wird bei euch, nachdem ihr die Temperatur gewählt habt, der Raum bzw. das Reading aktualisiert oder springt es auch auf die Startseite von fhem zurück?

Danke und Gruß
cerberus
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

justme1968

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

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

cerberus

Ja, dies hier steht im LOG

Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
Use of uninitialized value $FW_webArgs{"detail"} in concatenation (.) or string at ./FHEM/33_readingsGroup.pm line 249.
2014.02.22 21:20:35 2: FHT set Heizung_EG_Dusche desired-temp 20.0
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

justme1968

die warnung hab ich eben behoben. das sollte aber nichts mit deinem problem zu tun haben.

du solltest beim beiden varianten auf der aktuellen seite bleiben.

ist deine fhem version aktuell? mit welchem browser machst du das? hast du longpoll aktiv?

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

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

cerberus

Wie peinlich, hatte longpoll tatsächlich abgeschaltet...danke justme1968

Werde mal weiter basteln  :)

Hat jemand den aktuellen Code für die Variante 2 evt. sogar mit dem Mode und der Auswahl zwischen auto und manuell? Im Wiki ist es ja nicht so ganz aktuell.
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

cerberus

Hallo, ist es auch möglich anstatt der Pfeile ein DropDown Menu zur Auswahl der Soll Temperatur als Feld einzufügen? So ist es einfacher die Wunschtemperatur zu wählen. Muss ich die Pfeile mehrfach drücken um eine größeren Temperaturänderung einzustellen, dauert es relativ lang da die Seite ja erst aktualisiert wird bevor ich das nächste mal drücken kann. So könnte ich die Wahlthemperatur direkt anwählen.

Gruß
cerberus
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi