Erreurs et exceptions

Ce document liste les erreurs et exceptions officiellement acceptées pour les appareils connectés. Veuillez utiliser les codes d'erreur et d'exception fournis dans la réponse de l'intent ou dans les notifications si vous les avez implémentées, afin que l'Assistant Google alerte les utilisateurs finaux des problèmes liés à une commande ou à un état de l'appareil donnés. Si la réponse contient une mise en forme incorrecte ou errorCode, l'Assistant Google affiche un message d'erreur générique, par exemple "Désolé, appareil n'est pas disponible pour le moment".

Erreurs

Vous devez renvoyer un code d'erreur lorsqu'un problème entraîne l'échec d'une requête d'exécution ou d'interrogation. Par exemple, si une serrure de porte est bloquée et ne peut pas être verrouillée ou déverrouillée, une erreur concernant cet état doit être renvoyée à l'utilisateur.

Les codes d'erreur peuvent être associés au niveau de l'appareil ou au niveau global. Par exemple, si un utilisateur possède de nombreuses lampes d'un même fournisseur et qu'elles sont contrôlées par un hub, lorsqu'il demande à éteindre toutes ses lampes, le fournisseur peut renvoyer une erreur au niveau de l'appareil si une seule lampe est hors connexion, ou une erreur au niveau global si l'ensemble du hub est hors connexion et qu'aucune lampe ne peut être contrôlée. Si tous les appareils sont hors connexion, il n'y a aucune différence entre l'utilisation d'erreurs au niveau global ou au niveau de l'appareil.

En résumé :

  • Erreur au niveau global : tous les appareils de la réponse présentent la même erreur.
  • Erreur au niveau local : réponse mixte avec des cas d'erreur et de réussite

Erreurs au niveau global

L'extrait JSON suivant montre comment renvoyer des erreurs au niveau global dans une réponse QUERY ou EXECUTE.

Exemple d'erreur au niveau global deviceOffline due au fait que le hub est hors connexion :

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "deviceOffline",
    "status" : "ERROR"
  }
}

Exemple d'erreur au niveau global inSoftwareUpdate due à la mise à jour du hub :

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "inSoftwareUpdate",
    "status" : "ERROR"
  }
}

Erreurs au niveau de l'appareil

Réponse QUERY

L'extrait JSON suivant montre comment renvoyer des erreurs au niveau de l'appareil dans la réponse QUERY.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "device-id-1": {
        "errorCode": "deviceOffline",
        "status" : "ERROR"
      },
      "device-id-2": {
        "errorCode": "deviceOffline",
        "status" : "ERROR"
      }
    }
  }
}

Réponse EXECUTE

L'extrait JSON suivant montre comment renvoyer des erreurs au niveau de l'appareil dans la réponse EXECUTE.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "device-id-1"
        ],
        "status": "ERROR",
        "errorCode": "deviceOffline"
      },
      {
        "ids": [
          "device-id-2"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      }
    ]
  }
}

Notifications avec erreurs

Notification proactive

L'extrait JSON suivant montre comment signaler des erreurs au niveau de l'appareil dans une notification proactive.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id-1",
  "eventId": "unique-event-id-1",
  "payload": {
    "devices": {
      "notifications": {
        "device-id-1": {
          "RunCycle": {
            "priority": 0,
            "status": "FAILURE",
            "errorCode": "deviceDoorOpen"
          }
        }
      }
    }
  }
}

Réponse de suivi

L'extrait JSON suivant montre comment signaler des erreurs au niveau de l'appareil dans une réponse de suivi.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id-1",
  "eventId": "unique-event-id-1",
  "payload": {
    "devices": {
      "notifications": {
        "device-id-1": {
          "LockUnlock": {
            "priority": 0,
            "followUpResponse": {
              "status": "FAILURE",
              "errorCode": "deviceJammingDetected",
              "followUpToken": "PLACEHOLDER"
            }
          }
        }
      }
    }
  }
}

Liste d'erreurs

