Frage wegen VirtualWire.h 433Mhz Funkübertragung...

hier mal meine Version zur Einzelraumregelung
Sender:

/* ATtiny_DS18B20_3_Funk_Sender_ID_VBat_T_delta.ino
 * Achtung BUG im Linker bei Sketches über 4 kB. Neuen Linker giebt es hier:https://github.com/TCWORLD/ATTinyCore/tree/master/PCREL%20Patch%20for%20GCC
 * Attiny Core Files von hier:https://code.google.com/p/arduino-tiny/
 * Bevor das Programm auf den Attiny übertragen wird, muß der Bootloader installiert werden
 * um den Attiny auf 8MHz zu Fusen
  
  5974 Bytes
  Bu.Kli.
  09.02.2014
Belegung des Attiny:
   1  (SS)PB5  |  \/  |  Vcc         8
   2 ADC3 PB3  |      |  PB2 (SCK)   7
   3      PB4  |      |  PB1 (MISO)  6
   4      GND  |      |  PB0 (MOSI)  5
8k Falsh, 512Bytes Ram
*/
#include <OneWire.h>
#include <VirtualWire.h> // bei verwendung von VirtualWire.h und JeeLib.h, die crc16.h
#include <JeeLib.h>      // von C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\util nach 
                         //C:\Program Files (x86)\Arduino\libraries\VirtualWire\util kopieren 
                         //und vorher die bestehende Datei umbenennen.

#undef abs
#undef double
#undef round

ISR(WDT_vect) {Sleepy::watchdogEvent();}
 
#define tx_Pin PB1          //auf dem ProMini 12
#define dallas_Data_Pin PB4 //auf dem ProMini 9
#define T_delta_Pin PB3     //auf dem ProMini 14
#define schlafzeit 59003    //zeit in ms, die der MC schlafen soll
char ID[5]="ID00"; //muß für jeden Sender fortlaufend einzeln vergeben werden von 00 bis xx
char UBat[5];
char Temp_ist[5];
char Temp_delta[5];
char line[22];
byte i;
byte present = 0;
byte data[12];
byte addr[8];
int T_ist;
int T_delta;

OneWire  ds(dallas_Data_Pin); 
//___________________________________________________________________________________________________________________
int readVcc() {
  bitClear(PRR, PRADC); ADCSRA |= bit(ADEN); // AD-Wandler einschalten
  long result;
  // Read 1.1V reference against Vcc
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); //ATmega328
  #endif  

  delay(10); //warten bis sich die Referenzspannung eingestellt hat
  ADCSRA |= _BV(ADSC); 
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = 1093044L / result; // vcc = 1125300L / result;  //Versorgungsspannung in mV berechnen (1100mV * 1023 = 1125300
  ADCSRA &= ~ bit(ADEN); bitSet(PRR, PRADC); // AD-Wandler ausschalten um Strom zu sparen
  return result;
}
//______________________________________________________________________________________________________________________
 void setup(void) {
   analogReference(INTERNAL);
    DDRB=6;//PB1 + PB2 als Ausgang setzen
    vw_setup(2000);
    vw_set_tx_pin(tx_Pin);
  }
//_______________________________________________________________________________________________________________________
void loop(void) {
    
  
   PORTB=4;//PB2 auf High setzen (Spannungsversorgung für den DS18B20 und den Sender)
   bitClear(PRR, PRADC); ADCSRA |= bit(ADEN); // AD-Wandler einschalten
   delay(10);
   T_delta=analogRead(T_delta_Pin); // Auslesen der Poti-Stellung
   ADCSRA &= ~ bit(ADEN); bitSet(PRR, PRADC); // AD-Wandler ausschalten um Strom zu sparen
   
    //Dallas DS18B20 auslesen
    if ( !ds.search(addr)) {
    ds.reset_search();
    return;}
    ds.reset();
    ds.select(addr);
    ds.write(0x44,0);  // 0=ohne 1=mit parasite power
    delay(750);        // vielleicht sind 750ms genug
    present = ds.reset();
    ds.select(addr);    
    ds.write(0xBE);             
    for ( i = 0; i < 9; i++) {   
    data[i] = ds.read();}
    T_ist =  ((data[1] << 8) + data[0] );
      //Umwandlung Integer zu Char
      itoa(readVcc(),UBat,10);
      itoa(T_ist,Temp_ist,10);
      itoa(T_delta,Temp_delta,10);
        //Sendestring aufbereiten
        strcpy(line,ID);
        strcat(line,",");
        strcat(line,UBat);
        strcat(line,",");
        if (T_ist<1000){strcat(line,"0");}
        if (T_ist<100){strcat(line,"0");}
        if (T_ist<10){strcat(line,"0");}
        strcat(line,Temp_ist);
        strcat(line,",");
        if (T_delta<1000){strcat(line,"0");}
        if (T_delta<100){strcat(line,"0");}
        if (T_delta<10){strcat(line,"0");}
        strcat(line,Temp_delta);
    //Senden
    vw_send((uint8_t *)line, strlen(line)); 
    vw_wait_tx();      

    PORTB=0;//alle Ausgänge auf 0 setzen
      Sleepy::loseSomeTime(schlafzeit);  //Schlafzeit in ms max 60000
    
}

der Empfänger Code ist im Anhang als ZIP evtl kannst du es gebrauchen

Regelung_FBH_Empf_Mini_3_1_BK.zip (4.62 KB)