Heute habe ich ein sehr spannendes Thema für Euch. Es geht um selbst gebaute Sensoren, die sich, wie “normale” Sensoren einfach ohne Umweg an die CCU2 anlernen lassen. Das Schöne daran ist, dass die Kosten dafür sehr überschaubar sind und man selber Hand anlegen kann – wenn man denn will ;-) Das Projekt ist zusammen mit Alexander Reinert entstanden, der hierfür den passenden Input geliefert hat.

Was ist der Sinn und Zweck dieses Projekts? IoT ist in aller Munde und Bau von Sensoren und kleinen Platinen ist so einfach wie noch nie. Die Arduino-Plattform liefert zudem das passende Werkzeug, um solche Projekte ohne großen Aufwand umzusetzen. Ziel ist es, eine Platine zu schaffen, die zusammen mit einem schicken Gehäuse, nicht mehr viel mit den Sensoren gemein hat, die man aus manchen Bastelzimmern kennt. Das hier vorgestellte Modul soll die Plattform für unterschiedliche Sensoren bilden, die dann selber zusammengebaut werden können. Starten werden wir mit einem Sensor, der uns eine (sehr genaue!) Temperatur und Luftfeuchtigkeit liefert. Der Sensor arbeitet mit 2AA Batterien in einem flachen Gehäuse und lässt sich ganz einfach an einer CCU2 über Funk anmelden. Dort kann er dann wie jeder andere Sensor auch, abgefragt und ausgewertet werden.

Die Laufzeit der Batterie ist, je nach Funkempfang zwischen 1,5 und 3 Jahre ausgelegt. Dadurch ist der DIY-Sensor auch für den Alltag bestens geeignet. Die Kosten für den Sensor belaufen sich auf unter 25€!In diversen Foren wird das Thema schon länger diskutiert und es gibt dazu auch ein paar wenige Anleitungen, die aber für den Laien nicht besonders gut zu verstehen sind. Damit auch die Leser unter Euch in den Genuss kommen können, solche Sensoren nachzubauen, haben wir uns vorgenommen eine sehr detaillierte Beschreibung zu erstellen, die Euch zeigt, wie Ihr Schritt für Schritt das Projekt nachbauen könnt.

Die Idee hinter den Sensoren ist schon etwas älter und stammt aus dem FHEM-Forum. Dort wurde damals Libs AskSin (Name abgeleitet von Homematic BidCos) ins Leben gerufen. Diese Library dient als Grundlage der DIY-Sensoren. Aus Libs AskSin wurde dann NewAskSin – damit war es möglich, Sensoren im Eigenbau zu entwickeln. Für den „laien“ aber sehr umständlich und eher nicht für den produktiven Einsatz geeignet.

Irgendwann hat Holger den Code aufgeräumt, umstrukturiert und auf C++ portiert, AskSinPP war geboren.

Jerome Pech hat diese Software dann auch außerhalb der FHEM-Community bekannt gemacht und die angefangen, den Aufbau etwas Laien gerecht aufzuarbeiten.Auch hat er viele Sketches für die Arduino-Plattform geschrieben, die das Handling sehr viel einfacher machten.

Alexander Reinert (Ihr kennt ihn durch das piVCCU Projekt) hat sich dann an die Entwicklung von fertigen Platinen gewagt und uns auf dieses Thema aufmerksam gemacht und uns den passenden Input geliefert.

Soviel zur Vorgeschichte.

Vorab möchte ich einen großen Dank an Jerome Pech und Alexander Reinert aussprechen, da erst durch die beiden diese Anleitung für Euch möglich ist.

Eigenschaften des Sensors

Präzises messen von Temperatur und Luftfeuchtigkeit – Es erfolgt alle 3 Minuten eine automatische Übermittlung der Daten an die CCU.

Sensoreinheit von Bosch.

Die Batterielaufzeit beträgt (rechnerisch) 2-3 Jahre.

Größe ca. 10x10x3 cm

Kann verwendet werden mit: CCU1,CCU2,CCU3, RaspberryMatic, piVCCU OCCU – nicht für den Homematic IP Access Point geeignet.

Der Sensor wird in der CCU als richtiges Gerät erkannt, kein Cux Daemon oder ähnliche Software notwendig.

Es können mehrere Sensoren parallel angelernt werden.

Vorteil gegenüber fertigen Homematic-Sensoren: Viel höhere Genauigkeit durch präzisen Sensor von Bosch.

Platine kann für weitere I2C-Sensoren genutzt werden – hier folgen weitere DIY-Projekte!

Der komplette Bausatz kann über smartkram bezogen werden!

Was brauchen wir alles für den Aufbau dieses Sensors?

1x Grundplatine (Layout von Alex) könnt Ihr über unsere Shop beziehen

1x BME280 Sensor (Hochpräziser Sensor für Temperatur und Luftfeuchtigkeit)

1x Arduino Pro Mini 3,3V mit 8 MHz

1x Funkmodul 868MHz

1x Antennendraht 8,6cm (1mm Abisoliert)

2x Batteriehalter für AA-Zellen

1x Taster 6x6x5mm

1x Elko 10uF 1,5mm

1x Universalgehäuse

4x Blechschraube M2

2x AA Batterien

Signalisierung über LED (Anlernmodus)

1x LED 3mm (rot)

1x Widerstand R1 470 Ohm

Verpolungsschutz der Batterien

1x Mosfet IRLU024NPBF (optional)

1x Widerstand R3 100K Ohm (optional)

Flashen des Arduino

Zum Flashen benötigen wir zudem noch einen FTDI Adapter 3.3V

Ich habe Euch hier mal die unterschiedlichen Bezugsquellen zusamMengestellt. Wer den Kram bei Aliexpress kauft, spart eine Menge Geld, muss aber etwas auf die Lieferung warten. Es können leider schon mal gut 30 – 40 Tage vergehen, bevor die Sendung aus China bei Euch ankommt. Bei Amazon geht das natürlich schneller, Ihr bezahlt dann aber einen saftigen Aufpreis.

Wo am besten kaufen?

Ich habe alle Teile mit µ-Elektronik bei Aliexpress bestellt, die Bauteile wie Widerstände, Taster, das Gehäuse und den MOSFET bei Conrad und die Batteriehalter bei ELV.

Ich habe die fertige Platine von Alex bereits hier, Ihr findet die Platine und die Bauteile im Shop.

Technikkram Amazon Aliexpress Conrad
ELV
Grundplatine Link
BME280 Sensor Link Link
Arduino Pro Mini Link Link
Funkmodul Link Link
Antennendraht
Batteriehalter Link
LED 3mm Link Link
R1 = 470 Ohm Link Link
R3 = 100K Ohm Link Link
Taster 6x6x5mm Link Link
Elko 10uF Link Link
Universalgehäuse Link
Blechschraube M2 Link
AA Batterien Link Link
Mosfet Link Link
FTDI Adapter Link Link

Bevor wir mit dem Aufbau anfangen, habe ich Euch ein paar Bilder erstellt, damit Ihr sehen könnt, wie das fertige Modul aussieht und wie Ihr dieses in die CCU integrieren könnt. Das Anlernen funktioniert, wie bei jedem anderen Gerät auch über einen Knopfdruck auf der Platine und über die Anlernroutine in der CCU.

Aufbau des Sensors

Wir fangen nun an die Platine zu bestücken, wenn Ihr alle Bauteile bestellt habt, die in der Liste oben aufgeführt sind, können wir anfangen ;-)

Zuerst habe ich das C1101 868 MHz-Funkmodul auf die Platine gesetzt. Ihr habt dabei zwei Möglichkeiten. Entweder verwendet Ihr die beiliegende Steckleiste. Diese wir dann auf die Platine gelötet und anschließend das Funkmodul an die Stifte. Wer es etwas einfacher haben will, kann das Modul aber auch direkt auf die Platine setzen. Das habe ich so gemacht. Auf dem Bild sehr Ihr, dass das Modul direkt auf die Platine gelegt worden ist.

Am besten stellt Ihr Euren Lötkolben auf 360°C ein. Ihr erhitzt nun beide Kontaktflächen und lasst dann langsam etwas Lötzinn auf die Stelle fließen. Ihr braucht nicht besonders viel und solltet darauf achten, dass das Zinn keine Brücke zu den benachbarten Kontakten herstellt.

In der Platine ist zudem eine Bohrung, die für die Antenne vorgesehen ist. Als Antenne nehmt Ihr einfach einen dünnen Draht und schneidet diesen auf eine Länge von 8,6 cm. Mit einer Zange entfernt Ihr dann die Isolierung (1mm). Die blanke Litze steckt Ihr dann durch das Loch und verlötet diese mit dem mittleren Kontakt der c1101-Platine.

Kleiner Tipp: Wenn Ihr eine Homematic-Funkmodul für den Raspberry Pi aufgebaut habt und dieses auf eine externe Antenne umgerüstet habt, dann der „alte“ Antennendraht super für dieses Projekt genutzt werden.

Nun kümmern wir uns um den Arduino Pro mini. Der kleine Chip ist auf einer Board installiert. Wir müssen die beiliegenden Kontakte links und rechts bestücken. Dazu werden die Steckleisten mit 2x 12 Pins benötigt. Die Leisten an den schmalen Seiten (oben und unten) müssen wir nicht bestücken.

Ganz wichtig ist auch, dass die beiden Pins A4 und A5 verlötet werden. Hierüber findet die I2C-Kommunikation mit dem Sensor statt.

Wir müssen in Summe als 26 Lötpunkte auf dem Arduino setzen. Ihr könnt die Steckerleiste entweder von oben oder von unten verlöten. Dabei solltet Ihr vorsichtig sein und nicht zu viel Zinn verwenden.

Nachdem alle Pins angebracht worden sind können wir den Chip mit der Platine verlöten. Dazu setzen wir das Modul auf die Platine und drehen diese um.

Alle 26 Pins müssen nun verlötet werden. Kontrolliert die Lötstellen bitte sorgfältig, da sonst eine spätere Fehlersuche sehr aufwändig werden kann….

Nachdem der Arduino platziert ist, kümmern wir uns um den I2C-Sensor. Der BME280 besitzt 6 Anschlüsse, wovon wir aber nur 4 benötigen.Die beiliegende Steckerleiste löten wir zuerst auf die Platine. Dann löten wir den Sensor auf die Stiftleiste, sodass die oberen 2 Kontakte leer bleiben.

Nun haben wir alle Bauteile mit µ-Chips eingesetzt. Jetzt folgen die etwas einfacheren Komponenten wie Widerstände, Taster und LED.

Den Anfang macht die LED. Die LED ist optional und kann für die Signalisierung während des Anlernvorgangs genutzt werden. Da der Anlernvorgang aber auch am PC-Monitor verfolgte werden kann, kann die LED + der Widerstand R1 eingespart werden.

Den richtigen Einbau setzt Ihr auf dem Bild. Das lange Bein (Anode oder „+“) wird nach unten gesetzt. Das kurze Beinchen wird auf die Bohrung mit der Bezeichnung „4“ gesetzt. Der Widerstand wird als Vorwiderstand für die LED benötigt und kommt auf die Position R1. Hier spielt die Polarität keine Rolle.

Auch dieser Widerstand kann eingespart werden, wenn Ihr die LED nicht benötigt.

Es folgt nun der Taster, der für das Starten des Anlernvorgangs benötigt wird. Dieser wird an die dafür vorgesehene Stelle (weißes Rechteck) gelötet. Ihr könnt hier nichts falsch machen, da der Taster nur genau in die Bohrung passt.

