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

Hva har du automatisert idag/Hva har du gjort på dine prosjekter idag


Anbefalte innlegg

Ikke direkte automasjon, men mere forberedelse til automasjon:

 

Å resette Ikea sine lyspærer er en prøvelse som kan bringe enhver ut av fatning.

Etter tre lyspærer med den manuelle brytermetoden begynte jeg å bli rød i toppen, det ble formidlet ut noen stygge ord.

Når hunden gjemte seg under sofaen, bestemte jeg meg for å automatisere.

 

Jeg tok en Ikea wallplug og programmerte som følger:

 

Av i 3 sekunder.

Loop som kjører 5 ganger:

   På i 0.5 s

   Av i 1 s

 

Den påhengte lyspæra resettes konsekvent :-)

De fem pærene for lysekrona gikk nå som en lek å inkludere.

 

 

Endret av NilsOF
  • Thanks 1
  • Haha 5
Lenke til kommentar
Del på andre sider

32 minutes ago, NilsOF said:

Ikke direkte automasjon, men mere forberedelse til automasjon:

 

Å resette Ikea sine lyspærer er en prøvelse som kan bringe enhver ut av fatning.

Etter tre lyspærer med den manuelle brytermetoden begynte jeg å bli rød i toppen, det ble formidlet ut noen stygge ord.

Når hunden gjemte seg under sofaen, bestemte jeg meg for å automatisere.

 

Jeg tok en Ikea wallplug og programmerte som følger:

 

Av i 3 sekunder.

Loop som kjører 5 ganger:

   På i 0.5 s

   Av i 1 s

 

Den påhengte lyspæra resettes konsekvent :-)

De fem pærene for lysekrona gikk nå som en lek å inkludere.

 

 

Genial løsning på et "problem" som ikke burde eksistert! :D

Endret av Hillmar
Lenke til kommentar
Del på andre sider

1 time siden, NilsOF skrev:

Ikke direkte automasjon, men mere forberedelse til automasjon:

 

Å resette Ikea sine lyspærer er en prøvelse som kan bringe enhver ut av fatning.

Etter tre lyspærer med den manuelle brytermetoden begynte jeg å bli rød i toppen, det ble formidlet ut noen stygge ord.

Når hunden gjemte seg under sofaen, bestemte jeg meg for å automatisere.

 

Jeg tok en Ikea wallplug og programmerte som følger:

 

Av i 3 sekunder.

Loop som kjører 5 ganger:

   På i 0.5 s

   Av i 1 s

 

Den påhengte lyspæra resettes konsekvent :-)

De fem pærene for lysekrona gikk nå som en lek å inkludere.

 

 

 

Ti tomler opp! Holdt på å gå på veggen når jeg skulle resette 6x pærer til utelysene..

Lenke til kommentar
Del på andre sider

Da tenkte jeg å presentere alarmsystemet mitt. Det er sikkert noen som kan hente ut litt tips eller inspirasjon ut av det.

Mitt mål var at det skulle gjøre minst mulig ut av seg. Verken jeg eller kona kommer til å gidde med å slå av og på alarm med kodetasting. Og der er jeg vel nå, synes jeg. Har ikke hatt behov for å trykke inn kode på månedsvis.
I tillegg til avslått har systemet 3 tilstander - armert hjemme, natt og borte.

Armert natt er enkel. Den tilstanden blir slått på og av kun basert på en status på om det er sovetid eller ikke.

Armert hjemme blir slått av og på basert på bevegelsesensorer i gang foran utgangsdør og innvendig i garasje. Er vi i 2. etg og utgangsdør blir åpnet så går alarmen. Men går jeg ned en etasje og åpner døren selv så er alarmen avslått i det jeg blir sett av bevegelsesensoren.

Armert borte blir aktivert så snart huset er tomt. Her bruker jeg tilstanden for om "noen er hjemme" som baserer seg på mer enn 10 forskjellige innganger. Alarmen blir avslått så snart jeg eller kona sin telefon kommer innenfor en gitt avstand til huset. Vanligvis er alarmen avslått 10s før garasjeporten åpnes.
Hvis dør, vindu eller port åpnes uten at vi er i nærheten, så går alarmen etter 30s. Men det sendes en beskjed til telefonene om å oppdatere posisjonsstatus og hvis denne kommer og er innenfor en gitt avstand i løpet av 30s så blir alarm avslått. Og har en av oss glemt telefonen hjemme, så kan jeg sette en status på det også for å hindre alarmen i å bli avslått.

