Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

cerberus

Hallo Elektrolurch

meinst du so

{ "fc0_tempMin06" => {"$VALUE °C | " . ReadingsVal("WetterCom","fc0_tempMax06",0) .  " C"} }


leider bekomme ich dann als Reading nur das zu sehen


HASH(0x2baf358)
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

Elektrolurch

Na, wie sieht denn ein hash in perl aus?

{'key' => 'value', ...}

und value ist hier ein ausführbares Stück perl-Code was in {} steht.
also so:
{ "fc0_tempMin06" => "{'$VALUE °C | ' . ReadingsVal('WetterCom','fc0_tempMax06',0) .  ' C'}" }

und wie schon oben geschrieben: innerhalb des Strings " ... " werden die Strings für die Parameter der Funktionen usw. mit ' ...' geschrieben, da ansonsten ja der äußere String zu früh schließt.
Bitte das also mal nachvollziehen...

Elektrolurch


configDB und Windows befreite Zone!

Invers

Ich habe in der Commandref gelesen, dass man die RG mit dem Befehl
set rg_Test visibility hide
ausblenden kann. Zumindest habe ich das so verstanden.

hide
will hide all visible instances of this readingsGroup


Das klappt aber so nicht.
Habe ich den Befehl falsch verstanden?
Was muss ich denn tun, um eine komplette RG auszublenden? Ich finde einfach nichts im Forum dazu.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Elektrolurch

Klappt bei mir auch nicht. Vermutlich stimmt die Command-Ref nicht oder es fehlt die Beschreibung einer zusätzlichen Bedingung, die noch eingestellt werden müsste.
Was aber geht:

set rgt disable 3

Dann ist sie komplettt ausgeblendet.
Allerdings muss man dann mit "trigger js...." den Screen neu aktualisieren lassen, damit auch die Anzeige aktualisiert wird.

Elektrolurch
configDB und Windows befreite Zone!

Invers

Danke dir, aber das scheint bei mir auch nicht zu helfen.
set rg_test disable 3
wird bei mir verweigert mit dem Hinweis auf visibility.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

cerberus

Zitat von: Elektrolurch am 12 April 2016, 10:17:50
Na, wie sieht denn ein hash in perl aus?

{'key' => 'value', ...}

und value ist hier ein ausführbares Stück perl-Code was in {} steht.
also so:
{ "fc0_tempMin06" => "{'$VALUE °C | ' . ReadingsVal('WetterCom','fc0_tempMax06',0) .  ' C'}" }

und wie schon oben geschrieben: innerhalb des Strings " ... " werden die Strings für die Parameter der Funktionen usw. mit ' ...' geschrieben, da ansonsten ja der äußere String zu früh schließt.
Bitte das also mal nachvollziehen...

Elektrolurch

Hallo Elektrolurch, das mit den zwei Reading in einer Spalte habe ich jetzt hin bekommen, leider scheitere ich aber noch daran ein Icon mit darunter stehendem Text anzeigen zulassen, damit dieses zentriert dargestellt wird. Würde es aber gern ohne sub machen. Kannst du mir nochmal einen Tip geben?

  :-\  bei Perl wurschtel ich mich immer so durch  ::)

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

Tommy82

Zitat von: Tommy82 am 01 März 2016, 21:59:52
Hi,
habe heute folgende Meldung im Log:

2016.03.01 21:43:43.154 1: PERL WARNING: Argument "-" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 525.
2016.03.01 21:43:43.155 3: stacktrace:
2016.03.01 21:43:43.156 3:     main::__ANON__                      called by ./FHEM/33_readingsGroup.pm (524)
2016.03.01 21:43:43.156 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (997)
2016.03.01 21:43:43.157 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1086)
2016.03.01 21:43:43.157 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1592)
2016.03.01 21:43:43.157 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (897)
2016.03.01 21:43:43.158 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.03.01 21:43:43.158 3:     main::FW_Read                       called by fhem.pl (3147)
2016.03.01 21:43:43.158 3:     main::CallFn                        called by fhem.pl (654)
2016.03.01 21:43:44.305 1: PERL WARNING: Argument "-" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 525.
2016.03.01 21:43:44.306 3: stacktrace:
2016.03.01 21:43:44.306 3:     main::__ANON__                      called by ./FHEM/33_readingsGroup.pm (524)
2016.03.01 21:43:44.307 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (997)
2016.03.01 21:43:44.307 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1086)
2016.03.01 21:43:44.307 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1592)
2016.03.01 21:43:44.308 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (897)
2016.03.01 21:43:44.308 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.03.01 21:43:44.308 3:     main::FW_Read                       called by fhem.pl (3147)
2016.03.01 21:43:44.309 3:     main::CallFn                        called by fhem.pl (654)


Keiner eine idee waas da bei mir schief läuft
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

marvin78

Ein list von der Readingsgroup wäre hilfreich. Der Fehler sagt im Grunde was falsch ist: Du verwendest irgendwo ein - wo eine Zahl erwartet wird.

Tommy82

Zitat von: marvin78 am 25 April 2016, 10:22:11
Ein list von der Readingsgroup wäre hilfreich. Der Fehler sagt im Grunde was falsch ist: Du verwendest irgendwo ein - wo eine Zahl erwartet wird.

Hi,
ja das ist das Problem, ich hab einige readingsGroups, und weiss nicht in welcher der Fehler sein könnte.

Hab schon mal in der fhem.cfg nach "-" gesucht, aber ohne eine auffälligkeit zu finden.

Wie könnte ich dem Problem denn am einfachsten auf die schliche kommen?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Elektrolurch

Zitat:
set rg_test disable 3

disable ist ein Attribut, also

attr rg disable 3

Elektrolurch
configDB und Windows befreite Zone!

Elektrolurch

Hallo,

in: « Antwort #1510 am: 10 April 2016, 13:15:39 »
hatte ich gefragt, ob auch Attribute in einer readingsGroup  so verwendet werden können, dass der Name des Attributes dynamisch berechnet wird, wie es laut Command-Ref ja für readings gehen soll.
Und ob jemand weiß, wie die korrekte Syntax lautet.
Ich bekomme es jedenfalls für Attribute nicht hin.
Niemand eine Idee?

Elektrolurch
configDB und Windows befreite Zone!

Elektrolurch

Hallo Andre,

wenn ich in einer rg über das Attribut "commands" für ein reading ein textField für die Eingabe definiere, so erscheint auch nur das Textfeld ohne den Namen des readings.
Mache ich das Gleiche für ein Attribut (!?attname),  so wird dem Textfeld der Attributname vorangestellt. Der lässt sich auch nicht mit valuePrefix überschreiben.
Wird statt des textField z.B. eine Auswahlliste für das Attribut per "commands" definiert, so wird der Attributname (so wie es sein sollte) der Liste NICHT vorangestellt.
Lässt sich das für Textfelder ev. auch so anpassen?
(Damit die Symetrie zu readings stimmt :-))

Ich hänge mal den Auszug für die rg an.

Elektrolurch
configDB und Windows befreite Zone!

pschlaeppi

Guten Tag,

Ich versuche eiine Readingsgroup für meine Dachfenster zu erstellen mit dem Ziel das ich das Fenster über das Icon öffnen und schliessen lassen kann. Daneben in einer weiteren Spalte möchte ich gerne in einer Dropdown Liste verschiedene Zeiten wählen können nach denen das Fenster automatisch wieder geschlossen werden soll. Ist der Wert des Delays 0, soll es offen bleiben bis manuel geschlossen wird (Im Sommer der Default). Im Winter soll dann automatisch der Default auf 5 Minuten gesetzt werden.

Das Fenster wird über den state eines Dummy gesteuert (Auf,Zu). Die Delay Werte sollen im Reading "Delay" des selben Dummy gespeichert werden.

