Προς το περιεχόμενο

Home Assistant Hassio RPi


Προτεινόμενες αναρτήσεις

Δημοσ.
5 ώρες πριν, liakjim είπε

Ξέρει κανείς πως τρέχουμε πράξεις στο nodered;

Θέλω να τρέξω αυτό

= (6,112 * rH * 2,167 * ( 2,71828^((17,67*T)/(T+243,5))))/(273,15+T)

Όπου rH είναι η σχετική υγρασία και Τ η θερμοκρασία (θα την παίρνω από θερμόμετρα).

Είναι μια απλή φόρμουλα υπολογισμού απόλυτης υγρασίας σε gr/m3.

Δεδομένου ότι μπορείς να γράψεις javascript σε nodes στο Nodered θα είναι περίπου όπως το έγραψες και στη φόρμουλα (τελεία όπου έχεις βάλει κόμμα, και τα rH, T ονόματα μεταβλητών).

Μήπως όμως είναι καλύτερο να χρησιμοποιήσεις αυτό το custom component στο HA: https://github.com/dolezsa/thermal_comfort 

Υπολογίζει και δημιουργεί νέα entities για απόλυτη υγρασία, σημείο δρόσου (dew point) και heat index (aka "Real feel").
Και ένα περιγραφικό entity "thermal perception" που το ορίζει με βάση το υπολογισμένο dew point (<10: "a bit dry", <13 "very comfortable", <18 "Ok for most", <21 "somewhat uncomfortable", <24: "very humid,quite uncomfortable", >24: "extremely uncomfortable")

Μιας και δεν το έχει βάλει στο HACS πρέπει να το βάλεις χειροκίνητα στο custom_components folder, να κάνεις επανεκκίνηση του HA, και μετά να προσθέσεις στο configuration.yaml τους νέους sensors που θέλεις όπως περιγράφονται στο repo (προσθέτει κατάληξη _absolutehumidity, _dew_point, _heat_index στα ονόματα που θα βάλεις) και ξανά επανεκκίνηση.

 

  • Απαντ. 1,9k
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.
4 λεπτά πριν, liaskt είπε

Δεδομένου ότι μπορείς να γράψεις javascript σε nodes στο Nodered θα είναι περίπου όπως το έγραψες και στη φόρμουλα (τελεία όπου έχεις βάλει κόμμα, και τα rH, T ονόματα μεταβλητών).

Μήπως όμως είναι καλύτερο να χρησιμοποιήσεις αυτό το custom component στο HA: https://github.com/dolezsa/thermal_comfort 

Υπολογίζει και δημιουργεί νέα entities για απόλυτη υγρασία, σημείο δρόσου (dew point) και heat index (aka "Real feel").
Και ένα περιγραφικό entity "thermal perception" που το ορίζει με βάση το υπολογισμένο dew point (<10: "a bit dry", <13 "very comfortable", <18 "Ok for most", <21 "somewhat uncomfortable", <24: "very humid,quite uncomfortable", >24: "extremely uncomfortable")

Μιας και δεν το έχει βάλει στο HACS πρέπει να το βάλεις χειροκίνητα στο custom_components folder, να κάνεις επανεκκίνηση του HA, και μετά να προσθέσεις στο configuration.yaml τους νέους sensors που θέλεις όπως περιγράφονται στο repo (προσθέτει κατάληξη _absolutehumidity, _dew_point, _heat_index στα ονόματα που θα βάλεις) και ξανά επανεκκίνηση.

 

Καλή φάση, μακάρι να το είχα δει νωρίτερα. Θα είχα γλιτώσει πολύ κόπο.

Με τη βοήθεια του @than2031995, έχω πλέον αυτό που χρειάζομαι και στο τέλος τους αφαιρώ για να ξέρω αν θα πρέπει να αερίσω το σπίτι!

