Signalduino Entwicklung

Begonnen von thoffma3, 05 Juli 2015, 23:01:00

Vorheriges Thema - Nächstes Thema

Ellert

Ich würde gern einen 6 Kanal Handsender mit dem Signalduino empfangen. Der Handsendersender gehört zu einem Garagentorantrieb von Einhell.
Die Bezeichnung des Handsendesrs lautet: HS 434/6 Minihandsenter 6-Kan. ISC GmbH

Ich habe das gesendete Signal, mit einem Empfänger aus einer IT Funksteckdose, über eine Soundkarte und mit Audacity aufgezeichnet. Die Analyse ergibt folgendes:
Ein Tastendruck erzeugt eine Signalfolge von einem Sync-Impuls plus 32 Bit und einer Pause. Diese Signalfolge wird 31 mal gesendet.

Die Signalfolge besteht aus:

Sync-Impuls 385 µs low
z.B. erstes Bit 411 µs high, 1141 µs low, Bedeutung vermutlich logisch 0
z.B. zweites Bit 1188 µs high, 416 µs low, Bedeutung vermutlich logisch 1
30 weitere Bits
Pause 20 ms high

Die Signalfolge wird 31 Mal gesendet.
Die Zeitangaben haben einen Fehler von etwa +/- 5 µs.
Die statische Adresse des Handsenders besteht aus Bit 1 bis Bit 28
Die Kanäle des Handsenders werden durch Bit 29 bis Bit 32 beschrieben.

Nach der Beschreibung aus dem Wiki würde ich z.B. so einen Protokolleintrag erwarten:
MS P0=-385;P1=411;P2=-1141;P3=1188;P4=-416;P5=20000;
D=01234...501234...501234...[31 Wiederholungen];CP=?;SP=0

Das bekomme ich als Protokolleintrag für einen Tastendruck, wobei ich die Daten gelöscht habe, da ich die Handsenderadresse nicht offen legen möchte:
2015.10.02 20:53:15 5: SIGNALduino/RAW READ: /MU
2015.10.02 20:53:15 5: SIGNALduino/RAW READ: MU/;P0=120;P1=-146;P2=390;P3=-422;P4=1123;P5=-1174;P6
2015.10.02 20:53:15 5: SIGNALduino/RAW READ: MU;P0=120;P1=-146;P2=390;P3=-422;P4=1123;P5=-1174;P6/=1371;D=;
2015.10.02 20:53:15 5: SIGNALduino/RAW READ: MU;P0=120;P1=-146;P2=390;P3=-422;P4=1123;P5=-1174;P6=1371;D=;CP=2;

2015.10.02 20:53:15 4: SIGNALduino/msg READ: MU;P0=120;P1=-146;P2=390;P3=-422;P4=1123;P5=-1174;P6=1371;D=;CP=2;
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: /MS;P0
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0/=388;P1=-385;P2=1124;P3=-1184;P4=12742;P5=-20024;P6
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0=388;P1=-385;P2=1124;P3=-1184;P4=12742;P5=-20024;P6/=1371;D=;
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0=388;P1=-385;P2=1124;P3=-1184;P4=12742;P5=-20024;P6=1371;D=;CP=0;SP=5;

2015.10.02 20:53:16 4: SIGNALduino/msg READ: MS;P0=388;P1=-385;P2=1124;P3=-1184;P4=12742;P5=-20024;P6=1371;D=;CP=0;SP=5;
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: /M
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: M/S;P0=-1193;P1=384;P2=-408;P3=1128;P4=-3636;P5=-200
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0=-1193;P1=384;P2=-408;P3=1128;P4=-3636;P5=-200/20;P6=1371;D=;CP=1;SP=5;

2015.10.02 20:53:16 4: SIGNALduino/msg READ: MS;P0=-1193;P1=384;P2=-408;P3=1128;P4=-3636;P5=-20020;P6=1371;D=;CP=1;SP=5;
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: /MS;P0
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0/=388;P1=-419;P2=1122;P3=-1171;P4=12750;P5=-20020;P6
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0=388;P1=-419;P2=1122;P3=-1171;P4=12750;P5=-20020;P6/=1371;D=
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MS;P0=388;P1=-419;P2=1122;P3=-1171;P4=12750;P5=-20020;P6=1371;D=;CP=0;SP=5;

