HomeAssistant και ESPHome

teodor_ch

AVClub Addicted Member
Ξεκινάω βάζοντας τον κώδικα για το ESPHome για το 8x relay board μαζί με ένα ESP8266.


Να τονίσω ότι όταν κάνει ρεσταρτ κάποια relay (όχι όλα) ανοιγοκλείνουν οπότε είτε θέλει σωστή επιλογή αυτών για τη σύνδεση με τις ζώνες του συναγερμού, είτε σταθερή παροχή ρεύματος (πχ απο τη μπαταρία του συναγερμού) και αντίστοιχα οι ζώνες να ρυθμιστούν να βαράνε μόνο όταν ο συναγερμός είναι ARMED και όχι όπως τις πυρασφάλειας που βαράνε οποτεδήποτε.
Code:
esphome:
  name: sw-relay-x2
  platform: ESP8266
  board: esp12e

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "xxxxxxxx"


ota:
  password: "xxxxxxx"

wifi:
  networks:
  - ssid: "xxxxxx"
    password: "xxxxx"
  manual_ip:
    static_ip: 192.168.1.xxxx
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 192.168.1.20
    dns2: 192.168.1.1


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sw-Relay-X2 Fallback Hotspot"
    password: "4fPHmXJ6KuSI"

captive_portal:

sensor:
  - platform: adc
    pin: VCC
    name: "VCC Voltage relayx8"
    update_interval: 10s
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 10s
    
    
switch:
  - platform: gpio
    id: relay1
    name: Relay_1
    inverted: False
    pin: GPIO16
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: relay2
    name: Relay_2
    inverted: False
    pin: GPIO14
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: Relay_3
    name: Relay_3
    inverted: False
    pin: GPIO12
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: relay4
    name: Relay_4
    inverted: False
    pin: GPIO13
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: relay5
    name: Relay_5
    inverted: False
    pin: GPIO15
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: relay6
    name: Relay_6
    inverted: False
    pin: GPIO00
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: relay7
    name: Relay_7
    inverted: False
    pin: GPIO04
    restore_mode: ALWAYS_OFF
  - platform: gpio
    id: relay8
    name: Relay_8
    inverted: False
    pin: GPIO05
    restore_mode: ALWAYS_OFF
 
  • Like
Reactions: panoss1 and nikfor

teodor_ch

AVClub Addicted Member
Είναι και Arduino αλλά λόγω έλλειψης γνώσεων τα δουλεύω με το ESPHome το οποίο είναι πανεύκολο!
 

teodor_ch

AVClub Addicted Member
Ξενύχτησα χτες αλλά το απόλαυσα!
Έφερα σε ικανοποιητικό επίπεδο τον απομακρυσμένο έλεγχο του προγραμματιστή ποτίσματος Hunter X-Core που έχω.

Όποιος έχει προγραμματιστή ποτίσματος που μπαίνει αυτό το αξεσουάρ μπορεί να το φτιάξει με ~€10.

Είχα συνδέσει ένα Nodemcu, του είχα περάσει αυτό το firmware

και χτές μέσω του API το ενσωμάτωσα στο HomeAssistant.
Επιλέγω το χρόνο για την στάση που θέλω, επιλέγω τη στάση και πατάω το κουμπί να ξεκινήσει το πότισμα.
Το ήθελα για έξτρα ποτίσματα που ήθελα και βαριόμουν να πάω στο υπόγειο.
Τώρα βέβαια θα πάρω μία στάση και θα τη βάλω στην ποτίστρα στις κότες :p για όποτε λείπουμε!

Αυτοματισμούς δεν έχω φτιάξει ακόμα. Στο επόμενο ξενύχτι μπορεί αν και προτεραιότητα έχει να ενσωματώσω το Inventor AC που έχει μεν WIFI αλλά με ένα αρχαίο android πρόγραμμα που δεν το αναβαθμίζουν και θέλω να αποδεσμευτώ.

Ενδεικτικά θα μπορώ να προσαρμόσω το πότισμα ανάλογα τις καιρικές συνθήκες της ΕΠΟΜΕΝΗΣ ημέρας. Αν περιμένω βροχή δεν ποτίζω, αν περιμένω καύσωνα/Νοτιάδες ποτίζω έξτρα.

Θα μπορώ να προσθέσω και αισθητήρες υγρασίας στο μέλλον :)

Το 8άρι ρελέ που έβαλα πιο πάνω τελικά δε χρειάζεται γιατί χρησιμοποίησα το bus της Hunter. Πολύ πιο εύκολο το hardware αλλά δυσκολότερο το software που όμως το ξεπέρασα.

 

teodor_ch