Varsling er også forskjellig i de tre tilstandene. Ved armert borte blir det varslet kun på telefon, men det blir også tatt et bilde av inngangspartiet. Ved armert natt blir kun lyset på soverommet slått på. Og ved armert hjemme vil det blinke et kort blink i lyset i noen utvalgte rom.

Ved brannalarm så vil jeg ikke sette i gang med støvsuging hvis noen studerer koden og stusser på den saken. Scene.stovsuge er fullt lys i hele huset og det er jo greit å ha ved brann også. Så da ble det til at det ble valgt.

 

Systemet er det som er innebygd i Home Assistant og der jeg har lagd all automasjon rundt dette med Appdaemon.

image.thumb.png.8be564ae650d7ca8b08c12f11b8c8a49.png


I alarm.py

import appdaemon.plugins.hass.hassapi as hass

class AlarmTrigger(hass.Hass):
    def initialize(self):
        for tr in self.args["triggers"]:
            self.listen_state(self.trig, tr, new = "on", old = "off")
    
    def trig(self, entity, attribute, old, new, kwargs):
        if self.get_state("alarm_control_panel.hjemmealarm") == self.args["state"]:
            self.call_service("variable/set_variable", variable = "alarm_trigger", value = self.get_state(entity, attribute="friendly_name"))
            self.call_service("alarm_control_panel/alarm_trigger", entity_id = "alarm_control_panel.hjemmealarm")
            self.call_service("notify/mobile_app_sm_g955f", message = "request_location_update")
            self.call_service("notify/mobile_app_sm_g930f", message = "request_location_update")
            self.log('Alarm utløst')

class Arm(hass.Hass):
    def initialize(self):
        self.listen_state(self.armhome, "binary_sensor.gang_1_etg_presence", new = "off", old = "on", duration = 300)
        self.listen_state(self.armhome, "binary_sensor.gang_u_etg_presence", new = "off", old = "on", duration = 300)
        self.listen_state(self.armhome, "binary_sensor.garasje_presence", new = "off", old = "on", duration = 300)
        self.listen_state(self.disarmhome, "binary_sensor.gang_1_etg_presence", new = "on", old = "off")
        self.listen_state(self.disarmhome, "binary_sensor.gang_u_etg_presence", new = "on", old = "off")
        self.listen_state(self.disarmhome, "binary_sensor.garasje_presence", new = "on", old = "off")
        self.listen_state(self.armnight, "input_boolean.sleeptime", new = "on", old = "off")
        self.listen_state(self.disarmnight, "input_boolean.sleeptime", new = "off", old = "on")
        self.listen_state(self.armaway, "binary_sensor.noen_er_hjemme", new = "off")
        self.listen_state(self.disarmaway, "person.__________", new = "home")
        self.listen_state(self.disarmaway, "person.__________", new = "home")
    
    def armhome(self, entity, attribute, old, new, kwargs):
        if (    self.get_state("alarm_control_panel.hjemmealarm") == "disarmed"
                and self.get_state("binary_sensor.gang_1_etg_presence") == "off"
                and self.get_state("binary_sensor.gang_u_etg_presence") == "off"
                and self.get_state("binary_sensor.garasje_presence") == "off" ):
            self.call_service("alarm_control_panel/alarm_arm_home", entity_id = "alarm_control_panel.hjemmealarm", code = "xxxx")

    def disarmhome(self, entity, attribute, old, new, kwargs):
        if self.get_state("alarm_control_panel.hjemmealarm") == "armed_home":
            self.call_service("alarm_control_panel/alarm_disarm", entity_id = "alarm_control_panel.hjemmealarm", code = "xxxx")

    def armnight(self, entity, attribute, old, new, kwargs):
        self.call_service("alarm_control_panel/alarm_arm_night", entity_id = "alarm_control_panel.hjemmealarm", code = "xxxx")

    def disarmnight(self, entity, attribute, old, new, kwargs):
        self.call_service("alarm_control_panel/alarm_disarm", entity_id = "alarm_control_panel.hjemmealarm", code = "xxxx")

    def armaway(self, entity, attribute, old, new, kwargs):
        self.call_service("alarm_control_panel/alarm_arm_away", entity_id = "alarm_control_panel.hjemmealarm", code = "xxxx")

    def disarmaway(self, entity, attribute, old, new, kwargs):
        if ((self.get_state("alarm_control_panel.hjemmealarm") == "pending" or self.get_state("alarm_control_panel.hjemmealarm") == "armed_away")
                and self.get_state("input_select.phone_status") == "Auto"):
            self.call_service("alarm_control_panel/alarm_disarm", entity_id = "alarm_control_panel.hjemmealarm", code = "xxxx")
            self.log('Slo av alarm automatisk')

