{"id":1310,"date":"2023-02-15T18:38:18","date_gmt":"2023-02-15T16:38:18","guid":{"rendered":"https:\/\/cln.io\/blog\/?p=1310"},"modified":"2023-08-28T16:24:47","modified_gmt":"2023-08-28T14:24:47","slug":"remote-power-cycling-a-ups-with-homeassistant-and-nut","status":"publish","type":"post","link":"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/","title":{"rendered":"Remote power cycling a UPS with HomeAssistant and NUT &#x1f95c; (manually or with an SMS)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I have a couple of RPI&#8217;s running all over the European continent with Home Assistant but most recently I had a couple of devices that became non-responsive.<br>Normally I use POE switches to power cycle the PoE line and this reboots the device, however in this specific situation, I was out of luck since I&#8217;m using a PoE injector after my switch leading to a Pi mounted high on top of a roof for my ADS-B feeder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">my setup is as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"5356\" height=\"3202\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4.png\" alt=\"\" class=\"wp-image-1314\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4.png 5356w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4-300x179.png 300w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4-1024x612.png 1024w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4-768x459.png 768w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4-1536x918.png 1536w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-4-2048x1224.png 2048w\" sizes=\"auto, (max-width: 5356px) 100vw, 5356px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">so the only option I had left to reboot my roof-mounted RPI3 was either: get a local to power-cycle the PoE injector leading to the roof CAT6 cable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">but then I realized, wait, I have a UPS powering it all, and that UPS is connected (over USB) to an RPI4 in the server rack, why don&#8217;t see if I can instruct the RPI4 to power cycle the UPS, and thus would power cycle the RPI3 that&#8217;s not responding on the roof. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In my case, I have an APC1500 wired up over a USB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On this page<\/p>\n\n\n\n<nav aria-label=\"Table of Contents\" class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#nut-to-the-rescue\">NUT to the rescue!<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#the-nut-addon\">The NUT Addon<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#identifying-the-ups-to-send-the-command-to\">Identifying the UPS to send the command to<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#the-addon-config\">The addon config<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#checking-the-nut-addon-logs\">Checking the NUT addon logs<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#asking-the-docker-container-on-the-list-of-available-ups-es-with-the-upsc-command\">Asking the docker container on the list of available UPS&#8217;es with the upsc command<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#checking-the-etc-nut-ups-conf\">Checking the \/etc\/nut\/ups.conf <\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#getting-all-available-commands-we-can-send-to-our-ups\">Getting all available commands we can send to our UPS<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#rebooting-a-ups-remotely\">Rebooting a UPS remotely<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#putting-the-line-into-a-shell-command-so-we-can-reboot-the-system-much-easier\">Putting the line into a Shell Command (so we can reboot the system much easier)<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/cln.io\/blog\/remote-power-cycling-a-ups-with-homeassistant-and-nut\/#rebooting-home-assistant-by-sms-text-message\">Rebooting home assistant by SMS\/text message<\/a><\/li><\/ol><\/nav>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"nut-to-the-rescue\">NUT to the rescue!<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"the-nut-addon\">The NUT Addon<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"109\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-5.png\" alt=\"\" class=\"wp-image-1315\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-5.png 328w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-5-300x100.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">On the RPI4 I have HomeAssistant running with the <a href=\"https:\/\/github.com\/hassio-addons\/addon-nut\" target=\"_blank\" rel=\"noreferrer noopener\">Network UPS Tools addon<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-6-1024x509.png\" alt=\"\" class=\"wp-image-1316\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-6-1024x509.png 1024w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-6-300x149.png 300w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-6-768x381.png 768w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-6.png 1045w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve configured it as such:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">devices:\n  - name: APC\n    driver: usbhid-ups\n    port: auto\n    config:\n      - vendorid = 051d\nmode: netserver\nshutdown_host: \"false\"\nusers:\n  - username: nut\n    password: 308KNiwI8zlZgQvx\n    instcmds:\n      - all\n    actions: []\nlist_usb_devices: true\ni_like_to_be_pwned: true\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">I suggest visiting other sources on how to set up the NUT addon, but long story short: just configure it to the way your UPS is connected to your PI (this can even be a network card)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"737\" height=\"684\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-7.png\" alt=\"\" class=\"wp-image-1317\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-7.png 737w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-7-300x278.png 300w\" sizes=\"auto, (max-width: 737px) 100vw, 737px\" \/><figcaption class=\"wp-element-caption\">When I launch the addon my UPS shows up with its vendor ID<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"identifying-the-ups-to-send-the-command-to\">Identifying the UPS to send the command to<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before we can send commands to reboot the UPS, we need to figure out what UPS NUT can communicate to, We can do this in 4 ways (for completionist sake I provide other ways) but as we configured the name ourselves, we know the name from the config<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"the-addon-config\">The addon config<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Check the add-ons config in HA<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"337\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-14.png\" alt=\"\" class=\"wp-image-1324\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-14.png 388w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-14-300x261.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"checking-the-nut-addon-logs\">Checking the NUT addon logs<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When checking the NUT addon logs we can see the name of our UPS is APC<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"639\" height=\"300\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-8.png\" alt=\"\" class=\"wp-image-1318\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-8.png 639w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-8-300x141.png 300w\" sizes=\"auto, (max-width: 639px) 100vw, 639px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"asking-the-docker-container-on-the-list-of-available-ups-es-with-the-upsc-command\">Asking the docker container on the list of available UPS&#8217;es with the upsc command<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">by far the easiest way to know what UPS the daemon is configured with\/for is by asking it for a list of UPS&#8217;es by using <a rel=\"noreferrer noopener\" href=\"https:\/\/networkupstools.org\/docs\/man\/upsc.html\" target=\"_blank\">upsc<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker exec addon_a0d7b954_nut upsc -l     <\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"330\" height=\"88\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-10.png\" alt=\"\" class=\"wp-image-1320\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-10.png 330w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-10-300x80.png 300w\" sizes=\"auto, (max-width: 330px) 100vw, 330px\" \/><figcaption class=\"wp-element-caption\">The UPS name is APC<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"checking-the-etc-nut-ups-conf\">Checking the \/etc\/nut\/ups.conf <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">we can request the config of the docker, to figure out the name of the UPS<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker exec addon_a0d7b954_nut tail \/etc\/nut\/ups.conf <\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"199\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-9.png\" alt=\"\" class=\"wp-image-1319\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-9.png 567w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-9-300x105.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><figcaption class=\"wp-element-caption\">check for the name between the square brackets [APC] in this case, so our UPS is named APC<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"getting-all-available-commands-we-can-send-to-our-ups\">Getting all available commands we can send to our UPS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we know our name, we can query what commands we can send to our UPS<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker exec addon_a0d7b954_nut upscmd -l APC<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"490\" height=\"257\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-11.png\" alt=\"\" class=\"wp-image-1321\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-11.png 490w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-11-300x157.png 300w\" sizes=\"auto, (max-width: 490px) 100vw, 490px\" \/><figcaption class=\"wp-element-caption\">list of commands we can send to the UPS<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">and there it is, our reboot command<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"490\" height=\"257\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-13.png\" alt=\"\" class=\"wp-image-1323\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-13.png 490w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/image-13-300x157.png 300w\" sizes=\"auto, (max-width: 490px) 100vw, 490px\" \/><figcaption class=\"wp-element-caption\">shutdown.reboot<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"rebooting-a-ups-remotely\">Rebooting a UPS remotely<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">now knowing our command we can issue our reboot command<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NOTE: I have configured a password, so I use it here <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker exec addon_a0d7b954_nut upscmd -u nut -p 308KNiwI8zlZgQvx APC shutdown.reboot<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">that&#8217;s it! you will lose your connection within a few seconds &#x1f92d; whilst the UPS is power-cycling.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"putting-the-line-into-a-shell-command-so-we-can-reboot-the-system-much-easier\">Putting the line into a Shell Command (so we can reboot the system much easier)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.home-assistant.io\/integrations\/shell_command\/\">https:\/\/www.home-assistant.io\/integrations\/shell_command\/<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"48\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image.png\" alt=\"\" class=\"wp-image-1448\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image.png 732w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-300x20.png 300w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/figure>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># have it as a command\nshell_command:\n  powercyle_ups: docker exec addon_a0d7b954_nut upscmd -u nut -p 308KNiwI8zlZgQvx APC shutdown.reboot<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rebooting-home-assistant-by-sms-text-message\">Rebooting home assistant by SMS\/text message<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"> I&#8217;ve had cases before where there French Orange router just freezes up, or something is going on that knocks my entire setup offline, so I&#8217;ve recently added a GSM modem (~10\u20ac) to my setup (<a rel=\"noreferrer noopener\" href=\"https:\/\/www.home-assistant.io\/integrations\/sms\/#getting-sms-messages\" target=\"_blank\">official documentation over here<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The modem itself is a USB-a SIM800C<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"617\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-2.png\" alt=\"\" class=\"wp-image-1456\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-2.png 640w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-2-300x289.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>As a last resort, I&#8217;ve added the ability to send a text message (send an SMS) to a prepaid number (prepaid sim was ~2.5\u20ac one time fee) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By combining my phone number and the text &#8220;reboot&#8221; will trigger a UPS power cycle, which will cut the power to all my devices (switches, routers, point-to-point links, etc&#8230;)  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"926\" height=\"1024\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-1-926x1024.png\" alt=\"\" class=\"wp-image-1449\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-1-926x1024.png 926w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-1-271x300.png 271w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-1-768x849.png 768w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/08\/image-1.png 1054w\" sizes=\"auto, (max-width: 926px) 100vw, 926px\" \/><\/figure>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">alias: reboot UPS on sms received 'reboot'\ndescription: Modem received an SMS\ntrigger:\n  - platform: event\n    event_type: sms.incoming_sms\ncondition:\n  - condition: template\n    value_template: \"{{ trigger.event.data.phone == \\\"+32123456789\\\" }}\"\n    alias: my phone number\n  - condition: template\n    value_template: \"{{trigger.event.data.text == \\\"reboot\\\" }}\"\naction:\n  - service: shell_command.powercyle_ups\n    data: {}\nmode: single\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"685\" src=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/egor-myznik-cKNKN8YvdcQ-unsplash-1024x685.jpg\" alt=\"\" class=\"wp-image-1325\" srcset=\"https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/egor-myznik-cKNKN8YvdcQ-unsplash-1024x685.jpg 1024w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/egor-myznik-cKNKN8YvdcQ-unsplash-300x201.jpg 300w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/egor-myznik-cKNKN8YvdcQ-unsplash-768x514.jpg 768w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/egor-myznik-cKNKN8YvdcQ-unsplash-1536x1028.jpg 1536w, https:\/\/cln.io\/blog\/wp-content\/uploads\/2023\/02\/egor-myznik-cKNKN8YvdcQ-unsplash.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Photo by <a href=\"https:\/\/unsplash.com\/@vonshnauzer?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" target=\"_blank\" rel=\"noreferrer noopener\">Egor Myznik<\/a> on <a href=\"https:\/\/unsplash.com\/photos\/cKNKN8YvdcQ?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" target=\"_blank\" rel=\"noreferrer noopener\">Unsplash<\/a><\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I have a couple of RPI&#8217;s running all over the European continent with Home Assistant but most recently I had a couple of devices that became non-responsive.Normally I use POE switches to power cycle the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1326,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4,26],"tags":[],"class_list":["post-1310","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation","category-homeassistant","category-it"],"_links":{"self":[{"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/posts\/1310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/comments?post=1310"}],"version-history":[{"count":10,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/posts\/1310\/revisions"}],"predecessor-version":[{"id":1457,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/posts\/1310\/revisions\/1457"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/media\/1326"}],"wp:attachment":[{"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/media?parent=1310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/categories?post=1310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cln.io\/blog\/wp-json\/wp\/v2\/tags?post=1310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}