scaarup / aula

Fetches information from Aula about your children
GNU General Public License v3.0
54 stars 14 forks source link

[Feature request] Switches and sensors. #67

Closed Aephir closed 1 year ago

Aephir commented 1 year ago

for det første, tak, jeg er virkelig glad for denne integration!

Jeg har et par ønsker, hvis det er teknisk muligt.

  1. Ville det være muligt at lave switch til f.eks. at melde ban syg, eller melde ferie?

Efter Aula (eller vores børnehave?) gjorde så barnet automatisk raskmeldes hver nat, så skal vi huske at melde syg igen hver morgen barnet er syg. Det kan helt sikkert automatiseres bedre gennem Home Assistant.

Det samme med ferier, som ville kunne læses af Home Assistant i kalendere (og/eller måske aula's kalender kunne eksponneres af integrationen?).

  1. Ville det være muligt at få en sensor til beskeder modtaget i aula, så disse kunne komme ind i Home Assistant?

Så kunne få man f.eks. beskeden læst højt når man kommer hjem, e.l. Eller man kunne holde øje med "keywords" som f.eks. husk, opkast, syg, o.l., og sørge for at gøre ekstra opmærksom på disse.

scaarup commented 1 year ago

Mange tak :)

  1. Det skulle nok nærmere være en eller flere services, der kunne kaldes til de formål. Jeg har selv tænkt på lidt det samme - oprette gå-hjem-tider fra SFO mv. Men jeg er lidt tilbageholdende, da en fejl fra min side kunne resultere i noget misinformation til skolen, eller måske i værste fald risikere at sende nogle unger hjem i utide :). Jeg ved ej heller om der er 1 eller 10 måder, at melde et barn syg/ferie mv. Det skal i hvert fald undersøges først.

  2. Ja det ville nok være muligt. Hvordan tænker du sådan praktisk? Jeg har fx rigtig mange beskeder, og beskeder bliver til tråde med svar - ofte meget lange. Man kunne måske have en sensor for den seneste ulæste besked el.lign.

Aephir commented 1 year ago

Ja, det kunne selvfølgelig hurtigt blive noget rod. Jeg ved ikke rigtig om jeg har så meget at bidage med andet end ønsket, men hvis du har noget specifikt jeg skal afprøve for dig, så gør jeg det gerne.

Måske det bare kunne være en binary_sensor som havde state værende om beskeden er ulæst i aula, og selve beskeden i attributes.

Den ville så opdateres hver gang der kommer en ny, men en automation kan jo stadig nå at affyre selv hvis beskeden bliver "overskrevet" nogle sekunder eller minutter senere.

Ift. alle beskeder/tråde, de var ikke så relevante for hvad jeg umiddelbart havde i tankerne, men nu jeg tænker over det, måske man kunne lave en service_call, som kan returnere dem specifikt hvis man har brug for dem i stedet for altid at have en entity med en flere km lang attribute?

scaarup commented 1 year ago

Ja, det er gode forslag. Jeg prøver at tage et kig på det.

Aephir commented 1 year ago

Nu hvor jeg ser nærmere efter, kaldeneren fra aula kunne helt sikkert være rigtig god at have, selv hvis det bare blev en sensor eller noget man kan tilgå med et service_call.

For det er det eneste sted man med sikkerhed kan se hvad de skal have af fag (f.eks. idræt hvor de skal huske idrætstøj), da det ellers kun er hvis læreren direkte (manuelt) skriver i ugeplan. Eller hvis man opretter en kalender selv, med alt dette info. Men det virker lidt som dobbeltarbejde, især fordi skema nogle gange skifter midt på skoleåret, og helt sikkert hvert år.

scaarup commented 1 year ago

Nu hvor jeg ser nærmere efter, kaldeneren fra aula kunne helt sikkert være rigtig god at have, selv hvis det bare blev en sensor eller noget man kan tilgå med et service_call.

For det er det eneste sted man med sikkerhed kan se hvad de skal have af fag (f.eks. idræt hvor de skal huske idrætstøj), da det ellers kun er hvis læreren direkte (manuelt) skriver i ugeplan. Eller hvis man opretter en kalender selv, med alt dette info. Men det virker lidt som dobbeltarbejde, især fordi skema nogle gange skifter midt på skoleåret, og helt sikkert hvert år.

Kalenderen i Aula har du allerede jo - det er der skoleskemaet kommer fra.

Ift. til beskeder fra Aula, så har jeg lavet denne branch, du gerne må teste: https://github.com/scaarup/aula/tree/messages-feature.

Der er en binary_sensor, der skifter såfremt der er en ulæst besked og selve emnet og beskeden er i attributes: image

Aephir commented 1 year ago

Ups ja, det kan jeg godt se (kalender).

Jeg får ikke noget i besked sensor (er det fordi den først dukker op første gang der kommer en ny besked efter binary_sensor er oprettet?):

Screenshot 2023-01-13 at 10 18 43

Forresten, hvis det kræver meget adgang til app for at verificere (f.eks. at binary_sensor opdaterer når der kommer en besked) kan det være jeg er lidt langsom. Jeg har integreret min kærestes uala, da den ældste af vores er hendes fra et tidligere forhold, og derfor ikke er i min aula.

scaarup commented 1 year ago

Er du helt sikker på, at du har ulæste beskeder i Aula? image

Aephir commented 1 year ago

Jeg har som sagt desværre ikke "direkte"adgang til den Aula vi bruger i HA, det er min kærestes (for at også hendes børn er der).

Jeg prøver at holde øje med binary_sensor de næste dage, og spørge hende ind i mellem om hun har fået nye beskeder.

scaarup commented 1 year ago

Perfekt 👍. Jeg afventer din feedback, før vi releaser noget.

Aephir commented 1 year ago

Det ser ud til at det virker fint her:

Screenshot 2023-01-13 at 13 01 39
scaarup commented 1 year ago

Fedt 🙂

scaarup commented 1 year ago

Jeg har lige fundet en fejl. Lader til, at vi kun får den første del af beskeden i det kald jeg laver. Så der skal lige en rettelse til før vi får hentet hele beskeden. Jeg vender retur.

Aephir commented 1 year ago

Ja, var lige ved at nævne at enten havde læreren glemt at skrive tidspunkt, ellers manglede der noget af besked :)

scaarup commented 1 year ago

Ja det så jeg også :)

Jeg har lige pushet et fix op, du må gerne teste. (attribute indeholder nu også afsender)

Btw, hvis du vil vise et card med seneste besked, såfremt der er nogen:

image

type: conditional
conditions:
  - entity: binary_sensor.aula_aulamessage
    state: 'on'
card:
  type: markdown
  content: |-
    ## {{ state_attr('binary_sensor.aula_aulamessage', 'subject') }}
    ### Fra: {{ state_attr('binary_sensor.aula_aulamessage', 'sender') }}

    {{ state_attr('binary_sensor.aula_aulamessage', 'text') }}
Aephir commented 1 year ago

Det ser rigtig fint ud herfra!

Aephir commented 1 year ago

Lige en hurtig update, binary_sensor.aula_aulamessage blev på et tidspunkt unavailable. Det virkede ikke at sige reload from integrations siden, men hvis jeg slettede alt fra custom_components/aula, og kopierede den branch over igen, så var den der igen efter genstart.

Jeg er ikke sikker på om der har været en opdatering i HACS jeg er kommet til at installere uden at se ordentlig efter?

Under alle omstændigheder, så holder jeg fortsat øje med den, og siger til hvis jeg ser noget igen.

scaarup commented 1 year ago

Tak for feedback. Måske jeg også selv skulle få testet det ordentligt :)

scaarup commented 1 year ago

Holder den lige åben imens jeg tester. Pre-release out.

Aephir commented 1 year ago

Jeg tror det er når man genstarter Home Assistant at sensor ryger? Jeg ser i hvert fald at den bliver ved med at ende som

Screenshot 2023-01-23 at 10 14 45

Og ved genstart får jeg af og til denne:

Logger: homeassistant.components.binary_sensor
Source: custom_components/aula/binary_sensor.py:22
Integration: Binary sensor (documentation, issues)
First occurred: 14:45:39 (1 occurrences)
Last logged: 14:45:39

Error while setting up aula platform for binary_sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 289, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/aula/binary_sensor.py", line 22, in async_setup_entry
    device = AulaBinarySensor(hass=hass, unread=client.unread_messages, subject=subject, text=text, sender=sender)
UnboundLocalError: local variable 'sender' referenced before assignment
scaarup commented 1 year ago

Ja, jeg tror jeg oplevede det samme. Der er en ny prerelease hvor jeg håber det er fixet - v0.1.28.

Aephir commented 1 year ago

v0.1.28 ser umiddelbart ud til at virke for mig.