class NotifyCommon(hass.Hass):
    def initialize(self):
        self.listen_state(self.notify, "alarm_control_panel.hjemmealarm", new = "triggered")
    
    def notify(self, entity, attribute, old, new, kwargs):
        self.call_service("script/send_melding", title = "Alarm {}".format(self.get_state("sensor.time")), message = "Alarm er utløst av {}".format(self.get_state("variable.alarm_trigger")))
        self.call_service("camera/snapshot", entity_id = "camera.kamera1_cam", filename = "www/snapshot_alarm.jpg")

class NotifyHome(hass.Hass):
    def initialize(self):
        self.listen_state(self.notify, "alarm_control_panel.hjemmealarm", new = "triggered", old = "armed_home", duration = 5)
    
    def notify(self, entity, attribute, old, new, kwargs):
        self.turn_on("light.stue", flash = "short")
        self.turn_on("light.kjoekken", flash = "short")
        self.turn_on("light.bad_u_etg", flash = "short")
        self.turn_on("light.soverom_u_etg", flash = "short")
        self.turn_on("light.garasje", flash = "short")
        self.turn_on("light.vaskerom", flash = "short")

class NotifyNight(hass.Hass):
    def initialize(self):
        self.listen_state(self.notify, "alarm_control_panel.hjemmealarm", new = "triggered", old = "armed_night")
    
    def notify(self, entity, attribute, old, new, kwargs):
        self.turn_on("light.soverom_u_etg", brightness = 200)

class NotifyFire(hass.Hass):
    def initialize(self):
        self.listen_state(self.notify, "binary_sensor.brannvarsler", new = "on", old = "off")
    
    def notify(self, entity, attribute, old, new, kwargs):
        self.turn_on("scene.stovsuge")
        self.call_service("script/send_melding", title = "BRANN!!", message = "Brannvarsling utløst!!!!")
        self.log("Brannvarsling utløst!!!!")


I alarm.yaml

awayalarmtrigger:
  module: alarm
  class: AlarmTrigger
  triggers:
    - binary_sensor.garasjeport
    - binary_sensor.hoveddor
    - binary_sensor.gang_1_etg_presence
    - binary_sensor.gang_u_etg_presence
    - binary_sensor.garasje_presence
    - binary_sensor.hagestue_dor
    - binary_sensor.garasjedor
    - binary_sensor.hoveddor_u_etg
    - binary_sensor.boddor
    - binary_sensor.stue_og_kjokken_presence
    - binary_sensor.glassdor_b
    - binary_sensor.glassdor_c
    - binary_sensor.vindu_2_etg_a
    - binary_sensor.vindu_2_etg_b
  state: armed_away

homealarmtrigger:
  module: alarm
  class: AlarmTrigger
  triggers:
    - binary_sensor.garasjeport
    - binary_sensor.hoveddor
    - binary_sensor.garasjedor
    - binary_sensor.hoveddor_u_etg
    - binary_sensor.boddor
  state: armed_home

nightalarmtrigger:
  module: alarm
  class: AlarmTrigger
  triggers:
    - binary_sensor.garasjeport
    - binary_sensor.hoveddor
    - binary_sensor.garasje_presence
    - binary_sensor.hagestue_dor
    - binary_sensor.garasjedor
    - binary_sensor.hoveddor_u_etg
    - binary_sensor.boddor
    - binary_sensor.glassdor_b
    - binary_sensor.glassdor_c
    - binary_sensor.vindu_2_etg_a
    - binary_sensor.vindu_2_etg_b
  state: armed_night

arm:
  module: alarm
  class: Arm

notifycommon:
  module: alarm
  class: NotifyCommon

notifyhome:
  module: alarm
  class: NotifyHome

notifynight:
  module: alarm
  class: NotifyNight

notifyfire:
  module: alarm
  class: NotifyFire


I configuration.yaml

