Compare commits

..

49 Commits

Author SHA1 Message Date
Franck Nijhof
e5f08ee657 Merge pull request #36756 from home-assistant/rc 2020-06-13 15:01:30 +02:00
Bram Kragten
12c649ba27 Bumped version to 0.111.2 2020-06-13 12:49:19 +02:00
Bram Kragten
5eb7f5fcf3 Update frontend to 20200603.3 (#36751) 2020-06-13 12:48:19 +02:00
J. Nick Koston
48b6f41048 Fix history timezone with postgres and other dbs (#36746) 2020-06-13 12:48:18 +02:00
Robert Svensson
16d045aa9f Make Axis non-privileged users work again (#36731) 2020-06-13 12:48:18 +02:00
Franck Nijhof
66ad69bff3 Fix logbook filtering for described events (#36727) 2020-06-13 12:46:57 +02:00
Fredrik Erlandsson
599288dae2 Fix Daikin discovery (#36704) 2020-06-13 12:37:44 +02:00
Alexei Chetroi
2594f11b34 Fix ZHA Metering channel formatting method (#36697)
Since zigpy change to support bitmap classes, formatting string was incorrectly generated for the newly joined devices with SmartEnergy metering clusters.
2020-06-13 12:37:44 +02:00
jjlawren
ad7edb4abe Fix missing options in Plex config entry (#36683) 2020-06-13 12:37:43 +02:00
Paulus Schoutsen
9e73853d65 Guard OwnTracks writing state before hass available (#36680) 2020-06-13 12:37:42 +02:00
zewelor
504cb26329 Fix nightlight support detection (#36656) 2020-06-13 12:37:41 +02:00
Paulus Schoutsen
394966e979 Merge pull request #36673 from home-assistant/rc 2020-06-11 12:01:47 -07:00
Franck Nijhof
aac7cf129d Fix packages when config schema is fully deprecated (#36674)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-06-11 11:00:06 -07:00
Paulus Schoutsen
e2c9af42e8 Bumped version to 0.111.1 2020-06-11 10:15:52 -07:00
J. Nick Koston
c9c8e8160f Remove powerwall attributes no longer present in latest firmware (#36667) 2020-06-11 10:15:35 -07:00
J. Nick Koston
c5972690ac Update pymyq for latest api requirements (#36666) 2020-06-11 10:15:34 -07:00
starkillerOG
c2a261370e Xiaomi Miio gateway: add ip to zeroconf discovery title (#36653)
* add ip to discovery title of xiaomi miio gateway

* add flow title to identify multiple gateways by IP

* clearify gateway token

* black formatting

* grammer improvements

Co-authored-by: Franck Nijhof <git@frenck.dev>

* grammer improvements

Co-authored-by: Franck Nijhof <git@frenck.dev>

Co-authored-by: Franck Nijhof <git@frenck.dev>
2020-06-11 10:15:33 -07:00
Fredrik Erlandsson
4c139076ef Fix Daikin config flow for zeroconf devices (#36571) 2020-06-11 10:15:32 -07:00
Xiaonan Shen
4bccb6e72b Fix command line sensors removing quotes with template (#35559)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-06-11 10:15:31 -07:00
Paulus Schoutsen
f05288b597 Update translations 2020-06-11 10:15:19 -07:00
Franck Nijhof
818b45384d Merge pull request #36626 from home-assistant/rc 2020-06-10 16:07:38 +02:00
Franck Nijhof
1bbd05dee7 Bumped version to 0.111.0 2020-06-10 14:58:56 +02:00
Martin Hjelmare
d6f7a984b2 Bump coronavirus to 1.1.1 (#36614) 2020-06-10 14:01:48 +02:00
Paulus Schoutsen
01756011ff Bump hass-nabucasa to 0.34.6 (#36613) 2020-06-10 14:01:44 +02:00
Bram Kragten
d7ad974244 Escape <> in owntracks translations (#36612) 2020-06-10 14:01:39 +02:00
Paulus Schoutsen
a69938afa2 Bumped version to 0.111.0b5 2020-06-09 12:39:29 -07:00
Paulus Schoutsen
94c3d9bac0 Fix default for loading games file ps4 (#36592) 2020-06-09 12:39:08 -07:00
Bas Nijholt
fb7af0384f bump aiokef to 0.2.10 (#36574)
0.2.9 generated a lot of calls on the event loop.
2020-06-09 12:39:07 -07:00
Donnie
5a9a95abe4 Fix nanoleaf incorrect effect update (#36517) 2020-06-09 12:39:06 -07:00
Paulus Schoutsen
e1ad108b6d Merge remote-tracking branch 'origin/master' into rc 2020-06-09 12:38:49 -07:00
Paulus Schoutsen
a76620b76f Merge pull request #36607 from home-assistant/110.7 2020-06-09 12:10:20 -07:00
Paulus Schoutsen
13fd80affa Bumped version to 0.110.7 2020-06-09 11:07:32 -07:00
Franck Nijhof
d576749530 Fix mobile_app missing state in sensor registration (#36604) 2020-06-09 11:07:27 -07:00
Paulus Schoutsen
111a00aeeb Bumped version to 0.111.0b4 2020-06-08 12:28:53 -07:00
Franck Nijhof
b3d5717df8 Fix mobile_app sensor re-registration handling (#36567) 2020-06-08 12:27:12 -07:00
Paulus Schoutsen
a84378bb79 Mobile app fixes (#36559) 2020-06-08 12:27:11 -07:00
shbatm
53ba45cc8f Add Z-Wave Notification Sensor support to ISY994 (#36548) 2020-06-08 12:27:10 -07:00
Jörg Thalheim
5d77eb1839 Fix intent component initialisation (#36064)
The intent component expect this method from every module that is called intent.
Fixes #35522
2020-06-08 12:27:09 -07:00
Paulus Schoutsen
517159dc4e Merge remote-tracking branch 'origin/master' into rc 2020-06-08 11:17:27 -07:00
Paulus Schoutsen
a9287b7117 Merge pull request #36579 from home-assistant/110.6 2020-06-08 11:15:35 -07:00
Paulus Schoutsen
0b7bcc87df Bumped version to 0.110.6 2020-06-08 10:14:45 -07:00
Franck Nijhof
482661f82c Fix mobile_app registering/update sensor values with an unknown state (#36566) 2020-06-08 10:14:40 -07:00
Paulus Schoutsen
865d65c380 Bumped version to 0.111.0b3 2020-06-07 17:24:48 -07:00
Franck Nijhof
609d202c4d Fix WLED power and brightness with WLED 0.10+ (#36529) 2020-06-07 17:24:43 -07:00
matgad
e43a0087e4 Bump version zigpy-cc (#36506) 2020-06-07 17:24:43 -07:00
Paulus Schoutsen
b9bc147339 Update netdisco (#36499) 2020-06-07 17:24:42 -07:00
Bram Kragten
dd3b0df22d Update frontend to 20200603.2 (#36494) 2020-06-07 17:24:41 -07:00
Erik Montnemery
c987ca735e Bump pychromecast to 6.0.0 (#36414)
* Revert "Prevent race in pychromecast.start_discovery (#36350)"

This reverts commit 391983a0cf.

* Adapt to pychromecast 6.0.0
2020-06-07 17:24:40 -07:00
Paulus Schoutsen
4b1761ccb5 Use builtin mock (#36473) 2020-06-05 15:12:50 -07:00
308 changed files with 3164 additions and 439 deletions

View File

@@ -12,7 +12,7 @@
"user": { "user": {
"data": { "data": {
"password": "Passwuert", "password": "Passwuert",
"username": "E-Mail Adress" "username": "E-Mail"
}, },
"title": "F\u00ebllt \u00e4r Abode Login Informatiounen aus." "title": "F\u00ebllt \u00e4r Abode Login Informatiounen aus."
} }

View File

@@ -4,7 +4,8 @@
"user": { "user": {
"data": { "data": {
"id": "Host-ID" "id": "Host-ID"
} },
"title": "W\u00e4hlen Sie einen Hub zum Hinzuf\u00fcgen aus"
} }
} }
} }

View File

@@ -1,5 +1,8 @@
{ {
"config": { "config": {
"abort": {
"all_configured": "Aucun nouveau hub Pulse n'a \u00e9t\u00e9 d\u00e9couvert."
},
"step": { "step": {
"user": { "user": {
"data": { "data": {
@@ -8,5 +11,6 @@
"title": "Choisissez un hub \u00e0 ajouter" "title": "Choisissez un hub \u00e0 ajouter"
} }
} }
} },
"title": "Rollease Acmeda Automate"
} }

View File

@@ -3,6 +3,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Servidor",
"password": "Palavra-passe", "password": "Palavra-passe",
"username": "Nome de Utilizador" "username": "Nome de Utilizador"
} }

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Servidor"
}
}
}
}
}

View File

@@ -10,7 +10,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"api_key": "Airly API-Schl\u00fcssel", "api_key": "API-Schl\u00fcssel",
"latitude": "Breitengrad", "latitude": "Breitengrad",
"longitude": "L\u00e4ngengrad", "longitude": "L\u00e4ngengrad",
"name": "Name der Integration" "name": "Name der Integration"

View File

@@ -10,7 +10,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"api_key": "Airly API Schl\u00ebssel", "api_key": "API Schl\u00ebssel",
"latitude": "Breedegrad", "latitude": "Breedegrad",
"longitude": "L\u00e4ngegrad", "longitude": "L\u00e4ngegrad",
"name": "Numm vun der Installatioun" "name": "Numm vun der Installatioun"

View File

@@ -3,6 +3,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"api_key": "",
"latitude": "Latitude", "latitude": "Latitude",
"longitude": "Longitude" "longitude": "Longitude"
}, },

View File

@@ -20,7 +20,7 @@
"node_pro": { "node_pro": {
"data": { "data": {
"ip_address": "IP-Adresse/Hostname des Ger\u00e4ts", "ip_address": "IP-Adresse/Hostname des Ger\u00e4ts",
"password": "Ger\u00e4tekennwort" "password": "Passwort"
}, },
"description": "\u00dcberwachen Sie eine pers\u00f6nliche AirVisual-Einheit. Das Passwort kann von der Benutzeroberfl\u00e4che des Ger\u00e4ts abgerufen werden.", "description": "\u00dcberwachen Sie eine pers\u00f6nliche AirVisual-Einheit. Das Passwort kann von der Benutzeroberfl\u00e4che des Ger\u00e4ts abgerufen werden.",
"title": "Konfigurieren Sie einen AirVisual Node/Pro" "title": "Konfigurieren Sie einen AirVisual Node/Pro"

View File

@@ -21,7 +21,7 @@
"node_pro": { "node_pro": {
"data": { "data": {
"ip_address": "IP Adresse / Numm vun der Unit\u00e9it", "ip_address": "IP Adresse / Numm vun der Unit\u00e9it",
"password": "Passwuert vun der Unit\u00e9it" "password": "Passwuert"
}, },
"description": "Pers\u00e9inlech Airvisual Unit\u00e9it iwwerwaachen. Passwuert kann vum UI vum Apparat ausgelies ginn.", "description": "Pers\u00e9inlech Airvisual Unit\u00e9it iwwerwaachen. Passwuert kann vum UI vum Apparat ausgelies ginn.",
"title": "Airvisual Node/Pro ariichten" "title": "Airvisual Node/Pro ariichten"
@@ -32,7 +32,7 @@
"node_pro": "Airvisual Node Pro", "node_pro": "Airvisual Node Pro",
"type": "Typ vun der Integratioun" "type": "Typ vun der Integratioun"
}, },
"description": "Loft Qualit\u00e9it an enger geografescher Lag iwwerwaachen.", "description": "Typ vun Airvisual Donn\u00e9\u00eb fir d'Iwwerwachung auswielen.",
"title": "AirVisual konfigur\u00e9ieren" "title": "AirVisual konfigur\u00e9ieren"
} }
} }

View File

@@ -40,6 +40,16 @@ def async_setup(hass):
hass.http.register_view(AlexaIntentsView) hass.http.register_view(AlexaIntentsView)
async def async_setup_intents(hass):
"""
Do intents setup.
Right now this module does not expose any, but the intent component breaks
without it.
"""
pass # pylint: disable=unnecessary-pass
class UnknownRequest(HomeAssistantError): class UnknownRequest(HomeAssistantError):
"""When an unknown Alexa request is passed in.""" """When an unknown Alexa request is passed in."""

View File

@@ -14,7 +14,7 @@
}, },
"step": { "step": {
"auth": { "auth": {
"description": "Follegt d\u00ebsem [Link]({authorization_url}) an <b>erlaabtt</b> den Acc\u00e8s zu \u00e4rem Ambiclimate Kont , a kommt dann zer\u00e9ck heihin an dr\u00e9ck op <b>ofsch\u00e9cken</b> hei \u00ebnnen.\n(Stellt s\u00e9cher dass den Type vun Callback {cb_url} ass.)", "description": "Follegt d\u00ebsem [Link]({authorization_url}) an ***erlaabt** den Acc\u00e8s zu \u00e4rem Ambiclimate Kont , a kommt dann zer\u00e9ck heihin an dr\u00e9ck op **ofsch\u00e9cken** hei \u00ebnnen.\n(Stellt s\u00e9cher dass den Type vun Callback {cb_url} ass.)",
"title": "Ambiclimate authentifiz\u00e9ieren" "title": "Ambiclimate authentifiz\u00e9ieren"
} }
} }

View File

@@ -10,7 +10,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"api_key": "API Key", "api_key": "API Schl\u00fcssel",
"app_key": "Anwendungsschl\u00fcssel" "app_key": "Anwendungsschl\u00fcssel"
}, },
"title": "Gib deine Informationen ein" "title": "Gib deine Informationen ein"

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "El dispositiu ja s'ha configurat.",
"already_in_progress": "El flux de dades de configuraci\u00f3 pel dispositiu ja est\u00e0 en curs.",
"unable_to_connect": "No es pot connectar amb el dispositiu."
},
"flow_title": "Arcam FMJ a {host}",
"step": {
"confirm": {
"description": "Vols afegir l'Arcam FMJ `{host}` a Home Assistant?"
},
"user": {
"data": {
"host": "Amfitri\u00f3",
"port": "Port"
},
"description": "Introdueix el nom de l'amfitri\u00f3 o l'adre\u00e7a IP del dispositiu."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "S'ha sol\u00b7licitat l'activaci\u00f3 de {entity_name}" "turn_on": "S'ha sol\u00b7licitat l'activaci\u00f3 de {entity_name}"

View File

@@ -1,4 +1,18 @@
{ {
"config": {
"abort": {
"unable_to_connect": "Es konnte keine Verbindung mit dem Ger\u00e4t hergestellt werden."
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "Bitte gib den Hostnamen oder die IP-Adresse des Ger\u00e4ts ein."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "{entity_name} wurde zum Einschalten aufgefordert" "turn_on": "{entity_name} wurde zum Einschalten aufgefordert"

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "Device was already setup.",
"already_in_progress": "Config flow for device is already in progress.",
"unable_to_connect": "Unable to connect to device."
},
"flow_title": "Arcam FMJ on {host}",
"step": {
"confirm": {
"description": "Do you want to add Arcam FMJ on `{host}` to Home Assistant?"
},
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "Please enter the host name or IP address of device."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "{entity_name} was requested to turn on" "turn_on": "{entity_name} was requested to turn on"

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado.",
"already_in_progress": "La configuraci\u00f3n del flujo para el dispositivo ya est\u00e1 en marcha.",
"unable_to_connect": "No se puede conectar con el dispositivo."
},
"flow_title": "Arcam FMJ en {host}",
"step": {
"confirm": {
"description": "\u00bfQuieres a\u00f1adir el Arcam FMJ en `{host}` a Home Assistant?"
},
"user": {
"data": {
"host": "Host",
"port": "Puerto"
},
"description": "Por favor, introduce el nombre del host o la direcci\u00f3n IP del dispositivo."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "Se solicit\u00f3 encender {entity_name}" "turn_on": "Se solicit\u00f3 encender {entity_name}"

View File

@@ -1,3 +1,7 @@
{ {
"title": "Arcam FMJ" "device_automation": {
"trigger_type": {
"turn_on": "Il a \u00e9t\u00e9 demand\u00e9 \u00e0 {nom_de_l'entit\u00e9} de s'allumer"
}
}
} }

View File

@@ -1,4 +1,28 @@
{ {
"config": {
"abort": {
"already_configured": "Il dispositivo era gi\u00e0 configurato.",
"already_in_progress": "Il flusso di configurazione per il dispositivo \u00e8 gi\u00e0 in corso.",
"unable_to_connect": "Impossibile connettersi al dispositivo."
},
"error": {
"one": "uno",
"other": "altri"
},
"flow_title": "Arcam FMJ su {host}",
"step": {
"confirm": {
"description": "Vuoi aggiungere Arcam FMJ su `{host}` a Home Assistant?"
},
"user": {
"data": {
"host": "Host",
"port": "Porta"
},
"description": "Inserisci il nome host o l'indirizzo IP del dispositivo."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "\u00c8 stato richiesto di attivare {entity_name}" "turn_on": "\u00c8 stato richiesto di attivare {entity_name}"

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "\uae30\uae30\uac00 \uc774\ubbf8 \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4",
"already_in_progress": "\uae30\uae30 \uad6c\uc131\uc774 \uc774\ubbf8 \uc9c4\ud589 \uc911\uc785\ub2c8\ub2e4.",
"unable_to_connect": "\uae30\uae30\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4."
},
"flow_title": "Arcam FMJ: {host}",
"step": {
"confirm": {
"description": "Home Assistant \uc5d0 Arcam FMJ `{host}` \uc744(\ub97c) \ucd94\uac00\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?"
},
"user": {
"data": {
"host": "\ud638\uc2a4\ud2b8",
"port": "\ud3ec\ud2b8"
},
"description": "\uae30\uae30\uc758 \ud638\uc2a4\ud2b8 \uc774\ub984 \ub610\ub294 IP \uc8fc\uc18c\ub97c \uc785\ub825\ud574\uc8fc\uc138\uc694."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "{entity_name} \uc774(\uac00) \ucf1c\uc9c0\ub3c4\ub85d \uc694\uccad\ub418\uc5c8\uc744 \ub54c" "turn_on": "{entity_name} \uc774(\uac00) \ucf1c\uc9c0\ub3c4\ub85d \uc694\uccad\ub418\uc5c8\uc744 \ub54c"

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "Apparat ass scho konfigur\u00e9iert",
"already_in_progress": "Konfiguratioun's Oflaf fir den Apparat ass schonn am gaangen.",
"unable_to_connect": "Keng Verbindung mam Apparat m\u00e9iglech."
},
"flow_title": "Arcam FMJ um {host}",
"step": {
"confirm": {
"description": "Soll den Arcam FMJ um `{host}` am Home Assistant dob\u00e4i gesaat ginn?"
},
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "G\u00ebff den Numm oder IP-Adress vum Apparat un."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "{entity_name} soll ugeschalt ginn" "turn_on": "{entity_name} soll ugeschalt ginn"

View File

@@ -1,4 +1,20 @@
{ {
"config": {
"abort": {
"already_configured": "Enheten var allerede konfigurert.",
"already_in_progress": "Konfigurasjonsflyt for enhet p\u00e5g\u00e5r allerede.",
"unable_to_connect": "Kan ikke koble til enheten."
},
"flow_title": "Arcam FMJ p\u00e5 {host}",
"step": {
"confirm": {
"description": "Vil du legge Arcam FMJ p\u00e5 ` {host} ` til Home Assistant? "
},
"user": {
"description": "Vennligst skriv inn vertsnavnet eller IP-adressen til enheten."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "{entity_name} ble bedt om \u00e5 sl\u00e5 p\u00e5" "turn_on": "{entity_name} ble bedt om \u00e5 sl\u00e5 p\u00e5"

View File

@@ -0,0 +1,12 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Servidor",
"port": "Porto"
}
}
}
}
}

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430.",
"already_in_progress": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f.",
"unable_to_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443."
},
"flow_title": "Arcam FMJ {host}",
"step": {
"confirm": {
"description": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Arcam FMJ `{host}`?"
},
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442",
"port": "\u041f\u043e\u0440\u0442"
},
"description": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u0438\u043b\u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430."
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "\u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 {entity_name}" "turn_on": "\u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 {entity_name}"

View File

@@ -1,4 +1,24 @@
{ {
"config": {
"abort": {
"already_configured": "\u8a2d\u5099\u5df2\u8a2d\u5b9a\u3002",
"already_in_progress": "\u8a2d\u5099\u8a2d\u5b9a\u5df2\u7d93\u9032\u884c\u4e2d\u3002",
"unable_to_connect": "\u7121\u6cd5\u9023\u7dda\u81f3\u8a2d\u5099\u3002"
},
"flow_title": "Arcam FMJ \uff08{host}\uff09",
"step": {
"confirm": {
"description": "\u662f\u5426\u8981\u5c07 Arcam FMJ `{host}` \u65b0\u589e\u81f3 Home Assistant\uff1f"
},
"user": {
"data": {
"host": "\u4e3b\u6a5f\u7aef",
"port": "\u901a\u8a0a\u57e0"
},
"description": "\u8acb\u8f38\u5165\u4e3b\u6a5f\u7aef\u540d\u7a31\u6216 Heos \u8a2d\u5099 IP \u4f4d\u5740\u3002"
}
}
},
"device_automation": { "device_automation": {
"trigger_type": { "trigger_type": {
"turn_on": "{entity_name} \u4f9d\u9700\u6c42\u958b\u555f" "turn_on": "{entity_name} \u4f9d\u9700\u6c42\u958b\u555f"

View File

@@ -11,7 +11,7 @@
"data": { "data": {
"email": "Email (Optional)", "email": "Email (Optional)",
"host": "Host", "host": "Host",
"port": "Port (10000)" "port": "Port"
}, },
"title": "Stellen Sie eine Verbindung zum Ger\u00e4t her" "title": "Stellen Sie eine Verbindung zum Ger\u00e4t her"
} }

View File

@@ -4,7 +4,8 @@
"already_configured": "Un seul appareil Atag peut \u00eatre ajout\u00e9 \u00e0 Home Assistant" "already_configured": "Un seul appareil Atag peut \u00eatre ajout\u00e9 \u00e0 Home Assistant"
}, },
"error": { "error": {
"connection_error": "Impossible de se connecter, veuillez r\u00e9essayer" "connection_error": "Impossible de se connecter, veuillez r\u00e9essayer",
"unauthorized": "Pairage refus\u00e9, v\u00e9rifiez la demande d'authentification de l'appareil"
}, },
"step": { "step": {
"user": { "user": {

View File

@@ -1,7 +1,7 @@
{ {
"config": { "config": {
"abort": { "abort": {
"already_configured": "Home Assistant \uc5d0\ub294 \ud558\ub098\uc758 Atag \uae30\uae30\ub9cc \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4" "already_configured": "\uae30\uae30\uac00 \uc774\ubbf8 HomeAssistant \uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
}, },
"error": { "error": {
"connection_error": "\uc5f0\uacb0\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud574\uc8fc\uc138\uc694.", "connection_error": "\uc5f0\uacb0\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud574\uc8fc\uc138\uc694.",

View File

@@ -1,7 +1,7 @@
{ {
"config": { "config": {
"abort": { "abort": {
"already_configured": "N\u00ebmmen 1 Atag Apparat kann am Home Assistant dob\u00e4igesat ginn" "already_configured": "D\u00ebsen Apparat ass schonn am Home Assistant dob\u00e4igesat ginn"
}, },
"error": { "error": {
"connection_error": "Feeler beim verbannen, prob\u00e9ier w.e.g. nach emol.", "connection_error": "Feeler beim verbannen, prob\u00e9ier w.e.g. nach emol.",
@@ -12,7 +12,7 @@
"data": { "data": {
"email": "E-Mail (Optionell)", "email": "E-Mail (Optionell)",
"host": "Apparat", "host": "Apparat",
"port": "Port (10000)" "port": "Port"
}, },
"title": "Mam Apparat verbannen" "title": "Mam Apparat verbannen"
} }

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Servidor"
}
}
}
}
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "Aquesta adre\u00e7a ja est\u00e0 configurada."
},
"error": {
"invalid_country_code": "Codi de pa\u00eds desconegut.",
"invalid_house_number": "N\u00famero de casa no v\u00e0lid."
},
"step": {
"user": {
"data": {
"country_code": "Codi de pa\u00eds de 2 lletres",
"house_number": "N\u00famero de casa",
"house_number_extension": "Ampliaci\u00f3 de n\u00famero de casa",
"zip_code": "Codi postal"
},
"description": "Introdueix la teva adre\u00e7a",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,18 @@
{
"config": {
"error": {
"invalid_house_number": "Ung\u00fcltige Hausnummer"
},
"step": {
"user": {
"data": {
"house_number": "Hausnummer",
"zip_code": "Postleitzahl"
},
"description": "Gibt deine Adresse ein",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "This address is already configured."
},
"error": {
"invalid_country_code": "Unknown 2 letter country code.",
"invalid_house_number": "Invalid house number."
},
"step": {
"user": {
"data": {
"country_code": "2 Letter country code",
"house_number": "House number",
"house_number_extension": "House number extension",
"zip_code": "Zip code"
},
"description": "Enter your address",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "Esta direcci\u00f3n ya est\u00e1 configurada."
},
"error": {
"invalid_country_code": "C\u00f3digo de pa\u00eds de 2 letras desconocido.",
"invalid_house_number": "N\u00famero de casa no v\u00e1lido."
},
"step": {
"user": {
"data": {
"country_code": "C\u00f3digo de pa\u00eds de 2 letras",
"house_number": "N\u00famero de casa",
"house_number_extension": "Extensi\u00f3n del n\u00famero de casa",
"zip_code": "C\u00f3digo postal"
},
"description": "Introduce tu direccion",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"error": {
"invalid_house_number": "Num\u00e9ro de maison invalide."
},
"step": {
"user": {
"data": {
"country_code": "Code pays \u00e0 2 lettres",
"house_number": "Num\u00e9ro de maison",
"house_number_extension": "Extension de num\u00e9ro de maison",
"zip_code": "Code postal"
},
"description": "Entrez votre adresse",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "Questo indirizzo \u00e8 gi\u00e0 configurato."
},
"error": {
"invalid_country_code": "Codice paese di 2 lettere sconosciuto.",
"invalid_house_number": "Numero civico non valido."
},
"step": {
"user": {
"data": {
"country_code": "Codice paese di 2 lettere",
"house_number": "Numero civico",
"house_number_extension": "Estensione del numero civico",
"zip_code": "Codice di avviamento postale"
},
"description": "Inserisci il tuo indirizzo",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "\uc774 \uc8fc\uc18c\ub294 \uc774\ubbf8 \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4."
},
"error": {
"invalid_country_code": "\uc54c \uc218 \uc5c6\ub294 \uad6d\uac00\ucf54\ub4dc\uc785\ub2c8\ub2e4.",
"invalid_house_number": "\uc9d1 \ubc88\ud638\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
},
"step": {
"user": {
"data": {
"country_code": "2 \ubb38\uc790 \uad6d\uac00\ucf54\ub4dc",
"house_number": "\uc9d1 \ubc88\ud638",
"house_number_extension": "\uc9d1 \ubc88\ud638 \ucd94\uac00\uc815\ubcf4",
"zip_code": "\uc6b0\ud3b8 \ubc88\ud638"
},
"description": "\uc8fc\uc18c\ub97c \uc785\ub825\ud574\uc8fc\uc138\uc694",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "D\u00ebs Adress ass scho konfigur\u00e9iert."
},
"error": {
"invalid_house_number": "Ong\u00eblteg Haus Nummer"
},
"step": {
"user": {
"data": {
"house_number": "Haus Nummer",
"house_number_extension": "Haus Nummer Extensioun",
"zip_code": "Postleitzuel"
},
"description": "G\u00ebff deng Adresse un",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "Denne adressen er allerede konfigurert."
},
"error": {
"invalid_country_code": "Ukjent landskode p\u00e5 2 bokstaver.",
"invalid_house_number": "Ugyldig husnummer."
},
"step": {
"user": {
"data": {
"country_code": "2 Bokstavs landskode",
"house_number": "Husnummer",
"house_number_extension": "Utvidelse av husnummer",
"zip_code": "Postnummer"
},
"description": "Skriv inn adressen din",
"title": ""
}
}
},
"title": ""
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430."
},
"error": {
"invalid_country_code": "\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0434\u0432\u0443\u0445\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b.",
"invalid_house_number": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0434\u043e\u043c\u0430."
},
"step": {
"user": {
"data": {
"country_code": "\u0414\u0432\u0443\u0445\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b",
"house_number": "\u041d\u043e\u043c\u0435\u0440 \u0434\u043e\u043c\u0430",
"house_number_extension": "\u041b\u0438\u0442\u0435\u0440 \u0434\u043e\u043c\u0430 / \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435",
"zip_code": "\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441"
},
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 Home Assistant \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Avri.",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"already_configured": "\u6b64\u5730\u5740\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210\u3002"
},
"error": {
"invalid_country_code": "\u672a\u77e5\u570b\u78bc\uff08\u5169\u5b57\u6bcd\uff09\u3002",
"invalid_house_number": "\u9580\u724c\u865f\u78bc\u932f\u8aa4\u3002"
},
"step": {
"user": {
"data": {
"country_code": "\u570b\u78bc\uff08\u5169\u5b57\u6bcd\uff09",
"house_number": "\u9580\u724c\u865f\u78bc",
"house_number_extension": "\u9580\u724c\u865f\u78bc\u5206\u865f",
"zip_code": "\u90f5\u905e\u5340\u865f"
},
"description": "\u8f38\u5165\u5730\u5740",
"title": "Avri"
}
}
},
"title": "Avri"
}

View File

@@ -5,6 +5,7 @@ import asyncio
import async_timeout import async_timeout
import axis import axis
from axis.configuration import Configuration from axis.configuration import Configuration
from axis.errors import Unauthorized
from axis.event_stream import OPERATION_INITIALIZED from axis.event_stream import OPERATION_INITIALIZED
from axis.mqtt import mqtt_json_to_event from axis.mqtt import mqtt_json_to_event
from axis.streammanager import SIGNAL_PLAYING, STATE_STOPPED from axis.streammanager import SIGNAL_PLAYING, STATE_STOPPED
@@ -160,9 +161,13 @@ class AxisNetworkDevice:
async def use_mqtt(self, hass: HomeAssistant, component: str) -> None: async def use_mqtt(self, hass: HomeAssistant, component: str) -> None:
"""Set up to use MQTT.""" """Set up to use MQTT."""
status = await hass.async_add_executor_job( try:
self.api.vapix.mqtt.get_client_status status = await hass.async_add_executor_job(
) self.api.vapix.mqtt.get_client_status
)
except Unauthorized:
# This means the user has too low privileges
status = {}
if status.get("data", {}).get("status", {}).get("state") == "active": if status.get("data", {}).get("status", {}).get("state") == "active":
self.listeners.append( self.listeners.append(

View File

@@ -3,7 +3,7 @@
"name": "Axis", "name": "Axis",
"config_flow": true, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/axis", "documentation": "https://www.home-assistant.io/integrations/axis",
"requirements": ["axis==29"], "requirements": ["axis==30"],
"zeroconf": ["_axis-video._tcp.local."], "zeroconf": ["_axis-video._tcp.local."],
"after_dependencies": ["mqtt"], "after_dependencies": ["mqtt"],
"codeowners": ["@Kane610"] "codeowners": ["@Kane610"]

View File

@@ -24,5 +24,15 @@
"title": "Configurer l'appareil Axis" "title": "Configurer l'appareil Axis"
} }
} }
},
"options": {
"step": {
"configure_stream": {
"data": {
"stream_profile": "S\u00e9lectionnez le profil de flux \u00e0 utiliser"
},
"title": "Options de flux vid\u00e9o du p\u00e9riph\u00e9rique Axis"
}
}
} }
} }

View File

@@ -24,5 +24,15 @@
"title": "Impostazione del dispositivo Axis" "title": "Impostazione del dispositivo Axis"
} }
} }
},
"options": {
"step": {
"configure_stream": {
"data": {
"stream_profile": "Selezionare il profilo di flusso da utilizzare"
},
"title": "Opzioni del flusso video del dispositivo Axis"
}
}
} }
} }

View File

@@ -24,5 +24,15 @@
"title": "Axis \uae30\uae30 \uc124\uc815\ud558\uae30" "title": "Axis \uae30\uae30 \uc124\uc815\ud558\uae30"
} }
} }
},
"options": {
"step": {
"configure_stream": {
"data": {
"stream_profile": "\uc0ac\uc6a9\ud560 \uc2a4\ud2b8\ub9bc \ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694"
},
"title": "Axis \uae30\uae30 \ube44\ub514\uc624 \uc2a4\ud2b8\ub9bc \uc635\uc158"
}
}
} }
} }

View File

@@ -24,5 +24,15 @@
"title": "Axis Apparat ariichten" "title": "Axis Apparat ariichten"
} }
} }
},
"options": {
"step": {
"configure_stream": {
"data": {
"stream_profile": "Stream Profile auswielen"
},
"title": "Axis Apparat Video Stream Optiounen"
}
}
} }
} }

View File

@@ -24,5 +24,15 @@
"title": "Konfiguracja urz\u0105dzenia Axis" "title": "Konfiguracja urz\u0105dzenia Axis"
} }
} }
},
"options": {
"step": {
"configure_stream": {
"data": {
"stream_profile": "Wybierz profil strumienia do u\u017cycia"
},
"title": "Opcje strumienia wideo urz\u0105dzenia Axis"
}
}
} }
} }

View File

@@ -142,10 +142,6 @@
"off": "Zou", "off": "Zou",
"on": "Op" "on": "Op"
}, },
"presence": {
"off": "\u00cbnnerwee",
"on": "Doheem"
},
"problem": { "problem": {
"off": "OK", "off": "OK",
"on": "Problem" "on": "Problem"

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Endere\u00e7o IP"
}
}
}
}
}

View File

@@ -23,5 +23,14 @@
"title": "Inici de sessi\u00f3 amb Blink" "title": "Inici de sessi\u00f3 amb Blink"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "Interval d'escaneig (segons)"
}
}
}
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "Sign-in with Blink account" "title": "Sign-in with Blink account"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "Scan Interval (seconds)"
},
"description": "Configure Blink integration",
"title": "Blink options"
}
}
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "Iniciar sesi\u00f3n con cuenta Blink" "title": "Iniciar sesi\u00f3n con cuenta Blink"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "Intervalo de escaneo (segundos)"
},
"description": "Configurar la integraci\u00f3n de Blink",
"title": "Opciones de Blink"
}
}
} }
} }