Sobald ein Wert im Dropdown selektiert wird, wollte ich das mittels notify abfangen und mittels einem kleinen Modul über setreading ins Delay Reading des Dummy schreiben.

Fenstersteuerung durch tippen des Icons funktioniert bestens. Sobald ich nun im Dropdown aber einen Wert selektiere, wird der auch in das Dummy Reading geschrieben, leider aber auch gleich noch in den state des Dummy der eigentlich nur die Zu, Auf Stati enthalten sollte.

Ist es überhaupt möglich meine Idee umzusetzen mit den Delay Werten im selben Dummy?
Ich habe jetzt schon ne ziemliche Anzahl Dummys und möchte die Menge gerne etwas deckeln.

Attached meine rG Definition und Dummy Screenshot nach Dropdown aktivierung.

Was mache ich falsch, wie packe ich das am besten an?

Gruss Philipp

justme1968

schau dir die setList und readingList attribute des dumy an. damit legst du zum einen die möglichen kommandos fest und zum zweiten welche kommandos nicht in state landen sondern in einem anderen reading. dazu brauchst du also kein notify.

testen kannst du dann z.b. mit webCmd und es über das commands mapping in die readingsGroup einbauen.

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

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

pschlaeppi

Hallo Andre,

Erst mal herzlichen Dank, hat bis aufs testen mit webCmd bestens funktioniert.

Das testen hab ich irgendwie nicht hingekiegt. Wie müsste der webCmd aussehen damit die Dropdown des Delays angezeigt wird?
      attr dm_eg.wg.SW.Fenster webCmd Delay

Der funktionierende Dummy sieht nun so aus:
define dm_eg.wg.SW.Fenster dummy
attr dm_eg.wg.SW.Fenster alias Dachfenster Wiga
attr dm_eg.wg.SW.Fenster devStateIcon Zu:fts_window_roof@:Auf Auf:fts_window_roof_open_2@red:Zu
attr dm_eg.wg.SW.Fenster eventMap on:Zu off:Auf
attr dm_eg.wg.SW.Fenster group Dachfenster Wiga
attr dm_eg.wg.SW.Fenster readingList Delay
attr dm_eg.wg.SW.Fenster room Dachfenster,Wiga
attr dm_eg.wg.SW.Fenster setList Zu,Auf


Die readingsGroup so:
# ReadingsGroup Dachfenster
define rg.Dachfenster readingsGroup <%fts_window_roof>,<Status>,<Delay>,<Rain>,<Lock>\
dm_og.fl.SW.Fenster:state,Delay,state@ou.xx.RS.Regen.Sensor,temperature@ou.xx.TH.Pergola\
<>,<>,<>\
dm_eg.wg.SW.Fenster:state,Delay,state@ou.xx.RS.Regen.Sensor,temperature@ou.xx.TH.Pergola\
<>,<>,<>\

attr rg.Dachfenster commands {'state.Zu' => 'set $DEVICE Auf','state.Auf' => 'set $DEVICE Zu','Delay' => 'Delay:0,5,15,30,60,120,180'}
attr rg.Dachfenster group 01 Dachfenster
attr rg.Dachfenster nameStyle style="font-weight:bold"
attr rg.Dachfenster noheading 1
attr rg.Dachfenster nolinks 0
attr rg.Dachfenster room Dachfenster
attr rg.Dachfenster style style="border:3px;;background:none;;box-shadow:none;;"
attr rg.Dachfenster valueIcon {state => '%devStateIcon','temperature'<=2 => 'secur_lock@red', 'temperature'>2 => 'secur_open@lightgreen'}
attr rg.Dachfenster valueStyle style="text-align:center"


Bei der readingsGroup möchte ich nun gerne in Abhängigkeit der Temperatur eines Aussensensors ein Lock Open oder Closed Icon anzeigen. Da limitierte Programmierfähigkeiten vorhanden sind, funktioniert mein obiger erster Versuch nicht unerwartet leider nicht.

Wie könnte das angestellt werden?

Danke

Gruss Philipp