2015.10.02 20:53:16 4: SIGNALduino/msg READ: MS;P0=388;P1=-419;P2=1122;P3=-1171;P4=12750;P5=-20020;P6=1371;D=;CP=0;SP=5;
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: /MU;P0=-
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MU;P0=-/384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=13
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MU;P0=-384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=13/71;D=
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MU;P0=-384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=1371;D=
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MU;P0=-384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=1371;D=
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MU;P0=-384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=1371;D=
2015.10.02 20:53:16 5: SIGNALduino/RAW READ: MU;P0=-384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=1371;D=;CP=3;O;

2015.10.02 20:53:16 4: SIGNALduino/msg READ: MU;P0=-384;P1=1126;P2=-1183;P3=392;P4=12746;P5=12748;P6=1371;D=;CP=3;O;
2015.10.02 20:53:16 5: Found matched Protocol id 9 -> CTW 600
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: /MS;P
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P/0=376;P1=-1176;P2=-420;P3=1124;P4=-3636;P5=-20016;
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P0=376;P1=-1176;P2=-420;P3=1124;P4=-3636;P5=-20016;/P6=1371;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P0=376;P1=-1176;P2=-420;P3=1124;P4=-3636;P5=-20016;P6=1371;D=;CP=0;SP=5;

2015.10.02 20:53:17 4: SIGNALduino/msg READ: MS;P0=376;P1=-1176;P2=-420;P3=1124;P4=-3636;P5=-20016;P6=1371;D=;CP=0;SP=5;
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: /MS;
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;/P0=-382;P1=1125;P2=-1169;P3=390;P4=-3636;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P0=-382;P1=1125;P2=-1169;P3=390;P4=-3636;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P0=-382;P1=1125;P2=-1169;P3=390;P4=-3636;D=;CP=3;SP=4;

2015.10.02 20:53:17 4: SIGNALduino/msg READ: MS;P0=-382;P1=1125;P2=-1169;P3=390;P4=-3636;D=;CP=3;SP=4;
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: /MU;P0=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=/1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1/371;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1371;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1371;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1371;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1371;D=;CP=3;O;
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1371;D=;CP=3;O;/

2015.10.02 20:53:17 4: SIGNALduino/msg READ: MU;P0=1124;P1=-387;P2=-1179;P3=393;P4=12748;P5=12752;P6=1371;;CP=3;O;
2015.10.02 20:53:17 5: Found matched Protocol id 9 -> CTW 600
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: /
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: /MS;P0=-1174;P1=390;P2=-422;P3=1123;P4=12746;P5=-200
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P0=-1174;P1=390;P2=-422;P3=1123;P4=12746;P5=-200/20;P6=1371;D=
2015.10.02 20:53:17 5: SIGNALduino/RAW READ: MS;P0=-1174;P1=390;P2=-422;P3=1123;P4=12746;P5=-20020;P6=1371;D=;CP=1;SP=5;

2015.10.02 20:53:17 4: SIGNALduino/msg READ: MS;P0=-1174;P1=390;P2=-422;P3=1123;P4=12746;P5=-20020;P6=1371;D=;CP=1;SP=5;
2015.10.02 20:53:18 5: SIGNALduino/RAW READ: /MS;P0=
2015.10.02 20:53:18 5: SIGNALduino/RAW READ: MS;P0=/389;P1=-20020;P2=-423;P3=1122;P4=-1174;P5=-32001;P
2015.10.02 20:53:18 5: SIGNALduino/RAW READ: MS;P0=389;P1=-20020;P2=-423;P3=1122;P4=-1174;P5=-32001;P/6=1371;D=
2015.10.02 20:53:18 5: SIGNALduino/RAW READ: MS;P0=389;P1=-20020;P2=-423;P3=1122;P4=-1174;P5=-32001;P6=1371;D=;CP=0;SP=1;

2015.10.02 20:53:18 4: SIGNALduino/msg READ: MS;P0=389;P1=-20020;P2=-423;P3=1122;P4=-1174;P5=-32001;P6=1371;D=;CP=0;SP=1;

