Mysql et Home assistant

Mon problème

Bonjour, je dispose d’un site Web pour mon restaurant et mes chambres d’hôtes. Vikbooking est installer sur mon site Web pour les réservations des chambres.

Ma question, est-il possible de récupérer des informations de la base de donnée mysql afin de les intégrer dans HA ?

Merci

Bonjour,
Je vois que tu utilises Joomla comme CMS, il faudrait regarder les Api REST exposées par le CMS.
Je n’ai pas de Joomla sous la main pour t’aiguiller plus.
Bob

voici la page concernant les api, mais pour vik-restaurants-apis, j’ai demander par mail s’il y a de la doc
par ci très j’ai trouver des infos sur le webhook, mais c’est tout
https://vikwp.com/support/knowledge-base/vik-appointments/webhooks
Cepdant je suis un peu perdu car je ne c’est comme intégré cela dans HA.

mon but étant de crée des automatisations le jour où une chambre est loué .

https://www.extensionsforjoomla.com/help/documentation/vik-restaurants-apis

bien cordialement

mathieu

Salut,

Les webhook comme décrits dans ton premier lien ça peut marcher.
Il faut en revanche que ton HA soit accessible depuis l’endroit où ton site web est hébergé.
Ensuite côté HA il faut créer une automatisation avec Webhook en tant que déclencheur.

merci pour votre réponse . cela est tout nouveau pour moi.
je ne c’est pas du tout comment fonctionne les webhook

voici la réponse que j’ai eu du support :

Hello Mathieu,

Thanks for contacting us. For reasons related to the PCI-DSS compliance certification of Vik Booking, we cannot include any sort of REST API feature directly in Vik Booking. We can do that only in Vik Channel Manager.

Depending on what functionalities you are willing to implement, you may want to check the Developers section of Vik Booking to see what functions can be extended by coding custom WordPress or Joomla plugins at the link Vik Booking - For Developers - Knowledge Base - VikWP.com.

Instead, if you are looking for REST APIs, then these are only available in Vik Channel Manager. The documentation is available on our website at https://e4jconnect.com, but you need to log into an existing account, no matter if you have an active subscription or not. The section you want to look for is under the « Help » menu, in the menu item called « Developers API », which will appear only after you log into your account.

Best regards,
Marco

Salut

Avec leur réponse, tu peux chercher une REST API qui gère les réservations de tes chambres.
Si tu trouves, tu peux créer un sensor dans HA avec RESTful.
Et ensuite tu crées une automatisation quand ton sensor change.

Si tu ne trouves pas, au pire, tu peux utiliser le scraping pour te créer un sensor:

merci pour votre aide;
je suis au stade ou via POSTMAN j’arrive en envoyer un POST a mon CMS:

https://MONSITE/index.php?option=CMS&task=app_exec&req=arrivals_departures

{
« email »: « USER »,
« pwd »: « APIKEY »,
« type »: « arrivals »,
« date »: « 2023-3-31 » <= est’il possible de mettre la date du jour automatiquement ?
}

J’obtien ceci, mais aucune idée de comme faire pour utiliser les données recu.

{
« 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 »: « NAME »,
« country »: « FRA »,
« email »: « MAIL@gmail.com »,
« phone »: « ++++++++ »,
« source »: « VBO »
}
}

Avec RESTful, tu peux faire des POST et extraire les infos reçus dans des sensors.

Voici un exemple que j’utilise:

rest:
  - scan_interval: 3600
    resource: https://data.economie.gouv.fr/api/records/1.0/search/?dataset=prix-carburants-fichier-instantane-test-ods-copie&facet=id&refine.id=74160001&refine.prix_nom=E10
    method: GET
    sensor:
      - name: "carburant_E10_Inter_StJu"
        json_attributes_path: "$.records[0].fields"
        value_template: "Inter StJu"
        json_attributes:
          - "prix_maj"
          - "prix_valeur"

Et ça me donne ce sensor :

c’est la que je bloque je ne comprend pas du tout comment rentrer mes informations

A priori, le payload n’est pas dynamique…
Donc tu n’arriveras pas à changer la date automatiquement…
A part créer ton propre add-on, je ne vois pas d’autre solution.

Essaie ça dans configuration.yaml :

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

Et redémarre HA.

j’ai une erreur bizarre :
Configuration non valide !
Invalid config for [rest_command]: [scan_interval] is an invalid option for [rest_command]. Check: rest_command->rest_command->vikbooking_today->scan_interval. (See /config/configuration.yaml, line 20).

alors que la ligne 20 de configuration.yaml est: camera: !inclue ip_camera.yaml
donc rien à voir

ps: j’utilise un !include rest.yaml

Et avec ça:

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

Dans ton fichier tu as « rest_command », il faut « rest ».


Enlève ça de ton fichier rest.yaml.
Et met ça directement dans configuration.yaml:

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

Dans ton fichier configuration.yaml, le fichier rest.yaml est associé à rest_command. Mais pour créer des sensors, tu dois utiliser rest.
Avec rest_command, je ne sais pas si tu peux récupérer la réponse et la traiter…

vous êtes fantastique !!! merci infiniment !

est-il possible de définir une date du jour automatiquement ?
est-ce que ceci peu fonctionner: {{ full_date }}

A priori, non. De ce que j’ai vu, il n’est pas possible d’utiliser des variables…

Mais tu peux essayer avec ça:

{{ now() }}

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: chambreCL
    json_attributes:
      - checkin
      - checkout
      - rooms
    value_template: 'OK'
    scan_interval: 300