berland Skrevet 7. mars 2019 Skrevet 7. mars 2019 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. 2 1 Siter
NilsOF Skrevet 26. januar 2021 Skrevet 26. januar 2021 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() 1 Siter
Anbefalte innlegg
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.