Enable/Disable Button für WeekdayTimer via readingsGroup

Begonnen von tpm88, 16 Mai 2014, 10:49:27

Vorheriges Thema - Nächstes Thema

tpm88

Hallo Tipetan,

schau dir mal meine Antwort #5 ( http://forum.fhem.de/index.php/topic,23655.msg169379.html#msg169379 ) weiter oben im Thread an.

Die Attribute definierst Du am besten über das FHEM Webfrontend und _NICHT_ durch direktes Einsetzen in die fhem.cfg. Andernfalls müssen nämlich einige Semikolons und ggf. Klammern verdoppelt werden - siehe den Abschnitt Perl Specials in der Command Ref.

Hier nur zum Vergleich trotzdem meinen Abschnitt aus der fhem.cfg:
define rg_timer_Wasser readingsGroup timer_Wasser_..:disabled,+DEF,<{rg_timer_Wasser_show_conditional($DEVICE,"nextUpdate")}@disabled>,<{rg_timer_Wasser_show_conditional($DEVICE,"nextValue")}@disabled>
attr rg_timer_Wasser alias Scheduling
attr rg_timer_Wasser commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
attr rg_timer_Wasser group Bewässerung
attr rg_timer_Wasser notime 1
attr rg_timer_Wasser room Terrasse
attr rg_timer_Wasser sortDevices 1
attr rg_timer_Wasser style style="border:0px;;background:none;;box-shadow:none"
attr rg_timer_Wasser valueFormat { if ( $READING =~ m/.*DEF/ ) {      my @text = split(" ", $VALUE);;   shift @text;;   return join(" ", @text) }}
attr rg_timer_Wasser valueIcon { 'disabled.0' => 'Restart', 'disabled.1' => 'Shutdown' }


Das direkte Editieren der fhem.cfg (und wieder Einlesen mit rereadcfg ) ist nicht nur wegen der "Perl Specials" selten eine gute Idee. Siehe hierzu unzählige Diskussionen im Forum.... Wenn doch, sollte man zumindest sehr genau wissen, was man tut...

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Tipetan

Hallo,
das würde ich gerne probieren aber der Bereich zum einfügen von Attributen ist nicht da? Siehe Anhang.
Die Updates sind alle auf dem neusten Stand.
Weißt du warum er nicht da ist?

Gruß
Tipetan
>-> Eine NULL kann ein bestehendes Problem verzehnfach <-<
Raspberry Pi 2 Model B | FHEM 5.6 | CUL V3.4 (culfw 1.58 + Insta) | HMLAN | Berker (INSTA) Funkkomponenten
Entwicklung auf Raspberry Pi 2 B+

Tipetan

Hallo,
Fortschritt! Es lag am Internet Explorer. Ich hab dan mal den Firefox genommen und er hat alles richtig dargestellt.
Dann habe ich die Attribute über das Frontend eingegeben und es zeigte sich zumindest eine Änderung. der Code war den Schaltzeiten gewichen.

Icons sehe ich leider noch nicht obwohl sie unter \fhem\www\images\Default\ vorhanden sind.
Ne Idee?

Gute Abend
>-> Eine NULL kann ein bestehendes Problem verzehnfach <-<
Raspberry Pi 2 Model B | FHEM 5.6 | CUL V3.4 (culfw 1.58 + Insta) | HMLAN | Berker (INSTA) Funkkomponenten
Entwicklung auf Raspberry Pi 2 B+

tpm88

Zitat von: Tipetan am 08 Oktober 2014, 21:57:54
Weißt du warum er nicht da ist?

Sorry - keine Ahnung, wie sowas passieren kann.

Vorschlag: Du löscht nochmal die komplette RG rg_timer_Rollo aus deiner Konfiguration raus.

delete rg_timer_Rollo

Dann nur das "define" Kommando in der Eingabezeile im FHEMWeb Frontend eingeben, um die RG neu anzulegen.
Und dann solltest Du auch die Attribute über das Frontend eingeben können.

Zum Schluss ein save, um die Konfiguration zu sichern. Wenn Du am Ende partout die Konfig zu der RG in eine separate include cfg Datei auslagern möchtest, kannst Du die entsprechenden Zeilen - nachdem alles funktioniert - aus der fhem.cfg ausschneiden.

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

tpm88

Zitat von: Tipetan am 08 Oktober 2014, 22:24:54
Icons sehe ich leider noch nicht obwohl sie unter \fhem\www\images\Default\ vorhanden sind.
Ne Idee?

