NEWS

Sonoff DS18B20 ID's mit Tempwerten verknüpfen


  • Starter

    Hallo Zusammen,

    gibt es ein Möglichkeit das man die Werte der ID's von DS18B20 Sensoren mit den Werten der Temperatur verknüpft?

    Ich habe das Problem das ich in einem Flot Diagramm die Temperaturwerte von DS18B20 Sensoren anzeigen lasse und ich dort auf das Objekt DS18B20-1 Temperature schaue, jetzt ist in der Nacht ein Sensor ausgefallen bzw es sind 2 sporadisch für eine halbe Stunde ausgefallen dabei hat es die Reihenfolge der Sensoren verändert d.h. z.B. Pufferfühler oben war mit unten vertauscht etc.

    Also Lösung für das Problem habe ich überlegt ob es vielleicht ein Script gibt das die ID's der Sensoren ausliest und dann entsprechenden Temperaturen in neue Datenpunkte schreibt und man nicht mehr von der Reihenfolge der ID's abhängig ist.

    Ich hoffe man versteht was ich machen will, leider stehe ich total auf dem Schlauch wie ich das Realisieren kann, habe schon etwas rumprobiert mit Variablen ist aber nicht unbedingt meine Welt.
    Ein weiterer Punkt ist wie kann ich auswerten das ein Sensor kaputt ist? (Bei mir zeigt es dann 85.0 Grad an, allerdings ist das auch ein möglicher Vorkommender Temperaturwert der Heizung bzw Puffer zugegeben selten aber kann vorkommen.)
    Zweiter weiterer Punkt was passiert wenn ein Sensor fehlt warum auch immer, dann darf das Script keinen Fehler werfen.

    Danke schonmal im Vorraus.

    Freundliche Grüße
    Monsterkiller


  • Forum Testing Most Active

    Hi,
    eine Möglichkeit wäre die Software (Sonoff = Tasmota?) zu wechseln und bspw. auf 1-wire zu switchen. Jeder DS-Sensor hat eine Unique-Number und lässt sich damit eindeutig identifizieren (wenn sie denn genutzt wird...), denn ID 123xxxxxxx entspricht dann immer genau nur dem Sensor xyz und keinem anderen.
    Damit wäre auch normalerweise die Detektion eines defekten Sensors möglich. Der meldet sich dann idR. nicht mehr wenn man ihn über seine Adresse anspricht. Oder man müsste die letzten x-Werte (ev. genügt sogar nur der Vorherwert) vergleichen. Sind die alle gleich 85°C = Sensor defekt.


  • Starter

    Hi,

    ah Entschuldige ich hab ganz vergessen zu schreiben ich habe die Sensoren an einem Sonoff Basic mit Tasmota angebunden und über den Sonoff Adapter werden automatisch die Datenpunkte erzeugt.

    Mein Problem ist das die Werte der ID's zwar gleich bleiben aber die Reihenfolge in den Datenpunkten sich ändert im Fehlerfall.

    Zum Beispiel ist heute ID 1234 auf sonoff.0.XXX.DS18B20-1_Id und morgen ist ID 1234 auf sonoff.0.XXX.DS18B20-2_Id. Das verschiebt dann meine Visu weil ich mich auf sonoff.0.XX.DS18B20-1_Id beziehe und nicht auf ID 1234 weil ich nicht weiß wie ichs dynamisch Auswerte.

    Grüße
    Monsterkiller


  • Forum Testing Most Active

    Das kann Tasmota auch so nicht leisten, denn es verfügt über keine Konfiguration der Sensoren (dynamisch eben). Bei 1-wire (entweder als File-System oder per Adapter etc.) musst du die IDs fest eingeben und zuordnen. Dann ist es egal ob und wie einer mal aussetzt. ID xyz ist dann eben immer bspw. TPU
    Schaltet der Basic auch etwas oder fungiert der eher nur als "WLAN-Thermometer"? Sonst wäre ev. ein Pi Zero die bessere Wahl. Auf dem könnte man dann ein 1-wire File-System laufen lassen, notfalls mittels Relais-Karte auch Dinge schalten etc.


  • Starter

    Hi,

    ich habe es jetzt endlich hinbekommen.
    Ich trage die ID von einem Sensor manuell in einen Datenpunkt ein und vergleiche den dann fortlaufend mit allen ID's die der Sonoff Adapter zurückmeldet. Falls der Wert gleich ist, nimm den entsprechenden Tempwert und schreibe den an einen weiteren Datenpunkt.

    Vielleicht etwas holprig aber es funktioniert 😬

    Grüße
    Monsterkiller

    var j, zaehler_var, temp_var;
    
    for (j = 1; j <= 5; j++) {
      zaehler_var = ['sonoff.0.DVES_5A8310.DS18B20-',('' + j),'_Id'].join('');
      temp_var = ['sonoff.0.DVES_5A8310.DS18B20-',('' + j),'_Temperature'].join('');
      if (getState(zaehler_var).val == getState("ID auswählen").val) {
        setState("Object ID", getState(temp_var).val);
      }
    }
    
    
    

    sonoff_loesung.PNG



Suggested Topics

1.9k
Online

32.4k
Users

39.0k
Topics

528.1k
Posts