MQTT entegrasyonu

Herhangi bir aracı. MQTT konuşan her platform.

Car 2 Home tam donanımlı bir MQTT istemcisidir. Aracınızın sunduğu her sensör, standart OBD ve genişletilmiş PID'lerden hesaplanan değerlere, GPS'e, TPMS'e ve teşhis durumuna kadar, sizin aracınıza yayınlanır. Yayın biçimini siz seçersiniz: Home Assistant otomatik keşfi (varsayılan), Homie 4.0, sensör başına basit konular, birleşik JSON ya da hazır bir ThingsBoard profili.

Zaten Mosquitto, EMQX, HiveMQ ya da başka bir aracı çalıştırıyorsanız, çalışan bir kuruluma birkaç alan kaldı. Car 2 Home bunun için sunucularımıza hiç ihtiyaç duymaz: telemetri doğrudan uygulamadan sizin aracınıza gider.


MQTT ile yerel Home Assistant entegrasyonu karşılaştırması

İki yol da aynı sensörleri taşır. Fark şu: MQTT sürekli durumu taşır, yerel Home Assistant entegrasyonu ise ayrıca olayları da taşır (yolculuk başladı, arıza kodu bulundu, sert hızlanma). Yalnızca MQTT'ye ihtiyacınız varsa tüm canlı verileri alırsınız, ama en ilginç otomasyonları çalıştıran ayrık anlar sadece yerel entegrasyonda vardır.

YetenekMQTTYerel HA
Sürekli durum
Sensör değerleri değiştikçe yayınlanır.
Olaylar
trip_started, trip_ended, dtc_found, harsh_event, ecu_online/offline.
Çift yönlü komutlar
Home Assistant araçtan arıza kodu taraması yapmasını ya da sensörleri yeniden duyurmasını isteyebilir.

Veriler nasıl yayınlanır

  • Otomatik keşif iletileri retain=true ile gönderilir; böylece sonradan bağlanan bir abone varlık kataloğunu hemen görür.
  • Yalnızca değişimler: değerler ancak değiştiklerinde yeniden yayınlanır, istenirse seyreltilerek, böylece aracı boğulmaz.
  • Sıralı PID'ler çözümlenir: yakıt türü "1" değeri "Benzin" olur, istenen eşdeğerlik oranı kesir olarak bildirilir ve benzeri. Hem ham hem okunabilir değer öznitelik olarak sunulur.
  • Material Design simgeleri keşif iletilerine dahildir, böylece paneller kutudan çıktığı gibi doğru görünür.
  • Konu sınıfı başına ayarlanabilir QoS. Sensör durumu varsayılan olarak QoS 0'dır; yaşam döngüsü iletileri QoS 1 kullanır.
  • TLS ve kimlik doğrulama desteklenir; kimlik bilgileri iOS Keychain ya da Android Keystore içinde saklanır.

Şunlarla çalışır

MQTT konuşan her şeyle, doğru yayın biçimiyle eşleştirildiğinde (yukarıya bakın). Düzenli olarak şunlarla test ediyoruz:

  • Home Assistant, MQTT entegrasyonu ve Home Assistant Discovery biçimiyle (otomatik algılanır).
  • OpenHAB ve ioBroker, Homie 4.0 biçimiyle (MQTT Homie binding, MQTT Client adaptörü).
  • Hubitat, Node-RED, Domoticz, basit konular biçimiyle.
  • Grafana ile Telegraf veya InfluxDB ve özel paneller, birleşik JSON biçimiyle.
  • ThingsBoard CE ve Cloud, ThingsBoard profiliyle; ESPHome köprüleri ve kendi yaptığınız her MQTT tüketicisi, basit konular ya da birleşik JSON ile.

Yayın biçimleri

Hedef platformunuza uyan biçimi seçin. Varsayılan Home Assistant Discovery, HA'yı olduğu gibi karşılar; OpenHAB, Hubitat, genel paneller ya da ThingsBoard için diğerlerinden birine geçin.

Home Assistant Discovery

