HomeMatic Funk-Statusanzeige - HM-Dis-WM55

Begonnen von Roaster, 14 November 2014, 20:33:48

Vorheriges Thema - Nächstes Thema

jens-hoppel

#210
Hallo Martin,
ich habe, wie schon weiter oben beschrieben, im Moment einige Übertragungsprobleme.
Ich habe den Disply mit Clear all erstmal leer gemacht, neues Peer der Kanäle 01 und 02 durchgeführt.
Die festen Texte wieder gesetzt. Configtaste und versucht alles wieder zu übertragen. HM-LAN blinkert auch
freundlich, am Schluss der Übertragung leuchtet die rote Status-LED sehr lange. Die Set´s wurden nicht
übertragen. Stehen auch noch bei den einzelnen Kanälen im Status set_Text.
Was soll ich jetzt sinnvolerweise machen. Das Display in ein Werksreset versetzen ?

lg Jens
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

Posti123

Zitat von: martinp876 am 08 Februar 2015, 11:29:57
Geht doch. Ist im beispiel enthalten. Mache ein ((readingsval()<10)?"on":"off")
Dann wird das on oder off icon eingeblendet... fertig
oh ok! Die Zeile habe ich übersehen. Vielen Dank! Genial!
18xHM-CC-RT-DN, 5xHM-TC-IT-WM-W-EU, HMLAN, 2xJeeLink 868, 1xJeeLink433, 1xCUL868, HM-LC-Bl1PBU-FM, HM-LC-Sw2-FM, HM-LC-SW1-FM, HM-LC-Sw1PBU-FM, 5xHM-Sec-SC-2, 2xHM-Sec-SCo, HM-ES-TX-WM, HM-Sen-MDIR-O-2, HM-WDS10-TH-O, 6xTechnoline, 2x PCA301,2xHM-PB-2-WM55-2,2xHM-RC-4-2,2xHM-WDS30-T-O, HM-SEC-WDS-2

martinp876

Es beist sich noch leicht. Config uebertragen mit
Kommando absetzen
Anlernen und taste druecken

Klappt bei mir recht gut. Message wiederholen auf min 3 einstellen.

Im normalbetrieb keine konfigs schicken, die klappen ohne anlernknopf nicht. Ggf ein clear msgEvents schicken, um configs zu loeschen. Wenn es nicht klappt, etwas warten.... die q muesste nach ablauf geloescht werden

Posti123

Zitat von: jens-hoppel am 08 Februar 2015, 11:51:19
Hallo Martin,
ich habe, wie schon weiter oben beschrieben, im Moment einige Übertragungsprobleme.
Ich habe den Disply mit Clear all erstmal leer gemacht, neues Peer der Kanäle 01 und 02 durchgeführt.
Die festen Texte wieder gesetzt. Configtaste und versucht alles wieder zu übertragen. HM-LAN blinkert auch
freundlich, am Schluss der Übertragung leuchtet die rote Status-LED sehr lange. Die Set´s wurden nicht
übertragen. Stehen auch noch bei den einzelnen Kanälen im Status set_Text.
Was soll ich jetzt sinnvolerweise machen. Das Display in ein Werksreset versetzen ?

lg Jens

Ich kann die Übertragungsprobleme nicht so bestätigen. Habe auch Repeat auf 3.Aallerdings ist mein Display sehr nah am HM_LAN. Auch hab ich festgestellt das nachdem abschicken und Configtaster drücken schon 10s vergehen sollten.
18xHM-CC-RT-DN, 5xHM-TC-IT-WM-W-EU, HMLAN, 2xJeeLink 868, 1xJeeLink433, 1xCUL868, HM-LC-Bl1PBU-FM, HM-LC-Sw2-FM, HM-LC-SW1-FM, HM-LC-Sw1PBU-FM, 5xHM-Sec-SC-2, 2xHM-Sec-SCo, HM-ES-TX-WM, HM-Sen-MDIR-O-2, HM-WDS10-TH-O, 6xTechnoline, 2x PCA301,2xHM-PB-2-WM55-2,2xHM-RC-4-2,2xHM-WDS30-T-O, HM-SEC-WDS-2

