IT Empfang mit CUL

Begonnen von mehf, 18 August 2013, 20:47:11

Vorheriges Thema - Nächstes Thema

bjoernh

Beim Update werden die Dateien vom fhem repository geladen. Die Änderungen sind dort aber noch nicht eingeflossen.

Was für ein Device (CUL/COC...)? Flashen ist je nach Device unterschiedlich. Das Betriebssystem spiel auch eine rolle.
Einfach mal Herrn Google fragen ;-)

bjoernh

Jetzt brauche ich mal eure Hilfe....

In der abgeänderten 10_IT.pm Datei ungefähr Zeile 398 steht:
if(!defined($modules{IT}{defptr}{lc($housecode)})) {

Eigentlich sollte er in den IF Zweig laufen wenn der Eintrag in Fhem nicht gefunden wurde.
Bei IT V1 funktioniert das auch, aber nicht bei dem IT V3

Als $hauscode kommt bei V3 z.B. 00000000110101010110010010
Bei V1 steht da 00000F0F0F

Kann mir einer erklären warum er bei dem IT V3 nicht in die Routine läuft, bei V1 aber schon?

bjoernh

#392
Anbei die neuste Version.

Änderungen:
- Falsch erkannte i0000.. Pakete kommen nicht mehr.
- Fasch erkannte IT V1 Pakete werden gefiltert
- IT Erkennung für IT V1 verbessert.
- IT V3 überarbeitet, so dass jetzt auch alle Pakete der Sendefolge erkannt werden.

Bei mir klappt es jetzt mit V1 und V3 mit jedem Sender, ein längeres Drücken ist bei mir nicht mehr nötig.



joesy

Hallo Björn,

Empfang und Erkennung von V3 ist jetzt deutlich verbessert, V1 funktioniert weiterhin super.

Probleme gibt es noch bei der Umrechung:
2015.01.28 22:22:17 4: CUL_Parse: CUL0 i56659559A6A9955618 -62
2015.01.28 22:22:17 4: msgcode: DDDDDDDDDDDDDDDD
2015.01.28 22:22:17 4: DDDDDDDDDDDDDDDD not defined (Group:  Unit:  Switch code: )
2015.01.28 22:22:27 4: CUL_Parse: CUL0 i56659559A6A995561C -60
2015.01.28 22:22:27 4: msgcode: DDDDDDDDDDDDDDDD
2015.01.28 22:22:27 4: DDDDDDDDDDDDDDDD not defined (Group:  Unit:  Switch code: )


Das scheint aber am Perl auf meiner Fritzbox zu liegen. Führe ich den relvanten Code auf dem PC oder einen RPi aus, funktioniert die Umrechnung. Der String ist anscheinend zu lang.

Ich habe daher den Code (ca. Zeile 360) folgendermaßen abgeändert.
Alt:

  my $bin=sprintf("%024b",hex(substr($msg,1,length($msg)-1)));

Neu:
  my $bin = undef;
  if ( length($msg) == 17 ) {
        my $bin1=sprintf("%024b",hex(substr($msg,1,length($msg)-1-8)));
        my $bin2=sprintf("%024b",hex(substr($msg,1+8,length($msg)-1)));
        $bin = $bin1 . $bin2;
  }
  else {
        $bin=sprintf("%024b",hex(substr($msg,1,length($msg)-1)));
  }


Damit funkitioniert bei mir auf der Fritzbox auch die Erkennung von IT V3 stabil. Da ich nicht viel Erfahrung mit Perl habe, lässt sich dies vermutlich effizienter und eleganter lösen.

Snocksman

Hi !

Erstmal möchte ich sagen, dass sich für mich der Empfang meiner IT-Fernbedienung mit der neusten Version deutlich verbessert hat !!! Vorher musste ich die Tasten teilweise 1-2 Sekunden gedrückt halten bis FHEM etwas gemerkt hat, mit dieser Version reicht ein kurzer Tastendruck.

Aber jetzt würde mich mal interessieren, ob mir jemand sagen kann, was das ist:

2015.01.28 23:53:33 4: CUL_Parse: CUL_0 p 3  448  960  448 1920  9  2 1 0D 67A5C0
2015.01.28 23:53:33 4: eventTypes: CUL CUL_0 UNKNOWNCODE p 3  448  960  448 1920  9  2 1 0D 67A5C0 -> UNKNOWNCODE p .*  .*  .*  .* .*  .*  .* .* 0D 67A5C0
2015.01.28 23:53:33 2: CUL_0: unknown message p 3  448  960  448 1920  9  2 1 0D 67A5C0
2015.01.28 23:53:33 4: CUL_Parse: CUL_0 p 7  432 1952 1968  528  1  2 2 0D 000000
2015.01.28 23:53:33 4: eventTypes: CUL CUL_0 UNKNOWNCODE p 7  432 1952 1968  528  1  2 2 0D 000000 -> UNKNOWNCODE p .*  .* .* .*  .*  .*  .* .* 0D .*
2015.01.28 23:53:33 2: CUL_0: unknown message p 7  432 1952 1968  528  1  2 2 0D 000000
2015.01.28 23:53:33 4: CUL_Parse: CUL_0 p 7  416 1952 2032  400  1  2 2 0D 000000
2015.01.28 23:53:33 4: eventTypes: CUL CUL_0 UNKNOWNCODE p 7  416 1952 2032  400  1  2 2 0D 000000 -> UNKNOWNCODE p .*  .* .* .*  .*  .*  .* .* 0D .*
2015.01.28 23:53:33 2: CUL_0: unknown message p 7  416 1952 2032  400  1  2 2 0D 000000
2015.01.28 23:53:33 4: CUL_Parse: CUL_0 p 7  464 1920 1952  432  1  2 2 0D 000000
2015.01.28 23:53:33 4: eventTypes: CUL CUL_0 UNKNOWNCODE p 7  464 1920 1952  432  1  2 2 0D 000000 -> UNKNOWNCODE p .*  .* .* .*  .*  .*  .* .* 0D .*
2015.01.28 23:53:33 2: CUL_0: unknown message p 7  464 1920 1952  432  1  2 2 0D 000000
2015.01.28 23:53:34 4: CUL_Parse: CUL_0 p 7  432 1968 2000  432  1  2 2 0D 000000
2015.01.28 23:53:34 4: eventTypes: CUL CUL_0 UNKNOWNCODE p 7  432 1968 2000  432  1  2 2 0D 000000 -> UNKNOWNCODE p .*  .* .* .*  .*  .*  .* .* 0D .*
2015.01.28 23:53:34 2: CUL_0: unknown message p 7  432 1968 2000  432  1  2 2 0D 000000
2015.01.28 23:53:34 4: CUL_Parse: CUL_0 p 7  480 1904 2032  400  1  2 1 0D 000000
2015.01.28 23:53:34 4: eventTypes: CUL CUL_0 UNKNOWNCODE p 7  480 1904 2032  400  1  2 1 0D 000000 -> UNKNOWNCODE p .*  .* .* .*  .*  .*  .* .* 0D .*


Es beginnt immer mit einer p 3 Meldung, gefolgt von unzähligen p 7 Meldungen...

Vorstellen könnte ich mir entweder unsere Wetterstation (sendet lediglich Temperatur und Luftfeuchte), oder evtl. unsere Rauchmelder (oder kann ich von denen mit dem CUL gar nichts empfangen ?) ?

Gruß
Mathias

carlos

Bei mir kommt leider bei meiner Fernbedienung folgendes:

Events:
2015-01-29 00:17:25 IT ELROA off
2015-01-29 00:17:26 IT ELROA on
2015-01-29 00:17:32 IT ELROA off
2015-01-29 00:17:34 CUL nanoCUL UNKNOWNCODE i000551

Enmal mit FHEM aus und eigeschaltet, funktioniert.
Dann mit der Fernbedienung aus und eingeschaltet, funktioniert aber beim einschalten kommt UNKNOWNCODE.
Die Fernbedinung wird auch nicht über autocreate angelegt.

Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

bjoernh

#396
Hallo Carlos,

bitte Debug einschalten und richtigen Code für ein/aus verwenden (siehe thread)

@joesy Scheint nicht zu passen. Du musst einen bit shift machen, sonst verfälschst Du die Zahl.

Gruß
Björn

robodrill

Hallo boernh,

habe die aktuelle Firmware, 00_cul und 10_it installiert.
Verbose 4 schmeisst mir folgendes raus wenn ich auf meiner ITT-1500 die obere "OFF" Tase drücke:
2015.01.29 16:10:34 4: CUL_Parse: CUL_0 i5A6996956A5595551D -59.5
2015.01.29 16:10:34 4: msgcode: 00110110100110000111000010000000
2015.01.29 16:10:34 4: 00110110100110000111000010 not defined (Group: 0 Unit: 0000 Switch code: 0)

Muss da noch etwas umgerechnet werden, wenn ich das als define einbinden will ?

Robodrill

P.S. der YWT-8500 geht jetzt ohne langes oder mehrmaliges drücken.

bjoernh

#398
Hi robodrill,

im pm Modul waren leider noch Fehler.

Wenn man verbose auf 4 stellt kommt z.B. folgende Ausgabe:
2015.01.29 16:50:16 4: 0011110011010101011001001001101 not defined (Address: 00111100110101010110010010 Group: 0 Unit: 1101 Switch code: 0)

Das entsprechende define sieht dann so aus:
define switch IT 00111100110101010110010010 0 1101
Dies entspricht dann define switch IT Address  Group Unit

Im Anhang das neue 10_IT.pm Modul.

NEU: Mit diesem Modul geht jetzt auch für IT V3 autocreate.
         D.h. Einfach eine Taste drücken und der entsprechende IT Eintrag wird erzeugt.


Gruß
Björn

justme1968

bitte poste deine änderung mal als diff gegen die aktuelle version.

ich checke es dann ein wenn es keine gegenstimmen gibt.

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

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

bjoernh

#400
Hallo andre,

anbei der Diff.

Rudi habe ich auch schon gebeten die Änderungen in die 00_CUL.pm zu übernehmen,
Ich glaube das möchte er ja selber machen.

Gruß
Björn

carlos

Das ist die Ausgabe, wenn ich die Fernbedienung einschalte und dann wieder asuschalte:
Events:
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE i001511
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE p 7 224 944 944 256 1 3 0 10 001511
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE p 7 240 992 976 256 1 3 0 10 001511
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE p 7 256 928 928 288 1 3 0 10 001511
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE p 7 272 912 912 288 0 3 0 10 001511
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE p 7 304 896 896 304 1 3 0 10 00155F
2015-01-29 23:15:55 CUL nanoCUL UNKNOWNCODE p 7 240 944 880 288 1 3 0 11 00155F
2015-01-29 23:15:56 CUL nanoCUL UNKNOWNCODE p 7 272 944 880 304 1 3 0 11 00155F
2015-01-29 23:15:58 IT ELROD off
2015-01-29 23:15:58 CUL nanoCUL UNKNOWNCODE p 7 288 896 928 304 0 3 0 11 001514
2015-01-29 23:15:58 CUL nanoCUL UNKNOWNCODE p 7 272 912 896 336 1 3 0 10 001514
2015-01-29 23:15:58 CUL nanoCUL UNKNOWNCODE p 7 288 896 896 288 0 3 0 11 001514
2015-01-29 23:15:58 CUL nanoCUL UNKNOWNCODE i00151f
2015-01-29 23:15:58 CUL nanoCUL UNKNOWNCODE p 7 240 928 896 304 1 3 0 11 00151F
2015-01-29 23:15:58 CUL nanoCUL UNKNOWNCODE p 7 256 944 880 288 1 3 0 11 00155F
2015-01-29 23:15:59 CUL nanoCUL UNKNOWNCODE p 7 240 944 880 288 1 3 0 11 00155F
2015-01-29 23:15:59 CUL nanoCUL UNKNOWNCODE p 7 256 944 912 272 1 3 0 11 00155F
2015-01-29 23:16:10 CUL nanoCUL UNKNOWNCODE p 6 80 608 1168 784 1 2 5 E3 CB7BA8


Das steht im log:

2015.01.29 23:16:10 2: nanoCUL: unknown message p 6   80  608 1168  784  1  2 5 E3 CB7BA8
2015.01.29 23:16:10 4: CUL_Parse: nanoCUL p 6   80  608 1168  784  1  2 5 E3 CB7BA8
2015.01.29 23:15:59 2: nanoCUL: unknown message p 7  256  944  912  272  1  3 0 11 00155F
2015.01.29 23:15:59 4: CUL_Parse: nanoCUL p 7  256  944  912  272  1  3 0 11 00155F
2015.01.29 23:15:59 2: nanoCUL: unknown message p 7  240  944  880  288  1  3 0 11 00155F
2015.01.29 23:15:59 4: CUL_Parse: nanoCUL p 7  240  944  880  288  1  3 0 11 00155F
2015.01.29 23:15:58 2: nanoCUL: unknown message p 7  256  944  880  288  1  3 0 11 00155F
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL p 7  256  944  880  288  1  3 0 11 00155F
2015.01.29 23:15:58 3: message 00155f!
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL i00155F11 -65.5
2015.01.29 23:15:58 2: nanoCUL: unknown message p 7  240  928  896  304  1  3 0 11 00151F
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL p 7  240  928  896  304  1  3 0 11 00151F
2015.01.29 23:15:58 3: nanoCUL: Unknown code i00151f, help me!
2015.01.29 23:15:58 3: Code 11 not supported by ELROD.
2015.01.29 23:15:58 3: message 00151f!
2015.01.29 23:15:58 3: Code 11 not supported by ELROD.
2015.01.29 23:15:58 3: message 00151f!
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL i00151F11 -65.5
2015.01.29 23:15:58 2: nanoCUL: unknown message p 7  288  896  896  288  0  3 0 11 001514
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL p 7  288  896  896  288  0  3 0 11 001514
2015.01.29 23:15:58 2: nanoCUL: unknown message p 7  272  912  896  336  1  3 0 10 001514
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL p 7  272  912  896  336  1  3 0 10 001514
2015.01.29 23:15:58 2: nanoCUL: unknown message p 7  288  896  928  304  0  3 0 11 001514
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL p 7  288  896  928  304  0  3 0 11 001514
2015.01.29 23:15:58 3: ELROD off->off
2015.01.29 23:15:58 3: message 001514!
2015.01.29 23:15:58 4: CUL_Parse: nanoCUL i00151411 -65.5
2015.01.29 23:15:56 2: nanoCUL: unknown message p 7  272  944  880  304  1  3 0 11 00155F
2015.01.29 23:15:56 4: CUL_Parse: nanoCUL p 7  272  944  880  304  1  3 0 11 00155F
2015.01.29 23:15:55 2: nanoCUL: unknown message p 7  240  944  880  288  1  3 0 11 00155F
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL p 7  240  944  880  288  1  3 0 11 00155F
2015.01.29 23:15:55 2: nanoCUL: unknown message p 7  304  896  896  304  1  3 0 10 00155F
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL p 7  304  896  896  304  1  3 0 10 00155F
2015.01.29 23:15:55 3: message 00155f!
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL i00155F10 -66
2015.01.29 23:15:55 2: nanoCUL: unknown message p 7  272  912  912  288  0  3 0 10 001511
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL p 7  272  912  912  288  0  3 0 10 001511
2015.01.29 23:15:55 2: nanoCUL: unknown message p 7  256  928  928  288  1  3 0 10 001511
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL p 7  256  928  928  288  1  3 0 10 001511
2015.01.29 23:15:55 2: nanoCUL: unknown message p 7  240  992  976  256  1  3 0 10 001511
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL p 7  240  992  976  256  1  3 0 10 001511
2015.01.29 23:15:55 2: nanoCUL: unknown message p 7  224  944  944  256  1  3 0 10 001511
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL p 7  224  944  944  256  1  3 0 10 001511
2015.01.29 23:15:55 3: nanoCUL: Unknown code i001511, help me!
2015.01.29 23:15:55 3: Code 0F not supported by ELROD.
2015.01.29 23:15:55 3: message 001511!
2015.01.29 23:15:55 3: Code 0F not supported by ELROD.
2015.01.29 23:15:55 3: message 001511!
2015.01.29 23:15:55 4: CUL_Parse: nanoCUL i00151110 -66
2015.01.29 23:15:48 2: nanoCUL: unknown message p 7  144  592  368  224  1  2 4 E4 3FFFF0
2015.01.29 23:15:48 4: CUL_Parse: nanoCUL p 7  144  592  368  224  1  2 4 E4 3FFFF0


Die Steckdose ist so definiert und läßt wie schon beschrieben mit FHEM aus und einschalten:
define ELROD IT 00000FFF0F FF F0
attr ELROD IODev nanoCUL
attr ELROD ITrepetition 12
attr ELROD group Schalter
attr ELROD model itswitch
attr ELROD room Steckdose

Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

joesy

#402
Zitat von: bjoernhScheint nicht zu passen. Du musst einen bit shift machen, sonst verfälschst Du die Zahl.

Welcher Bitshift ist noch notwendig? Wo sollte ich noch etwas ändern. Derzeit funktioniert mit meiner Änderung die Erkennung auf der Fritzbox. Nach meinen Verständnis könnte jede einzelne Hex-Stelle einzeln umgewandelt, sofern die führenden Nullen gesetzt werden. Oder verstehe ich hier etwas falsch.


bjoernh

#403
Guten Morgen,

mir ist gestern aufgefallen, dass durch meine letzte Änderung in der 10_IT.pm das Schalten von den V1 Dosen nicht mehr ging.
Im Anhang dann nochmals das komplette Paket (ich hoffe es geht dann alles).

@joesy
OK, war vielleicht etwas schnell die Antwort, passte aber trotzdem nicht.
Beispiel:
  Log3 undef,3,"message ".substr($msg,1,length($msg)-1)."!";
  $bin=sprintf("%024b",hex(substr($msg,1,length($msg)-1)));
  Log3 undef,3,"message in bin=$bin !";

  Log3 undef,3,"11111111111=".substr($msg,1,length($msg)-1-8)." !";
  Log3 undef,3,"11111111111=".substr($msg,1+8,length($msg)-1)." !";
  my $bin1=sprintf("%024b",hex(substr($msg,1,length($msg)-1-8)));
  my $bin2=sprintf("%024b",hex(substr($msg,1+8,length($msg)-1)));
  my $bin3 = $bin1 . $bin2;
  Log3 undef,3,"message in bin1=$bin1 !";
  Log3 undef,3,"message in bin2=$bin2 !";
  Log3 undef,3,"message in bin =$bin !";
  Log3 undef,3,"message in bin3=$bin3 !";


Ergibt folgendes:
2015.01.30 07:45:17 3: message 5aa5a666696596a5!
2015.01.30 07:45:17 3: message in bin=101101010100101101001100110011001101001011001011001011010100101 !
2015.01.30 07:45:17 3: 11111111111=5aa5a666 !
2015.01.30 07:45:17 3: 11111111111=696596a5 !
2015.01.30 07:45:17 3: message in bin1=1011010101001011010011001100110 !
2015.01.30 07:45:17 3: message in bin2=1101001011001011001011010100101 !
2015.01.30 07:45:17 3: message in bin =101101010100101101001100110011001101001011001011001011010100101 !
2015.01.30 07:45:17 3: message in bin3=101101010100101101001100110011 01101001011001011001011010100101 !


D.h. es müssen an den String die füllenden 0 ran, sonst stimmten die Bits nicht mehr. (Siehe letzte Log Zeile)
In der neu abgelegten Version ist dies eingebaut, sollte also auch bei dir funktionieren.

Gruß
Björn

bjoernh

Zitat von: carlos am 29 Januar 2015, 23:21:14

Die Steckdose ist so definiert und läßt wie schon beschrieben mit FHEM aus und einschalten:
define ELROD IT 00000FFF0F FF F0


Hallo Carlos,

definiere mal die Dose wie folgt:
define ELROD IT 00000FFF0F 11 F0

Ich denke, dann wird es funktionieren.