Gibt es zusätzlich zu MQTT-SN ein gemeinsames Nachrichtenprotokoll für Sensordaten?

Ich möchte verschiedene Sensordaten in einem Netzwerk von Sensoren kommunizieren.

Ich habe MQTT und MQTT-SN als geeignete Protokolle dafür gefunden. Letzteres ist besser geeignet für Sensornetzwerke mit Unterstützung für schlafende Geräte, vordefinierte Kommunikation, Alternativen zu TCP usw. ( https://stackoverflow.com/a/29083422 )

Beide sind jedoch Nutzlast-agnostisch. Die gesendete Nachricht kann von beliebigem Format und Inhalt sein. Gibt es ein gemeinsames Format speziell für Sensordaten mit kleinem Footprint?

Ich möchte einen Messwert einer bestimmten Einheit und Dimensionalität übermitteln. Vielleicht mit einer bestimmten Toleranz/erwartetem Fehler. Ich könnte mir ein benutzerdefiniertes Format ausdenken und es einfach in die Payload schieben, aber ich möchte das Rad nicht neu erfinden und lieber vorhandene Formate verwenden, falls vorhanden. Das würde auch die Kompatibilität zu anderen Netzwerken sicherstellen, die dieses Format verwenden.

ich fand

  • ein experimenteller Vorschlag für eine Erweiterung von XMPPUnit , die Dinge wie oder unterstützt Timestamp. Der Overhead des XML-basierten Formats macht es jedoch für meine Anwendung unerwünscht.

    <message from='device@example.org'
             to='client@example.org/amr'>
       <fields xmlns='urn:xmpp:iot:sensordata' seqnr='1' done='true'>
          <node nodeId='Device01'>
             <timestamp value='2013-03-07T16:24:30'>
                <numeric name='Temperature' momentary='true' automaticReadout='true' value='23.4' unit='°C'/> 
             </timestamp>
          </node>
       </fields>
    </message>
    
  • Home Assistant , der ein Format angibt, das auch unit_of_measurementund hat value_template. Aber hier geht es mehr darum, Daten aus beliebigen MQTT-Nachrichten in ein Format der Plattform zu extrahieren, anstatt ein Format für die MQTT-Nachricht selbst anzugeben. Tatsächlich schreiben Leute Erweiterungen, um JSON in der MQTT-Nachricht zu verwenden

Gibt es einfach kein standardisiertes (oder zumindest gemeinsames) leichtes Nachrichtenformat für Sensordaten?

Antworten (1)

Medientypen für Sensor Markup Language (SENML) könnten für Sie interessant sein.

Kapitel 6.1.1. gibt dir ein beispiel:

{"e":[{ "n": "urn:dev:ow:10e2073a01080063", "v":23.5 }]}

Sieht so aus, als wäre dies die neueste Version. Ich war zuerst abgeschreckt, als ich das JSON-Format sah, aber es gibt auch EXI, das ziemlich kompakt aussieht und sich für Embedded eignet. Es sieht so aus, als ob es dafür nur wenige Bibliotheken gibt.