Les erreurs suivantes génèrent le TTS associé sur l'appareil.

  • aboveMaximumLightEffectsDuration  : La durée maximale d'une heure a été dépassée. Veuillez réessayer.
  • aboveMaximumTimerDuration : Je ne peux régler <device(s)> que pour une durée maximale de <time period>
  • actionNotAvailable : Malheureusement, je ne peux pas faire ça pour le moment. Conseil : Vérifiez les caractéristiques de l'appareil et la logique d'état actuelle dans votre fulfillment.
  • actionUnavailableWhileRunning  : <device(s)> <is/are> currently running, so I can't make any changes.
  • alreadyArmed  : <device(s)> <is/are> already armed.
  • alreadyAtMax : <device(s)> <is/are> already set to the maximum temperature.
  • alreadyAtMin  : <device(s)> <is/are> already set to the minimum temperature.
  • alreadyClosed  : <device(s)> <is/are> already closed.
  • alreadyDisarmed  : <device(s)> <is/are> already disarmed.
  • alreadyDocked  : <device(s)> <is/are> already docked.
  • alreadyInState  : <device(s)> <is/are> already in that state.
  • alreadyLocked  : <device(s)> <is/are> already locked.
  • alreadyOff  : <device(s)> <is/are> already off.
  • alreadyOn : <device(s)> <is/are> already on.
  • alreadyOpen  : <device(s)> <is/are> already open.
  • alreadyPaused  : <device(s)> <is/are> already paused.
  • alreadyStarted  : <device(s)> <is/are> already started.
  • alreadyStopped  : <device(s)> <is/are> already stopped.
  • alreadyUnlocked  : <device(s)> <is/are> already unlocked.
  • ambiguousZoneName  : Désolé, <appareil(s)> ne parvient pas à identifier la zone dont vous parlez. Veuillez vous assurer que vos zones ont des noms uniques, puis réessayez.
  • amountAboveLimit : La quantité est supérieure au maximum autorisé par <device(s)>.
  • appLaunchFailed  : Désolé, impossible de lancer <nom de l'application> sur <appareil(s)>. Conseil : Vérifiez l'ID de l'application et assurez-vous qu'elle est compatible avec le matériel cible.
  • armFailure  : Impossible d'activer <device(s)>.
  • armLevelNeeded : Je ne sais pas à quel niveau d'activation régler <appareil(s)>. Dites "Règle <appareil(s)> sur <sécurité faible>" ou "Règle <appareil(s)> sur <sécurité élevée>".
  • authFailure : Je n'arrive pas à joindre <device(s)>. Vérifiez qu'ils sont entièrement configurés dans l'application.
  • bagFull : Le sac de <device(s)> est plein. Veuillez le vider et réessayer.
  • belowMinimumLightEffectsDuration  : La durée est inférieure à la durée minimale de cinq minutes. Veuillez réessayer.
  • belowMinimumTimerDuration : Je ne peux pas régler <device(s)> pour une durée aussi courte. Veuillez réessayer.
  • binFull  : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : Désolé, je n'ai pas pu annuler l'activation de <device(s)>.
  • cancelTooLate  : Désolé, il est trop tard pour annuler. Utilisez plutôt <device(s)> ou l'appli.
  • channelSwitchFailed : Malheureusement, je n'ai pas pu mettre la chaîne <nom de la chaîne>.Veuillez réessayer plus tard. Conseil : Vérifiez les noms/numéros des chaînes et l'état de l'abonnement de l'utilisateur.
  • chargerIssue : Malheureusement, il semble que <device(s)> <has/have> <a charger issue/charger issues>. Conseil : Le partenaire doit examiner la télémétrie au niveau du matériel et l'état de la batterie.
  • commandInsertFailed  : Impossible de traiter les commandes pour <device(s)>. Conseil : Examinez les performances d'écriture de la base de données ou la logique de mise en file d'attente des commandes internes.
  • deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
  • degreesOutOfRange : Les degrés demandés sont en dehors de la plage pour <device(s)>.
  • deviceAlertNeedsAssistance : <device(s)> <has/have> an active alert and <need(s)> your assistance.
  • deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
  • deviceBusy  : Malheureusement, il semble que <device(s)> est déjà en train d'effectuer une action pour le moment.
  • deviceCharging : Malheureusement, <device(s)> ne peut pas effectuer cette action, car (ha_shared.ItsTheyre size=$item.devices.total_device_count) en charge.
  • deviceClogged  : Malheureusement, il semble que <device(s)> est bloqué.
  • deviceCurrentlyDispensing  : <device(s)> is already dispensing something right now.
  • deviceDoorOpen  : La porte de l'appareil <device(s)> est ouverte. Veuillez la fermer et réessayer.
  • deviceHandleClosed  : La poignée est fermée sur <device(s)>. Veuillez l'ouvrir et réessayer.
  • deviceJammingDetected  : <device(s)> <is/are> jammed.
  • deviceLidOpen  : Le couvercle est ouvert sur <device(s)>. Veuillez le fermer et réessayer.
  • deviceNeedsRepair  : <device(s)> <need(s)> to be repaired. Veuillez contacter votre revendeur local.
  • deviceNotDocked  : Malheureusement, il semble que <device(s)> <isn't/aren't> sur sa station d'accueil. Veuillez <it/le/les> placer dessus et réessayer.
  • deviceNotFound  : <device(s)> <is/are>n't available. Vous pouvez essayer de <le/les> configurer à nouveau. Conseil : Assurez-vous que votre backend maintient toujours Home Graph synchronisé. Appelez requestSync chaque fois que des appareils sont ajoutés ou supprimés.
  • deviceNotMounted : Malheureusement, il semble que <device(s)> ne peut pas faire cela, car il n'est pas installé.
  • deviceNotReady : <device(s)> <is/are>n't ready.
  • deviceStuck  : <device(s)> <is/are> stuck and needs your help.
  • deviceTampered : <device(s)> <has/have> been tampered with.
  • deviceThermalShutdown  : Malheureusement, il semble que <device(s)> s'est éteint en raison de températures extrêmes.
  • directResponseOnlyUnreachable : <device(s)> <doesn't/don't> support remote control.
  • disarmFailure  : <device(s)> n'a pas pu être désactivé.
  • discreteOnlyOpenClose  : Désolé, <device(s)> ne peut être qu'ouvert ou fermé complètement.
  • dispenseAmountAboveLimit  : <device(s)> ne peut pas distribuer une si grande quantité.
  • dispenseAmountBelowLimit : <device(s)> ne peut pas distribuer une si petite quantité.
  • dispenseAmountRemainingExceeded : <device(s)> n'a pas assez de <dispense item> pour faire ça.
  • dispenseFractionalAmountNotSupported : <device(s)> can't dispense fractions of <dispense item>.
  • dispenseFractionalUnitNotSupported : <device(s)> doesn't support fractions of that unit for <dispense item>.
  • dispenseUnitNotSupported  : <device(s)> ne prend pas en charge cette unité pour <dispense item>.
  • doorClosedTooLong  : La porte de <device(s)> n'a pas été ouverte depuis un certain temps. Veuillez l'ouvrir et vérifier s'il y a bien quelque chose dans le micro-ondes, puis réessayer.
  • emergencyHeatOn : <device(s)> <is/are> in Emergency Heat Mode, so <it/they>'ll have to be adjusted by hand.
  • faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
  • floorUnreachable : <device(s)> can't reach that room. Veuillez <le/les> déplacer jusqu'à l'étage concerné et réessayer.
  • functionNotSupported : En fait, <device(s)> ne prend pas en charge cette fonctionnalité. Conseil : Assurez-vous que votre réponse SYNC reflète précisément les fonctionnalités de l'appareil.
  • genericDispenseNotSupported : Je dois savoir ce que vous souhaitez distribuer. Veuillez réessayer en indiquant le nom de l'article.
  • hardError  : Malheureusement, une erreur s'est produite. Je ne peux donc pas contrôler votre appareil connecté.
  • hardError  : Malheureusement, une erreur s'est produite. Je ne peux donc pas contrôler votre appareil connecté.
  • inAutoMode  : <device(s)> <is/are> currently set to auto mode. Pour modifier la température, vous devez <le/les> passer dans un autre mode.
  • inAwayMode : <device(s)> <is/are> currently set to away mode. Pour contrôler votre thermostat, vous devez l'activer manuellement en mode Chez moi à l'aide de l'application Nest sur un téléphone, une tablette ou un ordinateur.
  • inDryMode  : <device(s)> <is/are> currently set to dry mode. Pour modifier la température, vous devez changer de mode.
  • inEcoMode  : <device(s)> <is/are> currently set to eco mode. Pour modifier la température, vous devez passer en mode <it/them>.
  • inFanOnlyMode  : <device(s)> <is/are> currently set to fan-only mode. Pour modifier la température, vous devez changer de mode.
  • inHeatOrCool  : <device(s)> <is/are>n't in heat/cool mode.
  • inHumidifierMode  : <device(s)> <is/are> currently set to humidifier mode. Pour modifier la température, vous devez passer en mode <it/them>.
  • inOffMode  : <device(s)> <is/are> currently off. To change the temperature, you'll need to switch <it/them> to a different mode.
  • inPurifierMode  : <device(s)> <is/are> currently set to purifier mode. Pour modifier la température, vous devez <le/les> passer dans un autre mode.
  • inSleepMode  : <device(s)> <is/are> en mode veille. Veuillez réessayer plus tard.
  • inSoftwareUpdate  : <device(s)> <is/are> currently in a software update.
  • lockFailure  : Impossible de verrouiller <device(s)>. Conseil : Vérifiez si la serrure est bloquée, si la batterie est faible ou si le moteur est défaillant.
  • lockedState : <device(s)> <is/are> currently locked.
  • lockedToRange  : Cette température est en dehors de la plage verrouillée sur <appareil(s)>.
  • lowBattery  : <device(s)> <has/have> low battery.
  • maxSettingReached  : <device(s)> <is/are> already set to the highest setting.
  • maxSpeedReached  : <device(s)> <is/are> already set to the maximum speed.
  • minSettingReached  : <device(s)> <is/are> already set to the lowest setting.
  • minSpeedReached : <device(s)> <is/are> already set to the minimum speed.
  • monitoringServiceConnectionLost  : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
  • needsAttachment : Malheureusement, il semble qu'il manque une pièce indispensable sur <device(s)>. Veuillez la remettre en place et réessayer.
  • needsBin  : Malheureusement, il semble qu'il manque un bac sur <appareil(s)>. Veuillez la remettre en place et réessayer.
  • needsPads  : <device(s)> <need(s)> new pads.
  • needsSoftwareUpdate  : <device(s)> <need(s)> a software update.
  • needsWater  : <device(s)> <need(s)> water.
  • networkProfileNotRecognized  : Désolé, je ne reconnais pas "<network profile>" sur <device(s)>. Conseil : Vérifiez que la chaîne du nom de profil correspond aux profils compatibles dans la réponse SYNC.
  • networkSpeedTestInProgress : Je suis déjà en train de tester <speed/speeds> du réseau <network>.
  • noAvailableApp : Désolé, il semble que <app name> ne soit pas disponible.
  • noAvailableChannel : Malheureusement, il semble que la chaîne <channel name> ne soit pas disponible.
  • noChannelSubscription  : Malheureusement, vous n'êtes pas abonné à la chaîne <channel name> pour l'instant.
  • noTimerExists  : Malheureusement, il semble qu'aucun minuteur n'est réglé sur <device(s)>.
  • notSupported  : Désolé, ce mode n'est pas disponible pour <device(s)>.
  • obstructionDetected  : <device(s)> detected an obstruction.
  • offline , deviceOffline : Désolé, il semble que <device(s)> ne <is/are> pas disponible pour le moment.
  • onRequiresMode  : Veuillez spécifier le mode que vous souhaitez activer.
  • passphraseIncorrect : Malheureusement, il semble que ce code est incorrect.
  • percentOutOfRange : Désolé, je ne peux pas régler <device(s)> sur <percent>.
  • pinIncorrect : (passphraseIncorrect)
  • rainDetected  : Je n'ai pas ouvert <device(s)>, car de la pluie a été détectée.
  • rangeTooClose  : Ces températures sont trop proches pour une plage de chauffage/climatisation pour <device(s)>. Choisissez des températures plus éloignées.
  • relinkRequired  : Malheureusement, il semble y avoir un problème avec votre compte. Veuillez utiliser l'application Assistant ou Google Home pour associer de nouveau <device(s)>. Conseil : Assurez-vous que votre serveur renvoie ce code lorsqu'un jeton d'actualisation est définitivement non valide.
  • remoteSetDisabled :
    • Paramètre facultatif errorCodeReason
    • currentlyArmed - Pardon, la sécurité étant déjà activée, vous devez utiliser <appareil(s)> ou l'application pour apporter des modifications.
    • remoteUnlockNotAllowed - Désolé, je ne peux pas déverrouiller <appareil(s)> à distance.
    • remoteControlOff - Cette action est désactivée pour le moment. Veuillez activer la télécommande sur <device(s)>, puis réessayer.
    • childSafetyModeActive - Cette action est désactivée pour <appareil(s)> lorsque la sécurité enfant est activée.
  • roomsOnDifferentFloors  : <device(s)> ne peut pas atteindre ces pièces, car elles sont situées à différents étages.
  • safetyShutOff  : <device(s)> <is/are> en mode Arrêt de sécurité. <it/they> <must> donc être réglé<s> manuellement.
  • sceneCannotBeApplied  : Désolé, impossible d'appliquer <device(s)>. Conseil : Vérifiez l'état interne des scènes de l'utilisateur sur le cloud du partenaire.
  • securityRestriction  : <device(s)> <has/have> a security restriction.
  • softwareUpdateNotAvailable  : Désolé, aucune mise à jour logicielle n'est disponible sur <device(s)>.
  • startRequiresTime  : Pour cela, vous devez me dire combien de temps vous voulez faire marcher <device(s)>.
  • stillCoolingDown : <device(s)> <is/are> still cooling down.
  • stillWarmingUp  : <device(s)> <is/are> still warming up.
  • streamUnavailable : Désolé, il semble que le flux ne soit pas disponible actuellement sur <device(s)>.
  • streamUnplayable : Désolé, je ne peux pas lire le flux de <device(s)> pour le moment. Conseil : Vérifiez la signalisation WebRTC/HLS et assurez-vous que l'URL du flux est valide.
  • tankEmpty  : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • targetAlreadyReached  : Désolé, il semble que ce soit déjà la température actuelle.
  • timerValueOutOfRange  : <device(s)> ne peut pas être réglé sur cette durée.
  • tooManyFailedAttempts : Désolé, trop de tentatives infructueuses. Veuillez accéder à l'application de votre appareil pour effectuer cette action.
  • transientError  : Malheureusement, une erreur s'est produite lors du contrôle de <device(s)>. Veuillez réessayer. Conseil : En général, ces erreurs se manifestent par l'interruption de la connexion à un appareil ou à un service. ou si de nouvelles connexions à un serveur ne peuvent pas être ouvertes.
  • turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
  • unableToLocateDevice  : Je n'ai pas pu localiser <device(s)>. Conseil : Vérifiez la connectivité locale de l'appareil (Wi-Fi/Bluetooth).
  • unknownFoodPreset : <device(s)> n'est pas compatible avec ce préréglage.
  • unlockFailure  : <device(s)> n'a pas pu être déverrouillé. Conseil : Recherchez les blocages matériels, les piles faibles ou les saisies de code incorrectes.
  • unpausableState : Impossible de mettre <device(s)> en pause pour le moment.
  • userCancelled : ok
  • valueOutOfRange  : Impossible de régler <device(s)> sur cette température.