alarm_control_panel:
  - platform: manual
    code_arm_required: false
    name: Hjemmealarm
    code: xxxx
    pending_time: 30
    delay_time: 60
    trigger_time: 4
    disarmed:
      trigger_time: 0
    armed_home:
      pending_time: 0
      delay_time: 0
      trigger_time: 300
    armed_night:
      pending_time: 0
      delay_time: 0
    triggered:
      pending_time: 0

 

  • Like 5
Lenke til kommentar
Del på andre sider

1 time siden, Moskus skrev:

@stigvi Jeg foreslår at slike lange og gode innlegg  lages som en egen post, og deretter linkes inn her.

Det er mye enklere å finne sånt senere, for andre lesere som ikke ni-leser denne nå 85 sider lange tråden. :) 

 

Stemmer også for at mange av @stigvi sine innlegg lages som egne forumposter! De er veldig detaljerte og godt beskrevet på norsk, og jeg vet at jeg kommer til å prøve å finne de igjen når jeg selv skal konfigurere min Home Assistant til sommeren :D 

Lenke til kommentar
Del på andre sider

  • 2 måneder senere...

Hjemmesnekret brannsikring i forbindelse med avfukter i kjeller.

 

Har litt dårlige vibber med avfuktere, uforholdsvis mange brannsaker med avfukter som mulig årsak.

 

Har derfor valgt å automatisere min, inkludert brannslukning. 

 

Koblet først en Develco smart cable på avfukteren, som står i kjelleren. Deretter monterte jeg en Develco røykvarsler rett over, begge med zigbee protocol.

 

Hvis røykvarsleren går, har jeg koblet en stk. "water controller" fra Gardena med slange tilkoblet sprinkler som står ovenfor avfukter. Går røykvarsleren slåes først

strømmen av på avfukteren, deretter åpner Gardena slusene over avfukter. I tillegg til vanlig varsling, både over google home nettverket, samt push-meldinger. Som backup, har jeg en fibaro røykvarsler som står noe lenger bort, slår den også ut på røyk går jeg utfra at meldingen er reell og slukkerprosess starter.

 

Håpet og målet er jo å slukke eventuell brann før den oppstår. 

  • Like 1
Lenke til kommentar
Del på andre sider

På 3.7.2020 den 19.15, Tangodelta skrev:

Har litt dårlige vibber med avfuktere, uforholdsvis mange brannsaker med avfukter som mulig årsak.

Sier du det? Det har jeg faktisk ikke hørt mye om før.

Det går jo sikkert noen tusen avfuktere i diverse fritidsbåter hver vinter uten at vi hører om båtbranner i hopetall?

 

Men OK, jeg får vel slå den av når vi ikke er hjemme.

Lenke til kommentar
Del på andre sider

Da er Tibber Pulse flyttet fra utvendig inntaksskap til innvendig svakstrøm skap. Signalstyrke gikk fra -70dBm til -28dBm så nå skal i allefall ikke det være problem lenger.

 

Lurer egentlig på hvor lenge jeg fortsetter med Tibber Pulse istedenfor å sette opp en esp32 i skapet.......

Lenke til kommentar
Del på andre sider

Jeg var litt nysgjerrig på hvor pålitelig oppdateringene fra Tibber er og lagde et lite skript for å kunne få litt statistikk. Normalt skal jeg ha 1440 oppdateringer på effekt hver time så skriptet teller ned fra 1440 og ideelt sett skal telleren være null når en time er gått.

At mindre enn 10 oppdateringen mangler innenfor en time, havner i kategorien "helt greit"

image.png.a88b94ddf4afedfc40a7000f0a6d58ef.png


 

import appdaemon.plugins.hass.hassapi as hass
import datetime

class EnergyControl(hass.Hass):
    counter = 1440

    def initialize(self):
        self.listen_state(self.count, "sensor.real_time_consumption_xxxxxxxxx_veg_nn", attribute = "timestamp")
        
        self.counter = 1440
        start = datetime.datetime.now() + datetime.timedelta(seconds=60 * 60)
        self.run_every(self.reset_counter, start, 60 * 60)
    
    def count(self, entity, attribute, old, new, kwargs):
        self.counter -= 1
    
    def reset_counter(self, kwargs):
        self.set_state("sensor.missing_tibber_updates", state = self.counter, attributes = {"unit_of_measurement": "N"})
        self.counter = 1440

 

  • Like 1
  • Thanks 1
Lenke til kommentar
Del på andre sider

1 time siden, stigvi skrev:

