Inhoudsopgave:

ESPHOME SONOF S26 getimed licht - Ajarnpa
ESPHOME SONOF S26 getimed licht - Ajarnpa

Video: ESPHOME SONOF S26 getimed licht - Ajarnpa

Video: ESPHOME SONOF S26 getimed licht - Ajarnpa
Video: Sonoff S26 Pinout 2021 version | Tasmota | Подключение с паяльником. 2024, November
Anonim
ESPHOME SONOF S26 Getimed licht
ESPHOME SONOF S26 Getimed licht

Goededag. Ik heb dus een aquariumverlichting die ik op een bepaald tijdstip van de dag wil aan- en uitdoen. Ik moest het mezelf gewoon ingewikkeld maken. Ik wil de tijd kunnen wijzigen waarop deze wordt in- en uitgeschakeld via mijn Home Assistant-dashboard. Misschien zelfs meer.

Dus laten we eens kijken hoeveel meer ik mezelf in een konijnenhol kan brengen.

Stap 1: Stap 1: Ik heb een manier nodig om de Times From Home Assistant te verzenden

Wat googlen helpt. Wat uit je haar trekken helpt, als je er echt een hebt: POpen mijn Visual Studio Code Editor-add-on. Zoek in de map Config het bestand configuration.yaml en kopieer en plak wat dingen die ik op een forum verborgen vond. Sorry als ik het me herinnerde, ik zou een bevestiging geven. Code toegevoegd en home assistant opnieuw gestart.

Stap 2: Stap 2: De volgende code toegevoegd aan Configuration.yaml

Stap 2: De volgende code toegevoegd aan Configuration.yaml
Stap 2: De volgende code toegevoegd aan Configuration.yaml

invoer_nummer:

ft_start_hr:

naam: FT Lichte Starturen

icoon: mdi:clock-start

min: 0

maximaal: 23

stap 1

# initiaal: 13

De eerste regel is de entiteits-ID van het invoernummer.

Vervolgens hebben we wat details nodig voor deze kleine kerel:

Een naam zal geweldig zijn: FT Light Start Hours voor deze P. S. FT is voor Fish Tank… Niet wat je dacht toch?

Het volgende is een optioneel pictogram. Er is genoeg om uit te kiezen, dus doe eens gek… of niet.

Dan kunnen we een min, max en stapwaarde invoeren. Omdat dit uren zijn, koos ik 0 - 23 met enkele stappen.

Aanvankelijk had ik een beginwaarde en wanneer de thuisassistent opnieuw werd opgestart, zou deze deze in deze beginwaarde veranderen. Ik besloot er een opmerking over te maken omdat ik wilde dat Home Assistant probeerde de laatste waarde te onthouden die ik ervoor had ingesteld.

U kunt in de modus zetten om een doos te kiezen. Maar standaard kiest het een mooie slider voor je uit. Ik denk dat een slider het voorlopig wel zal doen.

Let op de inkepingen, deze zijn erg belangrijk. Zie de afbeelding

Dus deze zullen je entiteiten in de thuisassistent geven om te kunnen aanpassen.

Hier is een link naar meer informatie over invoernummers:

www.home-assistant.io/integrations/input_n…

Stap 3: Stap 3: Nu moeten we de informatie naar de ESPHOME API halen

Stap 3: Nu moeten we de informatie naar de ESPHOME API halen
Stap 3: Nu moeten we de informatie naar de ESPHOME API halen

sensor:

- platform: sjabloon

sensoren:

ft_start_hr:

value_template: '{{ states.input_number.ft_start_hr.state | int }}'

N

Dit geeft ESPHome API de vereiste verbinding, en het is nu een geheel getal in plaats van een mooie tekstschuifregelaar:-P

Hier neemt het de status van het invoernummer en converteert het naar een geheel getal en slaat het op in een sensor.

Hier is wat meer informatie over de sjablonen:

www.home-assistant.io/integrations/templat…

Oh, ik heb de bestandsextensie van mijn bestand gewijzigd in tekst, zodat ik het kan uploaden … Instructables kunnen vernietigbaar zijn met een yaml …

Stap 4: Stap 4: Dus de ESPHome-configuratie van de plug nu

