Doppelnutzung von DS18B20 Temperatursensoren

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Doppelnutzung von DS18B20 Temperatursensoren

      Liebe Bascommer,
      ich möchte meine bivalente Heizung automatisieren. An der (selbst hinzugefügten) Wärmepumpe (WP) wurden dafür vorsorglich 4 Stück DS18B20 Sensoren verbaut und zwar für Vorlauf, Rücklauf, Außentemperatur und Verdampfertemperatur (letzterer um ggf. einer automatischen Enteisung zuvorzukommen).
      Weil die WP selbst keine vernünftigen Sensoren hat und ich schnell die Effizienz des Geräts prüfen wollte, habe ich einen Shelly Uni verbaut, der die vier 18B20 Sensoren ausliest. Das macht er trotz laaanger Leitungen so gut (und "funkt" die Werte dann auch noch schick ins Inet), dass ich diesen Shelly eigentlich nicht mehr missen möchte.
      Womit "füttere" ich nun aber meinen Atmega328, der die Heizungssteuerung erledigen (und einen S0 Zähler auslesen und und und) soll? Die Sensoren sind mit drei Drähten, also "mit normaler Spannungsversorgung" und nicht "parasite power" angeschlossen. Drei Möglichkeiten hatte ich mir überlegt, wie ich die gleichen 4 Sensoren für beide boards verwenden kann:
      a) ich nutze einen Multiplexer für die gemeinsame Sensorleitung DQ. Hierzu muß ich den Datenverkehr auf der DQ-Line "beobachten" und wenn zB 10ms lang "Funkstille" herrscht den Multiplexer umschalten und "nur" die Befehle
      1wreset
      1wwrite &H55 'Befehl "Match ROM" (bestimmten Sensor adressieren/auswählen)
      For I = 1 To 8
      1wwrite Dsid1(i) '64bit bzw. 8byte lange ID-Nummer übermitteln
      Next I
      1wwrite &HBE 'Befehl "Read Scratchpad" (Speicher auslesen)
      Rom1 = 1wread(1)

      nacheinander auf alle vier Sensoren anwenden (auch Dsid2, Dsid3, Dsid4 usw). Wenn ich fertig bin, schalte ich den Multiplexer wieder zurück und der Shelly darf sich "bedienen".

      b) ich "schneide den Datenverkehr mit": der Shelly macht ja schon alles das, was es zum Auslesen braucht. Dafür wäre kein Multiplexer nötig. Ich muss "einfach nur" mitbekommen, welcher Sensor gerade angesprochen wird und seine Antwort dann entsprechend "mitlesen".
      c) Ich habe die Sensoren (die gemeinsame DQ-Leitung) nur am Atmega angteschlossen. Dieser liest die Sensoren aus und ist aber ebenfalls auf einer anderen "soft 1-Wire Leitung" mit dem Shelly verbunden. Wenn der Shelly dann die vermeintlichen Sensoren abfragt, dann muß sich der Atmega exakt so verhalten, als wäre er vier Sensoren und die zuvor gemessenen Daten "brav" weiterreichen.

      a) würde ich mir mit meinen Kenntnissen am ehesten zutrauen. Zig Sensoren parasitär und "normal" auslesen habe ich schon oft gemacht und es klappt recht zufriedenstellend, wenn nicht gerade große Störer in Leitungsnähe sind. Es setzt allerdings voraus, daß die "Lücken" zwischen den Messungen des Shelly auch wirklich lang genug sind. Das weiß ich noch nicht, habe aber ein gutes Gefühl ;)
      b) finde ich am reizvollsten/edelsten. Traue es mir aber nicht zu, da ich zB nicht wüßte, wie ich die Daten aus dem "Verkehr herausziehe", OHNE dass ich selbst den Startschuss für die Datenübertagung gegeben habe. Selbst wenn ich es schaffen sollte, den Befehl "1wwrite &HBE" (der ja sicher auch vom Shelly kommt) zu detektieren, dann hätte ich immer noch Schiss, dass ich entweder das Timing nicht hinbekomme und mir totalen Mist in den Speicher "ziehe" ODER aber (noch wahrscheinlicher), dass sich der Befehl 1wread mit dem entsprechenden Befehl des Shelly, der ja dann zur gleichen Zeit ausgeführt wird, beißt. Und das Ganze "zu Fuß" zu programmieren, d.h. auf die Bascom Befehle zu verzichten und "nachzubauen", kriege ich wahrscheinlich nicht mal ansatzweise hin.
      c) würde sich vmtl umsetzen lassen, finde ich aber am schlechtesten. Einerseits werde ich Probleme haben, die Sensoren "nachzuspielen" und auf die Anfragen des Shelly richtig zu antworten. Andererseits hat der Shelly ganz bestimmt eine gute Prozedur, um unvermeidlich auftretende Fehler "zu parieren". Ich kenne das von meinen eigenen Schaltungen: je länger die Leitung und je mehr Störungen, desto aufwendiger wird der Code, um die Sensoren nochmal und nochmal auszulesen, bestimmte wiederkehrende Bitmuster komplett auszuschließen und andere Plausibilitätschecks zu machen. Alles das müßte ich nun selbst machen, damit der Shelly nicht alle Nase lang mit schlechten Werten versorgt wird und die Tagesdiagramme dann ganz fürcherlich aussehen (jetzt sehen sie super aus!)

      Was meint ihr? welche der Varianten würdet ihr wählen bzw. habt sogar schon einmal so ein Problem gelöst?
      Und ja, man könnte auch den Shelly rausschmeißen und ... aber siehe oben: der funktioniert für das, was er macht, eigentlich sehr gut. Jedenfalls sehe ich keinen richtigen Grund, um zB serielle Daten von einem Atmega an einen ESP8266 zu senden, damit der diese dann ins Netz stellt. Denn dann wären die Daten noch lange nicht in der Cloud und in schönen Diagrammen, die ich mir überall auf dem Handy anschauen kann ...
      Anders herum will ich auch keinen ESP8266 für meine Heizungssteuerung verwenden. Er hätte mindestens zu wenig Pins UUUUND - er läßt sich (noch?) nicht mit Bascom programmieren.

      Kleine Nebenfrage: was haltet ihr von dieser DS3231 Realtime Clock? Brauchbar oder Mist? Wird die Batterie 8 Monate "ohne Vcc" aushalten oder ist die dafür nicht dimensioniert? Es gibt ja auch Module mit 2032 Zellen (Batterien oder Akkus) drauf. Die haben aber meist noch einen EEProm mit drauf, den ich nicht verwenden würde. Trotzdem besser aus eurer Erfahrung heraus? DCF77 Module funktionieren in meinem Keller leider nicht, ansonsten hätte ich viel lieber ein solches verwendet.
    • Wenn dein Shelly die Daten ins Internet schickt, dann hast du doch die Daten.
      Der Atmega 328 muss die dann eben von dort holen.

      Wenn du da mit Multiplexer arbeitest, ist das wohl kabengebunden? Dann kannste dir auch den Selly sparen.

      Ich denke, dir ist noch gar nicht klar, welche Daten du überhaupt brauchst, um die Steuerung zu realisieren, die du da haben möchtest.
      Und willst du jetzt nur die "alte Heizung" steuern und das mit den Daten der Wärmepumpe?

      Was fehlt ist hier ein Konzept.

      Wie lange sind denn die Leitungen zu den DS18B20? Und wie lange dürfen lt. Datenblatt diese Leitungen sein?
      Wäre hier für das Kabelgebundene nicht ein 485Bus besser?
    • laase wrote:

      Kleine Nebenfrage: was haltet ihr von dieser DS3231 Realtime Clock? Brauchbar oder Mist? Wird die Batterie 8 Monate "ohne Vcc" aushalten oder ist die dafür nicht dimensioniert? Es gibt ja auch Module mit 2032 Zellen (Batterien oder Akkus) drauf. Die haben aber meist noch einen EEProm mit drauf, den ich nicht verwenden würde. Trotzdem besser aus eurer Erfahrung heraus? DCF77 Module funktionieren in meinem Keller leider nicht, ansonsten hätte ich viel lieber ein solches verwendet.
      Hallo Laase, Mitch,
      also die DS3231 hab ich schon in vielen Sachen verbaut, die super genau vielleicht ein paar Sek im Jahr.
      Im vergleich zu dem DCF Modulen zieh ich die vor. Wobei ich bei manchen auch den RAM benutze zum
      Protokoll schreiben (256k Ram). Hab aber auch schon eigene direkt auf die Platine gezaubert also ohne Modul.
      Zur Gangreserve, ich hab da 2032 Zellen extern verbaut, ich glaub das eine läuft schon eins seit einigen Jahren
      irgendwo in der Bastelkiste in Gangreserve (könnt ich eigentlich mal raus suchen).
      Was die Entfernung der DS18B20 betrifft, glaube ich mich zu erinnern mal 50m geschafft zu haben.
      Zu erwähnend sei, da waren I²C Verstärker Chips verbaut und das Timing musste 100%tig stimmen.
      Da war ich noch auf der 8051 Schiene.
    • laase wrote:

      was haltet ihr von dieser DS3231 Realtime Clock
      Ich verwende die seit einiger Zeit in meinen Projekten. Die sind hochgenau (naja innerhalb von wenigen Monaten geht die Uhr schon ein paar Sekunden falsch, was aber bei den meisten Anwendungen wiederum egal sein wird). Die sind jedenfalls oft genauer als viele andere RTC-Chips.

      Bei den Modulen mit EEPROM ist zu beachten dass die einmalig "behandelt" werden müssen.
      Da zieht sich schon seit Jahren ein Designfehler durch.
      Diese Module wurden ursprünglich für die Verwendung eines CR2032 Akkus konstruiert.
      Das bedeutet, dass diese Module eine Ladeschaltung (Widerstand und Diode) an Bord hat welche natürlich auch eine normale CR2032 Batterie laden möchte was dann aber dieser Batterie nicht lange gut tun wird.
      Will man eine normale CR2032 verwenden, muss diese Ladeschaltung unwirksam gemacht werden. Dazu bietet sich an die Leiterbahn zwischen Diode und Widerstand aufzubrechen oder einen der genannten Bauteile zu entfernen.
      Hinzu kommt aber, dass diese Ladeschaltung auch für den vorgesehenen Akku ungeeignet ist, da diese den Akku langfristig "röstet". Ist eben CE (China Engineering ;) )

      Weiters zu Beachten ist, dass die Module auch schon mit den entsprechenden Pull-Up, bzw. Pull-Down Widerständen versehen sind, so dass auf diese in der eigenen Schaltung (speziell die für den I²C-Bus) eventuell dann zu viel sind (siehe auch der beigefügte Schaltplan unten).

      Schließlich befindet sich auf dem Modul auch noch eine Power-LED die aber im Batteriebetrieb einer Schaltung auch nur Strom braucht und daher auch entfernt werden kann.

      Zum Stromverbrauch des Chips selbst sei zu sagen, dass es auch Module gibt die nur den DS3231 tragen und als "Batterie" einen Goldcap besitzen. Selbst mit diesem ist ein Langzeitbetrieb möglich. Dies nur als Hinweis wie lange wiederum Knopfzellen halten.
      Ich habe hier übrigens Anwendungen, die schon Jahre alt sind und noch immer die erste Knopfzelle haben.

      Man kann sich da übrigens ein Register auslesen in welchen man erkennen kann, dass die Zeitdaten unplausibel sind und in der Folge dann darauf reagieren.
      Dazu muss dieses Register eben manuell initialisiert werden, verliert aber den Zustand wenn die Batterie nicht mehr funktioniert oder eben einfach nur getauscht wurde.

      DS3231-24C32 Modul-Schaltplan.jpg
    • Stimmt, hab ich ganz vergessen zu erwähnen das die Diode raus muss.
      Allerdings haben die kleinen Module wie in Laase seinen Link die schon nicht mehr.

      Zitronenfalter wrote:


      Man kann sich da übrigens ein Register auslesen in welchen man erkennen kann, dass die Zeitdaten unplausibel sind und in der Folge dann darauf reagieren.
      Dazu muss dieses Register eben manuell initialisiert werden, verliert aber den Zustand wenn die Batterie nicht mehr funktioniert oder eben einfach nur getauscht wurde.
      OHA, das ist mir neu.
      Wie funktioniert das?
    • Ronnie wrote:

      Wie funktioniert das?
      Ich würde das nur als "Trick" bezeichnen.
      Ich setze das Bit 2 im Register h0E und hoffe darauf, dass das dieses zurück kippt, wenn die Batteriespannung soweit absinkt, dass das RAM des Chips seine Einstellungen vergisst :D .
      Probiert habe ich das aber nur mit dem Batterietausch. Da funktioniert das jedenfalls diesen damit eindeutig zu erkennen.
    • Ronnie wrote:

      Das müsste aber dann auch mit denjenigen zwischen h07-h0d funktionieren
      Ich denke schon, zumindest solange man die nicht für die Alarmfunktion benötigt.

      In dem Zusammenhang habe ich übrigens seinerzeit noch was entdeckt. Der Alarmausgang (INT/SQW, Pin 3) wird im Alarmfall nur gesetzt wenn der Chip mit den 5V versorgt wird (nur die Stützbatterie alleine reicht nicht).
      Ich wollte mal eine Schaltung aus Stromspargründen "aufwecken" die nicht stromversorgt ist und erst im Alarmfall was tun sollte, das ging aber leider nicht.
    • wow, ich bin jedes Mal total beeindruckt vom feedback hier! Danke euch allen für Eure Antworten!
      Jetzt im EInzelnen:

      Mitch64 wrote:

      Was fehlt ist hier ein Konzept
      ganz klar nein! Das Konzept lautet: Atmega soll zuverlässig Wärmepumpe und Ölheizung steuern, Shelly Uni soll weiterhin eine Fernkontrolle der Temperaturen (und künftig auch der Aufnahmeleistung) ermöglichen und darf dabei auch mal ausfallen. Macht er nämlich auch gern mal, wie alles, was bei uns über WLAN läuft.

      Mitch64 wrote:

      Wenn dein Shelly die Daten ins Internet schickt, dann hast du doch die Daten.
      Der Atmega 328 muss die dann eben von dort holen .... Wenn du da mit Multiplexer arbeitest, ist das wohl kabengebunden? ... wie lang dürfen lt. Datenblatt diese Leitungen sein? Wäre hier für das Kabelgebundene nicht ein 485Bus besser?
      Die Daten aus dem Internet zu holen wäre mir aber zu sehr "3x um die Ecke"! Die ca. 15m langen Kabel von/zu den digitalen Sensoren (zumindest der Shelly kommt sehr gut mit der Leitungslänge klar; Datenblatt Angaben kenne ich keine; es gibt Berichte, wonach auch 50m lange Leitungen noch funktionieren ... auch @Ronnie schreibts ja so ;) ) gehen am Schaltkasten ein, wo auch der Shelly Uni, der elektron. Zähler, die Fernbedienung der Wärmepumpe usw drin sind. Von daher finde ich es naheliegend, die Sensoren eben nicht nur für den Shelly Uni, sondern auch für den Atmega zu nutzen. Und ja, Multiplexing war halt EINE der Ideen die ich hatte (siehe "Möglichkeiten a, b und c" in meinem ersten Post), um keinen zweiten Satz Sensoren installieren zu müssen.

      Mitch64 wrote:

      ... welche Daten du überhaupt brauchst, um die Steuerung zu realisieren, die du da haben möchtest.
      Und willst du jetzt nur die "alte Heizung" steuern und das mit den Daten der Wärmepumpe"
      doch, das ist mir schon klar! Ich nehme aber nur indirekt Daten der Wärmepumpe, da ich meine eigenen Sensoren (Temperatur und Leistung) verwende und die WP nicht etwa auslese. Ich brauche:
      - WP-Vorlauftemp (brauche ich für Einschaltkontrolle der WP, Vorgaben zum Schalten der Öl-Umwälzpumpe und zum Schalten des Ventils für die Brauchwasser-Nachheizung)
      - Außentemperatur (brauche ich vor allem, um morgens beim Start eine Entscheidung "Öl oder WP" zu treffen)
      - WP-Verdichtertemperatur (ich nenne das für mich "Lamellentemperatur"; brauche ich vor allem um eine bald erfolgende Abtauung zu erkennen)
      - WP-Rücklauftemp (brauche ich eigtl nicht dringend; ist aber informativ für die Auslesung per Shelly)
      - Status der Umwälzpumpe der Ölheizung (ein j/n?)
      - eigene Uhrzeit (deshalb die Frage nach dem RTC Modul)

      An Eingriffspunkten in beiden Heizungen brauche ich:
      - "smart grid Klemme 1" für WP (darüber geht im Wesentlichen WP an/aus; ist 230V mit ganz kleinem Strom)
      - "smart grid Klemme 2" für WP (darüber kann ich die Leistungsaufnahme heraufsetzen, gleich bleiben lassen oder absenken; auch 230V mit kleinem Strom)
      - Klemme, über die ich die Ölheizung blockieren/unterbrechen kann (geht einfach über deren "Sicherheitskreis", wo zB auch der Thermostat, Sicherheits-Temperaturbegrenzer usw in Reihe geschaltet sind. Ist auch 230V und max ca. 200W; mache ich schon seit über 20 Jahren mit einem Optotriac, behalte ich bei)
      - Klemme, über die ich die Ölheizungs-Umwälzpumpe unterdrücken (zwangs-ausschalten) kann (mache ich ebenfalls über Optotriac)

      Ronnie wrote:

      die DS3231 hab ich schon in vielen Sachen verbaut, die super genau vielleicht ein paar Sek im Jahr.
      Im vergleich zu dem DCF Modulen zieh ich die vor. Wobei ich bei manchen auch den RAM benutze zum
      Protokoll schreiben (256k Ram). Hab aber auch schon eigene direkt auf die Platine gezaubert also ohne Modul.
      Zur Gangreserve, ich hab da 2032 Zellen extern verbaut, ich glaub das eine läuft schon eins seit einigen Jahren
      irgendwo in der Bastelkiste
      Danke Dir! Ich habe mir jetzt mal ein Modul mit dem EEProm und eines OHNE den bestellt. Ich versuche mal die Stromaufnahme zu messen und zu vergleichen. Und ja, ich werde wohl auch versuchen, da eine 2032 dran zu kriegen (egal was für eine (kleine) Zelle ggf mitgeliefert wird)

      Ronnie wrote:

      Was die Entfernung der DS18B20 betrifft, glaube ich mich zu erinnern mal 50m geschafft zu haben.
      Zu erwähnend sei, da waren I²C Verstärker Chips verbaut und das Timing musste 100%tig stimmen
      Ja, genau, von "50m" hatte ich auch schon woanders gelesen. Aber gut, solche Angaben sind immer stark von der Art der verwendeten Leitung, von Störquellen entlang der Leitung, von der Spannungsversorgung (5V oder 3,3V) und zuletzt auch noch von der Betriebsart (mit Versorgung oder "parasitär") abhängig. Aber gut, für den Shelly scheints ja gut auch mit nur 3,3V zu funktionieren. Allerdings weiß ich nicht, ob der Shelly schon eine Fehler-Bearbeitungs-Routine implementiert hat. Bei parasitärer Speisung über ca. 3m in einem anderen Projekt mit vielen Störungen brauchte ich so eine Routine und mußte mir hzierzu selbst etwas zusammenschreiben. Zum Glück waren die "Fehlermuster" vorhersehbar und auf ca. 4 oder 5 wiederkehrende "Fehlerwerte" (Bitmuster) beschränkt. Die ließen sich dann leicht anhand einer Plausibilitätskontrolle prüfen und verwerfen.
      Das mit den "I2C Verstärkerchips" verstehe ich nicht ganz; die DS18B20 haben doch "one wire" und I2C wäre stattdessen "two wire" bzw "TWI"?! Hast Du das 1W Signal der DS18B20 mit den TWI Chips verstärkt? Und Bascom bringt ja schon die zum Auslesen nötigen Befehle mit, da wüßte ich gar nicht, wie ich was am Timing ändern könnte ...

      Danke, aber ich gebe zu, in dieser Preisklasse habe ich mich bisher noch nicht bewegt. Ich habe eher solche Module ausprobiert: DCF77 . Aber wenn ich ehrlich bin, dann sind mir 88€ nur für die Zeithaltung zu teuer. Schließlich würde es auch ganz ohne Zeitsignal funktionieren, dann müßte man nur alle paar Monate mal die Zeit korrigieren. Ist letztlich eine Abwägung Komfort vs. Investition

      Zitronenfalter wrote:

      Ich verwende die seit einiger Zeit in meinen Projekten. Die sind
      hochgenau (naja innerhalb von wenigen Monaten geht die Uhr schon ein
      paar Sekunden falsch, was aber bei den meisten Anwendungen wiederum egal
      sein wird). ... muss diese Ladeschaltung
      unwirksam gemacht werden. Dazu bietet sich an die Leiterbahn zwischen
      Diode und Widerstand aufzubrechen oder einen der genannten Bauteile zu
      entfernen. ...
      und als "Batterie" einen Goldcap besitzen. Selbst mit diesem ist ein
      Langzeitbetrieb möglich. Dies nur als Hinweis wie lange wiederum
      Knopfzellen halten.
      Ich habe hier übrigens Anwendungen, die schon Jahre alt sind und noch immer die erste Knopfzelle haben
      Danke für die Erfahrung und den Tipp! Ja, das werde ich machen (leiterbahn auftrennen). Und dann wahrscheinlich eine CR2032 dran. Auf den EEProm werde ich wohl komplett verzichten. Evtl also auch zu dem die Spannungsversorgung auftrennen.

      Zitronenfalter wrote:

      Ich setze das Bit 2 im Register h0E und hoffe darauf, dass das dieses zurück kippt, wenn die Batteriespannung soweit absinkt, dass das RAM des Chips seine Einstellungen vergisst
      Das ist ja cool! Das werde ich dann wohl auch mal versuchen ;)

      So, aber nun nochmal zur Ausgangsfrage, was würdet IHR machen, wenn ihr einen Satz Sensoren DS18B20 verbaut habt und zwei Geräte damit "versorgen" wollt? (siehe Möglichkeiten a, b und c oben im ersten Beitrag, vielleicht gibt es aber noch weitere. Die Option, die @Mitch64 nannte ("aus dem Internet zurückholen") will ich nicht verwenden. Der Aufwand wäre mir deutlich zu hoch. Vorher würde ich eher Multiplexing verwenden. Aber klar, noch weiß ich ja nicht einmal, ob es genügend lange Pausen zwischen den Pollings des Shelly Uni gibt, die ein Umschalten der One-Wire Datenleitung erlauben würden.
    • wow, ich bin jedes Mal total beeindruckt vom feedback hier! Danke euch allen für Eure Antworten!
      Jetzt im EInzelnen:

      Mitch64 wrote:

      Was fehlt ist hier ein Konzept
      ganz klar nein! Das Konzept lautet: Atmega soll zuverlässig Wärmepumpe und Ölheizung steuern, Shelly Uni soll weiterhin eine Fernkontrolle der Temperaturen (und künftig auch der Aufnahmeleistung) ermöglichen und darf dabei auch mal ausfallen. Macht er nämlich auch gern mal, wie alles, was bei uns über WLAN läuft.

      Mitch64 wrote:

      Wenn dein Shelly die Daten ins Internet schickt, dann hast du doch die Daten.
      Der Atmega 328 muss die dann eben von dort holen .... Wenn du da mit Multiplexer arbeitest, ist das wohl kabengebunden? ... wie lang dürfen lt. Datenblatt diese Leitungen sein? Wäre hier für das Kabelgebundene nicht ein 485Bus besser?
      Die Daten aus dem Internet zu holen wäre mir aber zu sehr "3x um die Ecke"! Die ca. 15m langen Kabel von/zu den digitalen Sensoren (zumindest der Shelly kommt sehr gut mit der Leitungslänge klar; Datenblatt Angaben kenne ich keine; es gibt Berichte, wonach auch 50m lange Leitungen noch funktionieren ... auch @Ronnie schreibts ja so ;) ) gehen am Schaltkasten ein, wo auch der Shelly Uni, der elektron. Zähler, die Fernbedienung der Wärmepumpe usw drin sind. Von daher finde ich es naheliegend, die Sensoren eben nicht nur für den Shelly Uni, sondern auch für den Atmega zu nutzen. Und ja, Multiplexing war halt EINE der Ideen die ich hatte (siehe "Möglichkeiten a, b und c" in meinem ersten Post), um keinen zweiten Satz Sensoren installieren zu müssen.

      Mitch64 wrote:

      ... welche Daten du überhaupt brauchst, um die Steuerung zu realisieren, die du da haben möchtest.
      Und willst du jetzt nur die "alte Heizung" steuern und das mit den Daten der Wärmepumpe"
      doch, das ist mir schon klar! Ich nehme aber nur indirekt Daten der Wärmepumpe, da ich meine eigenen Sensoren (Temperatur und Leistung) verwende und die WP nicht etwa auslese. Ich brauche:
      - WP-Vorlauftemp (brauche ich für Einschaltkontrolle der WP, Vorgaben zum Schalten der Öl-Umwälzpumpe und zum Schalten des Ventils für die Brauchwasser-Nachheizung)
      - Außentemperatur (brauche ich vor allem, um morgens beim Start eine Entscheidung "Öl oder WP" zu treffen)
      - WP-Verdichtertemperatur (ich nenne das für mich "Lamellentemperatur"; brauche ich vor allem um eine bald erfolgende Abtauung zu erkennen)
      - WP-Rücklauftemp (brauche ich eigtl nicht dringend; ist aber informativ für die Auslesung per Shelly)
      - Status der Umwälzpumpe der Ölheizung (ein j/n?)
      - eigene Uhrzeit (deshalb die Frage nach dem RTC Modul)

      An Eingriffspunkten in beiden Heizungen brauche ich:
      - "smart grid Klemme 1" für WP (darüber geht im Wesentlichen WP an/aus; ist 230V mit ganz kleinem Strom)
      - "smart grid Klemme 2" für WP (darüber kann ich die Leistungsaufnahme heraufsetzen, gleich bleiben lassen oder absenken; auch 230V mit kleinem Strom)
      - Klemme, über die ich die Ölheizung blockieren/unterbrechen kann (geht einfach über deren "Sicherheitskreis", wo zB auch der Thermostat, Sicherheits-Temperaturbegrenzer usw in Reihe geschaltet sind. Ist auch 230V und max ca. 200W; mache ich schon seit über 20 Jahren mit einem Optotriac, behalte ich bei)
      - Klemme, über die ich die Ölheizungs-Umwälzpumpe unterdrücken (zwangs-ausschalten) kann (mache ich ebenfalls über Optotriac)

      Ronnie wrote:

      die DS3231 hab ich schon in vielen Sachen verbaut, die super genau vielleicht ein paar Sek im Jahr.
      Im vergleich zu dem DCF Modulen zieh ich die vor. Wobei ich bei manchen auch den RAM benutze zum
      Protokoll schreiben (256k Ram). Hab aber auch schon eigene direkt auf die Platine gezaubert also ohne Modul.
      Zur Gangreserve, ich hab da 2032 Zellen extern verbaut, ich glaub das eine läuft schon eins seit einigen Jahren
      irgendwo in der Bastelkiste
      Danke Dir! Ich habe mir jetzt mal ein Modul mit dem EEProm und eines OHNE den bestellt. Ich versuche mal die Stromaufnahme zu messen und zu vergleichen. Und ja, ich werde wohl auch versuchen, da eine 2032 dran zu kriegen (egal was für eine (kleine) Zelle ggf mitgeliefert wird)

      Ronnie wrote:

      Was die Entfernung der DS18B20 betrifft, glaube ich mich zu erinnern mal 50m geschafft zu haben.
      Zu erwähnend sei, da waren I²C Verstärker Chips verbaut und das Timing musste 100%tig stimmen
      Ja, genau, von "50m" hatte ich auch schon woanders gelesen. Aber gut, solche Angaben sind immer stark von der Art der verwendeten Leitung, von Störquellen entlang der Leitung, von der Spannungsversorgung (5V oder 3,3V) und zuletzt auch noch von der Betriebsart (mit Versorgung oder "parasitär") abhängig. Aber gut, für den Shelly scheints ja gut auch mit nur 3,3V zu funktionieren. Allerdings weiß ich nicht, ob der Shelly schon eine Fehler-Bearbeitungs-Routine implementiert hat. Bei parasitärer Speisung über ca. 3m in einem anderen Projekt mit vielen Störungen brauchte ich so eine Routine und mußte mir hzierzu selbst etwas zusammenschreiben. Zum Glück waren die "Fehlermuster" vorhersehbar und auf ca. 4 oder 5 wiederkehrende "Fehlerwerte" (Bitmuster) beschränkt. Die ließen sich dann leicht anhand einer Plausibilitätskontrolle prüfen und verwerfen.
      Das mit den "I2C Verstärkerchips" verstehe ich nicht ganz; die DS18B20 haben doch "one wire" und I2C wäre stattdessen "two wire" bzw "TWI"?! Hast Du das 1W Signal der DS18B20 mit den TWI Chips verstärkt? Und Bascom bringt ja schon die zum Auslesen nötigen Befehle mit, da wüßte ich gar nicht, wie ich was am Timing ändern könnte ...

      Danke, aber ich gebe zu, in dieser Preisklasse habe ich mich bisher noch nicht bewegt. Ich habe eher solche Module ausprobiert: DCF77 . Aber wenn ich ehrlich bin, dann sind mir 88€ nur für die Zeithaltung zu teuer. Schließlich würde es auch ganz ohne Zeitsignal funktionieren, dann müßte man nur alle paar Monate mal die Zeit korrigieren. Ist letztlich eine Abwägung Komfort vs. Investition

      Zitronenfalter wrote:

      Ich verwende die seit einiger Zeit in meinen Projekten. Die sind
      hochgenau (naja innerhalb von wenigen Monaten geht die Uhr schon ein
      paar Sekunden falsch, was aber bei den meisten Anwendungen wiederum egal
      sein wird). ... muss diese Ladeschaltung
      unwirksam gemacht werden. Dazu bietet sich an die Leiterbahn zwischen
      Diode und Widerstand aufzubrechen oder einen der genannten Bauteile zu
      entfernen. ...
      und als "Batterie" einen Goldcap besitzen. Selbst mit diesem ist ein
      Langzeitbetrieb möglich. Dies nur als Hinweis wie lange wiederum
      Knopfzellen halten.
      Ich habe hier übrigens Anwendungen, die schon Jahre alt sind und noch immer die erste Knopfzelle haben
      Danke für die Erfahrung und den Tipp! Ja, das werde ich machen (leiterbahn auftrennen). Und dann wahrscheinlich eine CR2032 dran. Auf den EEProm werde ich wohl komplett verzichten. Evtl also auch zu dem die Spannungsversorgung auftrennen.

      Zitronenfalter wrote:

      Ich setze das Bit 2 im Register h0E und hoffe darauf, dass das dieses zurück kippt, wenn die Batteriespannung soweit absinkt, dass das RAM des Chips seine Einstellungen vergisst
      Das ist ja cool! Das werde ich dann wohl auch mal versuchen ;)

      So, aber nun nochmal zur Ausgangsfrage, was würdet IHR machen, wenn ihr einen Satz Sensoren DS18B20 verbaut habt und zwei Geräte damit "versorgen" wollt? (siehe Möglichkeiten a, b und c oben im ersten Beitrag, vielleicht gibt es aber noch weitere. Die Option, die @Mitch64 nannte ("aus dem Internet zurückholen") will ich nicht verwenden. Der Aufwand wäre mir deutlich zu hoch. Vorher würde ich eher Multiplexing verwenden. Aber klar, noch weiß ich ja nicht einmal, ob es genügend lange Pausen zwischen den Pollings des Shelly Uni gibt, die ein Umschalten der One-Wire Datenleitung erlauben würden.
    • laase wrote:

      Auf den EEProm werde ich wohl komplett verzichten. Evtl also auch zu dem die Spannungsversorgung auftrennen.
      Ich denke, dass das EEPROM für sich sehr wenig Strom brauchen wird.
      Nur dessen Stromversorgung zu trennen ist ja da auch nur die halbe Miete. Es müssten ja auch noch die Pull-Up Widerstände berücksichtigt werden weil die hängen erstmal auch an +UB und könnten dann noch über den Chip gegen GND (wenn auch geringen) Strom ziehen (man glaubt ja gar nicht wo da immer parasitäre Ströme auftreten können).
      Eventuell ist es dann besser ein "Modul" ohne EEPROM zu verwenden. Die haben oft auch keine Power-LED und auch keine Pull-Ups (die müssen dann von der eigentlichen Schaltung kommen.
      All diese Module haben ja eigentlich nur den Sinn möglichst einfach angeschlossen zu werden. Der idealste Weg wäre ja den DS3231 direkt zu verbauen, den gibt aber nur in einem nicht DIL-Gehäuse.
      Dann braucht man nur mehr die Batteriefassung.

      laase wrote:

      uups, sorry, war dann wohl doppelt. Ich erhielt eine Fehlermeldung und probierte es nochmal, sah dann aber erst später, daß mein Post trotz Fehlermeldung durchgegnagen war ...
      Wenn die Fehlermeldung kommt, ist der Post wahrscheinlich dennoch angelegt worden. Daher ist der dann doppelt, wenn er nochmals gesendet wird.
      EDIT: Auch dieser Post wurde mit einer Fehlermeldung quittiert, war aber schon da.
    • @laase

      Zu deiner Ursprünglichen Frage:
      Die hast du dir ja schon selber beantwortet.

      a) ich nutze einen Multiplexer.
      Deine Ansage: a) würde ich mir mit meinen Kenntnissen am ehesten zutrauen.

      b) ich "schneide den Datenverkehr mit
      Deine Ansage: b) finde ich am reizvollsten/edelsten. Traue es mir aber nicht zu

      c) Sensoren an Atmel anschließen und selly fragt Atmel ab (Simulation Sensoren für Sally)
      Deine Ansage: c) würde sich vmtl umsetzen lassen, finde ich aber am schlechtesten.


      Damit solltest du ja wohl ziemlich eindeutig a) nehmen. Dann liest Selly halt, wenn der Atmel übernimmt, Müll ein.
      Sollte das nicht hinhauen, weil z.B. Sally abschmiert oder die Abfrageintervalle zu groß sind, hast du noch die "schlechte" Variante c) als Option.
    • laase wrote:

      So, aber nun nochmal zur Ausgangsfrage, was würdet IHR machen, wenn ihr einen Satz Sensoren DS18B20 verbaut habt und zwei Geräte damit "versorgen" wollt?
      Eindeutig b, vorausgesetzt ein gemeinsamer Gnd macht kein Problem.
      Das Reset läßt sich gut von Rest unterscheiden, die dem Id Code zugehörigen können anhand ihrer Temperatur unterschieden werden (einmalig) und ob da Ausreißer drinn sind erkennt die Crc Prüfung.
      Selbst wenn die Shellys nur die Temperatur einlesen würde ein Sprung auffallen.
    • Ich frage mich, wieso nicht einfach getrennte DS18B20 für Shelly und für Atmega verwendet werden? Wäre sinngemäß die sicherste Lösung.
      Oder per Logikanalyser länger mit schneiden, ob Shelly regelmäßige 1wire-Signale bearbeitet etc.
      Daraus könnte man ableiten ob Lücken zwischen den Intervallen groß genug wären um entsprechende Intervalle vom Atmega nutzbar wären.
      Wenn ja, müsste untersucht werden, ob die Spannungsversorgung für Shelly und Atmega gleichzeitig sein könnten.

      Irgendwie glaube ich mich erinnern zu können das Maxim auch einen Busmanager für die DS18... Teile vermarktet. Da ich sowas nicht benötigte, habe ich mich nicht näher dafür interessiert.
      Wenn es eh Wlan gibt, könnte man die RTC entweder vergessen und die Zeit von einem Zeitserver nutzen, oder die RTC damit in Intervallen syncronisieren. Außerdem dient ein Akku oder Batterie an einer RTC in der Regel für den Fall eines Hauptversorgungsausfalles.

      Gibt es Schaltplan vom Shelly intern? Was könnte denn verhindern, einen Attiny in die Shellyschaltung so zu integrieren dass dieser Tiny von der Stromversorgung des Shellys lebt und per Pin an der DS18B20 Leitung hängt, dort die Signale mit schneidet und die Messwerte über seine UART Schnittstelle dem Atmega übermittelt? Das wäre eine weitere Möglichkeit die bisher noch nicht mal ansatzweise überdacht wurde.

      Desweiteren ist der 1wire Bus doch genauer betrachtet ein Level-orientierter Bus mit einem Pullup Resistor, an dem eine Menge sinngemäßer CMosteile hängen und sich kaum gegenseitig beeinflussen. Es könnte ja mal mit einem Logikanalyser gecheckt werden, ob die 1wire-Leitung vom Shelly per Abgriff eines Atmega-Pin so belastet oder gestört werden könnte, dass die Funktion erschwert wird etc. Klar müsste ein gemeinsamer GND für Shelly und Atmega vorliegen. Messen könnte Erkenntnisse liefern, erbringen.

      Ich habe keinen Shelly uni, sonst hätte ich das eventuell mal messtechnisch angegangen. Bräuchte ich Daten meiner Heizungs-DS18B20 im Lan bzw Wlan, würde ich einen ESP8266 verwenden, der sich per Arduino-IDE programmieren lässt. Dazu würde einer genügen der kaum PINs hat und die Daten vom Atmega1284 per UART per AT-Befehle ins Wlan sendet.

      Übrigens meine DS18B20 Leitungen sind rund 40 m lang, liegen parallel zu 230 V Leitungen teilweise im Kabelkanal und verursachten bisher keinerlei Störungen. Habe am Ende der längsten Leitung einen Kondensator an den Spannungsleitungen angeschlossen, um die Betriebsspannung der DS18B20 zu puffern, sicher zu stellen.

      Andererseits könnte ich überlegen, die Daten meiner Wetterstation separat zu empfangen, auszuwerten und teilweise zu nutzen. Falls da die Uhreit vom internen DCF Empfänger verwendbar wäre, hätte das mithin einen Vorteil.
    • @Zitronenfalter

      In Post#6 und nachfolgend wird das Uhren-IC DS3231 wegen der hohen Ganggenauigkeit gelobt. Habe mal eine Frage zur Grundgenauigkeit dieser Bausteine, welche in diesen Modulen verbaut sind.

      reichelt.de/raspberry-pi-real-….html?&trstct=pos_2&nbc=1

      eckstein-shop.de/DS3231RTCModu…rduino2CMitLIR2032Battrie

      Bislang habe ich 4 solcher mit diesem IC ausgestatteten Module eingebaut. Aber weil deren Uhrzeiten in kurzer Zeit deutlich verspätet angezeigt haben, ergab eine Nachmessung der 32,768kHz bei allen Modulen auch eine entsprechend geringere Frequenz als die Sollfrequenz.

      Gibt es da Qualitätsunterschiede? Ich bin jetzt wieder auf die DS1307-Bausteine zurückgegangen und gleiche diese mit einem Kondenstor parallel zum Quarz ab. (6p8 oder 8p2)
    • Ulrich wrote:

      Aber weil deren Uhrzeiten in kurzer Zeit deutlich verspätet angezeigt haben, ergab eine Nachmessung der 32,768kHz bei allen Modulen auch eine entsprechend geringere Frequenz als die Sollfrequenz.

      Gibt es da Qualitätsunterschiede?
      Wieviel später denn in welcher Zeit?
      Lt. Datenblatt soll die Genauigkeit bei +/- 2 Minuten / Jahr liegen. Bist du da drüber?
      Display Spoiler

      The TCXO provides
      a stable and accurate reference clock, and maintains the
      RTC to within ±2 minutes per year accuracy from -40°C
      to +85°C. The TCXO frequency output is available at the
      32kHz pin.


      Der DS3231 bietet die Möglichkeit, über das interne Register Aging Offset (10h), zum internen Quarz Kapazitäten hinzuzufügen oder wegzuschalten. Damit lässt sich das Quarz und damit die Frequenz ziehen.

      Wird der Sensor Outdoor oder Indoor eingesetzt? Die Quarze haben eine Temperatur-Abhängigkeit, die zwar weitgehend kompensiert wird, aber vielleicht bringt dich das Register 10h weiter.
    • Ulrich wrote:

      Gibt es da Qualitätsunterschiede?
      Das kann ich nicht beurteilen. Da aber alles gefälscht wird (sogar Bauteile im Cent-Bereich) ist das natürlich auch hier nicht unwahrscheinlich.

      Ich selbst beobachte in meinen Projekten keine gravierenden Abweichungen.
      Als Beispiel habe ich eine Alarmanlage die alle rund vier Tage (konstruktionsbedingt sind das vier Tage und drei bis fünf Stunden je nach Umgebungstemperatur ^^ ) per SMS ihren Status meldet und deren Uhr ich schon lange nicht mehr gestellt habe. Und bei der entspricht die Sendezeit der SMS der Anlagenzeit (welche in der SMS mit gesendet wird) auf die Minute.
      In anderen Projekten verwende ich diese Module für eine Uhrzeitansage und auch da läuft die Uhr im Jahr im geringen einstelligen Minutenbereich davon.

      Ganz genaue Zeiten wird man nur dann erreichen können indem zum einem der Offset eingemessen wird und zum anderen die Chiptemperatur auf einen immer gleich hohen Wert gehalten wird.
      Dies, weil Quarze keine Temperaturschwankungen mögen (es ja sogar mal früher™ "Quarzöfen" in denen der Quarz immer konstant auf Temperatur gehalten wurde um eine hohe Ganggenauigkeit zu erreichen.
      Wenn man heute eine genaue Zeit braucht holt man sich diese sowieso (mit entsprechenden Mehraufwand) vom Netz, Mainfingen oder aus dem RDS Signal eines Radiosenders.
    • harald-sattler.de/html/ds3231_-_ungenau-.htm


      Das was in diesem Bericht ermittelt wurde, (siehe auch Nachträge in diesem Bericht) habe ich bei meinen RTC-Modulen ebenfalls gemessen, eine Abweichung von ca. 50 bis 100Hz unterhalb von 32,768 kHz.

      Dort wird berichtet, das bei "preiswerten" Chips kein Doppelregister vorhanden sei. Ein solches Doppelregister soll bei häufigen Zugriffen eine Kollision mit dem internen Zeitupdate verhindern.

      Offenbar habe ich solche Chips erwischt.

      Gruß
      Ulrich