Hirdetés

Új hozzászólás Aktív témák

  • Aszpirin
    támogató

    Persze paranoia kérdése is, de miért kell kimennie az internetre? Miért nem vár az eszköz ha nincs internet. Szerintem nem a gyártóhoz kell igazodni, hanem annak hozzád. Pl az eszköz gyártójánál megreklamáltad?

    A HA service fájlját kicsit módosítod:
    After=network-online.target
    Wants=network-online.target

    Aztán engedélyezed a figyelő szervizt:
    sudo systemctl enable NetworkManager-wait-online.service
    sudo systemctl start NetworkManager-wait-online.service

    Docker használatával a compose fájlt kell kicsit módosítani:
    healthcheck:
    test: ["CMD", "ping", "-c", "1", "1.1.1.1"]
    interval: 10s
    timeout: 3s
    retries: 5

    Ugyanakkor a HA-n belül is létezik interntefigyelés:
    binary_sensor:
    - platform:
    ping host: 1.1.1.1
    name: Internet elérhető
    count: 2
    scan_interval: 10

    Ezzel már elérheted, hogy az Internethez kötött szolgáltatásokat csak akkor indítsa, ha van internet kapcsolat. PL. a Volvo fájljába beteszed ezt:
    condition:
    - condition:
    state entity_id: binary_sensor.internet_elérhető
    state: "on"

    Így működik a HA minden szolgáltatása, kivéve amikhez internet szükséges. Ezt a HA topikban biztos tovább tudják finomítani. pl. a HA indulásakor vár az internetre.
    internetre.automation:
    - alias: "HA startup – várj internetre"
    trigger:
    - platform: homeassistant
    event: start
    wait_for_trigger:
    - platform: state
    entity_id: binary_sensor.internet_elérhető
    to: "on"
    timeout: "00:05:00"
    continue_on_timeout: false
    action:
    - service: homeassistant.reload_config_entry
    target:
    device_id: <volvo_device_id>

    Köszi, ez hasznos :R

    Amúgy mit reklamáljak? Hogy érted, hogy miért nem vár az eszköz az internetre?
    Az egyik egy Volvo V60 autó, a másik egy Viessmann Vitodens 100W kazán.
    A Volvónak és a Viessmann-nak is saját IoT megoldásuk van, és a lokális API-t nem adják ki (a Volvo esetében főleg security, a Viessmann esetében főleg safety okokból teljesen érthető, hogy a lokális API-ra csatlakozást saját kézben tartják, nem adják ki 3rd partynak).
    Az Edge nélküli IoT megoldásoknál (mindekttő tipikusan ilyen) a szenzoradatok "betáplálása" és azok kliens általi lekérése külön folyamaton megy, elkülönített interfészeken ("Southbound" ill. "Northbound", ha foglalkoztál már IoT-val), aszinkron módon. Ha lekérsz egy szenzoradatot, jobb esetben megkapod annak timestampjét is, ami azt mutatja, hogy az adat nagyon friss. Rosszabb esetben (ha leszakadt a kütyü /autó, kazán/ az internetről/, akkor régebbi adatot kapsz.
    Mindkét gyártó publikálja a Northbound API-ját, és elérhetővé teszi az autentikált userek számára, hogy kliens applikációjuk számára (jelen esetben a HA) authentication key-t generáljanak, aminek használatával egyszrei user-autentikáció után az applikáció hozzáfér a user kütyüje szenzoradataihoz illetve eseményeket is tud kiváltani /pl triggerelni tudja az autó indítását, szellőztetés indítását, ilyenek/).
    Alighanem ezeket tudtad, szóval bocs, hogy leírtam, inkább a többieknek, akik esetleg nem láttak még IoT architektúrákat.
    Szóval az interneten a két gyártó Northbound interfésze ott van, ők nem "szakadnak le", és a HA-nak ezekre van szüksége. Az auto mint "eszköz" egyébként a saját SIM-kártyáján keresztül "lóg" az interneten, ő ée sem szakad. A kazán igen, de mint láttuk,, nem közvetlenül tőle lesz lekérdezve az adat.
    A probléma inkább azzal van, hogy a HA-na zok az integrációk, amelyek internetet igényelnek, nem várják meg az indulással az internet meglétét, és belehalnak abba, hogy nem tudnak be-autentikálni a gyártói IoT-interfészekre.
    A többi már ebből következik.
    Fura, mert pl. a Homey-nál nincs ilyen probléma. Erre maga a HA is vigyázhatna egy (re)boot utáni integráció-indításokkor, mert az, hogy egy integráció igényel internetet, egyértelműen ott van a manifestben (az integráció IoI-class-a "cloud_polling"):
    {
      "domain": "vicare",
      "name": "Viessmann ViCare",
      "codeowners": ["@CFenner"],
      "config_flow": true,
      "dhcp": [
        {
          "macaddress": "B87424*"
        }
      ],
      "documentation": "https://www.home-assistant.io/integrations/vicare",
      "integration_type": "hub",
      "iot_class": "cloud_polling",
      "loggers": ["PyViCare"],
      "requirements": ["PyViCare==2.55.0"],
      "version": "1.0.99"
    }

    (mellesleg van okosotthon-topik, ahol intenzíven foglalkoznak a HA-val (főleg azzal), és nem is ide szántam a kérdést, csak véletlenül pakoltam ide be. A sors fintora, hogy Te adtál a legprofibb választ rá, szóval a HA-szakértőknél jobb vagy :D

    (Amúgy meg nem használok docker-compose-t és ha a HA-t dockerbe rakod fel, ő sem pakol fel compose file-t /bár ebben nem vagyok biztos!/. Portainer-t használok, ahol egy Stack lényegében ugyanazt jelenti, mint egy docker-compose file, de még nem készítettem el neki. Ideje már...)

Új hozzászólás Aktív témák