Manche P-Zeiten passen ganz gut, die Länge der Daten variiert zwischen etwa 20 bis 240 Ziffern. Teile der Bitfolge werden manchmal richtig erkannt.

Ist der Signalduino dafür ausgelegt die beschriebene Signalfolge, bzw. das Protokoll zu erkennen?

Sidey

Hi Ellert,

Ja das Signal wird ja auch empfangen.

Die Zuordnung der Bits hast Du ja schon sehr gut heraus gearbeitet.

Was den Sync Puls angeht, da bin ich mir nicht so sicher ob es ein Signal mit oder ohne Sync Puls ist.

Da Du die Signaldaten entfernt hast wird es schwieriger.
Der Sync entspricht zwei Pulsen:
1x Takt (meist high) in diesem Fall 400
nx Takt (meist low )ich vermute 4000.

Kannst Du  das bei deiner Soundkarten Aufnahme finden?

Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

Zitat von: Sidey am 02 Oktober 2015, 21:07:46
Ich blick gerade nicht durch.
Longid support hatte ich doch bereits eingebaut.

Funktioniert das denn nicht?
Die aktuelle Version habe ich nicht getestet.
Laut der Aussage von pejonp scheint es nicht so richtig funktionieren.
Zitat von: pejonp am 02 Oktober 2015, 17:21:29
Ich habe das aktuelle cresta.pm heruntergeladen und longids=0 eingestellt. Keine Veränderung.  es kommen immer die vollständigen Bezeichner/Nummern. Ich würde es gerne so umstellen wie ich es hatte, darf ich  ::) ?? Ich komme aber erst heute abend dazu.

Da ich einige Sonderwünsche habe, habe ich es bei mir so realisiert, daß es für mich passt.
Meine Version ist nur als Vorschlag/Anregung gedacht.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

HI Ralf,

Wir wissen halt nicht, ob Jörg das richtige IO Modul verwendet hat.
Welche Sonderwünsche hast Du denn?

So ganz durchblicken tue ich ja jetzt nicht mehr.
Ich hab die Zufalls ID aus der Nachricht extrahiert und dann einen Funktionsaufruf dynamisch zusammen gebaut.
Ich hatte es auch getestet und es funktionierte bei mir.
Die Variable Model habe ich dann noch durch Sensortyp ersetzt. Sieht ja recht ähnlich zu den Änderungen aus, welche Du gepostet hast.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

Zitat von: Sidey am 02 Oktober 2015, 22:18:14
Welche Sonderwünsche hast Du denn?
Ich hätte gerne, daß man im devicecode das Protokol/Modul erkennen kann. 
Deine überprüfung ob die longids unterstützt werden erscheint mir recht aufwendig:
my $longidfunc= \&{"$iohash->{TYPE}_use_longid"};
if (defined(&$longidfunc) and (\&$longidfunc($iohash,"Cresta_$sensorTyp")))


Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

Hi Ralf,


Zitat von: Ralf9 am 02 Oktober 2015, 22:36:59
Ich hätte gerne, daß man im devicecode das Protokol/Modul erkennen kann. 
Deine überprüfung ob die longids unterstützt werden erscheint mir recht aufwendig:
my $longidfunc= \&{"$iohash->{TYPE}_use_longid"};
if (defined(&$longidfunc) and (\&$longidfunc($iohash,"Cresta_$sensorTyp")))

Zitat

Ja, der Modulname sollte enthalten sein, sonst wird es mit Regex schwierig. Hatte ich ja auch eingebaut.

Was Du mit aufwendig meinst, verstehe ich aber nicht.
Ich habe mir gedacht, ich prüfe ob es eine Funktion mit dem Namen des <IO Devices>_use_longid gibt und wenn das so ist, dann rufe ich diese auf.
Deine Variante funktioniert ja jetzt nur mit dem Signalduino und führt zum Absturz bei einem anderen IO Device dass ein Attribut "longids" vorweisen kann. Dann müsste man die Funktion ja wieder in jedes logische Modul einbauen um zu eruieren, ob eine longid für den Sensor gewünscht ist oder nicht.

Oder war mit Aufwändig etwas komplexer gemeint?  $longidfunc ist nur Refetenz auf eine Funktion. Dann wird geprüft ob diese Funktion existiert und wenn ja, dann wird die Funktion aufgerufen.