View File

@@ -6,13 +6,18 @@
}, },
"step": { "step": {
"2fa": { "2fa": {
"data": {
"2fa": "Code \u00e0 deux facteurs"
},
"description": "Saisissez le code envoy\u00e9 \u00e0 votre adresse \u00e9lectronique. Si l'e-mail ne contient pas de code PIN, laissez vide",
"title": "Authentification \u00e0 deux facteurs" "title": "Authentification \u00e0 deux facteurs"
}, },
"user": { "user": {
"data": { "data": {
"password": "Mot de passe", "password": "Mot de passe",
"username": "Identifiant" "username": "Identifiant"
} },
"title": "Connectez-vous avec un compte Blink"
} }
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "Accedi con l'account Blink" "title": "Accedi con l'account Blink"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "Intervallo di scansione (secondi)"
},
"description": "Configurare l'integrazione di Blink",
"title": "Opzioni di Blink"
}
}
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "Blink \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud558\uae30" "title": "Blink \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud558\uae30"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "\uc2a4\uce94 \uac04\uaca9 (\ucd08)"
},
"description": "Blink \ud1b5\ud569 \uad6c\uc131\uc694\uc18c \uad6c\uc131",
"title": "Blink \uc635\uc158"
}
}
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "Logg p\u00e5 med Blink-konto" "title": "Logg p\u00e5 med Blink-konto"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "Skanneintervall (sekunder)"
},
"description": "Konfigurer Blink-integrasjon",
"title": "Alternativer for Blink"
}
}
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "Blink" "title": "Blink"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445)"
},
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 Blink",
"title": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Blink"
}
}
} }
} }

