JonasJoKuJonas / homeassistant-WebUntis

Custom component to access data from Web Untis in Home Assistant
https://community.home-assistant.io/t/webuntis-timetable-in-ha/568273
MIT License
58 stars 12 forks source link

Unterrichtsausfall bei gemischten Klassen #152

Open RealJustMe opened 2 months ago

RealJustMe commented 2 months ago

Hallo, bei meinem Kind an der Schule sind in den meisten Fächern die Klassen gemischt und wenn für unsere Klasse das Fach ausfällt, wird dieses Fach nicht als gecancelt angegeben (was ja auch logisch ist). In der Info fehlt aber die eigene Klasse (821): "klassen": [{"name": "800", "long_name": "WP8"}, {"name": "811", "long_name": "811 Ma"}, {"name": "812", "long_name": "812 Regel"}, {"name": "813", "long_name": "813 Mu"}, {"name": "822", "long_name": "822 jap-bili"}, {"name": "823", "long_name": "823 Regel"}, {"name": "824", "long_name": "824 Regel"}] Vergleich mit einer Stunde, wo sie dabei sind: "klassen": [{"name": "800", "long_name": "WP8"}, {"name": "811", "long_name": "811 Ma"}, {"name": "812", "long_name": "812 Regel"}, {"name": "813", "long_name": "813 Mu"}, {"name": "821", "long_name": "821 bili"}, {"name": "822", "long_name": "822 jap-bili"}, {"name": "823", "long_name": "823 Regel"}, {"name": "824", "long_name": "824 Regel"}]

Vielleicht könnte man zur Prüfung auch die Klassen mit einbeziehen, ob diese an dem Fach teilnehmen.

JonasJoKuJonas commented 2 months ago

Normalerweise sollten diese Stunden gar nicht angezeigt werden. Über welche Option hast du denn die Integration eingerichtet?

RealJustMe commented 2 months ago

In der Untis App werden die auch als ganz normale Stunden angezeigt, nur dass entweder die Klasse durchgestrichen ist oder sie im Falle einer Ersatzstunde gar nicht aufgeführt ist. Eingerichtet habe ich das über "Persönlich"

So sieht es in der App aus. Der Unterricht findet statt, nur eben ohne unsere Klasse: untis

sagresbier commented 2 months ago

Hallo zusammen, ich muss auch nach Klasse filtern. Zur Info: In den Rohdaten stehen die Zeiten mit Zeitzone +00. Daher muss ich das ersetzen. Im zweiten Teil filtere ich nach Klasse '07b'. Hier mein code:

type: markdown
content: >-
  {% if states.input_boolean.sommerzeit -%}
    {% set offset = '+02' %}
  {%- else -%}
    {% set offset = '+01' %}
  {%- endif %}

  <ha-alert alert-type="success">{{ "Nico hat am " +
  strptime(states("sensor.n_today_school_start").replace('+00',
  offset), '%Y-%m-%dT%H:%M:%S%z') | as_timestamp | timestamp_custom('%d.%m.%Y')
  }}

  {{- " von " +
  strptime(states("sensor.n_today_school_start").replace('+00:',
  offset), '%Y-%m-%dT%H:%M:%S%z') | as_timestamp | timestamp_custom('%H:%M') }}

  {{- " bis "
  +strptime(states("sensor.n_today_school_end").replace('+00:',
  offset), '%Y-%m-%dT%H:%M:%S%z') | as_timestamp | timestamp_custom('%H:%M') }}

  {{- " Unterricht." }}

  </ha-alert>

  <ha-alert title="{{ "Stundenplan für " +
  strptime(states("sensor.n_next_lesson_to_wake_up").replace('+00',
  offset), '%Y-%m-%dT%H:%M:%S%z') | as_timestamp | timestamp_custom('%d.%m.%Y')
  }}">

  {% set lessons = state_attr("sensor.n_next_lesson_to_wake_up",
  "day") | from_json %} 

  {%- for lesson in lessons | sort(attribute='start') |
  selectattr('klassen.0.name', 'eq', '07b') -%}
    {{ strptime(lesson.start.replace('+00:', offset), '%Y-%m-%d %H:%M:%S%z') | as_timestamp | timestamp_custom('%H:%M') }}
    {{- " - " +strptime(lesson.end.replace('+00:', offset), '%Y-%m-%d %H:%M:%S%z') | as_timestamp | timestamp_custom('%H:%M') }}
    {{- ": " + lesson.subjects.0.long_name }}
  <br>

  {%- endfor %}

  </ha-alert>
title: Schule`
JonasJoKuJonas commented 2 months ago

@RealJustMe dann ist das von dem untis Administrator flasch eingetragen. Ich füge dann noch eine filter für Klassen hinzu 😉

RealJustMe commented 1 month ago

@JonasJoKuJonas da habe ich leider keinen einblick, da ich das nur so kenne :sweat_smile: aber ein filter dafür wäre klasse. Hat auch keine eile ich benutze solange den code von @sagresbier :thumbsup: