Aller eerst om te beginnen gaan we geen veranderingen aanbrengen aan de Nest Hub zelf. Deze is zo goed dichtbebouwd door Google dat we aan de software kant niks gaan doen.
Op dit moment 18-03-2024 werkt deze handleiding helaas niet meer.
En heb ik geen Nest hub om hiervoor nog andere mogelijkheden uit te kunnen zoeken.
Wie nog ideeen heeft mag ze me toe mailen.
Om jou dashboard te casten van Home Assistant naar de Nest Hub maken we gebruik van de volgende onderdelen die te vinden zijn in HACS. (ik ga hier geen uitleg over geven hoe HACS geïnstalleerd moet worden)
- PyScript
- Dashcast
Om PyScript te installeren zoek je in HACS onder integraties naar pyscript en klik je op downloaden.
Om Dashcast te installeren ga je naar HACS – integraties en daarna klik je rechts boven in op de de 3 puntjes, en klik je op aangepaste repositories. Daar gebruik je de link https://github.com/AlexxIT/DashCast en als categorie gebruik je integratie.
Daarna even Home Assistant opnieuw opstarten. Als deze opnieuw is opgestart gaan we naar het Configuratiescherm – Apparaten & Diensten – Integratie Toevoegen . Hier zoeken we naar de integratie Dashcast en moet je deze installeren, op dezelfde manier doe je dit voor de integratie van Pyscipt.
Daarna voor de zekerheid nog even een keertje opnieuw opstarten, waarna we meteen naar de door jou gewenste File-Editor kunnen gaan. Zelf maar ik gebruik van Studio Code Server, en om te beginnen gaan we naar de configuration.yaml file.
Hier heb ik het volgende toegevoegd.
default_config:
homeassistant:
auth_providers:
- type: trusted_networks
trusted_networks:
- 192.168.1.0/24
- fd00::/8
- 192.168.1.175 #IP ADRES VAN NESTHUB
trusted_users:
192.168.1.175: 496***07 #IP ADRES VAN NESTHUB + USERID
allow_bypass_login: true
- type: homeassistant
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
- 127.0.0.1
- 172.16.0.0/12
ip_ban_enabled: false
login_attempts_threshold: 5
pyscript:
apps:
nest_hub:
logger:
default: warning
logs:
custom_components.pyscript: info
Het eerste gedeelte heb je nodig om straks de Nest Hub toegang te geven tot Home Assistant zonder in te loggen. (geen toetsenbord aanwezig op de Nest Hub) Het 2e deel heb je nodig om je PyScript in te draaien. Daarover gesproken deze zullen we meteen even aanmaken.
Kijk even wat je ip is van je Nest Hub, en natuurlijk van je router. Begint deze met 192.168.178.x dan moet de 1 die gebruik veranderen in .178. natuurlijk. De 0/24 is op de gehele iprange te dekken 0 tot 255.
Ik heb ook voor mijn Nest Hub een eigen gebruiker aan gemaakt. Dit doe je door naar Instellingen – Personen te gaan, bovenin op Gebruikers te klikken en daar een gebruiker aan de maken. De gebruikers ID die je hier nu krijgt vul je in bij je trusted_users: zoals hierboven aangegeven.
Maak in je config folder een map aan met de naam “pyscript”, daar weer een map aan met de naam “apps”, en daarin weer één map met de naam “nest_hub” je krijgt dan de volgende lay-out /config/pyscript/apps/nest_hub
In deze laatste map maak je een file met de naam “__init__.py” nu heb je als je alles goed gedaan hebt precies dit
/config/pyscript/apps/nest_hub/__init__.py
Nou dat viel wel mee, nu mag je het bestand gaan vullen met de volgende code
_DASHBOARD_URL = 'http://192.168.1.171:8123/dashboard-tablet/default_view'
# The part after 'media_player.'
_NEST_HUBS = ['nest_hub']
def nest_hub_trigger_factory(nest_hub):
entity_id = f'media_player.{nest_hub}'
avail_state = f'pyscript.{nest_hub}_availability'
state.persist(avail_state, default_value='1')
@state_trigger(f'{entity_id} == "off"', state_check_now=True)
def recast_nest_hub():
if state.get(avail_state) == '0':
log.info(f'{entity_id} was unavailable. Wait for 20 secs')
state.set(avail_state, '1')
task.sleep(20)
log.info(f'Recast {entity_id}')
media_player.volume_set(entity_id=entity_id, volume_level=0)
dash_cast.load_url(entity_id=entity_id,
url=_DASHBOARD_URL, force=True)
@state_trigger(f'{entity_id} == "unavailable"', state_check_now=True)
def nest_hub_is_unavailable():
log.info(f'{entity_id} is unavailable')
state.set(avail_state, '0')
return recast_nest_hub, nest_hub_is_unavailable
_triggers = [nest_hub_trigger_factory(nh) for nh in _NEST_HUBS]
Zoals je ziet staat er bovenin een Dashboard url, deze passen we aan naar het door jou gewenste dashboard. Vergeet ook niet je interne ip mee te nemen in de wijziging. Onder het kopje _NEST_HUBS heb ik mijn eigen nest hub staan, het gedeelte wat NA mijn entiteit vanuit Home Assistant komt
Je kunt nu even Home Assistant weer opnieuw opstarten, en daarna ga je naar Instellingen – Systeem – Logboek, en klik je op laad volledig logboek, nu moet je daar als het goed is de regel zien
INFO (MainThread) [custom_components.pyscript.global_ctx] Reloaded /config/pyscript/apps/nest_hub/__init__.py
Als je die ziet dan is alles goed gegaan. En zijn we er al bijna. Voor mij zelf heb ik een script gemaakt om de eerste keer het Dashboard te casten naar de Nest Hub via Dashcast. Mijn script ziet er als volgt uit.
alias: Cast Dashboard
sequence:
- choose:
- conditions:
- condition: template
value_template: >-
{{ state_attr('media_player.nest_hub', 'app_name') != 'DashCast'
}}
sequence:
- service: media_player.volume_set
data:
volume_level: 0
target:
entity_id: media_player.nest_hubhub
- service: dash_cast.load_url
data:
entity_id: media_player.nest_hub
url: http://192.168.1.171:8123/dashboard-tablet/default_view
force: true
mode: single
sources:
- https://github.com/chiahsing/nest_hub
- https://hacs-pyscript.readthedocs.io/en/latest/
- https://github.com/AlexxIT/DashCast
- https://community.home-assistant.io/t/google-nest-hub-as-dashboard-with-dashcast-add-on/460217
Spelfouten, taalfouten of inhoudelijke fouten ontdekt?
Stuur dan een mailtje naar de auteur van dit artikel!
Wil je ook een review of handleiding maken ?
Stuur ons dan een mailtje voor meer informatie.
Als je dit artikel met interesse hebt gelezen klik dan op Vind ik Leuk .
Voor u een kleine moeite voor mij een compliment.
Alvast Bedankt.
Als je feedback, tips of iets anders hebt,
Aarzel dan niet om hieronder een reactie achter te laten.
Het beeld op de Nest Hub start continue in de edit mode. Hoe kan ik dit voorkomen?
Ik zou voor het starten en stoppen van het casten gewoon een scene gebruiken welke het casten triggert of stopt.
Deze vervolgens aanroepen via Google Assistant
Lars,
bij mij werkt alles ook perfect zonder het PyScript en zonder het 2 stuk in de Configuration.yams
kan dus veel makkelijker
Werkt perfect, alleen op het moment dat ik bijvoorbeeld bel met google home of bijv een vraag stel, houdt het casten op. Hoe kan ik dan op de meest efficiënte manier het casten van mijn dashboard weer activeren?
Werkt perfect, geweldig werk.
Ik vraag me wel af of er een mogelijkheid is om de DashCast te pauzeren vanuit de Nest Hub.
Als dit kan kunnen we ook de andere functies van de Nest Hub gebruiken zonder dat DashCast steeds opnieuw laad.
Zit zelf ook te zoeken om dashcast in en uit te schakelen, tot nu toe nog geen oplossing gevonden.
Misschien dat hier iemand een oplossing weet.
Zou ik ook wel willen weten tot nu toe ook nog geen oplossing gevonden om dashcast uit te schakelen
Keurig ingevoerd in HA maar na het herstarten gaat HA prompt in een veilige modus. Wat er verkeerd kan gaan is wellicht de optie user_ID. Deze kan ik niet vinden in HA en ook niet op internet. Ik heb nu de persoonsnaam ingevuld in het script maar dat zal niet werken. Wellicht door de Nederlandse versie van HA maar er lijkt geen onderscheid te zijn tussen gebruiker en persoon. Ik heb een persoon aangemaakt (gebruiker aanmaken kan ik niet vinden) maar op die pagina is geen optie voor een user_ID. Na de toegevoegde regels in configuration.yaml geblokt te hebben met #jes start HA weer volledig op.
Graag advies!
Instellingen -> Personen; bovenin staat Personen en daarlangs de TAB gebruikers. Al de gebruikers hebben een eigen ID. Rechts onder gebruiker aanmaken.
Ga naar ontwikkelaarshulpmiddelen en zoek daar de gebruiker op. Daar staat het nog wel
Ik zou voor het starten en stoppen van het casten gewoon een scene gebruiken welke het casten triggert of stopt.
Deze vervolgens aanroepen via Google Assistant