FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 03 Juli 2011, 14:05:18

Titel: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 03 Juli 2011, 14:05:18
Originally posted by: <email address deleted>

Hi,
bei meinem RHS (Fensterdrehkontakt) ist mir aufgefallen, dass die selbe
Nachricht zu mehreren "Trigger" führt.
Das liegt wohl daran, dass derzeit die Nachrichtennummer nicht ausgewertet
wird.
Soweit ich beobachtet habe werden manche Nachrichten biszu 3 Mal wiederholt.
Hier sind zwei Ereignisse die mit 6 Meldungen kommen:

2011.07.03 13:52:14 5: HMLAN
E107172,0000,28E5188C,FF,FFBA,D9A4411071721221AB0146C8
2011.07.03 13:52:14 5: HMLAN
E107172,0000,28E5198D,FF,FFA5,D9A0411071721221AB0146C8
2011.07.03 13:52:15 5: HMLAN
E107172,0000,28E51A8F,FF,FFB0,D9A0411071721221AB0146C8
2011.07.03 13:52:15 5: HMLAN
E107172,0000,28E51B96,FF,FFB0,DAA4411071721221AB014764
2011.07.03 13:52:15 5: HMLAN
E107172,0000,28E51C97,FF,FFB2,DAA0411071721221AB014764
2011.07.03 13:52:16 5: HMLAN
E107172,0000,28E51D98,FF,FFB1,DAA0411071721221AB014764

Das erste Ereignis hat die Nummer D9 und wird 3 mal wiederholt. Nur der
Zeitstempel führt m.E. zur Änderung der Prüfsumme (FFBA, FFA5, FFB0).
Das zweite Ereignis hat die Nummer DA und wird ebenfalls 3 mal wiederholt.
Ich denke es reine "Paranoia" die Meldungen 3 mal zu senden. Der Trigger
sollte m.E. nur beim ersten Mal ausgeführt werden. Nicht aber bei den
Wiederholungen.
Dazu müssten man sich (je HM-Gerät) dessen letzte Nachrichtennummer merken.
Wenn die sich nicht ändert wird die Nachricht nicht ausgewertet (da bereits
passiert).
Was denkt Ihr?
Gruß,
Peter

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Seppel18 am 05 Juli 2011, 19:19:27
                                             

Hallo Peter,
inform raw
set fenster1 read 5
HMLAN hmlan3 A1A15A0101153191419FB02010003000432056407FF09FF0B220D68
HMLAN hmlan3 A1A15A0101153191419FB02010003000432056407FF09FF0B220D68
HMLAN hmlan3 A1A16A0101153191419FB020FFF11C822C823C88100830084328564
HMLAN hmlan3 A0A1580021419FB11531900NACK
HMLAN hmlan3 A0A1580021419FB11531900NACK
HMLAN hmlan3 A1A16A0101153191419FB020FFF11C822C823C88100830084328564
HMLAN hmlan3 A0A1680021419FB11531900NACK
HMLAN hmlan3 A1A17A0101153191419FB0287FF89FF8B228D688FFF91C8A2C8A3C8
HMLAN hmlan3 A0A1680021419FB11531900NACK
HMLAN hmlan3 A1A17A0101153191419FB0287FF89FF8B228D688FFF91C8A2C8A3C8
HMLAN hmlan3 A0A1780021419FB11531900NACK
HMLAN hmlan3 A0A1780021419FB11531900NACK

bringt das als Ergebnis: hier sit die komplette config der Taste 5
beschrieben. Der String wird hier zwei mal gesendet, fängt aber immer
mit 02 an, auch bei verschieden Tasten.
mit inform timer

HMLAN hmlan3 CUL_HM RCV L:1A N:23 CMD:A010 SRC:115319 DST:1419FB
0287FF89FF8B228D688FFF91C8A2C8A3C8 (INFO_PARAM_RESPONSE_PAIRS
DATA:87FF89FF8B228D688FFF91C8A2C8A3C8)
ist zu sehen das der Datenstring schon extrahiert wird.
02 davor ist wohl die Beschreibung der kommenden Daten.
wie kann ich das einbauen?
irgendwie muss das in die read if.
gruss frank

ps. Urlaub war schön, aber leider vorbei.



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: rudolfkoenig am 06 Juli 2011, 07:57:41
                                                   

Hallo Peter,

da ich die eingecheckten Aenderungen gerade gesehen habe, haette folgende
biite/Vorschlaege:

- config in etwas winmatic spezifisches umbenennen.
- die Befehle in commandref dokumentieren
- die sehr aehnlichen Codestuecke in eine Funktion auslagern, siehe auch
  CUL_HM_pushConfig.