Grüße Sidey

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

Zitat von: Sidey am 02 Oktober 2015, 22:46:10
Was Du mit aufwendig meinst, verstehe ich aber nicht.
Ich habe mir gedacht, ich prüfe ob es eine Funktion mit dem Namen des <IO Devices>_use_longid gibt und wenn das so ist, dann rufe ich diese auf.
Deine Variante funktioniert ja jetzt nur mit dem Signalduino und führt zum Absturz bei einem anderen IO Device dass ein Attribut "longids" vorweisen kann.
Ich habe mir gedacht, daß es eigentlich auch reichen müsste, nur abzufragen ob es das attribut longids gibt.
Wenn es bei einem anderem Hauptmodul (IO Device) das Attribut "longids" gibt, muß dort sowieso Deine Helper Function "sub  SIGNALduino_use_longid {" hinzugefügt werden. Dann passt es ja wieder.

Oder mache ich da einen Denkfehler?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

Hi Ralf,

ja. Wenn jemand dann den SiGNALduino und z.B. einen RFXTRX oder sonst was nutzt, dann kommt eine Fehlermeldung, dass die Funktion noch mal definiert wird.

Innerhalb eines Modules definiert man auch keine Funktionen eines anderen Modules.
Im CUL würde sich die Funktion dann

CUL_use_longids nennen

Im RFXTRX:

RFXTRX_use_longids

usw...

Damit nicht jeder seine Funktion hier definiert, müsste die in eine 98_utils oder sowas.. aber da kommen wirklich nur Funktionen hinein, die auch wirklich viele brauchen können.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hjgode

Kann es sein, das es sich bei diesen MU Signalen um EC3000 handelt?:

2015-10-03 10:14:01-MU;P0=-505;P1=471;P2=948;P3=-982;P4=-472;D=0010232310142310231020131010201010101013232010101013201323101023231010101010102010132323201013102;CP=1;
#2015-10-03 10:14:01-MU;P0=-140;P1=888;P2=-568;P3=417;P4=-1063;P5=965;P6=1371;D=012343254523432545232341432141432143232143212343232123232323234141232323234120;CP=3;
#2015-10-03 10:14:48-MU;P0=-590;P1=390;P2=-553;P3=926;P4=-1027;D=0123214123432141234321214341234341232141234123214121232101010101;CP=1;
#2015-10-03 10:14:48-MC;LL=-998;LH=939;SL=-521;SH=513;D=E94498FC;C=483;
#2015-10-03 10:14:48-MC;LL=-1039;LH=912;SL=-559;SH=345;D=AE65974A44C0;C=418;
#2015-10-03 10:15:35-MC;LL=-1019;LH=923;SL=-539;SH=438;D=263F5F68A02BC8;C=453;
#2015-10-03 10:15:35-MU;P0=-546;P1=-1022;P2=915;P3=431;D=012130212130213030213020313030203030303031213;CP=3;
#2015-10-03 10:16:22-MU;P0=951;P1=-508;P2=446;P3=-1004;P4=-986;D=012321040124210301212303210303210123210321012321210121212121230301212121230123033;CP=2;


Die EC3000 (ich habe drei) empfange ich mit einem Jeelink und einer aufendigen Antenne.

myJeeLink_RAWMSG

OK 22 30 14 3 222 240 0 3 222 240 0 0 89 117 111 0 12 82 77 2 1


Nur so am Rande.
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

pejonp

Zitat von: Sidey am 02 Oktober 2015, 22:18:14
....Wir wissen halt nicht, ob Jörg das richtige IO Modul verwendet hat.
....
Hallo Sidey & Ralf,

ich habe über update all ... die Dateien vom dev-cresta  auf meiner FHEM Installation aktualisiert. Wenn ich longids=0 setzte reagiert das OREGON-Modul, beim Cresta ändert sich nicht z.B. 30_11_1 bleibt. Habe heute noch einmal ein Update gemacht. Es ändert sich nichts.

@Sidey
Welches IO Modul soll ich den verwenden ?

Tschüß Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

pejonp

Hallo Sidey,

