Textfelder und Klapmenüs

Begonnen von Elektrolurch, 06 August 2013, 15:22:17

Vorheriges Thema - Nächstes Thema

justme1968

schau mal hier: Link. vielleicht findet sich eine lösung.

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

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

Elektrolurch

Hallo Andre,

das funktioniert, allerdings mit einem kleinen Schönheitsfehler.
Lampe aus, dann sieht des so aus:
Deckenfluter  aus ein <slider für dim> 10 aus <Klappmenü> 05 set
Das Klappmenü enthält die drei Werte.
Wählt man einen aus, z.B. 20,  und drückt set, dann siehts so aus:
Deckenfluter ramp-aus-time 20 ein <slider> 20 aus <Klappmenü> 05 set
Schönheitsfehler: Der Status "ramp-off-time 20" wird durch das eventMapping zu "ramp-aus-time 20" und merkwürdigerweise nimmt der Slider für den Dimmer auch den Wert 20 an.
Ergänzung: Der Befehl "ramp-off-time" startet nicht das dim-down, sondern setzt nur die Zeit für die Rampe. Daher wird der Status "ramp-off-time" auch nur einmal nach dem Setzen angezeigt und nicht mehr, wenn die rampe durch einmaliges Drücken der aus-Taste gestartet wird. ok. Passt also so.

Schön wäre es noch, wenn man einen Webcode vor das Klappmenü setzen könnte, wie z.B. <Schlummerzeit in sek.>, da habe ich aber nichts gefunden.
Auch denke ich daran, so etwas für die desired-temperature in Räumen zu verwenden. Vmtl. kommt man aber dann nicht um einen dummy herum....???

Code:
attr Mz_Deckenfluter eventMap /on:ein/off:aus/ramp-off-time:ramp-off-time:10,60,600,1800/
attr Mz_Deckenfluter group Beleuchtung
attr Mz_Deckenfluter model fs20di
attr Mz_Deckenfluter room MarinasZimmer
attr Mz_Deckenfluter webCmd ein:dim:aus:ramp-off-time

Gruß

Elektrolurch


configDB und Windows befreite Zone!

justme1968

für textfelder habe ich eben hier: Link eine implementierung gepostet.

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

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

Elektrolurch

Hallo Andre,

danke, dass Du da an mich gedacht hast. Bin leider erst heute dazu gekommen, es einzubauen.
Das Textfeld erscheint auch und ich kann da einen Wert eingeben. Der landet aber nicht im state von dem dummy:


define Abwesend_bis dummy
attr Abwesend_bis alias Abwesend bis
attr Abwesend_bis group Automatik
attr Abwesend_bis room Automation
attr Abwesend_bis setList text:textField  Eingabefeld
attr Abwesend_bis webCmd text:Eingabefeld

der state ist:
   STATE      Eingabefeld
Leider verstehe ich auch nicht so ganz Dein Beispiel.
Kannst Du mir da mal auf die Sprünge helfen?

Danke

Elektrolurch
configDB und Windows befreite Zone!

justme1968

wenn du willst das es in state landet musst du es auch angeben. du hast text angegeben dann ladet es in einem reading text.

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

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

Elektrolurch

Hallo Andre,

text in state umgewandelt.
setList state:textField

webCmd state

Jetzt bekommt state aber gar keinen Wert....

Elektrolurch
configDB und Windows befreite Zone!

justme1968

define Abwesend_bis dummy
attr Abwesend_bis alias Abwesend bis
attr Abwesend_bis group Automatik
attr Abwesend_bis room Automation
attr Abwesend_bis setList state:textField
attr Abwesend_bis webCmd state

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

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

Elektrolurch

Hallo Andre,

genauso hatte ich es ja schon abgeändert:
setList state:textField
webCmd state

Klappt aber nicht, Ergenis ist:

(Spalte1( Abwesend bis
(Spalte 2) textField
(Spalte 3( state: <textField> "textField" steht im Textfeld. Gebe ich etwas ein, z.B. ein Datum und bestätige das mit <Return>, dann wird die Seite neu aufgebaut, aber es steht da immer noch "textField".
Strange.

Elektrolurch

state:textField
configDB und Windows befreite Zone!

justme1968

drück mal nicht return sondern klicke nach der eingabe mal irgendwo anders auf der seite.

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

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

Elektrolurch

Hallo Andre,

mit Klicken klappts. Klicken ist aber (s.u.) nicht so mein Ding, brauche die Tastatur. Kann man das auch irgendwie mit der Eingabetaste abschliessen?

Abwesend bis
15.12.2014
state:15.12.2014
Und wie krige ich das "state:" noch weg? Bisserl unschön, für den unbedarften User.

Elektrolurch
configDB und Windows befreite Zone!

justme1968

das es mit return nicht geht schaue ich mir an. eventuell liegt das auch am browser.

nimm statt state ein 'richtiges' reading. da kannst du dir auch einen sprechenden namen überlgen. z.b. Datum.

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

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

Elektrolurch

Hallo Andre,

dann wären wir ja wieder bei dem reading "text" (bzw. dann "Datum", was gut klingt).
ok.
Dann muss ich aber mal nachfragen, wie ich das darstelle:
Bislang habe ich da für die Abwesenheits-Steuerung der Heizung zwei dummys definiert:
Abwesend mit Klappmenü und Werten: Nein,Party,Urlaub
Abwesend_bis: für Datum und/oder Uhrzeit

Beide stelle ich in einer Group dar.

Wenn ich jetzt auf Abwesend_bis verzichte und stattdessen ein reading (Datum) in Abwesend anlege, wie kann ich das denn dann darstellen?
setLis zweimal definieren geht ja nicht.
und webCMD müsste ja einmal für "state" und einmal für "Datum" sein.

So was habe ich auch im Forum noch nicht gesehen.
Oder brauche ich doch zwei dummys?

Elektrolurch
configDB und Windows befreite Zone!

justme1968

du brauchst nur einen dummy mit zwei readings. sobald der wert gesetzt wird wird ganz normal ein event erzeugt wie  bei allen anderen readings auch. schau mal im envent viewer oder mit inform timer. da kannst du dich per notify dran hängen. wenn du den wert abfragen willst geht es auch wie bei jedem anderen reading mit ReadingsVal(...).

setList definierst du ein einziges ma mit state und mit datuml:define Abwesend dummy
attr Abwesend setList state:Nein,Pary,Urlaub Datum:textField
attr Abwesend webCmd state:Datum

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

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

Elektrolurch

Hallo Andre,

super, klappt. Da kann ich mir noch ein paar dummys sparen und ev. das noch dynamisch machen, d.h. wenn bspw. "Abwesend" von "Nein" auf etwas anders geht, in dem notify für state dann erst das webCMD von "state" auf "state:Datum" setzen und vice-versa. Müsste doch gehen?

Ich hatte schon mal versucht, bei einem FS20 Dimmer mehrere Kommandos (slider und Klappmenü) in eine Zeile zu schreiben, da die aber wohl beide auf "state" gehen, klappte das wohl nicht.
Nochmals danke für die Hilfe.

Elektrolurch
configDB und Windows befreite Zone!

Elektrolurch

Hallo Andre,

zum textField habe ich noch eine Frage:
Jetzt habe ich ein shutdown -. restart durchgeführt und bekomme folgende Fehlermeldung bzgl. des Textfeldes:

reload: Error:Modul 99_myUtils deactivated:
 Global symbol "$FW_ME" requires explicit package name at FHEM/FW_textField.pm line 23, <$fh> line 6.
Compilation failed in require at ./FHEM/99_myUtils.pm line 9, <$fh> line 6.
BEGIN failed--compilation aborted at ./FHEM/99_myUtils.pm line 9, <$fh> line 6.



Die FW_textField habe ich am 21.9. ins FHEM - Verzeichnis kopiert.
In der 99_myutils sthet am Anfang:

use FritzBoxUtils;
use FW_textField;


und in der
sub
myUtils_Initialize($$)
{

...
$data{webCmdFn}{textField}="FW_textFieldFN";

...

Kein update zwischendurch...

Eine Idee?

Elektrolurch
 
configDB und Windows befreite Zone!