Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie

Acties:
  • +1Henk 'm!

  • TheFes
  • Registratie: juni 2001
  • Laatst online: 18-06 15:41
Achtergrond:
Vorig jaar is mijn nieuwbouwhuis opgeleverd. Vanuit de bouw is daar een smart home systeem, genaamd One Smart Control ingebouwd (zie ook: [Domotica] One Smart Control)

Helaas is het een enorm gesloten systeem, wat dus alleen via de knoppen op de muur en via de eigen app bediend kan worden. Wel zeggen ze (inmiddels al 1,5 jaar of zo) dat er ondersteuning voor Google Assistant komt. Buiten dat is er geen web-interface of api.

Buiten Google Assistant (via een aantal Google Home apparaten) gebruik ik ook Home Assistant (zie: Home Assistant: Open source Python3 home automation - deel 2). Daarin kan ik van alles automatiseren, bijvoorbeeld dat de lichten uit moeten gaan als er niemand meer thuis is. Echter kan ik daar dus niet mijn One Smart Control systeem mee bedienen. Ik kan uiteraard slimme lampen (bijvoorbeel Hue, of in mijn geval Tuya) gebruiken, maar het nadeel daarvan is weer dat die niet werken als je de wandknop gebruikt, de stroom is er dan immers af.

Nu bedacht ik me dat het wellicht mogelijk is om Google Assistant aan te sturen via Home Assistant, en na een korte zoektocht kwam ik op Google Assistant Relay uit (zie: https://github.com/Apipa169/Assistant-Relay-for-Hassio)

Nu kan het best nog lang duren voordat Google Assistant werkt met One Smart Control, maar ik wilde vast voorbereid zijn, en alvast uitzoeken hoe het dan zou kunnen werken

Wellicht ook handig om te melden, ik heb bar weinig programmeerervaring, en ben ook pas een goeie maand ofzo met Home Assistant bezig. Ik knoop van alles aan elkaar wat ik via Google vind, en hoop dan maar dat het werkt :)
Waarom een apart topic
Omdat het zowel Home Assistant en Google Assistant raakt, wist ik niet echt waar ik het kwijt moest. Daarnaast dacht ik dat het wellicht wat een te groot onderwerp is voor in een verzameltopic, ook omdat anderen misschien ook met dit probleem worstelen (wellicht niet met One Smart Control, maar met een ander systeem wat ook alleen via Google Assistant aan te sturen is).
Wat ik tot op heden gedaan heb
Allereerst heb ik Google Assistant Relay geïnstalleerd. Dat ging vrij soepel via de instructies op de Github pagina. Als je de stappen volgt moet dat op zich wel goed gaan. Je moet wel in de Google Console een API aanmaken, maar alles wordt vrij duidelijk omschreven.

Om vervolgens de Google Assistant Relay ook in Home Assistant te kunnen gebruiken, moet je het volgende toevoegen aan je configuration.yaml:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# assistant relay
rest_command:
  assistant_broadcast:
    url: http://192.168.2.179:3000/assistant
    method: POST
    content_type: 'application/json'
    payload: '{"command":"{{ command }}", "user":"TheFes", "broadcast":true}'
    
  assistant_converse:
    url: http://192.168.2.179:3000/assistant
    method: POST
    content_type: 'application/json'
    payload: '{"command":"{{ command }}", "user":"TheFes", "converse":true}'

  assistant_relay:
    url: http://192.168.2.179:3000/assistant
    method: POST
    content_type: 'application/json'
    payload: '{"command":"{{ command }}", "user":"TheFes"}'

Vervang in bovenstaande code het IP adres naar jouw lokale IP, en de username naar de username die je tijdens de configuratie van Google Assistant Relay aangemaakt hebt. Alleen de laatste is nodig om commando's als "zet het licht aan" te sturen. De bovenste twee zijn voor broadcasts naar je Google Home apparaten.

Daarna heb ik een dummy lamp aangemaakt in Home Assistant. Aangezien ik One Smart Control nog niet kan aansturen, ga ik onderstaande voorbeelden een Tuya lamp schakelen. Vrij nutteloos natuurlijk want die kan ik ook gewoon direct in Home Assistant schakelen, maar voor nu is dit een concept-test.

configuration.yaml
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# de dummy lamp zelf
light:
  - platform: template
    lights:
      test_staande_lamp:
        friendly_name: "Test Staande lamp"
        turn_on:
          service: input_boolean.turn_on
          entity_id: input_boolean.test_staande_lamp
        turn_off:
          service: input_boolean.turn_off
          entity_id: input_boolean.test_staande_lamp
        set_level:
          service: input_number.set_value
          data_template:
            value: "{{ brightness }}"
            entity_id: input_number.test_staande_lamp

# een input_boolean die aan/uit schakelt
input_boolean :
  test_staande_lamp:

# een input_number om de helderheid in te stellen
input_number:
  test_staande_lamp:
    min: 0
    max: 100


