Neuer Funkgong von Homematic HM-OU-CFM-TW

Begonnen von Pedali, 16 Januar 2016, 14:35:40

Vorheriges Thema - Nächstes Thema

StefanD

Leider durchweg negativ. Auf die RAW Kommandos bleibt der Funkgong auf "Missing Ack", es tut sich auch nichts.

Meine MP3s waren nicht fortlaufend, da ich sie etwas gruppiert hatte (00x Heizung, 01x lüften, 02x Fenster/Türen schließen, etc.). Für den Test habe ich fix 10 neue MP3s erstellen lassen:
001_Test1.mp3
002_Test2.mp3
003_Test3.mp3
004_Test4.mp3
005_Test5.mp3
006_Test6.mp3
007_Test7.mp3
008_Test8.mp3
009_Test9.mp3
010_Test10.mp3


Ich habe dann noch etwas weiter probiert und konnte mittels
set MP3DingDongOben_Mp3 regSet lgIntense vol_40 eg_Klingel_chn-01
set MP3DingDongOben_Mp3 regSet shIntense vol_40 eg_Klingel_chn-01
set MP3DingDongOben_Mp3 regSet lgIntense vol_40 self02
set MP3DingDongOben_Mp3 regSet shIntense vol_40 self02

die Lautstärke für die Klingel deutlich senken. Interessanterweise greift die reduzierte Lautstärke nur beim Trigger über den gepeerten Klingelsensor und Senden des Befehls set MP3DingDongOben_Mp3 press, bei playTone oder on brüllt der Funkgong mit voller Lautstärke.  :o

Beim Senden von zwei Befehlen set MP3DingDongOben_Mp3 playTone 001 spielte der Funkgong einmal 001, Gong, 009, 009, Gong, 009, Gong, 004, 001, Gong, beim zweiten Mal 001, Gong, 003, Gong, 005,  Gong, 010, Gong, 002, Gong. Zwischen der Audioausgabe gibt die Led willkürliche Blinkmuster ab. Für mich sieht die Reihenfolge auch völlig willkürlich aus.

VG Stefan
HW: Intel NUC8i5 mit ESXi7 mit Ubuntu Server 18.04 LTS und FHEM als DockerContainer

martinp876

Das mit den rohmessages muss genauso funktionieren. Da ist ein Fehler drin. Logge da einmal mit(sniffen).

Und logisch: die Register sind fuer jeden peer separat. Also zumindest die aus list 3 bei welchen du den peer eintragen musst. Es gibt (ich kenne ) keine Einstellungen für Kommandos. Das kommt in den Kommandos. Trifft auf alle devices zu. Leider sind die Kommandos oft nicht im XML beschrieben.
Ich bin überzeugt, die Lautstärke ist im Kommando enthalten. Es muss das c8 sein.

hartwiga

ZitatIch bin überzeugt, die Lautstärke ist im Kommando enthalten. Es muss das c8 sein.

Also wenn ich bei mir folgendes eingebe, ist die Lautstärke deutlich geringer:

0E B011 29A4F1 467588 8002 64 01 01

Es wird dann immer der Gong und danach 9x die MP01 (ich habe auf der SD Karte z.Zt. nur eine Datei liegen). Eine Änderung des Werte s für die Lautstärke auf z.B. 32 oder 96 hat keine Auswirkung. Es wird dann immer mit voller Lautstärke abgespielt, wie bei dem Wert C8.

Gruss Andreas

martinp876

das war der gewünschte test. Also die rohmessages funktioneiren - gut.

Volume stimmt also auch - nur scheint es nicht alle Level zu geben.
probiere folgenden Werte
ff, fe, fd, fc, fa, f9, f6, f4, f1, eb, c8

alles grossbuchstaben.

danach können wir den wiederholfaktor angehen. Der sollte in er 01 enthalten sein (der ersten).
probiere dann auch einmal
0E B011 29A4F1 467588 8002 64 01 01 02

das sollte MP3 01, dann MP3 02 abspielen. Evtl wird dies dann wiederholt...