template:
    sensor:
     - name: Absolute External Humidity
       unit_of_measurement: g/m³
       state: >
          {% set h, t = states('sensor.external_humidity') | float, states('sensor.external_temperature') %}
          {% if not h or t == 'unknown' -%}
            'unknown'
          {%- else %}
           {% set t = t | float %}
           {{ (h*6.112*2.1674*e**((t*17.67)/(t+243.5))/(t+273.15))|round(2) }}
          {% endif %}
     - name: Absolute Internal Humidity
       unit_of_measurement: g/m³
       state: >
          {% set h, t = states('sensor.internal_humidity') | float, states('sensor.internal_temperature') %}
          {% if not h or t == 'unknown' -%}
            'unknown'
          {%- else %}
           {% set t = t | float %}
           {{ (h*6.112*2.1674*e**((t*17.67)/(t+243.5))/(t+273.15))|round(2) }}
          {% endif %}  
          
     - name: absolute humidity diff
       state: >
          {% set int = states ('sensor.absolute_internal_humidity')| float %}
          {% set ext = states ('sensor.absolute_external_humidity')| float %}
          {{ (int - ext) | round(2) }}     

  • Thanks 1
Δημοσ.
1 ώρα πριν, liakjim είπε

Καλή φάση, μακάρι να το είχα δει νωρίτερα. Θα είχα γλιτώσει πολύ κόπο.

Με τη βοήθεια του @than2031995, έχω πλέον αυτό που χρειάζομαι και στο τέλος τους αφαιρώ για να ξέρω αν θα πρέπει να αερίσω το σπίτι!

template:
    sensor:
     - name: Absolute External Humidity
       unit_of_measurement: g/m³
       state: >
          {% set h, t = states('sensor.external_humidity') | float, states('sensor.external_temperature') %}
          {% if not h or t == 'unknown' -%}
            'unknown'
          {%- else %}
           {% set t = t | float %}
           {{ (h*6.112*2.1674*e**((t*17.67)/(t+243.5))/(t+273.15))|round(2) }}
          {% endif %}
     - name: Absolute Internal Humidity
       unit_of_measurement: g/m³
       state: >
          {% set h, t = states('sensor.internal_humidity') | float, states('sensor.internal_temperature') %}
          {% if not h or t == 'unknown' -%}
            'unknown'
          {%- else %}
           {% set t = t | float %}
           {{ (h*6.112*2.1674*e**((t*17.67)/(t+243.5))/(t+273.15))|round(2) }}
          {% endif %}  
          
     - name: absolute humidity diff
       state: >
          {% set int = states ('sensor.absolute_internal_humidity')| float %}
          {% set ext = states ('sensor.absolute_external_humidity')| float %}
          {{ (int - ext) | round(2) }}     

Ενδιαφέρον αυτοματισμός. Είδα ότι υπάρχει και σχετικό πρόσφατο Blueprint εδώ: https://community.home-assistant.io/t/switch-a-fan-based-on-absolute-humidity-differnece-between-two-humid-temp-sensors/305686  που κάνει το ίδιο (υπολογίζει τη διαφορά στην απόλυτη υγρασία) αλλά προσθέτει και ένα configurable rising και ένα falling threshold για τη διαφορά για να αποφασίσει αν θα τρέξει τον αυτοματισμό ή όχι. Πρέπει να αλλάξεις λίγο το action στο blueprint να μην ανοίγει/κλείνει ένα switch (e.g. ventilation fan) αλλά να σου στέλνει notification για να αερίσεις το σπίτι χειροκίνητα.

  • Like 1
  • Thanks 1
Δημοσ. (επεξεργασμένο)
5 ώρες πριν, liaskt είπε

Ενδιαφέρον αυτοματισμός. Είδα ότι υπάρχει και σχετικό πρόσφατο Blueprint εδώ: https://community.home-assistant.io/t/switch-a-fan-based-on-absolute-humidity-differnece-between-two-humid-temp-sensors/305686  που κάνει το ίδιο (υπολογίζει τη διαφορά στην απόλυτη υγρασία) αλλά προσθέτει και ένα configurable rising και ένα falling threshold για τη διαφορά για να αποφασίσει αν θα τρέξει τον αυτοματισμό ή όχι. Πρέπει να αλλάξεις λίγο το action στο blueprint να μην ανοίγει/κλείνει ένα switch (e.g. ventilation fan) αλλά να σου στέλνει notification για να αερίσεις το σπίτι χειροκίνητα.

