Frage zu HB-UNI-Sen-RFID-RC

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

spaceduck
Beiträge: 447
Registriert: 02.06.2010, 08:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 9 Mal

Frage zu HB-UNI-Sen-RFID-RC

Beitrag von spaceduck » 21.01.2019, 11:15

Hallo Jerome,

bin gerade auf Github über den HB-UNI-Sen-RFID-RC gestolpert...
Im Sketch wird die lib <RFID.h> eingebunden, wo ist diese Lib drin, welche Bibliothek muss man da installieren?

Danke...

jp112sdl
Beiträge: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von jp112sdl » 21.01.2019, 11:34

Hi,

ich bin noch dabei, die Doku zusammenzuschreiben. Deshalb steht da auch noch work in progress... ;)

Die RFID.h ist aber schon in der AskSinPP Lib drin. Musst sie mal bei dir aktualisieren.

Ansonsten brauchst noch die MFRC522-Lib. Die findest du im Arduino Bibliotheksmanager oder auch hier: https://github.com/miguelbalboa/rfid

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
HM42
Beiträge: 137
Registriert: 17.11.2014, 11:58
System: Alternative CCU (auf Basis OCCU)
Wohnort: Hannover
Hat sich bedankt: 8 Mal
Danksagung erhalten: 17 Mal

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von HM42 » 21.01.2019, 23:57

.
Hallo Jérôme,

nachdem ich dich zum RFID-Device in den letzten Tagen schon per PN kontaktiert habe, nun aber noch ein paar Fragen aufgetaucht sind, hänge mich hier gleich einmal an.

Zunächst erstmal vielen Dank an dich und papa für die tolle Arbeit !

Wie ich dir schon geschrieben hatte, ist euer Gerät und die Software doch umfangreicher als meine Einfach-Implementierung eines Homematic-RFID-Lesers. Deshalb werde ich euere Version auch bei mir nutzen. Schön, dass ihr auch die erste Doku schon fertig habt.

Um es kurz zu machen:
  • Die erste Version läuft bei mir.
  • Allerdings musste ich "USE_CC1101_ALT_FREQ_86835" auskommentieren, da meine China-CC1101 wohl bereits mit der korrekten Frequenz arbeiten.
  • Wenn ich die Chip-ID für den jeweiligen Kanal per SUBMIT-Kommando setze, klappt die Chip-Erkennung mit Short und Long Pressed
  • Mir ist aber nicht klar, ob und ggf. wie ich einen Chip direkt am Leser anlernen kann, z.B. durch langes Drücken der Konfig-Taste ???
  • Auch wäre es schön, wenn das Anlegen eines ungültigen/unbekannten Tags erkannt würde, z.B. auf Kanal 8 oder einen zusätzlichen Kanal, möglichst inkl. Übertragung der falschen UID. Dann könnte man Manipulationen bzw. ungültige Versuche einfach erkennen. Oder habt ihr dies bereits eingebaut ?
  • Da RFID-Lösungen gerade bei Zugangskontrollen nicht unkritisch sind, habe ich dann in der üblichen Weise versucht den AES-Modus einzuschalten:

    Code: Alles auswählen

    #define USE_AES
    #define HM_DEF_KEY <Homematic Default Key>
    #define HM_DEF_KEY_INDEX 0
    
    Dies hat leider nicht geklappt. Habt ihr hierfür eine Erklärung ?
Gruß
Thomas M.
Alias: HM42

maxx3105
Beiträge: 281
Registriert: 19.10.2018, 16:07
Hat sich bedankt: 156 Mal
Danksagung erhalten: 49 Mal

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von maxx3105 » 22.01.2019, 00:06

Du muss bei #define HM_DEF_KEY <Homematic Default Key> entweder den Default Key reinschreiben oder eben deinen eigenen AES Key.

Benutzeravatar
HM42
Beiträge: 137
Registriert: 17.11.2014, 11:58
System: Alternative CCU (auf Basis OCCU)
Wohnort: Hannover
Hat sich bedankt: 8 Mal
Danksagung erhalten: 17 Mal

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von HM42 » 22.01.2019, 02:28

Hallo maxx3105,

habe hier natürlich den Default-Key stehen. Da er aber nicht allgemein bekannt ist bzw. verteilt wird, habe ich ihn hier auch nicht direkt reingeschrieben.

Außerdem hat der AES-Modus bei den anderen Devices ja funktioniert.

Gruß
Thomas

jp112sdl
Beiträge: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von jp112sdl » 22.01.2019, 07:15

Hallo Thomas,

erstmal freut es mich, dass es grundsätzlich schon mal funktioniert.
HM42 hat geschrieben:
21.01.2019, 23:57
Allerdings musste ich "USE_CC1101_ALT_FREQ_86835" auskommentieren, da meine China-CC1101 wohl bereits mit der korrekten Frequenz arbeiten.
Ich hab das USE_CC1101_ALT_FREQ_86835 im Github Repo mal standardmäßig rausgenommen.
HM42 hat geschrieben:
21.01.2019, 23:57
Mir ist aber nicht klar, ob und ggf. wie ich einen Chip direkt am Leser anlernen kann, z.B. durch langes Drücken der Konfig-Taste ???
Viel einfacher:
Die Schaltflächen neben "Anlernmodus" unter "Geräte und Bedienung" sind Schaltflächen.
Du drückst auf "Aktiv" bei dem Kanal, an dem du eine ID anlernen möchtest.
Bild
Der Anlernmodus ist dann aktiv, was auch durch ein Intervall-Beepen des Buzzers quittiert wird.
Der Anlernmodus kann durch klicken auf "Nicht aktiv" vorzeitig beendet werden (zB wenn nur versehentlich aktiviert), er wird sonst automatisch beendet wenn die ID angelernt wurde oder nach 60 Sekunden Timeout.
HM42 hat geschrieben:
21.01.2019, 23:57
Da RFID-Lösungen gerade bei Zugangskontrollen nicht unkritisch sind, habe ich dann in der üblichen Weise versucht den AES-Modus einzuschalten:
Dies hat leider nicht geklappt. Habt ihr hierfür eine Erklärung ?
AES muss ich noch testen. Ich hatte aber gesehen, dass die Speicherauslastung ohne AES schon recht hoch ist.
Bei aktiviertem AES müsste man evl. die Kanalzahl reduzieren oder einen ATMega644/1284 einsetzen.
Vielleicht ist es bei dir letztendlich "nur" ein RAM-Problem gewesen.
Ich frag aber trotzdem noch mal vorsichtshalber: Die Tasterkanäle hattest du anschließend in der WebUI aber auf "gesicherte Übertragung" umgestellt?
HM42 hat geschrieben:
21.01.2019, 23:57
Auch wäre es schön, wenn das Anlegen eines ungültigen/unbekannten Tags erkannt würde, z.B. auf Kanal 8 oder einen zusätzlichen Kanal, möglichst inkl. Übertragung der falschen UID. Dann könnte man Manipulationen bzw. ungültige Versuche einfach erkennen. Oder habt ihr dies bereits eingebaut ?
Nein, ist auch (von meiner Seite) erstmal nicht geplant.
Was ich mir zunächst vorstellen könnte, wäre eine einfache Sabotage-Mitteilung (wie bei den TFK), wenn ein nicht-angelernter Chip gescannt wurde.
Werde ich in den nächsten Tagen mal checken.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von papa » 22.01.2019, 08:58

Wenn ich mich richtig erinnere, gibt es ausser den 4 Byte RFIDs auch welche mit 7 Byte. @Jerome - ich denke es macht Sinn, hier gleich auf 8 Byte-Adresse zu gehen und für die 4 Byte Typen einfach mit führenden Nullen aufzufüllen. Das würde dann auch die selbe Adressbreite sein, wie bei den 1Wire-IButtons. Wir können dann sicherlich besser den Code reusen :-)
Anfragen zur AskSin++ werden nur im Forum beantwortet

jp112sdl
Beiträge: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von jp112sdl » 22.01.2019, 10:06

papa hat geschrieben:
22.01.2019, 08:58
ich denke es macht Sinn, hier gleich auf 8 Byte-Adresse zu gehen und für die 4 Byte Typen einfach mit führenden Nullen aufzufüllen.
Dann muss ich noch mehr umbauen.
Bei max. 17 Byte Payload und einer 8 Byte Adresse (=16 Hex-Zeichen), müsste ich die Channel-Num um 1 Byte nach links verschieben (auf Index 9; üblicherweise wird Ch# bei Index 10 übertragen) und bereits ab Index 10 das erste Zeichen der ChipID übertragen...

Code: Alles auswählen

     // Message::init(0x13, msgcnt, 0x53, BIDI , 0x00, ch);
      Message::init(0x13, msgcnt, 0x53, BIDI , ch,hexstr[0] );
Wobei dann ein einfaches

Code: Alles auswählen

memcpy(pload, hexstr, (ID_ADDR_SIZE * 2));
auch nicht mehr ginge.

Die XML muss ich dann auch noch mal anfassen.

Na ok, so sollte es gehen, oder?

Code: Alles auswählen

      Message::init(0x13, msgcnt, 0x53, BIDI , ch , hexstr[0]);
      for (uint8_t i = 1; i < (ID_ADDR_SIZE * 2); i++) {
    	  pload[i-1] = hexstr[i];
      }
 
Ich hatte mein Gerät schon fast Unterputz eingebaut... 8)

Oder wollen wir uns generell auf 7 Byte einigen?
Die Wahrscheinlichkeit, dass jemand mit nem iButton kommt, dessen Adresse sich nur in 1 Byte von einem zulässigen/angelernten iButton unterscheidet, halte ich für ausgeschlossen.
Dann könnte fast alles so bleiben.

Ich mache mal ein paar Versuche und melde mich.
Zuletzt geändert von jp112sdl am 22.01.2019, 10:18, insgesamt 1-mal geändert.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

jp112sdl
Beiträge: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von jp112sdl » 22.01.2019, 10:13

papa hat geschrieben:
22.01.2019, 08:58
Wenn ich mich richtig erinnere, gibt es ausser den 4 Byte RFIDs auch welche mit 7 Byte.

Code: Alles auswählen

 * 		UID size	Number of UID bytes		Cascade levels		Example of PICC
 * 		========	===================		==============		===============
 * 		single				 4						1				MIFARE Classic
 * 		double				 7						2				MIFARE Ultralight
 
Ja, die gibt es. Hatte aber noch keinen "MIFARE Ultralight" in der Hand.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: Frage zu HB-UNI-Sen-RFID-RC

Beitrag von papa » 22.01.2019, 11:58

jp112sdl hat geschrieben:
22.01.2019, 10:06
Dann muss ich noch mehr umbauen.
Bei max. 17 Byte Payload und einer 8 Byte Adresse (=16 Hex-Zeichen), müsste ich die Channel-Num um 1 Byte nach links verschieben (auf Index 9; üblicherweise wird Ch# bei Index 10 übertragen) und bereits ab Index 10 das erste Zeichen der ChipID übertragen...

Code: Alles auswählen

     // Message::init(0x13, msgcnt, 0x53, BIDI , 0x00, ch);
      Message::init(0x13, msgcnt, 0x53, BIDI , ch,hexstr[0] );
Wieso überträgst Du in der Message die ID als Hexstring ? Da können doch einfach die 4 bzw. 8 Byte rein.
Anfragen zur AskSin++ werden nur im Forum beantwortet

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“