jens-hoppel

Ich hatte mir meine Probleme wohl übers Netzwerk reingezogen,
das ging soweit dass FHEM nur noch gemeldet hat: Cannot load module CUL_HM.
Nachdem ich meine FritzBox richtig geputzt habe, alle Teile mit Powerreset, läuft
jetzt alles wieder.
Danke @Martin für die Erweiterung, werde heute Abend testen.
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

jens-hoppel

Hallo Andre,
du hast ja auch FHT´s verbaut, und weißt hier sicherlich bescheid.
Martin hatte ja in seinem neuen Update folgenden Code (hier nur abgewandelt auf mich):
set Display_02 displayWM short line2 e:{("o:".ReadingsVal("FHT_3034","temperature","-")."-p:".ReadingsVal("FHT_3034","pressure","-"),"blue","noIcon")}

Rückmeldung von FHEM:
text too long e:{("o:".ReadingsVal("FHT_3034","temperature","-")."-p:".ReadingsVal("FHT_3034","pressure","-"),"blue","noIcon")}
Name von meinem FHT, welches ich für den Test ausgewählt habe ist FHT_3034.
Fehlt mir hier noch ein Zwischenschritt ?
lg Jens
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

strauch

Kann dir leider noch keine Antwort geben. Habe gestern nur kurz versucht per e:{Window_Script} mein Script aufzurufen ging aber auch nicht weil Text too long. Am Wochenenden kann ich vielleicht noch mal in Ruhe schauen.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

martinp876

Der darzustellende text darf 12 zeichen nicht ueberschreiten. Aktuell wird er sonst nicht ausgegeben. Ich werde wohl einbauen, dass einfach die ersten 12 zeichen ausgegeben werden.
Problem ist, dass eine fehlermeldung nicht bei kommandeingabe ausgegeben werden kann. Ein error log waaere moeglich.
Du kannst das kommando in {} einfach in die kommandozeile pasten..... ok, nur den teil fuer den text. Dann siehst du, was ausgegeben werden sollte.

jens-hoppel

ZitatDu kannst das kommando in {} einfach in die kommandozeile pasten..... ok, nur den teil fuer den text. Dann siehst du, was ausgegeben werden sollte.

Danke Martin für den Tipp, bei der Ergebnissausgabe liegt ja sicherlich der Fehler für die Feldüberschreitung von 12 Stellen, so kann ich das dann vorher sehen was kommt, oder auch nicht kommt  :-\
Teste ich heute Abend.
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

jens-hoppel

#219
Also irgendwie bekomme ich das nicht hin:

gebe ich in der Kommandozeile ein:
{("".ReadingsVal("FHT_3034","temperature","-"))}
dann bekomme ich als Rückmeldung:
20.8

gebe ich ein:
set Display_02 displayWM short line2 e:{("".ReadingsVal("FHT_3034","temperature","-"))}
bekomme ich als Rückmeldung:
text too long e:{("".ReadingsVal("FHT_3034","temperature","-"))}

Edit:
Nach einem neuen Update, bekomme ich jetzt was auf die Anzeige
Die Leerzeichen werden ja für die Syntax benötigt "text color icon".
Leerzeichen sind aber lt. eQ-3 vorgesehen.  @Martin, gibt es noch eine
Möglichkeit Leerzeichen einzubinden ?
22.8 C
sieht schöner aus wie:
22.8-C

lg Jens

FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

martinp876

#220
klar gehen leerzeichen.

das ungelöste Problem ist nur, dass FHEM bei der der kommandoeingabe leerzeichen als trenner ansieht.

gerade getestet, funktioniert wir erwartet: sollte ein Reading ein blank beinhalten wird es ohne Probleme ausgegeben.

Für das kommando displayWM müsste ich einen parser einbauen, der leerzeichen unterscheidet zwischen "trenner" und "in-string-blank". Ebenso würde es die kommadozeile lesbarer machen.....
ist aktuell nicht drin.