hartwiga

#34
Lautstärke:

Zitatprobiere folgenden Werte
ff, fe, fd, fc, fa, f9, f6, f4, f1, eb, c8

Ich habe alle von Dir vorgeschlagenen Werte und auch noch andere wie z.B. 44 oder 48 ausprobiert. Die Lautstärke hat sich bei keinem Wert verändert (scheinbar 100%). Bisher verringert nur der Wert 64 die Lautstärke.


MP3:

Zitatdanach können wir den wiederholfaktor angehen. Der sollte in er 01 enthalten sein (der ersten).
probiere dann auch einmal
0E B011 29A4F1 467588 8002 64 01 01 02

das sollte MP3 01, dann MP3 02 abspielen. Evtl wird dies dann wiederholt...

Ich denke Du hast recht, dass der Werte nach der Lautstärke den Wiederholfaktor und der danach die Nummer der MP3 Datei angibt.

Es wir immer eine Sequenz von 10 Tönen/MP3s ausgegeben, der erste hiervon ist anscheinend immer der, der im RAW Befehl angegeben wird.

0E B011 29A4F1 467588 8002 64 01 01 -> hier erst 001_bla.mp3 dann 9 x per Zufall
0E B011 29A4F1 467588 8002 64 01 02 -> hier 002_bla.mp3  dann 9 x per Zufall

Alle folgenden 9 Töne/MP3's werden dann zufällig abgespielt. Ich habe dann mal die Liste der abzuspielenden Töne schrittweise erhöht

0E B011 29A4F1 467588 8002 64 01 01 01 01 -> hier erst 3 x 001_bla.mp3 dann 7 x per Zufall
0E B011 29A4F1 467588 8002 64 01 01 01 01 01 01 01 01 -> hier erst 3 x 001_bla.mp3 dann 3 x per Zufall
0E B011 29A4F1 467588 8002 64 01 01 01 01 01 01 01 01 01 01 01 -> hier 10 x 001_bla.mp3

Durch Ändern des Wiederholfaktors auf z.B. 02 wurde dann 001_bla.mp3 genau 20 mal abgespielt:

0E B011 29A4F1 467588 8002 64 02 01 01 01 01 01 01 01 01 01 01

Wenn die Sequenz genau 10 MP3 lang ist, werden die angegeben Titelnummern immer in der richtigen Reihenfolge abgespielt:

0E B011 29A4F1 467588 8002 64 01 01 02 03 01 02 03 01 02 03 01

Übrigens entspricht der Wert 00 dem internen Gong und FF einen zufällig ausgewählten MP3 Titel.

Für mich sieht das irgendwie nach einem Bug in der Firmware vom CFM-TW aus, oder ?

Übrigens mußte ich zwischen zwei RAW Befehlen immer ein "set HM_467588 off" abschicken, damit der zweite RAW Befehl auch funktioniert.

LED:

Ich hab noch herausgefunden, dass zu den bereits vordefinierten Farben (rot->0x11, 0x12 und grün ->0x21, 0x22) auch noch die folgenden weiteren Farben eingestellt werden können:

gelb -> 0x31, 0x32
blau -> 0x41, 0x42
violett -> 0x51, 0x52
weiß (oder so ähnlich) -> 0x71, 0x72

Gruss Andreas

martinp876

das war meine Vermutung, dass man immer 10 MP3 angeben muss, oder dass es eine Terminierung gibt. Das hast du jetzt zerschlagen - zumindest habe ich keine Idee dazu.
Wir müssen also (wegen des Bug, ich stimme zu) immer 10 angeben. Du kannst dann einen "null-MP3" definieren, welchen länge null hat. Sehr unschön. aktuell alternativlos. evtl können wir es einer CCU entlocken, falls jemand eine hat - und einen CFM.

Du kannst aber "on" versuchen. on-for-timer ist eine option. könnt klappen. mit dem ersten Befehl wird der Ablauf eingestellt, mit dem "on wird er ausgeführt.

