From c43856e007963d7e3354922d25fc4743d7ef5cf0 Mon Sep 17 00:00:00 2001 From: Jan Unterbrink <19386509+subpathdev@users.noreply.github.com> Date: Sun, 1 Nov 2026 15:47:34 +0100 Subject: [PATCH] docs: add a screenshot of the page to the README Cropped to the page, so no phone status bar or address bar, and shrunk to 540 px wide. Co-Authored-By: Claude Opus 5.5 --- README.md | 2 ++ docs/screenshot.png | Bin 0 -> 11839 bytes 2 files changed, 2 insertions(+) create mode 100644 docs/screenshot.png diff --git a/README.md b/README.md index dd71f8f..3c1ce18 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ A small web page to adjust the heating per room from a phone on the home network: change a room's target temperature, or mark a window as open so the room doesn't heat. It controls Sonoff TRVZB thermostats through Zigbee2MQTT. +The heating page on a phone: Office and Bedroom cards, each with the room temperature, whether it is heating, the target and buttons to change it + Work in progress. ## Deployment diff --git a/docs/screenshot.png b/docs/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6bff24abe9e46ba25d1bde827d7fe5b62e3e26 GIT binary patch literal 11839 zcmaKy1yoeu_vq;%2PC8}B?v<|4BY}sr<5oS5`zN*O4pDB2uL?bcL+#>jM9im$2bzw z-Qu6`@Bh|6-+OD_wa>Zdp0n3p=dKg`vv;(fjyf4J12GmB7MZ4ossR=j4uFM)jU>dq zYuR?-$+|0g^t6oBZf>qmPL6hVwx*}Q*Ecrj<`+lDB42s=JTG02z)VNaNK4N|OUH1Z4xqS49W2LRf`!E|t*NSHlN z+EV7Hq45*?NoI+Tv*#3jX_37L z6_8|IVgssjKVXi2;^;i9F)?Ly9i9rtykduL+}Z4#NYvaU@;P6dZa3H(OGtVmD~p)3~rxU!Vn@33fUo=7Gx zd4KWV$X#4-7s?P|@Op%#2Uki7)WkD3wATd=4z_drB?l-cguEIv!|2=1>DAZf9U9xJ zR&1u~QWF@FvGMD1o@9Rl+vc+~Fw+jHu%GSWvDyO>tsMmFYu&W4Ez(8uFAwRccr{)o zA~9i@SNLE@5MmkTi;oKR$V@HFmEuH4$}kgdg4dymIZ$^+0ClKU^VeX;TXsukIcSnz zN*d~4_mFmm31Hl7t8u)g&7#5Q@L%okUXLUr?*OkeypJL&XTCXXO#M3Dd3q076o!jc zhm(mt5+lr_OmQHiWYsEQO{B4ruL`79Bz%Nj$i4_BS%I;JiSp*GOF5u`UmBrvYHy0NSaGN4H {41T%ELlce;{>E6H2jG;3lZ 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