FHEM Forum

FHEM - Hausautomations-Systeme => InterTechno => Thema gestartet von: sissiwup am 31 Januar 2016, 19:47:40

Titel: Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sissiwup am 31 Januar 2016, 19:47:40
Hallo,

ich habe eine Baumarktsteckdose, basierend auf EIM-826 (UNITEC) die es in jeden Baumarkt für 10-15 Euro inkl 3 Schaltdosen im Betrieb.
Das funktioniert auch so ganz gut. Um meine Brennenstuhl Funksteckdosen zu steuern habe ich mir eine nanoCUL selbst (nach Anleitung hier) gebaut und diese an meiner CCU2 angeschlossen. Mit diesen Steckdosen gab es auch keine weiteren Probleme.

Im Intertechno-Modus gib es ja drei Signale:
0 = LOW LOW = 0 0
1 = HIGH HIGH = 1 1
F = LOW HIGH = 0 1
Es fehlt:
? = HIGH LOW = 1 0

Diese billigen Dinger aus dem Baumarkt nutzen aber zum Ausschalten genau diesen fehlenden Code.

(Die Fernbedienung lifert z.B. ...F für ein und ...E für aus.
F = 1111 => 1 1 im Intertechno-Sprechweise
E = 1110 => 1 ? gibt es nicht in Intertechno.

Ich habe nun das Modul intertechno.c angepaßt, so dass auch diese Teile funktionieren.
Für ? habe ich 2 gewählt. Also
E = 1110 => 12 im "Quad-Modus"

Was ist zu tun:

die Datei intertechno.c anpassen:

/*
* Copyright by O.Droegehorn /
*              DHS-Computertechnik GmbH
* License: GPL v2
*/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <util/parity.h>
#include <string.h>

#include "board.h"

#ifdef HAS_INTERTECHNO

#include "delay.h"
#include "rf_send.h"
#include "rf_receive.h"
#include "led.h"
#include "cc1100.h"
#include "display.h"
#include "fncollection.h"
#include "fht.h"
#include "intertechno.h"

#ifdef HAS_ASKSIN
#include "rf_asksin.h"
#endif

#ifdef HAS_MORITZ
#include "rf_moritz.h"
#endif

static uint8_t intertechno_on = 0;

const PROGMEM const uint8_t CC1100_ITCFG[EE_CC1100_CFG_SIZE] = {
// CULFW   IDX NAME     RESET STUDIO COMMENT
   0x0D, // 00 IOCFG2   *29   *0B    GDO2 as serial output
   0x2E, // 01 IOCFG1    2E    2E    Tri-State
   0x2D, // 02 IOCFG0   *3F   *0C    GDO0 for input
   0x07, // 03 FIFOTHR   07   *47   
   0xD3, // 04 SYNC1     D3    D3   
   0x91, // 05 SYNC0     91    91   
   0x3D, // 06 PKTLEN   *FF    3D   
   0x04, // 07 PKTCTRL1  04    04   
   0x32, // 08 PKTCTRL0 *45    32   
   0x00, // 09 ADDR      00    00   
   0x00, // 0A CHANNR    00    00   
   0x06, // 0B FSCTRL1  *0F    06    152kHz IF Frquency
   0x00, // 0C FSCTRL0   00    00   
   0x10, // 0D FREQ2    *1E    21    433.92 (InterTechno Frequency)
   0xb0, // 0E FREQ1    *C4    65   
   0x71, // 0F FREQ0    *EC    e8   
   0x55, // 10 MDMCFG4  *8C    55    bWidth 325kHz
   0xe4, // 11 MDMCFG3  *22   *43    Drate:1500 ((256+228)*2^5)*26000000/2^28
   0x30, // 12 MDMCFG2  *02   *B0    Modulation: ASK
   0x23, // 13 MDMCFG1  *22    23   
   0xb9, // 14 MDMCFG0  *F8    b9    ChannelSpace: 350kHz
   0x00, // 15 DEVIATN  *47    00   
   0x07, // 16 MCSM2     07    07   
   0x00, // 17 MCSM1     30    30   
   0x18, // 18 MCSM0    *04    18    Calibration: RX/TX->IDLE
   0x14, // 19 FOCCFG   *36    14   
   0x6C, // 1A BSCFG     6C    6C   
   0x07, // 1B AGCCTRL2 *03   *03    42 dB instead of 33dB
   0x00, // 1C AGCCTRL1 *40   *40   
   0x90, // 1D AGCCTRL0 *91   *92    4dB decision boundery
   0x87, // 1E WOREVT1   87    87   
   0x6B, // 1F WOREVT0   6B    6B   
   0xF8, // 20 WORCTRL   F8    F8   
   0x56, // 21 FREND1    56    56   
   0x11, // 22 FREND0   *16    17    0x11 for no PA ramping
   0xE9, // 23 FSCAL3   *A9    E9   
   0x2A, // 24 FSCAL2   *0A    2A
   0x00, // 25 FSCAL1    20    00
   0x1F, // 26 FSCAL0    0D    1F   
   0x41, // 27 RCCTRL1   41    41   
   0x00, // 28 RCCTRL0   00    00   
};

uint16_t it_interval = 420;
uint16_t it_interval_v3 = 260;
uint16_t it_repetition = 6;
uint8_t restore_asksin = 0;
uint8_t restore_moritz = 0;
unsigned char it_frequency[] = {0x10, 0xb0, 0x71};

static void
it_tunein(void)
{
  int8_t i;
 
EIMSK &= ~_BV(CC1100_INT);                 
  SET_BIT( CC1100_CS_DDR, CC1100_CS_PIN ); // CS as output

  CC1100_DEASSERT;                           // Toggle chip select signal
  my_delay_us(30);
  CC1100_ASSERT;
  my_delay_us(30);
  CC1100_DEASSERT;
  my_delay_us(45);

  ccStrobe( CC1100_SRES );                   // Send SRES command
  my_delay_us(100);

  CC1100_ASSERT;                             // load configuration
  cc1100_sendbyte( 0 | CC1100_WRITE_BURST );
  for(uint8_t i = 0; i < 13; i++) {
    cc1100_sendbyte(__LPM(CC1100_ITCFG+i));
  } // Tune to standard IT-Frequency
  cc1100_sendbyte(it_frequency[0]); // Modify Freq. for 433.92MHZ, or whatever
  cc1100_sendbyte(it_frequency[1]);
cc1100_sendbyte(it_frequency[2]); 
for (i = 16; i<EE_CC1100_CFG_SIZE; i++) {
    cc1100_sendbyte(__LPM(CC1100_ITCFG+i));
}
  CC1100_DEASSERT;

  uint8_t *pa = EE_CC1100_PA;
  CC1100_ASSERT;                             // setup PA table
  cc1100_sendbyte( CC1100_PATABLE | CC1100_WRITE_BURST );
  for (uint8_t i = 0;i<8;i++) {
    cc1100_sendbyte(erb(pa++));
  }
  CC1100_DEASSERT;

  ccStrobe( CC1100_SCAL );
  my_delay_ms(1);
  cc_on = 1; // Set CC_ON
}

static void
send_IT_bit(uint8_t bit)
{
if (bit == 1) {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High H
  my_delay_us(it_interval * 3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval);

  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High H
  my_delay_us(it_interval * 3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval);
  } else if (bit == 0) {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low L
  my_delay_us(it_interval * 3);

  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low L
  my_delay_us(it_interval * 3);
// Quad-State
  } else if (bit == 2) {
      CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High H
      my_delay_us(it_interval * 3);
      CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
      my_delay_us(it_interval);
     
      CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High L
      my_delay_us(it_interval);
      CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
      my_delay_us(it_interval * 3);
// Quad-State
  } else {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low L
  my_delay_us(it_interval * 3);

  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High H
  my_delay_us(it_interval * 3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval); 
  }
}

static void
send_IT_start_V3(void) {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
my_delay_us(it_interval);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3 * 10);
}

static void
send_IT_stop_V3(void) {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3 * 40);
}

static void
send_IT_bit_V3(uint8_t bit)
{
if (bit == 1) {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3 * 5);

  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3);
  } else if (bit == 0) {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3);

  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3 * 5);
  } else {
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3);

  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval_v3);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  my_delay_us(it_interval_v3); 
  }
}

static void
it_send (char *in) {
  int8_t i, j, k;

LED_ON();

    #if defined (HAS_IRRX) || defined (HAS_IRTX) //Blockout IR_Reception for the moment
      cli();
    #endif

// If NOT InterTechno mode
if(!intertechno_on)  {
#ifdef HAS_ASKSIN
if (asksin_on) {
restore_asksin = 1;
asksin_on = 0;
}
#endif
#ifdef HAS_MORITZ
if(moritz_on) {
restore_moritz = 1;
moritz_on = 0;
}
#endif
it_tunein();
my_delay_ms(3);             // 3ms: Found by trial and error
    }
  ccStrobe(CC1100_SIDLE);
  ccStrobe(CC1100_SFRX );
  ccStrobe(CC1100_SFTX );

  ccTX();                       // Enable TX

    int8_t sizeOfPackage = strlen(in)-1; // IT-V1 = 14, IT-V3 = 33
 
for(i = 0; i < it_repetition; i++)  {
      if (sizeOfPackage == 33) {     
        send_IT_start_V3();
      }
  for(j = 1; j < sizeOfPackage; j++)  {
  if(in[j+1] == '0') {
          if (sizeOfPackage == 33) {
  send_IT_bit_V3(0);
          } else {
send_IT_bit(0);
          }     
} else if (in[j+1] == '1') {
          if (sizeOfPackage == 33) {
  send_IT_bit_V3(1);
          } else {
send_IT_bit(1);
          } 
// Quad
                } else if (in[j+1] == '2') {
          if (sizeOfPackage == 33) {
                       send_IT_bit_V3(2);
          } else {
                        send_IT_bit(2);
          }

// Quad
                } else {
          if (sizeOfPackage == 33) {
  send_IT_bit_V3(3);  // Quad 2->3
} else {
send_IT_bit(3);       // Quad 2->3
}
}
}
      if (sizeOfPackage == 33) { 
        send_IT_stop_V3();
      } else {
// Sync-Bit
  CC1100_OUT_PORT |= _BV(CC1100_OUT_PIN);         // High
  my_delay_us(it_interval);
  CC1100_OUT_PORT &= ~_BV(CC1100_OUT_PIN);       // Low
  for(k = 0; k < 31; k++)  {
  my_delay_us(it_interval);
}
      }
} //Do it n Times

  if(intertechno_on) {
if(tx_report) {                               // Enable RX
    ccRX();
  } else {
  ccStrobe(CC1100_SIDLE);
}
  }
  #ifdef HAS_ASKSIN
      else if (restore_asksin) {
restore_asksin = 0;
    rf_asksin_init();
asksin_on = 1;
    ccRX();
 
  #endif
#ifdef HAS_MORITZ
else if (restore_moritz) {
restore_moritz = 0;
rf_moritz_init();
}
#endif
  else {
    set_txrestore();
  }

    #if defined (HAS_IRRX) || defined (HAS_IRTX) //Activate IR_Reception again
      sei();
    #endif  

LED_OFF();

DC('i');DC('s');
for(j = 1; j < sizeOfPackage; j++)  {
if(in[j+1] == '0') {
DC('0');
} else if (in[j+1] == '1') {
                DC('1');
            } else if (in[j+1] == '2') {  // Quad
                DC('2');                  // Quad
} else {
DC('F');
}
}
DNL();
}


void
it_func(char *in)
{
if (in[1] == 't') {
fromdec (in+2, (uint8_t *)&it_interval);
DU(it_interval,0); DNL();
} else if (in[1] == 's') {
if (in[2] == 'r') { // Modify Repetition-counter
fromdec (in+3, (uint8_t *)&it_repetition);
DU(it_repetition,0); DNL();
} else {
it_send (in); // Sending real data
} //sending real data
} else if (in[1] == 'r') { // Start of "Set Frequency" (f)
#ifdef HAS_ASKSIN
if (asksin_on) {
restore_asksin = 1;
asksin_on = 0;
}
#endif
#ifdef HAS_MORITZ
if (moritz_on) {
restore_moritz = 1;
moritz_on = 0;
}
#endif
it_tunein ();
intertechno_on = 1;
} else if (in[1] == 'f') { // Set Frequency
  if (in[2] == '0' ) {
  it_frequency[0] = 0x10;
  it_frequency[1] = 0xb0;
  it_frequency[2] = 0x71;
  } else {
fromhex (in+2, it_frequency, 3);
}
DC('i');DC('f');DC(':');
  DH2(it_frequency[0]);
  DH2(it_frequency[1]);
  DH2(it_frequency[2]);
  DNL();
} else if (in[1] == 'x') {                     // Reset Frequency back to Eeprom value
if(0) { ;
#ifdef HAS_ASKSIN
} else if (restore_asksin) {
restore_asksin = 0;
rf_asksin_init();
asksin_on = 1;
ccRX();
#endif
#ifdef HAS_MORITZ
} else if (restore_moritz) {
restore_moritz = 0;
rf_moritz_init();
#endif
} else {
ccInitChip(EE_CC1100_CFG); // Set back to Eeprom Values
if(tx_report) {                               // Enable RX
ccRX();
} else {
ccStrobe(CC1100_SIDLE);
}
}
intertechno_on = 0;
} else if (in[1] == 'c') { // Modify Clock-counter
        fromdec (in+1, (uint8_t *)&it_interval);
    }
}

#endif


=> alle Stellen sind mit Quad gekennzeichnet.
Ich hätte es auch gerne in das Repositorie eingepflegt, leider habe ich das aber nicht hinbekommen.
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: mahowi am 05 Februar 2016, 15:18:40
Meine C-Kenntnisse sind leider sehr bescheiden.  :-\

Läßt sich das auch in der a-culfw einbauen? Hier sieht intertechno.c nämlich etwas anders aus: https://github.com/heliflieger/a-culfw/blob/master/culfw/clib/intertechno.c (https://github.com/heliflieger/a-culfw/blob/master/culfw/clib/intertechno.c)
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sissiwup am 05 Februar 2016, 17:18:27
Hallo,

der Code ist nahezu exakt identisch. Sollte also kein Problem sein. Nutze halt nur die normale CULFW.
Bin halt noch recht neu dabei und habe erst später erfahren das es eine a(lternative) culfw gibt.

Was sind denn die Vorteile von a-culfw?
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: mahowi am 05 Februar 2016, 22:10:21
Der Vorteil ist die Unterstützung von zusätzlichen Protokollen. Außerdem läßt sich damit auch der Max Cube zum CUL flashen.
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: mahowi am 10 Februar 2016, 18:41:59
Zitat von: sissiwup am 05 Februar 2016, 17:18:27
Hallo,

der Code ist nahezu exakt identisch. Sollte also kein Problem sein. Nutze halt nur die normale CULFW.
Bin halt noch recht neu dabei und habe erst später erfahren das es eine a(lternative) culfw gibt.

Hallo,
so identisch ist der Code nicht wirklich, zumindest nicht für mich als C-Laien. Den ersten Teil Deiner Änderung einzubauen ist kein Problem:
--- intertechno.c.orig  2016-02-05 14:56:36.379968848 +0100
+++ intertechno.c       2016-02-10 18:28:09.549999375 +0100
@@ -177,6 +177,18 @@
        my_delay_us(it_interval);
          CC1100_CLEAR_OUT;       // Low
          my_delay_us(it_interval * 3);
+// Quad-State
+  } else if (bit == 2) {
+       CC1100_SET_OUT;         // High
+       my_delay_us(it_interval * 3);
+       CC1100_CLEAR_OUT;       // Low
+       my_delay_us(it_interval);
+
+       CC1100_SET_OUT;         // High
+       my_delay_us(it_interval);
+       CC1100_CLEAR_OUT;       // Low
+       my_delay_us(it_interval * 3);
+// Quad-State
   } else {
        CC1100_SET_OUT;         // High
        my_delay_us(it_interval);


Aber wo bau ich den Rest Deiner Änderungen ein (ab Zeile 285)?
// Quad
                } else if (in[j+1] == '2') {
          if (sizeOfPackage == 33) {
                       send_IT_bit_V3(2);
          } else {
                        send_IT_bit(2);
          }

// Quad
                } else {
          if (sizeOfPackage == 33) {
  send_IT_bit_V3(3);  // Quad 2->3
} else {
send_IT_bit(3);       // Quad 2->3
}


Der Code müsste ja irgendwo ab Zeile 385 (https://github.com/heliflieger/a-culfw/blob/master/culfw/clib/intertechno.c#L385) in der a-culfw eingefügt werden.
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sidi am 18 Februar 2016, 18:15:42
HAllo,

ich hätte auch Interesse an einer modifizierten a-culfw. Habe auch ein paar Geräte, die 10 benötigen.

Gruß,
sidi
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: bjoernh am 20 Februar 2016, 22:00:13
Zitat von: sidi am 18 Februar 2016, 18:15:42
HAllo,

ich hätte auch Interesse an einer modifizierten a-culfw. Habe auch ein paar Geräte, die 10 benötigen.

Gruß,
sidi

Ich kann mir das mal anschauen, es muss aber einer von euch testen.
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sidi am 21 Februar 2016, 12:38:27
ich würde es mit meinen Geräten testen.
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Tatsu am 20 März 2016, 16:18:05
Ich habe ich hier auch Unitec Funksteckdosen die ich gerne mit der a-culfw nutzen würde und wäre bereit zu testen... :)
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sidi am 22 Mai 2016, 12:28:17
gibt es hier schon was zum Testen?
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: bjoernh am 26 November 2016, 18:57:20
Hallo,

ich habe mir gerade mal den Code in der a-culfw angesehen.

Den wert '2' habe ich bereits belegt.
Das einzige was ich anbieten kann ist die 3 zu nehmen.
Ich werde das jetzt mal einbauen, kann dass dan jemand bitte testen?

Gruß
Björn
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Ralf9 am 27 November 2016, 12:10:30
Zitat von: bjoernh am 26 November 2016, 19:53:24
Das spezielle Bit ist dann die '3'
Was mich noch interessieren würde, wäre mal ein Empfang eines Handsenders. Ich denke da muss noch etwas im Fhem Modul angepasst werden.

Ich habe es für den Signalduino schon eingebaut, ich habe für "10" aber "D" verwendet. Die Änderung von "D" nach "3" im IT-Modul ist eine Kleinigkeit, bedeutet dann aber, daß diejenigen die das beim Signalduino bereits verwenden, den on/off Code anpassen müssen.

my %bintotristate=(
  "00" => "0",
  "01" => "F",
  "10" => "D",
  "11" => "1"
);


    return "Define $a[0]: wrong OFF format: specify a 2 digits 0/1/f/d "
    if( ($a[4] !~ m/^[df0-1]{2}$/i) );


Gruß Ralf
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Ralf9 am 27 November 2016, 12:11:22
Zitat von: bjoernh am 26 November 2016, 22:04:50
damit kann ich auch leben.
Ich werde es dann in der a-culfw auf D ändern.

OK, lokal geht es schon. Jetzt muss nur noch das FHEM Modul angepasst werden. Das sehe ich doch richtig, oder?

Mit dem aktuellen IT-Modul hat das Empfangen seither schon funktioniert. Mit Deinem patch in der a-culfw müsste jetzt auch das senden funktionieren.

Zum anlegen mit autocreate 2 mal auf "on" drücken:
2016.11.27 11:47:37.753 5: sduinoD dispatch i0D0C0F
2016.11.27 11:47:37.753 4: sduinoD IT: message "i0D0C0F" (7)
2016.11.27 11:47:37.753 4: sduinoD IT: msgcode "001F00100011" (12) bin = 000011010000110000001111
2016.11.27 11:47:37.753 5: sduinoD IT: V1 housecode = 001F001000  onoffcode = 11
2016.11.27 11:47:37.753 4: sduinoD IT: 001F001000 not defined (Switch code: 11)
2016.11.27 11:47:37.755 2: autocreate: define IT_001F001000 IT 001F001000 0F F0


Nun auf "off" drücken:
2016.11.27 11:48:32.004 5: sduinoD dispatch i0D0C0E
2016.11.27 11:48:32.004 4: sduinoD IT: message "i0D0C0E" (7)
2016.11.27 11:48:32.004 4: sduinoD IT: msgcode "001F0010001D" (12) bin = 000011010000110000001110
2016.11.27 11:48:32.004 5: sduinoD IT: V1 housecode = 001F001000  onoffcode = 1D
2016.11.27 11:48:32.004 3: sduinoD IT: Code 1D not supported by IT_001F001000.


Da dies keine Intertechno Steckdose ist passt der on/off code im define nicht und muss angepasst werden
001F001000 11 1D

Gruß Ralf
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sasel am 10 Dezember 2016, 12:27:01
Hallo,

ich möchte als Neuling höflich nachfragen ob das Thema Unitec aus eurer Sicht abgeschlossen ist. Ich habe mir die Unitec 48110 ohne DIP Schalter bei Hornbach besorgt.
Aufgrund der Foreneinträge habe ich meinen nanoCUL auf die FW 1.23.03 geflasht und zu Sicherheit gestern auch noch einmal FHEM geupdatet. Leider komme ich hier nicht zum Erfolg. Ich habe das Loglevel des nanoCUL auf Verbose 5 gesetzt und erhalten im Log folgende Einträge wenn ich mit der Fernbedienung schalte.


2016.12.10 12:16:44 4: CUL_Parse: nanoCUL i6556996A969A959615 -63.5
2016.12.10 12:16:44 5: nanoCUL: dispatch i6556996a969a9596
2016.12.10 12:16:44 4: nanoCUL IT: message "i6556996a969a9596" (17)
2016.12.10 12:16:44 4: nanoCUL ITv3: bin message "0110010101010110100110010110101010010110100110101001010110010110" (64)
2016.12.10 12:16:44 4: nanoCUL IT: msgcode "01000001101001111001101110001001" (32) bin = 0110010101010110100110010110101010010110100110101001010110010110
2016.12.10 12:16:53 5: CUL/RAW: /s5E
2016.12.10 12:16:53 5: CUL/RAW: s5E/880
2016.12.10 12:16:53 5: CUL/RAW: s5E880/5513
2016.12.10 12:16:53 5: CUL/RAW: s5E8805513/028;
2016.12.10 12:16:53 5: CUL/RAW: s5E8805513028;/  48
2016.12.10 12:16:53 5: CUL/RAW: s5E8805513028;  48/0: 9
2016.12.10 12:16:53 5: CUL/RAW: s5E8805513028;  480: 9/184
2016.12.10 12:16:53 5: CUL/RAW: s5E8805513028;  480: 9184



Autocreate legt "natürlich" nichts an. Auf mich als Laie wirkt es, als wenn der Code nur zur Hälfte erkannt/verarbeitet wird.
Da ich bis jetzt durch forschen im Forum so ziemlich alles ans laufen gebracht habe, habe ich die Hoffnung, dass ich hier mit einem kleinen Hinweis Eurerseits vielleicht schon weiterkommen kann.

Vorab schon einmal vielen Dank und Gruß

sasel
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Ralf9 am 10 Dezember 2016, 19:45:19
Hast Du die Taste innerhalb 30 sek zwei mal gedrückt?

Wenn ich es bei mir mit Deinen Daten mit einem Dummy simuliere, wird es sauber per autocreate angelegt:
2016.12.10 19:29:55.003 4: sduinoD/msg get dispatch: i6556996a969a9596
2016.12.10 19:29:55.003 5: sduinoD dispatch i6556996a969a9596
2016.12.10 19:29:55.015 4: sduinoD IT: message "i6556996a969a9596" (17)
2016.12.10 19:29:55.015 4: sduinoD ITv3: bin message "0110010101010110100110010110101010010110100110101001010110010110" (64)
2016.12.10 19:29:55.015 4: sduinoD IT: msgcode "01000001101001111001101110001001" (32) bin = 0110010101010110100110010110101010010110100110101001010110010110
2016.12.10 19:29:55.015 2: sduinoD IT: 0100000110100111100110111001001 not defined (Address: 01000001101001111001101110 Group: 0 Unit: 1001 Switch code: 0)
2016.12.10 19:30:22.039 4: sduinoD/msg get dispatch: i6556996a969a9596
2016.12.10 19:30:22.040 5: sduinoD dispatch i6556996a969a9596
2016.12.10 19:30:22.040 4: sduinoD IT: message "i6556996a969a9596" (17)
2016.12.10 19:30:22.040 4: sduinoD ITv3: bin message "0110010101010110100110010110101010010110100110101001010110010110" (64)
2016.12.10 19:30:22.040 4: sduinoD IT: msgcode "01000001101001111001101110001001" (32) bin = 0110010101010110100110010110101010010110100110101001010110010110
2016.12.10 19:30:22.040 2: sduinoD IT: 0100000110100111100110111001001 not defined (Address: 01000001101001111001101110 Group: 0 Unit: 1001 Switch code: 0)
2016.12.10 19:30:22.042 2: autocreate: define IT_0100000110100111100110111001001 IT 01000001101001111001101110 0 1001
2016.12.10 19:30:22.043 2: autocreate: define FileLog_IT_0100000110100111100110111001001 FileLog ./log/IT_0100000110100111100110111001001-%Y-%m.log IT_0100000110100111100110111001001
2016.12.10 19:30:22.901 4: sduinoD/msg get dispatch: i6556996a969a9596
2016.12.10 19:30:22.901 5: sduinoD dispatch i6556996a969a9596
2016.12.10 19:30:22.901 4: sduinoD IT: message "i6556996a969a9596" (17)
2016.12.10 19:30:22.901 4: sduinoD ITv3: bin message "0110010101010110100110010110101010010110100110101001010110010110" (64)
2016.12.10 19:30:22.901 4: sduinoD IT: msgcode "01000001101001111001101110001001" (32) bin = 0110010101010110100110010110101010010110100110101001010110010110
2016.12.10 19:30:22.901 3: sduinoD IT: IT_0100000110100111100110111001001 ???->off


Gruß Ralf
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sasel am 10 Dezember 2016, 22:19:52
Hallo Ralf,

ich habe die on Taste noch einmal in Abständen von 1 - 5 Sekunden hintereinander gedrückt, anschließend die off Taste. Das Ergebnis ist das Gleiche. Zur Sicherheit habe ich das autocreate device noch einmal gelöscht und wieder neu angelegt

define autocreate autocreate

Dies hat jedoch auch nichts am Ergebnis geändert.
Seltsam ist auch, dass ich auf 1 - 2 Meter mit der Fernbedienung an den nanoCUL ran muss. Bin ich weiter weg, dann erscheint im LOG gar nichts. Bisher hatte ich bei keiner Komponente Probleme mit dem Empfang.

Besten Dank und Gruß

sasel
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Ralf9 am 10 Dezember 2016, 22:39:15
welche Version des IT-Modul hast Du?
Du kannst auch mal ein fhem neustart versuchen
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sasel am 10 Dezember 2016, 23:12:22
Hallo,

Neustart habe ich bereits aus anderen Gründen heute mehrfach durchgeführt. Den Punkt kann ich somit ausschließen.
Die Version des IT Moduls lautet:

10_IT.pm            12179 2016-09-19 19:26:01Z dancer0705

Gruß

Florian
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Ralf9 am 10 Dezember 2016, 23:26:26
Diese Version des IT Moduls habe ich auch. Ich habe nun keine Idee mehr.
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sasel am 10 Dezember 2016, 23:29:39
Trotzdem vielen Dank für Deine Mühe.  :)
Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: Ralf9 am 11 Dezember 2016, 09:42:24
Mit den Daten aus meinem log kannst Du sie natürlich auch ohne autocreate anlegen:
define IT_0100000110100111100110111001001 IT 01000001101001111001101110 0 1001
define FileLog_IT_0100000110100111100110111001001 FileLog ./log/IT_0100000110100111100110111001001-%Y-%m.log IT_0100000110100111100110111001001

Titel: Antw:Erweiterung CUL für Baumarktsteckdosen
Beitrag von: sasel am 12 Dezember 2016, 21:24:25
Hallo,

das habe ich bereits versucht. Die Dosen lassen sich damit weder pairen noch nach dem pairen schalten. Keine Ahnung, ob ich nicht vielleicht einen neue Version gekauft habe oder bei meiner Installation etwas schief gelaufen ist. >:(

Gruß

sasel