Na een reboot heb je dan vervolgens een lamp! Je kunt de helderheid instellen (van 1 tot 100%) en de lamp aan en uitzetten. Alleen er gebeurt uiteraard nog niets. Voor het aan/uit-zetten heb ik twee scripts en een automation gemaakt. Het schakelen van de helderheid kon met alleen een automation.

scripts.yaml:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
test_staandelamp_on:
  alias: Test Staande Lamp On
  sequence:
  - data:
      command: zet staande lamp aan
    service: rest_command.assistant_relay
test_staandelamp_off:
  alias: Test Staande Lamp Off
  sequence:
  - data:
      command: zet staande lamp uit
    service: rest_command.assistant_relay


automations.yaml:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- id: '1592232113619'
  alias: Test Staande Lamp GA
  trigger:
  - entity_id: input_boolean.test_staande_lamp
    platform: state
  action:
  - service_template: script.test_staandelamp_{{trigger.to_state.state}}
- id: '15922321136191'
  alias: Test Staande Lamp GA brightness
  trigger:
  - entity_id: input_number.test_staande_lamp
    platform: state
  action:
  - data_template: 
      command: "zet staande lamp op {{ trigger.to_state.state | int }} procent"
    service: rest_command.assistant_relay


Zoals je ziet gebruik ik Google Assistant in het Nederlands. Dat is ook waarom ik voor aan/uit wel scripts nodig had, en voor de helderheid niet. De state van de boolean is namelijk on of off, en in mijn Google Assistant commando heb ik aan en uit nodig. Ik kan dus niet direct de state van de boolean gebruiken.

Wat ik nu doe is de state van de boolean gebruiken als een wildcard in de automation om te bepalen of het on-script of het off-script getriggerd moet worden.

Bij een getal speelt dit taalprobleem niet, en de stat van het input_number kan dus wel meteen in de automation gebruikt worden. Als je Google Assistant in het Engels gebruikt, zou je het aan/uit-schakelen dus ook in een automation kunnen afvangen, zonder de twee scripts.

Na het herladen van de scripts en automations (of na een reboot van Home Assistant) zou het moeten werken.

Als je nu de test-lamp aanzet, wordt er via de Google Assistant Relay het commando "zet staande lamp aan" gestuurd naar Google Assistant, en gaat de staande lamp aan.

Op zich heb ik nu al wel iets wat zou kunnen werken voor automatiseringen. Bijvoorbeeld dus om alle lampen uit te zetten als ik weg ga. Voor die automatisering zou zelfs één dummy lamp genoeg zijn, die dan het commando "zet alle lampen uit" triggert
Wat ik met dit topic wil
  • Allereerst dus wellicht andere mensen helpen die een vergelijkbaar probleem hebben
  • Tips krijgen om bovenstaande te verbeteren
  • Onderstaand probleem oplossen
Bovenstaande werkt maar één kant op. Je kunt wel via Home Assistant een lamp aan/uitzetten of de helderheid wijzigen, en dat zie je dan ook in Google Assistant terug, maar als je met je Google Home een lamp uitzet, blijft je dummy lamp in Home assistant gewoon aan.

Ik heb nog niets bedacht om die wijzigingen ook weer naar de dummy lamp terug te sturen.

Dat zorgt ook voor een probleem. Stel de dummy lamp staat uit, en je zet vervolgens via de Google Home de lamp aan. De staat van de dummy lamp verander dan niet. Als je vervolgens via een automation of script in Home Assistant de dummy lamp uitzet, verander de staat ook niet, en wordt Google Assistant Relay dus niet getriggerd. Ofwel als iedereen het huis verlaten heeft, gaat de lamp alsnog niet uit.

Daarvoor zoek ik dus ie ieder geval nog een oplossing :)

  • jvbragt
  • Registratie: januari 2012
  • Laatst online: 18-06 16:34
Dank je, ga ik mee aan de gang! Ik krijg mijn Action lampen niet aan de gang omdat ik ze via de indio app gebruik.

  • TheFes
  • Registratie: juni 2001
  • Laatst online: 18-06 15:41
jvbragt schreef op vrijdag 11 september 2020 @ 13:09:
Dank je, ga ik mee aan de gang! Ik krijg mijn Action lampen niet aan de gang omdat ik ze via de indio app gebruik.
Is het niet makkelijker om de lampen opnieuw te koppelen met de Tuya app? Daar kun je ook gewoon je LSC lampen in koppelen en dan dus direct in HA de Tuya integratie gebruiken.

De Google Assistant integratie voor mijn smart home systeem is er nog steeds niet. Dus heb het zelf nog niet in gebruik.

  • jvbragt
  • Registratie: januari 2012
  • Laatst online: 18-06 16:34
Ik zal daar eens naar kijken. De scripts werken wel, maar het aan en uit zetten via een switch nog niet.

Acties:
  • 0Henk 'm!

  • thomasb14
  • Registratie: juli 2019
  • Laatst online: 02-06 14:07
Hoe kom je eigenlijk aan deze id's
- id: '1592232113619'
?

Acties:
  • 0Henk 'm!

  • TheFes
  • Registratie: juni 2001
  • Laatst online: 18-06 15:41
