Giga77:
{{ now() }}
fonctionne merci
si je comprend bien le sensor devrais récupérer les informations
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
vikbooking_room|chambre louée|friendly_name: vikbooking_room|
j’ai cru qu’il été crée un « appareil » avec plusieur entité
Ton json n’est pas correct. Peux-tu utilser les balises et coller le json que tu recois ?
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é
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"
}
]
}
}
Giga77:
{{ now() }}
Remet la date 2023-3-31
Et supprime les données perso de ton json
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"
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:
Sinon tu peux aussi tester avec ça, la date est automatique.
Dans ton fichier configuration.yaml, met ça (em remplaçant avec tes valeurs):
sensor:
- platform: command_line
command: "curl -X POST -H 'Content-Type: application/json' -H 'User-Agent: Mozilla/5.0' -d '{\"email\": \"USER\",\"pwd\": \"APIKEY\",\"type\": \"arrivals\",\"date\": \" {{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d') }} \"}' https://MONSITE/index.php?option=CMS&task=app_exec&req=arrivals_departures"
name: c…
car rest ne supporte pas de payload dynamique.
2 « J'aime »