Mysql et Home assistant

fonctionne merci

si je comprend bien le sensor devrais récupérer les informations

  • checkin
  • checkout
  • rooms

cepdant le sensor indique uniquement « chambre louée »
il faut donc crée un sensor par chambres, puis crée un captteur binaire par chambre aussi ?

et encore merci pour votre temps car j’apprend bcp grace a vous !


Le sensor indique tout le temps la même valeur qui est défini dans value_template.
Tu peux retrouvé les infos dans les attributs.

Si tu utilises les outils de développement, tu peux voir les informations:

ç’est à toi de gérer les infos que tu veux récupérer. Mais oui, ç’est une possibilité.

a donc il doit me manquer quelque chose car je n’ai qu’un seul attribut

Entité État Attributs
Filtrer les entités Filtrer les états Filtrer les attributs
sensor.vikbooking_room

vikbooking_room|chambre louée|friendly_name: vikbooking_room|

j’ai cru qu’il été crée un « appareil » avec plusieur entité

  • checkin
  • checkout
  • rooms

Ton json n’est pas correct. Peux-tu utilser les balises et coller le json que tu recois ?
image

Non, il va créer une seule entité avec plusieurs attributs.

j’ai essayé de faire un copier collé de la page ha mais ce n’est pas explicite

voici donc la capture d’écran

Non, ce que je te demande, ç’est la réponse json dans Postman.
Et regarde les logs de HA, tu dois y avoir des warnings/erreurs

a ok désolé :wink:

voici ce que j’ai trouver dans les logs

Logger: homeassistant.components.rest.sensor
Source: components/rest/sensor.py:166
Integration: RESTful (documentation, issues)
First occurred: 15:51:50 (1 occurrences)
Last logged: 15:51:50

REST result could not be parsed as JSON

Voici la réponse de POSTMAN:

{
    "res": "e4j.ok",
    "body": {
        "date": "2023-3-31",
        "type": "arrivals",
        "bookings": [
            {
                "id": 578,
                "created_on": "2022-12-08 21:57",
                "status": "Confirmed",
                "nights": 2,
                "checkin": "2023-03-31 17:30",
                "checkout": "2023-04-02 10:30",
                "number_of_rooms": 1,
                "rooms": "Chambre balnéo CH4",
                "adults": "2",
                "children": "0",
                "customer_name": "Dimitri ",
                "country": "FRA",
                "email": "jgmail.com",
                "phone": "+00000000",
                "source": "VBO"
            },
            {
                "id": 608,
                "created_on": "2023-03-29 18:57",
                "status": "Confirmed",
                "nights": 1,
                "checkin": "2023-03-31 17:30",
                "checkout": "2023-04-01 10:30",
                "number_of_rooms": 1,
                "rooms": "Chambre Deluxe CH3",
                "adults": "1",
                "children": "0",
                "customer_name": "Luis ",
                "country": "MEX",
                "email": "@guest.booking.com",
                "phone": "+52500000,
                "source": "Booking.com",
                "ota_id": "5725772"
            }
        ]
    }
}

Remet la date 2023-3-31

Et supprime les données perso de ton json :wink:

rest:
  - scan_interval: 3600
    resource: https://MONSITE/index.php?option=CMS&task=app_exec&req=arrivals_departures
    method: POST
    payload: '{"email": "MAIL","APIKEY": "","type": "arrivals","date": "2023-3-31"}'
    sensor:
      - name: "vikbooking_room"
        json_attributes_path: "$.body.bookings[0]"
        value_template: "chambre louée"
        json_attributes:
          - "checkin"
          - "checkout"
          - "rooms"

sensor:
  - platform: time_date
    display_options:
      - "time"
      - "date"
      - "date_time"
      - "date_time_utc"
      - "date_time_iso"
      - "time_date"
      - "time_utc"
      - "beat"
  - platform: command_line
    command: 'curl -X POST -H ''Content-Type: application/json'' -H ''User-Agent: Mozilla/5.0'' -d ''{"email": "EMAIL","APIKEY","type": "bookings","tdate": " {{ as_timestamp(now()) | timestamp_custom(''%Y-%m-%d'') }} "}'' https://MONSITE.com/index.php?option=com_vikchannelmanager&task=app_exec&req=bookings_list'
    name: vikbooking_list
    json_attributes:
      - rooms
      - customer_name
    value_template: "OK"
    scan_interval: 300

Car j’ai simplement besoin de savoir quelles chambres sont louer ( le jour meme voir dans l’idéeal le lendemain ) c’est fou cela parait simple alors que c’est à se tirer les cheveux lol

Il te manque pwd dans le payload:

payload: '{"email": "MAIL", "pwd":"APIKEY","type": "arrivals","date": "2023-3-31"}'

Ici aussi :

command: 'curl -X POST -H ''Content-Type: application/json'' -H ''User-Agent: Mozilla/5.0'' -d ''{"email": "EMAIL","pwd":"APIKEY","type": "bookings","tdate": " {{ as_timestamp(now()) | timestamp_custom(''%Y-%m-%d'') }} "}'' https://MONSITE.com/index.php?option=com_vikchannelmanager&task=app_exec&req=bookings_list'

oui car le pwd est la clé api

Tu dois contruire le payload avec les même infos que dans Postman.
Or ici, tu as

"APIKEY": ""

au lieu de

"pwd": "APIKEY"

image

Si ça marche dans Postman, il n’y a pas de raison que tu n’y arrives pas ici.

décidément… j’ai modifier cela mais il n’y a pas de changements

Après des échanges en privé, la résolution du problème est d’utiliser command_line mentioné ici:

car rest ne supporte pas de payload dynamique.

2 « J'aime »