thomasb14 schreef op zondag 30 mei 2021 @ 21:32:
Hoe kom je eigenlijk aan deze id's
[...]
?
Dat zijn id's die Home Assistant toekent als je de automation in de GUI maakt.

Acties:
  • 0Henk 'm!

  • thomasb14
  • Registratie: juli 2019
  • Laatst online: 02-06 14:07
TheFes schreef op zondag 30 mei 2021 @ 21:40:
[...]

Dat zijn id's die Home Assistant toekent als je de automation in de GUI maakt.
Ah, zo. Ik vind het allemaal nog erg moeilijk moet ik zeggen. :-|
Is voor mij de eerste keer Home Assistant.

Acties:
  • 0Henk 'm!

  • AW_Bos
  • Registratie: april 2002
  • Laatst online: 01:09

AW_Bos

Waar ga je heen? ☀

Ik zit even te kijken, maar het komt erop neer dat je voor dit geen poorten hoeft te openen in je router?

Waar ga je heen?


Acties:
  • 0Henk 'm!

  • thomasb14
  • Registratie: juli 2019
  • Laatst online: 02-06 14:07
@TheFes hoe heb je eigenlijk de slider werkend gekregen? Ik krijg iedere keer deze melding:
code:
1
Error executing script. Invalid data for call_service at pos 1: Invalid value for input_number.kleinslaap_wandlampen: 171.0 (range 0.0 - 100.0)[0m

Acties:
  • 0Henk 'm!

  • TheFes
  • Registratie: juni 2001
  • Laatst online: 18-06 15:41
thomasb14 schreef op maandag 31 mei 2021 @ 10:14:
@TheFes hoe heb je eigenlijk de slider werkend gekregen? Ik krijg iedere keer deze melding:
code:
1
Error executing script. Invalid data for call_service at pos 1: Invalid value for input_number.kleinslaap_wandlampen: 171.0 (range 0.0 - 100.0)[0m
Wat wil je precies bereiken?

Mijn post was een erg specifieke use case, waarbij ik probeerde iets met een gesloten systeem via Google Assistant in Home Assistant te knutselen.

Ik heb het uiteindelijk nooit in gebruik genomen, en ben de modules gaan vervangen voor Shellies die gewoon goed in HA werken. Ook omdat One Smart Control ook nog steeds geen koppeling met Google Assistant gemaakt heeft.

Ik verwacht dat je (zeker als beginnend HA gebruiker) een stuk meer hebt aan het algemeen HA topic
Home Assistant: Open source Python3 home automation - deel 4
Dit topic is ook al weer een jaar oud, en inmiddels zou ik het waarschijnlijk allemaal al weer anders doen. Omdat mijn kennis vergroot is, maar ook omdat HA weer een hoop veranderd is.

Overigens geeft je error aan dat je 171 wil toekennen aan een input_number die maar van 1 tot 100 gaat.

Acties:
  • 0Henk 'm!

  • thomasb14
  • Registratie: juli 2019
  • Laatst online: 02-06 14:07
TheFes schreef op maandag 31 mei 2021 @ 10:31:
[...]


Wat wil je precies bereiken?

Mijn post was een erg specifieke use case, waarbij ik probeerde iets met een gesloten systeem via Google Assistant in Home Assistant te knutselen.

Ik heb het uiteindelijk nooit in gebruik genomen, en ben de modules gaan vervangen voor Shellies die gewoon goed in HA werken. Ook omdat One Smart Control ook nog steeds geen koppeling met Google Assistant gemaakt heeft.

Ik verwacht dat je (zeker als beginnend HA gebruiker) een stuk meer hebt aan het algemeen HA topic
Home Assistant: Open source Python3 home automation - deel 4
Dit topic is ook al weer een jaar oud, en inmiddels zou ik het waarschijnlijk allemaal al weer anders doen. Omdat mijn kennis vergroot is, maar ook omdat HA weer een hoop veranderd is.

Overigens geeft je error aan dat je 171 wil toekennen aan een input_number die maar van 1 tot 100 gaat.
Ik heb zelf thuis helaas een gesloten domotica systeem die ik graag wil integreren met HA.
Ik zal zeker eens gaan kijken naar het topic!

Die error code kreeg ik na het gebruik van je code haha. Maar ik zal eens kijken hoe ik kan omzeilen. :)

Acties:
  • +1Henk 'm!

  • TheFes
  • Registratie: juni 2001
  • Laatst online: 18-06 15:41
thomasb14 schreef op maandag 31 mei 2021 @ 21:08:
[...]


Ik heb zelf thuis helaas een gesloten domotica systeem die ik graag wil integreren met HA.
Ik zal zeker eens gaan kijken naar het topic!

Die error code kreeg ik na het gebruik van je code haha. Maar ik zal eens kijken hoe ik kan omzeilen. :)
Je moet de input number op max 255 zetten in plaats van 100

Die moet je dan wel omrekenen naar percentages voor de automation denk ik

[Voor 8% gewijzigd door TheFes op 31-05-2021 21:40]

Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True