Schwierig mit so wenigen Informationen....
- wie heissen die genauen Dateinamen der Icons ? => müssten timer_off.png und timer_on.png sein wenn du die Konfig weiter oben nicht verändert hast
- du musst FHEM neu starten, wenn du die Icon-Dateien erst nach FHEM-Start in das obige Verzeichnis kopiert hast, nach meiner Erfahrung zieht FHEM "dynamisch" keine neuen Icons an

Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

krikan

Zitatdu musst FHEM neu starten, wenn du die Icon-Dateien erst nach FHEM-Start in das obige Verzeichnis kopiert hast, nach meiner Erfahrung zieht FHEM "dynamisch" keine neuen Icons an
Dagegen sollte der Befehl rereadicons http://fhem.de/commandref#FHEMWEB ohne Neustart helfen.

tpm88

Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Tipetan

Guten Abend,
hab noch viel probiert und am Ende lag es daran, das das Attribut Disable im Timer nicht angelegt war.
define Timer.Rollo.EG1 WeekdayTimer EGRollo1 1234567|06:00|rauf 1234567|19:26|runter
  attr Timer.Rollo.EG1 alias Timer_Wohnzimmer
  attr Timer.Rollo.EG1 devStateIcon rauf:black_up.png runter:black_down.png
  attr Timer.Rollo.EG1 group Timer_Wohnzimmer
  attr Timer.Rollo.EG1 icon timer
  attr Timer.Rollo.EG1 room Timer
  attr Timer.Rollo.EG1 disable 0
  attr Timer.Rollo.EG1 sortby 1

define rg.Timer.Rollo.EG1 readingsGroup Timer.Rollo.EG1:disabled,+DEF,<{rg_timer_Rollo_show_conditional($DEVICE,"nextUpdate")}@disabled>,<{rg_timer_Rollo_show_conditional($DEVICE,"nextValue")}@disabled>
  attr rg.Timer.Rollo.EG1 commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
  attr rg.Timer.Rollo.EG1 alias Timer Wohnzimmer
  attr rg.Timer.Rollo.EG1 group Timer_Wohnzimmer
  attr rg.Timer.Rollo.EG1 sortby 2
  attr rg.Timer.Rollo.EG1 icon timer
  attr rg.Timer.Rollo.EG1 room Timer
  attr rg.Timer.Rollo.EG1 valueFormat { if ( $READING =~ m/.*DEF/ ) { my @text = split(" ", $VALUE);; shift @text;; return join(" ", @text) }}
  attr rg.Timer.Rollo.EG1 valueIcon { 'disabled.0' => 'timer_on', 'disabled.1' => 'timer_off' }


Weiß jemand wie ich Gruppennamen und/oder Devicenamen (der Name oder alias vom Define) ausblenden kann.

Vielen dank für eure Unterstützung
Wenn jemand Interesse an meinen Timericons hat. Im Anhang.
Gute Nacht
>-> Eine NULL kann ein bestehendes Problem verzehnfach <-<
Raspberry Pi 2 Model B | FHEM 5.6 | CUL V3.4 (culfw 1.58 + Insta) | HMLAN | Berker (INSTA) Funkkomponenten
Entwicklung auf Raspberry Pi 2 B+

tpm88

Zitat von: Tipetan am 09 Oktober 2014, 23:01:21
Weiß jemand wie ich Gruppennamen und/oder Devicenamen (der Name oder alias vom Define) ausblenden kann.
=> Attribute noheading und/oder nonames der readingsGroup. Siehe CommandRef.

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

cerberus

Hallo, was läuft hier noch flasch? Ich wollte alle Schaltzeiten in der readingGroup anzeigen lassen sowie auch aktiv bzw. inaktiv schalten können. Es werden die Readings der Timer welche mit WTimer_ beginnen abgefragt. Ich habe dazu die Definition wie folgt geändert .....readingsGroup WTimer_.*:disabled.............
Leider bekomme ich jetzt folgende Anzeige, siehe Bild.

Kann mir jemand bitte helfen und mit sagen was da noch falsch läuft.

