Autor Thema: [mehr oder weniger gelöst] Funkprotokoll divers. "Intertechno-kompatible Geräte"  (Gelesen 6259 mal)

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3196
hmmm, ob das stimmt ? Ich hab da 350
Sorry, 350. Ich hatte das verwechselt. Bei mir hatte ich abweichend (ich glaube) dann 250 gemessen...

Hast Du denn jemals die FB mit dem S'duino ausgelesen ? Da kann man doch die itclock-einstellung ermitteln. Hat Ralf kürzlich erst gepostet.
Ja, habe ich. Die Werte sind im Post #9.

Meinst Du den CC1101 im S'duino, der am Server angesteckt ist, auf dem FHEM läuft ?
Ja, genau. Der Server ist hinter einer Holzwand versteckt, und die muss ich jedes Mal abnehmen, wenn ich da ran will. Deshalb habe ich "verbaut" gesagt.
FHEM 6.0 auf RaspPi3 (Raspbian:  4.19.97-v7+ ); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3196
Die billigen Sender senden nix inhaltlich falsches, die haben nur eine bescheidene Reichweite.
Das kann ich nicht beurteilen, das hoffe ich aber auch. Die billigen Empfänger dagegen machen durchaus Probleme, das habe ich mal früher durchgemessen: https://www.raspberrypi.org/forums/viewtopic.php?p=1089248#p1089248
FHEM 6.0 auf RaspPi3 (Raspbian:  4.19.97-v7+ ); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Offline KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5316
Antw:[mehr oder weniger gelöst] Funkprotokoll divers. "Intertechno-
« Antwort #17 am: 24 Juli 2017, 19:17:36 »
das stimmt. Das ist allgemeiner Tenor. Der Sender des China-Doppelpack ist durchaus OK. Der Empfänger für die Tonne....Aber selbst der geht auf 2m  ;)

Zitat
Die Werte sind im Post #9.
Ahhh, aber ich bin ja S'duino-Dummie. Ich vermute aber, dass das die P-Werte(wie Puls ?) sind. Die sehen doch gar nicht so daneben aus. Und im Log taucht da nix anderes auf ? Keine IT-Meldungen bei verbose 5 ? Für autocreate musst Du 2-mal hintereinander on dücken.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3196
Ja, die sehen ziemlich genau so aus, wie sie aussehen sollen: 300-350 Pulselänge, Signal 1P-3P, Sync 31P.


Gesendet von iPhone mit Tapatalk Pro
FHEM 6.0 auf RaspPi3 (Raspbian:  4.19.97-v7+ ); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2594
Hmm, also in Post#9 hattest Du mit der Fernbedienung gesendet und das wurde vom Signalduino empfangen.

Also ist Fernbedienung und Signalduino doch erst Mal okay.

Jetzt hast Du etwas von einem attiny und rcswitch geschrieben.

Wieso ein attiny. Mit welcher Taktfrequenz lässt du den attiny laufen. Ich selbst habe auch schon mal einen Sensor mit einem Attiny gebaut. Wenn der auf 1 MHz läuft, dann klappt das mit delaymicros nicht so ganz.

Da ist dann eine andere Variante die bessere.

Zu dem was der attiny sendet habe ich jetzt keine Logaten des sduino gefunden. Kannst Du die noch Mal Posten?

So am Rande: Ich sende immer mit dem billig China Sender. Das geht gut. Habe aber auch noch eine Helix Antenne dran.


Grüße Sidey

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3196
Wieso ein attiny. Mit welcher Taktfrequenz lässt du den attiny laufen. Ich selbst habe auch schon mal einen Sensor mit einem Attiny gebaut. Wenn der auf 1 MHz läuft, dann klappt das mit delaymicros nicht so ganz.
Aha, wieder was gelernt. Natürlich habe ich 1MHz :-) Also ist 8MHz besser?

Da ist dann eine andere Variante die bessere.
Welche genau?

Zu dem was der attiny sendet habe ich jetzt keine Logaten des sduino gefunden. Kannst Du die noch Mal Posten?
Ja, habe ich auch gemacht. Die sind hier:

13:50:02  MS;P0=513;P1=-11365;P3=-1446;P4=1205;P5=-632;D=010303450345030303030345034503450303034503030345;CP=0;SP=1;R=40;O; #also das sieht durchaus aehnlich aus, aber pulselength = 513?!

13:50:02  MU;P0=-20464;P1=-6172;P2=168;P3=-168;P4=474;P5=-1420;P6=1194;P7=-757;D=454545674567454545454567456745674545450041474523;CP=4;R=56; # ich bin mir sicher, dass das vom attiny kommt. Eine pulselength ist verrueckt, 168, sonst 474?!

13:50:03  MS;P0=-11358;P1=534;P2=-1301;P3=1249;P4=-602;D=10121212341234121212121234123412341212123412121234;CP=1;SP=0;R=61; # auch hier sicher vom attiny, ich habe ganz oft ausgeloest

13:50:06  MS;P0=-1430;P1=530;P2=1234;P3=-616;P5=-11323;D=15101010231023101010101023102310231010102310231010;CP=1;SP=5;R=63;O; # dto

13:50:07  MS;P0=-596;P1=553;P2=-1295;P3=1239;P4=-11305;D=14121212301230121212121230123012301212123012301212;CP=1;SP=4;R=64;

13:50:12 MS;P0=-1382;P1=1217;P2=-658;P3=559;P4=-11323;D=34303030123012303030303012301230123030301230303012;CP=3;SP=4;R=55;O;

13:50:13 MS;P0=-1339;P1=559;P2=1246;P3=-656;P4=-11292;D=14101010231023101010101023102310231010102310101023;CP=1;SP=4;R=62;O;

13:50:13 MS;P0=-1315;P1=1236;P2=-604;P3=532;P4=-11366;D=34303030123012303030303012301230123030301230303012;CP=3;SP=4;R=61;

13:50:16  MS;P1=523;P2=-1394;P3=1207;P4=-640;P5=-11367;D=15121212341234121212121234123412341212123412341212;CP=1;SP=5;R=59;O;

13:50:17  MS;P0=-1426;P1=592;P2=1256;P3=-592;P4=-11301;D=14101010231023101010101023102310231010102310231010;CP=1;SP=4;R=60;O;

MS;P0=-623;P1=514;P2=-1317;P3=1224;P4=-11309;D=14121212301230121212121230123012301212123012301212;CP=1;SP=4;R=61;

13:50:33  MU;P0=-7824;P1=481;P2=-1369;P3=1181;P4=-717;P6=900;P7=-1052;D=01212123412341212121212341234123412121234121212671;CP=1;R=53;

Der eventmonitor hatte
2017-07-23 13:49:49 SIGNALduino sduino DMSG u63AAABD6EED6AB6DFABB5ADDF6D55E8
2017-07-23 13:49:49 SIGNALduino sduino UNKNOWNCODE u63AAABD6EED6AB6DFABB5ADDF6D55E8

2017-07-23 13:50:02 SIGNALduino sduino DMSG u6356D55B6A0
2017-07-23 13:50:02 SIGNALduino sduino UNKNOWNCODE u6356D55B6A0

2017-07-23 13:50:17 SIGNALduino sduino DMSG u41#141514
2017-07-23 13:50:17 SIGNALduino sduino UNKNOWNCODE u41#141514

2017-07-23 13:50:33 SIGNALduino sduino DMSG u6356D55B6AD58
2017-07-23 13:50:33 SIGNALduino sduino UNKNOWNCODE u6356D55B6AD58

2017-07-23 13:50:49 SIGNALduino sduino DMSG u63AAF5BBB5AADB7EAED6B77DB557A
2017-07-23 13:50:49 SIGNALduino sduino UNKNOWNCODE u63AAF5BBB5AADB7EAED6B77DB557A
aber mir schien, dass er nicht jedes ausloesen erfasst hatte.

Der Logfile enthält dann noch weitere Daten, weil natürlich versucht wird, diese Daten zu dekodieren. Das gelingt dann nicht:
2017.07.23 13:49:49 5: sduino: applying filterfunc SIGNALduino_filterSign
2017.07.23 13:49:49 5: sduino: applying filterfunc SIGNALduino_compPattern
2017.07.23 13:49:49 4: sduino: Fingerprint for MU Protocol id 44 -> BresserTemeo matches, trying to demodulate
2017.07.23 13:49:49 5: sduino: start pattern for MU Protocol id 44 -> BresserTemeo mismatches, aborting
2017.07.23 13:49:49 4: sduino: Fingerprint for MU Protocol id 44.1 -> BresserTemeo matches, trying to demodulate
2017.07.23 13:49:49 5: sduino: Starting demodulation at Position 7
2017.07.23 13:49:49 5: sduino: dispatching bits: 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0
2017.07.23 13:49:49 4: sduino: decoded matched MU Protocol id 44.1 dmsg W44x#072DA42AF8D25BD41C length 72 RSSI = -60
2017.07.23 13:49:49 5: sduino Dispatch: W44x#072DA42AF8D25BD41C, test ungleich: disabled
2017.07.23 13:49:49 5: sduino Dispatch: W44x#072DA42AF8D25BD41C, -60 dB, dispatch
2017.07.23 13:49:49 5: sduino: dispatch W44x#072DA42AF8D25BD41C
2017.07.23 13:49:49 4: SD_WS_Parse: Protocol: 44x, rawData: 072DA42AF8D25BD41C
2017.07.23 13:49:49 4: SD_WS_Parse BresserTemeo: Humidity > 79  Flag
2017.07.23 13:49:49 4: SD_WS_Parse BresserTemeo: new bin 1000001110010110110100100001010101111100011010010010110111101010000011100
2017.07.23 13:49:49 4: sduino SD_WS_Parse: model=BresserTemeo, temp=21.5, hum=83, channel=1, id=6D, bat=ok
2017.07.23 13:49:49 5: sduino: applying filterfunc SIGNALduino_filterMC
2017.07.23 13:49:49 4: sduino: Fingerprint for MU Protocol id 63 -> Warema matches, trying to demodulate
2017.07.23 13:49:49 5: sduino: Starting demodulation at Position 0
2017.07.23 13:49:49 5: sduino: dispatching bits: 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0
2017.07.23 13:49:49 4: sduino: decoded matched MU Protocol id 63 dmsg u63AAABD6EED6AB6DFABB5ADDF6D55E8 length 116 RSSI = -60
2017.07.23 13:49:49 5: sduino Dispatch: u63AAABD6EED6AB6DFABB5ADDF6D55E8, test ungleich: disabled
2017.07.23 13:49:49 5: sduino Dispatch: u63AAABD6EED6AB6DFABB5ADDF6D55E8, -60 dB, dispatch
2017.07.23 13:49:49 5: sduino: dispatch u63AAABD6EED6AB6DFABB5ADDF6D55E8
2017.07.23 13:49:49 3: sduino: Unknown code u63AAABD6EED6AB6DFABB5ADDF6D55E8, help me!
usw. usf.
FHEM 6.0 auf RaspPi3 (Raspbian:  4.19.97-v7+ ); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2594
Hallo Andies,

Dieser Link verrät dir etwas mehr über die andere Variante:
http://forum.arduino.cc/index.php?topic=192069.0

RC Switch kannst Du weglassen, das ist nicht nötig.
Das IST Signal kann man mit ein paar Zeilen Code einfach generieren.

Ein paar Anregungen dazu kannst Du dir auch im Signalduino Quellcode bis Version 3.2 holen.
Das was dein attiny bislang gesendet hat, entspricht nicht dem IST Protokoll.

Grüße Sidey

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3196
Ich habe das jetzt wie folgt gelöst. Der nachfolgende Code funktioniert sicher, warum aber die Funksteckdose nur mir rc-switch, FHEM dagegen nur mit direkter Ansprache klappt, kann ich bis heute nicht sagen. Es kann an der Funksteckdose liegen, es kann am Sender liegen, keine Ahnung.

//
/* Derzeit implementiert. Tastendruck löst 433MHz-Signal auf Kanal D aus, das wiederum
   eine einfache Klingel einschaltet und FHEM informiert.

   Kodierung rc-switch https://github.com/sui77/rc-switch/wiki/HowTo_OperateLowCostOutlets
   Include rcswitch, https://arduinodiy.wordpress.com/2015/04/01/using-attiny-with-rcswitch/

*************************************************/
#include <RCSwitch.h>
RCSwitch myKlingel = RCSwitch();

/*************************************************
  FHEM kann nicht mit rcswitch informiert werden, nur direkt
*************************************************/
void informFHEM()
{
  int lengthpulsetrain = 12;
  long pulses[] = {0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0}; // entspricht 0FF0F (Hauscode) FFF0F (Gerätecode Steckdose D) F0 (aus)
  int repetitions = 4; //4 Wiederholungen
  for (int i = 0; i < repetitions; i++ ) {
    digitalWrite(2, HIGH); //SyncBit, auf B2
    delayMicroseconds(350);
    digitalWrite(2, LOW);
    delayMicroseconds(10850);
    for (int thisPulse = 0; thisPulse < lengthpulsetrain; thisPulse ++) {   //jetzt kommt das Signal
      digitalWrite(2, HIGH); //das ist bei 0 und F identisch
      delayMicroseconds(350);
      digitalWrite(2, LOW);
      delayMicroseconds(1050);
      if (pulses[thisPulse] == 0) //und das variiert je nach 0- oder F-Signal
      {
        digitalWrite(2, HIGH);
        delayMicroseconds(350);
        digitalWrite(2, LOW);
        delayMicroseconds(1050);
      } else
      {
        digitalWrite(2, HIGH);
        delayMicroseconds(1050);
        digitalWrite(2, LOW);
        delayMicroseconds(350);
      }
    }
  }
}
/*************************************************
  Main routine
*************************************************/
void setup()
{
  pinMode(1, INPUT); // enable Taster INPUT
  myKlingel.enableTransmit(2); // Transmitter is connected to Attiny Pin PB2
  // Optional set pulse length.
  // myKlingel.setPulseLength(270);
  // Optional set protocol (default is 1, will work for most outlets)
  // myKlingel.setProtocol(2);
  // Optional set number of transmission repetitions.
  myKlingel.setRepeatTransmit(15);
  //
  // **** Einschaltsignal *****
  myKlingel.sendTriState("0FF0FFFF0F0F"); //Klingel ein (Steckdose D)
  delay(400);
  myKlingel.sendTriState("0FF0FFFF0FF0"); //Klingel aus
  delay(400);
}


void loop()
{
  if (digitalRead(1 ) == HIGH) {
    myKlingel.sendTriState("0FF0FFFF0F0F"); //Klingel ein
    delay(3200);                            // warten
    myKlingel.sendTriState("0FF0FFFF0FF0"); //Klingel aus
    informFHEM();                           //FHEM benachrichtigen
  } else {
    delay(300);                             //300ms Kontakt muss vorliegen
  }
}
FHEM 6.0 auf RaspPi3 (Raspbian:  4.19.97-v7+ ); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

 

decade-submarginal