p.s.: das "". zu beginn kannst du weglassen, wenn du keinen text voranstellen willst
set Display_02 displayWM short line2 e:{(ReadingsVal("FHT_3034","temperature","-"))}

jens-hoppel

Zitatp.s.: das "". zu beginn kannst du weglassen, wenn du keinen text voranstellen willst
set Display_02 displayWM short line2 e:{(ReadingsVal("FHT_3034","temperature","-"))}

Danke, habe ich dann auch schon gemerkt.

ZitatFür das kommando displayWM müsste ich einen parser einbauen, der leerzeichen unterscheidet zwischen "trenner" und "in-string-blank". Ebenso würde es die kommadozeile lesbarer machen.....
ist aktuell nicht drin.
Super, danke im Vorraus  ;)
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

d.stratmann

Ich habe mir mal den Script aus dem Homemativ Forum als Vorlage genommen und diesen umgebaut.
Ich kann es leider noch nicht testen, mein Display ist noch unterwegs zu mir!
Aber vielleicht hat ja jemand Lust mal zu testen oder sieht gar schon ein paar Fehler.
Da ich noch Neuling bin, bin ich über jeder Hilfe/Verbesserung und Tips froh.

Meine Idee war zusätzlich, wenn alles geht z.B. den Hochtaster in vorwärts Richtung laufen zu lassen und den Runtertaster entgegen gesetzt.
Das aber erst, wenn der Rest läuft.

In meine 99_myUtils.pm habe ich folgende Variable eingetragen:

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
  our $DI_Counter = 1;
}