next: Lautstärke. wenn C8 und 64 funktionieren können wir (du) weitere gültige suchen.

hartwiga

ich werde weiter nach Werten suchen, aber für heute kann ich kein "Ding Dong" mehr hören  ;)

om

Hallo,
nachdem ich nun demnächst auch meinen Funkgong bekomme und eure Arbeit aufmerksam verfolge und mich hierzu auch bedanken möchte, habe ich zusätzlich im Homematic-Forum gegoogelt und ein paar Infos, die uns evtl. weiterhelfen können

1. LED
anbei die Codes in Dez,nicht Hex zur Schaltung (habe das Bsp vom Kolegen mit "blau" verifiziert
0 = Aus
2 = Pause
17 = Rot kurz
18 = Rot lang
33 = Grün kurz
34 = Grün lang
49 = Orange kurz
50 = Orange lang
113 = Weiß kurz
114 = Weiß lang
65 = Blau kurz
66 = Blau lang
97 = Cyan kurz
98 = Cyan lang
81 = Violett kurz
82 = Violett lang

2. Soundlautstärke
im HM-Forum gibt es mehrere Beispiele, dass diese die Lautsärke in 10er Prozentschritten setzen können, also müßte außer Hex 64 = 50 % auch noch zB 40% = Hex 50 oder 40% = Hex 3C gehen

3. Mp3 Reihenfolge
Dort steht, dass max 10 Mp3 Files in Folge abgespielt werden
mann außer der uns bekannten Wiederholung 1-255
auch die Abspieldauer gesetzt werden kann
a. Standard = 10800s
b. einstellen auf Dateilänge des Mp3
Vielleicht hilft das ja weiter

Gruß

Oliver
FHEM 5.8 Odroid C2 : Homematic, FS20, Harmony, Alexa (alexa-fhem) IT, Max, LaCrosse, Hue, Sonos, ha-bridge, CO2, FRM, HMS, VCONTROL, 1-wire, FB7490

StefanD

Zitat von: om am 21 März 2016, 21:14:19
3. Mp3 Reihenfolge
Dort steht, dass max 10 Mp3 Files in Folge abgespielt werden
mann außer der uns bekannten Wiederholung 1-255
auch die Abspieldauer gesetzt werden kann
a. Standard = 10800s
b. einstellen auf Dateilänge des Mp3
Vielleicht hilft das ja weiter

Wenn das nur so zu lösen ist, wird's auf dummys rauslaufen, die als Attribute alle notwendigen Parameter für die jeweiligen MP3s halten...  :(
HW: Intel NUC8i5 mit ESXi7 mit Ubuntu Server 18.04 LTS und FHEM als DockerContainer

hartwiga

#39
Zitat1. LED
anbei die Codes in Dez,nicht Hex zur Schaltung (habe das Bsp vom Kolegen mit "blau" verifiziert
0 = Aus
2 = Pause
17 = Rot kurz
18 = Rot lang
33 = Grün kurz
34 = Grün lang
49 = Orange kurz
50 = Orange lang
113 = Weiß kurz
114 = Weiß lang
65 = Blau kurz
66 = Blau lang
97 = Cyan kurz
98 = Cyan lang
81 = Violett kurz
82 = Violett lang

2. Soundlautstärke
im HM-Forum gibt es mehrere Beispiele, dass diese die Lautsärke in 10er Prozentschritten setzen können, also müßte außer Hex 64 = 50 % auch noch zB 40% = Hex 50 oder 40% = Hex 3C gehen

3. Mp3 Reihenfolge
Dort steht, dass max 10 Mp3 Files in Folge abgespielt werden
mann außer der uns bekannten Wiederholung 1-255
auch die Abspieldauer gesetzt werden kann
a. Standard = 10800s
b. einstellen auf Dateilänge des Mp3

@om

Danke, durch Deine Hinweise habe ich mir das ganze nochmal weiter angeschaut und nun die "10_CUL_HM.pm" soweit testweise ergänzt, dass es für mich schon ganz gut funktioniert.  :)
Sehr hilfreich war dafür auch das hier: https://www.symcon.de/forum/threads/20464-HomeMatic-MP3-Funkgong-per-IPS-ansteuern

led


  • Die zusätzlichen Farben blueL, blueS, violettL, violettS, cyanL, cyanS, whiteL, und whiteS werde unterstützt
  • Den Farbwert orangeX ist geändert auf yellowX
  • Die max. Ausführungszeit kann optional auch angegeben werden 1...10800sek

z.B set DONGDONG led redL 4 20 10 # rote LED viermal lang blinken und das 20 mal wiederholen.  Nach 10s wird die Sequenz aber beendet

elsif($md =~ m/HM-OU-CFM?-TW/){
     my %color = (redL =>18,greenL =>34,yellowL =>50,blueL =>66,  violettL => 82, cyanL => 98, whiteL =>114,
                   redS =>17,greenS =>33,yellowS =>49,blueS =>65, violettS => 81, cyanS => 97, whiteS =>113,
                   pause=>2);
      my @itemList = split(',',$a[2]);
      my $repeat = (defined $a[3] && $a[3] =~ m/^(\d+)$/)?$a[3]:1;
      my $duration = (defined $a[4] && $a[4] =~ m/^(\d+)$/)?$a[4]:10800;
      my $itemCnt = int(@itemList);
      return "no more then 10 entries please"      if ($itemCnt>10);
      return "at least one entry must be entered"  if ($itemCnt<1);
      return "repetition $repeat out of range [1..255]"
          if($repeat < 1 || $repeat > 255);
      return "duration $duration out of range [1..10800]"   
          if($duration < 1 || $duration > 10800);
      my $msgBytes = sprintf("01%02X",$repeat);
      foreach my $led (@itemList){
        if (!$color{$led} ){# wrong parameter
            return "'$led' unknown. use: ".join(" ",sort keys(%color));
        }
        $msgBytes .= sprintf("%02X",$color{$led});
      }
      $msgBytes .= "01" if ($itemCnt == 1 && $repeat == 1);#add pause to term LED
      # need to fill up empty locations  for LED channel
      $msgBytes = substr($msgBytes."00000000000000000000",0,(10+2)*2);
     
      if ($duration < 10800) {
        $msgBytes .= sprintf("%02X%02X",($duration & 0x00ff), ($duration & 0xff00)>>8);
      }
      CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.'80'.$chn.$msgBytes);
    }