Stap 4: Dus de ESPHome-configuratie van de plug nu
Stap 4: Dus de ESPHome-configuratie van de plug nu

Ik begon met een basisconfiguratie voor de s-on-off-stekker en begon toen te sleutelen.

Ik zal niet in detail treden over het flashen van de S26-stekker met ESPHome, aangezien Google alle antwoorden heeft.

Mijn volledige configuratiebestand zal aan het einde beschikbaar zijn om te downloaden. Da Da Da…

Dus laten we beginnen met het gekoppelde deel aan Home Assistant:

We moeten sensoren maken die passen bij de sensoren in de thuisassistent, zodat ze met elkaar kunnen praten.

Stap 5: Stap 5: de ESPHome Home Assistant-verbinding… Beam Me Up Scotty

Stap 5: de ESPHome Home Assistant-verbinding… Beam Me Up Scotty
Stap 5: de ESPHome Home Assistant-verbinding… Beam Me Up Scotty

sensor:

- platform: huisassistent

entiteit_id: sensor.ft_start_hr

id: id_ft_start_hr

Dus nu maken we in ESPHome een sensor van het type homeassistant. Wie had het kunnen raden?

De entiteits-ID moet overeenkomen met wat u hebt ingesteld in uw configuratie.yaml-bestand.

Ik heb een id ingesteld zodat ESPHome naar deze sensor kon verwijzen in zijn overvloed aan denken.

Stap 6: Stap 6: Laten we wat tijd toevoegen

Stap 6: Laten we wat tijd toevoegen
Stap 6: Laten we wat tijd toevoegen

Dus aangezien dit een getimede plug is… Laten we wat tijd toevoegen… Of is het aftrekken? Is het nu verleden tijd?

Hier zijn enkele basisprincipes van de tijdcomponent. We kunnen een aantal verschillende kiezen, maar ik koos voor homeassistant. Te makkelijk?

esphome.io/components/time.html

Stap 7: Stap 7: Interval

Stap 7: Interval
Stap 7: Interval

Nee, het is geen pauze, of wel?

interval:

- interval: 1sec

dan:

- lambda: |-

id(gl_ft_start_hr) = id(id_ft_start_hr).staat;

Dus ik heb een interval van 1 seconde ingesteld om de sensorwaarde van de thuisassistent naar de globale variabele te schrijven.

Ik wil dit gewoon een keer per seconde doen, want de tijd tikt … tik tok

Stap 8: Stap 8: Dus we hebben tijd en geld… Wat nu?

Stap 8: Dus we hebben tijd en geld… Wat nu?
Stap 8: Dus we hebben tijd en geld… Wat nu?

Dus besloot ik een binaire sensorsjabloon te gebruiken om te bepalen of het tijd is om de schakelaarschakelaar in te schakelen … relais

Ik heb drie schakelaars gemaakt met de id's: start_time_valid, stop_time_valid en run_time_valid

start_time_valid is waar wanneer het nu voorbij de ingestelde tijd is om het relais in te schakelen.

Ik gebruikte geneste if-statements om te controleren of we groter of gelijk waren aan de vereiste seconden, dan minuten en tenslotte uren.

stop_time_valid is waar als het nu is voordat het tijd is om de schakelaar uit te schakelen. Dit wordt omgekeerd om te controleren of de vereiste tijd om het relais uit te schakelen nog niet is verstreken

run_time_valid is waar wanneer zowel start_time_valid als stop_time_valid waar zijn. Ik denk dat ik hier gewoon een normale en conditie voor had kunnen gebruiken. Ik ben net aan de slag gegaan met lambda's.

- platform: sjabloon

naam: "Starttijd geldig"

id: start_time_valid

lambda: |-

if (id(homeassistant_time).now().hour > id(gl_ft_start_hr)) {

retourneer waar;

}

else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&

id(homeassistant_time).now().minute > id(gl_ft_start_mn)) {

retourneer waar;

}

else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&

id(homeassistant_time).now().minute == id(gl_ft_start_mn) &&

id(homeassistant_time).now().second >= id(gl_ft_start_ss)){

retourneer waar;

}

anders {

onwaar retourneren;

}