Dann hier der Script:
DI_FL:Short.* 
{

if (($main::DI_Counter < 1) || ($main::DI_Counter > 2))

{
$main::DI_Counter = 1;
}

if $main::DI_Counter == 1

{
fhem("set DI_FL displayWM short line1 Wohnzimmer white noIcon");;
fhem("set DI_FL displayWM short line2 e:{("WZ-SOLL:".ReadingsVal("HK_WZ_Clima","desired-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line3 e:{("WZ-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line4 e:{("WZ-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line5 e:{("WZ-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line6 e:{("WZ-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
}

if $main::DI_Counter == 2

{
fhem("set DI_FL displayWM short line1 Kueche white noIcon");;
fhem("set DI_FL displayWM short line2 e:{("KU-SOLL:".ReadingsVal("KU_WZ_Clima","desired-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line3 e:{("KU-IST:".ReadingsVal("KU_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line4 e:{("KU-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line5 e:{("KU-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
fhem("set DI_FL displayWM short line6 e:{("KU-IST:".ReadingsVal("HK_WZ_Clima","measured-temp","no"),"blue","noIcon")}");;
}

$main::DI_Counter = $main::DI_Counter + 1;
}


Dieser könnte dann wenn er funktioniert, das die Seitenanzahl angeht belibig verändert werden!
Da meine Fensterkontakte auch noch nicht da sind, fehlen mir dort noch die Felder zum auslesen, sodass jetzt in Reihe 1 die SOLL Temperatur drin steht und in 2-6 die IST Temperatur. In Reihe 3-6 sollen nachher meine Fensterkontakte drin stehen.

So habe ich pro "Seite" ein Zimmer angedeckt!

d.stratmann

Heute kam mein Display und ich habe bisschen rumgespielt!
Leider noch nicht mit 100% Erfolg!

Ich habe das jetzt ausgelagert in die 99_myUtils.pm
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-02-19 23:31:44Z d.stratmann $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}
##########################################################
sub DisplayUP() {
my ($DisplayUP_Active) = @_;
my $DI_Counter = 1;
      if (($DI_Counter < 1) || ($DI_Counter > 2)) {$DI_Counter = 1}
      if ($DI_Counter == 1) {
             {fhem ("set DI_FL_Dis_02 displayWM short line2 Wohnzimmer white noIcon")};
                   
   }
       if ($DI_Counter == 2) {
             {fhem ("set DI_FL_Dis_02 displayWM short line2 Kueche white noIcon")};
                   
   }
   
}
1;


Ich hoffe das ist jetzt so korrekt?!

Jetzt ist die Frage wie kann ich jetzt in der fhem.cfg das notify für den Taster einstellen?

define DisplayUP notify DI_FL_Dis_02:Short.* {DisplayUP(,,@")} habe ich versucht, aber klappt nicht.

martinp876

Ich verstehen den Ansatz nicht. Mein Ziel ist es, beim Starten von FHEM die Zeilen zu initialisieren. myUtils ist nicht die Wahl meiner Mittel. Ich hole (wie oft) einmal etwas aus:

fhem.cfg:
- steht in fhemroot
- beinhaltet keine kommandos (sonst kein "save" möglich)
- MUSS ein save "vertragen"

ich möchte config
- aufgeteilt in files wegen Übersichtlichkeit
- in einem separaten Verzeichnis um Code und Settings sowie User und Systemfiles zu trennen

Was ist zu tun:
- verzeichnis setup unter fhem erstellen
- fhem.cfg aufteilen in config-files, welche in setup liegen
- softlink in FHEM erstellen um die Files vom webinterface lesen zu können.
- include in fhem.cfg erstellen
=>
fhem.cfg hat nur
include setup/mycfg1.cfg
include setup/mycfg2.cfg
...

in FHEM ein
ln -s ../setup/mycfg1.cfg mycfg1.cfg
ln -s ../setup/mycfg2.cfg mycfg2.cfg

damit habe ich erst einmal eine Basis.
nun die post-init-config
- wird nach dem startup ausgeführt
- wird durch ein save NICHT überschrieben
- erlaubt das ausführen von Kommandos.

also erstelle ich ein file
setup/cfg_fhemPostInit.cfg
und den Link in FHEM.

dann definiere ich ein notify

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

nun endlich kann ich meine kommandos ausführen, den WM zu initialisieren im
setup/cfg_fhemPostInit.cfg
steht dann
set dis_02 displayWM short  line1 e:{("ca:".ReadingsVal("h.caro.Clima","desired-temp","no")."-".ReadingsVal("h.caro.Clima","measured-temp","no"),"blue",(ReadingsVal("h.caro.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line2 e:{("lg:".ReadingsVal("h.lnge.Clima","desired-temp","no")."-".ReadingsVal("h.lnge.Clima","measured-temp","no"),"green",(ReadingsVal("h.lnge.Clima","ValvePosition",0))?"on":"off")}

set dis_01 displayWM short  line1 e:{("o:".ReadingsVal("h_s_aussen","temperature","-")."-p:".ReadingsVal("h_s_aussen","pressure","-"),"blue",(ReadingsVal("h_s_aussen","x",1))?"off":"on")}
set dis_01 displayWM short  line2 e:{("o:lum".ReadingsVal("h_s_aussen","luminosity","-"),"blue","noIcon")}
set dis_01 displayWM short  line3 e:{("s1:".ReadingsVal("h_s_s1","temperature","-")."-h:".ReadingsVal("h_s_s1","humidity","-"),"orange","noIcon")}
set dis_01 displayWM short  line4 e:{("s2:".ReadingsVal("h_s_s2","temperature","-")."-h:".ReadingsVal("h_s_s2","humidity","-"),"green","noIcon")}

set dis_01 displayWM long  line1 e:{("bat:".ReadingsVal("hm","ERR_battery","-"),"blue","noIcon")}
set dis_01 displayWM long  line2 e:{(ReadingsVal("ActionDetector","statdis","-"),"yellow","noIcon")}


keine Schleifen, einfach alle Kommandos.
myUtil hat hier m.E. nichts verloren - das hat einen anderen Zweck. Initialisierung gehört da nicht rein.


So jedenfalls sieht mein system aus.
Selbstverständlich kann man auch postInit in mehrere files aufteilen, mit include. es lassen sich auch sonstige kommandos hier ausführen.