zachowj / node-red-contrib-home-assistant-websocket

Node-RED integration with Home Assistant
https://zachowj.github.io/node-red-contrib-home-assistant-websocket/
MIT License
504 stars 93 forks source link

Auto reconnect after HA restart #171

Closed Luc3as closed 4 years ago

Luc3as commented 4 years ago

Hi, I am experiencing one problem which is causing me headache, after restarting HomeAssistant, I need to manually redeploy NodeRED flows because it stays in unavailable state for entities. and then it is working as expected. I was looking for calling NodeRED API and redeploying all flows but it seems to me like wrong way.

Should there be auto reconnect working and is it problem with my installation ?

thanks

zachowj commented 4 years ago

Not sure I follow what you mean by "unavailable state for entities". Node-RED should reconnect to HA after an HA reboot and function correctly without having to restart NR.

cbulock commented 4 years ago

I've been struggling with this same issue recently as well. I used to be able to stay connected for weeks at a time no problem, but now my flows stop getting updates from HASS regularly. Restarting Home Assistant is one of the times I stop getting state updates.

cbulock commented 4 years ago

Looking at my logs, I noticed at 17:21 today, the websocket lost connection and reconnected, and my state node shows a last update time at the same time the websocket connection was lost. It appears even though the websocket connection is being recovered, the state nodes aren't getting any further updates. It should be noted, I didn't restart Home Assistant in this case, but restarting Home Assistant will duplicate this same behavior.

29 Dec 17:21:59 - [info] [server:Home Assistant] WebSocket Closed http://ha:8123
29 Dec 17:21:59 - [info] [server:Home Assistant] WebSocket Connected to http://ha:8123
Screenshot 2019-12-29 20 43 32
zachowj commented 4 years ago

@cbulock Environment (please complete the following information):

You can reproduce this every time you restart HA? If you're using Docker what is your network_mode set for the container?

cbulock commented 4 years ago

@cbulock Environment (please complete the following information):

  • Node Red Version: [e.g. 0.19.5]

v1.0.3

  • Node.js Version: [e.g. 8.12.0]

v10.17.0

  • NR Home Assistant Plugin Version: [e.g. 0.5.0]

0.18.0

  • Is Node Red running in Docker: [e.g. yes/no/hassio]

Yes, just regular Docker

You can reproduce this every time you restart HA? If you're using Docker what is your network_mode set for the container?

So far I have been able to duplicate it anytime I restart HA. I have NodeRed using bridge mode for the network, while HA is using macvlan.

EDIT: Of course, now that I went to duplicate this issue again by updating HASS, I wasn't able to duplicate it and NodeRed seemed to reconnect fine. I don't feel confident saying it's reproducible at all times now.

zachowj commented 4 years ago

@cbulock I know there has been a lot of reported issues about using docker in bridge mode instead of host because it times out the websocket connection.

stcbus commented 4 years ago

I also am running into this and then don't have any HASS-reliant automations run. I am home and node red still says "not_home" from this morning when I left.

Screen Shot 2020-01-30 at 5 51 56 PM

And like mentioned above by @cbulock , the last lines in my node red config for the day:

Screen Shot 2020-01-30 at 5 52 16 PM

This unfortunately is not reliable enough for a home.

I also am pretty sure I didn't actually restart HASS this morning.

zachowj commented 4 years ago

@stcbus Environment (please complete the following information):

If you're running it in docker what network mode are you using?

stcbus commented 4 years ago

@zachowj

  • Node Red Version: [e.g. 0.19.5]

1.0.3

  • Node.js Version: [e.g. 8.12.0]

v10.18.0

  • NR Home Assistant Plugin Version: [e.g. 0.5.0]

0.19.4

  • Is Node Red running in Docker: [e.g. yes/no/hassio]

yes

If you're running it in docker what network mode are you using?

Default/bridge mode, exposing port 1880. HASS is also in a docker running in host mode.

