Add discussion link
All checks were successful
Build release image / build (push) Successful in 1m26s

This commit is contained in:
yehor
2025-10-07 21:05:49 +03:00
parent d6d3cd6d00
commit 756312021a
20 changed files with 90 additions and 122 deletions

View File

@@ -116,4 +116,6 @@ binary_sensor:
pin: pin:
number: D5 number: D5
mode: INPUT mode: INPUT
``` ```
<BlogDiscussions/>

View File

@@ -49,4 +49,6 @@ Now we need to create a handler of the Aqara button in `automations.yaml`:
- data: - data:
message: "Someone near your front door" message: "Someone near your front door"
service: notify.push service: notify.push
``` ```
<BlogDiscussions/>

View File

@@ -134,4 +134,6 @@ Now we can rely on that groups state to check if there is nobody home. Ive
service: notify.push service: notify.push
``` ```
That is all for now. Thanks for reading. That is all for now. Thanks for reading.
<BlogDiscussions/>

View File

@@ -208,4 +208,6 @@ Also, this automation should be able to run in parallel to make it possible to h
```yaml ```yaml
mode: parallel mode: parallel
max: 10 max: 10
``` ```
<BlogDiscussions/>

View File

@@ -40,4 +40,6 @@ binary_sensor:
friendly_name: "Bed occupancy" friendly_name: "Bed occupancy"
device_class: occupancy device_class: occupancy
value_template: "{{is_state('binary_sensor.bed_occupancy_door_side', 'off') or is_state('binary_sensor.bed_occupancy_window_side', 'off')}}" value_template: "{{is_state('binary_sensor.bed_occupancy_door_side', 'off') or is_state('binary_sensor.bed_occupancy_window_side', 'off')}}"
``` ```
<BlogDiscussions/>

View File

@@ -42,4 +42,6 @@ action:
![Parsing action](parse_action.png) ![Parsing action](parse_action.png)
Here we are checking for the `engine is off` text in incoming SMS to perform some action. For example, to set the value of some `input_boolean`. Here we are checking for the `engine is off` text in incoming SMS to perform some action. For example, to set the value of some `input_boolean`.
<BlogDiscussions/>

View File

@@ -105,3 +105,5 @@ switch:
``` ```
Thats it for today. Thanks for reading. Thats it for today. Thanks for reading.
<BlogDiscussions/>

View File

@@ -237,4 +237,6 @@ Before placing our power supply inside the TV we need to make sure it is isolate
So the overall picture is looking like this: So the overall picture is looking like this:
![](overview.png) ![](overview.png)
<BlogDiscussions/>

View File

