[ GIFI ] ITAG ( porte clé connecté ) à 4.89€

Bonjour a tous,
j’ai trouvé chez GIFI un ITAG a 4.89€ avec bouton et bip. Il y en a en blanc et noir. La portée est de 15-20m et fonctionne sur HA en Bluetooth LE ou avec ESPHOME. Il y a besoin d’une pile CR2032, qui peut être changer.
Vue le prix, ca vaut le coût, car faut compter 10-15€ pour ce genre de produit.

image

Avec ESPHOME:

8 « J'aime »

salut, tu a mis ou le code, dans esphome ou dans ha?

C’est des codes a mettre dans esphome

Salut,
c’est dans esphome a mettre le code.

1 « J'aime »

Bonsoir,
@WarC0zes, je rentre de chez Gifi avec mes tags ;-), reste à remettre la main sur mes CR2032 :rofl:
Rien en bluetooth à ce jour sur HA.
De souvenir d’un test, je mets ça sur un de mes ESP32 pour pouvoir récupérer mes objets bluetooth ?

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true

Les valeurs de ces paramètres proviennent d’où ?

    service_uuid: 'ffe0'
    characteristic_uuid: 'ffe1'

Bob

Salut,
je sais pas , c’est de la doc esphome. Mais je pense qu’avec bluetooth scanner sur mobile, tu dois trouver ces infos.

Pour la configue sur esphome, ces tags on besoin d’une connexion permanente, je sais pas comment ca peut fonctionner avec des Bluetooth proxy.

J’utilise l’intégration Bluetooth LE de HA et une clé Bluetooth. J’ai utiliser l’application Bluetooth scanner sur mobile pour trouver le MAC du iTAG , pour éviter de scanner tout les appareils Bluetooth sur HA.

dans mon know-devices.yaml:

itag_white:
  name: 'iTAG White'
  mac: BLE_FF:22:07:xx:xx:xx
  icon: mdi:tag
  picture:
  track: true
itag_black:
  name: 'iTAG Black'
  mac: BLE_FF:22:07:xx:xx:xx
  icon: mdi:tag
  picture:
  track: true

Pour esphome, j’ai tester c’est configue pour utiliser le bouton ( 2 click ) , ta peut faire sonner le itag. Ta le niveau de batterie et le rssi. Faut ajouter le tracker.

esp32_ble_tracker:
  scan_parameters:
    active: true

bluetooth_proxy:
  active: true

ble_client:
  - mac_address: FF:22:07:xx:xx:xx
    id: itag_white

sensor:
  - platform: ble_client
    id: itag_white_ble_button_logic
    type: characteristic
    ble_client_id: itag_white
    service_uuid: "ffe0"
    characteristic_uuid: "ffe1"
    notify: true
    update_interval: never
    on_notify:
      then:
        - if:
            condition:
              lambda: 'return !id(itag_button_state_helper).state;'
            then:
              - binary_sensor.template.publish:
                  id: itag_button_state_helper
                  state: ON
              - binary_sensor.template.publish:
                  id: itag_button_state_helper
                  state: OFF
            else:
              - binary_sensor.template.publish:
                  id: itag_white_button_doubleclick
                  state: ON
              - binary_sensor.template.publish:
                  id: itag_white_button_doubleclick
                  state: OFF


  - platform: ble_client
    type: characteristic
    ble_client_id: itag_white
    name: "iTag white Battery"
    service_uuid: "180f"
    characteristic_uuid: "2a19"
    icon: "mdi:battery"
    unit_of_measurement: "%"

  - platform: ble_client
    type: rssi
    ble_client_id: itag_white
    name: "iTag white RSSI"

switch:
  - platform: ble_client
    ble_client_id: itag_white
    name: "Connect iTag white"

  - platform: template
    id: itag_button_state_helper
    filters:
      delayed_off: 500ms
    on_release:
      then:
        - if:
            condition:
              lambda: 'return !id(itag_white_button_doubleclick).state;'
            then:
              - logger.log: "Single button press detected!"
              - binary_sensor.template.publish:
                  id: itag_white_button
                  state: ON
              - binary_sensor.template.publish:
                  id: itag_white_button
                  state: OFF

  - platform: template
    id: itag_white_button
    name: "iTag white button"
    filters:
      delayed_off: 200ms

  - platform: template
    id: itag_white_button_doubleclick
    name: "iTag white button doubleclick"
    filters:
      delayed_off: 1000ms