AVClub Addicted Member
Μετά απο καιρό έκατσα και πρόσθεσα τον αισθητήρα πίεσης νερού του δικτύου που το είχα στη λίστα των δουλειών μου τουλάχιστον 1 χρόνο!
Το σκεπτικό είναι να γυρίζει το αυτόματο πότισμα αυτόματα στο πιεστικό όταν η πίεση του δικτύου πέφτει κάτω απο ένα σημείο.
Τα έχω σχεδιάσει όλα ήδη αλλά δεν υπάρχει χρόνος.

Προς το παρόν παίρνω ειδοποίηση όταν η πίεση του δικτύου είναι χαμηλή 05:00 - 08:00 που πέφτουν τα ποτίσματα για να ξέρω αν ποτίστηκαν ή όχι τελικά.

παράδειγμα σήμερα που δεν υπάρχει πίεση
ενδεικτικά άνοιξα για λίγο το πότισμα των λαχανικών όπως φαίνεται

1655463838966.png

ΥΓ. Θα βάλω αργότερα των κώδικα και τι υλικά χρειάστηκα.
 

Parhs

Senior Member
21 December 2010
638
Μετά απο καιρό έκατσα και πρόσθεσα τον αισθητήρα πίεσης νερού του δικτύου που το είχα στη λίστα των δουλειών μου τουλάχιστον 1 χρόνο!
Το σκεπτικό είναι να γυρίζει το αυτόματο πότισμα αυτόματα στο πιεστικό όταν η πίεση του δικτύου πέφτει κάτω απο ένα σημείο.
Τα έχω σχεδιάσει όλα ήδη αλλά δεν υπάρχει χρόνος.

Προς το παρόν παίρνω ειδοποίηση όταν η πίεση του δικτύου είναι χαμηλή 05:00 - 08:00 που πέφτουν τα ποτίσματα για να ξέρω αν ποτίστηκαν ή όχι τελικά.

παράδειγμα σήμερα που δεν υπάρχει πίεση
ενδεικτικά άνοιξα για λίγο το πότισμα των λαχανικών όπως φαίνεται

View attachment 198958

ΥΓ. Θα βάλω αργότερα των κώδικα και τι υλικά χρειάστηκα.
Υπάρχει αισθητήρας για ροή;
 

teodor_ch

AVClub Addicted Member
Τελευταία προσθήκη για ευνόητους λόγους...

Κατάσταση Διακοπών!
Ανα 15 λεπτά + τυχαίο νούμερο απο 5' έως 30' και εφόσον έχει δύσει ο ήλιος
ανοίγει μία συσκευή τυχαία απο μία λίστα (6 διαφορετικά φώτα μέσα και έξω απο το σπίτι και ένα παλιό στερεοφωνικό) για 5' έως 30' τυχαία.
Την ιδέα την αντέγραψα απο άλλον στο homeassistant forum και είναι κάτι απλό.
Αν είχα βάλει διακόπτες θα μπορούσα να ανοίγω και ρολά το πρωί και να τα κλείνω το βράδυ αλλά δεν το χρειάζομαι.

Automation
Code:
alias: Vacation random away lights
description: ""
trigger:
  - platform: time_pattern
    minutes: /15
condition:
  - condition: state
    entity_id: sun.sun
    state: below_horizon
action:
  - delay:
      minutes: "{{ range(5, 30) | random }}"
  - service: script.light_duration
    data:
      light: "{{states.light.vacation_lights.attributes.entity_id | random}}"
      duration: 00:{{ '{:02}'.format(range(5,30) | random | int) }}:00
mode: parallel

Script
Code:
mode: parallel
description: Turns on a light for a while, and then turns it off
fields:
  light:
    description: A specific light
    example: light.bedroom
  duration:
    description: How long the light should be on in minutes
    example: "25"
sequence:
  - service: homeassistant.turn_on
    data:
      entity_id: "{{ light }}"
   - delay: "{{ duration }}"
  - service: homeassistant.turn_off
    data:
      entity_id: "{{ light }}"

Και το group έχει όνομα group.vacation_devices στο οποίο έχω προσθέσει τις συσκευές που θέλω.
 

teodor_ch

AVClub Addicted Member
Υπάρχει αισθητήρας για ροή;

δεν έχω χρειαστεί μέχρι τώρα
στα γρήγορα που το έψαξα βρήκα diy λύσεις

 

teodor_ch

AVClub Addicted Member
Τελευταία προσθήκη.
Απο αυτό το σιτε http://oil.gge.gov.gr/ παρακολουθώ τις τιμές της βενζίνης κυρίως στην χονδρική αγορά.
Αυτές μεταφέρονται στην αντλία με μία καθυστέρηση λίγων ημερών που εξαρτάται και απο την κίνηση του πρατηρίου οπότε μπορώ να γνωρίζω αν η βενζίνη πρόκειται να πέσει ή να ανέβει και πόσο περίπου.

πχ πριν 1 μήνα που έκανε μία απότομη άνοδο πρόλαβα και γέμισα με 2.03 ενώ μετά έφτασε 2.13
οπότε στα ~100 λίτρα που βάζω στα 3 οχήματα εξοικονόμησα έως (δε ξέρω πότε θα άναβε λαμπάκι) 10 ευρώ απο το πουθενά