Τώρα κατάλαβα από πού μου έστειλε την εξίσωση ο @than2031995

😋

Ηθικό δίδαγμα : να κοιτάω τα blueprints πρώτα πριν φάω ένα απόγευμα. 😅

Ναι, είναι το ίδιο πράγμα.

Το μόνο που έχω είναι ένα ενδεικτικό που αλλάζει χρώμα. Πράσινο αν η διαφορά είναι πάνω απ'το μηδέν, άρα αεριζω ή κόκκινο όταν όχι οπότε δεν αεριζω (μη φέρουμε υγρασία μέσα!).

Screenshot_2021-09-26-06-36-11-32_c3a231c25ed346e59462e84656a70e50.jpg.c3265c940ed50d9b4cd571199be910d6.jpg

Βλέπω στο blueprint έχει βάλει σαν default threshold το 1.1.

Αναρωτιέμαι από πού το έχει πάρει. Θα ρωτήσω.

Επεξ/σία από liakjim
Δημοσ.
4 ώρες πριν, liakjim είπε

Βλέπω στο blueprint έχει βάλει σαν default threshold το 1.1.

Για εξήγησε λίγο παραπάνω όταν μάθεις τι κάνει το παραπάνω threshold και αν γενικά το βρίσκεις αξιόπιστο, γιατί με ενδιαφέρει να το κατεβάσω..

Δημοσ.
1 ώρα πριν, userAnon είπε

Για εξήγησε λίγο παραπάνω όταν μάθεις τι κάνει το παραπάνω threshold και αν γενικά το βρίσκεις αξιόπιστο, γιατί με ενδιαφέρει να το κατεβάσω..

Τον έχω ρωτήσει. Ίσως το έχει βάλει στην τύχη (όπως και το 0.9 που έχει βάλει για το off) ή και να προέρχεται από κάποια αρχή μηχανικού αερισμού. @mechpanos ξέρεις κάτι;

12 ώρες πριν, liaskt είπε

Δεδομένου ότι μπορείς να γράψεις javascript σε nodes στο Nodered θα είναι περίπου όπως το έγραψες και στη φόρμουλα (τελεία όπου έχεις βάλει κόμμα, και τα rH, T ονόματα μεταβλητών).

Υπάρχει κάποιο tutorial για αυτό;

Δημοσ.
1 λεπτό πριν, liakjim είπε

Τον έχω ρωτήσει. Ίσως το έχει βάλει στην τύχη (όπως και το 0.9 που έχει βάλει για το off) ή και να προέρχεται από κάποια αρχή μηχανικού αερισμού. @mechpanos ξέρεις κάτι;

το κατέβασα πριν λίγο να το δοκιμάσω, νομίζω ότι θα χρειαστεί να φτιάξω και τους σενσορες για να μπορώ να καταλάβω αν πρέπει να δώσει ειδοποίηση ή όχι.. το θέμα είναι ότι με τα threshold δεν μπορώ βάλω τους δικούς σου πχ και δεν έχω ιδέα πως να τους φτιάξω :) για να λαμβάνουν υπόψιν τους και αυτή την παράμετρο.

εντωμεταξύ στον αυτοματισμό του εκεί που έχει το switch (έβαλα κάποιο για το τεστ)

έχει το παρακάτω

mode:
    "{% if switch_state == 'off' and difference|float > rising_threshold|float
    %}on{% elif switch_state == 'on' and difference|float > falling_threshold|float
    %}on{% else %}off{% endif %}"

το οποίο με προβληματίζει γιατί: 

Όταν τρέχω τον αυτοματισμό manual και το φως είναι κλειστό μου βγάζει μόνο τις ειδοποίησεις που πρόσθεσα (στέλνει μήνυμα στο κινητό + στο google home). Δεν ανάβει το φως όμως.

Όταν το φως είναι αναμμένο στέλνει τις ειδοποίησεις και κλείνει το φως.. 

