HM-Dis-WM55 -> Texte über nehmen

Begonnen von mipi, 06 April 2015, 14:59:11

Vorheriges Thema - Nächstes Thema

mipi

Nach dem Wiki habe ich die Texte ala "set HM-Dis-WM55_Dis_01 text Fenster\_auf Fenster\_zu" eingegeben.

2015.04.06 14:32:34 3: CUL_HM set HM_3515DC_Dis_01 text hallo\_Micha
2015.04.06 14:33:38 3: CUL_HM set HM_3515DC_Dis_01 text hallo\_Micha Tschüss\_Micha


text :
      <text> max 2 char
      txt01_1 ->set_hallo Micha
      txt01_2 ->set_Tschüss Mic
      txt02_1 ->set_Tür auf
      txt02_2 ->set_Tür zu
      txt03_1 ->Textblock 5
      txt03_2 ->Textblock 6
      txt04_1 ->Textblock 7
      txt04_2 ->Textblock 8
      txt05_1 ->Textblock 9
      txt05_2 ->Textblock 10
      txt06_1 ->Textblock 11
      txt06_2 ->Textblock 12
      txt07_1 ->Textblock 13
      txt07_2 ->Textblock 14
      txt08_1 ->Textblock 15
      txt08_2 ->Textblock 16
      txt09_1 ->Textblock 17
      txt09_2 ->Textblock 18
      txt10_1 ->Textblock 19
      txt10_2 ->Textblock 20
      off nc(no change)
color:blue,green,orange,red,white,yellow
      nc(no change)
icon :closed,error,ic12,ic13,info,newMsg,noIcon,off,ok,on,open,serviceMsg,sigGreen,sigRed,sigYellow


Nach dem Klick auf die Config-Taste will der Schalter noch einmal bestätigt werden, alles sieht gut aus, aber die Texte werden nicht angezeigt!

Zugegeben nicht so schlaue Texte, aber daran kanns doch nicht liegen, dass der Bildschirm schwarz bleibt? Ansonsten ist der benutzbar.

Gruß Micha aus Berlin
__________________________________________________
Gruß aus'm Wedding

RPi         Maxlan               HMCFGLAN           TT
PiUSV     3 Max!-Therm    div. Homematic

mipi

Nachtrag: Vollkommen unklar ist mir auch das ein ->

set HM_3515DC_Dis_01 text Hallo Tschuess

zu

text1 set_Hallo
text2 set_Tschuess

wird (also set_Hallo statt Hallo , weiss nicht wie man das Reading richtig ausgibt)
__________________________________________________
Gruß aus'm Wedding

RPi         Maxlan               HMCFGLAN           TT
PiUSV     3 Max!-Therm    div. Homematic

martinp876

set_ bedeuted, dass es von der Zentrale gesetzt wird oder werden soll. Aber es ist entweder noch nicht abgesendet oder noch nicht bestätigt/rückgelesen.
du solltest also einmal config auslösen, damit FHEM auch schreiben kann - und dann noch einmal lesen.

mipi

Aber ich verstehe das doch richtig, dass mit config die Anlerntaste des Dis gemeint ist? Wenn ich die / mehrmals drücke kommt

1. das Menü Beenden - Zentrale - Übernehmen  ...
2. ich Übernehme ... blinken ..
3. nichts passiert

Noch eine Frage:

bezieht  sich die Doku mit

         set disp01 displayWM short txt02_2 green noIcon txt10_1 red error txt05_2 yellow closed txt02_2 orange open
        set disp01 displayWM long line3 txt02_2 green noIcon
        set disp01 displayWM long line2 nc yellow noIcon
        set disp01 displayWM long line6 txt02_2
        set disp01 displayWM long line1 nc nc closed


txt2_2 auf irgendeine Datenstruktur, evtl.  die aus dem Thread http://forum.fhem.de/index.php/topic,29128.msg226275.html#msg226275? und line1 ... 6 ebenso? Oder ist das wirklich Beispieltext? Hier ist wiki und commandref nämlich nicht konsistent! Oder ich zu d... / leseresistent

Gruß aus Berlin
Micha
__________________________________________________
Gruß aus'm Wedding

RPi         Maxlan               HMCFGLAN           TT
PiUSV     3 Max!-Therm    div. Homematic

martinp876

hi,

den text kann man im DIS ablegen - in Registern - oder ihn dynamisch senden, also beim Tastendruck.

mit "text" setzt du die Register (ist kein Regset da ein String hier exotisch ist und nur schwer reinzupressen). Du kannst also jeder der 10 (in Worten zehn) Kanälen 2 Texte hinterlegen. Diese sind dann text(01..10)_(1..2).
Nun musst du bis zu sechs Zeilen definieren, die bei Btn1 oder 2 long oder short angezeigt werden sollen. das kann ein freitext oder der in den Kanäle hinterlegte sein. Dies wird mit displayWM gemacht.

Das Hinterlegen der Texte in den 10 Kanälen ist komplex und unflexibel. Warum eQ3 das macht ist mir nicht klar - es wird etwas weniger gefunkt, das ist aber minimal...

Ich empfehle also, text01_1... zu vergessen. Zu komplex für die meisten - nicht hinreichend für die, die es tatsächlich verstehen.