Der nächste Schritt ist ebenfalls optional. Alex hat sich für die Platine einen Verpolungsschutz überlegt, der die Elektronik davor schützt, wenn die Batterien falsch herum eingesetzt werden. Ohne den MOSFET würde dann die Elektronik Schaden nehmen.

Da aber die Batteriehalter sehr eindeutig beschriftet sind, könnt Ihr auf diesen MOSFET + Widerstand aber auch verzichten.

Wenn Ihr ohne MOSFET (Überspannungsschutz) arbeiten wollt, müssen die beiden Kontakte von J8 zusammengelötet (gebrückt) werden.

Nun folgt noch der Elko am C1101-Modul. Dieser muss auf die Position C1 gesetzt werden. Die Anode („-„) muss auf die weiße Fläche auf der Platine gesetzt werden. Die richtige Position könnt Ihr den Foto entnehmen.

Als letzter Schritt müssen noch die beiden Halter für die AA-Zellen verlötet werden. Die richtige Polung seht Ihr auf der Platine und in den Haltern. Dort ist ebenfalls ein „+“ und „-“ zu finden. Minus ist dort, wo die Feder verbaut ist.

Das waren die letzten beiden Bauteile, die wir benötigt haben.

Solltet Ihr Probleme bei der Installation der Software haben, könnt Ihr mich gerne anschreiben, dann kann ich Euch einen fertig geflashten Arduino zukommen lassen!

Software einspielen

Doch ohne die passende Software bleibt unsere Platine ein Briefbeschwerer ;-) Daher wollen wir jetzt das passende Sketch installieren um den Sensor in die CCU einzubinden.

Da ich weiß, das viele von Euch noch keinerlei Erfahrung mit Arduino und dessen Programmierung gemacht haben, werde ich auch diese Schritte im Detail beschreiben.

Zuerst müssen wir die Arduion IDE Software herunterladen. Diese gibt es für Windows, Mac und Linux.

Nachdem der Download beendet ist, müsst die die Installationsroutine durchlaufen und das Programm starten.

AskSinPP herunterladen

Um zu starten benötigen wir zuerst AskSinPP. Über die Schaltfläche „Clone or download“ rufen wir ein weiteres Fenster auf. Hier wählen wir nun Download ZIP aus.

Nachdem die Datei heruntergeladen ist entpacken wir die Datei in einem temporären Ordner.

Nun müssen wir aus den soeben entpackten Dateien ein neues Archiv machen, jedoch ohne das zusätzliches Unterverzeichnis AskSinPP. Im neuen ZIP-Archiv sind dann direkt die Ordner bootloader, examples usw… zu finden.

Das neue Archiv kann den gleichen Namen wie das alte Archiv tragen.

Wir brauchen diese Datei gleich, um die ZIP-Datei als zusätzliche Library in Arduino IDE einzubinden.

Einbinden der AskSinPP Bibliothek

Die soeben angelegte ZIP-Datei spielen wir jetzt in das Arduino IDE ein. Dazu klicken wir im Hauptfenster auf „Sketch“ und dann auf „Bibliothek einbinden“ dort wählen wir dann „.ZIP-Bibliothek einbinden…“ an.

In dem neuen Fenster wählen wir nun unsere soeben erzeugte ZIP-Datei aus.

Damit haben wir die wichtigste Bibliothek für die Funktion unseres neuen Sensors eingebunden!

Sketch herunterladen

Nun laden wir die fertigen Sketche für den Sensor herunter. Diese bekommen wir bei GitHub von Jerome.

Auch hier wählen wir wieder „Clone or download“ an und laden die ZIP-Datei herunter.

Ich habe das Archiv direkt in den Ordner der Arduino-Installation geschoben. Diesen findet Ihr unter „Dokumente“ –> „Arduino“. Hier habe ich alle Beispiele abgelegt, die in der ZIP-Datei von Jerome vorhanden sind.

Hier ist auch das Sketch von unserem BME280 enthalten. Dieses werden wir gleich laden.

Zusätzliche Bibliotheken installieren

Zuerst müssen aber noch weitere Bibliotheken geladen werden, damit das Projekt laufen kann.

Wir brauchen folgende Bibliotheken, die noch installiert werden müssen:

  • EnableInterrupt (Mike Schwager)
  • Low-Power (Rocket Scream)
  • BME280 (Tyler Glen)

Fangen wir mit der ersten Bibliothek an. Diese installieren wir über das Haupfenster mit einem Klick auf „Sketch“ –> „Bibliothek einbinden“ –> „Bibliothek verwalten…“

Es öffnet sich ein neues Fenster. Dort können wir dann nach der benötigten Datei suchen.

Wir geben als im Eingabefeld „EnableInterrupt“ ein und wählen die aktuelle Version aus und danach auf „Installieren“.

Damit haben wir nun die erste Bibliothek eingebunden.

Die nächste Library, die wir benötigen können wir hier von GitHub herunterladen. Auch diese Bibliothek binden wir wieder über die Schaltfläche „Sketch“ –> „Bibliothek einbinden…“ und dann auf „.ZIP-Bibliothek hinzufügen…“.

Hier wählen wir dann die soeben heruntergeladene Datei von GitHub aus.

Jetzt folgt die letzte Bibliothek für den BME280-Sensor. Diese erhalten wir ebenfalls von GitHub.

Auch diese Datei binden wir wieder über die Schaltfläche „Sketch“ –> „Bibliothek einbinden…“ und dann auf „.ZIP-Bibliothek hinzufügen…“ ein.

Damit haben wir nun alle nötigen Dateien zusammen und können jetzt das Board konfigurieren!

Board Konfigurieren

Nun müssen wir dem Programm noch mitteilen, welches Board wir programmieren wollen. Dazu klicken wir auf „Werkzeuge“ und tragen dort die Information ein, die Ihr im Bild sehen könnt.

Hier sind die Einstellungen nochmal einzeln aufgeführt. Um an den COM-Port des FTDI-Adapters zu erhalten, muss der Adapter an den Computer angeschlossen werden. Ihr könnt dann im Gerätemanager den passenden Port sehen. In meinem Fall ist das COM7.

  • Board: Arduino Pro or Pro Mini
  • Prozessor: ATMega328P 3.3V 8MHz
  • Port: Der COM Port vom FTDI Adapter

Sketch laden

Nun müssen wir das fertige Sketch laden, um den Sensor zum Leben zu erwecken. Das Sketch ist wie ein Programm, welches auf den Prozessor vom Arduino geschrieben wird.

Dieses findet Ihr im zuvor heruntergeladenen Archiv. Dort müsst Ihr nach HM

HM-WDS10-TH-I-BME280/HM-WDS40-TH-I-BME280.ino suchen.

Arduino flashen

Jetzt haben wir soweit alles vorbereitet, dass der Arduino programmiert werden kann. Dazu müssen wir den Programmer auf 3,3V umstellen. Auf der Platine ist dafür ein Jumper angebracht. Dieser kann entweder in der Stellung 3,3V oder 5V gesteckt werden. Wir müssen diesen für unseren Arduino auf 3,3V stellen.

Die Platine wird bei diesem Schritt ohne die Batterien betrieben. Wir stecken nun die PINs vom Programmer in das Board vom Arduino, wie Ihr es auch auf dem Foto erkennen könnt.

Nun klicken wir im Fenster auf „Sketch“ –> „Überprüfen / Kompilieren“.

Dieser Vorgang dauert ein paar Sekunden und es sollte am Ende so aussehen, wir auf dem folgenden Bild:

Wenn Ihr bis hier alles richtig gemacht habt, dann können wir das Programm nun auf die CPU schreiben.

Dazu klicken wir auf „Sketch“ –> „Hochladen“

Auch dieser Vorgang dauert etwas und Ihr könnt beobachten, wie die beiden roten LEDs am Programmer während des Vorgangs blinken.

Damit haben wir erfolgreich die Software auf das Gerät gespielt!

Installation prüfen

Nachdem der Vorgang abgeschlossen ist, können wir überprüfen, ob alles richtig funktioniert. Dazu öffnen wir den seriellen Monitor. Das machen wir über „Werkzeuge“ –> „serieller Monitor“.

Die Ausgabe im Plotter sollte so aussehen, wie im oberen Fenster. Dort könnt Ihr erkenne, dass der Messwert als „Measure…“ bereits vom I2C Sensor an den Arduino übertragen wird!

Jetzt können wir den Sensor an unsere CCU anlernen!

Sensor an die CCU anlernen

Dazu öffnen wir das Webinterface der CCU oder der piVCCU und klicken dort wie gewohnt auf „Gerät anlernen“.

Der Arduino bleibt noch an den Programmer angeschlossen und es müssen auch noch keine Batterien eingelegt werden.

Wir starten nun den Anlernmodus der CCU.

Direkt im Anschluss drücken wir kurz auf den Taster des neuen Sensors. Im Plotter könnt Ihr diesen Tastendruck ebenfalls sehen.

Die rote LED auf dem Sensor beginnt nun zu blicken.

Nach einer kurzen Zeit wird das Gerät im Posteingang der CCU auftauchen. Nun ist der Sensor der CCU bekannt und kann wie gewohnt konfiguriert und abgefragt werden.

Batterien einsetzen und Gehäuse installieren

Der Programmer kann nun vom Board getrennt und die beiden AA-Batterien eingesetzt werden. Die rote LED leuchtet kurz auf und der Sensor sendet im Anschluss seine Messwerte an die CCU.

LEDs deaktivieren

Damit die Batterien des Sensor länger halten, sollen die beiden kleinen LEDs von Arduino Board entfernt werden. Das könnt Ihr entweder mit einem spitzen Gegenstand oder dem Lötkolben machen.

Damit ist diese Anleitung fertig. Ich hoffe Ihr konnten der Anleitung gut folgen. Wenn Ihr Vorschläge für Verbesserungen habt oder Ideen für weitere Projekte, dann könnt Ihr wie gewohnt die Kommentar-Funktion nutzen!

164 Kommentare
  1. Avatar
    Christian sagte:

    Hallo zusammen,
    ich habe ein kleines Problem beim flashen (beim zweiten mal).
    Also zu meinem Problem, ich habe den Arduino Mini geflasht (1. Mal) alles gut, jetzt wollte ich den Offset nochmal anpassen und wollte den Arduino das zweite Mal flashen, leider ohne Erfolg ich bekomme immer folgende Meldung von der IDE…

    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x52

    OK dachte ich eventuell der Arduino defekt, also Quertausch und einen neuen Arduino genommen, leider das gleiche, beim ersten Mal funktioniert das flashen aber wenn ich ihn ein zweites Mal flashen will wieder das gleiche Problem.

    Habe ich etwas überlesen oder mache ich grundsätzlich etwas falsch?

    Über einen Tipp wäre ich dankbar.

    Gruß
    Christian

    Antworten
    • Avatar
      Lars sagte:

      Hi,
      bekommst Du noch einen der Demo Sketche auf den Arduino?
      Schreib mal etwas mehr über Deine Hardware/Die Arduino Einstellungen.
      Hast Du den Mini auf 3.3v gestellt?
      Hast Du über einen FTDI Adapter geflasht oder via SPI?

      Antworten
  2. Avatar
    Klaus R. sagte:

    Hallo,
    leider bin auch ich scheinbar vom Problem mit den „verschobenen“ Frequenzen des CC1101 betroffen.
    Hab die Platine zusammengebaut, läuft so weit nur das koppeln klappt nicht.
    Ich bin aber absoluter Laie und komm nicht alleine klar, was muss ich hier tun?
    https://asksinpp.de/Grundlagen/FAQ/Fehlerhafte_CC1101.html#ermittlung-der-cc1101-frequenz
    Vielleicht kann mir jemand eine kurze Schritt für Schritt Anleitung erstellen wie man vorgeht?
    Ist das Vorgehen so korrekt:
    Sketch auf den Arduino flashen und aktiv schalten
    Wie bekomme ich die Adressen aus der CCU3?
    ermittelte Frequenz notieren
    Den Sketch für den BME280 wieder flashen

    Wäre super wenn mir jemand eine kleine Anleitung machen könnte,
    ich fürchte alleine komm ich hier nicht weiter…

    Danke
    Klaus

    Antworten
  3. Avatar
    Manfred sagte:

    Hallo zusammen,
    eine Frage, wie bekomme ich Temperatur und Luftfeuchte in der CCU gertrennt, bzw. wie kann ich sie einzeln bennen? Geht das?

    Grüße
    Manfred

    Antworten
  4. Avatar
    Sascha sagte:

    Hallo Zusammen,

    kann mir evtl. jemand sagen, ob diese Platine auch als Dämmerungs / Sonnen Senor genutzt werden kann?
    Ich würde gerne folgende Sensoren nutzten um meine Rollladen bei Sonneneinfall zu steuern.
    https://www.elv.de/rolladenzeitschaltuhr-mit-astrofunktion-rza200-sensoreinheit-bausatz.html
    HIer die technischen Daten des Sonsors: https://www.broadcom.com/products/optical-sensors/ambient-light-photo-sensors/apds-9007

    Auf der Platine sind A0 – A3 angegeben, kann man diese evtl. dazu nutzen?

    Gruß und Danke
    Sascha

    Antworten
  5. Avatar
    Tom sagte:

    Hallo zusammen,
    erst einmal vielen Dank für die Laienfreundliche Anleitung. Beim Aufbau habe ich etwas gekämpft um den c1101 vernünftig zu platzieren aber das dazu ist an verschiedensten Stellen schon alles gesagt ;)
    Zwei weitere Tipps/Anmerkungen die ich bisher nicht in den Kommentaren gefunden hab, hätte ich noch:

    1. Nehmt nicht die Arduino IDE aus dem Windows Store (Führte bei mir zu einer „Segmentation Fault“ Fehlermeldung).
    2. Bei mir funktionierte die Kopplung zur Zentrale nicht, Abhilfe hat dieser Schritt geschaffen: https://asksinpp.de/Grundlagen/FAQ/Fehlerhafte_CC1101.html#ermittlung-der-cc1101-frequenz

    VG
    Tom

    Antworten
  6. Avatar
    Rainer sagte:

    In der o.a. sehr ausführlichen Beschreibung (viel Dank dafür) ist ein Hinweis auf die Möglichkeit mehrere Sensoren parallel zu betreiben:
    Eigenschaften des Sensors

    Es können mehrere Sensoren parallel angelernt werden.

    Es wäre doch sinnvoll, hier einen Hinweis auf die dann notwendige Änderung der beiden Variablen Device-ID und Device-Serial in die …ino- Datei aufzunehmen.Das würde einiges erleichtern.

    Antworten
  7. Avatar
    Holger sagte:

    Moin & Vielen Dank für diese Anleitung!

    Ich hatte die Teile schon einige Zeit herumliegen und bin nun endlich dazu gekommen den Sensor zu bauen. Nachdem ich die übersehenen beiden Pins A4/A5 und den vergessenen Elko eingelötet hatte lief es wie am Schnürchen… ;-)
    Die Antennenlitze habe ich übrigens mit steiferem Draht ersetzt und nach oben montiert und drei Mal abgewinkelt mit im Gehäuse untergebracht – Mindestreichweite: 25m plus zwei Wände.

    Antworten
  8. Avatar
    muede sagte:

    Hallo zusammen,

    grundsätzlich ein tolles Projekt, das ich gleich in beiden Varianten aufgebaut habe (BME280 und DS18B20).

    BME280:
    Nachdem ich auch den A4/A5 Fehler begangen hatte, war ein Anlernen nach Korrektur schnell möglich. Ohne Entfernen der LEDs auf dem Arduino waren die Batterien dann auch nach 2 Tagen leer. Also LEDs ab und schon dauerte es „nur“ 5 Tage bis wieder alles leer war. Klar, hier besteht noch Optimierungspotenzial, da ich derzeit noch die rote LED mit Vorwiderstand verbaut habe.
    Problematisch ist allerdings, dass sich der Sensor direkt mit Fehlermeldung „low bat“ an der CCU3 (pivCCU) anmeldet und nach mehreren Tagen die pivCCU mit Störmeldungen annähernd aller Sensoren, beginnend mit HmIP) überflutet wird. Sobald ich den Selbstbau wieder lösche, beruhigt sich die CCU und die Original-Sensoren arbeiten wieder ohne Probleme.
    Wer kennt dieses Problem bzw. hat Ideen zur Abstellung.

    DS18B20:
    Schneller Aufbau, zunächst mit drei Sensoren. Anmeldung etc. hat sofort geklappt. Thematik Batterielebensdauer war hier noch schlimmer, denn der Sensor wurde warm und die Batterien waren nach wenigen Stunden tot.
    Wer kennt dieses Problem bzw. hat Ideen zur Abstellung.

    Gruß,
    Detlef

    Antworten
  9. Avatar
    Sören sagte:

    Hallo,
    Vielen Dank erstmal für die sehr hilfreiche Anleitung.
    Ich bin jetzt auch soweit und hab den Sensor zum laufen bekommen. Was mich aber ein bisschen wundert ist folgendes Verhalten. Wenn ich den Sensor bspw. auf die Heizung lege führt das nur zu einem sehr langsamen Temperaturanstieg, ca. 0,2 Grad/sek. Wenn ich dann auf dem ESP den reset Knopf betätige ist der nächste Messwert der ausgegeben wird der korrekte. Bspw. ergibt sich dadurch folgende Messreihe:
    20:00: 22,0 °C
    *Auf Heizung gelegt*
    20:01: 22,2 °C
    20:02: 22,4 °C
    *Reset*
    20:03: 32,0 °C

    Hat jemand eine Idee woran das liegen könnte?

    Antworten
  10. Avatar
    Frank Gast sagte:

    Hallo,
    ist es möglich die die Werte per Homematic-Script auszulesen?
    Ist der Datenpunkt analog zu Homematic also
    var i_term=“JPTH10I004″
    var channel=dom.GetObject(„BidCos-RF.“#i_term#“:1.TEMPERATURE“);
    Danke im voraus.

    Antworten
  11. Avatar
    JoHo sagte:

    Hallo,

    vielen Dank für das Projekt und die Doku!

    Ich habe die Platine aufgebaut und den sketch hochgeladen. leider ist das Anlernen nicht möglich. ansonsten klappt alles (Messwerte sind OK).
    Ich werde die Tipps zur Frequenzanpassung etc. mal durchgehen.

    Allerdings habe ich schon eine Vermutung:
    Als ich den Programmierer an den Arduino das erste Mal angeschlossen hatte, war der Jumper noch auf 5V gesetzt. Kann es sein, dass ich mir damit den CC1101 zerschossen habe?
    ein neuer CC1101 ist schon unterwegs, aber ich würde gerne eure Meinung hören, ob das möglich ist. um ggf. die weitere Fehlersuche direkt einzustellen…

    P.S.: Den Hinweis ergänzen, dass die Pins A4 und A5 versetzt sind (im foto markieren).ggf. macht es auch Sinn, zumindest beim ersten Aufbau den Arduino nicht fest aufzulöten sondern Steckbar. Außerdem evtl. nochmal eindringlicher auf den Jumper am Programmierer eingehen, der Standardmäßig auf 5V steht… :$

    Antworten
    • Avatar
      JoHo sagte:

      Also scheinbar kann der CC1101 5V ab, lebt dann aber kürzer…

      Ich habe nun den Frequenztest durch und es funktioniert!

      Bin total happy! Vielen Dank für das tolle Projekt!!!

      Antworten
  12. Avatar
    Rene sagte:

    Hallo
    Meine CCU2 ist in Fhem eingebunden und somit auch der DIY Sensor.
    Temperatur und Luftfeutigkeit werden auch angezeigt. Nur die Batterie steht mit „false“ drin.
    Ist es möglich den Status der Batterie übhaupt abzufragen oder ist das im script nicht vorgesehen?

    Antworten
  13. Avatar
    Dominik sagte:

    Hallo,

    bei mir hat es geklappt, bis zu dem Punkt wo ich die Software aufgespielt habe. Wenn ich danach den seriellen Monitor starte kommt nur: -> ⸮wn⸮⸮⸮ ⸮#⸮⸮⸮⸮⸮⸮“bu⸮⸮⸮
    Der I2C-Test gibt folgendes aus:
    ->
    -> Scanning…
    -> I2C device found at address 0x76 !
    -> done

    Wenn ich den Anlernknopf drücke fängt die LED an mit blinken, also auch das scheint so weit zu passen. Das einzige, was ich bisher noch nicht adäquat prüfen konnte, ist ob das Funkmodul sauber arbeitet.

    Antworten
  14. Avatar
    Thorsten sagte:

    Hallo,

    ich habe zwei dieses Sensors gebaut. der erste liess sich sauber anlernen, der zweite leider nicht (obwohl die zwei Werte im sketch abgepasst wurden).
    Kann ich irgendwie erkennen, wo das Problem liegt ? Kann man auf der CCU / Rapsberrymatic sehen, was für Signale ankommen ?

    Danke

    Gruss

    Antworten
  15. Avatar
    Michael sagte:

    Hallo,
    ich habe das Problem, dass der BME280 Sensor in der Schaltung nicht erkannt wird. Der I2C-Scanner liefert kein Ergebnis
    (No I2C devices found). Ich habe den Sensor ausgelötet, an einen anderen Atmega328P angeschlossen und ein BME280 Testprogramm installiert. Dort funktioniert der Sensor ohne Probleme.
    Gruß
    Michael

    Antworten
  16. Avatar
    Thorsten sagte:

    Hallo,

    gibt es Planungen, diesen Sensor ggfs zu Erweitern und mit einem BME680 Sensor (statt BME280) auszustatten,
    der dann entsprechend weitere Luftgüte Parameter messen kann ?

    Vielen Dank.

    Gruss Thorsten

    Antworten
  17. Avatar
    Dietmar Eilhard sagte:

    Hallo,
    ich habe gestern den Aufbau des Projektes durchgeführt.
    Programmierung und einbinden in die Homematic hat super funktioniert.
    Ein Problem habe ich trotzdem:
    Im seriell Monitor wie in der Homematic wird mir keine Temperatur und Luftdruck angezeigt. der Wert ist 0.
    Was habe ich falsch gemacht?
    Habe den Sketch HM-WDS40-TH-I-BME280 genommen muss ich noch etwas ändern?
    Besten Dank schon einmal.
    LG Dietmar

    Antworten
    • Avatar
      Lars sagte:

      Eigentlich muss man, wenn man nur einen Sensor davon betreibt, nichts mehr anpassen. Ich würde mal mit einen „normalen“ Arduino Sketch testen ob der BME funktioniert und vorher mal einen i2c Scanner laufen lassen.

      Antworten
          • Avatar
            Dietmar sagte:

            Noch einmal aus dem Monitor:
            AskSin++ V3.1.7 (Feb 14 2019 18:34:08)
            Address Space: 32 – 73
            CC init1
            CC Version: 04
            – ready
            Bat: 33
            Measure…
            T/H = 0/0
            0A 01 80 02 2BCBC5 345681 00 – 1982
            waitAck: 01

          • Avatar
            Dietmar Eilhard sagte:

            Der i2c Scan hat den BME280 erkannt und auch ziemlich genaue Temperaturwerte angezeigt.
            Ich werde es heute Abend wieder testen.

          • Avatar
            Dietmar Eilhard sagte:

            „Dumme Frage“
            Du schreibst „Die i2c Adresse sollte, so glaube ich, die 0x76 sein.“ Muss ich irgendetwas an dem Sketch selber anpassen? Bahnhof!!!!!!

          • Avatar
            Lars sagte:

            Hi,
            ich versuche herauszubekommen ob Dein BME in Ordnung ist oder nicht.
            Es gibt einen Arduino Sketch der scannt den i2c Bus durch und zeigt Dir gefundene Geräte im seriellen Monitor.
            https://playground.arduino.cc/Main/I2cScanner
            Wenn der BME richtig angeschlossen ist und reagiert sollte er mit der Adresse 0x76 angezeigt werden.
            Aber Du hast ja geschrieben das Du schon Temperaturwerte gesehen hast.
            Hab ich das richtig verstanden?

            Beim Homematic Sketch hab ich nur für mich die Seriennummer und die ID angepasst.

          • Avatar
            Dietmar sagte:

            das sind die Werte mit dem Monitor.
            Found BMP280 sensor! No Humidity available.
            Temp: 18.81°C Humidity: 0.00% RH Pressure: 102581.58 Pa
            Temp: 18.82°C Humidity: 0.00% RH Pressure: 102585.90 Pa
            Temp: 18.82°C Humidity: 0.00% RH Pressure: 102585.90 Pa
            Temp: 18.82°C Humidity: 0.00% RH Pressure: 102583.16 Pa
            Temp: 18.83°C Humidity: 0.00% RH Pressure: 102587.47 Pa
            Temp: 18.86°C Humidity: 0.00% RH Pressure: 102588.63 Pa
            Temp: 18.82°C Humidity: 0.00% RH Pressure: 102585.90 Pa
            Temp: 18.83°C Humidity: 0.00% RH Pressure: 102587.47 Pa

          • Avatar
            Lars sagte:

            ..das steht was von BMP280 nicht BME280.
            Bist Du im Homematic Forum?
            Wenn ja sollten wir die Diskussion dort weiterführen.

          • Avatar
            Dietmar Eilhard sagte:

            Hallo Lars,

            ich habe mir jetzt einen BME280 zugelegt und bekomme immer noch keine Werte.
            Found BME280 sensor! Success.
            Temp: 19.37⸮C Humidity: 33.82% RH Pressure: 102013.88 Pa
            Temp: 19.39⸮C Humidity: 33.81% RH Pressure: 102008.36 Pa
            Temp: 19.38⸮C Humidity: 33.81% RH Pressure: 102015.61 Pa
            Temp: 19.38⸮C Humidity: 33.80% RH Pressure: 102015.61 Pa
            Temp: 19.39⸮C Humidity: 33.79% RH Pressure: 102008.36 Pa
            Temp: 19.38⸮C Humidity: 33.78% RH Pressure: 102010.21 Pa
            Temp: 19.37⸮C Humidity: 33.79% RH Pressure: 102011.17 Pa
            Temp: 19.38⸮C Humidity: 33.78% RH Pressure: 102012.91 Pa
            Temp: 19.38⸮C Humidity: 33.78% RH Pressure: 102014.75 Pa

            AskSin++ V3.1.7 (Feb 20 2019 18:24:06)
            Address Space: 32 – 73
            CC init1
            CC Version: 04
            – ready
            Bat: 33
            Measure…
            T/H = 0/0
            0F A5 86 10 695AF5 000000 0A 98 B1 0F 64 00 – 2103
            waitAck: 00
            0A 01 80 02 2BCBC5 345681 00 – 2637
            waitAck: 01
            Langsam verstehe ich gar nichts mehr.
            Kannst du helfen?
            LG

          • Avatar
            Lars sagte:

            Hallo Dietmar,
            gerne versuch ich zu helfen aber wir sollte die Diskussion im Homematic Forum weiterführen.
            Bist Du da angemeldet?
            Vg

          • Avatar
            Dietmar Eilhard sagte:

            Hallo Lars,

            ich habe das Problem jetzt im Homematic-Forum eingetragen.
            Bis hierhin erst einmal Besten Dank!

            LG

  18. Avatar
    Julien sagte:

    Hi, ich möchte 7 sensoren anlernen, habe jetzt gelesen das ich Device ID und Device Serial ändern muss, nur welche Werte trage ich dort ein ?

    Danke und Gruß

    Antworten
      • Avatar
        Julien sagte:

        So einfach ist es dann doch nicht:

        {0x36, 0x58, 0x83}, // Device ID
        „JPTH10I006“, // Device Serial

        Bei Device ID hab ich 3 Zahlen die ich Hochzählen kann, welche sollte es sein, oder alle ?
        Device Serial ist klar.

        Die Ausgabe sieht so aus :

        AskSin++ V3.1.7 (Feb 14 2019 16:15:11)
        Address Space: 32 – 73
        CC init1
        CC Version: 14
        – ready
        Bat: 31
        Measure…
        T/H = 267/34
        <- 0C 01 84 70 365883 000000 01 0B 22 – 3766
        <- 0C 01 84 70 365883 000000 01 0B 22 – 3866
        <- 0C 01 84 70 365883 000000 01 0B 22 – 3966
        <- 0C 01 84 70 365883 000000 01 0B 22 – 4067
        <- 0C 01 84 70 365883 000000 01 0B 22 – 4165
        <- 0C 01 84 70 365883 000000 01 0B 22 – 4265

        Antworten
  19. Avatar
    Daniel sagte:

    Hallo zusammen,

    vielen Dank für die geleistete Arbeit!
    Nachdem ich drei der Sensoren montiert hab, ergeben sich folgende Verbesserungsvorschläge für die Anleitung:
    1. Die Widerstände stehend montieren, das gibt auch die Beschriftung der Platine so her und ist nicht so ein Gewürge.
    2. Die Antenne anzulöten bevor man die kleine auf die große Platine setzt.
    3. Der Screenshot für den Sketch zeigt „HM-PB2-FM“, erst im Text kommt dann der Hinweis auf HM-WDS10-TH-I-BME280/HM-WDS40-TH-I-BME280
    4. Ein Hinweis im Softwareteil dass die Seriennummer bzw. DeviceID hochgezählt werden muss wenn mehr als ein Gerät verwendet wird.
    liebe Grüße
    Daniel

    Antworten
    • Avatar
      Dietmar Eilhard sagte:

      Hallo Daniel,

      Hallo,
      ich bin blutiger Anfänger und versuche mich gerade ein bisschen einzuarbeiten in die ganze Materie.
      Selber habe ich auch schon einen HM-RC-P1 geflasht was auch reibungslos funktioniert hat.
      Bei dem Temp/ Druck Projekt stoße ich z. Z. auf Probleme weil nicht ganz klar ist welches Sketch geladen werden muss. In der Beschreibung steht HM-WDS10-TH-I-BME280/HM-WDS40-TH-I-BME280 aber in den Examples nur HM-WDS10-TH-O. Vielleicht habe ich einfach nur „Tomaten“ auf den Augen.:) Was für ein Sketch muss ich denn laden? Besten Dank im Voraus.
      LG Dietmar Eilhard

      Antworten
      • Avatar
        Lars sagte:

        Der aktuelle „asksinpp“ Library Master Branch war natürlich gemeint.
        Der Sensor/Aktor Sketch muss dann logischerweise auch mit der „Master-Branch“ Library übersetzt werden.

        Lars

        Antworten
  20. Avatar
    Oliver sagte:

    Hallo Sebastian,
    die Anleitung ist super. Respekt für den enormen Aufwand den du betrieben hast.
    Nun habe ich eine Frage:
    wäre es denkbar dieses Modul mit anderen Sensoren auszustatten. Im Hinterkopf habe ich einen Sensor (welche auch immer) evtl. mit Empfänger für einen Briefkasten. Ich möchte nicht die Öffnung des Briefkastens am Schlitz erkennen, sondern erkennen ob wirklich etwas im Kasten ist. Mein Gedanke dazu wäre eben z.B. eine Art Lichtschranke mit Spiegel (Refelktion) die durch die Post (Brief, etc.) unterbrochen wird.
    Ich bin leider nicht genug Elektroniker um dies im Detail zu planen. :-(
    Wäre das denkbar und machbar?
    Gruß
    Oliver

    Antworten
  21. Avatar
    Christian sagte:

    Hallo zusammen,
    ersteinmal Danke für die gute Projektbeschreibung.
    Ich habe das Problem, dass der Sonsor nach rund 3 Tagen die Verbindung zur CCU3 (Raspberymatic) verliert und in störung bleibt.
    Der Sensor hängt hinter einem LAN-GW…
    Kennt jemand dieses Prblem?
    Gruß
    Christian

    Antworten
  22. Avatar
    Bernd sagte:

    Hallo,
    Habe nun noch mal alles mit dem BME280 und dem HM-WDS40-TH-I-BME280.ino Sketch aufgebaut. Im Serialmonitor ist folgendes nach dem Einschalten und dem ersten Anlernversuch zu sehen. Nachfolgend sind noch 3 folgenden Aussendungen zu sehen.

    AskSin++ V3.1.2 (Jan 14 2019 11:53:46)
    Address Space: 32 – 73
    CC init1
    CC Version: 14
    – ready
    Bat: 33
    Measure…
    T/H = 225/37
    <- 0C 01 84 70 345681 000000 00 E1 25 – 1714
    debounce
    pressed
    released
    <- 1A 02 84 00 345681 000000 10 00 3F 4A 50 54 48 31 30 49 30 30 34 70 01 01 00 – 1767

    Measure…
    T/H = 225/37
    <- 0C 03 84 70 345681 000000 00 E1 25 – 21796
    Measure…
    T/H = 226/35
    <- 0C 04 84 70 345681 000000 00 E2 23 – 21839
    Measure…
    T/H = 226/35
    <- 0C 05 84 70 345681 000000 00 E2 23 – 21880

    Das Anlernen an die Homematic will einfach nicht gelingen. Habe es auch schon mit der Eingabe der Seriennummer: 345681 probiert. Vielleicht kann auch die Software auf dem Raspberry mit diesen Modulen noch nicht umgehen. Welche Erfahrungen habt Ihr damit gesammelt? Ich bitte um Hilfe.
    Vielen Dank

    Antworten
    • Avatar
      Hubert sagte:

      Hallo Bernd,
      ich hatte ja ähnliche Probleme wie du beim Anlernen des Sensors. Wie bereits geschrieben, gab es verschiedene Web-Beiträge, die auf fehlerhafte CC1101 hindeuteten.
      Ich habe nun nach längerem Probieren Erfolg gehabt mit folgenden Änderungen im Script:

      Im Bereich
      // define all device properties
      const struct DeviceInfo PROGMEM devinfo = {
      {0x00, 0x56, 0x47}, // Device ID
      „HMTH10I001“, // Device Serial
      {0x00, 0x3D}, // Device Model Indoor
      0x10, // Firmware Version
      as::DeviceType::THSensor, // Device Type
      {0x01, 0x00} // Info Bytes
      };

      habe ich vor allem die Werte vor //Device Model Indor geändert.
      Der ursprüngliche Wert 0x003f kann nicht funktionieren, da dieser Wert mit den RF-Types korespondieren muss und es einen solchen Wert nicht gibt. Richtig wäre vermutlich 0x003F. Die Werte sind case-sensitiv.
      Auf https://asksinpp.de/Grundlagen/ findest du die RF-Types (mein Wert 0x003D ist der passende Außensensor).
      Weiterhin habe ich die Sende-Frequenz des CC1101 etwas nach unten verschoben. Dazu muss man im Script die drei Zeilen, die mit radio.initReg… beginnen, ergänzen (die auskommentierten Werte als Beispiel):

      class Hal : public BaseHal {
      public:
      void init (const HMID& id) {
      BaseHal::init(id);
      // 2165C8==868,3375 MHz 2165E8 == 868.35 MHz 2165E8 == 868.45 MHz
      radio.initReg(CC1101_FREQ2, 0x21);// radio.initReg(CC1101_FREQ2, 0x21); radio.initReg(CC1101_FREQ2, 0x21);
      radio.initReg(CC1101_FREQ1, 0x65);// radio.initReg(CC1101_FREQ1, 0x65); radio.initReg(CC1101_FREQ1, 0x66);
      radio.initReg(CC1101_FREQ0, 0xC8);// radio.initReg(CC1101_FREQ0, 0xE8); radio.initReg(CC1101_FREQ0, 0xE4);

      Die Berechnungsweise findest du unter https://forum.fhem.de/index.php/topic,91740.msg872348.html#msg872348
      Mit dieser Frequenz erreiche ich etwa die gleichen RSSI-Werte wie mit den originalen Sensoren.
      Ich hoffe, dass du, wenn nicht bereits eingetreten, mit diesen Informationen nun Erfolg hast.
      Viele Grüße Hubert

      Antworten
      • Avatar
        Bernd sagte:

        Hallo Hubert,
        danke für deine Infos. Da hast du dich ganz schön tief mit der Materie beschäftigt. Der Frequenzversatz ist bestimmt durch einen fehlerhaften Quarz begründet. Den falschen Wert der Device Model Indoor kann ich mir überhaupt nicht erklären. Das werde ich alles bei mir nachvollziehen sobald ich Zeit habe.
        Inzwischen habe ich die bestellte Leiterplatte und den Bausatz mit einem programmierten Arduino erhalten und aufgebaut. Leider funktioniert der gelieferte Arduino gar nicht. Er läßt sich nicht in den Anlernmodus versetzen und zeigt auch im Serialmonitor recht verworrene Zeilen. Das alles habe ich Sebastian mitgeteilt, aber noch keine Antwort erhalten.Stecke ich allerdings den von mir programmierten Arduino auf die Leiterplatte geht alles fast problemlos. Mit der Device Model Indoor 0x003f und ohne jegliche Frequenzänderung. Mein Arduino funktioniert allerdings mit meinem CC1101 nicht. Da wird vielleicht eine Frequenzänderung notwendig sein. Sebastian hat mir nur geschrieben, dass die CCU und der Sensor zum Anlernen recht dicht zusammenliegen sollten. Wenn ich die Steckverbinder für den CC1101 erhalten habe, läßt sich der CC auch schneller wechseln. Die Fehlersuche gestaltet sich dann doch etwas besser. Ich bleibe dran.
        Viele Grüße Bernd

        Antworten
        • Avatar
          Hubert sagte:

          Hallo Bernd,

          die, wie du schreibst, verworrenen Zeichen im Serialmonitor könnten an einer unterschiedlichen Baudrate zwischen dem programmierten Arduino und der Einstellung im Serialmonitor liegen. Du solltest hier mal verschiedene Einstellungen vornehem und testen. Nach der gemachten Änderung den Serialmonitor am besten schließen und wieder öffnen, die Einstellungen bleiben erhalten.
          Wenn man im Serialmonitor nichts sieht kann man natürlich auch eventuelle Fehler nicht feststellen. Wenn bspw. der CC1101 oder die Sensoren nicht oder nicht richtig erkannt werden, funktioniert auch der Anlernmodus nicht.
          Noch einmal zu den eventuell fehlerhafen CC1101 aus China:
          Ich habe bisher insgesamt sechs Transceiver, jeweils paarweise, bei unterschiedlichen Lieferanten in China bestellt und inzwischen alle erhalten. Alle Transceiver sehen so aus, wie die vermeintlich Fehlerhaften. Drei davon habe ich nunmehr verbaut und konnte mit den erwähnten Änderungen meine Sensoren alle problemlos an der Zenrale anmelden, die bei mir ca. 5 m entfernt ist.
          Als für mich die Problematik mit den fehlerhaften Tranceivern aufkam, hatte ich mich nach Alternativen umgesehen. Dabei bin ich auf denTyp E07-868MS10 der Fa. Ebyte gestoßen, der ebenso mit dem CC1101 von TI arbeitet. Den Transceiver gibt es unter dieser Bezeichnung auch bei aliexpress. Dieser ist mit etwas über 3 € zwar teurer, aber auch hochwertiger verarbeitet, bspw. mit gewickelten Spulen und vergoldeten Anschlüssen.
          Der Transceiver ist bei mir vor zwei Tagen eingetroffen, jedoch konnte ich noch keinen Test machen, da ich erst eine modifizierte Leiterplatte bestellt habe, da die Anschlüsse hier nur 1,27 mm Abstand haben.
          Ich rechne mit dem Eingang der Leiterplatte Mitte Februar. Ich werde dann über den Test mit dem neuen Transceiver hier berichten.
          Viele Grüße Hubert

          Antworten
          • Avatar
            Bernd sagte:

            Hallo Hubert,
            mit verworrenen Zeilen meinte ich dieses hier:

            AskSin++ V2.1.5 (Jan 15 2019 15:09:57)
            Address Space: 32 – 79
            CC init1
            CC Version: 14
            – ready
            Bat: 0
            *LOW BAT Limit: 22
            *Wake-On-Radio: 0
            *Sendeintervall: 30
            Config changed List1
            *HIGHValue (#1): 830
            *LOWValue (#1): 420
            +Sensor (#1) V: 674
            +Humidity (#1) %: 39
            +Battery (#1) V: 0
            <- 0E 01 84 70 F31103 00

            Die Anzeige ist ja eine ganz andere, wie die des Arduino mit der funktionierenden Software. Die Initialisierung des CC1101 scheint zu funktionieren. Nur eben der Anmeldebutton nicht. Ich vermute mal, dass die gekaufte Software gar nicht für den MBE280 ist bzw. die Software nicht für dieses Leiterplattenlayout geschrieben ist. Leider habe ich von Sebastian immer noch keine Antwort diesbezüglich erhalten. Ich hatte die Software extra mitgekauft, um das Softwareproblem auszuschließen und nun das.
            Grüße Bernd

  23. Avatar
    Thomas sagte:

    Hallo Zusammen,

    Ich beabsichtige an meinen Fenster Fensterkontakte zu montieren. Nun könnte ich pro Fenster jeweils einen Homematic Fensterkontakt für gut 30 Euro montieren, oder eben was selber basteln. Nun meine Frage. Wenn ich mehrere Reedkontakte an ein DIY Modul anschliesse, wie würde das Modul dann in der CCU erkannt? Gibt es irgendwo einen Code dafür, damit jeder einzelne Kontakt als ein Fensterkontakt in der CCU erscheint?

    Falls ich hier am flaschen Ort schreibe, sorry & einfach löschen oder verschieben

    Danke und Gruss, Thomas

    Antworten
  24. Avatar
    HMpos sagte:

    Hallo,
    kurz vor Jahresende habe ich nun alle Bauteile zusammen und konnte ein Thermo-/Hygrometer entsprechend der sehr guten Beschreibung aufbauen. Es schein auch alles soweit zu funktionieren, die Ausgabe im Serial Monitor entspricht der im Beitrag angegebenen. Leider lässt sich der Sensor nicht an meinem RaspberryMatic, noch in der Version 2.31.25.20180324 anmelden.
    Im CuUx-Dämon gibt es im Bereich Info fogende Ausgabe, die mir zwar sagt, dass das Pairen nicht möglich ist, aber warum kann ich daraus auch nict schließen::

    Dec 30 12:16:55 homematic-raspi user.debug multimac: Bidcos RX: #02[BC|Ren] 345681->000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:16:55 homematic-raspi user.debug multimac: A000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:16:55 homematic-raspi user.debug rfd: JPTH10I004’s type is HM-WDS40-TH-I
    Dec 30 12:16:56 homematic-raspi user.warn rfd: Peering with JPTH10I004 failed
    Dec 30 12:16:56 homematic-raspi user.debug rfd: Deleting persistent data for device JPTH10I004
    Dec 30 12:17:56 homematic-raspi user.debug multimac: Bidcos RX: #03[BC|Ren] 345681->000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:17:56 homematic-raspi user.debug multimac: A000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:17:56 homematic-raspi user.debug rfd: JPTH10I004’s type is HM-WDS40-TH-I
    Dec 30 12:17:57 homematic-raspi user.warn rfd: Peering with JPTH10I004 failed
    Dec 30 12:17:57 homematic-raspi user.debug rfd: Deleting persistent data for device JPTH10I004
    Dec 30 12:18:51 homematic-raspi user.debug multimac: Bidcos RX: #04[BC|Ren] 345681->000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:18:51 homematic-raspi user.debug multimac: A000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:20:23 homematic-raspi user.debug multimac: Bidcos RX: #06[BC|Ren] 345681->000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:20:23 homematic-raspi user.debug multimac: A000000 Sysinfo SN=JPTH10I004 Type=0x003F/0x3470CH=
    Dec 30 12:20:23 homematic-raspi user.debug rfd: Sysinfo received by OEQ0606784 while not in install mode:JPTH10I004 (HM-WDS40-TH-I)

    Ich hoffe, dass mir hier doch jemand helfen kann.
    Neustart der CCU und Rücksetzen des Sensors habe ich alles schon versucht, jedoch ohne Erfolg.
    Gruß Hubert

    Antworten
    • Avatar
      Bernd sagte:

      Hallo,
      nachdenm ich alles aufgebaut und die Software eingespielt habe musste ich feststellen, dass im Serialmonitor alles super aussah, aber das Modul sich nicht mit der HomeMatic verbinden läßt. Das Modul sollte sich ganz normal verbinden lassen und nicht über CuxD.
      Hubert, hast du inzwischen den Fehler gefunden und funktioniert alles bei dir?
      Und die Frage an alle: Wo könnte mein Fehler liegen?
      Als Sensor benutze ich den DHT22. Und natürlich auch die Software dafür.
      Das zeigt der Serialmonitor:

      AskSin++ V3.1.2 (Jan 13 2019 13:20:48)
      Address Space: 32 – 73
      CC init1
      CC Version: 14
      – ready
      Bat: 33
      Measure…
      DHT22 measurement ok.
      T/H = 229/39
      <- 0C 01 84 70 003F10 000000 00 E5 27 – 3956

      Manchmal funktioniert ja die Anmeldung nur mit der Serialnummer. Aber welche ist das in meinem Fall?

      Antworten
      • Avatar
        Hubert sagte:

        Hallo Bernd,
        ich bin hier auch noch nicht weiter gekommen. Natürlich verbindet sich das Modul mit der CCU. Im CUx-Daemon unter Info kann man aber sehen, was die CCU macht und über das Feld rechts oben kann man die Anzeige auch einschränken auf bspw. die Seriennummer des Homematic-Sensors, dessen Aktivitäten man beobachten möchte. So ist auch die Information in meinem Post zustande gekommen.
        Ich würde das inzwischen so interpretieren, das die CCU beim Pairen zwar etwas vom Sensor empfängt bspw. die Seriennummer des Sensors, den aber nicht erreichen kann.
        Nach meinen Recherchen im Internet habe ich erfahren, dass verschiedene CC1101 aus China wohl nicht die erforderlichen Parameter hinsichtlich der Frequenz einhalten und es so zu diesem Verhalten kommt. Eine Lösung habe ich auch nicht. Ich warte noch auf den Eingang weiterer CC1101 aus China, um dann weiter zu sehen.
        Gruß Hubert

        Antworten
        • Avatar
          Bernd sagte:

          Hallo Hubert,
          vielen Dank für deine schnelle Antwort. Den CC1101 habe ich zwar auch schon gewechselt, aber der neue stammte aus der gleichen Lieferung. So richtig kann ich an eine fehlerhafte Frequenz nicht glauben. Aber ausschließen will ich das auf keinen Fall. Ich werde jetzt einen kompletten Bausatz hier bestellen, um besser nach dem Fehler suchen zu können. Ich gehe mal davon aus, dass der Bausatz sofort funktioniert. Sobald ich neue Erkenntnisse habe melde ich mich wieder.
          Viele Grüße

          Antworten
  25. Avatar
    Tscherno sagte:

    Wäre es denkbar den Sensor gegen einen für höhere Temperaturen mit abgesetztem Fühler zu ersetzen? Ich denke da an den MAX6675

    Antworten
  26. Avatar
    Patrick sagte:

    Welche Aufgabe hat denn der Elko am VIN des CC1101?
    Wenn ich den Trace richtig verfolgt habe, hängt der in Reihe zwischen +3V und dem VIN des CC1101, ist das richtig?

    Schöne Grüße,
    Patrick

    Antworten
  27. Avatar
    Roman sagte:

    Guten Abend zusammen,

    ich habe eine Frage zum Sensor der als HM-WDS40-TH-I in der CCU2 erscheint.
    Mir geht es darum, ich würde die Werte der Luftfeuchte und der Temperatur gerne einer Gruppe der Heizungssteuerung zur Verfügung stellen.
    Wie kann ich diese Vorhaben realisieren? Hat hier jemand bereits Erfahrung gesammelt?
    Kann ich das über eine Skript lösen oder wie kann ich das am besten realisieren?
    In Verwendung ist eine CCU2, der Sensor aus dieser Anleitung und eine Gruppe der Heizungssteuerung bestehend aus Sensor HM-Sec-RHS und Aktor HM-CC-RT-DN
    Habe ich hier eine Möglichkeit?

    Besten Dank und vielen Dank für eure Hilfe.

    Mit freundlichen Grüßen

    Roman

    Antworten
  28. Avatar
    Ansgar sagte:

    Ich habe zwei Thermometerbausätze gekauft und gemäß der hervorragenden Anleitung zusammengebaut und ohne Probleme in Betrieb genommen.
    Leider zeigt sich bei beiden ein ähnliches Problem wie bei Herbert (Beitrag vom 9.8.) Leider ist niemand auf sein Problem eingegangen. Im Ruhezustand, d.h. ohne Temperaturänderung haben beide Thermometer sowie ein weiteres beistehendes digitales Thermometer (zum Vergleich) nur geringe Abweichungen von einander. Ändert sich jedoch die Temperatur, vergrößert sich die Abweichung auf bis zu 2,5°C. Die beiden Selbstbauthermometer reagieren dermaßen träge auf eine Raumtemperaturänderung, dass sie zu Steuerung einer Heizung nicht zu gebrauchen sind. Da der verbaute Sensor sehr präzise sein soll, könnte der Fehler im Sensor liegen oder aber im Programm, z. B. Abfragezyklus >10min.
    Wer hat Erfahrung und kann mir weiterhelfen?

    Viele Grüße,
    Ansgar

    Antworten
  29. Avatar
    Genscher sagte:

    Hallo!

    Das Projekt selbst finde ich toll. Gerade das Frequenzband (HM) und die Lebensdauer finde ich sehr attraktiv. Leider hat Xiaomi Aquara ein ziemlich günstiges Konkurrenzprojekt auf Zigbee Basis. Auf Gearbest zahlt man da pro Luft/Temp Sensor knappe 9€. Da lohnt sich dieses DIY leider nicht.

    Antworten
    • Avatar
      wIWa sagte:

      Ich denke, es lohnt sich trotzdem. Habe gerade einen Xiaomi bekommen und über einen Zigbeestick an IOBroker angmeldet. Man kann die Datenpunkte wohl über CUXD auf Homematic übertragen, eine Integration in die Steuerung der Thermostate klappt nicht. (Bitte korrigiert mich, falls es inzwischen eine praktikable Lösung gibt.)
      Einen guten Rutsch…

      Antworten
  30. Avatar
    Georg sagte:

    Hallo,
    Ich bin am überlegen mir diese Sensoren nachzubauen.
    Doch davor würde mich interessieren ob ich diese auch in Fhem anlernen kann.

    Ich habe mehrere Hommatic Componeten die alle über HMLAN und VCCU in Fhem laufen.

    Antworten
  31. Avatar
    Kai sagte:

    Hallo!
    Mich interessiert auch der Betrieb mit Akkus (2*1.2V). Hat schon jemand Erfahrung damit?
    In dem Zusammenhang vielleicht wichtig: was ist wohl der „BOD“ und wie deaktiviert man den? :)

    Antworten
    • Avatar
      Jens sagte:

      Hallo,
      ein Betrieb über Akkus funktioniert nicht, hab das Problem, das bei beiden Platinen die ich hier von habe, die Batterien trotz entfernten LED´s nach zwei Wochen leer sind, habe darauf hin Akkus getestet.

      MfG Jens

      Antworten
    • Avatar
      René sagte:

      Ich nutze für mein Projekt einen LiFePo4 Akku. Er hat genau 3.3V und schlägt sich derzeit super. Alle anderen Versuche (LiIon, AA,AAA) waren nicht zielführend.

      Antworten
  32. Avatar
    Daniel sagte:

    Hallo
    Ich hab den Bausatz bei dir gekauft. Inclusive Progrmmierung

    In deiner Anleitung steht, dass das Anlernen ohne Batterie und mit Flashadapter erfolgen soll.

    Geht das auch mit Batterie wenn ich keinen Adapter habe?

    Schöne Grüße
    Daniel

    Antworten
  33. Avatar
    Willi sagte:

    Bin leider absoluter Arduino-Newbee. Kann meinem Aufbau keine Messwerte enlocken.Serieller Monitor zeigt folgendes:
    Bat: 43
    Measure…
    T/H = 0/0
    <- 0C 01 84 70 345681 000000 00 00 00 – 1704
    Pairing mit HM hat geklappt.
    Hat evt. jemand einen Tipp. I2C-Scan zeigt 076. Testsketch aus einem anderen Forum bringt Messwerte, allerdings mit der cactus_io_BME280_I2C. Habe keinen Plan, wie die in das Projekt zu implementieren geht.

    Antworten
  34. Avatar
    Alex. M sagte:

    Wie sind nun eure Erfahrungen nach ca. 4 Mon.
    Sie die Sensoren zuverlässig und genau?
    Ich bin leider mit Jeelink und Technoline Sensoren überhaupt nicht zufrieden. Temperatur liegt meist über 1,5*C als bei Quecksilberthermometerern…

    Antworten
    • Avatar
      Christoph sagte:

      Hallo,

      also ich habe momentan 3 im Innen- und einen um Außeneinsatz und bin sehr zufrieden. Habe noch eine normale Wetterstation rumstehen mit der ich hin und wieder mal die Werte der Sensoren vergleiche und kann dort eigentlich nur Abweichung von max 0,2 Grad feststellen.

      Gruß Christoph

      Antworten
  35. Avatar
    Goose sagte:

    Hallo, bevor ich damit anfange die wchtigste Frage: Ist ein Betrieb mit Akkus möglich?
    Bei meinen Original HM Geräten ist das kein Problem, da ich sehr Hochwertige Akkus benutze. 2xAA = (2,6V)
    Allerdings wird da der Sensor wohl nicht mitspielen oder?

    Antworten
  36. Avatar
    Markus sagte:

    Hallo
    ich habe leider nur den BMP280( I2C Adresse 0x76) anstatt des BME280 bei mir liegen. Lässt sich der Arduino Sketch an diesen Sensor anpassen?

    Antworten
  37. Avatar
    Jochen sagte:

    Hallo Jerome,

    Ich habe drei von den Bausätzen am laufen, bei zwei von drei Sensoren weichen die Messwerte leider deutlich ab. Aktuell wird die Abweichung bei mir über die CCU korrigiert und in eine Systemvariable geschrieben. Eleganter wäre meiner Meinung nach allerdings eine Korrektur direkt auf dem Arduino. Gibt es im Code eine Möglichkeit den Temp. bzw. Feuchtewert per Offset zu korrigieren?

    Antworten
    • Avatar
      Jérôme sagte:

      Hi!
      Eleganter wäre meiner Meinung nach, die Sensoren zu überprüfen / auszutauschen.
      Klar kann man im Code einen Offset verrechnen, aber das ist wohl der falsche Weg.
      Immerhin hast du für den Bausatz Geld bezahlt.

      Antworten
      • Avatar
        Jochen sagte:

        Ich hatte schon mit Sebastian geschrieben bezügl. der beiden gelieferten Sensoren mit der hohen Abweichung, er wollte sich melden sobald er wieder welche reinbekommt. Auch nach dem Tausch der „defekten“ Sensoren bleibt sicherlich immer noch eine Streuung/Abweichung von 3-5% mit der man sicherlich leben kann – aber wäre es denn so aufwendig den Code anzupassen? Wahrscheinlich ist das in wenigen Zeilen im Sketch umgesetzt, für mich als Arduino-Laie allerdings momentan schwierig bis nicht lösbar. Vielleicht kann mir hier jemand etwas auf die Sprünge helfen..!?

        Antworten
        • Avatar
          Pech Jérôme sagte:

          Die schnelle quick&dirty Variante wäre in Zeile 106:
          msg.init(msgcnt, bme280.temperature(),bme280.humidity(), device().battery().low());

          Da kannst du noch was draufaddieren oder subtrahieren.

          Beispiel:
          msg.init(msgcnt, bme280.temperature()+25,bme280.humidity(), device().battery().low());
          entspricht „gemessene Temperatur +2,5°C“

          Antworten
          • Avatar
            Jochen sagte:

            Vielen Dank für den Lösungsvorschlag. Konkret möchte ich den Messwert um 10% erhöhen. Vermutlich wird im Sketch *1.1 falsch interpretiert? Was wäre hier richtig *110/100 ?

          • Avatar
            Jérôme sagte:

            Um 10% erhöhen? Also wenns nur 5°C sind, um +0,5°C und wenn es 30°C sind um 3,0°C? Sicher, dass du einen relativen Offset möchtest?
            (Bei den HM-Thermostaten kann man auch nur eine absolute Verschiebung angeben.)
            Aber gut… Also es gehen an sich beide Möglichkeiten. Die zweite ist aber wohl die bessere.
            (bme280.temperature()*110L)/100

          • Avatar
            Jochen sagte:

            ..fragt sich ob das sinnvoll war nur einen absoluten Offset zu implementieren ;) Die hohe Abweichung bezieht sich bei meinen Sensoren auf die Luftfeuchte – und die ist relativ zum Messwert. Bei der Temperatur wäre der Offset tatsächlich absolut. Vielen Dank Jerome für deine Unterstützung!

  38. Avatar
    Michael Bauer sagte:

    Wo besteht der Unterschied zwischen diesem Platinenaufbau und dem HB-UNI-Sensor1?
    Könnte man den Sketch HB-UNI-Sensor1.ino + BM280-Library für dieses Board verwenden?

    Antworten
  39. Avatar
    Werner sagte:

    Hallo Jerome

    ich habe jetzt mal eine Versuchsschaltung aufgebaut mit dem DS18B20. Den hatte ich eh hier . Das Anlernen hat super geklappt und die Temperatur ist lesbar. Wird in der CCU2 angezeigt.

    Allerdings nur das. Ich dachte die Batterieüberwachung geht auch? Im Quelltext habe ich auch was dazu gefunden, es aber noch nicht nachvollzogen.
    Ich habe dieses Sketch genommen und die Pins angepasst.
    HM-WDS40-TH-I-DS18B20

    Gruß
    Werner

    Antworten
    • Avatar
      Jérôme sagte:

      Hallo!
      Ja, die Batterieüberwachung geht selbstverständlich.
      Bei Erreichen der battery.low(22); Schwelle (hier 2.2V) wird in der CCU die Servicemeldung „Batterieladung gering“ angezeigt. Natürlich nur, wenn BOD deaktiviert oder auf 1.8V gesetzt ist, da sonst der 328P bei 2.7V seine Arbeit einstellt.

      Antworten
        • Avatar
          Werner sagte:

          Hallo Jerome

          also das mit der Batterie und Servicemeldung geht. Habs getestet. Schade, wäre halt schön gewesen wenn die Batteriespannung übertragen wird, dann könnte man ich iobroker ein Batteriesymbol mit dem Zustand dazu machen.
          Ist das schwer ein Feature für die CCU2 zu implementieren? Denke mal das HB Addon muss da angepasst werden.

          Gruß
          Werner

          Antworten
      • Avatar
        Werner sagte:

        Hallo Jerome

        also das mit der Batterie und Servicemeldung geht. Habs getestet. Schade, wäre halt schön gewesen wenn die Batteriespannung übertragen wird, dann könnte man ich iobroker ein Batteriesymbol mit dem Zustand dazu machen.
        Ist das schwer ein Feature für die CCU2 zu implementieren? Denke mal das HB Addon muss da angepasst werden.

        Gruß
        Werner

        Antworten
        • Avatar
          Jérôme sagte:

          Es geht ja hier in dem Beitrag um den Nachbau eines HM Geräts, das ohne Addon anzulernen ist.
          Das originale Gerät sieht keine Batteriespannung vor.
          Inwieweit der HB-UNI-Sensor1 (für den dann ein Addon benötigt wird) das schon alles mitbringt, weiß ich nicht. Das Projekt ist auch nicht von mir.
          Für die Entwicklung von Individuallösungen fehlen mir Zeit und Motivation.
          Ob es „schwer“ ist, liegt im Auge des Betrachters.
          Wo ein Wille ist, ist auch ein Weg… Es gibt halt keine Dokumentation von der AskSinPP Lib bzw. der XML Struktur. Ich habe ca. 3 Monate benötigt, um mich da einigermaßen einzuarbeiten.

          Antworten
  40. Avatar
    Michael Bauer sagte:

    Hallo,
    ist es geplant das die Luftdruckmessung des BME280 auch aktiviert wird?
    Geht es, rein theoretisch, überhaupt die Funktion in ein sketch-file mit einzuprogrammieren?
    Grüße
    Michael

    Antworten
    • Avatar
      Jérôme sagte:

      Das geht, wenn du ein Custom Device erstellst – was sich aber definitiv nicht mit 1-2 Sätzen erklären lässt.
      Da hier im Beispiel nur Standard-HM-Geräte emuliert werden, können auch nur die Werte übertragen werden, wie es auch die HM Geräte machen. Und da ist bei den Innen-/Außentemperatursensoren kein Luftdruck vorgesehen.

      Antworten
      • Avatar
        Michael Bauer sagte:

        Die HM-WDS40-TH-I-BME280.ino hat die Datenquelle #include angegeben. Könnte über eine Modifikation des Bme280.h etwas erreichen?

        Antworten
        • Avatar
          Jérôme sagte:

          Nein. Das Problem ist weder der Arduino, noch der BME280 oder der Sketch.
          Die Gegenseite – die CCU – kann den Luftdruck nicht auswerten/anzeigen.

          Antworten
          • Avatar
            Michael Bauer sagte:

            Oh, in diese Richtung habe ich überhaupt nicht gedacht.
            Vermutlich spielt es dann auch keine Rolle ob CCU oder RaspberryMatic als Homematich läuft.

          • Avatar
            Jérôme sagte:

            Nein, die Software, die im „Inneren“ läuft, ist ja immer dieselbe.
            So wie ein HM-WDS40-TH-I immer ein HM-WDS40-TH-I ist.
            Ob du es nun an der CCU2 anlernst oder an RaspberryMatic.

          • Avatar
            Michael Bauer sagte:

            Das Gerät HM-WDC7000 von ELV soll auch den Luftdruck an die CCU weitergeben.
            Einem Forumseintrag soll das so aussehen: HM-WDC7000 NEQ0187263:10.AIR_PRESSURE.

          • Avatar
            Jérôme sagte:

            Ja, das ist auch so. Aber ein HM-WDC7000 ist kein HM-WDS40-TH-I, um den es hier in dem Beitrag geht. Es gibt bereits auch schon einige Möglichkeiten, den Luftdruck zu erfassen. Zum Beispiel mit dem HB-UNI-Sensor1 oder HB-UNI-Sen-WEA. Aber vielleicht schreibt auch jemand mal einen Sketch, um den HM-WDC7000 zu emulieren…

  41. Avatar
    Herbert sagte:

    Habe vor einer Woche den Bausatz erhalten und dank der genauen Anleitung ohne Probleme zum Laufen gebracht. Über die gelieferten Temperaturwerte bin ich jedoch im Zweifel. Ich habe nun den gesamten Sensor zusammen nit einem Vergleichsthermometer im Kühlschrank platziert.
    Ausgangswert: 30°C, nach 1 Stunde: 13°C, nach 2 Stunden: 12,6°C, nach 5 Stunden hat sich der Wert stabilisiert: 12,1°C . Vergleichsthermometer: 7,7°C. Wie ist dieses träge Verhalten zu erklären? Ist mir ein Fehler unterlaufen?
    Gruß Herbert

    Antworten
  42. Avatar
    Stefan Riese sagte:

    Sollten auf den Arduino nicht auch die Fuses angepasst werden um BOD zu deaktivieren?
    Außerdem würde ich empfehlen den Bootloader zu überschreiben, damit man die Firmware auch OTA (over the air) flashen kann.

    Antworten
    • Avatar
      Jérôme sagte:

      BOD deaktivieren: Ja.

      OTA: Geschmacksache… Da i.d.R. der Sketch 1x geflasht wird und sich nicht wieder ändert, würde ich es nicht machen. Wenn man jedoch viele Geräte desselben Typs hat, evtl. schon, weil man denn die Device ID nicht im Sketch fest vergeben muss. Aufwand – Nutzen. Der ungeübte Hobbylöter ist u.U. froh, einfach nur den Sketch auf den Arduino zu bekommen. ;)

      Antworten
      • Avatar
        Stefan Riese sagte:

        BOD sollte erwähnt werden. Mein Sensor wollte am Anfang mit 2,5V Batteriespannung nicht angehen. Das kann einen schon mal zur Verzweiflung bringen als Anfänger.

        Antworten
        • Avatar
          Jérôme sagte:

          Ja und nein… Wer hat (gerade als Anfänger!?) einen ISP zur Hand, und weiß wie man die Fuses setzt?
          Aber grundsätzlich ist Unterspannung mit der default BOD von 2.7V schon ein Problem.

          Antworten
          • Avatar
            Stefan Riese sagte:

            Dann sollte man das im Artikel hinterlegen.

            Die Aussage „Die Laufzeit der Batterie ist, je nach Funkempfang zwischen 1,5 und 3 Jahre ausgelegt“ ist sonst sehr irre führend. Die Batteriespannung wird deutlich eher unter 2,7V fallen und den Sensor lahm legen.

            Besonders wenn man einen Bausatz hier im Shop kauft, sollten die Fuses gesetzt sein, sonst wird der Kunde schon ein wenig getäuscht / enttäuscht sein mit der Laufzeit.

      • Avatar
        Jens sagte:

        Hallo,
        arbeite mich auch gerade erst auf den Gebiet ein, wie kann ich BOD deaktivieren? Währe für eine kurze Anleitung dankbar.

        MfG

        Antworten
  43. Avatar
    Werner sagte:

    Hallo Jerome

    bei github hast du ja viele Beispiele abgelegt
    Beispiel_AskSinPP
    Was bedeuten die Abkürzungen der Sketches bzw gibt es da auch einen Schaltplan?
    Für den DS18B20 gibt es mehrere

    Gruß
    Werner

    Antworten
    • Avatar
      Jérôme sagte:

      Hi!
      Die Bezeichnungen der Geräte, die mit HB-… beginnen findest du, wenn du auf den jeweiligen Ordner klickst. Die Bezeichnungen, die mit HM-… beginnen entsprechen den Bezeichnern, wie sie HomeMatic verwendet.
      Für den DS18B20 gibt es einmal einen generischen Sketch, um bis zu 8 Sensoren/Temperaturen zu erfassen (HB-UNI-Sen-TEMP-DS18B20), den Sketch des Temperaturdifferenzsensors (HM-WDS30-OT2) und den des Temperatursensors (innen) (HM-WDS40-TH-I).

      Der Anschluss des Sensors ergibt eigentlich von selbst aus den defines im Sketch.
      Einen gesonderten Schaltplan gibt es nicht.

      Antworten
  44. Avatar
    Werner sagte:

    Hallo

    Respekt, das sieht ,mal klasse aus. Da werde ich mich mal ranmachen. Ich vermisse nur die Überwachung der batteriespannung für ein LowBatt Message. A/D Wandler hat er ja. Ist das noch vorgesehen?

    Gruß
    Werner

    Antworten
    • Avatar
      Jérôme sagte:

      Hallo Werner!
      Das ist sogar implementiert.
      Mit
      battery.low(22);
      steht der Wert für die LowBat-Mitteilung im Sketch standardmäßig auf 2.2V.

      Antworten
      • Avatar
        Werner sagte:

        Hallo Jerome

        danke für die Info. Werde mir die Tage mal den Quelltext ansehen. Bin da ein kleiner „Profi“ und war einige Jahre Entwickler. Die Anleitung ist echt gut geschrieben für Laien.

        gruß
        Werner

        Antworten
    • Avatar
      Jérôme sagte:

      Meinst du hardwareseitig (z.B. Gehäuse), oder softwareseitig (dass das Gerät als Außensensor in der WebUI dargestellt wird)?

      Antworten
  45. Avatar
    Christoph sagte:

    Hallo Zusammen,

    irgendwas mach ich wohl beim Flashen des Arduino falsch. Der Vorgang läuft wie von dir beschrieben durch und der Sketch wird sauber hochgeladen. Wenn ich allerdings anschließend den Seriellen Monitor starte kommt als Ausgabe nur irgendwelche Buchstabensalat und seltsame Zeichen. Weiß jemand woran das liegt?

    Antworten
    • Avatar
      Jérôme sagte:

      Hallo Christoph.
      Hast du den seriellen Monitor auf „57600 Baud“ eingestellt?
      Wenn dann immer noch Zeichensalat kommt, hast du evtl einen 16MHz Arduino Pro Mini.

      Antworten
      • Avatar
        Christoph sagte:

        Gerade nochmal überprüft, ich hatte die von Ali Express bestellt, die du verlinkt hast. Sollten 8 MHz sein, Monitor steht auch auf 57600 Baud. Noch eine andere Idee? ;-)

        Antworten
        • Avatar
          Jérôme sagte:

          Hast du in der Arduino IDE das richtige Board (Pro Mini) gewählt und den richtigen Prozessor (ATmega328P 3.3V/8MHz) vor dem Flashen eingestellt?

          Antworten
          • Avatar
            Christoph sagte:

            Ah, danke für den Tip. Asche über mein Haupt. Hatte von einem anderen Projekt noch einen Arduino Nano eingestellt. Jetzt gehts!! Danke!

    • Avatar
      micha sagte:

      Hallo zusammen,
      vielen Dank für die Klasse Anleitung. Brauche aber leider doch eure Hilfe. Ich habe den Sensor zusammengelötet, programmiert und in FHEM gepaired. Allerdings war es bei mir so, dass ich bei 57600 Baud im seriellen Monitor unleserlichen Zeichensalat hatte. Einen lesbaren Output habe ich nur mit 115200 Baud bekommen. In FHEM funktioniert die Kommunikation zwar, allerding habe ich eine konstante Temperatur von 0.0 Grad un kein Reading fürdieLuftfeuchtigkeit. Habe alles wie in der Anleitung gemacht und mehrmal geprüft. Der Sketch ist der HM-WDS40-TH-I-BME280. In void setup () steht auch DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);.
      Wieso bekomme ich nur bei 115200 Baud einen lesbaren Output ?.

      Antworten
  46. Avatar
    Frank sagte:

    Hallo Sebastian, wenn ich mehrer Module betreiben möchte muss ich dann an der Software irgendetwas ändern? Seriennummer, Geräte-ID? Und wenn ja wie geht das bzw. was muss ich wo eingeben.
    Danke im Voraus.

    Antworten
    • Avatar
      Jérôme sagte:

      Du musst im Sketch die Device ID und Device Serial ändern.
      {0x34, 0x56, 0x81}, // Device ID
      „JPTH10I004“, // Device Serial
      Beide sind eindeutig und dürfen somit nur einmalig in deinem System vorkommen.
      Die Device ID besteht aus 3 Byte (Hex-Werte) und die Device Serial ist immer 10-stellig alphanumerisch.

      Antworten
  47. Avatar
    Mathias sagte:

    Ich habe nun gefunden, für was ich das Projekt verwenden könnte.
    Schimmer-Media hat ein Sensor vorgestellt auf Basis einer NodeMCU, um den Stromverbrauch zu erfassen. Was mir aber interessanter erscheint, ein Luftgütesensir. Mal schauen ob der sich vom wemos d1 mini auch auf den Arduino migrieren läßt.
    Gruß, Mathias

    Antworten
        • Avatar
          Jérôme sagte:

          Den MQ135 an einen Arduino anzuflanschen ginge absolut problemlos, denn er liefert lediglich einen analogen Wert.
          Die Frage ist eher, was man von einem „Luftgütesensor“ für 24h! sowie im Regelbetrieb von ~20 Sekunden. Für Batteriebetrieb also keinesfalls geeignet… jedes Mal 20 Sekunden vorheizen, vorm Messen und dazu noch die hohe Stromaufnahme.

          Antworten
          • Avatar
            Mathias sagte:

            ok,
            war ein Versuch meinerseits.
            Wäre auch zu schön gewesen :(
            Gruß,
            Mathias

          • Avatar
            Mathias sagte:

            wie steht es dann beim TRTC5000?
            Ich habe da einen Workshop gefunden, um den Strom- und Wasserverbrauch ins Smartphone einzubinden. Ich denke der Autor hat mit einem nodeMCU gearbeitet. Ich müßte mir 5 davon machen.
            Gruß
            Mathias

  48. Avatar
    Christoph sagte:

    Hi,

    kleiner Fehler noch in deinem Beitrag, der Amazon Link zu den Elkos zeigt auf welche mit 400V. Ich hab die bestellt und mich gewundert warum die so riesig sind ;-) Korrekt sind natürlich die 25V welche viel kleiner sind.

    Gruß Christoph

    Antworten
  49. Avatar
    Saibot sagte:

    Kann man den Sensor auch in ein Gewächshaus anbringen, oder verfälscht die direkte Sonneneinstrahlung das Messergebniss?

    Antworten
  50. Avatar
    Holger sagte:

    Sehr interessante Anleitung!
    Gibt es hiermit auch die Möglichkeit und Bauteile, eine Lichtschranke zu realisieren?
    Das fehlt mir nämlich noch und der Durchgangssensor von Homematic ist mir definitiv zu teuer, um damit mehrere Fenster auszustatten!

    Antworten
  51. Avatar
    Mike sagte:

    Hallo,
    danke für den tollen Beitrag. Vielleicht habe ich nur das Problem, aber die Conrad-Links funktionieren nicht. Man kann sich die Adresse aber rauskopieren.

    Antworten
  52. Avatar
    Erik sagte:

    Hallo Sebastian,

    in welchem Bereich wird sich die Grundplatine in eurem Shop preislich ca. bewegen?
    Kannst du da schon eine Info zu geben? Danke!

    Gruß
    Erik

    Antworten
  53. Avatar
    Jürgen Nielsen sagte:

    Hallo, super Anleitung!
    Mir ein kleiner Fehler aufgefallen, der berichtigt werden sollte
    Zitat aus der Anleitung:
    >>> Als letzter Schritt müssen noch die beiden Halter für die AA-Zellen verlötet werden. Die richtige Polung seht Ihr auf der Platine und in den Haltern. Dort ist ebenfalls ein „+“ und „-“ zu finden. Plus ist dort, wo die Feder verbaut ist.
    — Richtig wäre: Minus ist dort, wo die Feder verbaut ist!
    Tolle, sehr verständliche Anleitung!
    Gruß
    Jürgen

    Antworten
  54. Avatar
    Michael sagte:

    Eine grundsätzliche Frage:

    Bei BidCoS® handelt es sich ja um ein propriestäres Ptrotokoll der eQ-3 AG, die zur ELV-Gruppe gehört. Hat eQ-3 seine Genehmigung zur Nutzung des Protokolls für solche Eigenbauten gegeben oder gewegt man sich damit im Graubereich oder sogar illegalen Bereich?

    Wäre die Nutzung eine eQ-3-TRX-Moduls eine Option?

    Antworten
    • Avatar
      Jérôme sagte:

      Sagen wir es mal so:
      Die von dir genannte „geschützte“ Bezeichnung des Funkprotokolls findet sich in der Bibliothek und in den Projekten nirgends wieder.
      Die AskSinPP-Bibliothek lässt einen Arduino in Verbindung mit einem Funkmodul eine „Sprache“ sprechen, die mit der HomeMatic Zentralensoftware kompatibel ist.

      Sie ist auch nur für nicht-kommerzielle Zwecke zu verwenden!
      (Siehe Lizenzbedingungen des Lib-Erstellers; http://creativecommons.org/licenses/by-nc-sa/3.0/de/)
      Die Bezeichnungen für die Geräte (HM-…), die in den examples zu finden sind, sind wiederum nicht markenrechtlich geschützt. Zumindest habe ich beim dpma dazu nichts finden können.

      Somit sehe *ich* für die rein private [fett + unterstrichen] Nutzung keine Bedenken.

      Ja, ein TRX Modul lässt sich wunderbar verwenden.
      Anschlussbelegung findest du hier:
      https://wiki.fhem.de/wiki/HomeMatic_Asksin_Library

      Antworten
      • Avatar
        Michael sagte:

        Es geht nicht um irgendwelche Markennamen oder Begriffe – Sie können nicht einfach ohne Nachfrage & Erlaubnis ein propritäres Protokoll verwenden, das ggf. geschützt ist, nur weil Sie mit nicht-kommerzieller Nutzung argumentieren.

        Antworten
        • Avatar
          Frank sagte:

          Sorry, aber hier sind sie im Irrtum. Selbstverständlich ist das Nachprogrammieren eines Protokolls erlaubt. Wäre es nicht so müssten viele „kompatible“ Geräte sofort aus dem Verkehr gezogen werden. Um nur mal ein Beispiel von vielen zu nennen: Nachfüllbare Druckerpatronen von Fremdherstellern. Für die Protokolle der in den Originalpatronen verwendeten Sicherheitschips wird selbstverständlich von den Herstellern keine Lizenz vergeben. Trotzdem werden diese Chips nachgebaut und das Protokoll nachprogrammiert und bisher hat es kein Hersteller geschafft dagegen vor zu gehen.

          Antworten
          • Avatar
            Guido sagte:

            @ Frank: Korrekt. Sonst würden ja die Weltmaken Objektivhersteller Sigma, Tamron,… alle illegal arbeiten, denn diese haben das Kommunikationsprotokoll zwischen Objektiv und der jeweiligen Kamera analysiert und nachprogrammiert (die Hersteller wie Canon oder Nikon rücken das nämlich auch nicht raus).
            Und die verkaufen ihre Objektive sogar.

    • Sebastian
      Sebastian sagte:

      …Danke für den Hinweis! Habe ich gester auch bemerkt und Alex hat mich auch schon darauf aufmerksam gemacht ;-) Der Artikel wird nachher noch uberarbeitet

      Antworten
      • Avatar
        Jérôme sagte:

        Perfekt.
        Echt Klasse, wie viel Mühe & Arbeit du in die Doku gesteckt hast, so dass auch Laien zum Ziel kommen!

        Es gibt sicher noch viele weitere Projekte, die einer ausführlicheren Anleitung bedürfen. :)

        Antworten
        • Sebastian
          Sebastian sagte:

          Merci ;-) Ist echt ein spannendes Thema und bisher war es nur wenigen Lesern zugänglich, daher freut es mich, wenn ich damit auch andere Leser erreichen kann, die Spaß daran haben. Wir können uns gerne über weitere Projekt unterhalten ;-)

          Antworten
          • Avatar
            Jérôme sagte:

            Es gibt ja schon eine Vielzahl von HomeMatic Geräten (sowohl Sender als auch Aktoren), die sich mithilfe dieser Library sowohl mit/ohne der Uni-Platine von Alex, nutzen lassen.

            Ein Einsteigerartikel wie auf meiner Github Seite https://github.com/jp112sdl/Beispiel_AskSinPP wäre toll.

            Nur halt in hübsch – und detaillierter/verständlicher/ausführlicher. :)

            Wenn du Lust und Laune darauf hast, meld dich.

  55. Avatar
    Mathias sagte:

    Schade……
    warst leider zu früh oder ich zu spät!
    ich habe mir einenen Sensor für’s Bad von Xiaomi gekauft und über IObroker eingebunden.
    Läuft super das Teil und macht was es soll.
    Dazu braucht man den Hygrometer und das Gateway.
    Da ich noch 4 weitere Bewegungsmelder für ca EUR 10,00 je Stück bei Aliexpress geordert habe, macht das ganze wieder Sinn.
    Meine Türklingel habe ich mit einem wireless Switch smart gemacht.
    Ich kenne keinen anderen Hersteller als Xiaomi, der Schaltaktoren OHNE Neutralleiter auf dem Markt gebracht hat. damit will ich das Flurlicht einschalten, sobald jemand bei mir klingelt.
    4 Rauchmelder sind auch schon unterwegs zu mir.
    Das ganze geht leider nur über den Umweg von IObroker.
    Gruß, Mathias
    Mathias

    Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere die Speicherung der Daten.