button:
  - platform: template
    name: "iTag white alert"
    on_press:
      - ble_client.ble_write:
          id: itag_white
          service_uuid: "1802"
          characteristic_uuid: "2a06"
          value: [0x01]
      - delay: 10s
      - ble_client.ble_write:
          id: itag_white
          service_uuid: "1802"
          characteristic_uuid: "2a06"
          value: [0x00]

Pas contre, la pile a pas l’air de tenir longtemps. 1 mois, voir un peu plus :frowning:
Je ferais un retour, ca fais que 2 semaine que j’en utilise.

edit:
regarde ce sujet BLE Proxy détection adresse MAC

Super, merci @WarC0zes, je vais regarder ça rapidement.

Bob

Bonjour @WarC0zes

Tu as ajouté une clé Bluetooth ? Sur quoi ?
Je pensais pouvoir utiliser juste des ESP32 pour trouver mes iTags, bon, je n’ai pas encore commencé mais je crois que je vais avoir de la lecture avant :wink:
Bob

Oui, une clé ZEXMTE BT-DG54 sur mon RPI4. J’ai tester le bluetooth du RPI4 mais moins bon que la clé.

C’est possible.

Je confirme, je les utilise via mon esp32

C’est possible que tu partage ton code esp pour le itag?

esphome:
  name: esp
  friendly_name: Esp

esp32:
  board: esp32dev
  framework:
    type: arduino

esp32_ble_tracker:

ble_client:
  # Replace with the MAC address of your device.
  - mac_address: FF:22:07:08:1F:A5
    id: itag_black
    auto_connect: true
  - mac_address: FF:22:07:0B:2A:EB
    id: itag_white
    auto_connect: true

# Enable logging
logger:

button:
  - platform: template
    name: "iTag black alert"
    on_press:
      - ble_client.ble_write:
          id: itag_black
          service_uuid: "1802"
          characteristic_uuid: "2a06"
          value: [0x01]
      - delay: 10s
      - ble_client.ble_write:
          id: itag_black
          service_uuid: "1802"
          characteristic_uuid: "2a06"
          value: [0x00]
  - platform: template
    name: "iTag white alert"
    on_press:
      - ble_client.ble_write:
          id: itag_white
          service_uuid: "1802"
          characteristic_uuid: "2a06"
          value: [0x01]
      - delay: 10s
      - ble_client.ble_write:
          id: itag_white
          service_uuid: "1802"
          characteristic_uuid: "2a06"
          value: [0x00]

# Enable Home Assistant API
api:
  encryption:
    key: "="

ota:
  platform: esphome
  password: ""

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp Fallback Hotspot"
    password: ""

captive_portal:

binary_sensor:
#Etat de la connection

  - platform: template
    id: black_button
    name: "Black iTag Button"
    filters:
      delayed_off: 200ms 

  - platform: ble_presence
    mac_address: FF:22:07:08:1F:A5
    name: "Black iTag"

  - platform: template
    id: white_button
    name: "White iTag Button"
    filters:
      delayed_off: 200ms 
      
  - platform: ble_presence
    mac_address: FF:22:07:0B:2A:EB
    name: "White iTag"

sensor:
  - platform: ble_client
    type: characteristic
    ble_client_id: itag_black
    name: "Black iTag btn"
    service_uuid: 'ffe0'
    characteristic_uuid: 'ffe1'
    notify: true
    update_interval: never
    on_notify:
      then:
        - binary_sensor.template.publish:
            id: black_button
            state: ON
        - binary_sensor.template.publish:
            id: black_button
            state: OFF

  - platform: ble_client
    type: characteristic
    ble_client_id: itag_white
    name: "White iTag btn"
    service_uuid: 'ffe0'
    characteristic_uuid: 'ffe1'
    notify: true
    update_interval: never
    on_notify:
      then:
        - binary_sensor.template.publish:
            id: white_button
            state: ON
        - binary_sensor.template.publish:
            id: white_button
            state: OFF                

  - platform: ble_client
    type: characteristic
    ble_client_id: itag_black
    name: "Black iTag Battery"
    service_uuid: '180f'
    characteristic_uuid: '2a19'
    icon: 'mdi:battery'
    unit_of_measurement: '%'

  - platform: ble_client
    type: characteristic
    ble_client_id: itag_white
    name: "White iTag Battery"
    service_uuid: '180f'
    characteristic_uuid: '2a19'
    icon: 'mdi:battery'
    unit_of_measurement: '%'    


switch:
  - platform: ble_client
    ble_client_id: itag_black
    name: "Connect iTag black"

  - platform: ble_client
    ble_client_id: itag_white
    name: "Connect iTag white" 
1 « J'aime »

Salut,
j’ai tester sur un esp le ble_presence, mais l’entité reste activé que 5 min et repasse en désactiver.
image
le button fonctionne bien, la l’air d’être connecter au ESP.

Quelle paramètre modifier pour que ca reste sur activé avec le ble_presence ?

Bonjour,
Je ne serais te dire, j’ai pris du code un peu à droite à gauche

Chez toi l’entité ble_presence, reste activé ?

edit:
avec le capteur RSSI, ca pourrais servir de device tracker. L’entité s’actualise souvent et reste connecté, comme le buton.
image
par contre le ble_presence ce déconnecte au bout de 5min, chaque fois que j’allume.

avec l’intégration Bluetooth_LE, le itag fonctionne bien.

edit2:
Avec un template et l’entité rssi, j’ai trouver ca sur le net:

{% set home_rssi = states('sensor.m5stickc_plus2_ble_white_itag_rssi') %} 
{% if home_rssi == 'unknown' %} 
{% set home_rssi = -120 | float %}
{% else %} 
{% set home_rssi = home_rssi | float %}
{% endif %} 
{% set sensor_values = [home_rssi] %}
{% set max_rssi = max([home_rssi]) %}
{% if home_rssi == -120 %}  
  not_home
{% elif max_rssi == home_rssi %}
  home 
{% else %}
  Error in Locating
{% endif %}

image

Non ça ne fonctionnait pas, merci pour tes compléments. Toujours au top !

Salut,
j’ai trouvé la solution pour que le ble_presence fonctionne bien avec le itag.
J’ai juste utilise le ble_presence et le rssi en capteur, et tout le reste ble_client , button, batterie j’ai supprimer.

substitutions:
  name: m5stickc-plus2-ble
  friendly_name: M5StickC PLUS2 BLE

esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}


esp32:
  board: m5stick-c
  framework:
    type: esp-idf   
  flash_size: 8MB

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxx"


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

esp32_ble_tracker:

binary_sensor:
  - platform: ble_presence
    mac_address: FF:22:07:xx:xx:xx
    name: "White iTag"
    device_class: presence

sensor:
  - platform: uptime
    id: uptime_sec
    update_interval: 60s
    internal: true

  - platform: ble_rssi
    mac_address: FF:22:07:xx:xx:xx
    name: "White iTag RSSI"

Le ble_rssi a un bon signal comparé à mon ancien code qui utiliser le ble_client_id. Avec le mac adresse ça fonctionne bien mieux, le signal est correct.
image

Le ble_presence fonctionne bien maintenant, sans l’ajout du bouton et batterie.


Il c’est pas déconnecter au bout de 5min :smiley:

salut , moi j’utilise que ble_presence et aucun probleme, parcontre la ou j’ai un probleme, c’est avec le bouton car quand je le met itag sur un porte clef et que je le met dans un sac, itag se coupe, je pense qu’il y a un appuie sur le bouton.

Oui, je m’en suis rendu compte. Si on veut utiliser le bouton et batterie, ça fonctionne plus avec le ble_presence.
Tu n’as pas vu que je galère à faire fonctionne le ble_présence ?
Tu aurais pu m’éclaircir sur le problème. C’est après que je trouve la solution, que tu réagis :stuck_out_tongue:

j’ai un itag dans ma sacoche et pas de problème. Par contre, celui-là passe par l’intégration Bluetooth LE de HA.
Le bouton peut éteindre le itag, mais il faut appuyer quelques secondes pour l’éteindre.

Bonjour,
Effectivement ça ne marchait pas vraiment, encore merci pour tes recherches et ton partage !