View File

@@ -23,5 +23,16 @@
"title": "\u4ee5 Blink \u5e33\u865f\u767b\u5165" "title": "\u4ee5 Blink \u5e33\u865f\u767b\u5165"
} }
} }
},
"options": {
"step": {
"simple_options": {
"data": {
"scan_interval": "\u6383\u63cf\u9593\u8ddd\uff08\u79d2\uff09"
},
"description": "\u8a2d\u5b9a Blink \u6574\u5408",
"title": "Blink \u9078\u9805"
}
}
} }
} }

View File

@@ -18,7 +18,7 @@
}, },
"user": { "user": {
"data": { "data": {
"host": "TV-Hostname oder IP-Adresse" "host": "Host"
}, },
"description": "Richten Sie die Sony Bravia TV-Integration ein. Wenn Sie Probleme mit der Konfiguration haben, gehen Sie zu: https://www.home-assistant.io/integrations/braviatv \n\n Stellen Sie sicher, dass Ihr Fernseher eingeschaltet ist.", "description": "Richten Sie die Sony Bravia TV-Integration ein. Wenn Sie Probleme mit der Konfiguration haben, gehen Sie zu: https://www.home-assistant.io/integrations/braviatv \n\n Stellen Sie sicher, dass Ihr Fernseher eingeschaltet ist.",
"title": "Sony Bravia TV" "title": "Sony Bravia TV"

View File

@@ -1,7 +1,8 @@
{ {
"config": { "config": {
"abort": { "abort": {
"already_configured": "Ce t\u00e9l\u00e9viseur est d\u00e9j\u00e0 configur\u00e9." "already_configured": "Ce t\u00e9l\u00e9viseur est d\u00e9j\u00e0 configur\u00e9.",
"no_ip_control": "Le contr\u00f4le IP est d\u00e9sactiv\u00e9 sur votre t\u00e9l\u00e9viseur ou le t\u00e9l\u00e9viseur n'est pas pris en charge."
}, },
"error": { "error": {
"cannot_connect": "\u00c9chec de connexion, h\u00f4te ou code PIN non valide.", "cannot_connect": "\u00c9chec de connexion, h\u00f4te ou code PIN non valide.",

View File

@@ -19,7 +19,7 @@
}, },
"user": { "user": {
"data": { "data": {
"host": "TV Host Numm oder IP Adresse" "host": "Host"
}, },
"description": "Sony Bravia TV Integratioun ariichten. Falls et Problemer mat der Konfiguratioun g\u00ebtt g\u00e9i op:\nhttps://www.home-assistant.io/integrations/braviatv\nStell s\u00e9cher dass d\u00e4in Fernseh un ass.", "description": "Sony Bravia TV Integratioun ariichten. Falls et Problemer mat der Konfiguratioun g\u00ebtt g\u00e9i op:\nhttps://www.home-assistant.io/integrations/braviatv\nStell s\u00e9cher dass d\u00e4in Fernseh un ass.",
"title": "Sony Bravia TV" "title": "Sony Bravia TV"

View File

@@ -18,7 +18,7 @@
}, },
"user": { "user": {
"data": { "data": {
"host": "Nome do host da TV ou endere\u00e7o IP" "host": "Servidor"
}, },
"title": "TV Sony Bravia" "title": "TV Sony Bravia"
} }

View File

@@ -13,7 +13,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Drucker Hostname oder IP-Adresse", "host": "Host",
"type": "Typ des Druckers" "type": "Typ des Druckers"
}, },
"description": "Einrichten der Brother-Drucker-Integration. Wenn Du Probleme mit der Konfiguration hast, gehe zu: https://www.home-assistant.io/integrations/brother" "description": "Einrichten der Brother-Drucker-Integration. Wenn Du Probleme mit der Konfiguration hast, gehe zu: https://www.home-assistant.io/integrations/brother"

View File

@@ -13,7 +13,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Printer Numm oder IP Adresse", "host": "Host",
"type": "Typ vum Printer" "type": "Typ vum Printer"
}, },
"description": "Brother Printer Integratioun ariichten. Am Fall vun Problemer kuckt op: https://www.home-assistant.io/integrations/brother" "description": "Brother Printer Integratioun ariichten. Am Fall vun Problemer kuckt op: https://www.home-assistant.io/integrations/brother"

View File

@@ -3,6 +3,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Servidor",
"type": "Tipo de impressora" "type": "Tipo de impressora"
} }
} }

View File

@@ -11,5 +11,6 @@
} }
} }
} }
} },
"title": "BSB-Lan"
} }

View File

@@ -7,6 +7,7 @@
"user": { "user": {
"data": { "data": {
"host": "H\u00f4te ou adresse IP", "host": "H\u00f4te ou adresse IP",
"passkey": "Cha\u00eene de cl\u00e9 d'acc\u00e8s",
"port": "Num\u00e9ro de port" "port": "Num\u00e9ro de port"
} }
} }

View File

@@ -10,9 +10,9 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Numm oder IP Adresse", "host": "Host",
"passkey": "Passkey Zeechefolleg", "passkey": "Passkey Zeechefolleg",
"port": "Port Nummer" "port": "Port"
}, },
"description": "BSB-Lan Apparat ariichten fir d'Integratioun mam Home Assistant.", "description": "BSB-Lan Apparat ariichten fir d'Integratioun mam Home Assistant.",
"title": "Mam BSB-Lan Apparat verbannen" "title": "Mam BSB-Lan Apparat verbannen"

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Servidor"
}
}
}
}
}

View File

@@ -3,7 +3,6 @@ import logging
import threading import threading
import pychromecast import pychromecast
import zeroconf
from homeassistant.const import EVENT_HOMEASSISTANT_STOP from homeassistant.const import EVENT_HOMEASSISTANT_STOP
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@@ -85,14 +84,12 @@ def setup_internal_discovery(hass: HomeAssistant) -> None:
) )
_LOGGER.debug("Starting internal pychromecast discovery.") _LOGGER.debug("Starting internal pychromecast discovery.")
listener = pychromecast.discovery.CastListener( listener = pychromecast.CastListener(
internal_add_callback, internal_remove_callback internal_add_callback,
) internal_remove_callback,
browser = zeroconf.ServiceBrowser( internal_add_callback, # Use internal_add_callback also for updates
ChromeCastZeroconf.get_zeroconf() or zeroconf.Zeroconf(),
"_googlecast._tcp.local.",
listener,
) )
browser = pychromecast.start_discovery(listener, ChromeCastZeroconf.get_zeroconf())
def stop_discovery(event): def stop_discovery(event):
"""Stop discovery of new chromecasts.""" """Stop discovery of new chromecasts."""