Το γράφημα απο εδώ για το παράδειγμα που ανέφερα.

1670405083121.png

Με τον παρακάτω κώδικα το Homeassistant τραβάει τις νέες τιμές κάθε μέρα και κρατάει αρχείο. Αντί να μπαίνω στο site απλά ανοίγω το HA και βλέπω το γράφημα (που δεν βάζω γράφημα γιατί κάτι άλλαξα και δεν έχω αρκετά δεδομένα)
Το επόμενο βήμα είναι να μου στέλνει ειδοποίηση όταν υπάρχει μεγάλη αύξηση σε μία μέρα ή στη μέση τιμή κάποιων ημερών. Θα το σκεφτώ.

Χρησιμοποιώ αυτό το addon αλλά μπορεί να έκανα δουλειά και με το απλό scrape που υπάρχει μέσα στο ΗΑ

Code:
multiscrape:
  - name: Oil GGE GOV GR
    resource: http://oil.gge.gov.gr/
    scan_interval: 21600
    log_response: true
    button:
      unique_id: refresh_gas_prices
      name: Refresh Gas Prices
    sensor:
      - unique_id: gas_unleaded
        name: Βενζίνη αμόλυβδη
        unit_of_measurement: 'EUR'
        device_class: monetary
        state_class: measurement
        select: "div.entry-content > table > tbody > tr:nth-child(6) > td:nth-child(2)"
        value_template: '{{ value.replace (",", "") | float * 1000 | float(0) }}'
      - unique_id: gas_diesel
        name: Πετρέλαιο κίνησης
        unit_of_measurement: 'EUR'
        device_class: monetary
        select: "div.entry-content > table > tbody > tr:nth-child(10) > td:nth-child(2)"
        value_template: '{{ value.replace (",", "") | float * 1000 | float(0) }}'
      - unique_id: gas_lpg
        name: LPG
        unit_of_measurement: 'EUR'
        device_class: monetary
        select: "div.entry-content > table > tbody > tr:nth-child(15) > td:nth-child(2)"
 

teodor_ch

AVClub Addicted Member
Τελευταία προσθήκη Shelly UNI στο αμάξι Suzuki Swift.
Το πρόβλημα ήταν ότι τα παιδιά άφηναν το φώς της πλαφονιέρας ανοιχτό και τελείωνε η μπαταρία μέχρι να το πάρουμε χαμπάρι. Μιλάμε για τάση μπαταρίας <5ν.
Έχω πάρει ένα jump starter απο Κίνα και σε 2΄είχα αυτοκίνητο αλλά δεν ήταν κατάσταση αυτή.

Αντί για ρελέ και χρονικό για να κλείνει το λαμπάκι μετά απο κάποιο χρόνο,
οικονομικότερα και πολύ πιο εύκολα και γρήγορα τοποθέτησα ένα Shelly UNI στην οροφή πίσω απο την πλαφονιέρα το οποίο παίρνει ρεύμα όποτε ανάβει το λαμπάκι.

Είτε δηλαδή όταν ανοίξει η πόρτα είτε εάν κάποιος το βάλει στο ON.
Αυτόματα συνδέεται στο wifi του κήπου και θα το ρυθμίσω όταν μένει >15' ανοιχτό να στέλνει ειδοποίηση στα κινητά.

Επίσης έβαλα και το ADC pin του UNI στο ρεύμα οπότε βλέπω και την τάση της μπαταρίας πάλι για ειδοποίηση εάν η μπαταρία έχει πέσει πολύ χαμηλά. Αυτό θα το βλέπω όταν μπαίνω στο αμάξι πρίν προλάβω να βάλω μπροστά.


Fun fact, επειδή βαρέθηκα να βάλω πολύμετρο να βρώ τη πολικότητα ενώ μου άναβε το UNI με ανάποδα το +/- δεν μετρούσε τάση και στο σκάλισμα μου βραχυκύκλωσα τη πλαφονιέρα. Στην αρχή σκέφτηκα οκ ασφάλεια σιγά το πρόβλημα, διαπίστωσα ότι είχε ένα σωρό θέματα όπως πχ το καντράν έκανε περίεργους ήχους και οι βελόνες ανεβοκατέβαιναν, άναβαν τα μισά φωτάκια του, η σειρήνα άρχισε να βαράει κλπ οπότε νόμιζα ότι έκανα ζημιά στον εγκέφαλο.
Ε, πήγα σε ένα ηλεκτρολογείο αυτοκινήτων κοντά μου, άλλαξαν την καμμένη ασφάλεια και όλα καλά. Μέχρι να το φτιάξει όμως είχα πάρει μία τρομάρα γιατί δεν μπορούσα να φανταστώ μία καμμένη ασφάλεια να προκαλεί τόσες αρρυθμίες.