Bonjour @Jeffodilo
quel repot as-tu ajouté pour obtenir l’Addon ?
J’en ai testé celui de tphakala sans succès.
Bob
Bonjour @Jeffodilo
quel repot as-tu ajouté pour obtenir l’Addon ?
J’en ai testé celui de tphakala sans succès.
Bob
Bonjour,
@Bob c’est celui du 1er post accessible ici,
https://github.com/alexbelgium/hassio-addons/blob/master/birdnet-go/README.md
Il ne consomme pas trop de ressources. J’ai un petit bug sur le lien du dashboard de la barre latérale qui m’amène sur une page 404, obligé de cliquer sur le bouton dashboard, du coup je l’ouvre dans un nouvel onglet et tout fonctionne nickel.
Après des échanges, nous avons remarqué que le problème venait que le nom d’utilisateur n’était pas pi mais admin, cela vient peut être de l’installation de pi os trexie (13), le nom par défaut à peut être changé avec les nouvelles installations…
J’ai mis le tuto du début à jour en indiquant cette possibilité.
Bonjour, je partage le suite du coup pour que ce soit plus ludique.
J’ai inséré les images d’oiseaux dans le dashboard à chaque nouvelle détection.
Voilà le rendu :
J’ai créé un dossier où je stock mes images d’oiseaux au format jpg et de dimensions 200x200 pixels.
Le nom des oiseaux est le nom scientifique exactement sous cette forme :
Aegithalos-caudatus
Majuscule sur la première lettre du premier nom, tout le reste en minuscule puis tiret - et tout le reste en minuscule.
Il est dans config/www
Le nom du dossier est oiseaux.
Ce qui donne :
/root/config/www/oiseaux/Aegithalos-caudatus.jpg
J’ai créé un template sensors dans configuration.yaml :
template:
#bidnet image oiseau template chemin image birdnet
- name: "Nom Scientifique Image Path"
unique_id: nom_scientifique_image_path
state: "{{ '/local/oiseaux/' ~ states('sensor.nom_scientifique') | replace(' ', '-') ~ '.jpg' }}"
Puis dans le dashboard la card de type markdown :
type: markdown
content: >
<b>Oiseau détecté</b>
<center> <img src="{{ states('sensor.nom_scientifique_image_path') }}"
alt="Oiseau" style="max-width: 100%; height: auto;"> </center>
<center> <b>Nom Scientifique :</b> {{ states('sensor.nom_scientifique') }}
</center>
<center> <b>Nom Commun :</b> {{ states('sensor.derniere_detection_d_oiseau')
}} </center>
<center> <b>Confiance de la détection :</b> {{
states('sensor.confiance_de_la_detection') }} % </center>
<center> <b>Heure :</b> {{ states('sensor.heure_de_la_detection_2') }}
</center>
Depuis la release de 2022, Il n’y a plus de nom d’utilisateur par défaut, il est demandé à la création du système.
Tout le monde savait que l’utilisateur pi existait sur les RPI et c’était une faille de sécurité.
https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022/
Bonjour, merci pour ton partage. Tu as téléchargé tes images à partir de quel lien s’il te plaît ?
En faite je tape le nom de l’oiseau qui s’affiche sur Google, j’enregistre l’image par clic droit.
Je converti et redimensionne avec
Je télécharge et renomme pour que ça corresponde au bon format (majuscule, etc..)
Je mets l’image jpg dans le dossier de ha.
Il y a sûrement une possibilité d’automatiser le téléchargement de l’image car birdnet va chercher les images par internet mais je ne me suis pas penché dessus
Salut,
Je mets ça là en vrac, mais :
{
"common_name": "$comname",
"scientific_name": "$sciname",
"confidence_score": "$confidence",
"link": "$listenurl",
"date": "$date",
"time": "$time",
"week": "$week",
"latitude": "$latitude",
"longitude": "$longitude",
"minimum_confidence": "$cutoff",
"sigmoid_sensitivity": "$sens",
"overlap": "$overlap",
"image": "$flickrimage"
}
et donc
- name: "Birdnet détection"
state_topic: "birdnet/detection"
json_attributes_topic: "birdnet/detection"
value_template: ""
- name: Bird-Pi Photo
verify_ssl: false
url: >-
{{state_attr('sensor.birdnet_detection','image')}}
type: custom:stack-in-card
cards:
- show_state: false
show_name: false
camera_view: auto
type: picture-entity
entity: image.bird_pi_photo
- type: custom:mushroom-template-card
primary: >-
{{ states('sensor.birdnet_detection') }} | {{
state_attr('sensor.birdnet_detection', 'time') }}
secondary: "{{ state_attr('sensor.birdnet_detection', 'scientific_name') }}"
entity: sensor.birdnet_detection
icon: mdi:bird
Merci pour tous ces éléments, as-tu désactivé le client mqtt (paho) dans ton pi du coup ?
J’ai reinstallé le pi , refait la config, activé les notifs systématiquement.
Petite évol sur la carte et dodo
type: custom:stack-in-card
cards:
- show_state: false
show_name: false
camera_view: auto
type: picture-entity
entity: image.bird_pi_photo
- type: custom:mushroom-template-card
primary: "{{ state_attr('sensor.birdnet_detection', 'common_name') }}"
secondary: à {{ state_attr('sensor.birdnet_detection', 'time') }}
entity: sensor.birdnet_detection
icon: mdi:bird
icon_color: blue
tap_action:
action: url
url_path: "{{ state_attr('sensor.birdnet_detection', 'link') }}"
- type: custom:mushroom-chips-card
chips:
- type: template
content: >-
{{ states('sensor.birdnet_detection') }} • {{
(state_attr('sensor.birdnet_detection', 'confidence_score') | float *
100) | round(0) }}% de confiance
icon: mdi:shield-check
- type: template
content: "{{ state_attr('sensor.birdnet_detection', 'scientific_name') }}"
icon: mdi:identifier
icon_color: grey
alignment: start
card_mod:
style: |
ha-card {
--chip-box-shadow: none;
--chip-background: none;
padding: 0px 12px 12px;
}
Fantastique ! Merci de faire vivre cette discussion et d’apporter de belles évolutions ![]()
Allez, j’ai un peu avancé sur le sujet… (et piqué quelques idées sur le forum anglais de ha)
si le topic MQTT est /birdnet/detection
que le notification native est (avec toutes les options cochées)
{
"common_name": "$comname",
"scientific_name": "$sciname",
"confidence_score": "$confidence",
"link": "$listenurl",
"date": "$date",
"time": "$time",
"week": "$week",
"latitude": "$latitude",
"longitude": "$longitude",
"minimum_confidence": "$cutoff",
"sigmoid_sensitivity": "$sens",
"overlap": "$overlap",
"image": "$flickrimage"
}
Alors on peut faire un sensor du genre avec un trigger
template:
- trigger:
- platform: mqtt
topic: "birdnet/detection"
sensor:
- name: "BirdNET Go Events"
unique_id: birdnet_go_events
state: "{{ trigger.payload_json.common_name }}"
attributes:
common_name: "{{ trigger.payload_json.common_name }}"
scientific_name: "{{ trigger.payload_json.scientific_name }}"
confidence_score: "{{ trigger.payload_json.confidence_score }}"
link: "{{ trigger.payload_json.link }}"
date: "{{ trigger.payload_json.date }}"
time: "{{ trigger.payload_json.time }}"
week: "{{ trigger.payload_json.week }}"
latitude: "{{ trigger.payload_json.latitude }}"
longitude: "{{ trigger.payload_json.longitude }}"
minimum_confidence: "{{ trigger.payload_json.minimum_confidence }}"
sigmoid_sensitivity: "{{ trigger.payload_json.sigmoid_sensitivity }}"
overlap: "{{ trigger.payload_json.overlap }}"
image: "{{ trigger.payload_json.image }}"
bird_events: >
{% set current = state_attr('sensor.birdnet_go_events', 'bird_events') %}
{% set current_list = current if current is iterable and current is not string else [] %}
{% set new_event = {
"name": trigger.payload_json.common_name,
"confidence": (trigger.payload_json.confidence_score | float * 100) | round(0),
"time": trigger.payload_json.time[:5]
} %}
{{ ([new_event] + current_list)[:20] }}
icon: mdi:bird
et une carte qui contient tout ou presque
type: custom:stack-in-card
cards:
- type: markdown
content: |
 }})
