Integracja Komputera za pomocą IOT Link (AI-Speaker - Home Assistant)

Hej.
Ostatnio dodałem integracje komputera do bramki, wrzucam dla chętnych :wink:
Integracja pozwala między innymi na zdalne wyłącznie, wylogowanie lub zablokowanie komputera, zobaczenie jaki użytkownik korzysta z komputera, zrobienie screena, sprawdzenie parametrów oraz wiele innych o czym w źródle:

https://iotlink.gitlab.io/?fbclid=IwAR1mnL3x2WruvnWsPTgY__-vSrq_EC8QmeyPg6aJdKo9YSXrecmeWF2oag0

Po integracji wygląda to tak:


Oczywiście jak przystało na porządnego Asystena domowego polecenia głosowe także działają :wink:


Instrukcja:
  1. Ściągamy program IOT Link Servic z sekcji Download

  2. Instalujemy program z uprawnieniami administratora. Po instalacji w menu Start pojawi się folder IOT Link a w nim między innymi Open Configuration File, klikamy w niego i uzupełniamy mqtt i tcp:

    mqtt:
    credentials:
    username: myuser - dowolny user
    password: mypassword - dowolne hasło
    tcp:
    enabled: true
    hostname: 192.168.0.100 - adres IP naszej bramki
    port: 1883
    secure: false

i zapisujemy.
Sprawdzam np programem Mqtt Explorer czy nasze mqtt z bramki znalazło serwis IOT Link.
Jeżeli tak, to bramka AIS powinna wykryć większość sensorów jak tutaj.
Ręcznie trzeba tylko zrobić:

-binary_sensor który informuje czy komputer jest online czy offline wg poniższego z tym, że sprawdzamy programem Mqtt Explorer nasz state_topic i podmieniamy w poniższym

binary_sensor:
  - platform: mqtt
    name: "My Computer - Connected"
    state_topic: "iotlink/workgroup/my-computer/lwt"
    value_template: "{{ value }}"
    payload_on: "ON"
    payload_off: "OFF"
    device_class: "connectivity"
    qos: 1

-jak chcemy mieć wyłącznik komputera w postaci switch to dodajemy jeszcze wpis:

switch:
  - platform: template
    switches:
      my_computer:
        friendly_name: "My Computer"
        value_template: "{{ is_state('binary_sensor.my_computer_connected', 'on') }}"
        turn_on:
          service: script.my_computer_wake
        turn_off:
          service: script.my_computer_shutdown
        icon_template: mdi:laptop

gdzie:
binary_sensor.my_computer_connected to nasz utworzony krok wcześniej binary_sensor
script.my_computer_wake robimy wg poniższego (u mnie niestety nie udało się zrobić zdalnego włączenia, może ktoś ogranie i da znać)

script:
  my_computer_wake:
    # To enable see https://www.home-assistant.io/components/wake_on_lan/
    alias: "My Computer - Wake"
    sequence:
      - service: wake_on_lan.send_magic_packet
        data:
          mac: "70:85:C2:63:9F:11"

script.my_computer_shutdown robimy wg poniższego

my_computer_shutdown:
  alias: "My Computer - Shutdown"
  sequence:
    - service: mqtt.publish
      data:
        topic: "iotlink/workgroup/my-computer/commands/shutdown"
        payload: ""

Pamiętajcie, żeby po każdym wpisie w pliku yaml sprawdzić konfiguracje bramki i uruchomić ją ponownie.

8 polubień

Oo… mega rozwiazanie w kontekscie “edukacji online” i sprawdzania czy dzieciaki faktycznie robia lekcje czy moze ogladaja YT :slight_smile:
Dzieki, w wolnej chwili sprobuje to zintegrowac.

Dzisiaj od rana sprawdzam co się dzieje na komputerze ale po za Youtube nic innego się na screenach nie wyświetliło :sweat_smile:

No rewelacja. Naprawdę dzięki. Już od jakiegoś czasu myślałem o czymś takim. Co do włączania zdalnego to dołożyłeś do pliku configuration.yaml integrację?
wake_on_lan:

tak ma ten wpis, Tobie działa wake_on_lan ?

Z “Wake On Lan” to troche bardziej skomplikowany temat. Sterowałem wcześniej włączaniem komputera bez instalowania, żadnego oprogramowania na PC. Nie jest to takie zaawansowane jak prez IOT Link Service ale za to nie trzeba niczego instalować na PC. Wystarczy w configuration.yaml dodać

wake_on_lan:

  - platform: wake_on_lan
    mac: "AA:BB:CC:DD:EE:FF"
    name: "Desktop PC"
    host: "192.168.20.100"
    broadcast_address: "192.168.20.255"

Na bramce pojawia się switch “Desktop PC”, który sprawdza czy komputer jest uruchomiony a przelaczenie switcha na ON wysyłało Magic Packet “Wake On Lan” i komputer się uruchamia.

