Hallo,
Ich habe Wasser- und Wärmemengezähler von Sontex. Diese haben eine Bidirektionale Funkschnittstelle mit 433.82 Mhz und FSK Modulation, NRZ Kodierung. Das Protkoll wird mit "Radian 0" und MFD beschrieben.
Eine Beschreibung des Radian Protokolls habe ich gefunden (im Anhang). Da muss Zuerst ein Wecksignal 01010101... gesendet werden und danach Data Frame. Für das Data Frame habe ich noch keine gute Beschreibung gefunden. Hier wurde schon mal etwas beschrieben: http://www.lamaisonsimon.fr/wiki/doku.php?id=maison2:compteur_d_eau:compteur_d_eau (http://www.lamaisonsimon.fr/wiki/doku.php?id=maison2:compteur_d_eau:compteur_d_eau). Ich denke damit werde ich Softwareseitig mit etwas Aufwand zurechtkommen.
Welche Hardware ist dafür geeignet? Am liebsten hätte ich ein kompaktes USB Teil, z.B. in dieser Art:
- http://shop.busware.de/product_info.php/cPath/1_35/products_id/44 (http://shop.busware.de/product_info.php/cPath/1_35/products_id/44)
- https://shop.in-circuit.de/product_info.php?products_id=253()({274}873{275}878)
Beide haben offenbar den gleiche uController und Transceiver. Was ist da der Unterschied? Kann ich mit diesen Sticks was anfangen?
Gruss, Xcoder
Hi,
Siehe fhem wiki selbstbau cul und github bei der a-culfw oder Signalduino firmware für die gleiche Hardware
Wenn Du Dir den Selbstbau nicht zutraust, dann sag bescheid.
Über die Signalduino Firmware solltest Du die besten Fortschritte machen können.
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Danke für die Empfehlung. Habe nun einen Signalduino von in-circuit am laufen. In FHEM ist er mit dem SIGNALduino Modul eingebunden.
Für meine Anwendung erfordert aber die Konfiguration des C1101 noch einige Eingriffe.
2-FSK Modulation in MDMCFG2.MOD_FORMAT=0
NRZ: vermutlich MDMCFG2.MANCHESTER_EN=0
Symbol Rate 2400 baud in MDMCFG3.DRATE_M=0x06 und MDMCFG4.DRATE_E=0x83
Frequenzhub 5.5 kHz in DEVIATN=0x1e
Noch nicht klar ist wie ich eine Wake-up Preamble >2 sec mit ~2400 baud 010101010... erzeuge
Danach sollte noch ein Sync bit mit 10-20 ms 0 und 10-20 ms 1 kommen, bevor dann die Daten-Oktets kommen.
Kann das der C1101 direkt?
Bin da aber noch nicht sicher ob das schon alles ist. Vorschläge sind gerne willkommen.
Wie kann ich die Konfigurationsregister des C1101 aus FHEM am einfachsten anpassen?
Gruss, Xcoder
Die S'duino firmware kenne ich nicht. Aber bei 2-FSK scheint mir dann der S'duino weniger geeignet. Die aculfw "transparenter" zumal man dort Beispiele für FSK findet(rf_native).
Verstehe ich jetzt nicht. Der Signalduino hat einen CC1101 Transceiver. Da ist 2-FSK der nach einem Reset aktive Mode. Da glaube ich kaum dass ein Signalduino nicht für 2-FSK geeignet sein soll.
Aber Egal. Habe selber herausgefunden wie ich meine Settings einstelle, auch FHEM heraus. Zuerst "get radinoCC1101 raw W1256", dann noch W1380, W1400, W1716, und dann noch WS36 und WS34.
Ich bin aber immer noch etwas am Rätseln, wie ich beliebige Signal rausschicke.
Zuerst 2 sec lang 01 mit 2380 baud
dann 15 msec 0 gefolgt von 15 msec 1
dann 13 10 00 00 00 E3 25 54 00 01 2e 67 18 CA 00 A0 40 0D F4 mit 1 start und 1 stop bit
Geht das nur in der Art:
set radinoCC1101 raw SR;;R=1;;P0=-420;;P1=420;;P2=-15000;;P3=15000;;D=01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101012300010011000100000000000000000000000000001110001100100101010101000000000000000001001011100110011100011000110010100000000010100000010000000000110111110100
Hat aber leider nicht funktioniert. Danach ist der SD nicht mehr mit FHEM verbunden...
ZitatVerstehe ich jetzt nicht. Der Signalduino hat einen CC1101 Transceiver. Da ist 2-FSK der nach einem Reset aktive Mode.
Zitat...S'duino firmware...
Hat herzlich wenig mit der Hardware CC1101 zu tun. S'duino kennt verschiedene Hardwarevarianten.
Das bringt mich jetzt irgendwie nicht weiter. OK ich war wohl etwas zu wenig präzis. Ich habe die Variante mit CC1101. C1101 war ein Typo.
Zitatset radinoCC1101 raw SR;;R=1;;P0=-420;;P1=420;;P2=-15000;;P3=15000;D=010101010101010101010101..
Dein Sendebefehl ist viel zu lang, er sollte nicht länger sein als ca 250 bis 350 Zeichen.
Es gibt auch einen kombinierten Sendebefehl, damit können mehrere Sendebefehle hintereinander gesendet werden:
SC;R=1;SR;R=2380;P0=-420;P1=420;D=01;SR;R=1;P0=-15000;P1=15000;D=01;SR;R=1;P0=-420;P1=420;D=...
Gruß Ralf
Aha, sehr interessant, Danke. Das macht dann schon einiges einfacher.
Die Daten kann man offenbar auch in hex liefern mit der Bit-Periode in C=xxx, oder geht das nur für SM (Manchester)?
SC;R=1;SR;R=2380;P0=-420;P1=420;D=01;SR;R=1;P0=-15000;P1=15000;D=01;SR;R=1;C=420;D=1310000000E3255400012E6718CA00A0400DF4
Oder muss ich mit SR immer alle Daten mit P[0-6]= Perioden encodieren? Gibt es da für ein Tool?
Jetzt fehlen irgendwie noch die Start- und Stop-Bits. Wie geht das?
Gruss
Ja, das mit hex und C=xxx geht nur bei SM (Manchester)?
Bei SR (Sendraw) müssen immer alle Daten mit P[0-6]= Perioden gesendet werden.
Für Deinen Fall mit der Wake-up Preamble gibt es kein Tool das dies vereinfachen könnte.
Gruss Ralf
Noch mal danke.
Darf ich wenn ich wenn ich 2 oder mehr Nullen senden will auch einfach P0=-420;P1=420;P2=-420;P3=2000;D=2100000013 senden um z.B. 0x81? 2 wäre dann das start bit und 3 das stop bit?
Auch wenn das gehen sollte, wie kann man damit überhaupt mehr als nur wenige Bytes senden? Ich hätte zum Beispiel dieses Telegram mit nur gerade 15 Bytes:
13 10 00 00 00 E3 25 54 00 01 2e 67 18 ca 00 A0 40 0D F4
Das gibt dann schon 291 Zeichen. Also mehr als 250...
SC;R=1;SR;R=2380;P0=-420;P1=420;D=01;SR;R=1;P0=-15000;P1=15000;D=01;P0=-420;P1=420;P2=-420;P3=2000;D=2000100113200010000320000000032000000003200000000321110001132001001013201010100320000000032000000013200101110320110011132000110003211001010320000000032101000003201000000320000110132111101003
Gruss, Xcoder
Wenn Du mehr als ca 15-20 Byte senden willst wird es schwierig.
Ich sehe ein anderes Problem, in der Protokollbeschreibung steht was von bidirektionaler Komunikation mit acknowledge oder handshake, dies wird vom Signalduino nicht unterstützt.
Gruß Ralf
Zitat von: Ralf9 am 14 April 2019, 20:18:18
Wenn Du mehr als ca 15-20 Byte senden willst wird es schwierig.
OK, dass ist schon etwas doof... Welche Limite gibt es beim Empfang?
ZitatIch sehe ein anderes Problem, in der Protokollbeschreibung steht was von bidirektionaler Komunikation mit acknowledge oder handshake, dies wird vom Signalduino nicht unterstützt.
Wieso nicht? Ich kann doch etwas senden und danach geht er wieder auf Empfang. Mir ist schon klar das das FHEM Modul das nicht kann. Aber der Stick und die Firmware sollten doch problemlos senden und empfangen können.
Ich habe die Sache nun etwas liegen gelassen da ich vermutete dass sowieso alles mit AES verschlüsselt ist. Zumindest bei den Wasserzählern wohl nun aber doch nicht. Da wird als Protokoll EN60870-5 (M-Bus) angegeben. Hat da jemand kompakte Informationen wie solche Telegramme aufgebaut sein könnten?
Gruss, Xcoder
Kann ich nicht einfach den buf in send.h/send_cmd() vergrössern?
Leider kriege ich es hier weder auf OS-X noch in Linux gebacken als radino CC1101 Version gebacken...
Kannst Du auch noch mal die ander Frage oben anschauen.
Danke, Xcoder
Kannst Du ungefähr abschätzen wieviel Bit Du senden musst, bist Du auf Emfang gehen mußt um auf das acknowledge oder handshake zu warten?
Gruß Ralf
Ich denke mit 32 Byte, also 320 bit (1 Start-, 1 Stop-Bit) sollte ich gut zurechtkommen.
Zitat von: Xcoder am 15 Mai 2019, 23:04:45
Leider kriege ich es hier weder auf OS-X noch in Linux gebacken als radino CC1101 Version gebacken...
Mache diesbezüglich mal da weiter:
https://forum.fhem.de/index.php/topic,100634.0.html
ZitatKann ich nicht einfach den buf in send.h/send_cmd() vergrössern?
Mit der firmware von Sidey kenne ich mich nicht aus.
Bei meiner alternativen firmware V 3.3.2.1
https://forum.fhem.de/index.php/topic,82379.msg744554.html#msg744554
gibt es in der RF_RECEIVER.ino ein
#define maxCmdString 350
damit kann die Größe vom CmdString bei Bedarf erhöht werden, es muss dabei darauf geachtet werden, daß das freeram nicht zu klein wird.
Ich habe keine Erfahrung wie klein das freeram werden darf.
Gruß Ralf
Hallo,
auch wenn der letzte Beitrag schon etwas zurück liegt. Ich habe unter "Wireless M-bus für cul" bereits versucht, meine Sontex Wasserzähler und den Wärmemengenzähler auszulesen. Die Erkenntnis war, es handelt sich nicht um einen M-Bus sondern eben ein herstellerspezifisches Protokoll Radian mit 433Mhz, das aber dem M-Bus-Standard EN60870-5 folgt.
Da sich alle M-Bus Projekte im Forum auf 866MHz beziehen und ein "Standard-CUL" sich unter MBus nicht auf diese Frequenz einstellen lässt, habe ich auf Anraten im Forum https://forum.fhem.de/index.php/topic,24517.795.html einen SignalDuino mit NanoCUL und CC1101 mit V 3.3.1-RC10 SIGNALduino cc1101 geflasht.
Datenblatt Auszug Funkmodul 581:
Funk Konformität nach R&TTE 1999/5/CE
Verfahren FSK, bidirektional Frequenz 433,82 MHz Protokoll Radian
EN60870-5 (M-Bus)
Baudrate 2'400 Baud Reichweite ca. 30 m
Datenspeicher EEPROM Tägliche Speicherung
Elektronische Daten Stromversorgung 3V Lithium-Langzeitbatterie Betriebsdauer 10 Jahre
Optische Schnittstelle Protokoll EN60870-5 (M-Bus) Baudrate 2'400 Baud
vorhandene Geräte:
Supercom 581 - 22305872 - Bad/WC kalt
Supercom 581 - 22703799 - Bad/WC warm
Supercom 581 - 22321724 - WZ/Kü kalt
Supercom 581 - 22703800 - WZ/Kü warm
Supercal 739 - 22030551 - Heizungsverteiler
Die Ausführungen über das Versenden von Daten zum Aktivieren der Sontex finde ich spannend, bin aber nicht in der Lage, dieser mit meinem Signalduino433 durchzuführen.
Kannst Du mir helfen?
Try to send this hex
command 1
680B0B6853FD52FFFFFFFFEE4DFF0EE616
answer E5
680A0A6873FD510CFD16341200002616
E5
107BFD7816
68F1F16808FD7210819415EE4D0F0E0000000002FD170000046D240B7F2A01FD630401FF1F0403FD6C000000446D3B177FCC41FD270041FD660084016D3B177FCC8101FD27008101FD6600C4016D3B177FCCC101FD2700C101FD660084026D3B177FCC8102FD27008102FD6600C4026D3B177FCCC102FD2700C102FD6600C40F6D3B087F2AC30FFD088B000002FD22030082B030FD22020001FD1EFF03FD1C60090001FF0F2302FF12B0048210FF1228008220FF108F028140FF1D028340FD1C00E1008140FF0F238240FF1258028250FF1250008260FF108F0201FD66A001FF04000CFD0F0005010002FD0D0E000C78108194151F0916
680B0B684BFDB08602000001066CBCAF16
6804046808FDB0500516
680B0B6853FD52FFFFFFFFEE4DFF0EE616
E5
68C0C06873FD510CFD16341200000C7910819415446D3B377FCC41FD270084016D3B377FCC8101FD2700C4016D3B377FCCC101FD270084026D3B377FCC8102FD2700C4026D232B7F2AC102FD280041FD66008101FD6600C101FD66008102FD6600C102FD660402FF12B0048210FF1228008340FD1C00E1008140FF0F238240FF1258028250FF1250008260FF108F02838040FD1C00E100818040FF0F03828040FF12B004829040FF12580282A040FF109A198D8040FF1E00819030FF130F81A030FF130FE116
E5
680B0B684BFDB08602000001066CBCAF16
6804046808FDB0500516
Helo charuga,
thanks for this code. Hopefully you can explain the way to send this message. "command 1" ?
i connected to ttl of sontex repeater
I was listening to what the sontex concentrator was sending
then i sent with ttl on the repeater that commands and got those answers in hex
now i ordered chinese heltec on 433 to try and make arduino with fsk NRZ though i think it is classic wmbus f2 but i am not sure
@charuga can you confirm that 680B0B6853FD52FFFFFFFFEE4DFF0EE616 is what has been sent when you issued the command on the repeater, and what you list after "answer" is the repply from a device (via the ttl as well?)?
Which Sontex repeater are you using?
Did you try to listen on 433 Hz with radio device?
OK. This are normal M-Bus telegrams. Would be now very interesting to see the radio communication between the repeater and the metering device...
Hallo Zusammen,
ist zwar ein altes Thema... aber bei mir brandaktuell ;-). Wir bekommen bei uns Heizungs- und Wasserzähler von Sontex 581. Da ich in einem Mehrfamilienkomplex wohne kann ich mir da nicht all zu viel mitreden. Funktioniert das mit dem Auslesen und einlesen in Fhem oder schaut es da schlecht aus ?
viele Grüße, Andy