stcbus commented 4 years ago

Hi this has happened again to me twice. All my routines and automations then don't work :/ But going manually through HASS/Homekit instead of Node Red of course still works. The log doesn't show any disconnects/reconnects like last time either.

This is some of the last lines and it seemed to not work at all yesterday or this morning (2/5, 2/6).

4 Feb 15:46:01 - [info] [server:Home Assistant] WebSocket Connected to https://home.stevenbarnhart.com
4 Feb 17:07:45 - [info] [server:Home Assistant] WebSocket Closed https://home.stevenbarnhart.com
4 Feb 17:07:59 - [info] [server:Home Assistant] WebSocket Connected to https://home.stevenbarnhart.com
4 Feb 20:14:07 - [info] [debug:good night blinds]
{ topic: 'input_boolean.good_night',
  payload: 'on',
  data:
   { entity_id: 'input_boolean.good_night',
     old_state:
      { entity_id: 'input_boolean.good_night',
        state: 'off',
        attributes:
         { editable: false,
           friendly_name: 'goodnight',
           icon: 'mdi:moon-waning-crescent' },
        last_changed: '2020-02-04T20:45:32.059719+00:00',
        last_updated: '2020-02-04T20:45:32.059719+00:00',
        context:
         { id: 'fddcda5a521b45819f9ff27dc5cff30a',
           parent_id: null,
           user_id: null } },
     new_state:
      { entity_id: 'input_boolean.good_night',
        state: 'on',
        attributes:
         { editable: false,
           friendly_name: 'goodnight',
           icon: 'mdi:moon-waning-crescent' },
        last_changed: '2020-02-05T01:14:07.647573+00:00',
        last_updated: '2020-02-05T01:14:07.647573+00:00',
        context:
         { id: '7fd06d25486f46b0aada232b305faa93',
           parent_id: null,
           user_id: '9418b466101e406d9719f752c5ac6550' },
        timeSinceChangedMs: 5 } },
  _msgid: 'c6f0710b.4c45b',
  _event: 'node:a4776939.4499b8' }
5 Feb 07:44:30 - [info] [debug:good night blinds]
{ topic: 'input_boolean.good_morning',
  payload: 'on',
  data:
   { entity_id: 'input_boolean.good_morning',
     old_state:
      { entity_id: 'input_boolean.good_morning',
        state: 'off',
        attributes:
         { editable: false,
           friendly_name: 'good_morning',
           icon: 'mdi:white-balance-sunny' },
        last_changed: '2020-02-04T20:45:32.060803+00:00',
        last_updated: '2020-02-04T20:45:32.060803+00:00',
        context:
         { id: '6f00e3de93e644fd849d653d4286dc1d',
           parent_id: null,
           user_id: null } },
     new_state:
      { entity_id: 'input_boolean.good_morning',
        state: 'on',
        attributes:
         { editable: false,
           friendly_name: 'good_morning',
           icon: 'mdi:white-balance-sunny' },
        last_changed: '2020-02-05T12:44:30.579976+00:00',
        last_updated: '2020-02-05T12:44:30.579976+00:00',
        context:
         { id: '8f661f1f075c4d7aa5d03860dd6dd6aa',
           parent_id: null,
           user_id: '9418b466101e406d9719f752c5ac6550' },
        timeSinceChangedMs: 5 } },
  _msgid: 'd917ccca.d54eb',
  _event: 'node:232e3997.f73df6' }
Received event for unknown subscription 2. Unsubscribing.
Received event for unknown subscription 3. Unsubscribing.
zachowj commented 4 years ago

@stcbus As I stated above similar issues have been had by users using NR in docker in bridge mode. Try setting the containers network mode to host and see if it resolves the issue and let us know.

stcbus commented 4 years ago

So I recreated my docker for nodered in host mode, now both HA and NR are in host mode. It failed once again. Same issue as last time, no logs or errors since the evening before, nothing in HA log that coincides, and it at least knew I left for work this morning, but stopped processing sometime after that.