@@ -85,4 +85,6 @@ Compile, flash, open logs and start firing into our device with your IR remote.
[17:34:51][D][remote.samsung:055]: Received Samsung: data=0xE0E020DF [17:34:51][D][remote.samsung:055]: Received Samsung: data=0xE0E020DF
``` ```
You can now use this data with the ESPHome [Remote Transmitter](https://esphome.io/components/remote_transmitter.html) component to build, for example, something like [this](/2021-01-13-building-wifi-ir-remote-control-for-any-tv-with-esp8266-wemos-d1-mini-and-esphome/index.md). You can now use this data with the ESPHome [Remote Transmitter](https://esphome.io/components/remote_transmitter.html) component to build, for example, something like [this](/2021-01-13-building-wifi-ir-remote-control-for-any-tv-with-esp8266-wemos-d1-mini-and-esphome/index.md).
<BlogDiscussions/>

View File

@@ -120,4 +120,6 @@ Decreasing the volume action is the same, but with negative `target`:
service: esphome.amplifier_set_volume service: esphome.amplifier_set_volume
data: data:
target: -50 target: -50
``` ```
<BlogDiscussions/>

View File

@@ -119,4 +119,6 @@ You'll get an email notification on the address added here when there will be ti
After certificate generation, we should open Settings on the same Certificates tab, find our domain service, and choose the newly generated certificate for it. After certificate generation, we should open Settings on the same Certificates tab, find our domain service, and choose the newly generated certificate for it.
That's it! That's it!
<BlogDiscussions/>

View File

@@ -43,4 +43,6 @@ In your Home Assistant go to _Settings -> Devices & services_ and click the _"Ad
In the configuration window that appeared you need to set your NAS's local IP address as a _Host_ and leave the _Port_ number unchanged. In the configuration window that appeared you need to set your NAS's local IP address as a _Host_ and leave the _Port_ number unchanged.
Hit _Submit_ and you are done. Hit _Submit_ and you are done.
<BlogDiscussions/>

View File

@@ -54,4 +54,6 @@ The authorization header should have the next format: `PVEAPIToken=<proxmox user
You can use `shutdown` or `reboot` as a `command`. You can use `shutdown` or `reboot` as a `command`.
After restarting Home Assistant you will have a new service available. In our example, it would be `rest_command.spacedock_one_shutdown`. Calling it will do the trick. After restarting Home Assistant you will have a new service available. In our example, it would be `rest_command.spacedock_one_shutdown`. Calling it will do the trick.
<BlogDiscussions/>

View File

@@ -105,4 +105,6 @@ And up it back with a system service, also enabling it:
sudo systemctl start wg-quick@wg0 && sudo systemctl enable wg-quick@wg0 sudo systemctl start wg-quick@wg0 && sudo systemctl enable wg-quick@wg0
``` ```
Further interface control should be performed through `systemctl` as well like `systemctrl stop`, `systemctl restart` or `systemctl status`. Further interface control should be performed through `systemctl` as well like `systemctrl stop`, `systemctl restart` or `systemctl status`.
<BlogDiscussions/>

View File

@@ -98,4 +98,6 @@ Cron job line to add:
``` ```
@reboot sleep 30s && /usr/sbin/etherwake -i vmbr0 <mac_address> @reboot sleep 30s && /usr/sbin/etherwake -i vmbr0 <mac_address>
``` ```
<BlogDiscussions/>

View File

@@ -184,4 +184,4 @@ Have no idea why everyone wants to write a conclusion for each post nowadays. It
Have a nice tinkering. Have a nice tinkering.
import BrowserWindow from '@site/src/components/BlogDiscussions'; <BlogDiscussions/>

View File

@@ -1,6 +1,6 @@
{ {
"name": "yevi-org", "name": "yevi-org",
"version": "0.2.2", "version": "0.3.0",
"private": true, "private": true,
"scripts": { "scripts": {
"docusaurus": "docusaurus", "docusaurus": "docusaurus",

View File

@@ -1,112 +1,16 @@
import styles from './styles.module.css'; import styles from './styles.module.css';
const FeatureList = [
{
title: 'Blog',
link: 'blog',
Svg: require('@site/static/icons/blog.svg').default,
description: (
<>
Some notes, interesting things and projects.
</>
),
},
{
title: 'Git',
link: 'https://git.nicelycomposed.codes/yehor',
Svg: require('@site/static/icons/gitea.svg').default,
description: (
<>
My code
</>
),
},
{
title: 'Mastodon',
link: 'https://techhub.social/@estevez',
Svg: require('@site/static/icons/mastodon.svg').default,
description: (
<>
My micro blog at techhub.social
</>
),
},
{
title: 'Matrix',
link: 'https://matrix.to/#/@yehor:vi.place',
Svg: require('@site/static/icons/matrix.svg').default,
description: (
<>
If you want to chat (with end-to-end encryption)
</>
),
},
{
title: 'Pixelfed',
link: 'https://pixelfed.social/estevez',
Svg: require('@site/static/icons/pixelfed.svg').default,
description: (
<>
For some photography
</>
),
},
{
title: 'GitHub',
link: 'https://github.com/estevez-dev',
Svg: require('@site/static/icons/github.svg').default,
description: (
<>
Some forks and contributions
</>
),
},
{
title: 'Untappd',
link: 'https://untappd.com/user/estevezz',
Svg: require('@site/static/icons/untappd.svg').default,
description: (
<>
Budmo!
</>
),
},
{
title: 'Linkedin',
link: 'https://www.linkedin.com/in/yehor-vialov-2a362158/',
Svg: require('@site/static/icons/linkedin.svg').default,
description: (
<>
They say I need this to find any work
</>
),
},
];
function Feature({ Svg, title, link, description }) {
return (
<div className={clsx('col col--3', styles.featureBlock)}>
<div className="text--center">
<a href={link} target='_blank' className={styles.featureLink}>
<Svg fill="currentColor" className={styles.featureSvg} role="img" />
</a>
</div>
<a href={link} className={styles.featureLink}>
<div className="text--center padding-horiz--md">
<Heading as="h3">{title}</Heading>
<p>{description}</p>
</div>
</a>
</div>
);
}
export default function BlogDiscussions() { export default function BlogDiscussions() {
const Svg = require('@site/static/icons/matrix.svg').default;
return ( return (
<section className={styles.blogDiscussions}> <section className={styles.blogDiscussions}>
<a href="https://matrix.to/#/%23yevi-org-pub:vi.place" target='_blank'>Join discussion at Matrix</a>
<a className={styles.blogDiscussions_container} href="https://matrix.to/#/%23yevi-org-pub:vi.place" target='_blank'>
<Svg fill="currentColor" className={styles.icon} role="img" />
<span className={styles.linkText}>Join discussion at Matrix</span>
</a>
</section> </section>
); );
} }

View File

@@ -1,6 +1,27 @@
.blogDiscussions { .blogDiscussions {
display: flex; display: flex;
flex-direction: row;
justify-content: center;
padding: 1rem 0;
}
.blogDiscussions_container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center; align-items: center;
padding: 2rem 0; }
width: 100%;
.linkText {
width: 12rem;
}
.icon {
width: 3rem;
height: 3rem;
}
.icon path {
fill: var(--ifm-link-color) !important;
} }

View File

@@ -0,0 +1,13 @@
import React from 'react';
// Import the original mapper
import MDXComponents from '@theme-original/MDXComponents';
//Import custom component
import BlogDiscussions from '@site/src/components/BlogDiscussions';
export default {
// Re-use the default mapping
...MDXComponents,
// Map the "<BlogDiscussions>" tag to our BlogDiscussions component
// `BlogDiscussions` will receive all props that were passed to `<BlogDiscussions>` in MDX
BlogDiscussions,
};