Druga strona to ustawinie PC-ta aby działało Wake On Lan. Nie zawsze się uda (zależy od płyty głównej i karty sieciowej). Tu instrukcja: https://geek.net.pl/poradniki/wlaczyc-wake-lan-systemie-windows-10/

Co do zdania:

Komputer musi być w trybie uśpienia lub hibernacji.

nie do końca się zgadzam:

  • na jednym PC-cie faktycznie komputer nie może być wyłączony a jedynie uśpiony aby się wybudzić
  • ale już na drugim udało mi się ustawić tak, że może być kompletnie wyłaczony “Power off” i ładnie wybudza się na Wake On Lan :slight_smile:

Mam zrobionego tego Switcha i stan pokazuje prawidłowy czyli widać kiedy komputer jest włączony ale nie mogę nim włączyć komputera. Teoretycznie zrobiłem wszystko ale dalej nie działa. Powiedz mi czy jak zrobiłeś to na drugim komputerze to czy da się włączyć go zdalnie będąc w innej sieci lokalnej?

Wszystko mam w jednej sieci lokalnej.

Wake On Lan działa tylko w lokalnej sieci LAN ponieważ rozsyłane jest na adres rozgłoszeniowy, dla sieci z maską 255.255.255.0 na adres x.y.z.255.

Przetestować ustawienia samego Wake On Lan na PC-cie możesz w prosty sposób:

  • musisz znac adres MAC komputera, który chcesz uruchomić (komputer-1). Program z drugiego punktu zrobi to za Ciebie.
  • na drugim komputerze/laptopie (komputer-2) zainstaluj dowolny program z sieci z funkcją Wake On Lan np:
    http://www.nirsoft.net/utils/trans/wakemeonlan_polish.zip
    W menu Plik jest pozycja Skanowanie. Przeskanuje Twoją sieć i pokaże adresy IP i MAC komputerów i urządzeń IoT.
  • Uśpij Twojego PC-ta (komputer-1)
  • Na (komputer-2) w programie z punktu 2, naciśnij prawym przyciskiem na IP (komputer-1) i pierwsza pozycja to wybudzenie.

Uwaga: komputer, który wybudzamy jest podłączony do sieci LAN przez kabel Ethernet a nie WiFi !!!

Jezeli chodzi o 2 sieci a nawet wybudzanie z zewnątrz przez internet to zrobiłem to trochę inaczej. Napisałem prosty skrypt, który łączył się przez SSH z bramką AIS i uruchamiał na bramce komendę “wakeonlan 11:22:33:44:55:66”

Często też trzeba włączyć funkcję Wake On Lan w BIOSie kompa.

1 polubienie

I wyłączyć w BIOS-ie “Deep Sleep” jeżeli taka opcja występuje.

A jest coś może do linuxa? Głównie chodzi o zdalne wyłączenie.

Witam,
mam takie pytanie: zrobiłem wszystko do “-binary_sensor który…” czyli do napisania sensora binarnego. Po dodaniu pliku binary_sensor.yaml z wpisanym kodem:

- platform: mqtt
    name: "RK-DESKTOP - Connected"
    state_topic: "iotlink/kawalek/rk-desktop/lwt"
    value_template: "{{ value }}"
    payload_on: "ON"
    payload_off: "OFF"
    device_class: "connectivity"
    qos: 1

i zadeklarowaniu go w configuration.yaml przy próbie sprawdzenia poprawności w AIS otrzymuje komunikat:
“Error loading /data/data/pl.sviete.dom/files/home/AIS/configuration.yaml: mapping values are not allowed here
in “/data/data/pl.sviete.dom/files/home/AIS/binary_sensor.yaml”, line 2, column 9”

Pytanie brzmi co robię/zrobiłem źle?
I jak powinno być poprawnie?
Pozdrawiam,
Radek

@rkawalek tak powinno być:

- platform: mqtt
  name: "RK-DESKTOP - Connected"
  state_topic: "iotlink/kawalek/rk-desktop/lwt"
  value_template: "{{ value }}"
  payload_on: "ON"
  payload_off: "OFF"
  device_class: "connectivity"
  qos: 1

czyli od drugiej linijki równo z “platform”

Po domyślniej instalacji IoTLink, encja związana z Display-Screenshot pokazuje fragment desktopu komputera tylko o rozmiarze 800x640, reszta jest ucinana. Co musze zrobić aby móc podejrzeć cały ekran?

@Cino111 może by tak wysłać komendę po SSH?

@macek może opiszesz poradnik na forum AIS?

Czy ktoś korzysta z Netdata?

Trochę się robi off-topic, wszystko jest opisane w linku, który podales, jeżeli czegoś brakuje, mogę uzupełnić ale w nowym wątku.

Również robisz off-topic, możliwości jest sporo, załóż nowy wątek odnośnie monitoringu wtedy możemy podyskutować :slight_smile: .

Czy ‘’ są wymagane ja mam mać adres oraz IP bez “” ?