11 Feb 08:24:24 - [info] [debug:good night blinds] 
{ topic: 'input_boolean.good_morning',
  payload: 'on',
  data:
   { entity_id: 'input_boolean.good_morning',
     old_state:
      { entity_id: 'input_boolean.good_morning',
        state: 'off',
        attributes:
         { editable: false,
           friendly_name: 'good_morning',
           icon: 'mdi:white-balance-sunny' },
        last_changed: '2020-02-10T19:02:22.230024+00:00',
        last_updated: '2020-02-10T19:02:22.230024+00:00',
        context:
         { id: 'd3d90242c1dd4d4790effb8386f9279b',
           parent_id: null,
           user_id: null } },
     new_state:
      { entity_id: 'input_boolean.good_morning',
        state: 'on',
        attributes:
         { editable: false,
           friendly_name: 'good_morning',
           icon: 'mdi:white-balance-sunny' },
        last_changed: '2020-02-11T13:24:24.906170+00:00',
        last_updated: '2020-02-11T13:24:24.906170+00:00',
        context:
         { id: 'ecfcaf39f859475380abc1ff1a1bb2fe',
           parent_id: null,
           user_id: '9418b466101e406d9719f752c5ac6550' },
        timeSinceChangedMs: 5 } },
  _msgid: 'ed34a80f.dc1548',
  _event: 'node:232e3997.f73df6' }
Received event for unknown subscription 3. Unsubscribing.
Received event for unknown subscription 4. Unsubscribing.
Screen Shot 2020-02-11 at 6 44 49 PM Screen Shot 2020-02-11 at 6 45 43 PM
zachowj commented 4 years ago

@stcbus I actually paid attention to your logs this time. The issue I am seeing is the Received event for unknown subscription 3. Unsubscribing.. This is telling me HA is sends something unexpected which is causing the websocket client to unsubscribe to those subscription one of which is probably the state_changed events.

You could try turning on debug level logging for the websocket api in HA and see what it's sending when those appear in the NR log.

stale[bot] commented 4 years ago

This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stcbus commented 4 years ago

Hi! @zachowj Sorry about the long delay - I finally got some good logging infrastructure to track these down. It seems random what it unsubscribes from (i.e., sometimes the whole thing dies, other times only partial events). Below is an export of the nodered and home assistant dockers during a time a problem occurred.