Stap 9: Stap 9: Nu voor enkele scripts: 'To Be, or Not to Be: That Is the Question'

Stap 9: Nu voor enkele scripts: 'To Be, or Not to Be: That Is the Question'
Stap 9: Nu voor enkele scripts: 'To Be, or Not to Be: That Is the Question'

Hmm verkeerde script man!

Dus als ik de schakelaar inplugde … of de stroom van het huis net weer aanging, wilde ik dat de schakelaar wist of hij aan of uit moest staan en dienovereenkomstig zou handelen. (ja we gaan allemaal voor acteerlessen)

Het eerste script-ID: checkstatuson, is controleren of het de bedoeling is dat we actief zijn en dienovereenkomstig handelen. Ik heb ook een globale vlag toegevoegd aan de id: trackingon, om ervoor te zorgen dat dit script maar één keer wordt uitgevoerd en mijn andere scripts niet belemmert om hun rol in het spel te spelen.

Dit heeft 3 en voorwaarden: het relais is uit, het moet aan staan en ik heb mijn deel nog niet gedaan. Hiermee worden vervolgens alle andere scripts uitgeschakeld, wordt het relais ingeschakeld en worden de volgvlaggen ingesteld.

Het tweede script-ID: checkstatusoff is precies het tegenovergestelde van het eerste. We kijken alleen of we de gordijnen nu moeten sluiten. De volgvlag voor deze is trackingoff

Ik voer deze twee scripts uit in het interval van 1 seconde om elke seconde te controleren.

Stap 10: Stap 10: enkele bonusscripts

Stap 10: Enkele bonusscripts
Stap 10: Enkele bonusscripts

Nog twee functies die ik wilde toevoegen, was dat als ik het licht bij de tank uitschakelde, het na 5 seconden weer aangaat als het licht op dat moment moet branden. En als het licht uit was en ik wilde het aanzetten om mijn vissen te zien en het was niet op tijd gepland, dat het 5 minuten aan zou gaan. Ja 5 minuten is lang genoeg… Ga weer aan het werk.

Het eerste script-ID: relayisoff schakelt het licht 5 minuten in als het op tijd uit is en gaat vervolgens uit.

Het tweede script-ID: relayison is praktisch omgekeerd aan het eerste en zal het licht 5 seconden later weer inschakelen als het bedoeld is om aan te zijn. Wie zei dat je mijn licht uit kunt doen, meneer!

Hier is wat meer informatie over scripts:

esphome.io/guides/automations.html

Enige bonusinformatie over scripts is dat ze niet blokkeren. Tenzij je een lambda uitstelt. Uh Nee Nee Nee

Stap 11: Stap 11: Enkele laatste gedachten

Stap 11: Enkele laatste gedachten
Stap 11: Enkele laatste gedachten
Stap 11: Enkele laatste gedachten
Stap 11: Enkele laatste gedachten

Van thuisassistent wilde ik dat de schakelaar op dezelfde manier werkte als de knop.

Ik heb geen naam gegeven voor de lokale schakelaar van de binaire sensor, omdat ik niet hoefde te zien dat deze in de thuisassistent werd ingedrukt.

Ik heb geen naam gegeven voor de relaisschakelaar omdat ik de scripts wilde gebruiken voor het overschakelen van de thuisassistent.

Ik heb een sjabloonschakelaar met een naam gemaakt, zodat ik die kan gebruiken om van thuisassistent over te schakelen. Het zal mijn scripts hetzelfde uitvoeren als de lokale schakelaar bij de plug.

Ik heb niet getest of het uitschakelen van mijn home assistant als de stekker nog goed werkt. Ik hoop het. Ik heb enkele berichten gezien over enkele problemen bij het verliezen van de verbinding met de Home Assistant API.

Ik hoop echt dat deze kleine tutorial je zal helpen en voel je vrij om me te helpen het te verbeteren. Ik ben geen expert en leer heel langzaam. Ik dacht dat sommige dingen die ik heb geleerd te doen iemand kunnen helpen die moeite heeft om erachter te komen.

Nu om de tijden in de thuisassistent te wijzigen op basis van zonsopgang en zonsondergang … + - een paar

Aanbevolen: