Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Moderator: Co-Administratoren
-
- Beiträge: 221
- Registriert: 04.10.2018, 19:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Hallo zusammen,
irgendwie hab ich grade nen Knoten im Hirn...
In den Sketches sind ja 2 Dinge, die immer eineindeutig sein müssen:
- Device-Serial
- Device ID
Hab ich das richtig verstanden, dass ich das hart codiere und für mehrere Geräte dann auch unterschiedliche Stände flashen muss?
Ich frag mal ganz naiv:
Muss da jedes für sich eineindeutig sein oder nur die Kombi aus beidem?
Dass man die Infos aus einem Seriennummernchip nimmt geht nicht und das dann zur Laufzeit ermittelt?
Sorry wenn das ne blöde Frage sein sollte, einfach ignorieren.
irgendwie hab ich grade nen Knoten im Hirn...
In den Sketches sind ja 2 Dinge, die immer eineindeutig sein müssen:
- Device-Serial
- Device ID
Hab ich das richtig verstanden, dass ich das hart codiere und für mehrere Geräte dann auch unterschiedliche Stände flashen muss?
Ich frag mal ganz naiv:
Muss da jedes für sich eineindeutig sein oder nur die Kombi aus beidem?
Dass man die Infos aus einem Seriennummernchip nimmt geht nicht und das dann zur Laufzeit ermittelt?
Sorry wenn das ne blöde Frage sein sollte, einfach ignorieren.
Gruß Sven
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Hi,
ja, richtig verstanden, müssen immer beide unterschiedlich sein, da sie an verschiedenen Stellen verwendet werden.
Siehe auch "sketch-anpassen-und-flashen" auf den Dokuseiten.
Dabei wird die Device-ID (3 Byte HEX) für die Kommunikation über den CC1101 verwendet. Ist also eine Adresse im
"Funknetzwerk", welches die CCU und die Geräte verwenden. Identische ID == Adressen sind hier eine
echt schlechte Idee.
Historisch bevorzugt EQ3 "niedrige" Device-IDs, Eigenbauten eher "höhere" Ids. Muss man selbst verwalten, eine
übergeordnete Verwaltung ala DENIC oder EthernetVendorsMacs gibt es nicht. Alle angelernten Geräte haben diese IDs
in einer Konfigurationsdatei in der CCU.
Die Device-Serial ist ein 10 stelliger Text, der in eigentlich allen Stellen in der WebGUI und weiteren Tools
verwendet wird. Ein sinnvoller Text macht die Verwendung des Gerätes leichter. Es ist aber auch denkbar,
etwa einen Teil (4 Zeichen) vorzugeben und die Device-ID als Zeichen zu verwenden.
Also aus ID "0xA5A537" und Prefix "SENS" würde dann "SENSA5A537". Das bleibt aber jedem selbst überlassen.
ciao
Harvey
ja, richtig verstanden, müssen immer beide unterschiedlich sein, da sie an verschiedenen Stellen verwendet werden.
Siehe auch "sketch-anpassen-und-flashen" auf den Dokuseiten.
Dabei wird die Device-ID (3 Byte HEX) für die Kommunikation über den CC1101 verwendet. Ist also eine Adresse im
"Funknetzwerk", welches die CCU und die Geräte verwenden. Identische ID == Adressen sind hier eine
echt schlechte Idee.
Historisch bevorzugt EQ3 "niedrige" Device-IDs, Eigenbauten eher "höhere" Ids. Muss man selbst verwalten, eine
übergeordnete Verwaltung ala DENIC oder EthernetVendorsMacs gibt es nicht. Alle angelernten Geräte haben diese IDs
in einer Konfigurationsdatei in der CCU.
Die Device-Serial ist ein 10 stelliger Text, der in eigentlich allen Stellen in der WebGUI und weiteren Tools
verwendet wird. Ein sinnvoller Text macht die Verwendung des Gerätes leichter. Es ist aber auch denkbar,
etwa einen Teil (4 Zeichen) vorzugeben und die Device-ID als Zeichen zu verwenden.
Also aus ID "0xA5A537" und Prefix "SENS" würde dann "SENSA5A537". Das bleibt aber jedem selbst überlassen.
ciao
Harvey
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte
-
- Beiträge: 221
- Registriert: 04.10.2018, 19:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Hallo Harvey,
okay danke für die Erklärung, dann hatte ich das ja richtig verstanden.
Weiß jemand wie diese Device-IDs bei EQ3 vergeben werden ?
Ist ja im Endeffekt ein 24 bit-Wert und da ist bei 16 Mios ja Ende.
Gruß
S.
okay danke für die Erklärung, dann hatte ich das ja richtig verstanden.
Weiß jemand wie diese Device-IDs bei EQ3 vergeben werden ?
Ist ja im Endeffekt ein 24 bit-Wert und da ist bei 16 Mios ja Ende.
Gruß
S.
Gruß Sven
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Hier ist es noch ein bisschen in bunt erklärt: https://asksinpp.de/Grundlagen/02_softw ... nd-flashen
Das neueste Gerät (OEQ...) mit 0x56
Alles dazwischen hat was mit 0x4...
Ist vielleicht tatsächlich nur eine laufende Nummerierung.
Bei mir beginnt die Adresse für das Gerät mit der kleinsten Seriennummer (KEQ...) mit 0x22....
Das neueste Gerät (OEQ...) mit 0x56
Alles dazwischen hat was mit 0x4...
Ist vielleicht tatsächlich nur eine laufende Nummerierung.
-
- Beiträge: 221
- Registriert: 04.10.2018, 19:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Hallo Jerome,
danke für die Info.
Gibt es / gab es denn mal Ansätze diese beiden Werte (Device-ID und Serial) zur Laufzeit zu ermitteln oder war das bisher immer hart codiert?
Ich denke mich dunkel dran zu erinnern, dass da mal jemand mit nem 644-er was mit dessen Unique-ID gemacht hat.
S.
danke für die Info.
Gibt es / gab es denn mal Ansätze diese beiden Werte (Device-ID und Serial) zur Laufzeit zu ermitteln oder war das bisher immer hart codiert?
Ich denke mich dunkel dran zu erinnern, dass da mal jemand mit nem 644-er was mit dessen Unique-ID gemacht hat.
S.
Gruß Sven
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Es gibt nicht nur den Ansatz - das ist sogar fertig implementiert: USE_HW_SERIAL
Funktioniert jedoch nicht mit dem 328P, weil dieser dieses Feature nicht besitzt.
Funktioniert jedoch nicht mit dem 328P, weil dieser dieses Feature nicht besitzt.
-
- Beiträge: 221
- Registriert: 04.10.2018, 19:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Schade....
da könnt man doch eventuell über ein externes SPI EEPROM mit einer Unique ID was basteln oder ist das bescheuert ?
S.
da könnt man doch eventuell über ein externes SPI EEPROM mit einer Unique ID was basteln oder ist das bescheuert ?
S.
Gruß Sven
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Man könnte auch einen DS2401 nehmen.
Weiß nicht, ob sich der Aufwand lohnt...
Ich habe es mir angewöhnt, bei mehreren Geräten desselben Typs nur die letzte Stelle zu inkrementieren, und die ersten 2 Bytes nehme ich aus dem Device Model. Das letzte Byte ist auch gleichzeitig das Ende der Seriennummer.
Beim HM-WDS40-TH-I bspw.:
- Gerät 1:
- Gerät 2:
Die Seriennummer selbst drucke ich mit nem Dymo aufs Gerät außen drauf.
In der WebUI sehe ich auch ganz fix, welches die nächste freie Nummer ist, wenn ich nach nem halben Jahr mal noch einen weiteren WDS40 einbinden möchte.
Weiß nicht, ob sich der Aufwand lohnt...
Ich habe es mir angewöhnt, bei mehreren Geräten desselben Typs nur die letzte Stelle zu inkrementieren, und die ersten 2 Bytes nehme ich aus dem Device Model. Das letzte Byte ist auch gleichzeitig das Ende der Seriennummer.
Beim HM-WDS40-TH-I bspw.:
- Gerät 1:
Code: Alles auswählen
const struct DeviceInfo PROGMEM devinfo = {
{0x00, 0x3f, 0x01}, // Device ID
"JPTH40I001", // Device Serial
{0x00, 0x3f}, // Device Model
...
};
Code: Alles auswählen
const struct DeviceInfo PROGMEM devinfo = {
{0x00, 0x3f, 0x02}, // Device ID
"JPTH40I002", // Device Serial
{0x00, 0x3f}, // Device Model
...
};
In der WebUI sehe ich auch ganz fix, welches die nächste freie Nummer ist, wenn ich nach nem halben Jahr mal noch einen weiteren WDS40 einbinden möchte.
-
- Beiträge: 221
- Registriert: 04.10.2018, 19:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Hi Jerome,
okay...vom Aufwand her natürlich eher oversized da hast Du recht....
Und nachdem ich nicht vorhabe, das Teil OTA zu flashen...okay hast recht: ich bleib beim hardcodieren
okay...vom Aufwand her natürlich eher oversized da hast Du recht....
Und nachdem ich nicht vorhabe, das Teil OTA zu flashen...okay hast recht: ich bleib beim hardcodieren
Gruß Sven
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten
Hardwareentwickler und bisschen Ahnung von Programmierung.
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: Device-ID - wie stelle ich die Eineindeutigkeit sicher ?
Beim OTA kannst Du Dir beim Bootloader erstellen zufällige ID & Srial erzeugen lassen. Da ist die Wahrscheinlichkeit auch eher gering, dass Du eine 2x erwischst.
Anfragen zur AskSin++ werden nur im Forum beantwortet