meine Config
define rg_WTimer readingsGroup WTimer_.*:disabled,+DEF,<{rg_WTimer_show_conditional($DEVICE,"nextUpdate")}@disabled>,<{rg_WTimer_show_conditional($DEVICE,"nextValue")}@disabled>
attr rg_WTimer commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
attr rg_WTimer room Timer
attr rg_WTimer valueFormat { if ( $READING =~ m/.*DEF/ ) { my @text = split(" ", $VALUE)
attr rg_WTimer valueIcon { 'disabled.0' => 'Restart', 'disabled.1' => 'Shutdown' }


Eintag in der 99_myUtils
sub rg_WTimer_show_conditional($$)
{
  my ($DEVICE,$READING) = @_;
  return ( ReadingsVal($DEVICE, "disabled", "1") eq "0" )?
     ReadingsVal($DEVICE, $READING, "reading_undef") : "disabled";
}


Grüße
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

cerberus

Alles gut, habe  die Lösung hier im Forum schon gefunden  :)

das maskieren der ; war bei valueFormat falsch, sollte im wiki mal geändert werden.

Als Tipp noch, man könnte man das define auch so schreiben, so mache ich das.
define rg_WTimer readingsGroup TYPE=WeekdayTimer:disabled.............


richtig ist es so
define rg_WTimer readingsGroup TYPE=WeekdayTimer:disabled,+DEF,<{rg_WTimer_show_conditional($DEVICE,"nextUpdate")}@disabled>,<{rg_WTimer_show_conditional($DEVICE,"nextValue")}@disabled>
attr rg_WTimer commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
attr rg_WTimer room Timer
attr rg_WTimer valueFormat { if ( $READING =~ m/.*DEF/ ) { my @text = split(" ", $VALUE);; shift @text;; return join(" ", @text) }}
attr rg_WTimer valueIcon { 'disabled.0' => 'Restart', 'disabled.1' => 'Shutdown' }


Zitat von: cerberus am 14 November 2014, 09:48:06
Hallo, was läuft hier noch flasch? Ich wollte alle Schaltzeiten in der readingGroup anzeigen lassen sowie auch aktiv bzw. inaktiv schalten können. Es werden die Readings der Timer welche mit WTimer_ beginnen abgefragt. Ich habe dazu die Definition wie folgt geändert .....readingsGroup WTimer_.*:disabled.............
Leider bekomme ich jetzt folgende Anzeige, siehe Bild.

Kann mir jemand bitte helfen und mit sagen was da noch falsch läuft.

meine Config
define rg_WTimer readingsGroup WTimer_.*:disabled,+DEF,<{rg_WTimer_show_conditional($DEVICE,"nextUpdate")}@disabled>,<{rg_WTimer_show_conditional($DEVICE,"nextValue")}@disabled>
attr rg_WTimer commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
attr rg_WTimer room Timer
attr rg_WTimer valueFormat { if ( $READING =~ m/.*DEF/ ) { my @text = split(" ", $VALUE)
attr rg_WTimer valueIcon { 'disabled.0' => 'Restart', 'disabled.1' => 'Shutdown' }


Eintag in der 99_myUtils
sub rg_WTimer_show_conditional($$)
{
  my ($DEVICE,$READING) = @_;
  return ( ReadingsVal($DEVICE, "disabled", "1") eq "0" )?
     ReadingsVal($DEVICE, $READING, "reading_undef") : "disabled";
}


Grüße
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

das was im wiki steht ist so korrekt. inklusive diesem hinweis:
ZitatBitte beachten: die folgenden Beispiele enthalten keine Maskierungen oder Verdoppelungen für ; und Zeilenende, sondern sind so angegeben, wie sie im Web Interface im Befehls-Eingabefeld oder nach Klick auf DEF eingegeben werden. Beim manuellen Einfügen in eine Konfigurationsdatei sind diese Maskierungen oder Verdoppelungen natürlich vorzunehmen.

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

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

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

mit dem nächsten update wird es möglich sein in einer readingGroup attribute auch direkt über commands zu setzen. die syntax ist dann wie bei den set kommandos auch:define <rg> readingsGroup TYPE=WeekdayTimer:...,?disable,...
attr <rg> commands { disable => 'disable:' }


im wiki gibt es ein beispiel dazu.

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

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

tomspatz

#29
Ist das denn OK das beim betätigen des Schalters z.B. auf meinem Tablett, parallel dazu im fhem Frontend angezeigt wird Konfiguration speichern.
Also oben bei Save config erscheint sofort ein rotes Fragezeichen.

Wie kann ich dazu angezeigten Status Ändern. Das "disabled" habe ich in der 99_myUtils in deaktiviert umbenannt aber das "on" kriege ich nicht geändert.