View File

@@ -3,7 +3,7 @@
"name": "Google Cast", "name": "Google Cast",
"config_flow": true, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/cast", "documentation": "https://www.home-assistant.io/integrations/cast",
"requirements": ["pychromecast==5.3.0"], "requirements": ["pychromecast==6.0.0"],
"after_dependencies": ["cloud","zeroconf"], "after_dependencies": ["cloud","zeroconf"],
"zeroconf": ["_googlecast._tcp.local."], "zeroconf": ["_googlecast._tcp.local."],
"codeowners": ["@emontnemery"] "codeowners": ["@emontnemery"]

View File

@@ -12,9 +12,9 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Der Hostname des Zertifikats", "host": "Host",
"name": "Der Name des Zertifikats", "name": "Der Name des Zertifikats",
"port": "Der Port des Zertifikats" "port": "Port"
}, },
"title": "Definiere das zu testende Zertifikat" "title": "Definiere das zu testende Zertifikat"
} }

View File

@@ -12,9 +12,9 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Den Hostnumm vum Zertifikat", "host": "Host",
"name": "De Numm vum Zertifikat", "name": "De Numm vum Zertifikat",
"port": "De Port vum Zertifikat" "port": "Port"
}, },
"title": "W\u00e9ieen Zertifikat soll getest ginn" "title": "W\u00e9ieen Zertifikat soll getest ginn"
} }