Rapports sur l'état en ligne et hors connexion

Lorsqu'un appareil est hors connexion, vous devez signaler <code{"online": code="" dir="ltr" false}<="" translate="no"> à Report State dans les cinq minutes suivant le comportement de l'appareil. À l'inverse, lorsqu'un appareil se reconnecte, vous devez signaler <code{"online": code="" dir="ltr" translate="no" true}<=""> à Report State dans les cinq minutes suivant le comportement de l'appareil. Chaque fois qu'un appareil se reconnecte, le partenaire doit signaler tous les états actuels de l'appareil à l'aide de l'API reportStateAndNotification. Cet exemple montre qu'un type d'appareil light est en ligne et indique tous les états actuels de l'appareil.
"requestId": "test-request-id",
  "agentUserId": "agent-user-1",
    "payload":{
      "devices": {
        "states": {
          "device-id-1": {
            "brightness": 65,
            "on": true,
            "online": true
          }
          "notifications": {},
        }
      }
    }

Exceptions

Vous devez renvoyer une exception lorsqu'un problème ou une alerte sont associés à une commande. La commande peut réussir ou échouer.

Si la commande a abouti (état = "SUCCESS"), signalez les exceptions à l'aide de la caractéristique StatusReport (pour les appareils autres que la cible) ou en renvoyant un exceptionCode approprié (pour l'appareil cible).