- sleep ist unschoen:
  - blockiert fhem fuer 4 Sekunden
  - fhem+CUL hat keine Chance ACKS zu senden. Ja ich weiss, dass CUL noch nicht
    mit dem winmatic funktioniert.
  - eigenltich gehoeren Befehlsketten auf dem Befehls-Stapel (CUL_HM_PushCmdStack)

Gruss,
  Rudi

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 06 Juli 2011, 21:14:21
Originally posted by: <email address deleted>

Hm... deshalb hatte ich eigentlich vorher gefragt ob ich's so reinstellen
kann... ;-)
Da mein HMLAN nur NACKS schick kann ich's nicht noch nicht nachvollziehen.

@Frank: Kannst Du mal ein paar Zeilen als Doku schreiben? Vielleicht hast Du
auch eine andere Bezeichnung für das "config"?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 27 Juli 2011, 08:03:22
Originally posted by: <email address deleted>

Wie wäre es mit "keydef" anstatt config? Frank? Rudi?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Seppel18 am 27 Juli 2011, 17:20:28
                                             

> Wie wäre es mit "keydef" anstatt config? Frank? Rudi?
Ja das trifft es gut ich werde es aerndern.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: rudolfkoenig am 30 Juli 2011, 11:25:37
                                                   

On Tue, Jul 26, 2011 at 11:03:22PM -0700, Pest wrote:
> Wie wäre es mit "keydef" anstatt config? Frank? Rudi?

Habs in keydef umbenannt, und eine CUL_HM_maticFn() gebaut, damit es kuerzer
und wartbarer wird, bitte testen.

Ceterum censeo: eigentlich gehoeren die 3 Kommandos nicht mit sleep(2)
abgesetzt sondern cmd2 und cmd3 mit CUL_HM_PushCmdStack auf dem Stack, und cmd
1 losschicken. Da ich es aber nicht testen kann, werde ich es nicht selber
einbauen.

Und bitte in commandref.html dokumentieren sonst fliegt winmatic wieder aus
CUL_HM raus.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 01 August 2011, 21:16:19
Originally posted by: <email address deleted>

> Habs in keydef umbenannt, und eine CUL_HM_maticFn() gebaut, damit es
kuerzer
> und wartbarer wird, bitte testen.

Das hätte ich schon gemacht. Aber ich bin derzeit ziemlich bussy. Auch ist
es zur Zeit für mich schwierig neues in der Anlage zu testen ohne "ärger"
mit meiner Regierung zu bekommen ;-)

> Ceterum censeo: eigentlich gehoeren die 3 Kommandos nicht mit sleep(2)
> abgesetzt sondern cmd2 und cmd3 mit CUL_HM_PushCmdStack auf dem Stack, und
cmd
> 1 losschicken. Da ich es aber nicht testen kann, werde ich es nicht selber
> einbauen.

Ich kann's ja auch nicht richtig testen. Ich erhalte ja immer NACKs vom
HMCFG.

@Frank: Funktioniert der neue Code bei Dir?
> Und bitte in commandref.html dokumentieren sonst fliegt winmatic wieder
aus
> CUL_HM raus.

Da hatte ich gehofft, dass Frank einen Text liefert. Ich kann ihn dann ins
CVS einchecken.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Seppel18 am 05 August 2011, 00:15:23
                                             

> Habs in keydef umbenannt, und eine CUL_HM_maticFn() gebaut, damit es kuerzer
> und wartbarer wird, bitte testen.
  Prima das mit keydef CUL_HM_maticFn() funktioniert

>
> Ceterum censeo: eigentlich gehoeren die 3 Kommandos nicht mit sleep(2)
> abgesetzt sondern cmd2 und cmd3 mit CUL_HM_PushCmdStack auf dem Stack, und cmd
> 1 losschicken. Da ich es aber nicht testen kann, werde ich es nicht selber
> einbauen.

   my ($hash, $id, $dst, $a2, $cfg) = @_;
   my $cmd1 =  sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a2);
   #CUL_HLM_SendCmd ($hash, $sndcmd, 2, 2);
   my $cmd2 =  sprintf("++A001%s%s01080%s", $id, $dst, $cfg);
   my $cmd3 = sprintf("++A001%s%s0106", $id, $dst);
   #CUL_HM_SendCmd ($hash, $sndcmd, 2, 2);
   #sleep(2);
   CUL_HM_PushCmdStack ($hash, $cmd2);
   CUL_HM_PushCmdStack ($hash, $cmd3);
   CUL_HM_SendCmd ($hash, $cmd1, 2, 2);
   return $sndcmd;

ich bin am testen

> Und bitte in commandref.html dokumentieren sonst fliegt winmatic wieder aus
> CUL_HM raus.
ist in Arbeit, aber nur in deutsch

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 06 August 2011, 19:25:07
Originally posted by: <email address deleted>

> > Und bitte in commandref.html dokumentieren sonst fliegt winmatic wieder
aus
> > CUL_HM raus.
> ist in Arbeit, aber nur in deutsch

Supi. Dann übersetze ich's.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Seppel18 am 07 August 2011, 21:22:16
                                             

> Habs in keydef umbenannt, und eine CUL_HM_maticFn() gebaut, damit es kuerzer
Abschnitt "keydef"

{ #####################################
     if ($a[3] eq "tilt") {
       $sndcmd = CUL_HM_maticFn($hash, $id, $dst, $a[2],
"0B220D838B228D83");

     } elsif ($a[3] eq "close") {
       $sndcmd = CUL_HM_maticFn($hash, $id, $dst, $a[2],
"0B550D838B558D83");

     } elsif ($a[3] eq "closed") {
       $sndcmd = CUL_HM_maticFn($hash, $id, $dst, $a[2], "0F008F00");

     } elsif ($a[3] eq "bolt") {
       $sndcmd = CUL_HM_maticFn($hash, $id, $dst, $a[2], "0FFF8FFF");

     } elsif ($a[3] eq "delete") {
       $sndcmd = sprintf("++B001%s%s0102%s%02X%s", $id, $dst, $id,
$a[2], $chn);

     } elsif ($a[3] eq "speedclose") {
        $sndcmd = $a[4]*2;
       $sndcmd = CUL_HM_maticFn($hash, $id, $dst, $a[2],
                                 sprintf("23%02XA3%02X", $sndcmd, $sndcmd));

     } elsif ($a[3] eq "speedtilt") {
        $sndcmd = $a[4]*2;
       $sndcmd = CUL_HM_maticFn($hash, $id, $dst, $a[2],
                                 sprintf("22%02XA2%02X", $sndcmd, $sndcmd));
     }
   }


sub
CUL_HM_maticFn($$$$$)
{
   my ($hash, $id, $dst, $a2, $cfg) = @_;
   my $sndcmd =  sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a2);
   CUL_HM_SendCmd ($hash, $sndcmd, 10, 2);
   $sndcmd =  sprintf("++A001%s%s0108%s", $id, $dst, $cfg);
   CUL_HM_SendCmd ($hash, $sndcmd, 10, 2);
   $sndcmd = sprintf("++A001%s%s0106", $id, $dst);
   return $sndcmd;
}

Ich habe das so geloest.
Bitte die Aenderungen einchecken und testen

Ich habe leider immer wieder Probleme nach der Anderung von Parmetern,
hier war es bisher immer hilfreich den HM-Lan kurzfristig Stromlos zu
machen.
Gibts da vieleicht einen Parameter zum Reboot der HM-Lan?



> Und bitte in commandref.html dokumentieren sonst fliegt winmatic wieder aus
> CUL_HM raus.
jetzt die doku

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: rudolfkoenig am 07 August 2011, 22:26:10
                                                   

> Bitte die Aenderungen einchecken und testen

Eingecheckt, kann aber mangels winMatic nicht checken.


> Gibts da vieleicht einen Parameter zum Reboot der HM-Lan?

So'n HMLAN Doku faende ich auch klasse :) Ich hab auch 'ne Menge von Fragen.
z.Bsp was ist dieses beknackte
  +
  -
usw.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 08 August 2011, 20:56:41
Originally posted by: <email address deleted>

Bezüglich der Doku bzw der Kommandonamen:
@Frank: Vielleicht kannst Du die Werte den Namen aus dem XML
(rf_winmatic.xml) der Windows-Software zuordnen?
Wäre ja passend wenn man die gleichen Namen nehmen würde.
Dann könnte man evtl. auch noch Fehlende Codes aus dem XML für andere Punkte
erkennen.
Oder findest Du den "keydef"-Code im XML nicht wieder?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Seppel18 am 08 August 2011, 23:56:39
                                             

> Oder findest Du den "keydef"-Code im XML nicht wieder?
Ich kann da aber keinen Code  wie "0B220D838B228D83" erkennen und Fnur
mit diesem gehts.
Außerdem ist so wie Rudi es meint, nicht alles muß man implementieren.

Hier schon mal was vorab:

Vorausetzung:
HM-Lan wird korrekt erkannt
WinMatic ist von autocreate erkannt worden und mit sinnvollen Namen
versehen.

es werden "virtuelle Tasten" angelegt, diese werden dann mit Werten
konfiguriert
getestet bis Taste 50


set winMatic1 create 3            > es wird die Taste 3 erstellt
set winMatic1 read 3            > es werden die eingestellten werte
angezeigt(experimental)
set winMatic1 keydef 3 delete 0            > Taste 3 wird gelöscht "0"
blindparameter
set winMatic1 keydef 3 closed 0            > Taste 3 wird auf Fenster schliessen
eingestellt, Fenster kann nach aushängen der Mechanik als Drehflügel
geöffnet werden
set winMatic1 keydef 3 close 0            > Taste 3 schließen und verriegeln
set winMatic1 keydef 30 bolt 0            
set winMatic1 keydef 36 tilt 0            > Taste 3 Fenster wird gekippt
set winMatic1 keydef 5 speedtilt 10            > die Fahrgeschwindigkeit beim
kippen  "10" Prozent der max. Geschwindigkeit dient der
Lärmreduzierung(Flüsterbetrieb)
set winMatic1 keydef 4 speedclose 20            > die Fahrgeschwindigkeit beim
schließen   "20" Prozent der max. Geschwindigkeit            
            
set winMatic1 matic 22            die eingestellte Aktion der Taste 22 wird
ausgeführt

um sinnvoll arbeiten so können sind mindestens 2 Tasten nötig

z.Bsp.:

define fenster_lf FS20 632d 04
attr fenster_lf room Schlaf1
attr fenster_lf comment direktes Schalten Fenster1

define fenster_lf_1 notify fenster_lf:on set fenster1 matic 5
define fenster_lf_2 notify fenster_lf:off set fenster1 matic 4

wenn du das mal testen könnstest?
mfg Frank

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 10 August 2011, 08:16:18
Originally posted by: <email address deleted>

>> Oder findest Du den "keydef"-Code im XML nicht wieder?
>Ich kann da aber keinen Code  wie "0B220D838B228D83" erkennen und Fnur
>mit diesem gehts.
Im XML sind die Codes dezimal dargestellt. Es sind ist die Position
innerhalb des Befehls angegeben.
Wäre ja passend wenn wir die gleichen Bezeichnungen verwenden. Auch wäre es
m.E. nicht schlecht so nach und nach das XML besser zu verstehen um damit
ggf. die uns fehlenden Codes abzuleiten.

>Au�erdem ist so wie Rudi es meint, nicht alles mu� man implementieren.
Klar. Das wäre wohl auch zuviel.

> set winMatic1 matic 22 die eingestellte Aktion der Taste 22 wird
> ausgef�hrt
Wenn "matic" die Taste simuliert, wie wäre es dann mit "keypress",
"sendkey", "simkey" oder nur "key" anstatt "matic"? Das mit dem "matic"
hatte mich schon etwas verwirrt was das bewirken soll.

Ich übersetze es und pflege es ein. Kann aber etwas dauern....

Gruß,
Peter

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Seppel18 am 10 August 2011, 20:37:36
                                             

> Wenn "matic" die Taste simuliert, wie wäre es dann mit "keypress",
> "sendkey", "simkey" oder nur "key" anstatt "matic"? Das mit dem "matic"
  hatte mich schon etwas verwirrt was das bewirken soll.
Wie waere diese variante:

wm_  als praefix um es anderen leichter zu machen

wm_keypress  als matic
wm_keycreate
wm_keyconf  fuer einwerte aenderungen
wm_keyconfp fuer zweiwerte Aenderungen (speedtilt)
wm_keyread



set winMatic1 wm_keycreate 10
set winMatic1 wm_keyconfp 10 close
set winMatic1 wm_keyconfp 10 speedclose 90
set winMatic1 wm_keyconfp 10 speedtilt 90

Das muesste ich dann in den Code einarbeiten.

mfg Frank

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Aw: Re: HMLAN: Wiederholungen der selben Nachricht filtern
Beitrag von: Guest am 10 August 2011, 22:55:55
Originally posted by: <email address deleted>

hm... denke den Prefix brauchen wir nicht unbedingt, oder? Die Befehle sind
ja Objektabhängig und könnten bei unterschiedlichen Type auch
unterschiedliche Bedeutung haben. Nur innheralb des Winmatics sollten sie
m.E. eindeutig sein. Oder?

Kannst Du bei der Beschreibung noch die Werte erklären? Oder sind die 0-ler
immer Blindwerte? Wenn ja, brauchen wir sie doch nicht, oder?

Gruß,
Peter

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com