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

Helligdager med Python og OpenHAB


Anbefalte innlegg

Dumpet borti et Python-bibliotek holidays som gjorde det ekstremt lett å få smarthuset til vite at det er helligdag.  Installeres med 'pip install holidays'

 

Jeg har en 'item' i OpenHAB som heter 'Helg', som er av eller på. Når det er på er huset i 'helgemodus", og det skal det også være på helligdager.

 

Så da trengte jeg følgende lille Python-script

#!/usr/bin/python

import datetime
import openhab
import holidays

openhab_url = 'http://minopenhabserver:8090/rest'
openhab_client = openhab.openHAB(openhab_url)

if datetime.date.today() in holidays.Norway():
    openhab_client.get_item('Helg').state = 'ON'

 

Kjører det via serveren sin crontab hver midnatt.

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

  • 1 år senere...

Og sånn ble det seendes ut når en amatør som meg bruker HABApp med logging og bjeller på for å få SwitchItem "Helg" i OpenHAB:

import HABApp, logging
import datetime
import holidays.countries.norway

oh_helg_itemnavn = "Helg"

class Helg(HABApp.Rule):
    def __init__(self):
        super().__init__()
        self.log = logging.getLogger('HABApp')
        self.log.info('Helg regel: startet')

        self.oppdater_oh_item()
        self.run_on_every_day(datetime.time(hour=0,minute=0), self.oppdater_oh_item)
        self.run_hourly(self.oppdater_oh_item)

    def oppdater_oh_item(self):
        hour = datetime.datetime.now().hour
        minute = datetime.datetime.now().minute
        if self.oh.item_exists(oh_helg_itemnavn):
            if datetime.date.today() in holidays.Norway():
                self.oh.send_command(oh_helg_itemnavn, "ON")
                if hour == 0 and minute == 0:
                    self.log.info("Helg regel: Jammen ble det helg igjen!")
            else:
                self.oh.send_command(oh_helg_itemnavn, "OFF")
                if hour == 0 and minute == 0:
                    self.log.info("Helg regel: Nope! Atter en vanlig arbeidsdag.")
        else:
            self.log.error(f"Helg regel: OH Item {oh_helg_itemnavn} finnes ikke!")

Helg()

 

  • Like 1
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.