View File

@@ -0,0 +1,14 @@
{
"config": {
"error": {
"resolve_failed": "N\u00e3o \u00e9 possivel resolver o servidor"
},
"step": {
"user": {
"data": {
"host": "Servidor"
}
}
}
}
}

View File

@@ -1,4 +1,9 @@
{ {
"device_automation": {
"condition_type": {
"is_hvac_mode": "{entity_name} est\u00e1 definido com um modo HVAC espec\u00edfico"
}
},
"state": { "state": {
"_": { "_": {
"auto": "Auto", "auto": "Auto",

View File

@@ -2,7 +2,7 @@
"domain": "cloud", "domain": "cloud",
"name": "Home Assistant Cloud", "name": "Home Assistant Cloud",
"documentation": "https://www.home-assistant.io/integrations/cloud", "documentation": "https://www.home-assistant.io/integrations/cloud",
"requirements": ["hass-nabucasa==0.34.5"], "requirements": ["hass-nabucasa==0.34.6"],
"dependencies": ["http", "webhook", "alexa"], "dependencies": ["http", "webhook", "alexa"],
"after_dependencies": ["google_assistant"], "after_dependencies": ["google_assistant"],
"codeowners": ["@home-assistant/cloud"] "codeowners": ["@home-assistant/cloud"]

View File

@@ -3,7 +3,6 @@ from collections.abc import Mapping
from datetime import timedelta from datetime import timedelta
import json import json
import logging import logging
import shlex
import subprocess import subprocess
import voluptuous as vol import voluptuous as vol
@@ -171,7 +170,7 @@ class CommandSensorData:
pass pass
else: else:
# Template used. Construct the string used in the shell # Template used. Construct the string used in the shell
command = str(" ".join([prog] + shlex.split(rendered_args))) command = f"{prog} {rendered_args}"
try: try:
_LOGGER.debug("Running command: %s", command) _LOGGER.debug("Running command: %s", command)
return_value = subprocess.check_output( return_value = subprocess.check_output(

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Servidor"
}
}
}
}
}

View File

@@ -3,6 +3,10 @@
"name": "Coronavirus (COVID-19)", "name": "Coronavirus (COVID-19)",
"config_flow": true, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/coronavirus", "documentation": "https://www.home-assistant.io/integrations/coronavirus",
"requirements": ["coronavirus==1.1.0"], "requirements": [
"codeowners": ["@home_assistant/core"] "coronavirus==1.1.1"
],
"codeowners": [
"@home_assistant/core"
]
} }

View File

@@ -1,5 +1,13 @@
{ {
"device_automation": { "device_automation": {
"action_type": {
"close": "Fechar {entity_name}",
"close_tilt": "Fechar a inclina\u00e7\u00e3o da {entity_name}",
"open": "Abrir {entity_name}",
"open_tilt": "Abra a inclina\u00e7\u00e3o da {entity_name}",
"set_position": "Definir posi\u00e7\u00e3o de {entity_name}",
"set_tilt_position": "Definir a posi\u00e7\u00e3o de inclina\u00e7\u00e3o de {entity_name}"
},
"condition_type": { "condition_type": {
"is_closed": "{entity_name} est\u00e1 fechada", "is_closed": "{entity_name} est\u00e1 fechada",
"is_closing": "{entity_name} est\u00e1 a fechar", "is_closing": "{entity_name} est\u00e1 a fechar",

View File

@@ -72,6 +72,8 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
# For backwards compat, set unique ID # For backwards compat, set unique ID
if entry.unique_id is None: if entry.unique_id is None:
hass.config_entries.async_update_entry(entry, unique_id=conf[KEY_MAC]) hass.config_entries.async_update_entry(entry, unique_id=conf[KEY_MAC])
elif ".local" in entry.unique_id:
hass.config_entries.async_update_entry(entry, unique_id=conf[KEY_MAC])
daikin_api = await daikin_api_setup( daikin_api = await daikin_api_setup(
hass, hass,
conf[CONF_HOST], conf[CONF_HOST],

View File

@@ -6,12 +6,13 @@ from uuid import uuid4
from aiohttp import ClientError, web_exceptions from aiohttp import ClientError, web_exceptions
from async_timeout import timeout from async_timeout import timeout
from pydaikin.daikin_base import Appliance from pydaikin.daikin_base import Appliance
from pydaikin.discovery import Discovery
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.const import CONF_HOST, CONF_PASSWORD from homeassistant.const import CONF_HOST, CONF_PASSWORD
from .const import CONF_KEY, CONF_UUID, KEY_HOSTNAME, KEY_IP, KEY_MAC, TIMEOUT from .const import CONF_KEY, CONF_UUID, KEY_IP, KEY_MAC, TIMEOUT
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@@ -40,8 +41,8 @@ class FlowHandler(config_entries.ConfigFlow):
async def _create_entry(self, host, mac, key=None, uuid=None, password=None): async def _create_entry(self, host, mac, key=None, uuid=None, password=None):
"""Register new entry.""" """Register new entry."""
# Check if mac already is registered if not self.unique_id:
await self.async_set_unique_id(mac) await self.async_set_unique_id(mac)
self._abort_if_unique_id_configured() self._abort_if_unique_id_configured()
return self.async_create_entry( return self.async_create_entry(
@@ -128,7 +129,8 @@ class FlowHandler(config_entries.ConfigFlow):
async def async_step_zeroconf(self, discovery_info): async def async_step_zeroconf(self, discovery_info):
"""Prepare configuration for a discovered Daikin device.""" """Prepare configuration for a discovered Daikin device."""
_LOGGER.debug("Zeroconf discovery_info: %s", discovery_info) _LOGGER.debug("Zeroconf discovery_info: %s", discovery_info)
await self.async_set_unique_id(discovery_info[KEY_HOSTNAME]) devices = Discovery.poll(discovery_info[CONF_HOST])
await self.async_set_unique_id(next(iter(devices.values()))[KEY_MAC])
self._abort_if_unique_id_configured() self._abort_if_unique_id_configured()
self.host = discovery_info[CONF_HOST] self.host = discovery_info[CONF_HOST]
return await self.async_step_user() return await self.async_step_user()

View File

@@ -64,6 +64,5 @@ CONF_UUID = "uuid"
KEY_MAC = "mac" KEY_MAC = "mac"
KEY_IP = "ip" KEY_IP = "ip"
KEY_HOSTNAME = "hostname"
TIMEOUT = 60 TIMEOUT = 60

View File

@@ -3,7 +3,7 @@
"name": "Daikin AC", "name": "Daikin AC",
"config_flow": true, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/daikin", "documentation": "https://www.home-assistant.io/integrations/daikin",
"requirements": ["pydaikin==2.1.1"], "requirements": ["pydaikin==2.1.2"],
"codeowners": ["@fredrike"], "codeowners": ["@fredrike"],
"zeroconf": ["_dkapi._tcp.local."], "zeroconf": ["_dkapi._tcp.local."],
"quality_scale": "platinum" "quality_scale": "platinum"

View File

@@ -11,7 +11,7 @@
"data": { "data": {
"host": "Host", "host": "Host",
"key": "Authentifizierungsschl\u00fcssel (wird nur von BRP072C / Zena-Ger\u00e4ten verwendet)", "key": "Authentifizierungsschl\u00fcssel (wird nur von BRP072C / Zena-Ger\u00e4ten verwendet)",
"password": "Ger\u00e4tekennwort (wird nur von SKYFi-Ger\u00e4ten verwendet)" "password": "Passwort"
}, },
"description": "Gib die IP-Adresse deiner Daikin AC ein.", "description": "Gib die IP-Adresse deiner Daikin AC ein.",
"title": "Daikin AC konfigurieren" "title": "Daikin AC konfigurieren"

View File

@@ -12,10 +12,10 @@
"user": { "user": {
"data": { "data": {
"host": "Apparat", "host": "Apparat",
"key": "Authentifikatiouns Schl\u00ebssel (n\u00ebmme vu BRP072C/Zena Apparater benotzt)", "key": "API Schl\u00ebssel",
"password": "Passwuert vum Apparat (n\u00ebmme vun SKYFi Apparater benotzt)" "password": "Passwuert"
}, },
"description": "Gitt d'IP Adresse vum Daikin AC an:", "description": "Gitt d'IP Adresse vum Daikin AC an.\n\nRemarque: API Schl\u00ebssel a Passwuert gi vu BRP072Cxx a SKYFi Apparater respektiv benotzt.",
"title": "Daikin AC konfigur\u00e9ieren" "title": "Daikin AC konfigur\u00e9ieren"
} }
} }

View File

@@ -1,12 +1,6 @@
{ {
"options": { "options": {
"step": { "step": {
"init": {
"data": {
"one": "Een",
"other": "M\u00e9i"
}
},
"options_1": { "options_1": {
"data": { "data": {
"bool": "Optionelle Boolean", "bool": "Optionelle Boolean",

View File

@@ -1,7 +1,7 @@
{ {
"config": { "config": {
"abort": { "abort": {
"already_configured": "D\u00ebs Home Control Zentrale ass scho konfigur\u00e9iert." "already_configured": "D\u00ebs Home Control Zentrale g\u00ebtt scho benotzt."
}, },
"error": { "error": {
"invalid_credentials": "Ong\u00ebltege Benotzernumm an/oder Passwuert" "invalid_credentials": "Ong\u00ebltege Benotzernumm an/oder Passwuert"
@@ -12,7 +12,7 @@
"home_control_url": "Home Control URL", "home_control_url": "Home Control URL",
"mydevolo_url": "mydevolo URL", "mydevolo_url": "mydevolo URL",
"password": "Passwuert", "password": "Passwuert",
"username": "Benotzernumm" "username": "E-Mail-Address / devolo ID"
}, },
"title": "devolo Home Control" "title": "devolo Home Control"
} }

View File

@@ -12,7 +12,7 @@
"home_control_url": "Home Control URL", "home_control_url": "Home Control URL",
"mydevolo_url": "mydevolo URL", "mydevolo_url": "mydevolo URL",
"password": "Passord", "password": "Passord",
"username": "Brukernavn" "username": "E-postadresse / devolo-ID"
}, },
"title": "" "title": ""
} }

View File

@@ -1,11 +1,11 @@
{ {
"config": { "config": {
"abort": { "abort": {
"already_configured": "Der DirecTV-Empf\u00e4nger ist bereits konfiguriert", "already_configured": "Das Ger\u00e4t ist bereits konfiguriert.",
"unknown": "Unerwarteter Fehler" "unknown": "Unerwarteter Fehler"
}, },
"error": { "error": {
"cannot_connect": "Verbindung fehlgeschlagen, versuchen Sie es erneut" "cannot_connect": "Verbindung fehlgeschlagen"
}, },
"flow_title": "DirecTV: {name}", "flow_title": "DirecTV: {name}",
"step": { "step": {
@@ -18,7 +18,7 @@
}, },
"user": { "user": {
"data": { "data": {
"host": "Host oder IP-Adresse" "host": "Host"
} }
} }
} }

View File

@@ -1,24 +1,20 @@
{ {
"config": { "config": {
"abort": { "abort": {
"already_configured": "DirecTV ass scho konfigur\u00e9iert", "already_configured": "Apparat ass scho konfigur\u00e9iert",
"unknown": "Onerwaarte Feeler" "unknown": "Onerwaarte Feeler"
}, },
"error": { "error": {
"cannot_connect": "Feeler beim verbannen, prob\u00e9ier w.e.g. nach emol." "cannot_connect": "Feeler beim verbannen"
}, },
"flow_title": "DirecTV: {name}", "flow_title": "DirecTV: {name}",
"step": { "step": {
"ssdp_confirm": { "ssdp_confirm": {
"data": {
"one": "Een",
"other": "Aner"
},
"description": "Soll {name} konfigur\u00e9iert ginn?" "description": "Soll {name} konfigur\u00e9iert ginn?"
}, },
"user": { "user": {
"data": { "data": {
"host": "Numm oder IP Adresse" "host": "Host"
} }
} }
} }

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"host": "Servidor"
}
}
}
}
}

View File

@@ -2,7 +2,7 @@
"domain": "discovery", "domain": "discovery",
"name": "Discovery", "name": "Discovery",
"documentation": "https://www.home-assistant.io/integrations/discovery", "documentation": "https://www.home-assistant.io/integrations/discovery",
"requirements": ["netdisco==2.6.0"], "requirements": ["netdisco==2.7.0"],
"after_dependencies": ["zeroconf"], "after_dependencies": ["zeroconf"],
"codeowners": [], "codeowners": [],
"quality_scale": "internal" "quality_scale": "internal"

View File

@@ -14,7 +14,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Host (IP-Adresse)", "host": "Host",
"name": "Ger\u00e4tename", "name": "Ger\u00e4tename",
"password": "Passwort", "password": "Passwort",
"username": "Benutzername" "username": "Benutzername"

View File

@@ -6,7 +6,7 @@
"not_doorbird_device": "D\u00ebsen Apparat ass kee DoorBird" "not_doorbird_device": "D\u00ebsen Apparat ass kee DoorBird"
}, },
"error": { "error": {
"cannot_connect": "Feeler beim verbannen, prob\u00e9ier w.e.g. nach emol.", "cannot_connect": "Feeler beim verbannen",
"invalid_auth": "Ong\u00eblteg Authentifikatioun", "invalid_auth": "Ong\u00eblteg Authentifikatioun",
"unknown": "Onerwaarte Feeler" "unknown": "Onerwaarte Feeler"
}, },
@@ -14,7 +14,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Numm (IP Adresse)", "host": "Host",
"name": "Numm vum Apparat", "name": "Numm vum Apparat",
"password": "Passwuert", "password": "Passwuert",
"username": "Benotzernumm" "username": "Benotzernumm"

View File

@@ -3,6 +3,7 @@
"step": { "step": {
"user": { "user": {
"data": { "data": {
"host": "Servidor",
"name": "Nome do dispositivo" "name": "Nome do dispositivo"
} }
} }

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "El dispositiu ja est\u00e0 configurat"
},
"error": {
"already_configured": "El dispositiu ja est\u00e0 configurat",
"cannot_connect": "No s'ha pogut connectar",
"invalid_host": "Nom de l'amfitri\u00f3 o l'adre\u00e7a IP inv\u00e0lids."
},
"step": {
"user": {
"data": {
"host": "Amfitri\u00f3"
},
"description": "Configura la integraci\u00f3 Dune HD. Si tens problemes durant la configuraci\u00f3, v\u00e9s a: https://www.home-assistant.io/integrations/dunehd\n\nAssegura't que el reproductor estigui engegat.",
"title": "Dune HD"
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert"
},
"error": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert",
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_host": "Ung\u00fcltiger Hostname oder IP-Adresse."
},
"step": {
"user": {
"data": {
"host": "Host"
},
"title": "Dune HD"
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Device is already configured"
},
"error": {
"already_configured": "Device is already configured",
"cannot_connect": "Failed to connect",
"invalid_host": "Invalid hostname or IP address."
},
"step": {
"user": {
"data": {
"host": "Host"
},
"description": "Set up Dune HD integration. If you have problems with configuration go to: https://www.home-assistant.io/integrations/dunehd \n\nEnsure that your player is turned on.",
"title": "Dune HD"
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More