timestamp application_name message
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 4, 'type': 'event', 'event': <Event state_changed[L]: entity_id=camera.living_room_alarm, old_state=<state camera.living_room_alarm=idle; access_token=65b05ad35e755b5a9dc0030731375313265ba5ecec25748e9d9a6c4da9485d27, last_trip=2020-04-14T11:24:14.364322-04:00, filename=image.jpg, friendly_name=Living Room Alarm, entity_picture=/api/camera_proxy/camera.living_room_alarm?token=65b05ad35e755b5a9dc0030731375313265ba5ecec25748e9d9a6c4da9485d27, supported_features=0 @ 2020-04-14T11:24:20.002727-04:00>, new_state=<state camera.living_room_alarm=idle; access_token=902b11bfd3704915ee11dcd81189b7ba97b41f2905c3991aa9cac9bb084e27b1, last_trip=2020-04-14T11:24:14.364322-04:00, filename=image.jpg, friendly_name=Living Room Alarm, entity_picture=/api/camera_proxy/camera.living_room_alarm?token=902b11bfd3704915ee11dcd81189b7ba97b41f2905c3991aa9cac9bb084e27b1, supported_features=0 @ 2020-04-14T11:24:20.002727-04:00>>}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'unsubscribe_events', 'subscription': 4, 'id': 8823}
2020-04-14T15:30:31.000Z nodered1 (node:16) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'call_service', 'domain': 'light', 'service': 'turn_on', 'service_data': {'entity_id': 'light.ceiling_light', 'kelvin': 4978, 'brightness_pct': 100}, 'id': 8826}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'call_service', 'domain': 'light', 'service': 'turn_on', 'service_data': {'entity_id': 'light.floor_lamp', 'kelvin': 4978, 'brightness_pct': 100}, 'id': 8827}
2020-04-14T15:30:30.000Z ha1 2020-04-14 11:30:30 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 4, 'type': 'event', 'event': <Event state_changed[L]: entity_id=sensor.noaa_alerts_ohz055, old_state=<state sensor.noaa_alerts_ohz055=1; alerts=[{'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4159452-3522625', '@type': 'wx:Alert', 'id': 'NWS-IDP-PROD-4159452-3522625', 'areaDesc': 'Madison; Franklin; Licking; Logan; Hardin; Montgomery; Fayette; Mercer; Wayne; Union; Warren; Clark; Fayette; Preble; Shelby; Clinton; Franklin; Miami; Delaware; Greene; Auglaize; Fairfield; Butler; Pickaway; Champaign; Darke; Union', 'geocode': {'UGC': ['OHZ054', 'INZ066', 'OHZ056', 'OHZ044', 'OHZ026', 'OHZ061', 'INZ058', 'OHZ034', 'INZ050', 'OHZ045', 'OHZ071', 'OHZ053', 'OHZ063', 'OHZ060', 'OHZ043', 'OHZ072', 'OHZ055', 'OHZ051', 'OHZ046', 'OHZ062', 'OHZ035', 'OHZ065', 'OHZ070', 'OHZ064', 'OHZ052', 'OHZ042', 'INZ059'], 'SAME': ['039097', '018047', '039089', '039091', '039065', '039113', '018041', '039107', '018177', '039159', '039165', '039023', '039047', '039135', '039149', '039027', '039049', '039109', '039041', '039057', '039011', '039045', '039017', '039129', '039021', '039037', '018161']}, 'affectedZones': ['https://api.weather.gov/zones/forecast/OHZ054', 'https://api.weather.gov/zones/forecast/INZ066', 'https://api.weather.gov/zones/forecast/OHZ056', 'https://api.weather.gov/zones/forecast/OHZ044', 'https://api.weather.gov/zones/forecast/OHZ026', 'https://api.weather.gov/zones/forecast/OHZ061', 'https://api.weather.gov/zones/forecast/INZ058', 'https://api.weather.gov/zones/forecast/OHZ034', 'https://api.weather.gov/zones/forecast/INZ050', 'https://api.weather.gov/zones/forecast/OHZ045', 'https://api.weather.gov/zones/forecast/OHZ071', 'https://api.weather.gov/zones/forecast/OHZ053', 'https://api.weather.gov/zones/forecast/OHZ063', 'https://api.weather.gov/zones/forecast/OHZ060', 'https://api.weather.gov/zones/forecast/OHZ043', 'https://api.weather.gov/zones/forecast/OHZ072', 'https://api.weather.gov/zones/forecast/OHZ055', 'https://api.weather.gov/zones/forecast/OHZ051', 'https://api.weather.gov/zones/forecast/OHZ046', 'https://api.weather.gov/zones/forecast/OHZ062', 'https://api.weather.gov/zones/forecast/OHZ035', 'https://api.weather.gov/zones/forecast/OHZ065', 'https://api.weather.gov/zones/forecast/OHZ070', 'https://api.weather.gov/zones/forecast/OHZ064', 'https://api.weather.gov/zones/forecast/OHZ052', 'https://api.weather.gov/zones/forecast/OHZ042', 'https://api.weather.gov/zones/forecast/INZ059'], 'references': [{'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157817-3521446', 'identifier': 'NWS-IDP-PROD-4157817-3521446', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157817-3521445', 'identifier': 'NWS-IDP-PROD-4157817-3521445', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158231-3521759', 'identifier': 'NWS-IDP-PROD-4158231-3521759', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T18:18:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158231-3521758', 'identifier': 'NWS-IDP-PROD-4158231-3521758', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T18:18:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158996-3522334', 'identifier': 'NWS-IDP-PROD-4158996-3522334', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-14T03:05:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158996-3522333', 'identifier': 'NWS-IDP-PROD-4158996-3522333', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-14T03:05:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158305-3521819', 'identifier': 'NWS-IDP-PROD-4158305-3521819', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T19:03:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158232-3521760', 'identifier': 'NWS-IDP-PROD-4158232-3521760', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T18:18:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157816-3521443', 'identifier': 'NWS-IDP-PROD-4157816-3521443', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157816-3521444', 'identifier': 'NWS-IDP-PROD-4157816-3521444', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158649-3522110', 'identifier': 'NWS-IDP-PROD-4158649-3522110', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T22:02:00-04:00'}], 'sent': '2020-04-14T08:52:00-04:00', 'effective': '2020-04-14T08:52:00-04:00', 'onset': '2020-04-15T01:00:00-04:00', 'expires': '2020-04-14T17:00:00-04:00', 'ends': '2020-04-15T09:00:00-04:00', 'status': 'Actual', 'messageType': 'Update', 'category': 'Met', 'severity': 'Moderate', 'certainty': 'Likely', 'urgency': 'Expected', 'event': 'Freeze Warning', 'sender': 'w-nws.webmaster@noaa.gov', 'senderName': 'NWS Wilmington OH', 'headline': 'Freeze Warning issued April 14 at 8:52AM EDT until April 15 at 9:00AM EDT by NWS Wilmington OH', 'description': ' WHAT...Sub-freezing temperatures as low as 29 expected.\n\n WHERE...Portions of East Central and Southeast Indiana and\nCentral, Southwest and West Central Ohio.\n\n WHEN...From 1 AM to 9 AM EDT Wednesday.\n\n IMPACTS...Frost and freeze conditions will kill crops, other\nsensitive vegetation and possibly damage unprotected outdoor\nplumbing.', 'instruction': 'Take steps now to protect tender plants from the cold. To prevent\nfreezing and possible bursting of outdoor water pipes they should\nbe wrapped, drained, or allowed to drip slowly. Those that have\nin-ground sprinkler systems should drain them and cover above-\nground pipes to protect them from freezing.', 'response': 'Execute', 'parameters': {'NWSheadline': ['FREEZE WARNING REMAINS IN EFFECT FROM 1 AM TO 9 AM EDT WEDNESDAY... ...FREEZE WARNING WILL EXPIRE AT 9 AM EDT THIS MORNING'], 'VTEC': ['/O.CON.KILN.FZ.W.0004.200415T0500Z-200415T1300Z/'], 'PIL': ['ILNNPWILN'], 'BLOCKCHANNEL': ['CMAS', 'EAS', 'NWEM'], 'eventEndingTime': ['2020-04-15T09:00:00-04:00']}}], urgency=Expected, event_type=Freeze Warning, event_severity=Moderate, description=* WHAT...Sub-freezing temperatures as low as 29 expected.
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 4, 'type': 'event', 'event': <Event state_changed[L]: entity_id=camera.rockrobo_map, old_state=<state camera.rockrobo_map=idle; access_token=68d244cd72d9fbd85200d0794837d0d42774eb12415a186ed234fb91677564c4, friendly_name=rockrobo_map, entity_picture=/api/camera_proxy/camera.rockrobo_map?token=68d244cd72d9fbd85200d0794837d0d42774eb12415a186ed234fb91677564c4, supported_features=0 @ 2020-04-12T14:43:36.319602-04:00>, new_state=<state camera.rockrobo_map=idle; access_token=0487986ada7b8a7cec41c99952dc27b92082f737744d6306c87f81267ec75f28, friendly_name=rockrobo_map, entity_picture=/api/camera_proxy/camera.rockrobo_map?token=0487986ada7b8a7cec41c99952dc27b92082f737744d6306c87f81267ec75f28, supported_features=0 @ 2020-04-12T14:43:36.319602-04:00>>}
2020-04-14T15:30:31.000Z nodered1 Received event for unknown subscription 4. Unsubscribing.
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'unsubscribe_events', 'subscription': 15, 'id': 8822}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'unsubscribe_events', 'subscription': 4, 'id': 8821}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8821, 'type': 'result', 'success': True, 'result': None}
2020-04-14T15:30:31.000Z nodered1 Received event for unknown subscription 15. Unsubscribing.
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8827, 'type': 'result', 'success': True, 'result': {'context': Context(user_id='d13793544ede42aaaa42f2e4fce2b204', parent_id=None, id='e5c3b1a5e849416a924aad32bb6d872a')}}
2020-04-14T15:30:30.000Z ha1 2020-04-14 11:30:30 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 15, 'type': 'event', 'event': <Event state_changed[L]: entity_id=sensor.noaa_alerts_ohz055, old_state=<state sensor.noaa_alerts_ohz055=1; alerts=[{'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4159452-3522625', '@type': 'wx:Alert', 'id': 'NWS-IDP-PROD-4159452-3522625', 'areaDesc': 'Madison; Franklin; Licking; Logan; Hardin; Montgomery; Fayette; Mercer; Wayne; Union; Warren; Clark; Fayette; Preble; Shelby; Clinton; Franklin; Miami; Delaware; Greene; Auglaize; Fairfield; Butler; Pickaway; Champaign; Darke; Union', 'geocode': {'UGC': ['OHZ054', 'INZ066', 'OHZ056', 'OHZ044', 'OHZ026', 'OHZ061', 'INZ058', 'OHZ034', 'INZ050', 'OHZ045', 'OHZ071', 'OHZ053', 'OHZ063', 'OHZ060', 'OHZ043', 'OHZ072', 'OHZ055', 'OHZ051', 'OHZ046', 'OHZ062', 'OHZ035', 'OHZ065', 'OHZ070', 'OHZ064', 'OHZ052', 'OHZ042', 'INZ059'], 'SAME': ['039097', '018047', '039089', '039091', '039065', '039113', '018041', '039107', '018177', '039159', '039165', '039023', '039047', '039135', '039149', '039027', '039049', '039109', '039041', '039057', '039011', '039045', '039017', '039129', '039021', '039037', '018161']}, 'affectedZones': ['https://api.weather.gov/zones/forecast/OHZ054', 'https://api.weather.gov/zones/forecast/INZ066', 'https://api.weather.gov/zones/forecast/OHZ056', 'https://api.weather.gov/zones/forecast/OHZ044', 'https://api.weather.gov/zones/forecast/OHZ026', 'https://api.weather.gov/zones/forecast/OHZ061', 'https://api.weather.gov/zones/forecast/INZ058', 'https://api.weather.gov/zones/forecast/OHZ034', 'https://api.weather.gov/zones/forecast/INZ050', 'https://api.weather.gov/zones/forecast/OHZ045', 'https://api.weather.gov/zones/forecast/OHZ071', 'https://api.weather.gov/zones/forecast/OHZ053', 'https://api.weather.gov/zones/forecast/OHZ063', 'https://api.weather.gov/zones/forecast/OHZ060', 'https://api.weather.gov/zones/forecast/OHZ043', 'https://api.weather.gov/zones/forecast/OHZ072', 'https://api.weather.gov/zones/forecast/OHZ055', 'https://api.weather.gov/zones/forecast/OHZ051', 'https://api.weather.gov/zones/forecast/OHZ046', 'https://api.weather.gov/zones/forecast/OHZ062', 'https://api.weather.gov/zones/forecast/OHZ035', 'https://api.weather.gov/zones/forecast/OHZ065', 'https://api.weather.gov/zones/forecast/OHZ070', 'https://api.weather.gov/zones/forecast/OHZ064', 'https://api.weather.gov/zones/forecast/OHZ052', 'https://api.weather.gov/zones/forecast/OHZ042', 'https://api.weather.gov/zones/forecast/INZ059'], 'references': [{'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157817-3521446', 'identifier': 'NWS-IDP-PROD-4157817-3521446', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157817-3521445', 'identifier': 'NWS-IDP-PROD-4157817-3521445', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158231-3521759', 'identifier': 'NWS-IDP-PROD-4158231-3521759', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T18:18:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158231-3521758', 'identifier': 'NWS-IDP-PROD-4158231-3521758', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T18:18:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158996-3522334', 'identifier': 'NWS-IDP-PROD-4158996-3522334', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-14T03:05:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158996-3522333', 'identifier': 'NWS-IDP-PROD-4158996-3522333', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-14T03:05:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158305-3521819', 'identifier': 'NWS-IDP-PROD-4158305-3521819', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T19:03:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158232-3521760', 'identifier': 'NWS-IDP-PROD-4158232-3521760', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T18:18:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157816-3521443', 'identifier': 'NWS-IDP-PROD-4157816-3521443', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4157816-3521444', 'identifier': 'NWS-IDP-PROD-4157816-3521444', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T15:44:00-04:00'}, {'@id': 'https://api.weather.gov/alerts/NWS-IDP-PROD-4158649-3522110', 'identifier': 'NWS-IDP-PROD-4158649-3522110', 'sender': 'w-nws.webmaster@noaa.gov', 'sent': '2020-04-13T22:02:00-04:00'}], 'sent': '2020-04-14T08:52:00-04:00', 'effective': '2020-04-14T08:52:00-04:00', 'onset': '2020-04-15T01:00:00-04:00', 'expires': '2020-04-14T17:00:00-04:00', 'ends': '2020-04-15T09:00:00-04:00', 'status': 'Actual', 'messageType': 'Update', 'category': 'Met', 'severity': 'Moderate', 'certainty': 'Likely', 'urgency': 'Expected', 'event': 'Freeze Warning', 'sender': 'w-nws.webmaster@noaa.gov', 'senderName': 'NWS Wilmington OH', 'headline': 'Freeze Warning issued April 14 at 8:52AM EDT until April 15 at 9:00AM EDT by NWS Wilmington OH', 'description': ' WHAT...Sub-freezing temperatures as low as 29 expected.\n\n WHERE...Portions of East Central and Southeast Indiana and\nCentral, Southwest and West Central Ohio.\n\n WHEN...From 1 AM to 9 AM EDT Wednesday.\n\n IMPACTS...Frost and freeze conditions will kill crops, other\nsensitive vegetation and possibly damage unprotected outdoor\nplumbing.', 'instruction': 'Take steps now to protect tender plants from the cold. To prevent\nfreezing and possible bursting of outdoor water pipes they should\nbe wrapped, drained, or allowed to drip slowly. Those that have\nin-ground sprinkler systems should drain them and cover above-\nground pipes to protect them from freezing.', 'response': 'Execute', 'parameters': {'NWSheadline': ['FREEZE WARNING REMAINS IN EFFECT FROM 1 AM TO 9 AM EDT WEDNESDAY... ...FREEZE WARNING WILL EXPIRE AT 9 AM EDT THIS MORNING'], 'VTEC': ['/O.CON.KILN.FZ.W.0004.200415T0500Z-200415T1300Z/'], 'PIL': ['ILNNPWILN'], 'BLOCKCHANNEL': ['CMAS', 'EAS', 'NWEM'], 'eventEndingTime': ['2020-04-15T09:00:00-04:00']}}], urgency=Expected, event_type=Freeze Warning, event_severity=Moderate, description=* WHAT...Sub-freezing temperatures as low as 29 expected.
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'unsubscribe_events', 'subscription': 15, 'id': 8824}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8824, 'type': 'result', 'success': False, 'error': {'code': 'not_found', 'message': 'Subscription not found.'}}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8822, 'type': 'result', 'success': True, 'result': None}
2020-04-14T15:30:31.000Z nodered1 (node:16) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8826, 'type': 'result', 'success': True, 'result': {'context': Context(user_id='d13793544ede42aaaa42f2e4fce2b204', parent_id=None, id='483a27b369364fbea67d13592ed9e6a7')}}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 15, 'type': 'event', 'event': <Event state_changed[L]: entity_id=camera.living_room_alarm, old_state=<state camera.living_room_alarm=idle; access_token=65b05ad35e755b5a9dc0030731375313265ba5ecec25748e9d9a6c4da9485d27, last_trip=2020-04-14T11:24:14.364322-04:00, filename=image.jpg, friendly_name=Living Room Alarm, entity_picture=/api/camera_proxy/camera.living_room_alarm?token=65b05ad35e755b5a9dc0030731375313265ba5ecec25748e9d9a6c4da9485d27, supported_features=0 @ 2020-04-14T11:24:20.002727-04:00>, new_state=<state camera.living_room_alarm=idle; access_token=902b11bfd3704915ee11dcd81189b7ba97b41f2905c3991aa9cac9bb084e27b1, last_trip=2020-04-14T11:24:14.364322-04:00, filename=image.jpg, friendly_name=Living Room Alarm, entity_picture=/api/camera_proxy/camera.living_room_alarm?token=902b11bfd3704915ee11dcd81189b7ba97b41f2905c3991aa9cac9bb084e27b1, supported_features=0 @ 2020-04-14T11:24:20.002727-04:00>>}
2020-04-14T15:30:31.000Z nodered1 Received event for unknown subscription 4. Unsubscribing.
2020-04-14T15:30:31.000Z nodered1 Received event for unknown subscription 15. Unsubscribing.
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 15, 'type': 'event', 'event': <Event state_changed[L]: entity_id=camera.rockrobo_map, old_state=<state camera.rockrobo_map=idle; access_token=68d244cd72d9fbd85200d0794837d0d42774eb12415a186ed234fb91677564c4, friendly_name=rockrobo_map, entity_picture=/api/camera_proxy/camera.rockrobo_map?token=68d244cd72d9fbd85200d0794837d0d42774eb12415a186ed234fb91677564c4, supported_features=0 @ 2020-04-12T14:43:36.319602-04:00>, new_state=<state camera.rockrobo_map=idle; access_token=0487986ada7b8a7cec41c99952dc27b92082f737744d6306c87f81267ec75f28, friendly_name=rockrobo_map, entity_picture=/api/camera_proxy/camera.rockrobo_map?token=0487986ada7b8a7cec41c99952dc27b92082f737744d6306c87f81267ec75f28, supported_features=0 @ 2020-04-12T14:43:36.319602-04:00>>}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8823, 'type': 'result', 'success': False, 'error': {'code': 'not_found', 'message': 'Subscription not found.'}}
2020-04-14T15:30:31.000Z nodered1 (node:16) UnhandledPromiseRejectionWarning: #
2020-04-14T15:30:31.000Z nodered1 (node:16) UnhandledPromiseRejectionWarning: #
2020-04-14T15:30:31.000Z nodered1 (node:16) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Received {'type': 'call_service', 'domain': 'light', 'service': 'turn_on', 'service_data': {'entity_id': 'light.table_lamp', 'kelvin': 4978, 'brightness_pct': 100}, 'id': 8825}
2020-04-14T15:30:31.000Z ha1 2020-04-14 11:30:31 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139951965131024] Sending {'id': 8825, 'type': 'result', 'success': True, 'result': {'context': Context(user_id='d13793544ede42aaaa42f2e4fce2b204', parent_id=None, id='17b28afe5d784eeb97dd6d18eeb5ca0a')}}