Δεν θα έπρεπε στην πρώτη περίπτωση να ανάβει το φως? εκτός και αν για να το ανάψει πρέπει να ισχύει η προυπόθεση

 "{% if switch_state == 'off' and difference|float > rising_threshold|float
    %}on{

και επειδή δεν ισχύει δεν κάνει τίποτα. (μάλλον αυτό είναι) 

 

-----

Επίσης άλλο πρόβλημα που έχει είναι ότι στην δεύτερη περίπτωση (που κλείνει το φως) αν καταλαβαίνω καλά πρέπει να κλείσουν τα παράθυρα (γιατί κλείνει το switch) άρα θα πρέπει να αλλάζει το μήνυμα "κλείσε το παραθυρο" κλπ

-δεν ξέρω αν θα καταφέρω να το προσαρμόσω :)

---

Νομίζω ότι είναι καλύτερα που το έκανες μόνος σου και μπορείς να το ελέγχεις. Μάλλον δεν χάνεις τίποτα :)

6 ώρες πριν, liakjim είπε

Το μόνο που έχω είναι ένα ενδεικτικό που αλλάζει χρώμα. Πράσινο αν η διαφορά είναι πάνω απ'το μηδέν, άρα αεριζω ή κόκκινο όταν όχι οπότε δεν αεριζω (μη φέρουμε υγρασία μέσα!).

Πάμε μια πάλι γιατί μόλις έφτιαξα τους σένσορες σου. αυτη τη στιγμή μου βγάζει 0,10.

Αυτό σημαίνει απλά ότι μπορείς να ανοίξεις τα παραθυρα για αερισμό. αν είναι κάτω από 0 δεν λέει γιατί θα μπει υγρασία. Σωστά?

Δεν χρειάζεσαι κάποιον άλλο αυτοματισμό δηλαδή. 

  • Like 1
Δημοσ.
1 ώρα πριν, userAnon είπε

Πάμε μια πάλι γιατί μόλις έφτιαξα τους σένσορες σου. αυτη τη στιγμή μου βγάζει 0,10.

Αυτό σημαίνει απλά ότι μπορείς να ανοίξεις τα παραθυρα για αερισμό. αν είναι κάτω από 0 δεν λέει γιατί θα μπει υγρασία. Σωστά?

Δεν χρειάζεσαι κάποιον άλλο αυτοματισμό δηλαδή. 

Ναι, αυτή είναι η λογική.

  • Like 1
Δημοσ.
2 λεπτά πριν, liakjim είπε

Ναι, αυτή είναι η λογική.

Μια χαρα τότε, το προτιμώ.. το Blueprint προφανώς είναι για άλλη χρήση. Ίσως όταν κάποιος θέλει μόνιμα αερισμό εκτός από όταν δεν θέλει να φέρνει μέσα υγρασία.

 

Με τον δικό σου σένσορα νομίζω ότι θα είναι καλό να γίνει αυτοματισμός που να λέει να κλείσουν τα παράθυρα όταν η τιμή είναι κάτω από το 0 πχ. 

  • Like 1
Δημοσ. (επεξεργασμένο)
3 ώρες πριν, liakjim είπε

> Δεδομένου ότι μπορείς να γράψεις javascript σε nodes στο Nodered θα είναι περίπου όπως το έγραψες και στη φόρμουλα (τελεία όπου έχεις βάλει κόμμα, και τα rH, T ονόματα μεταβλητών).

Υπάρχει κάποιο tutorial για αυτό;

Χρειάζεται να χρησιμοποιήσεις τα λεγόμενα function nodes, στα οποία επεξεργάζεσαι το msg.payload με javascript.

Για function nodes με math operators δες αυτό το παρόμοιο discussion: https://forums.opto22.com/t/complex-math-in-a-function-node/2905/4  

Κάποια math operations στο Javascript όπως το power, sqrt etc. είναι διαθέσιμα στο Math object: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math 

Γενικά τα function nodes περιγράφονται αρκετά καλά σε αυτό το tutorial http://noderedguide.com/node-red-lecture-5-the-node-red-programming-model/