playTone


  • Die Angabe der Lautstärke funktioniert in den Schritten 0,1,2,3,4,5,6,7,8,9,10
  • Die MP3s werde in der richtigen Reihenfolge abgespielt
  • Die max. Ausführungszeit kann optional auch angegeben werden 1.10800sek

z.B set DINGDONG playTone 3,6,8,3,4 255 5 10 # MP3 Titelfolge 3,6,8,3,4 255 mal, mit halber Lautstärke. Nach 10s wird die Sequenz aber beendet

if($md =~ m/HM-OU-CFM?-TW/){
      if ($a[2] eq 'replay'){
        $msg = ReadingsVal($chnHash->{NAME},".lastTone","");
      }
      else{
        my @itemList = split(',',$a[2]);
        my $repeat = (defined $a[3] && $a[3] =~ m/^(\d+)$/)?$a[3]:1;
        my $itemCnt = int(@itemList);
        my $volume = (defined $a[4] && $a[4] =~ m/^(\d+)$/)?$a[4]:10;
        my $duration = (defined $a[5] && $a[5] =~ m/^(\d+)$/)?$a[5]:10800;
        return "no more than 10 entries please"  if ($itemCnt>10);
        return "repetition $repeat out of range [1..255]"
            if($repeat < 1 || $repeat > 255);
        return "volume $volume out of range [0..10]"
            if($volume < 0 || $volume > 10);
        return "duration $duration out of range [1..10800]"   
            if($duration < 1 || $duration > 10800);
        my $msgBytes = sprintf("%02X%02X",$volume*20,$repeat);

        foreach my $mp3 (@itemList){
          return "input: $mp3 is not an integer below 255"
          if (!defined $mp3 || $mp3 !~ /^[+-]?\d+$/ || $mp3 > 255);
          $msgBytes .= sprintf("%02X",$mp3);
        }
        # need to fill up empty locations  for MP3 numbers
        $msgBytes = substr($msgBytes."00000000000000000000",0,(10+2)*2);
     
        if($duration < 10800) {
          $msgBytes .= sprintf("%02X%02X",($duration & 0x00ff), ($duration & 0xff00)>>8);
        }
        $msg = '++'.$flag.'11'.$id.$dst.'80'.$chn.$msgBytes;
        CUL_HM_UpdtReadSingle($chnHash,".lastTone",$msg,0);
      }
      CUL_HM_PushCmdStack($hash,$msg) if ($msg);
    }