- type: custom:mushroom-template-card
primary: "{{ state_attr('sensor.birdnet_go_events', 'common_name') }}"
secondary: à {{ state_attr('sensor.birdnet_go_events', 'time') }}
entity: sensor.birdnet_detection
icon: mdi:bird
icon_color: blue
tap_action:
action: url
url_path: "{{ state_attr('sensor.birdnet_go_events', 'link') }}"
- type: custom:mushroom-chips-card
chips:
- type: template
content: >-
{{ (state_attr('sensor.birdnet_go_events', 'confidence_score') | float
* 100) | round(0) }}% de confiance
icon: mdi:shield-check
- type: template
content: "{{ state_attr('sensor.birdnet_go_events', 'scientific_name') }}"
icon: mdi:identifier
icon_color: grey
alignment: start
card_mod:
style: |
ha-card {
--chip-box-shadow: none;
--chip-background: none;
padding: 0px 12px 12px;
}
- type: markdown
content: >-
Heure|Espèce|Détection|Fiabilité
:---|:---|:---:|:---:
{%- set t = now() %}
{%- set bird_list =
state_attr('sensor.birdnet_go_events', 'bird_events')
| sort(attribute='time', reverse=true)
| map(attribute='name')
| unique
| list
%}
{%- set bird_objects =
state_attr('sensor.birdnet_go_events', 'bird_events')
| sort(attribute='time', reverse=true)
%}
{%- for thisbird in bird_list or [] %}
{%- set ubird =
(bird_objects
| selectattr('name', 'equalto', thisbird)
| list
)[0]
%}
{%- set ubird_count =
bird_objects
| selectattr('name', 'equalto', thisbird)
| list
| length
%}
{%- set ubird_max_confidence =
bird_objects
| selectattr('name', 'equalto', thisbird)
| map(attribute='confidence')
| map('replace', '%', '')
| map('float')
| max
| round(0)
%}
{%- if ubird_max_confidence > 70 %}
{{ ubird.time }} | [{{ ubird.name }}](https://fr.wikipedia.org/wiki/{{
ubird.name | replace(' ', '_') }}) | {{ ubird_count }} | {{
ubird_max_confidence }} %
{%- endif %}
{%- endfor %}
**Ce jour** | Espèces différentes : {{bird_list | count}} | Nb de
détections : {{bird_objects | count}} |
[BirdPI](http://192.168.1.234/)
nickel, j’avais des soucis avec la partie - name: Bird-Pi Photo, mais cette dernière version est géniale !!!
Le rougegorge, quelle pipelette !!! ![]()
Oui, un peu de soleil et il a beaucoup plus causé qu’hier
Bonjour,
Je suis novice extrême et je viens de tomber sur ce post. Je ne m’interesse pas forcément à HA quoique j’ai un NAS Syno sur lequel je pourrai l’utiliser à terme.
Pour le moment, on est bien d’accord que si on veut le dispositif complet, il faut un Rasp Pi et un micro, et éventuellement un petit coffret de protection. Est-ce que vous avez un modèle robuste de micro efficace qui peut être utilisé avec le raspberry ? J’ai lu qu’il fallait systématiquement déporter le micro avec un prolongateur usb pour éviter les interférences avec le Pi.
Merci encore pour ce tuto hyper intéressant et détaillé !