Du solltest also je button 1 und 2 sowie short und long die 6 Lines definieren.
set dis(1/2) displayWM (long|short) line(1|2|3|4|5|6) <text> <color> <icon>

Nachdem hier statische Texte erscheinen ist es wiederum recht sinnlos. immer der Gleiche text, das soll das? Also Dynamik - mit evaluate-option "e:"

set dis_01 displayWM short  line1 e:{myLineA(1,0)}
set dis_01 displayWM short  line2 e:{myLineA(2,0)}
...
set dis_01 displayWM long   line1 e:{myLineA(1,1)}
...
set dis_02 displayWM short  line1 e:{myLineA(1,2)}
....
set dis_02 displayWM long   line1 e:{myLineA(1,3)}
...
set dis_02 displayWM long   line6 e:{myLineA(6,3)}

myLineA ist eine Funktion, die du definieren musst, Sinnvoll in 99_myUtils - siehe Anhang.

Die set displayWM solltest du in einem config ausführen, das du NACH dem init von FHEM auslöst. Das so ein File fester Bestandteil einer jeden Installation sein sollte ist zumindest meine feste Meinung.

Eigentlich halte ich das für den einzigen sinnvollen Ansatz, ein dis-wm zu füttern


mipi

#5
Vielen Dank Martin für die Hilfe ... gibts keinen "Donate" Button?

Ich habe nach deiner Anleitung und mit Hilfe des Wikis

  • eine 99_myUtils.pm angelegt,
  • die Datenstruktur und die Funktion myLineA($$) kopiert ... oder sollte ich deine komplette 99_myUtils übernehemen?
  • in der fhem.cfg die -> set dis01 short  line1 e:{myLineA(1,0)} usw angelegt.
  • deinen Hinweis "Die set displayWM solltest du in einem config ausführen, das du NACH dem init von FHEM auslöst" habe ich nicht verstanden, ich hoffe ich liege mit der fhem.cfg richtig.

Aber: Ich bekomme jetzt einen Fehler, wenn ich die fhem.cfg auslöse ->

define eval must return 3 values

so oft ich das set aufrufe .... hmmm, liegt das evtl. an dem Problem mit der config s.o.
__________________________________________________
Gruß aus'm Wedding

RPi         Maxlan               HMCFGLAN           TT
PiUSV     3 Max!-Therm    div. Homematic

martinp876

Sicher ein zeitliches problem. Myutil muss erst existieren, bevor das set kommando ausgefuehrt werden darf. Myline gibt 3 werte zurueck.
Wichtig ist, fhem.cfg zu unterteilen, also in (min ) 2 files teilen. Das erste ganz normal. Das 2. Includest du, da sind die sets drin. Das include myfhem.cfg fuehrts du aus mit einem notify nach initialized. Habe ich jetzt nicht hier, suche nach global:initialized


Alternativ zum testen kannst du die kommandos einfach eingeben. Dann sollte es bis zum reboot gehen

mipi

#7
Schon versucht

Hmmmm .... mit einem notify nach initialized ?

So in etwa?
...
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create

include ./FHEM/fhem_devices.cfg

Du meinst das hier oder:

define postInit notify global:INITIALIZED include /setup/cfg_fhemPostInit.cfg

(aus dem wm55 thread)
...


In fhem_devices.cfg ist der ganze Rest, ich mache das mal bei Gelegenheit sinnvoll.


Leider kein Erfolg, abspeichern der der fhem.cfg zum Check bringt:

ERROR:
define eval must return 3 values:

Was bedeutet / wie macht man  "einem notify nach initialized" ?



Nachtrag 2, aus dem Log:
2015.04.07 22:48:35 1: PERL WARNING: Use of uninitialized value within @cnt in addition (+) at ./FHEM/99_myUtils.pm line 96, <$fh> line 237.
2015.04.07 22:48:35 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/99_myUtils.pm line 96, <$fh> line 237.
2015.04.07 22:48:35 3: postInit return value: define eval must return 3 values:
2015.04.07 22:48:35 0: Server started with 73 defined entities (version $Id: fhem.pl 8320 2015-03-29

Nachtrag 3,

aus dem wm55-Thread:
define postInit notify global:INITIALIZED include /setup/cfg_fhemPostInit.cfg

Richtig?
__________________________________________________
Gruß aus'm Wedding

RPi         Maxlan               HMCFGLAN           TT
PiUSV     3 Max!-Therm    div. Homematic

mipi

Grrrr ... warum geht:

include ./FHEM/cfg_fhemPostInit.cfg

und

define postInit notify global:INITIALIZED include ./FHEM/cfg_fhemPostInit.cfg

nicht?

Ich glaub ich geh heiern!
__________________________________________________
Gruß aus'm Wedding

RPi         Maxlan               HMCFGLAN           TT
PiUSV     3 Max!-Therm    div. Homematic

martinp876

das funktioniert bei mit:
define userCfg notify global:INITIALIZED include setup/cfg_fhemUser.cfg
"./" ist evtl nicht notwendig, sollte auch nicht schaden
"setup" ist die direktory in der ich alle meine Konfigurationen aufbewahre.

hilfreich könnte sein
attr global modpath .

zu setzen, wenn nicht schon so ist.

Wird das file im notify fall gefunden?