{"id":12669,"date":"2022-03-05T08:28:18","date_gmt":"2022-03-05T15:28:18","guid":{"rendered":"https:\/\/smarthomesolver.com\/reviews\/?p=12669"},"modified":"2022-03-05T10:29:37","modified_gmt":"2022-03-05T17:29:37","slug":"futuristic-advanced-automations-with-room-assistant","status":"publish","type":"post","link":"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/","title":{"rendered":"Futuristic, Advanced Automations with Room Assistant"},"content":{"rendered":"\n<p>Warning! If you are not a lunatic, like me, then I suggest you don&#8217;t attempt any of this. Not only is this going to use Home Assistant, but all the advanced features of it. <\/p>\n\n\n\n<p>Stop! Don&#8217;t read any more. I&#8217;m warning you&#8230;<\/p>\n\n\n\n<p>Well if you are still reading, then you are a brave soul. Just know, I&#8217;ve had so much fun with these advanced features and I think it&#8217;s worth it, if you have a technical background. <\/p>\n\n\n\n<p>There are already some great videos and articles explaining how to do a lot of the set up. I&#8217;m going to link to those since there is no need to replicate them. What I will do is explain what I did afterward to get everything working smoothly. For me that was the most difficult part, finding those missing puzzle pieces. <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"toc_container\" class=\"toc_white no_bullets\"><p class=\"toc_title\">Table of Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Alexa_Actions\">Alexa Actions<\/a><\/li><li><a href=\"#Room_Assistant_Installation\">Room Assistant Installation<\/a><\/li><li><a href=\"#Configuring_Room_Assistant\">Configuring Room Assistant<\/a><\/li><li><a href=\"#Home_Assistant_Scripts\">Home Assistant Scripts<\/a><\/li><li><a href=\"#Blast_Music\">Blast Music<\/a><\/li><li><a href=\"#Kitchen_morning_weather\">Kitchen morning weather<\/a><\/li><li><a href=\"#Office_automation_for_only_me\">Office automation for only me<\/a><\/li><li><a href=\"#Movie_prompt\">Movie prompt<\/a><\/li><li><a href=\"#Welcome_home_routine\">Welcome home routine<\/a><\/li><li><a href=\"#Office_shades_and_jokes\">Office shades and jokes<\/a><\/li><li><a href=\"#Bedroom_at_night\">Bedroom at night<\/a><\/li><\/ul><\/div>\n<h2><span id=\"Alexa_Actions\">Alexa Actions<\/span><\/h2>\n\n\n\n<p>Something I&#8217;ve wanted for so long is the option to have Alexa initiate a conversation, and for me to only need to say &#8220;yes&#8221; or &#8220;no.&#8221; This is finally possible, and I set this up with the latest Home Assistant updates, so everything should be working fine. <\/p>\n\n\n\n<p>The only issue I ran into was not following the instructions EXACTLY. I had an extra &#8220;\/&#8221; at the end of my URL and it didn&#8217;t work because of that. So if you follow the instructions exactly, you should be okay. <\/p>\n\n\n\n<p>Mark Watt Tech made this video and it walks you through Alexa actions: <a href=\"https:\/\/youtu.be\/uoifhNyEErE\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/youtu.be\/uoifhNyEErE<\/a><\/p>\n\n\n\n<p>Here is the link to the project as well on GitHub: <a href=\"https:\/\/github.com\/keatontaylor\/alexa-actions\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/keatontaylor\/alexa-actions<\/a> <\/p>\n\n\n\n<p>Once that is set up, you will be able to have Alexa ask you a question and you can trigger an automation by just responding with the word &#8220;yes&#8221;! <\/p>\n\n\n\n<p>But in my opinion, it&#8217;s still missing the another key ingredient. That&#8217;s knowing which room you are in, so Alexa can talk to you on the nearest Echo device. Here&#8217;s where Room Assistant comes in. <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Room_Assistant_Installation\">Room Assistant Installation<\/span><\/h2>\n\n\n\n<p>There are probably some good videos out there explaining how to set up Room Assistant, but again, Mark Watt Tech was so clear and easy to follow. Those are the videos I used to set mine up and I highly recommend watching these and subscribing.<\/p>\n\n\n\n<p>It&#8217;s a 4 part video series, so buckle up! <\/p>\n\n\n\n<p><a href=\"https:\/\/youtu.be\/V5Vu55QNkVQ\" target=\"_blank\" rel=\"noreferrer noopener\">Video 1<\/a>, <a href=\"https:\/\/youtu.be\/nZAr_e2JCtE\" target=\"_blank\" rel=\"noreferrer noopener\">Video 2<\/a>, <a href=\"https:\/\/youtu.be\/Z9UQ9mowAmg\" target=\"_blank\" rel=\"noreferrer noopener\">Video 3<\/a>, <a href=\"https:\/\/youtu.be\/F_CfnplkEzU\" target=\"_blank\" rel=\"noreferrer noopener\">Video 4<\/a><\/p>\n\n\n\n<p>If you want to reference the Room Assistant project, <a href=\"https:\/\/www.room-assistant.io\/guide\/#how-it-works\" target=\"_blank\" rel=\"noreferrer noopener\">here it is<\/a>. <\/p>\n\n\n\n<p>Here are the Raspberry Pi zeros I used. <a href=\"https:\/\/amzn.to\/3sIt4AC\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Link 1<\/a> and <a href=\"https:\/\/amzn.to\/3KiDPQi\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Link 2<\/a>. They are very is inexpensive, because these things don&#8217;t need to do much. At the time of writing this the Pi zeros I bought are sold out. <\/p>\n\n\n\n<p>Following those steps should get the majority of the Room Assistant installation done. If it&#8217;s not fully working, don&#8217;t worry this next section will get everything working smoothly. <\/p>\n\n\n\n<p>You thought this would be easy&#8230; I warned you. Don&#8217;t worry, you are almost there. Okay not really, but I believe in you! Yep that&#8217;s a lie too. <\/p>\n\n\n\n<p>Okay moving on!<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Configuring_Room_Assistant\">Configuring Room Assistant<\/span><\/h2>\n\n\n\n<p>If you are using iOS, make sure you have the companion app installed: <a href=\"https:\/\/www.room-assistant.io\/integrations\/bluetooth-low-energy.html#tracking-ios-devices\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.room-assistant.io\/integrations\/bluetooth-low-energy.html#tracking-ios-devices<\/a><\/p>\n\n\n\n<p>Right now I&#8217;m using a Pixel 5a as my phone. Here&#8217;s how to set up the BLE sensor on an Android phone:<\/p>\n\n\n\n<ul><li>Open up the Home Assistant Android app on your phone. <\/li><li>On the left menu select &#8220;Configuration&#8221;<\/li><li>Scroll down and select &#8220;Companion App&#8221;<\/li><li>Select &#8220;Manage Sensors&#8221; under the Sensors section. <\/li><li>Scroll down to the &#8220;Bluetooth Sensor&#8221; section and select &#8220;BLE Transmitter&#8221;<\/li><li>Enable that, and I set my Transmitter power to &#8220;Low&#8221;. You might need to adjust yours, but this is where you find that. <\/li><li>Take note of the &#8220;id&#8221; because you will need that for this next step. <\/li><\/ul>\n\n\n\n<p>Now you are going to need to open up that config file for Room Assistant on the Raspberry Pi you installed it on. You are going to want to add that &#8220;id&#8221; so Room Assistant can track your device. Add it to the allowlist and tagOverrides sections. Here is what my config file looks like. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cluster:\n  autoDiscovery: false\n  port: 6425\n  peerAddresses:\n    - 192.168.1.62:6425\n    - 192.168.1.144:6425\n  weight: 10\n  quorum: 2\nglobal:\n  instanceName: Office Pi\n  integrations:\n    - homeAssistant\n    - bluetoothLowEnergy\nhomeAssistant:\n  mqttUrl: 'mqtt:\/\/********:1883'\n  mqttOptions:\n    username: *******\n    password: *******\nbluetoothLowEnergy:\n  allowlist:\n    - 43**********************-100-1\n  maxDistance: 5\n  minDiscoveryLogRssi: -30\n  tagOverrides:\n    43**********************-100-1:\n      name: PixelBLE<\/code><\/pre>\n\n\n\n<p>Make sure to use Bluetooth Low Energy, <strong>not<\/strong> Bluetooth Classic. The Bluetooth Low Energy is going to be much more accurate and use less power. <\/p>\n\n\n\n<p>The only field you might need to change is the &#8220;maxDistance&#8221;. This is the max distance in meters from the Raspberry Pi to your phone for Room Assistant to say your phone is in the room. It will make sense after this next part. <\/p>\n\n\n\n<p>To figure out what distance Room Assistant thinks the phone is, go to http:\/\/**Pi_URL**:6415\/entities &#8230;so mine is http:\/\/192.168.1.143:6415\/entities<br>This will spit out some JSON. Copy and paste it into a JSON formatter to read it better. I&#8217;ve always used <a href=\"https:\/\/jsonlint.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/jsonlint.com\/<\/a> <\/p>\n\n\n\n<p>There are 3 important fields to watch: &#8220;distance&#8221;, &#8220;lastUpdatedAt&#8221;, and &#8220;outOfRange&#8221;. If your phone has a BLE connection to the Raspberry Pi, the &#8220;lastUpdatedAt&#8221; field will update with the current timestamp. If you look at that field and it&#8217;s a timestamp from an hour ago, that means that was when it was last connected. <\/p>\n\n\n\n<p>So if the BLE on your phone is connected to the Raspberry Pi, then it will update the &#8220;distance&#8221;. By default it should update around every 30 seconds, but if you changed that it might be different. This is where you have to move around the room or go to different rooms to make sure you have the right distance set in the config file. <\/p>\n\n\n\n<p>If the distance is too high, you might be detected in another room. If the distance is too low, it might not detect you if your phone is in your pocket. <\/p>\n\n\n\n<p>Also the higher the Transmitter power is in the Home Assistant companion app setting, the more accurate the distance will be. But setting that too high can also reach much further across the house than it should. It&#8217;s a balancing act. <\/p>\n\n\n\n<p>Once you get all that done, the rest of it isn&#8217;t too bad. <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Home_Assistant_Scripts\">Home Assistant Scripts<\/span><\/h2>\n\n\n\n<p>Before I go over the automations, there are a few scripts I&#8217;ll be referencing. One will automatically select the nearest Echo device for the Alexa Notification. That way I can just pass a few variables to the script and it can handle the rest. <\/p>\n\n\n\n<p>Then if I ever change how many Raspberry Pis are in my Room Assistant setup, I can just modify one script. Same goes for my phone&#8217;s push notifications. <\/p>\n\n\n\n<p>You do not need to do this, but it could save you a lot of time if you&#8217;re setting up more than a handful of automations. <\/p>\n\n\n\n<p>Here&#8217;s what the first script is doing. <\/p>\n\n\n\n<ul><li>Sets the volume level to 40% so I can hear it and it&#8217;s not too loud.<\/li><li>Selects the Echo device using a template with if, elif, else. Depending on the &#8220;sensor.6proble_room_presence&#8221; which is my Room Assistant BLE sensor. <\/li><li>Then I&#8217;m just passing a few variables to the next script. {{ message }} is being set to &#8220;text&#8221; and {{ event_identification }} is being set to event_id<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Alexa Notification Wrapper\nsequence:\n  - service: media_player.volume_set\n    data:\n      volume_level: 0.4\n    target:\n      entity_id: |-\n        {% if is_state(\"sensor.6proble_room_presence\", \"Office Pi\") -%}\n           media_player.reed_s_echo_show_5_2nd_gen\n        {% elif is_state(\"sensor.6proble_room_presence\", \"Kitchen Pi\") %}\n           media_player.reed_s_2nd_echo_show\n        {% elif is_state(\"sensor.6proble_room_presence\", \"Bedroom Pi\") %}\n           media_player.blue_dot\n        {%- else -%}\n           media_player.reed_s_echo\n        {%- endif %}\n  - service: script.actionable_alexa_notification\n    data:\n      text: '{{ message }}'\n      event_id: '{{ event_identification }}'\n      alexa_device: |-\n        {% if is_state(\"sensor.6proble_room_presence\", \"Office Pi\") -%}\n           media_player.reed_s_echo_show_5_2nd_gen\n        {% elif is_state(\"sensor.6proble_room_presence\", \"Kitchen Pi\") %}\n           media_player.reed_s_2nd_echo_show\n        {% elif is_state(\"sensor.6proble_room_presence\", \"Bedroom Pi\") %}\n           media_player.blue_dot\n        {%- else -%}\n          media_player.reed_s_echo\n        {%- endif %}\nmode: single\n<\/code><\/pre>\n\n\n\n<p>My script &#8220;actionable_alexa_notification&#8221; is the same as the project. This script above just acts as the middle man to automatically set the Echo device and pass the rest of the info to it. <\/p>\n\n\n\n<p>This next one is for my push notifications. It&#8217;s pretty straight forward, and just allows me to quickly change the &#8220;mobile_app_pixel_5a&#8221; when ever I switch my phone. I need to make a more generic one for all my devices. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Actionable Notification Android\nsequence:\n  - service: notify.mobile_app_pixel_5a\n    data:\n      title: ' {{title}} '\n      message: ' {{message}} '\n      data:\n        ttl: 0\n        priority: high\n        actions:\n          - action: ' {{replyevent}} '\n            title: ' {{buttontitle}} '\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Oh and there is one more condition in every automation that you will see. The input_boolean.advanced_automations has to be true for the automation to run. This just acts as a kill switch in case I want to turn all of these automations off. <\/p>\n\n\n\n<p>I doubted all these automations would be family-friendly, so I added it as a condition to every automation. All the automations have worked so well that I haven&#8217;t turned them off and I don&#8217;t plan to. <\/p>\n\n\n\n<p>Ok, now let&#8217;s get into the specific automations I showed in the video!<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Blast_Music\">Blast Music<\/span><\/h2>\n\n\n\n<p>For this one, there are actually three automations. One to start the music if I say &#8220;yes.&#8221; The second to play music everywhere if I leave the room. The third, and most important, to stop the music if my wife Aly comes home. <\/p>\n\n\n\n<p>For the first one, it selects the Echo next to me if I&#8217;m in range of Room Assistant. If not, it sends a notification to my phone. It&#8217;s a long automation, but I prefer it to all be in one for less clutter. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Blast Music\ndescription: &gt;-\n  If I'm home and Aly isn't. Prompt me to blast music in the room I'm in or play\n  everywhere if I'm not detected in a room.\ntrigger:\n  - platform: state\n    entity_id: device_tracker.alys_iphone_se\n    for:\n      hours: 0\n      minutes: 1\n      seconds: 0\n    to: not_home\ncondition:\n  - condition: state\n    entity_id: device_tracker.pixel_5a\n    state: home\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: time\n    after: '07:45:00'\n    before: '19:00:00'\naction:\n  - choose:\n      - conditions:\n          - condition: state\n            entity_id: sensor.6proble_room_presence\n            state: not_home\n        sequence:\n          - service: script.actionable_notification_android\n            data:\n              title: Blast Music\n              message: Only you are home. Play music?\n              replyevent: echoblastmusic\n              buttontitle: Play!\n    default:\n      - service: script.alexa_notification_wrapper\n        data:\n          message: Everyone is gone, do you want me to blast some music?\n          event_identification: actionable_notification_blast_music\n  - wait_for_trigger:\n      - platform: event\n        event_data:\n          action: echoblastmusic\n        event_type: mobile_app_notification_action\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_blast_music\n          event_response_type: ResponseYes\n  - choose:\n      - conditions:\n          - condition: state\n            entity_id: sensor.6proble_room_presence\n            state: not_home\n        sequence:\n          - service: media_player.play_media\n            data:\n              media_content_type: routine\n              media_content_id: musiceverywhere\n            target:\n              entity_id: media_player.reed_s_echo\n    default:\n      - service: media_player.volume_set\n        data:\n          volume_level: 0.7\n        target:\n          entity_id: |-\n            {% if is_state(\"sensor.6proble_room_presence\", \"Office Pi\") -%}\n               media_player.reed_s_echo_show_5_2nd_gen\n            {% elif is_state(\"sensor.6proble_room_presence\", \"Kitchen Pi\") %}\n               media_player.reed_s_2nd_echo_show\n            {% elif is_state(\"sensor.6proble_room_presence\", \"Bedroom Pi\") %}\n               media_player.blue_dot\n            {%- else -%}\n               media_player.reed_s_echo\n            {%- endif %}\n      - service: media_player.play_media\n        data:\n          media_content_id: Queens Greatest\n          media_content_type: SPOTIFY\n        target:\n          entity_id: |-\n            {% if is_state(\"sensor.6proble_room_presence\", \"Office Pi\") -%}\n               media_player.reed_s_echo_show_5_2nd_gen\n            {% elif is_state(\"sensor.6proble_room_presence\", \"Kitchen Pi\") %}\n               media_player.reed_s_2nd_echo_show\n            {% elif is_state(\"sensor.6proble_room_presence\", \"Bedroom Pi\") %}\n               media_player.blue_dot\n            {%- else -%}\n               media_player.reed_s_echo\n            {%- endif %}\n      - service: input_text.set_value\n        data:\n          value: '{{states(''sensor.6proble_room_presence'')}}'\n        target:\n          entity_id: input_text.blast_music_room\nmode: single\n<\/code><\/pre>\n\n\n\n<p>The second automation plays music everywhere if I leave the room. <\/p>\n\n\n\n<p>I have an input_text to keep track of the room where I started to listen to music. I change the input_text if I move the music. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Blast Music Change Room\ndescription: If I walk out of the room where it started, then play music everywhere\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    from: Office Pi\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    from: Kitchen Pi\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    from: Bedroom Pi\ncondition:\n  - condition: not\n    conditions:\n      - condition: state\n        entity_id: input_text.blast_music_room\n        state: '{{states(''device_tracker.pixel_5a'')}}'\n  - condition: not\n    conditions:\n      - condition: state\n        entity_id: input_text.blast_music_room\n        state: none\n  - condition: not\n    conditions:\n      - condition: state\n        entity_id: input_text.blast_music_room\n        state: Everywhere\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: state\n    entity_id: media_player.spotify_kleinman_family\n    state: playing\n  - condition: time\n    after: '07:45:00'\n    before: '19:00:00'\naction:\n  - service: input_text.set_value\n    data:\n      value: Everywhere\n    target:\n      entity_id: input_text.blast_music_room\n  - service: media_player.select_source\n    data:\n      source: Everywhere\n    target:\n      entity_id: media_player.spotify_kleinman_family\nmode: single\n<\/code><\/pre>\n\n\n\n<p>The third automation stops the music when my wife comes home. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Blast Music Stop\ndescription: 'Aly is home so stop blasting music. '\ntrigger:\n  - platform: state\n    entity_id: device_tracker.alys_iphone_se\n    to: home\ncondition:\n  - condition: state\n    entity_id: media_player.spotify_kleinman_family\n    state: playing\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\naction:\n  - service: media_player.media_pause\n    target:\n      entity_id: media_player.spotify_kleinman_family\n    data: {}\n  - service: input_text.set_value\n    data:\n      value: none\n    target:\n      entity_id: input_text.blast_music_room\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Kitchen_morning_weather\">Kitchen morning weather<\/span><\/h2>\n\n\n\n<p>The idea behind this automation is to hear what to wear based on the weather. So far it&#8217;s been pretty helpful since our weather in Arizona actually hasn&#8217;t been 100% hot lately. <\/p>\n\n\n\n<p>The automation triggers only once in the morning when the Room Assistant sensor detects me in the kitchen. After that it&#8217;s just some long templates selecting text to say out loud based on the weather. I&#8217;m using the Ecobee thermostat api weather for this. That&#8217;s why it says living room. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Kitchen Morning Routine\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Kitchen Pi\ncondition:\n  - condition: time\n    after: '07:00:00'\n    before: '09:30:00'\n  - condition: template\n    value_template: &gt;\n      {% if states.automation.adv_kitchen_morning_routine.last_triggered is not\n      none %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_kitchen_morning_routine.attributes.last_triggered) | int &gt; 43200 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\naction:\n  - service: script.actionable_alexa_notification\n    data:\n      text: Good morning Reed. Do you want to hear what you should wear today?\n      event_id: actionable_notification_morning_weather_kitchen\n      alexa_device: media_player.reed_s_2nd_echo_show\n  - wait_for_trigger:\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_morning_weather_kitchen\n          event_response_type: ResponseYes\n  - service: notify.alexa_media\n    data:\n      message: &gt;-\n        Today it will be {{state_attr('weather.living_room',\n        'forecast')&#91;0]&#91;'condition']}}. You should wear   {% if\n        state_attr('weather.living_room', 'forecast')&#91;0]&#91;'temperature'] &gt; 80 -%}\n           some shorts and flip flops because it will be hot outside.\n        {% elif state_attr('weather.living_room', 'forecast')&#91;0]&#91;'temperature']\n        &gt; 70 -%}\n           a tee shirt and shorts because it will be really nice weather outside.\n        {% elif state_attr('weather.living_room', 'forecast')&#91;0]&#91;'temperature']\n        &gt; 60 -%}\n           a tee shirt and pants because it will be slightly cooler outside.\n        {% elif state_attr('weather.living_room', 'forecast')&#91;0]&#91;'temperature']\n        &gt; 40 %}\n           a light jacket and pants because it will be chilly out.\n        {%- else -%}\n           a bigger jacket because its going to be really cold out outside!\n        {%- endif %}\n\n\n        Tonight wear  {% if state_attr('weather.living_room',\n        'forecast')&#91;0]&#91;'templow'] &gt; 80 -%}\n           some shorts and flip flops because it will be hot outside.\n        {% elif state_attr('weather.living_room', 'forecast')&#91;0]&#91;'templow'] &gt; 60\n        -%}\n           a tee shirt and pants because it will be cool outside.\n        {% elif state_attr('weather.living_room', 'forecast')&#91;0]&#91;'templow'] &gt; 40\n        %}\n           a light jacket and pants because it will be chilly out.\n        {%- else -%}\n           a bigger jacket because its going to be really cold out outside!\n        {%- endif %}\n      data:\n        type: tts\n      target: media_player.reed_s_2nd_echo_show\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Office_automation_for_only_me\">Office automation for only me<\/span><\/h2>\n\n\n\n<p>Like I mentioned in the video, I only wanted certain automations to run when I enter the office. What I didn&#8217;t mention in the video is that the motion sensor has to be triggered first so that this automation doesn&#8217;t get accidentally triggered if I walk by in the hallway. Yes&#8230; that has happened before fixing it. <\/p>\n\n\n\n<p>For the lights:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Office Lights Reed\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Office Pi\n    for:\n      hours: 0\n      minutes: 0\n      seconds: 0\ncondition:\n  - condition: device\n    device_id: 66d3bbfe1b49efc82ba2482250a00e01\n    domain: cover\n    entity_id: cover.ikea_office_left_shade\n    type: is_closed\n  - condition: device\n    device_id: 0a5ae87a773d0d87e4cb9f18b9349259\n    domain: cover\n    entity_id: cover.ikea_office_right_shade\n    type: is_closed\n  - condition: not\n    conditions:\n      - type: is_no_motion\n        condition: device\n        device_id: 7e36ea0b70533c24bc8577776b26c416\n        entity_id: binary_sensor.hue_motion_sensor_motion\n        domain: binary_sensor\n        for:\n          hours: 0\n          minutes: 2\n          seconds: 0\naction:\n  - type: turn_off\n    device_id: db228927d421f4d49e5f668c2ba7c229\n    entity_id: light.office_office_ceiling\n    domain: light\n  - service: script.turn_on\n    data: {}\n    target:\n      entity_id: script.alexa_routine_office_2_button\n  - condition: numeric_state\n    entity_id: weather.home\n    attribute: temperature\n    above: '90'\n  - type: turn_on\n    device_id: 6a816807ffb6fa88e76dc5a8cf554a8a\n    entity_id: switch.smart_power_strip_1\n    domain: switch\nmode: single\n<\/code><\/pre>\n\n\n\n<p>And here&#8217;s for the dashboard. It&#8217;s pretty much the same thing and I should combine them. I just learned about the dashboard casting from another <a href=\"https:\/\/youtu.be\/4vu4aqWI3_c\" target=\"_blank\" rel=\"noreferrer noopener\">Mark Watt Tech video<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Office Dashboard\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Office Pi\ncondition:\n  - condition: state\n    entity_id: media_player.kitchen_display\n    state: idle\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: not\n    conditions:\n      - type: is_no_motion\n        condition: device\n        device_id: 7e36ea0b70533c24bc8577776b26c416\n        entity_id: binary_sensor.hue_motion_sensor_motion\n        domain: binary_sensor\n        for:\n          hours: 0\n          minutes: 2\n          seconds: 0\naction:\n  - service: script.turn_on\n    data: {}\n    target:\n      entity_id: script.office_dash_display\nmode: single\n<\/code><\/pre>\n\n\n\n<p>Then here&#8217;s for the news to be read to me if I say &#8220;yes&#8221; to the Echo asking me. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Office Morning Routine\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Office Pi\ncondition:\n  - condition: time\n    after: '08:00:00'\n    before: '11:00:00'\n  - condition: template\n    value_template: &gt;\n      {% if states.automation.adv_office_morning_routine.last_triggered is not\n      none %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_office_morning_routine.attributes.last_triggered) | int &gt; 43200 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: not\n    conditions:\n      - type: is_no_motion\n        condition: device\n        device_id: 7e36ea0b70533c24bc8577776b26c416\n        entity_id: binary_sensor.hue_motion_sensor_motion\n        domain: binary_sensor\n        for:\n          hours: 0\n          minutes: 2\n          seconds: 0\naction:\n  - service: script.actionable_alexa_notification\n    data:\n      text: Good morning Reed. Do you want to hear your morning briefing now?\n      event_id: actionable_notification_morning_briefing\n      alexa_device: media_player.reed_s_echo_show_5_2nd_gen\n  - wait_for_trigger:\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_morning_briefing\n          event_response_type: ResponseYes\n  - service: media_player.play_media\n    data:\n      media_content_type: sequence\n      media_content_id: Alexa.FlashBriefing.Play\n    target:\n      entity_id: media_player.reed_s_echo_show_5_2nd_gen\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Movie_prompt\">Movie prompt<\/span><\/h2>\n\n\n\n<p>If my theater system isn&#8217;t turned on by 9pm, then I get asked if I want to watch a movie. I&#8217;ve used this automation way more than I thought I would and it hasn&#8217;t been annoying. When trying to put kids down to sleep, 9pm can sneak up on me way faster than I would like. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Movie Night Prompt\ndescription: &gt;-\n  If it's in the evening and I'm home and not watching a movie in the theater\n  room, ask me to\ntrigger:\n  - platform: time\n    at: '21:00:00'\ncondition:\n  - condition: state\n    entity_id: device_tracker.pixel_5a\n    state: home\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: device\n    device_id: f438486407447a4be3ddc349a7707ab7\n    domain: media_player\n    entity_id: media_player.denon_avr_x4700h\n    type: is_off\naction:\n  - choose:\n      - conditions:\n          - condition: state\n            entity_id: sensor.6proble_room_presence\n            state: not_home\n        sequence:\n          - service: script.actionable_notification_android\n            data:\n              title: Movie Night\n              message: Do you want me to turn on the theater room?\n              replyevent: echotheateron\n              buttontitle: Turn On!\n    default:\n      - service: script.alexa_notification_wrapper\n        data:\n          message: Do you want to watch a movie in the theater room right now?\n          event_identification: actionable_notification_theater_on\n  - wait_for_trigger:\n      - platform: event\n        event_data:\n          action: echotheateron\n        event_type: mobile_app_notification_action\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_theater_on\n          event_response_type: ResponseYes\n  - service: script.turn_on\n    data: {}\n    target:\n      entity_id: script.alexa_routine_movie_preview\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Welcome_home_routine\">Welcome home routine<\/span><\/h2>\n\n\n\n<p>There&#8217;s nothing that will put me in a bad more than driving in bad traffic. BUT when I come home and music starts playing for me I&#8217;m in a way better mood. <\/p>\n\n\n\n<p>Trying to figure out the best way to only run this automation if I&#8217;ve arrived home in the last 10 minutes was tricky. There might be a better way to do it but this is what I have. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Welcome Home Music\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Kitchen Pi\n    for:\n      hours: 0\n      minutes: 0\n      seconds: 0\ncondition:\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: not\n    conditions:\n      - condition: state\n        entity_id: device_tracker.pixel_5a\n        state: home\n        for:\n          hours: 0\n          minutes: 10\n          seconds: 0\n  - condition: template\n    value_template: &gt;\n      {% if states.automation.adv_welcome_home_music.last_triggered is not none\n      %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_welcome_home_music.attributes.last_triggered) | int &gt; 3600 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\n  - condition: time\n    after: '08:00:00'\n    before: '19:00:00'\naction:\n  - service: notify.alexa_media\n    data:\n      message: |-\n        Welcome home Reed!\n        {% if is_state(\"cover.garage_door_main\", \"closed\") -%}\n          The main garage door closed {{ relative_time(states.cover.garage_door_main.last_changed) }} ago.\n        {%- else -%}\n          The main garage door is still open.\n        {%- endif %}\n\n        {% if is_state(\"cover.garage_door_small\", \"closed\") -%}\n          The small garage door closed {{ relative_time(states.cover.garage_door_small.last_changed) }} ago.\n        {%- else -%}\n          The small garage door is still open.\n        {%- endif %}\n\n        {% for state in states.climate -%}\n          The thermostat {{state.name}} is currently \n          {{state_attr(state.entity_id, 'current_temperature') | round(0)}} degrees, \n\n        {%- endfor %}\n      data:\n        type: tts\n      target: media_player.reed_s_2nd_echo_show\n  - service: media_player.volume_set\n    data:\n      volume_level: 0.5\n    target:\n      entity_id: media_player.reed_s_2nd_echo_show\n  - service: media_player.play_media\n    data:\n      media_content_id: Queens Greatest\n      media_content_type: SPOTIFY\n    target:\n      entity_id: media_player.reed_s_2nd_echo_show\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Office_shades_and_jokes\">Office shades and jokes<\/span><\/h2>\n\n\n\n<p>With Room Assistant, it can track how long you have been in a room. For the shades to open up, it just looks for me being in the room for at least a minute. Then if there&#8217;s motion and it&#8217;s the right time of day\/temperature it will ask me to open them.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Office Shades Up\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Office Pi\n    for:\n      hours: 0\n      minutes: 1\n      seconds: 0\n  - type: motion\n    platform: device\n    device_id: 7e36ea0b70533c24bc8577776b26c416\n    entity_id: binary_sensor.hue_motion_sensor_motion\n    domain: binary_sensor\ncondition:\n  - condition: state\n    entity_id: sensor.6proble_room_presence\n    state: Office Pi\n  - condition: time\n    after: '10:00:00'\n    before: '16:00:00'\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: numeric_state\n    entity_id: weather.home\n    attribute: temperature\n    below: '100'\n  - condition: device\n    device_id: 66d3bbfe1b49efc82ba2482250a00e01\n    domain: cover\n    entity_id: cover.ikea_office_left_shade\n    type: is_closed\n  - condition: device\n    device_id: 0a5ae87a773d0d87e4cb9f18b9349259\n    domain: cover\n    entity_id: cover.ikea_office_right_shade\n    type: is_closed\n  - condition: template\n    value_template: |\n      {% if states.automation.adv_office_shades_up.last_triggered is not none %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_office_shades_up.attributes.last_triggered) | int &gt; 43200 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\naction:\n  - service: script.actionable_alexa_notification\n    data:\n      text: &gt;-\n        Hey Reed. It is nice outside. Do you want me to open the office window\n        shades?\n      event_id: actionable_notification_office_shades_open\n      alexa_device: media_player.reed_s_echo_show_5_2nd_gen\n  - wait_for_trigger:\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_office_shades_open\n          event_response_type: ResponseYes\n  - device_id: 66d3bbfe1b49efc82ba2482250a00e01\n    domain: cover\n    entity_id: cover.ikea_office_left_shade\n    type: set_position\n    position: 100\n  - device_id: 0a5ae87a773d0d87e4cb9f18b9349259\n    domain: cover\n    entity_id: cover.ikea_office_right_shade\n    type: set_position\n    position: 100\nmode: single\n<\/code><\/pre>\n\n\n\n<p>To ask me about a joke, I have to be sitting there longer. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Office Joke Ask\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Office Pi\n    for:\n      hours: 0\n      minutes: 30\n      seconds: 0\ncondition:\n  - condition: time\n    after: '10:00:00'\n    before: '17:00:00'\n  - condition: template\n    value_template: |\n      {% if states.automation.adv_office_joke.last_triggered is not none %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_office_joke.attributes.last_triggered) | int &gt; 3600 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\naction:\n  - service: media_player.volume_set\n    data:\n      volume_level: 0.6\n    target:\n      entity_id: media_player.reed_s_echo_show_5_2nd_gen\n  - service: script.actionable_alexa_notification\n    data:\n      text: Hey Reed. Do you want to hear a joke?\n      event_id: actionable_notification_tell_joke_office_respond\n      alexa_device: media_player.reed_s_echo_show_5_2nd_gen\nmode: single\n<\/code><\/pre>\n\n\n\n<p>Since I wanted to be able to keep saying &#8220;yes&#8221; and telling more jokes I had to break this automation up into two. Here&#8217;s the second part. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Office Joke Respond\ndescription: ''\ntrigger:\n  - platform: event\n    event_type: alexa_actionable_notification\n    event_data:\n      event_id: actionable_notification_tell_joke_office_respond\n      event_response_type: ResponseYes\ncondition: &#91;]\naction:\n  - service: media_player.play_media\n    data:\n      media_content_type: sequence\n      media_content_id: Alexa.Joke.Play\n    target:\n      entity_id: media_player.reed_s_echo_show_5_2nd_gen\n  - service: script.actionable_alexa_notification\n    data:\n      text: Do you want to hear another joke?\n      event_id: actionable_notification_tell_joke_office_respond\n      alexa_device: media_player.reed_s_echo_show_5_2nd_gen\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2><span id=\"Bedroom_at_night\">Bedroom at night<\/span><\/h2>\n\n\n\n<p>Since I have a Raspberry Pi and a bed pressure sensor, I can tell when I&#8217;m in the room and also when I&#8217;m on the bed. Usually if I am just getting in bed I&#8217;m not wanting to watch TV, so that&#8217;s why I have it set up like this. It uses the Alexa Media Player to trigger an Alexa Routine to control the Fire TV. I&#8217;m sure there are plenty of different ways to do this same thing. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Bedtime Wind Down\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: sensor.6proble_room_presence\n    to: Bedroom Pi\ncondition:\n  - condition: time\n    after: '22:00:00'\n    before: '23:55:00'\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: template\n    value_template: &gt;\n      {% if states.automation.adv_bedtime_wind_down.last_triggered is not none\n      %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_bedtime_wind_down.attributes.last_triggered) | int &gt; 43200 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\n  - condition: state\n    entity_id: binary_sensor.withings_in_bed_reed\n    state: 'off'\naction:\n  - service: media_player.volume_set\n    data:\n      volume_level: 0.2\n    target:\n      entity_id: media_player.blue_dot\n  - service: script.actionable_alexa_notification\n    data:\n      text: Hey Reed, do you want to watch some TV?\n      event_id: actionable_notification_bedroom_tv\n      alexa_device: media_player.blue_dot\n  - wait_for_trigger:\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_bedroom_tv\n          event_response_type: ResponseYes\n  - service: script.turn_on\n    data: {}\n    target:\n      entity_id:\n        - script.alexa_routine_bedroom_tv\nmode: single\n<\/code><\/pre>\n\n\n\n<p>Then to set my alarm for the next day, it will read off my next day&#8217;s calendar and then ask me if the alarm isn&#8217;t set already. For the dashboard I just learned how to do that from another <a href=\"https:\/\/youtu.be\/4vu4aqWI3_c\" target=\"_blank\" rel=\"noreferrer noopener\">Mark Watt Tech video<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Adv - Bedtime Alarm Set\ndescription: ''\ntrigger:\n  - platform: state\n    entity_id: binary_sensor.withings_in_bed_reed\n    to: 'on'\ncondition:\n  - condition: time\n    after: '22:00:00'\n    before: '23:55:00'\n  - condition: state\n    entity_id: input_boolean.advanced_automations\n    state: 'on'\n  - condition: template\n    value_template: &gt;\n      {% if states.automation.adv_bedtime_alarm_set.last_triggered is not none\n      %}\n                {% if as_timestamp(now()) | int - as_timestamp(states.automation.adv_bedtime_alarm_set.attributes.last_triggered) | int &gt; 43200 %} true {% else %} false\n                {% endif %}\n              {% else %}\n              false\n              {% endif %}\n  - condition: state\n    entity_id: sensor.6proble_room_presence\n    state: Bedroom Pi\naction:\n  - service: script.turn_on\n    data: {}\n    target:\n      entity_id: script.bedroom_dash_display_on\n  - service: media_player.volume_set\n    data:\n      volume_level: 0.2\n    target:\n      entity_id: media_player.blue_dot\n  - service: media_player.play_media\n    data:\n      media_content_type: sequence\n      media_content_id: Alexa.Calendar.PlayTomorrow\n    target:\n      entity_id:\n        - media_player.blue_dot\n  - condition: state\n    entity_id: input_boolean.morning_wakeup\n    state: 'off'\n  - service: script.actionable_alexa_notification\n    data:\n      text: Hey Reed, do you want to set the alarm for tomorrow?\n      event_id: actionable_notification_bedroom_alarm_on\n      alexa_device: media_player.blue_dot\n  - wait_for_trigger:\n      - platform: event\n        event_type: alexa_actionable_notification\n        event_data:\n          event_id: actionable_notification_bedroom_alarm_on\n          event_response_type: ResponseYes\n  - service: input_boolean.turn_on\n    data: {}\n    target:\n      entity_id: input_boolean.morning_wakeup\nmode: single\n<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Well hopefully you don&#8217;t try and do ALL of this in one day. It took me weeks working on it a little at a time. It&#8217;s been so much fun though and I feel like I&#8217;m just getting started with all the possibilities! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning! If you are not a lunatic, like me, then I suggest you don&#8217;t attempt any of this. Not only is this going to use Home Assistant, but all the advanced features of it. Stop! Don&#8217;t read any more. I&#8217;m <a href=\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\"><\/p>\n<div class=\"read-more\">\n<p>Read more &#8250;<\/p>\n<\/div>\n<p><!-- end of .read-more --><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Futuristic, Advanced Automations with Room Assistant | Smart Home Solver<\/title>\n<link rel=\"canonical\" href=\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Futuristic, Advanced Automations with Room Assistant | Smart Home Solver\" \/>\n<meta property=\"og:description\" content=\"Warning! If you are not a lunatic, like me, then I suggest you don&#8217;t attempt any of this. Not only is this going to use Home Assistant, but all the advanced features of it. Stop! Don&#8217;t read any more. I&#8217;m Read more &#8250;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\" \/>\n<meta property=\"og:site_name\" content=\"Smart Home Solver\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-05T15:28:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-05T17:29:37+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"18 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/#website\",\"url\":\"https:\/\/smarthomesolver.com\/reviews\/\",\"name\":\"Smart Home Solver\",\"description\":\"Smart Home Solver\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/smarthomesolver.com\/reviews\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/#webpage\",\"url\":\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\",\"name\":\"Futuristic, Advanced Automations with Room Assistant | Smart Home Solver\",\"isPartOf\":{\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/#website\"},\"datePublished\":\"2022-03-05T15:28:18+00:00\",\"dateModified\":\"2022-03-05T17:29:37+00:00\",\"author\":{\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/#\/schema\/person\/d7a94f002e37d00d768cdbc8bf0afaa3\"},\"breadcrumb\":{\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/\",\"url\":\"https:\/\/smarthomesolver.com\/reviews\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\",\"url\":\"https:\/\/smarthomesolver.com\/reviews\/futuristic-advanced-automations-with-room-assistant\/\",\"name\":\"Futuristic, Advanced Automations with Room Assistant\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/#\/schema\/person\/d7a94f002e37d00d768cdbc8bf0afaa3\",\"name\":\"Reed Kleinman\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/smarthomesolver.com\/reviews\/#personlogo\",\"inLanguage\":\"en\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f0b2a85b039ba9da5470ee40dc5ab57a?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f0b2a85b039ba9da5470ee40dc5ab57a?s=96&r=g\",\"caption\":\"Reed Kleinman\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/posts\/12669"}],"collection":[{"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/comments?post=12669"}],"version-history":[{"count":33,"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/posts\/12669\/revisions"}],"predecessor-version":[{"id":12712,"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/posts\/12669\/revisions\/12712"}],"wp:attachment":[{"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/media?parent=12669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/categories?post=12669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smarthomesolver.com\/reviews\/wp-json\/wp\/v2\/tags?post=12669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}