Par exemple, si le filtre à peluches du sèche-linge est plein, l'utilisateur peut toujours démarrer son sèche-linge, mais vous pouvez l'avertir de cet état. De même, lorsqu'un appareil a une batterie faible, mais pas vide, vous pouvez toujours exécuter une commande, mais vous devez l'informer que la batterie de l'appareil est faible.

Si la commande échoue en raison d'exceptions, l'état doit être "EXCEPTIONS" et les exceptions doivent être signalées à l'aide de la caractéristique StatusReport.

Exception non bloquante (SUCCESS) concernant l'appareil cible

Cet exemple concerne le verrouillage de la porte :

La batterie de la serrure de la porte d'entrée est faible. Je verrouille la porte d'entrée.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isLocked": true,
        "isJammed": false,
        "exceptionCode": "lowBattery"
      }
    }]
  }
}

Exception non bloquante (SUCCESS) concernant un autre appareil utilisant StatusReport

Cet exemple concerne l'activation d'un système de sécurité : OK, j'active le système de sécurité. La vitre avant est ouverte.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isArmed": true,
        "currentArmLevel": "L2",
        "currentStatusReport": [{
          "blocking": false,
          "deviceTarget": "sensor_id1",
          "priority": 0,
          "statusCode": "deviceOpen"
        }]
      }
    }]
  }
}