ich habe spassenshalbe mal einen RX868- Empfänger (FS20(elv)) angeschlossen. Die Daten die dort ankommen werden teilweise auch schon erkannt. Es gibt ja auch Wettersensoren auf dieser Basis.
Ich habe mit einer  FS20-Fernbedienung (ELV) getestet. Wettersensoren habe ich keine bzw. welche mit dem LaCross-Protokoll und diese empfange ich mit JeeLink.

Das geht glaube ich so in die Richtung EC3000 oder auch Daten vom ESA1000WZ können damit empfangen werden. Kann ein zusätzlicher Empfänger an einem andern Arduino-Port angeschlossen werden und diese Daten dann auch ausgewertet werden. So hat man einen 433 und 868 MHz Empfänger. Nur so mal als Idee.
FS20-Module, usw. gibt es ja schon einige.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Ralf9

#281
Zitat von: Sidey am 02 Oktober 2015, 23:21:39
ja. Wenn jemand dann den SiGNALduino und z.B. einen RFXTRX oder sonst was nutzt, dann kommt eine Fehlermeldung, dass die Funktion noch mal definiert wird.

Zitat von: pejonp am 02 Oktober 2015, 07:27:15
In einem Beitrag weiter vorn hast du darauf verwiesen das das Cresta-Modul auch eigenständig z.B. beim Selbstbau CUL oder .. genutzt werden kann. Dann sollten auch alle Funktionen im Modul enthalten sein und nicht auf andere verweisen werden. So wie wir ja jetzt auch OREGON oder TCM97001 nutzen. Ich bin der Meinung die Funktionen die in einem Modul benötigt werden solten auch in diesem programmiert sein.

Ich denke auch, daß es evtl besser ist, wenn nicht auf ein anderes Modul verwiesen wird.
Dann kann das Modul problemloser von anderen mitverwendet werden.

So müsste es doch auch ausreichend sein (noch ungetestet):
my $dev_type = "Cresta_$sensorTyp";
my $longids = $attr{$iohash->{NAME}}{longids};
if (defined($longids) && ($longids eq "1" || $longids eq "ALL" || (",$longids," =~ m/,$dev_type,/)))
{
$deviceCode = $dev_type . "_" . $id . $channel;
} else {
$deviceCode = $dev_type . "_" . $channel;
}


Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

pejonp

Zitat von: Ralf9 am 03 Oktober 2015, 11:38:39
Ich denke auch, daß es evtl besser ist, wenn nicht auf ein anderes Modul verwiesen wird.
.....
Hallo Ralf, Hallo Sidey,

ich habe die Änderungen eingebaut. Kann bestimmt noch eleganter gelöst werden, aber es funktioniert bei mir jetzt. Vielleicht könntet ihr das mal testen. Vielen Dank.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Ralf9

Zitat von: pejonp am 03 Oktober 2015, 14:18:34
ich habe die Änderungen eingebaut. Kann bestimmt noch eleganter gelöst werden, aber es funktioniert bei mir jetzt. Vielleicht könntet ihr das mal testen. Vielen

Wenn es für Dich und Sidey ok ist, würde ich es gerne so wie ich es in Antwort #282 geschrieben habe, einbauen.

Wenn ich bei der $id alle 8Bit der Device ID verwende, dann ist dort die Info über den Kanal bereits enthalten
my $id=substr($decodedString,2,2);
und beim langen devicecode wird der Kanal nicht benötigt
$deviceCode =  $model . "_" . $id;

Bei if ($sensorTyp==0x1E) würde ich $model= "Cresta_30" eintragen

Wird das hier noch benötigt?
#for debug only
my $test="";

for(my $i=0; $i<scalar @decodedBytes; $i++){
$test.=sprintf("%02x", $decodedBytes[$i]);
}
Log3 $name,4, "bytes arr->".$test;
#end for debug only



Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey


Hi Ralf,

Dein Vorschlag klingt plausibel.
Checke es ein,  auf github kann man einzelne codezeilen auch kommentieren.

Zitat von: Ralf9 am 03 Oktober 2015, 17:33:01

Bei if ($sensorTyp==0x1E) würde ich $model= "Cresta_30" eintragen

Warum nicht universal: "Cresta_".oct($sensorTyp);

Das Modul und alle Bezeichner würde ich in Hideki umbenennen, die haben das Protokoll wohl entwickelt.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker