hallo zusammen, hatte gestern die idee das Berker funkbus system (Funksteckdosen lampeneinbauteile Rollos etc.) was wir zuhause haben auch mit dem PC steuern zu können^^ online bekommt man nur wenig Infos na ja wiso sollte Berker auch alle Infos raus rücken^^ Einzige was ich gefunden habe war: http://www.berker.com/uploads/tx_berkerproposal/Elektronik-Handbuch_Berker.zip So daraufhin habe ich ein Sender zerlegt und die Elektronik an ein PIC angeschlossen. PIC per USB an PC und erste Software zum senden von Signalen geschrieben. Bzw zum auslesen des Signals was der Schalter normalerweise sendet. Habe bis jetzt alles hin bekommen konnte auch ner menge bits functionen zuweisen (siehe Anhang). Stehe jetzt aber vor einem Problem wie berechne ich die Prüfsumme??? Hoffe einer von euch hat ne idee dazu. Bisher kann ich nur Signale klonen möchte aber selber mit neuer sn "Fernbedienungen" simulieren da die Schalter mehrere Sender lernen können. Möchte ja nicht alle Funk-Schalter Aufmachen kable anlöten und bits auslesen :) Markus (Links)
Erst mal Respekt wegen der Aufschlüsselung des Funk-Protokolls! :) Wegen der Prüfsumme: Ich vernute mal bei 5-Bit wird es wohl keine CRC sein. Die 5 Bit würden natürlich schön auf die 5 Protokoll-Gruppen passen (Also ein Bit pro Gruppe), aber das scheint nicht hin zu kommen. Auffällig ist das das letzte Bit immer ne 1 ist. Könnte also sein das die letzte 1 nicht mehr zur Prüfsumme dazu gehört?
die Möglichkeit besteht ist mir auch schon aufgefallen bin bei den 5Bits von der Pdf ausgegangen muss ja nicht alles stimmen was da steht. was mir auch noch einfällt ist das ich das letzte bit von den "daten" nicht zuordnen konnte möglicherweise gehört es zu der Prüfsumme.
könnte gut sein. habe mir die Daten nochmal angesehen glaube fast das das letzte "datenbit" ein Parität bit ist. Wenn man jetzt von einm stopbit ausgeht bleibt eine 4bit Prüfsumme gibt es da eine? kenne mich mit CRC und co nicht wirklich aus und habe denn wiki text noch nicht vollständig verstanden. Markus
Habe mir das PDF durchgeschaut. Es scheint sich doch nicht um ein Stoppbit zu handeln, Pariry passt da schon eher. CRC ist auch über nibble(4 bit)möglich und würde hier passen CRC adiert Daten constanter Wortbreite(hier 4/5 Bit?) auf ein gesetztes Carry (Überlaufbit) wird eins aufaddiert. Zyklisch halt. http://de.wikipedia.org/wiki/Cyclic_Redundancy_Check
hi hoffe habe das crc Prinzip jetzt verstanden habe versucht ein vb.net Programm zu schrieb das crc generieren kann. Momentan Läuft ne Art Blueforce Methode zum finden des Generatorpolynom hoffe habe keinen fehler bei meiner Berechnung deshalb mal paar Ergebnisse hoffe kann jemand mal überprüfen. Generatorpolynom: 110101 Daten Ergebnis 11011 | 00101 11111 | 01110 1111101010101001 | 01001 00101100011010111110010001100000000000010001 | 10111 Danke
Ob es funktioniert weist du wenn dein Progamm eine Summe zu generieren vermag welche der Empfänger akzeptiert.
so habe jetzt alle Möglichkeiten von Generatorpolynom 0x0001 bis 0xFFFF durch und konnte keine Gemeinsamkeiten der aufgezeichneten Daten finden. Sie es über alle Daten oder nur über die 16Datenbits. Ob mit letztem "1" bit oder ohne. Wer das Programm was ich geschriben hab haben will is im anhang ist denke ich ganz praktisch :) Gibt es noch andere arten von Prüfsummen ? Markus
Das einfachste wäre eine einfache addierung aller Bytes ohne berücksichtigung eines überlaufs (wird bei Profibus gemacht).
Wir haben im Studium mal eine Möglichkeit gezeigt bekommen, durch Anhängen von ein paar Prüfbits einen 1-Bit Fehler korrigiert zu bekommen. Leider hab ich grad die Infos nicht zur Hand. Aber es war irgend was mit Matrix und diversen "Polynomen". Kann ja sein, dass die die Anzahl der Aussendungen so klein wie möglich halten wollen und daher eine Fehlerkorrektur drin haben, statt bloß eine Fehlerdetektierung.
@Jörg Das mit der addierung haut leider nicht hin. @Matthias Wenn dir der name des Verfahrens wieder einfällt sag pls bescheint. wies ja nicht was das so an Rechenleistung braucht in den Schaltern is zumindest immer ein Pic drin Leider geht das auslesen nicht wäre ja zu einfach :P Markus
Fehlerkorrektur geht nicht. Dafür ist die Anzahl der Püfbits zu gering. Die Brute-Force Methode wäre - so das System linear arbeitet - ein Gleichungssystem mit entsprechend vielen Unbekannten aufzustellen und es dann zu lösen/lösen lassen. Viele Grüße, Martin L.
Habe mittlerweile 171 Aufgenommene Daten. Das einzige was ich raus bekommen habe ist das alle "OFF" befehle eine Invertierung von z.b. Prüfbits: 1-0000-1 zu 1-1111-1 zu haben scheinen. und alle Daten die das 2 mal gesendet werden haben eine inv im von z.b. Prüfbits: 1-1111-1 zu 1-1101-1. und das erste bit ist parabilität aller Daten. aber wie ich auf die 4 mittleren komme weis ich einfach nicht. aber auf mehr bin ich noch nicht gekommen :( Markus
Hallo, ich bin zwar kein Fachmann aber sehr daran interessiert von einem Slimbook aus das Berker Funkbus System zu steuern. Es gibt ein Funksendemodul mit dem man dies machen könnte und ebenso die dazugehörige Software. Das ganze nennt sich "Boss 4 Help" Umgebungssteuerung. Leider kann man dieses Funksendemodul nicht einzeln sondern nur im Komplettpaket bei der Firma "Meier & Schütte" käuflich erwerben. Bei meiner Suche bin ich auf das "Scase Select mit 433,42 ASK Modul" gestolpert. http://www.insors.de/article.php?news_id=116&category_id=11&subcat_id=3 Jetzt bin ich aber nicht so ein Fachmann zu entscheiden ob dieses Gerät dafür tauglich sein könnte. Vielleicht könnte mir jemand von Euch einen Tip geben. Grüße Josef
Hallo, ist die Prüfsumme derweilen geklärt oder soll ich mich mal drann setzen? Viele Grüße, Martin L.
hi bin bei der Prüfsumme noch nicht weiter. wenn Interesse besteht kann ich gerne alle ausgelesenen Codes von mir hoch laden. ob die oben genannte Hardware zu verwenden ist kann ich nicht sagen ich habe mir den sender aus einen PIC16F4455 und eines Berker sender moduls aus einem Funk wand Sender 4764 zusammen gebaut und an USB gehängt. Der sender lässt sich parallel betreiben. mit ein bisschen löte Arbeit. Markus
Markus S. schrieb: > hi > bin bei der Prüfsumme noch nicht weiter. > wenn Interesse besteht kann ich gerne alle ausgelesenen Codes von mir > hoch laden. > > ob die oben genannte Hardware zu verwenden ist kann ich nicht sagen ich > habe mir den sender aus einen PIC16F4455 und eines Berker sender moduls > aus einem Funk wand Sender 4764 zusammen gebaut und an USB gehängt. Der > sender lässt sich parallel betreiben. mit ein bisschen löte Arbeit. > > Markus Hi Ich habe ein potenzielles Prüfsumme gefunden. Können Sie alle ausgelesenen Codes hoch laden, dann kann ich es controlieren vor ich es hoch laadt. mfg Wireless
hallo, anbei habe ich mal mein Datenbank als xls Exportiert :) bin mal gespannt ob ihre function bei allen codes klappt. Markus
Hallo, Ich dachte fur die Prüfsumme: xxxx-1 |||| | |||| #- stop bit |||#--- OFF (OFF = 1) ||#---- ? |#----- ON (ON = 1) #------ ? aber es klappt nicht. schade! Hamming code ist es auch nicht. Können Sie bitte erklären wie man das gemessen habt? Ich verstehe nicht wie man das an USB kann Anschließen. Habben Sie software fur das? Ich möchte mein Ferbedinung auch auslesen. Dann kann ich die Prüfsumme vergleichen mit dein Daten. Bitte können Sie dein Methode erklären. Grüße
hallo, also als erstes habe ich die Fernbedienung aufgeschraubt dann per Soundkarten ossi die pin am ic identifiziert der das zu sendende Signal ausgibt (sieht genauso aus wie in meiner txt beschrieben) 5V für diese Signal Übertragung habe ich auf einem pic mit USB emuliertem COMP port eine Software geschrieben die dieses dann an den pc sendet. der PC wiederum wertet den ganzen code soweit mir das Protokoll bekannt ist aus. da ich momentan in reha bin kann ich keine Fotos der Pins an den verschiedenen Schalter Modellen liefern. Pins sind aber nicht schwer zu finden. hier ein Auszug aus der user.c der Code basiert auf dem Mikrochip USB CDC Beispiel.
1 | void Delayu(unsigned int x) |
2 | { |
3 | unsigned int i = 0; |
4 | while(1) { |
5 | if(i==x) break; |
6 | i++; |
7 | } |
8 | } |
9 | |
10 | #define IR_611us 542 |
11 | |
12 | unsigned char a = 0; |
13 | unsigned char b = 0; |
14 | unsigned char c = 0; |
15 | |
16 | unsigned char readberker = 0; |
17 | unsigned char lastsend = 0; |
18 | void User_Process(void) |
19 | { |
20 | |
21 | if(mUSBUSARTIsTxTrfReady()){ |
22 | if(readberker > 0) { |
23 | lastsend = 1; |
24 | b=1; |
25 | c=0; |
26 | a=0; |
27 | while(PORTBbits.RB0); //wait Low |
28 | while(!PORTBbits.RB0); //wait Hi |
29 | Delayu(IR_611us); //wait 611us |
30 | if(PORTBbits.RB0 = 0) return; |
31 | Delayu(IR_611us); //wait 611us |
32 | if(PORTBbits.RB0 = 0) return; |
33 | |
34 | //while(PORTBbits.RB0); //wait Low |
35 | while(1) { |
36 | if(c >= 49 ) break; |
37 | if(lastsend != PORTBbits.RB0){ //wait Change |
38 | a=PORTBbits.RB0; |
39 | Delayu(IR_611us); //wait 611us |
40 | if(a != PORTBbits.RB0) { |
41 | output_buffer[c] = 0x31; //1 |
42 | } else { |
43 | output_buffer[c] = 0x30; //0 |
44 | } |
45 | lastsend = PORTBbits.RB0; |
46 | c++; |
47 | } |
48 | } |
49 | output_buffer[c] = 0x0d; c++; |
50 | output_buffer[c] = 0x0a; c++; |
51 | output_buffer[c] = 0x00; |
52 | mUSBUSARTTxRam((byte*)output_buffer,c); |
53 | readberker--; |
54 | while(PORTBbits.RB0); //wait Low |
55 | Delayu(80000); //wait |
56 | while(PORTBbits.RB0); //wait Low |
57 | return; |
58 | } |
59 | } |
60 | |
61 | if(getsUSBUSART(input_buffer,64)) |
62 | { |
63 | switch (input_buffer[0]) |
64 | { |
65 | case 'i': |
66 | readberker = 4; |
67 | break; |
68 | } |
69 | } |
70 | |
71 | } |
Markus
Ich habe die Prüfsumme gefunden! Es ist sehr Komplex, daher habe ich ein C# program geschrieben. Ich möchte gern auch die fernbedienung klonen, wie hat man das gemacht? auch via usb? Bitte beschreiben Sie, wie!
hi, werde nächste Woche wieder zuhaue sein dann kann ich die Vorgang gerne dokumentieren und hier einstellen. hätte auch noch Interesse an ihrem Visual c# code so das ich ihn auf einen pic umsetzen kann :) von den unterlagen die ich momentan auf dem Laptop habe kann ich folgendes sagen: Die Schaltung basiert auf einem PIC16F4455 alternativ gehen wenn ich mich richtig erinnere PIC18F2550, PIC18F2455, PIC18F4550 meine die waren fast baugleich bist auf Speichergröße und PIN Anzahl wobei ich bei diesem Projekt nur 2 Pins zum benötigte. RB0 als input pin zum auslesen des signals. und PWM2 auf den ich einen 433Mhz sender angeschlossen habe. wobei man natürlich auch ohne PWM senden kann ich nutze nur die Tatsache das durch die Modulation energy gespart wird und für andere Protokolle wie z.b. für denn oft in billig Funksteckdosen oder rollos verbauten PL2292 / HX2292 wird eine Modulation benötigt. auf PWM1 habe ich IR Dioden angeschlossen was hier aber mal weiter unwichtig ist. gesteuert wird der PIC über eine in USB emulierte comp Schnittstelle. anbei hab ich mal den kompletten Code die Verarbeitung findet in user\user.c stand. Bilder und alles weiter kann ich erst zuhause machen. hoffe das die infos ein wenig weiterhelfen. habe zuhause auch noch VB.net codes für tcp/ip server zum nutzen des pics an einem anderem pc auch wenn ich sagen muss das dieser nur auf die schnelle zusammen gecoded wurde aber er tut seinen Zweck :) Markus
Hi, mein Code ist in die Anhang. Ich hoffe das Sie die Dokumentation können hochladen! Grüße
hi, habe der zeit einiges zu erledigen. habe jetzt mal auf die schnelle das nötigste zum Wandsender zusammen gefast. Markus
Hi, Können Sie bitte auch dokumentieren wie man das Sender hat gemacht? Ich habe Probleme mit es Anschließen von die Hardware. Danke!
Hallo, ich habe von Microkontrollern keine Ahnung aber ich bin über diesen Beitrag gestoßen weil ich mit Hilfe meiner Fritzbox7390 und der Firmware-Erweiterung fhem und einem CUL-USB-Stick meine Hausautomation mit Berker komponenten durchführen möchte. Ich habe von der Fa. Insta eine Protokollbeschreibung gefunden und hoffe das ihr was damit anfangen könnt. (Insta = Berker = Gira = Jung) http://www.ledtrix.de/index.php?page=4434 Viel Erfolg noch!
Hallo zusammen, dieser Artikel ist ja schon älter aber ich habe mich etwas mit damit beschäftigt und wollte eine Lösung für Arduino schaffen. Ganz ist mir das leider nicht gelungen, da die hier veröffentlichte CRC-Berechnung leider nicht passt. Meinen Ansatz könnt ihr auf GitHub unter https://github.com/Thro42/InstaFunkbus Ich habe auch ein paar Sequenzen aus meiner Fernbedienung angehängt, vielleicht schaft es ja doch jemand die Checksumme zu knacken. Viel Erfolg noch!
Hello, I have the insta funkbus modules. I am trying to make them smart using the rfxcom module. Did somebody manage to make the funkbus devices smart? I can read the funkbus (ID: 3F CC) but i can not pair them with my rfxcom module Packettype = UNDECODED RF Message UNDECODED FunkBus:412C183B2000D3801210 Thanks, Denny
Denny, did you get any further? I'm looking into pretty substantial Gira System2000 setup (12 dimmers, 8 switches and about 15 wall push buttons). The idea is to make it work with Philips Hue (maybe replacing the dimmers) without losing the functionality of the wall push buttons ..
Falls noch jemand nach der Prüfsumme sucht, ich habe da heute zufällig kurz reingesehen: https://github.com/merbanan/rtl_433/pull/1896 Es ist ein einfaches XOR Schema, eine 8-Bit Maske von 10001100 (0x8c) rotierte zweimal links pro Bit (0x32 nach der ersten Rotation), über die Bits 0-42, nicht das Parity Bit 43. (Positionen in Wire-Order, MSB->LSB).
Just to inform others. I have made a receiver on the two wire funkbus with a resistor and an opto-coupler to read frames of wireless transmitters from gira. Using ESP32 module, hardware interrupt, microseconds timer, free-rtos-queue with delta-timestamps. The telegramms as explained matches perfectly, thank you. Also the checksum seems to be working, thank you zany. - Intensionally introducing an bit-error is detected with the algorithm. - Checked with two different transmitters, all the button-press-types. Following signals match from the Gira receiver: ------------------------------------------------------------------ Übertragung: 433Mhz AM ASK, checked with a spectrum analyser ------------------------------------------------------------------ Low level coding: _ __ __ __ __ _ | | | | | | | | _| |__ __| |__| |__| |__..... | 0 | 0 | 1 | 0 | 1 | Timing parameters: (1k Baud, 1000bps effectively) BIT0 > 900us BIT0 < 1150us BIT1 > 400us BIT1 < 600us ------------------------------------------------------------------ Protokoll ___ ____ ____ ________________ ____ ________________ ____ |****|xxxx|xxxx|xxxxxxxxxxxxxxxx|xxxx|xxxxxxxxxxxxxxxp|xxxx|1| | | | | | | | | 4Bit 4Bit 4Bit 16Bit 4Bit 16Bit 4Bit | | | | | | | | | | | #--Checksum | | | | #--Data | | | #--Battery state | | #--serialnumber | #--subtype #--sendertype ------------------------------------------------------------------ Examples: bitString: 0010110001111001111110100101000000000000100111001 Formatted: type:0010 subtype:1100 serial:0111100111111010 state:0101 data:0000000000001001 cs:11001 received bytes: 2C 79 FA 50 00 9C : checksum = ok bitString: 0010110001111001111110100101000000000000110011101 Formatted: type:0010 subtype:1100 serial:0111100111111010 state:0101 data:0000000000001100 cs:11101 received bytes: 2C 79 FA 50 00 CE : checksum = ok bitString: 0010110001000001011110100101000000000000100101111 Formatted: type:0010 subtype:1100 serial:0100000101111010 state:0101 data:0000000000001001 cs:01111 received bytes: 2C 41 7A 50 00 97 : checksum = ok bitString: 0010110001000001011110100101000000000000110001011 Formatted: type:0010 subtype:1100 serial:0100000101111010 state:0101 data:0000000000001100 cs:01011 received bytes: 2C 41 7A 50 00 C5 : checksum = ok ------------------------------------------------------------------
:
Bearbeitet durch User
Kann man als Funkmodul die einfachen 3-Pin 433MHz Teile verwenden? https://www.ebay.de/itm/395115399859
Hello Christian. My first thought was, the modulation is FM. But reading the topic, I see ASK is being used. The measurements are already some time ago, no notes on this. Next week I will check my current Gira transmitters with a decent spectrum-analyser. If it's AM, then it is worth a try.
Checked the transmitter I have. (See picture) what is unexpected is the center frequency, it is 433.4MHz. A popular value but not the by Gira advertised frequency of 433,24MHz. The instrument is not really a great radio receiver but it is very likely the transmitter is ASK. FM demodulation gives hardly any signal. Tracing the amplitude in time fits perfectly with the telegrams send on the FunkBus. So using a transmitter like https://www.ebay.de/itm/395115399859 should be possible. I like to try this and will order a few of those. However keep in mind, to be a kind of legal and responsible, never occupy the 433MHz band averagely more than 1% (In a timespan of, I think 10 seconds). Also don't exceed 10mW output power. To be continued...
:
Bearbeitet durch User
For hobbyists soldering and programming I have some information to make a well working Funkbus transmitter/Receiver. Currently it is a small breadbord suitable setup with an ESP32-S. I will attach a zipfile with: - Pictures of a working unit. - Software on two levels to send and/or receive commands or tasks on the Funkbus. - Picture of the schematic. - Datasheets of components. - Picture of the used Gira components. These are the only one's I have tested. It is not critical hardware so alternative components will do fine. I preferred to make the Funkbus transmitter and receiver galvanic isolated. My unit is now located in the main electricity cabinet of the house with mains etc.. to keep things safe. Currently the unit is in between the Gira RF-receiver and the Gira actuators. As the unit can send and receive simultaniously an application can be made 'non intrusive'. But commands can be inserted, and existing transmitter telegrams will be received. I do not include a my complete application, only the library for Funkbus. The library is simple to apply as all the software-tasks are separated with (free-rtos) queues. My own application currently serves a webpage to control the lights and is simultaniously a mqtt client that is connected to Home Assistant mqtt-server. Lights can beside the gira-transmitters via mqtt or via the webpage controlled. I use it now for serveral weeks. It appears to be working just fine. Cheers.
:
Bearbeitet durch User
Hi Ernst, could you please share some more information? I'm really interested in your solution. What kind of receiver / transmitter do you use? Could you share the Arduino code? You mentioned a library, but I couldn't find it in the ZIP-file. Best regards David
Hello David, It is not an Arduino library. I developed it in the ESP-IDF framework. The library is only the 4 files .hpp and cpp. I think one can just copy them into the libraries folder or locally in the 'ino' folder. Not sure. But. You have a really good point here. Somehow the folder in the zip-file was not included. Sorry, my bad. I will remove the previous attachment and include here a new, complete one.
Additionally a few things: - I have to wait to remove the wrong zip file of yesterday. - The transmitter I used is not really clear for me either. The installation was present in the house I bought. Beware, the receiver I described is the receiver receiving telegrams on the Funkbus. So it is actually coupled to the output of a Gira receiver. - Not confirmed the RF-Gira-transmitter I use is of type 1113100 - The transmitter of the module to build is connected to dim actors. It seems like a deprecated Gira system. It is everywere sold out or not available: https://www.bol.com/nl/nl/p/gira-schakelaar-113500/9200000025938804/
Hi Ernst, thank you very much. I'm still in the beginning of my project to control some roller shutter connected to a Berker Funkbus system. I guess you work is at least a very good starting point. I'll try to make it work with the ESPHome remote transmitter / receiver (https://esphome.io/components/remote_transmitter.html) but I'll firt have to wait for some cheap RF modules to arrive which I just ordered from eBay. I'll come back as soon as they arrive and I have tested to make hem work. Best regards David
Great. I am curious for this hardware. Still for me to do, making an AM transmitter on the 433.24MHz. Not a popular frequency. The Gira receiver I use attenuates already 433.92 a lot. If you succeed you can drive the rf transmitter with the library. Just 100% AM modulation on the tx-pin, I guess, will do just fine
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.