Τα function nodes λειτουργούν σε ένα input μόνο (msg.payload). Αν οι 2 μεταβλητές που θέλεις να χρησιμοποιήσεις (rel humidity, temperature) είναι σε διαφορετικά nodes και όχι στο ίδιο, μάλλον θα χρειαστεί να χρησιμοποιήσεις αυτό που λέγεται context στο Nodered: http://noderedguide.com/node-red-lecture-6-example-6-7-multiple-inputs-on-a-function-node/ ή το Join node όπως στη συζήτηση εδώ: https://discourse.nodered.org/t/why-dont-node-red-nodes-allow-multiple-inputs/10973/10 

 

Επεξ/σία από liaskt
Δημοσ.

Γνωρίζει κανείς πως μπορώ να συνδέσω 1 wemos d1 mini  με μαγνητική παγίδα πόρτας και να τα περάσω στο ΗΑ? 

Νομίζω ότι είναι πολύ εύκολο, αλλά δεν μπορώ να βρω έναν απλό οδηγό να ακολουθήσω..

Η πρώτη μου απορία είναι αν χρειάζομαι ή όχι μετατροπή απο 5v σε 3V για να συνδέσω τα καλώδια της μαγνητικής επαφής σε ground και κάποιο από τα pins το d1 mini (θα παίρνουν ρεύμα από 5v usb). Νομίζω και ελπίζω ότι δεν χρειάζεται.. 

Δημοσ.
Στις 24/9/2021 στις 5:59 ΜΜ, Spect~ είπε
  Εμφάνιση κρυμμένου περιεχομένου

Capture.JPG.e6cb84f5f70ecb5bbfbdde0cb16ee64a.JPG

Με το wait 60s δουλεψε. Θα κανω αλλη μια δοκιμη μετα και θα πω με 100% σιγουρια

Αν καταλαβαίνω καλά το home_occupancy που έχεις φτιάξει είναι sensor με τα 2 device trackers (το ίδιο έχω κάνει αλλά με group). Αν ναι γιατί δεν κάνεις trigger απευθείας από αυτό στο Node red; 

Δημοσ. (επεξεργασμένο)
2 ώρες πριν, userAnon είπε

Γνωρίζει κανείς πως μπορώ να συνδέσω 1 wemos d1 mini  με μαγνητική παγίδα πόρτας και να τα περάσω στο ΗΑ? 

Νομίζω ότι είναι πολύ εύκολο, αλλά δεν μπορώ να βρω έναν απλό οδηγό να ακολουθήσω..

Η πρώτη μου απορία είναι αν χρειάζομαι ή όχι μετατροπή απο 5v σε 3V για να συνδέσω τα καλώδια της μαγνητικής επαφής σε ground και κάποιο από τα pins το d1 mini (θα παίρνουν ρεύμα από 5v usb). Νομίζω και ελπίζω ότι δεν χρειάζεται.. 

Οχι δεν χρειάζετε. Το Wemos έτσι και αλλιώς σε 3.3V τρέχει. Συνδέεις το ένα  άκρο της μαγνητικής επαφής με κάποιο απο τα digital pins πχ D2 και το άλλο άκρο με το GND. Πρόσοχή το pin πρέπει να ρυθμιστεί σαν INPUT_PULLUP. 

Μην ανακαλύψεις τον τροχό ξανά. Χρησιμοποίησε το ESP home και όλα θα γίνουν εύκολα.

Δες και εδώ: https://esphome.io/components/binary_sensor/gpio.html

 

Επεξ/σία από nkarama
  • Moderators
Δημοσ.
1 ώρα πριν, GP είπε

Αν καταλαβαίνω καλά το home_occupancy που έχεις φτιάξει είναι sensor με τα 2 device trackers (το ίδιο έχω κάνει αλλά με group). Αν ναι γιατί δεν κάνεις trigger απευθείας από αυτό στο Node red; 

Καλη ερωτηση και η απαντηση ειναι γιατι δεν το σκεφτηκα ή οτι παντα σκεφτομαστε πιο περιπλοκα ενω ολα ειναι απλα :P

 

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...