Ankündigung

Einklappen
Keine Ankündigung bisher.

OneWire zu KNX, wie die Daten übertragen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    OneWire zu KNX, wie die Daten übertragen?

    Die nächste Version von Multi Interface kommt mit einem dediziertem OneWire-Busmaster. Das erlaubt Anschluss von mehreren OneWire Sensoren/Devices an KNX.

    Nur stellt sich die Frage wie man die Daten von OneWire benutzerfreundlich über KNX überträgt.

    Um alle abzuholen:
    Jedes OneWire Devices hat eine Weltweit eindeutige 64-Bit ID. Die ersten 16 bits sind die Familie, z.B. 01 ist iButton, 28 ist DS18B20 Temperatursensor.
    Mit Hilfe dieser ID werden die Sensoren auf dem OneWire BUS angesprochen um z.B. die Temperaturen auszulesen.
    Man kann auch einfach sagen: "gib mir alle Daten".
    Im Fall von einem einzigen Temperatursensor auf der Linie ist alles einfach: ein Wert gehört einem Temperatur Sensor.
    Jetzt nehmen wir mal an wir haben in drei Zimmern je ein Sensor verteilt und über ein OneWire Bus angeschlossen.
    D.h. "gib mir alle Daten" Abfrage liefert 3 Temperaturwerte, aber wir wissen nicht welcher Wert aus welchem Zimmer.
    In diesem Fall muss man jeden Sensor mittels ID ansprechen und von dem die Temperatur abfragen um die Daten eindeutig einorden zu können.

    Die Preisfrage: wie ermittele ich bequem die Sensor ID?

    An der Stelle brauche ich eure Hilfe/Ideen.
    Bei dem iButton Sketch, hat man folgende Möglichkeiten:
    1. Man liest die ID von dem iButton-Gehäuse ab (geht bei den meisten OneWire Sensoren nicht)
    2. Man schaltet Debug-Ausgaben ein und in der Seriellen Konsole sieht man dann die IDs
    3. Man lässt "unbekennte ID" an den KNX Bus über eine Spezielle GA schicken und liest die ID über ETS Monitor aus.
    Möglichkeiten 2. und 3. gehen nur, wenn man die Sensoren nach einander anschließt. Bei mehreren sieht man wieder mehrere IDs die man nicht eindeutig zuorden kann.

    Die nächste Preisfrage: ordne ich die IDs den KNX GAs an?
    1. aus den o.g. Möglichkeit die IDs manuell in die Suite copy&pasten (pro GA eine ID eintragen)
    2. einen String zusammenbauen und senden, z.B. "28 00 11 22 33 44 55 66 24 31", wobei 24,31° Temperatur ist und die ersten 8 Bytes die ID. Diesen String dann über Edomi, OpenHAB oder ähnliche System auswerten. Aber dann sind die Daten ohne Server praktisch nicht nutzbar.
    3. Lernfunktion: Man klikt eine Taste auf dem Multi Interface, schließt den Sensor an und es wird die ID ausgelesen und der ersten freien GA zugeordnet. Nur wie lösche ich die vorhande Sensoren (z.B. im Falle von einem Defekt) und woher weiß ich welcher GA dieser Sensor gerade zugeordnet wurde?
    Habt ihr weitere Ideen? Wie macht es Wiregate?

    #2
    Optionen die ich aktuell sehe:

    1) Sensoren kaufen wo die IDs mit einem Sticker oder dergleichen schon drauf stehen
    2) Einen Sensor nach dem anderen anschließen und gleich benennen/zuordnen
    3) Alle auf einmal anschließen und dann durch "manuelle erwärmung" eines einzelnen den passenden finden und zuordnen
    4) Ein kleines extratool mit Display basteln, mit dem man die ID auslesen kann bevor man den Sensor anschließt. Ist dann quasi der DIY-Weg zu 1)

    Bzgl. der GA-Zuordnung:

    Ich würde Nr. 1 nehmen, gepaart mit einer "Such-GA" die man "lesen/triggern" kann und wo pro Sensor eine Antwort kommt die die ID enthält. Entweder dann über ein extra SW-Tool diese Such-GA ansteuern und das Ergebnis aufbereiten, ODER wir schaffen eine Art "AddOn"-System für die Suite wo man ein solches Tool einbauen kann. Aber das wäre dann doch wieder etwas viel Aufwand. Und von solchen Geräte-Spezifischen AddOns bin ich persönlich kein Freund von (vermeide auch offizielle Geräte die sowas brauchen....)

    Kommentar


      #3
      Ich hätte noch einen Vorschlag das ganze Konfigurierbar zu machen.
      Also z.B. man kann 20 Sensoren maximal anschließen.

      Dann gibt es für jeden Sensor eine KO für die Addresse, für den Wert und für den Parameter (also z.B. temperatur12 oder Vdd).
      Über die KO für die Addresse kann man entweder eine Addresse für SensorX angeben oder eben die aktuelle auslesen.
      Beim schreiben darauf sollte die Addresse dann natürlich gespeichert werden.

      Zusätzlich noch ein KO für "unbekannte" Sensoren.

      Damit sollte man doch recht einfach dann auch den OneWire konfigureren können.
      Gruß
      Michael

      Kommentar


        #4
        Ich würde die Sensor-IDs manuell ermitteln (also z.b. via DEBUG Ausgabe oder weil ich die IDs kenne) und dann via Möglichkeit 1 in der Suite manuell zuordnen. Die IDs wechseln im Regelfall ja nicht so wahnsinnig häufig - insofern sollte das ok sein.

        Kommentar

        Lädt...
        X