Ich habe die geänderte Datei mal zum Anschauen angehängt, habe aber keine Ahnung ob das so Ok ist !!??

Gruss Andreas

martinp876

Werde ich ansehen, habe gerade keinen zugang.... kommt aber.

om

Hallo Andreas,

habe es bei mir geprüft - tolle Arbeit - es gehen sogar auch Farbkombinationsabfolgen zB redL,greenS,blueL mit den Wiederholungen usw
Gruß

om
FHEM 5.8 Odroid C2 : Homematic, FS20, Harmony, Alexa (alexa-fhem) IT, Max, LaCrosse, Hue, Sonos, ha-bridge, CO2, FRM, HMS, VCONTROL, 1-wire, FB7490

martinp876

Warum prüfst du am Ende auf 10800? Was passiert, wenn du es nicht machst und 2a30 Sendest?
Müsste da ggf Eine 0000 gesendet werden um max zu erreichen?

om

Hallo

bei eingabe set Gong_Mp3 playtone 4,3 2 5 20 kommt
2016.03.26 12:11:51 4: CUL_send:  HMCULAs 19 18 B011 F11511 4674B1 80026402040300000000000000002800
2016.03.26 12:11:51 4: CUL_Parse: HMCUL A 0E 18 8002 4674B1 F11511 0102C8400012 -65
2016.03.26 12:12:05 4: CUL_Parse: HMCUL A 0D 1A A410 4674B1 F11511 0602000012 -65
2016.03.26 12:12:05 4: CUL_send:  HMCULAs 0A 1A 8002 F11511 4674B1 00

beim Vorgeschlagenen von Martin kommt nach senden von:
set Gong raw ++B011 F11511 4674B1 80026402040300000000000000002A30

2016.03.26 12:22:10 4: CUL_send:  HMCULAs 19 1C B011 F11511 4674B1 80026402040300000000000000002A30
2016.03.26 12:22:11 4: CUL_Parse: HMCUL A 0E 1C 8002 4674B1 F11511 0102C8400010 -66
2016.03.26 12:22:24 4: CUL_Parse: HMCUL A 0D 1E A410 4674B1 F11511 0602000011 -65.5
2016.03.26 12:22:24 4: CUL_send:  HMCULAs 0A 1E 8002 F11511 4674B1 00

Die Töne werden in beiden Varianten in richtiger Reihenfolge in halber Lautstärke abgespielt und insgesamt 2x wiederholt

Wenn ich noch weitere Sachen testen soll, bitte Info

Gruß
FHEM 5.8 Odroid C2 : Homematic, FS20, Harmony, Alexa (alexa-fhem) IT, Max, LaCrosse, Hue, Sonos, ha-bridge, CO2, FRM, HMS, VCONTROL, 1-wire, FB7490

hartwiga

Der Wert 10800 und auch größere Werte funktionieren, genauso als wenn man beide Bytes weglassen würde. Es sieht so aus, als ob beim Weglassen oder bei Werten >= 10800 intern immer 10800 verwendet wird, kann ich aber nicht prüfen  ;)

Setzt man beide Bytes auf 00 00, wird gar nichts abgespielt.