Varsayılan. Keşif iletileri homeassistant/<component>/<deviceId>/<sensor>/config altına gider. Araç, HA'da Ayarlar → Cihazlar ve Servisler → MQTT bölümünde kendiliğinden belirir. Sürekli durum, <prefix>/<deviceId>/state üzerine JSON paketi olarak yayınlanır.

Homie 4.0

homie/<deviceId>/$nodes topolojisi ve özellik başına $datatype, $unit, $format meta verisiyle keşif sağlayan açık standart. OpenHAB (MQTT Homie binding) ve ioBroker (MQTT Client adaptörü) için doğal hedef. ESPHome ekosistemlerine de uyar.

Basit konular

Sensör başına tek MQTT konusu, keşif yok. Yük, ham değer (örneğin 1850) ile {value, ts} JSON arasında değiştirilebilir. Hubitat, Node-RED, Domoticz ve herhangi bir genel MQTT tüketicisiyle çalışır.

Birleşik JSON

Tüm sensörler tek bir JSON yükünde, ayarlanabilir bir konuya, geç abone olanlar için saklanarak gönderilir. Grafana, InfluxDB ve Telegraf ile tek konuya abone olup aracın tüm anlık görüntüsünü bir kerede ayrıştırmayı yeğleyen özel paneller için uygundur.

ThingsBoard

ThingsBoard CE ve ThingsBoard Cloud için hazır profil. Telemetriyi v1/devices/me/telemetry adresine, sabit sensörleri (VIN, yakıt türü, CalID) v1/devices/me/attributes adresine yayınlar. Erişim belirtecinizi Kullanıcı adı alanına yazın, Parola alanını boş bırakın.

Biçimi istediğiniz an Ayarlar → MQTT → Biçim bölümünden değiştirebilirsiniz. Home Assistant ya da Homie'den ayrıldığınızda uygulama, aracıda kalan saklanmış keşif konularını temizlemeyi önerir; böylece tüketici tarafında hayalet cihazlar görmezsiniz.


Aracı seçmek

Henüz çalıştırdığınız bir aracı yoksa, başlangıç noktası şurası:

  • Mosquitto: en basit seçenek. Home Assistant eklentisi olarak tek tıkla ya da Docker'da tek başına çalışır. Bir ev için fazlasıyla yeter.
  • EMQX: kümelenebilir, iyi ölçeklenir, derli toplu bir web arayüzü var. Çok cihazınız varsa ya da ayrıntılı izleme istiyorsanız değer.
  • HiveMQ: kendi sunucunuzu işletmek istemiyorsanız sağlam bir ticari ya da bulut seçeneği.

Hızlı kurulum

  1. 1. Telefonunuzdan erişilebilen bir aracı bulundurun

    Ya yerel ağınızda ya da bir tünel üzerinden (Tailscale, Cloudflare Tunnel, Nabu Casa). Telemetrinin canlı akması için MQTT'ye siz araç kullanırken de erişilebilmeli.

  2. 2. Uygulamada Ayarlar → MQTT bölümünü açın

    Sunucu adresini, portu, kullanıcı adını, parolayı ve gerekiyorsa TLS ayarlarını girin. Uygulama bağlantıyı doğrular ve durumu anında gösterir.

  3. 3. Abone olun ve varlıkların gelişini izleyin

    Keşif iletileri hemen yayınlanır. Home Assistant'ta cihaz Ayarlar → Cihazlar ve Servisler → MQTT altında görünür. Node-RED'de ya da herhangi bir MQTT gezgininde, ayarladığınız önek altındaki konu ağacına göz atın.

Adım adım kurulum rehberine bakın

Matter, SmartThings, Google Home ve Alexa

Aynı MQTT verilerini Matter cihazları olarak yeniden sunan bir Matterbridge eklentisi geliştiriyoruz; böylece aracınız tüketici tarafında hiç aracı olmadan Apple Home, Google Home, SmartThings ve Alexa'da bulunabilir hâle gelecek. Yakında.