Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Fredleif

Medlemmer
  • Innlegg

    12
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Fredleif

  1. Jeg ønsket meg flere signaler direkte inn til Home Assistant, og selv om Raspberry'n har mange IO så kan disse ikke brukes. Det fins mange ideer på nett, men felles er at de krever mye kløkt og er gjerne begrenset til bestemte releaser av Home Assistant. Så fant jeg muligheten til å benytte en ESP, som jo har mange IO, både digitale og analoge. Jeg har noen ESP-WROOM-32 men de fleste lignende kan vel brukes. Så jeg prøvde meg på den "enkleste", å bruke HACS.
    Det fikk jeg ikke til, sannsynligvis pga manglende ressurser (RAM, CPU-kapasitet, ?) i min Raspberry 3B+.
    For spesielt interesserte, Her er problemer og løsning av hva jeg gjorde, bare som eksempel på at man trenger ekspertise:
    https://community.home-assistant.io/t/esphome-setup-yaml-file-not-in-config-esphome/682926/12
    Det var en mix av flere metoder som gikk i konflikt med hverandre. Ikke gjør det slik... Jeg fjernet alle spor av ESP i Home Assistant og startet på ny.

    Mitt utgangspunkt: Home Assistant kjører på Raspberry Pi 3B+. PC med Windows 10. ESP-WROOM-32. 

     

    Gjør det slik isteden

    En grunn til at jeg lager denne beskrivelsen er at det er mange tråder som beskriver dette, men jeg fant ikke den røde tråden som ga meg rett vei gjennom, så jeg samlet denne oppskriften med referanse til de viktigste trådene. (En "ulempe" er at .yaml-fila blir liggende lokalt på din PC og ikke på Raspberry'n. Men det er greit for min del)

    Manual steps- Første gang, beskrevet her:
    https://esphome.io/guides/installing_esphome.html
    Du må ha installert Python. Her står det beskrevet hvordan dette gjøres, og hvordan du deretter installerer ESPHome - Merk: Dette installerer verktøyet på din PC, ingenting er lagt på ESP'n enda. Følg denne oppskriften ned til og med sjekk av versjon.

     

    Så til programmering av ESP32: ESP'n koples til PC'n med en USBkabel. (Kommando linje i Ledetekst (Cmd) er her indikert med ">")
    https://esphome.io/guides/getting_started_command_line
    ESPHome has a friendly setup wizard that will guide you through creating your first configuration file. For example, if you want to create a configuration file called livingroom.yaml:
    > esphome wizard livingroom.yaml

    Nå har du fått laget en .yaml-fil som er lagret på din PC. Den finner du på C:\Users\Navnetditt\  Det kan være litt upraktisk, jeg flyttet den til egen katalog under .\Documents\SmartHome\   Da må du også endre stien dit i vinduet for Ledetekst. 

    Det neste blir å kompilere og laste denne opp til ESP32: Dette må gjøres hver gang jeg endrer .yaml. Merk at dette kan ta et kvarters tid !
    > esphome run livingroom.yaml

     

    Når det er på plass får du beskjed:
    This time when uploading, you don’t need to have the device plugged in through USB again. The upload will magically happen “over the air”. Using ESPHome directly, this is the same as from a USB cable.
    For min del har det ikke alltid fungert, så da må jeg bruke kabel igjen. 

    Hva du kan legge i din .yaml-fil finner du en start til i linken over,   https://esphome.io/guides/getting_started_command_line

    og her er utgangspunktet / Index for det meste -  ESPHome.io
    Her må du eksperimentere, det er (for) mange muligheter og det beste er nok å leite opp eksempler og lære/bygge på disse. 

    Når ESP'n er oppdatert vil du finne den i Home Assistant som enhet og med entities som definert i .yaml-fila.

     

    Noen ganger må man oppdatere til siste versjon. Sjekk din versjon:
    >  esphome version
    Version: 2021.12.3  
    Eller, bruk:
    > pip3 install -U esphome
    Dersom du ikke har siste versjon så oppdateres esphome nå. 
    Info: https://esphome.io/guides/faq.html#how-do-i-update-to-the-latest-version

    Hva som er endret siden sist finner du her:
    https://esphome.io/changelog/

     

    Noen ganger må også Python oppdateres, du får varsel og klartekst på hva du må gjøre:
      [notice] A new release of pip is available: 23.3.2 -> 24.0
      [notice] To update, run: python.exe -m pip install --upgrade pip


    Annet:
    More info on Esphome command line interface:   https://esphome.io/guides/cli

    Av en eller annen grunnn virker ESP32 dårlig på WiFi kanal 1-4, så ruteren må sette kanal til fex 5 eller høyere. Og båndbredde må settes fast til 20MHz. 

    Sjekke at .yaml er ok(ikke last opp):  Esphome config livingroom.yaml

    Merk at en modul med ESP32 montert benytter noen av IO for å styre Flash, WiFi og periferikretser samt styre boot. Disse bør helst ikke brukes med mindre man vet begrensningene. Det fins mange artikler om dette.

     

    Noen opplever at ESP'n ikke kopler seg til nett uten at USB Serial er tilkoplet:
    https://community.home-assistant.io/t/esp32-device-only-connecting-to-wi-fi-when-also-directly-connected-via-usb-serial/599885/4

    • Like 1
  2. Fikk tak i en eldre Raspberry som er i stand til å kjøre Vivaldi nettleser, koplet til en gammel CD-skjerm så dette ble et greit visningspanel. I ettertid fikk jeg tips om at Hass har støtte for Google Home, da kan man caste til en Chromecast med skjerm og oppnå det samme. Enkelt, og billigere, men uten touchskjerm da. 

  3. Jeg er i gang med å oppgradere min HASS til å utføre funksjoner for husalarm. Alarmselskapet tar seg for godt betalt som vi er enige om.

    Kamera jeg har (Tapo) kan sende push-varsel, men de neglisjerer jeg som regel fordi det stadig varsles fra Epost og andre sosiale media. Så da må en alarm fra HASS oppfattes som en ALARM.

    Hvis HASS kunne ringe meg (til mobilen) så hopper jeg kjapt. Det er jo mulig å ringe fra WiFi med en mobiltelefon. Ellers må jeg kanskje kople til en device som kan ta SIMkort og et telefonabonnement.

    Har ikke funnet noe vettugt om emnet, er det noen her som har prøvd WiFi? (Eller har andre forslag til overtydelig varsling?)

  4. Jeg har gjort noe tilsvarende for å sjekke tilkopling. Dette er en ESP32 MKR WiFi 1010 som jeg kjører som en WebHost i drivhus, WiFi signalnivå er på kanten akseptabelt så det hender at den faller ut. Jeg fant ut at jeg kan sjekke forbindelse med Ping mot husets ruter, det funka.

    Jeg henter ut info med html-kode på verten så jeg kan hente ut drivhusdata vha nettleser på PC eller telefon. Kjekt når man er borte.

    Og hvis jeg ikke får opp noe i nettleseren så har vel ESP'n lagt seg død. Strømmen til ESP'n er koplet via en Telldus nettbryter, så da kan jeg også fjernstyre av/påslag av strøm til den manuelt.

     

    I loop() sjekkes om det er en client som har bedt om data, forut for dette sjekkes om WiFi er oppegående:

    Fra koden, dette ligger i loop():
      // Sjekk om det er kontakt over WiFi.
      if (!CheckWiFi_Ping())    // True or false
        CheckWiFi_Connected();  // Gjør en sjekk og kopler opp på ny inntil suksess
     
      // First, we use client to check if the server is av ailable. If it is, we execute the printWEB() function.
      client = server.available();  // Sjekker om det er client, men ikke om det er forbindelse på WiFi
      // WiFiClient client = server.available();     /////////////////
     
      if (client) {
        printWEB();      // Skriver ei webside i html til client
     
    Funksjoner for de to kallene er her:
    // ////////////////////////////////////////////////////////////////
    // CheckWiFi_Connected()
    // Ping gir svartid i ms, eller feil ved <0
    // Sjekk først 4x om ping gir svar,
    // ellers prøv en disconnect & connect
    // Kun rød LED ved start, alle avslått etter testen
     
    bool CheckWiFi_Ping() {
      bool WiFi_OK;
      int i = 0;
      IPAddress localServer(192, 168, 1, 1);  // Lokal ruter 192.168.1.1. Vil ruteren svare?
      int serverResult;                       // Svar fra ping
     
      // Sett lilla LED på ved starten av Ping. Kort blink ved OK, lenge ved noresponse
      farg = Set_Colour((byte)LILLA);
      serverResult = WiFi.ping(localServer);
      for (i = 0; i < 4; i++) {
        if (serverResult >= 0) {
          WiFi_OK = true;
          i = 4;  /// Terminer for-loop
          if (Debug_request) {
            Serial.print("PING ok! RTT = ");
            Serial.print(serverResult);
            Serial.println(" ms");
          }
        } else {
          WiFi_OK = false;
          /* if(Debug_request) Serial.println("Rød");        
            delay(500);     // Vent litt før neste ping() */
          // Unødvendig kode?
          if (Debug_request) {
            Serial.print("PING FAILED! Error code: ");
            Serial.println(serverResult);
          }
        }
      }  // End of for i++
      farg = Set_Colour((byte)SVART);
      return (WiFi_OK);
    }  // End of Ping
     
    ////////////////////////////////////////////
    //  Sjekk om WiFi forbndelse er ok
    // Sjekk om status er OK
    void CheckWiFi_Connected() {
      unsigned long currentMillis = millis();
      // if WiFi is down, try reconnecting every CHECK_WIFI_TIME seconds
      while ((WiFi.status() != WL_CONNECTED) && (currentMillis - WFpreviousMillis >= WFinterval)) {
        farg = Set_Colour((byte)GRONN);
        if (Debug_request) Serial.println("WiFi FRAKOPLET!!");
        /*if (currentMillis - WFpreviousMillis >= 108000){  // Sjekk for uendelighet, 30 min = 30*60*60
            break;
            WiFiConn = false;
          }*/
        // Prøv å kople fra og til WiFi
        WiFi.disconnect();
        delay(1000);
        farg = Set_Colour((byte)SVART);  //Blink RED
        connect_WiFi();                  // Kall funksjonen
        WFpreviousMillis = currentMillis;
        delay(5000);
     
      }  // End of while status
    }  // End of CheckWiFi_Connected()

     
  5. Jeg har opplevd noe lignende med Telldus temp. sensor i fryseskap. En glitch på temperatur, 20-30 plussgrader og så stabilt på - 27 igjen. Men da altså bare på ett sample, her har du flere så det ser ut som noe annet. Jeg har antatt at det er støy/feil i meldinga fra sensor, antar det kan være svak sjekk i protokollen. (har ikke sjekket). Evt kan jo elektrisk  støy fra releet slå inn på sensor ledningen. Denne feilen har ofte skjedd mens ingen er hjemme. 

     

     

  6. Takker for kjappe svar, da skjønner jeg at det må bli en løsning med frittstående nettleser. Får smøre meg med tålmodighet; rpi er det tomt for med unntak av overprisede på Finn. Har et gammelt nettbrett som kjører Android 2.x i versjonen forut for den som kreves for HA-appen så det blir brukt bare til spill som er installert.

    Da kan jeg spare meg for å leite videre på nett etter mulige (enkle !) løsninger.

  7. Jeg har kjørt HA på en Raspberry 3B+ over en tid, det funker fint. Så har jeg en eldre LCD med DVI, det hadde vært kjekt å sette de to sammen på veggen for å vise info (samme som jeg ser på en nettleser). Har gjort noen søk og funnet lite om dette, det nærmeste (og ferskeste) er fex denne: https://area-51.blog/2022/11/10/using-a-raspberry-pi-as-a-kiosk-for-home-assistant-or-grafana/  Men her kom jeg ikke gjennom installasjonen. Det stoppa på <sudo apt install -y xserver-org>   uten at vi trenger gå videre på det her, kun ment som advarsel

    HA anbefaler kun å kjøre sitt Hass alene. Spesielt nå som de gjør store endringer på sitt OS. Jeg fant ikke noe her i forum eller logg om det jeg er på jakt etter.

    Er det noen som har noe slikt kjørende, i så fall hvordan?

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.