Normalt skal jeg ha 1440 oppdateringer på effekt hver time så skriptet teller ned fra 1440 og ideelt sett skal telleren være null når en time er gått.

Ja, men kun hvis det har vært endringer på 2,5 sekunder. Hvis effekten er den samme nå som den var for 2,5 sekunder siden er jeg ikke sikker på om webhook'en sender en oppdatering.

Lenke til kommentar
Del på andre sider

38 minutter siden, Moskus skrev:

Ja, men kun hvis det har vært endringer på 2,5 sekunder. Hvis effekten er den samme nå som den var for 2,5 sekunder siden er jeg ikke sikker på om webhook'en sender en oppdatering.

 

Det er alltid endringer i mitt hus. Siden jeg ikke slår av hovedsikringen så øker attributtene "accumulatedConsumption" og "accumulatedCost" hele tiden. Og i koden som jeg lagde, lytter jeg på attributten "timestamp".

Lenke til kommentar
Del på andre sider

Jeg måtte utvide med ytterligere 2 vifter i "teknisk skap" (øverste del av ett gammelt skap i 2. etasje).Så nå har jeg 2 stykk push og 2 stykk pull i skapet for å ta unna når det går over 34 grader. Det er satt opp til å stoppe når man er nede på 31 grader.

 

Temperaturføler og rele er koblet til en NodeMcu som styrer viftene i tillegg til å sende data ved hjelp av MQTT til HomeSeer.

 

 

skap.png.f1b4683d99571cf7c6f308fa6f1351a8.png

 

innhold.png.898c762c2d701793b4385ec7afb00ff0.png

 

Vifter.thumb.png.6877b02e9de786b55dff4f363e4efe6d.png

 

vifterUtvendig.thumb.png.5976792baaeecc5b2b5d1f61c4accaa6.png

 

Ikke superpent, men heller ikke så galt at kona hyler.

 

Edit: Og 20 minutter etter å ha skrytt her så finner jeg ut at den ene viften som sitter innerst (og er vanskelig å få gjort noe med) ikke fungerer. Enten har jeg misforstått eller så er den defekt. Men siden jeg har bl.a. brukt den som borremal så våger jeg ikke å prøve å returnere den til Komplett. 

Men uansett så fungerer det bedre nå med litt mer lufting og litt mer "trøkk".

Endret av Guahtdim
  • Like 3
Lenke til kommentar
Del på andre sider

Husk at PC vifter kommer i både "høyt trykk og mindre luft volum" for CPU kjøleribber og i "lavere trykk og mere luft" modeller for chassis kjøling.

(Lærte dette av sønnen min da jeg laget "PCvifte i Flexit ventil på soverommet" (blog innlegg kommer))

 

Eksempel på første:
https://www.komplettbedrift.no/product/890850/komponenter/kjoeling/vifter/noctua-nf-p12-pwm-120mm-vifte
Eksempel på siste:
https://www.komplettbedrift.no/product/779026/komponenter/kjoeling/vifter/noctua-nf-s12a-pwm-120mm-vifte

 

Regner med at siste er bedre for ventilasjon av denne typen.

 

  • Like 1
Lenke til kommentar
Del på andre sider

Takker for tips. Jeg har gått for 140mm vifter. Akkurat nå er det en blanding av Noctua NF-A14 og Fractal, men kommer til å gå all inn på Noctua NF-A14 300-1500 RPM. Mulig jeg på ett senere tidspunkt kikker på det å kunne gire opp og ned viftehastighet (spenning) avhengig av varme, men inntil videre er det kun av og på.

Lenke til kommentar
Del på andre sider

41 minutter siden, Guahtdim skrev:

Mulig jeg på ett senere tidspunkt kikker på det å kunne gire opp og ned viftehastighet (spenning) avhengig av varme, men inntil videre er det kun av og på.


Jeg har noe tilsvarende og der strømforsynes viftene fra hovedkort i PC og den regulerer hastigheten på de etter dens behov.

Lenke til kommentar
Del på andre sider

3 hours ago, stigvi said:

92 vs 107 m3/time er knapt for forskjell å regne så det spiller vel neppe rolle for kjølingen i skapet.

 

Forskjellen ligger ikke i luftmengde, men i trykk. Der er forskjellen på de to stor, 2,61 vs 1,19 mm H²O. Noctua har en god oversikt.

 

  • Like 2
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • 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.