Exception de blocage concernant un autre appareil utilisant StatusReport

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "device-id-1": {
        "on": true,
        "online": true,
        "status": "EXCEPTIONS",
        "currentStatusReport": [{
            "blocking": true,
            "deviceTarget": "device-id-1",
            "priority": 0,
            "statusCode": "lowBattery"
          },
          {
            "blocking": true,
            "deviceTarget": "front_window_id",
            "priority": 1,
            "statusCode": "deviceOpen"
          },
          {
            "blocking": true,
            "deviceTarget": "back_window_id",
            "priority": 1,
            "statusCode": "deviceOpen"
          }
        ]
      }
    }
  }
}

Liste d'exceptions

Les exceptions suivantes génèrent le TTS associé sur l'appareil.

  • bagFull : Le sac de <device(s)> est plein. Veuillez le vider et réessayer.
  • binFull  : <device(s)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected  : Du monoxyde de carbone a été détecté dans <nom de la maison>.
  • deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
  • deviceJammingDetected  : <device(s)> <is/are> jammed.
  • deviceMoved  : <device(s)> <was/were> moved.
  • deviceOpen : <device(s)> <is/are> open.
  • deviceTampered : <device(s)> <has/have> been tampered with.
  • deviceUnplugged : <device(s)> <is/are> unplugged.
  • floorUnreachable : <device(s)> can't reach that room. Veuillez <le/les> déplacer jusqu'à l'étage concerné et réessayer.
  • hardwareFailure : <device(s)> <has/have> a hardware problem.
  • inSoftwareUpdate  : <device(s)> <is/are> currently in a software update.
  • isBypassed  : <device(s)> <is/are> currently bypassed.
  • lowBattery  : <device(s)> <has/have> low battery.
  • motionDetected  : <device(s)> <detect(s)> motion.
  • needsPads  : <device(s)> <need(s)> new pads.
  • needsSoftwareUpdate  : <device(s)> <need(s)> a software update.
  • needsWater  : <device(s)> <need(s)> water.
  • networkJammingDetected  : la connexion réseau domestique à <device(s)> ne fonctionne pas correctement.
  • noIssuesReported  : <device(s)> n'a signalé aucun problème.
  • roomsOnDifferentFloors  : <device(s)> ne peut pas atteindre ces pièces, car elles sont situées à différents étages.
  • runCycleFinished : <device(s)> <has/have> finished running.
  • securityRestriction  : <device(s)> <has/have> a security restriction.
  • smokeDetected  : De la fumée a été détectée dans <house name>.
  • tankEmpty  : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • usingCellularBackup  : <device(s)> <is/are> using cellular backup.
  • waterLeakDetected : <device(s)> <detect(s)> a water leak.
</code{"online":></code{"online":>