text:
Question on your sensor.ps4_playing_game sensor

Hello
could you share how you defined your sensor.ps4_playing_game sensor ? Seems you are using the same sensor for measuring different application usage, so I'm a bit confused.
Thanks !

I have these defined as sensor:
# Idle
- platform: history_stats
  name: PS4 child idle
  entity_id: media_player.ps4_child
  state: "idle"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Standby
- platform: history_stats
  name: PS4 child standby
  entity_id: media_player.ps4_child
  state: "standby"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Playing
- platform: history_stats
  name: PS4 child Playing
  entity_id: media_player.ps4_child
  state: "playing"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Playing Weekly
- platform: history_stats
  name: PS4 child Weekly (Playing)
  entity_id: media_player.ps4_child
  state: "playing"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Media Content Type
- platform: template
  sensors:
    ps4_child_media_content_type:
      friendly_name: "PS4 child - Media content type"
      value_template: "{{ state_attr('media_player.ps4_child', 'media_content_type') }}"

# Playing (app)
- platform: history_stats
  name: PS4 child Playing (app)
  entity_id: sensor.ps4_child_media_content_type
  state: "app"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Playing (game)
- platform: history_stats
  name: PS4 child Playing (game)
  entity_id: sensor.ps4_child_media_content_type
  state: "game"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Weekly (app)
- platform: history_stats
  name: PS4 child Weekly - App
  entity_id: sensor.ps4_child_media_content_type
  state: "app"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Weekly (game)
- platform: history_stats
  name: PS4 child Weekly - Game
  entity_id: sensor.ps4_child_media_content_type
  state: "game"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Source
- platform: template
  sensors:
    ps4_child_source:
      friendly_name: "PS4 child - Source"
      value_template: "{{ state_attr('media_player.ps4_child', 'source') }}"

# Source (Netflix)
- platform: history_stats
  name: PS4 child (Netflix)
  entity_id: sensor.ps4_child_source
  state: "Netflix"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Source Weekly (Netflix)
- platform: history_stats
  name: PS4 child Weekly - Netflix
  entity_id: sensor.ps4_child_source
  state: "Netflix"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Source (Disney+)
- platform: history_stats
  name: PS4 child (Disney+)
  entity_id: sensor.ps4_child_source
  state: "Disney+"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Source Weekly (Disney+)
- platform: history_stats
  name: PS4 child Weekly - Disney+
  entity_id: sensor.ps4_child_source
  state: "Disney+"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Human readable played app time
- platform: template
  sensors:
    ps4_child_human_readable_app_time:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_playing_app') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}
    ps4_child_human_readable_game_time:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_playing_game') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}

# Human readable played app time weekly
- platform: template
  sensors:
    ps4_child_human_readable_app_time_weekly:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_weekly_app') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}
    ps4_child_human_readable_game_time_weekly:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_weekly_game') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}

These as input_datetime:
ps4_child_game_time:
  name: PS4 child - Game time
  icon: mdi:sony-playstation
  has_date: false
  has_time: true

ps4_child_app_time:
  name: PS4 child - APP time
  icon: mdi:netflix
  has_date: false
  has_time: true

Then in the Lovelace I have:
type: horizontal-stack
title: Game time
cards:
  - type: vertical-stack
    cards:
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Used
        icon: gamepad-variant
        time_today: sensor.ps4_child_playing_game
  - type: vertical-stack
    cards:
      - format: Time Left
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Left
        icon: gamepad-variant
        time_today: sensor.ps4_child_playing_game
        max_today: input_datetime.ps4_child_game_time
  - type: vertical-stack
    cards:
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: This week
        icon: gamepad-variant
        time_today: sensor.ps4_child_weekly_game

Which translates to:

Then I also have these for Disney+ / Netflix times, in Lovelave:
type: horizontal-stack
title: Disney+ / Netlix
cards:
  - type: vertical-stack
    cards:
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Used
        icon: youtube
        time_today: sensor.ps4_child_playing_app
  - type: vertical-stack
    cards:
      - format: Time Left
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Left
        icon: youtube
        time_today: sensor.ps4_child_playing_app
        max_today: input_datetime.ps4_child_app_time
  - type: vertical-stack
    cards:
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: This week
        icon: youtube
        time_today: sensor.ps4_child_weekly_app

...which translates to:

Did this answer your question? 🤔

Also, this I used for development:
type: horizontal-stack
cards:
  - type: vertical-stack
    title: Today elapsed
    cards:
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Played total
        icon: gamepad-variant
        time_today: sensor.ps4_child_playing_game
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Watched total
        icon: youtube
        time_today: sensor.ps4_child_playing_app
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Screentime total
        icon: monitor-eye
        time_today: sensor.ps4_child_playing
  - type: vertical-stack
    title: Today left
    cards:
      - format: Time Left
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Game time left
        icon: gamepad-variant
        time_today: sensor.ps4_child_playing_game
        max_today: input_datetime.ps4_child_game_time
      - format: Time Left
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Videos left
        icon: youtube
        time_today: sensor.ps4_child_playing_app
        max_today: input_datetime.ps4_child_app_time
      - format: Time Left
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Screentime left
        icon: monitor-eye
        time_today: sensor.ps4_child_playing
        max_today: sensor.ps4_child_playing
  - type: vertical-stack
    title: Today total
    cards:
      - format: Time Elapsed
        time_format: '01:05'
        type: 'custom:elapsed-time-card'
        name: Played total
        icon: gamepad-variant
        max_today: input_datetime.ps4_child_game_time
        time_today: sensor.ps4_child_playing_game
      - format: Time Elapsed
        time_format: '01:05'
        type: 'custom:elapsed-time-card'
        name: Watched total
        icon: youtube
        time_today: sensor.ps4_child_playing_app
        max_today: input_datetime.ps4_child_app_time
      - format: Time Elapsed
        time_format: '01:05'
        type: 'custom:elapsed-time-card'
        name: Screentime total
        icon: monitor-eye
        time_today: sensor.ps4_child_playing
  - type: vertical-stack
    title: This week elapsed
    cards:
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Played total
        icon: gamepad-variant
        time_today: sensor.ps4_child_weekly_game
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Watched total
        icon: youtube
        time_today: sensor.ps4_child_weekly_app
      - format: Time Elapsed
        time_format: 1h 5m
        type: 'custom:elapsed-time-card'
        name: Screentime total
        icon: monitor-eye
        time_today: sensor.ps4_child_weekly_playing
  - type: vertical-stack
    title: This week elapsed
    cards:
      - format: Time Elapsed
        time_format: '01:05'
        type: 'custom:elapsed-time-card'
        name: Played total
        icon: gamepad-variant
        time_today: sensor.ps4_child_weekly_game
      - format: Time Elapsed
        time_format: '01:05'
        type: 'custom:elapsed-time-card'
        name: Watched total
        icon: youtube
        time_today: sensor.ps4_child_weekly_app
      - format: Time Elapsed
        time_format: '01:05'
        type: 'custom:elapsed-time-card'
        name: Screentime total
        icon: monitor-eye
        time_today: sensor.ps4_child_weekly_playing

Which looks like this:

Just out of curiosity:
what are you going to be using this for? 🙂
I initially developed this for myself, for the purpose of both tracking and limiting the game/video on demand times for our kid.
Meaning that we have defined that the kid can play games for 2 hours and watch cartoons for 1 hour per day, and wanted to create a separate Lovelace panel for the kid to see how much of each time limit has they used/how much is still left.
On top of that we’ve limited the times when the PS4 can be powered on and when it will automatically power off.
I can share these configuration/automation examples as well, in case interested.

I have also put some limits of play time to my son, I had already a daily and weekly sensor based on the playing state, but not as many sensors as you created. Most probably a bit out of laziness :-) But you are giving me a little boost and I will for sure add the missing sensors to be a better view.
Next to this I have also put some automation to broadcast messages on Google Home when the playing time exceed the agreed limit +  I can ask Google Home/Google Assistant how much time the playstation was on during the day.

Not sure If you get anything out of these, but I'll spam a bunch of configurations, automations, sensors, lovelace ui configs, etc. here, that we have defined. If you have anything you'd like me to breakdown/answer, feel free to ask 🙂
I'll try to gather everything related to the PS4 limitations.
sensors/ps4_child.yaml
# Idle
- platform: history_stats
  name: PS4 child idle
  entity_id: media_player.ps4_child
  state: "idle"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Standby
- platform: history_stats
  name: PS4 child standby
  entity_id: media_player.ps4_child
  state: "standby"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Playing
- platform: history_stats
  name: PS4 child Playing
  entity_id: media_player.ps4_child
  state: "playing"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Playing Weekly
- platform: history_stats
  name: PS4 child Weekly (Playing)
  entity_id: media_player.ps4_child
  state: "playing"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Media Content Type
- platform: template
  sensors:
    ps4_child_media_content_type:
      friendly_name: "PS4 child - Media content type"
      value_template: "{{ state_attr('media_player.ps4_child', 'media_content_type') }}"

# Playing (app)
- platform: history_stats
  name: PS4 child Playing (app)
  entity_id: sensor.ps4_child_media_content_type
  state: "app"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Playing (game)
- platform: history_stats
  name: PS4 child Playing (game)
  entity_id: sensor.ps4_child_media_content_type
  state: "game"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Weekly (app)
- platform: history_stats
  name: PS4 child Weekly - App
  entity_id: sensor.ps4_child_media_content_type
  state: "app"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Weekly (game)
- platform: history_stats
  name: PS4 child Weekly - Game
  entity_id: sensor.ps4_child_media_content_type
  state: "game"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Source
- platform: template
  sensors:
    ps4_child_source:
      friendly_name: "PS4 child - Source"
      value_template: "{{ state_attr('media_player.ps4_child', 'source') }}"

# Source (Netflix)
- platform: history_stats
  name: PS4 child (Netflix)
  entity_id: sensor.ps4_child_source
  state: "Netflix"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Source Weekly (Netflix)
- platform: history_stats
  name: PS4 child Weekly - Netflix
  entity_id: sensor.ps4_child_source
  state: "Netflix"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Source (Disney+)
- platform: history_stats
  name: PS4 child (Disney+)
  entity_id: sensor.ps4_child_source
  state: "Disney+"
  type: time
  start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
  end: "{{ now() }}"

# Source Weekly (Disney+)
- platform: history_stats
  name: PS4 child Weekly - Disney+
  entity_id: sensor.ps4_child_source
  state: "Disney+"
  type: time
  start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
  end: "{{ now() }}"

# Human readable played app time
- platform: template
  sensors:
    ps4_child_human_readable_app_time:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_playing_app') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}
    ps4_child_human_readable_game_time:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_playing_game') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}

# Human readable played app time weekly
- platform: template
  sensors:
    ps4_child_human_readable_app_time_weekly:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_weekly_app') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}
    ps4_child_human_readable_game_time_weekly:
      value_template: >-
        {% set peliaika = ((states('sensor.ps4_child_weekly_game') | float) * 60 * 60) %}
        {%- set TIME_MAP = {
                'h': (peliaika / 3600) % 24,
                'm': (peliaika / 60) % 60
        } -%}
        {{ TIME_MAP.h | int }}:{{ '%02d' % TIME_MAP.m | int}}

scripts/ps4_child.yaml
ps4_child_kaynnista:
  alias: PS4 child - Power on
  mode: single
  sequence:
    - service: rest_command.control_ps
      data:
        target: child
        user: hurrdurr
        action: power-on
        extra: ""

ps4_child_sammuta:
  alias: PS4 child - Power off
  mode: single
  sequence:
    - service: rest_command.control_ps
      data:
        target: child
        user: hurrdurr
        action: power-off
        extra: ""
    - service: scene.turn_on
      entity_id: scene.child_scene_on_short

ps4_child_varota_60min:
  alias: PS4 child - Warn for 60min left
  mode: single
  sequence:
    - service: scene.turn_on
      entity_id: scene.child_scene_ps4_60minutes

ps4_child_varota_5min:
  alias: PS4 child - Warn for 5min left
  mode: single
  sequence:
    - service: scene.turn_on
      entity_id: scene.child_scene_ps4_5minutes
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: PS4 will power off in 5 minutes.

ps4_child_varota_1min:
  alias: PS4 child - Warn for 1min left
  mode: single
  sequence:
    - service: scene.turn_on
      entity_id: scene.child_scene_ps4_1minutes
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: PS4 will power off in 1 minute.

ps4_child_varota_1800:
  alias: PS4 child - Warn for 18:00
  mode: single
  sequence:
    - service: scene.turn_on
      entity_id: scene.child_scene_ps4_60minutes
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: It is 18:00, the PS4 will power off in 1 hour.

ps4_child_varota_1855:
  alias: PS4 child - Warn for 18:55
  mode: single
  sequence:
    - service: scene.turn_on
      entity_id: scene.child_scene_ps4_5minutes
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: It is 18:55, the PS4 will power off in 5 minutes.

ps4_child_varota_1859:
  alias: PS4 child - Warn for 18:59
  mode: single
  sequence:
    - service: scene.turn_on
      entity_id: scene.child_scene_ps4_1minutes
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: It is 18:59, the PS4 will power off in 1 minute.

ps4_child_sulje_sovellus:
  alias: PS4 child - Sulje sovellus
  mode: single
  sequence:
    - service: rest_command.control_ps
      data:
        target: child
        user: hurrdurr
        action: close-app
        extra: ""
    - wait_template: "{{ is_state('media_player.ps4_child', 'idle') }}"
      timeout: "00:00:15"
    - choose:
        - conditions:
            - condition: template
              value_template: "{{ not wait.completed }}"
          sequence:
            - service: notify.kirbo_milli
              data:
                message: "PS4 child - Close game/app - failed"
            - service: scene.turn_on
              entity_id: scene.child_scene_ps4_1minutes
            - service: script.turn_on
              entity_id: script.ps4_child_sulje_kaikki_sovellukset
      default:
        - service: scene.turn_on
          entity_id: scene.child_scene_on_short

ps4_child_sulje_kaikki_sovellukset:
  alias: PS4 child - Sulje kaikki sovellukset
  mode: single
  sequence:
    - service: rest_command.control_ps
      data:
        target: child
        user: hurrdurr
        action: close-all-apps
        extra: ""
    - wait_template: "{{ is_state('media_player.ps4_child', 'idle') }}"
      timeout: "00:00:15"
    - choose:
        - conditions:
            - condition: template
              value_template: "{{ not wait.completed }}"
          sequence:
            - service: notify.kirbo_milli
              data:
                message: "PS4 child - Close all games/apps - failed"
            - service: scene.turn_on
              entity_id: scene.child_scene_ps4_1minutes
            - service: script.turn_on
              entity_id: script.ps4_child_sulje_sovellus
      default:
        - service: scene.turn_on
          entity_id: scene.child_scene_on_short

ps4_child_pyyda_kaynnistysta:
  alias: PS4 child - Ask for permission to power on PS4
  mode: single
  sequence:
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Permission to play asked for, wait for the response.
    - service: switch.turn_on
      entity_id: switch.shelly_childn_tv
    - condition: or
      conditions:
        - condition: template
          value_template: "{{ (as_timestamp(states('input_datetime.ps4_child_turned_off')) > as_timestamp(states('input_datetime.ps4_child_asked_to_turn_on'))) }}"
        - condition: template
          value_template: "{{ (as_timestamp(now()) - as_timestamp(states('input_datetime.ps4_child_asked_to_turn_on'))) > 3600 }}"
    - service: input_datetime.set_datetime
      data:
        entity_id: input_datetime.ps4_child_asked_to_turn_on
        datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
    - service: notify.child
      data:
        title: PS4
        message: Permission to play asked for, wait for the response.
    - service: notify.mobile_app_kirbo_iphonexs
      data:
        title: PS4 child
        message: Could you power on the PS4?
        data:
          push:
            category: ps4_child_turn_on_actions
    - service: notify.mobile_app_nokia_7_2
      data:
        title: PS4 child
        message: Could you power on the PS4?
        data:
          actions:
            - action: "PS4_child_TURN_ON"
              title: "Power on"
            - action: "PS4_child_DENIED"
              title: "Nope"

scripts/child.yaml
child_tts:
  alias: child TTS
  description: "Send a TTS to child's Symfonisk"
  fields:
    message:
      description: "The message content"
      example: "Good day child!"
  mode: single
  sequence:
    - service: media_player.volume_set
      entity_id: media_player.child_symfonisk
      data:
        volume_level: 0.5
    - service: tts.cloud_say
      data:
        entity_id: media_player.child_symfonisk
        language: fi-FI
        options:
          gender: female
        message: "{{ message }}"

scenes/child.yaml
- id: child_scene_ps4_60minutes
  name: child scene PS4 60minutes
  entities:
    light.childn_huomio:
      state: "on"

- id: child_scene_ps4_5minutes
  name: child scene PS4 5minutes
  entities:
    light.childn_huomio:
      state: "on"

- id: child_scene_ps4_1minutes
  name: child scene PS4 1minutes
  entities:
    light.childn_huomio:
      state: "on"

automations/ps4_child.yaml
- id: ps4_child_playing_app_or_game_over_time
  alias: PS4 child - Playing APP or Game over time
  trigger:
    - platform: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - platform: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - platform: template
      value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= (states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) }}"
    - platform: template
      value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= (states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) }}"
    - platform: time_pattern
      minutes: "*"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: or
      conditions:
        - condition: and
          conditions:
            - condition: template
              value_template: "{{ states('sensor.ps4_child_media_content_type') == 'app' }}"
            - condition: template
              value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= (states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) }}"
        - condition: and
          conditions:
            - condition: template
              value_template: "{{ states('sensor.ps4_child_media_content_type') == 'game' }}"
            - condition: template
              value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= (states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) }}"
  action:
    - service: notify.kirbo_milli_child_kaikki
      data:
        message: >
          {% if states('sensor.ps4_child_media_content_type') == 'game' %}
            Game time exceeded, game will be closed now
          {% elif states('sensor.ps4_child_media_content_type') == 'app' %}
            Disney+/Netflix time exceeded, application will be closed now
          {% endif %}
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: >
            {% if states('sensor.ps4_child_media_content_type') == 'game' %}
              Game time exceeded, game will be closed now
            {% elif states('sensor.ps4_child_media_content_type') == 'app' %}
              Disney+/Netflix time exceeded, application will be closed now
            {% endif %}
    - service: script.turn_on
      entity_id: script.ps4_child_sulje_sovellus

- id: ps4_child_both_limits_exceeded
  alias: PS4 child - Both limits exceeded
  trigger:
    - platform: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - platform: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - platform: template
      value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= (states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) }}"
    - platform: template
      value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= (states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) }}"
    - platform: time_pattern
      minutes: "*"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= (states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= (states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) }}"
  action:
    - service: notify.kirbo_milli_child_kaikki
      data:
        message: Game time AND Disney+/Netflix time exceeded, the PS4 will be powered off now.
    - service: script.turn_on
      entity_id: script.ps4_child_sammuta

- id: ps4_child_out_of_time_range
  alias: PS4 child - Out of time range
  trigger:
    - platform: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - platform: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - platform: time_pattern
      minutes: "*"
    - platform: template
      value_template: "{{ now().strftime('%H%M%S')|int == strptime(states('input_datetime.ps4_child_will_be_turned_off'), '%H:%M:%S').strftime('%H%M%S')|int }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: or
      conditions:
        - condition: template
          value_template: "{{ now().strftime('%H%M%S')|int >= strptime(states('input_datetime.ps4_child_will_be_turned_off'), '%H:%M:%S').strftime('%H%M%S')|int }}"
        - condition: template
          value_template: "{{ now().strftime('%H%M%S')|int < strptime(states('input_datetime.ps4_child_can_be_turned_on'), '%H:%M:%S').strftime('%H%M%S')|int }}"
  action:
    - service: notify.kirbo_milli_child_kaikki
      data:
        message: >
          {% if now().strftime('%H%M%S')|int >= strptime(states('input_datetime.ps4_child_will_be_turned_off'), "%H:%M:%S").strftime('%H%M%S')|int %}
            The time is {{ now().strftime('%H:%M') }}. PS4 will be turned off after {{ strptime(states('input_datetime.ps4_child_will_be_turned_off'), "%H:%M:%S").strftime('%H:%M') }}!
          {% elif now().strftime('%H%M%S')|int < strptime(states('input_datetime.ps4_child_can_be_turned_on'), "%H:%M:%S").strftime('%H%M%S')|int %}
            The time is {{ now().strftime('%H:%M') }}. PS4 will be turned of before {{ strptime(states('input_datetime.ps4_child_can_be_turned_on'), "%H:%M:%S").strftime('%H:%M') }}!
          {% endif %}
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: >
            {% if now().strftime('%H%M%S')|int >= strptime(states('input_datetime.ps4_child_will_be_turned_off'), "%H:%M:%S").strftime('%H%M%S')|int %}
              The time is {{ now().strftime('%H:%M') }}. PS4 will be turned off after {{ strptime(states('input_datetime.ps4_child_will_be_turned_off'), "%H:%M:%S").strftime('%H:%M') }}!
            {% elif now().strftime('%H%M%S')|int < strptime(states('input_datetime.ps4_child_can_be_turned_on'), "%H:%M:%S").strftime('%H%M%S')|int %}
              The time is {{ now().strftime('%H:%M') }}. PS4 will be turned of before {{ strptime(states('input_datetime.ps4_child_can_be_turned_on'), "%H:%M:%S").strftime('%H:%M') }}!
            {% endif %}
    - service: script.turn_on
      entity_id: script.ps4_child_sammuta

- id: ps4_child_warning_1800
  alias: PS4 child - Warning 18:00
  trigger:
    - platform: time
      at: "18:00:00"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_60minutes_app', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_60minutes_app', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_60minutes_game', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_60minutes_game', 'last_triggered')) > 14400 }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_1800
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: The time is 18:00, the PS4 will be turned off in 1 hour.

- id: ps4_child_warning_1855
  alias: PS4 child - Warning 18:55
  trigger:
    - platform: time
      at: "18:55:00"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_5minutes_app', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_5minutes_app', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_5minutes_game', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_5minutes_game', 'last_triggered')) > 14400 }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_1855
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: The time is 18:55, the PS4 will be turned off in 5 minutes.

- id: ps4_child_warning_1859
  alias: PS4 child - Warning 18:59
  trigger:
    - platform: time
      at: "18:59:00"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1minutes_app', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1minutes_app', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1minutes_game', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1minutes_game', 'last_triggered')) > 14400 }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_1859
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: The time is 18:59, the PS4 will be turned off in 1 minute.

- id: ps4_child_warning_app_half
  alias: PS4 child - Warning half (app)
  trigger:
    - platform: template
      value_template: "{{ ((states('sensor.ps4_child_playing_app')|float) * 60)|int == ((states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) / 2) }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1800', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1800', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_media_content_type') == 'app' }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= ((states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) / 2) }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_60min
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Half off the Disney+/Netflix time has been used.

- id: ps4_child_warning_5minutes_app
  alias: PS4 child - Warning 5minutes (app)
  trigger:
    - platform: template
      value_template: "{{ ((states('sensor.ps4_child_playing_app')|float) * 60)|int == ((states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) - 5) }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1855', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1855', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_media_content_type') == 'app' }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= ((states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) - 5) }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_5min
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Closing the application in 5 minutes.

- id: ps4_child_warning_1minutes_app
  alias: PS4 child - Warning 1minutes (app)
  trigger:
    - platform: template
      value_template: "{{ ((states('sensor.ps4_child_playing_app')|float) * 60)|int == ((states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) - 1) }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1859', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1859', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_media_content_type') == 'app' }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_app') | float * 60 >= ((states.input_datetime.ps4_child_app_time.attributes.timestamp | int / 60) - 1) }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_1min
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Closing the application in 1 minute.

- id: ps4_child_warning_game_half
  alias: PS4 child - Warning half (game)
  trigger:
    - platform: template
      value_template: "{{ ((states('sensor.ps4_child_playing_game')|float) * 60)|int == ((states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) / 2) }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1800', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1800', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_media_content_type') == 'game' }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= ((states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) / 2) }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_60min
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Half off the game time used.

- id: ps4_child_warning_5minutes_game
  alias: PS4 child - Warning 5minutes (game)
  trigger:
    - platform: template
      value_template: "{{ ((states('sensor.ps4_child_playing_game')|float) * 60)|int == ((states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) - 5) }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1855', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1855', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_media_content_type') == 'game' }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= ((states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) - 5) }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_5min
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Game will be closed in 5 minutes.

- id: ps4_child_warning_1minutes_game
  alias: PS4 child - Warning 1minutes (game)
  trigger:
    - platform: template
      value_template: "{{ ((states('sensor.ps4_child_playing_game')|float) * 60)|int == ((states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) - 1) }}"
  condition:
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'standby') }}"
    - condition: template
      value_template: "{{ not is_state('media_player.ps4_child', 'unknown') }}"
    - condition: template
      value_template: "{{ state_attr('automation.ps4_child_warning_1859', 'last_triggered') is none or as_timestamp(now()) - as_timestamp(state_attr('automation.ps4_child_warning_1859', 'last_triggered')) > 14400 }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_media_content_type') == 'game' }}"
    - condition: template
      value_template: "{{ states('sensor.ps4_child_playing_game') | float * 60 >= ((states.input_datetime.ps4_child_game_time.attributes.timestamp | int / 60) - 1) }}"
  action:
    - service: script.turn_on
      entity_id: script.ps4_child_varota_1min
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Game will be closed in 1 minute.

- id: ps4_child_reset_game_time
  alias: PS4 child - Reset game time
  trigger:
    - platform: time
      at: "00:00:00"
  action:
    - service: input_datetime.set_datetime
      data:
        entity_id: input_datetime.ps4_child_game_time
        time: "{{ states('input_datetime.ps4_child_game_time_default') }}"

- id: ps4_child_reset_app_time
  alias: PS4 child - Reset APP time
  trigger:
    - platform: time
      at: "00:00:00"
  action:
    - service: input_datetime.set_datetime
      data:
        entity_id: input_datetime.ps4_child_app_time
        time: "{{ states('input_datetime.ps4_child_app_time_default') }}"

- id: ps4_child_turned_off
  alias: PS4 child - Turned off
  trigger:
    - platform: state
      entity_id: media_player.ps4_child
      to:
        - standby
        - unknown
  action:
    - service: input_datetime.set_datetime
      data:
        entity_id: input_datetime.ps4_child_turned_off
        datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
    - service: switch.turn_off
      entity_id: switch.shelly_childn_tv

- id: ps4_child_turned_on
  alias: PS4 child - Turned on
  trigger:
    - platform: state
      entity_id: media_player.ps4_child
      to: idle
  action:
    - service: switch.turn_on
      entity_id: switch.shelly_childn_tv
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: PS4 powered on.

- id: ps4_child_flash_yellow_short
  alias: PS4 child - Flash Yellow Short
  trigger:
    platform: event
    event_type: call_service
    event_data:
      service_data:
        entity_id: [scene.child_scene_ps4_60minutes]
      domain: scene
      service: turn_on
  action:
    - service: light.turn_on
      entity_id:
        - light.childn_huomio
      data:
        entity_id: light.childn_huomio
        flash: short
        color_name: yellow

- id: ps4_child_flash_long_orange
  alias: PS4 child - Flash Orange Long
  trigger:
    platform: event
    event_type: call_service
    event_data:
      service_data:
        entity_id: [scene.child_scene_ps4_5minutes]
      domain: scene
      service: turn_on
  action:
    - service: light.turn_on
      entity_id:
        - light.childn_huomio
      data:
        entity_id: light.childn_huomio
        flash: long
        color_name: orange

- id: ps4_child_flash_long_red
  alias: PS4 child - Flash Red Long
  trigger:
    platform: event
    event_type: call_service
    event_data:
      service_data:
        entity_id: [scene.child_scene_ps4_1minutes]
      domain: scene
      service: turn_on
  action:
    - service: light.turn_on
      entity_id:
        - light.childn_huomio
      data:
        entity_id: light.childn_huomio
        flash: long
        color_name: red

configurations/input_datetime.yaml
ps4_child_game_time:
  name: PS4 child - Game time
  icon: mdi:sony-playstation
  has_date: false
  has_time: true

ps4_child_app_time:
  name: PS4 child - APP time
  icon: mdi:netflix
  has_date: false
  has_time: true

ps4_child_game_time_default:
  name: PS4 child - Game time default
  icon: mdi:sony-playstation
  has_date: false
  has_time: true

ps4_child_app_time_default:
  name: PS4 child - APP time default
  icon: mdi:netflix
  has_date: false
  has_time: true

ps4_child_turned_off:
  name: PS4 child - Turned Off
  has_date: true
  has_time: true

ps4_child_asked_to_turn_on:
  name: PS4 child - Asked to turn on
  has_date: true
  has_time: true

ps4_child_can_be_turned_on:
  name: PS4 child - Can be turned on
  has_date: false
  has_time: true

ps4_child_will_be_turned_off:
  name: PS4 child - Will be turned off
  has_date: false
  has_time: true

Then I have on a separate Raspberry Pi 3 running one of my own Bash script, which uses PS4-waker and a script for using it:
configurations/rest_command.yaml
control_ps:
  url: "http://192.168.1.200:3000/control_ps"
  method: POST
  content_type: "application/json; charset=utf-8"
  payload: >
    {
      "target": "{{ target }}",
      "user": "{{ user }}",
      "action": "{{ action }}",
      "extra": "{{ extra }}"
    }

The Lovelace UI that we use to manage the limitations and stuff:
  - title: Child
    path: child
    icon: 'fas:child'
    visible:
      - user: <retained>
    badges: []
    cards:
      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - type: button
                entity: scene.child_scene_on_short
                name: Homework
                icon_height: 50px
                icon: 'mdi:school'
                tap_action:
                  action: call-service
                  service: scene.turn_on
                  service_data:
                    entity_id: scene.child_scene_on_short
                    transition: 0.5
              - type: button
                entity: scene.child_scene_dim_up_short
                name: Chill
                icon_height: 50px
                icon: 'mdi:emoticon-cool'
                tap_action:
                  action: call-service
                  service: scene.turn_on
                  service_data:
                    entity_id: scene.child_scene_dim_up_short
                    transition: 0.5
              - type: button
                entity: scene.child_scene_dim_down_short
                name: Reading
                show_state: false
                icon_height: 50px
                icon: 'mdi:book'
                tap_action:
                  action: call-service
                  service: scene.turn_on
                  service_data:
                    entity_id: scene.child_scene_dim_down_short
                    transition: 0.5
              - type: button
                entity: scene.child_scene_off_short
                name: Night light
                icon_height: 50px
                tap_action:
                  action: call-service
                  service: scene.turn_on
                  service_data:
                    entity_id: scene.child_scene_off_short
                    transition: 0.5
                icon: 'mdi:bed'
          - type: glance
            entities:
              - entity: media_player.ps4_child
                name: PS4 child
              - entity: switch.shelly_childn_tv
                name: Child TV
              - entity: light.childn_huomio
                name: Lightstrip
              - entity: light.childn_yovalo
                name: Bed light
              - entity: light.childn_kattovalo
                name: Roof top
            state_color: true
          - type: 'custom:mini-media-player'
            entity: media_player.ps4_child
            group: true
            artwork: full-cover-fit
            info: true
            hide:
              volume: true
              controls: true
            shortcuts:
              columns: 3
              buttons:
                - type: service
                  name: Power On
                  id: rest_command.control_ps
                  data:
                    target: child
                    user: hurrdurr
                    action: power-on
                    extra: ''
                - type: service
                  name: Close App
                  id: rest_command.control_ps
                  data:
                    target: child
                    user: hurrdurr
                    action: close-app
                    extra: ''
                - type: service
                  name: Power off
                  id: rest_command.control_ps
                  data:
                    target: child
                    user: hurrdurr
                    action: power-off
                    extra: ''
                - type: service
                  name: Urpo Uno
                  id: rest_command.control_ps
                  data:
                    target: child
                    user: urpo_uno
                    action: login
                    extra: ''
                - type: service
                  name: Urpo Duo
                  id: rest_command.control_ps
                  data:
                    target: child
                    user: urpo_duo
                    action: login
                    extra: ''
                - type: service
                  name: Urpo Trio
                  id: rest_command.control_ps
                  data:
                    target: child
                    user: urpo_trio
                    action: login
                    extra: ''
      - type: vertical-stack
        cards:
          - type: 'custom:time-picker-card'
            entity: input_datetime.ps4_child_game_time
            hour_mode: 24
            name: Game time today
            hour_step: 1
            minute_step: 5
            second_step: 5
            layout:
              embedded: false
              align_controls: right
              name: inside
            hide:
              seconds: true
            link_values: false
          - type: horizontal-stack
            cards:
              - type: vertical-stack
                cards:
                  - format: Time Elapsed
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: Played
                    icon: gamepad-variant
                    time_today: sensor.ps4_child_playing_game
              - type: vertical-stack
                cards:
                  - format: Time Left
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: Left
                    icon: gamepad-variant
                    time_today: sensor.ps4_child_playing_game
                    max_today: input_datetime.ps4_child_game_time
              - type: vertical-stack
                cards:
                  - format: Time Elapsed
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: This week
                    icon: gamepad-variant
                    time_today: sensor.ps4_child_weekly_game
          - type: history-graph
            entities:
              - entity: sensor.ps4_child_playing_game
                name: Played
            hours_to_show: 24
            refresh_interval: 1
          - type: horizontal-stack
            cards:
              - type: vertical-stack
                cards:
                  - format: Time Elapsed
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: Screentime today
                    icon: monitor-eye
                    time_today: sensor.ps4_child_playing
              - type: vertical-stack
                cards:
                  - format: Time Elapsed
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: This week
                    icon: monitor-eye
                    time_today: sensor.ps4_child_weekly_playing
          - type: history-graph
            entities:
              - entity: media_player.ps4_child
                name: Status
              - entity: sensor.ps4_child_media_content_type
                name: Media type
              - entity: sensor.ps4_child_source
                name: Source
            hours_to_show: 24
            refresh_interval: 0
      - type: vertical-stack
        cards:
          - type: 'custom:time-picker-card'
            entity: input_datetime.ps4_child_app_time
            hour_mode: 24
            name: Disney+ / Netflix today
            hour_step: 1
            minute_step: 5
            second_step: 5
            layout:
              embedded: false
              name: inside
              align_controls: right
            hide:
              seconds: true
            link_values: false
          - type: horizontal-stack
            cards:
              - type: vertical-stack
                cards:
                  - format: Time Elapsed
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: Watched
                    icon: youtube
                    time_today: sensor.ps4_child_playing_app
              - type: vertical-stack
                cards:
                  - format: Time Left
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: Left
                    icon: youtube
                    time_today: sensor.ps4_child_playing_app
                    max_today: input_datetime.ps4_child_app_time
              - type: vertical-stack
                cards:
                  - format: Time Elapsed
                    time_format: 1h 5m
                    type: 'custom:elapsed-time-card'
                    name: This week
                    icon: youtube
                    time_today: sensor.ps4_child_weekly_app
          - type: history-graph
            entities:
              - entity: sensor.ps4_child_playing_app
                name: In total
              - entity: sensor.ps4_child_netflix
                name: Netflix
              - entity: sensor.ps4_child_disney
                name: Disney+
            hours_to_show: 24
            refresh_interval: 1
      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - type: 'custom:time-picker-card'
                entity: input_datetime.ps4_child_can_be_turned_on
                hour_mode: 24
                name: Can be powered on after
                hour_step: 1
                minute_step: 5
                second_step: 5
                layout:
                  embedded: false
                  name: header
                  align_controls: center
                hide:
                  seconds: true
                  name: false
                link_values: false
              - type: 'custom:time-picker-card'
                entity: input_datetime.ps4_child_will_be_turned_off
                hour_mode: 24
                name: Will be powered off after
                hour_step: 1
                minute_step: 5
                second_step: 5
                layout:
                  embedded: false
                hide:
                  seconds: true
                  name: false
                link_values: false
          - type: horizontal-stack
            cards:
              - type: 'custom:time-picker-card'
                entity: input_datetime.ps4_child_game_time_default
                hour_mode: 24
                name: Default game time daily
                hour_step: 1
                minute_step: 5
                second_step: 5
                layout:
                  embedded: null
                  name: header
                  align_controls: center
                hide:
                  seconds: true
                  name: false
                link_values: false
              - type: 'custom:time-picker-card'
                entity: input_datetime.ps4_child_app_time_default
                hour_mode: 24
                name: Default cartoon time daily
                hour_step: 1
                minute_step: 5
                second_step: 5
                layout:
                  embedded: null
                  name: header
                  align_controls: center
                hide:
                  seconds: true
                  name: false
                link_values: false
          - type: 'custom:mini-media-player'
            entity: media_player.child_symfonisk
            artwork: full-cover-fit
            info: true
            volume_step: '1'
            max_volume: '100'
            min_volume: '0'
            group: false
            volume_stateless: false
      - type: vertical-stack
        cards:
          - type: entities
            entities:
              - entity: device_tracker.child_huawei_2
                name: At home
              - entity: sensor.child_huawei_geocoded_location
                name: Location
              - entity: sensor.child_huawei_seuraava_halytys
                name: Next alarm
              - entity: sensor.child_huawei_akun_varaustaso
                name: Battery Reservation
              - entity: sensor.child_huawei_akun_tila
                name: Battery status
              - entity: binary_sensor.child_huawei_interactive
                name: Screen on
              - entity: binary_sensor.child_huawei_power_save
                name: Powersaver mode
              - entity: sensor.child_huawei_ulkoinen_tallennustila
                name: External storage left
              - entity: sensor.child_huawei_sisainen_tallennustila
                name: Internal storage left
              - entity: sensor.child_huawei_ringer_mode
                name: Ringer
              - entity: sensor.child_been_home_for_last_12h
                name: At home for past 12h
              - entity: sensor.child_kotiin_kavellen
                secondary_info: distance
                name: At home by walking
              - entity: sensor.child_kotiin_pyoralla
                name: At home by bicycle
              - entity: sensor.child_kotiin_autolla
                name: At home by car
              - entity: sensor.child_to_home
                name: At home by car (Waze)
            title: Phone
            state_color: false

..and it looks like this:

The Lovelace UI that the kid has on their tablet is like this:
  - title: Child Tablet
    path: child-tablet
    icon: 'fas:tablet'
    panel: true
    visible:
      - user: <retained>
    badges: []
    cards:
      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - type: horizontal-stack
                cards:
                  - type: vertical-stack
                    cards:
                      - type: 'custom:clock-card'
                        time_zone: Europe/Helsinki
                        size: 190
                      - type: horizontal-stack
                        cards:
                          - type: button
                            entity: light.childn_huomio
                            name: Lightstrip
                            tap_action:
                              action: toggle
                            hold_action:
                              action: none
                            show_state: true
                          - type: button
                            entity: light.childn_yovalo
                            name: Bed light
                            hold_action:
                              action: more-info
                            show_state: true
                          - type: button
                            entity: light.childn_kattovalo
                            name: Roof top
                            show_state: true
                      - type: horizontal-stack
                        cards:
                          - type: button
                            entity: scene.child_scene_on_short
                            name: Homework
                            icon_height: 64px
                            icon: 'mdi:school'
                            tap_action:
                              action: call-service
                              service: scene.turn_on
                              service_data:
                                entity_id: scene.child_scene_on_short
                                transition: 0.5
                          - type: button
                            entity: scene.child_scene_dim_up_short
                            name: Chill
                            icon_height: 64px
                            icon: 'mdi:emoticon-cool'
                            tap_action:
                              action: call-service
                              service: scene.turn_on
                              service_data:
                                entity_id: scene.child_scene_dim_up_short
                                transition: 0.5
                          - type: button
                            entity: scene.child_scene_dim_down_short
                            name: Reading
                            show_state: false
                            icon_height: 64px
                            icon: 'mdi:book'
                            tap_action:
                              action: call-service
                              service: scene.turn_on
                              service_data:
                                entity_id: scene.child_scene_dim_down_short
                                transition: 0.5
                          - type: button
                            entity: scene.child_scene_off_short
                            name: Night light
                            icon_height: 64px
                            tap_action:
                              action: call-service
                              service: scene.turn_on
                              service_data:
                                entity_id: scene.child_scene_off_short
                                transition: 0.5
                            icon: 'mdi:bed'
                      - type: glance
                        entities:
                          - entity: sensor.child_huawei_akun_varaustaso
                            name: Battery reservation
                          - entity: binary_sensor.child_huawei_latautuu
                            name: Charging
                          - entity: sensor.child_huawei_seuraava_halytys
                            name: Next alarm
                        state_color: true
                        show_state: true
                        show_icon: true
                        show_name: true
                      - type: grid
                        columns: 2
                        cards:
                          - type: button
                            tap_action:
                              action: call-service
                              service: script.ps4_child_pyyda_kaynnistysta
                            entity: script.ps4_child_pyyda_kaynnistysta
                            name: Could I play PS4?
                            icon: 'mdi:sony-playstation'
                            show_state: false
                            show_icon: true
                            show_name: true
                            icon_height: 108px
                          - reload_interval: '0'
                            reload_delay: '1000'
                            type: 'custom:reload-button'
                            tap_action:
                              action: call-service
                              service: script.reload
                            name: Reload page
                            icon: refresh
                            pathname: /lovelace/child-tabletti
                            format: 'No'
                            reload_on_click: 'Yes'
                            reload_on_reconnect: 'Yes'
                            reload_on_lovelace_update: 'Yes'
                  - type: vertical-stack
                    cards:
                      - type: 'custom:atomic-calendar-revive'
                        entities: []
                        defaultMode: Calendar
                        language: fi
                        calShowDescription: false
                        showLastCalendarWeek: false
                        disableCalEventLink: false
                        disableCalLocationLink: false
                        firstDayOfWeek: 1
                        maxDaysToShow: 7
                        showLoader: true
                        showDate: true
                        sortByStartTime: false
                        showDeclined: false
                        hideFinishedEvents: false
                        showRelativeTime: false
                        showFullDayProgress: false
                        dimFinishedEvents: true
                      - type: 'custom:mini-media-player'
                        entity: media_player.ps4_child
                        group: true
                        artwork: full-cover-fit
                        hide:
                          volume: true
                          controls: true
                          power: true
                          source: true
              - type: vertical-stack
                cards:
                  - type: horizontal-stack
                    cards:
                      - type: vertical-stack
                        title: Today
                        cards:
                          - format: Time Elapsed
                            time_format: 1h 5m
                            type: 'custom:elapsed-time-card'
                            name: Played
                            icon: gamepad-variant
                            time_today: sensor.ps4_child_playing_game
                          - format: Time Elapsed
                            time_format: 1h 5m
                            type: 'custom:elapsed-time-card'
                            name: Watched
                            icon: youtube
                            time_today: sensor.ps4_child_playing_app
                      - type: vertical-stack
                        title: Today
                        cards:
                          - time_format: 1h 5m
                            type: 'custom:elapsed-time-card'
                            name: Games left
                            icon: gamepad-variant
                            max_today: input_datetime.ps4_child_game_time
                            time_today: sensor.ps4_child_playing_game
                            format: Time Left
                          - format: Time Left
                            time_format: 1h 5m
                            type: 'custom:elapsed-time-card'
                            name: Cartoons left
                            icon: youtube
                            max_today: input_datetime.ps4_child_app_time
                            time_today: sensor.ps4_child_playing_app
                      - type: vertical-stack
                        title: This week
                        cards:
                          - format: Time Elapsed
                            time_format: 1h 5m
                            type: 'custom:elapsed-time-card'
                            name: Played
                            icon: gamepad-variant
                            time_today: sensor.ps4_child_weekly_game
                          - format: Time Elapsed
                            time_format: 1h 5m
                            type: 'custom:elapsed-time-card'
                            name: Cartoons
                            icon: youtube
                            time_today: sensor.ps4_child_weekly_app
                  - type: horizontal-stack
                    cards:
                      - type: history-graph
                        entities:
                          - entity: sensor.ps4_child_playing_game
                            name: Played
                        hours_to_show: 24
                        refresh_interval: 1
                        height: 120
                      - type: history-graph
                        entities:
                          - entity: sensor.ps4_child_playing_app
                            name: In total
                          - entity: sensor.ps4_child_netflix
                            name: Netflix
                          - entity: sensor.ps4_child_disney
                            name: Disney+
                        hours_to_show: 24
                        refresh_interval: 1
                        height: 200

...and it looks like this:

Forgot the events:
automations/events.yaml
- id: ps4_child_event_fired_PS4_child_TURN_ON
  alias: PS4 child - Event Fired - Turn On
  trigger:
    - platform: event
      event_type: ios.notification_action_fired
      event_data:
        actionName: PS4_child_TURN_ON
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: PS4_child_TURN_ON
  action:
    - service: switch.turn_on
      entity_id: switch.shelly_childn_tv
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Permission to play granted.
    - service: notify.kirbo_milli_child_kaikki
      data:
        message: Permission to play granted
    - service: rest_command.control_ps
      data:
        target: child
        user: hurrdurr
        action: power-on
        extra: ""

- id: ps4_child_event_fired_PS4_child_PS4_child_DENIED
  alias: PS4 child - Event Fired - Denied
  trigger:
    - platform: event
      event_type: ios.notification_action_fired
      event_data:
        actionName: PS4_child_DENIED
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: PS4_child_DENIED
  action:
    - service: switch.turn_off
      entity_id: switch.shelly_childn_tv
    - service: script.turn_on
      entity_id: script.child_tts
      data:
        variables:
          message: Permission to play denied.
    - service: notify.kirbo_milli_child_kaikki
      data:
        message: Permission to play denied

@littlbee may I close this issue?

authors: kirbo littlbee

repo: kirbo/ha-lovelace-elapsed-time-card


text:
Organize UI folder

The UI package is getting messy. Organize it into folders.

Delivered to master.
I created a few subfolders for different UI components and updated references accordingly.
Commit
commit cf88aba37db58c0982328ebd54c793773e720f70
Author: Alex Hunt alexanderthunt@gmail.com
Date:   Thu May 12 12:45:59 2022 -0400
Issue71: Created some subfolders in UI for different categories and updated references to match.

Testing

Check icons on StartWindow / About / CreateDataset / ViewDataset / Strategy Editor / Triggers / Action Editor / Condition Editor / etc..
Run previously working strategies and verify no crash or change in behavior
Query a dataset and verify no crash or change in prior behavior
Run the exe from the folder and make sure the above (3) still work.

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
incomplete code

hello,,,
i setup your code but many file missing mainly admin
please help

@vthinkmehul Give me an example. What missing?

https://www.screencast.com/t/YoXyMs88x69
https://www.screencast.com/t/scvPbW7zb
https://www.screencast.com/t/eEtY0689vSqb
On Thu, May 17, 2018 at 11:47 AM, Kiril Kirkov notifications@github.com
wrote:

@vthinkmehul https://github.com/vthinkmehul Give me an example. What
missing?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kirilkirkov/Shopping-Cart-Solution-CodeIgniter/issues/79#issuecomment-389757030,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALVonS8w2EafXtth9PaFodZpdUhB3TG2ks5tzRX5gaJpZM4UCay7
.

@vthinkmehul
https://www.screencast.com/t/YoXyMs88x69
templatecss, cssloader,loadlanguage  are a routes, not real folder -
$route['templatecss/imgs/(:any)'] = "Loader/templateCssImage/$1";
$route['templatecss/(:any)'] = "Loader/templateCss/$1";
$route['cssloader/(:any)'] = "Loader/cssStyle";
$route['loadlanguage/(:any)'] = "Loader/jsFile/$1";
https://www.screencast.com/t/scvPbW7zb
right way is to use the shop in clean domein - kwikbucket.com , not - kwikbucket.com/ci , if want to be in directory /ci read the text after  "Easy installation in 3 steps"  here - https://github.com/kirilkirkov/Shopping-Cart-Solution-CodeIgniter
https://www.screencast.com/t/eEtY0689vSqb
there are NO admin folder... admin is in /application/modules/admin :)) this is HMVC , not MVC.
have a nice day

authors: kirilkirkov vthinkmehul


text:
Reanimated Chat Flatlist does not scroll to end properly when content size changes

Describe the bug
The reanimated chat flatlist does not scroll to end properly when content size changes, this has been observed when I modified the sample ReanimatedChatFlatlist.tsx code to enable inserting new messages.
Code snippet
import React, { useRef, useState } from "react";
import { FlatList, TextInput, View } from "react-native";
import { useKeyboardHandler } from "react-native-keyboard-controller";
import Animated, {
  useAnimatedStyle,
  useSharedValue,
} from "react-native-reanimated";

import Message from "../../../components/Message";
import { history } from "../../../components/Message/data";

import styles from "./styles";

import type { MessageProps } from "../../../components/Message/types";
import type { ListRenderItem } from "react-native";

const staticReversedMessages = [...history].reverse();

const RenderItem: ListRenderItem<MessageProps> = ({ item, index }) => {
  return <Message key={index} {...item} />;
};

const useGradualAnimation = () => {
  const height = useSharedValue(0);

  useKeyboardHandler(
    {
      onMove: (e) => {
        "worklet";

        height.value = e.height;
      },
      onEnd: (e) => {
        "worklet";

        height.value = e.height;
      },
    },
    []
  );

  return { height };
};

function ReanimatedChatFlatList() {
  const { height } = useGradualAnimation();
  const [messages, setMessages] = useState(staticReversedMessages);
  const [userInput, setUserInput] = useState<string>("");
  const flatListRef = useRef<FlatList>(null);

  const handleSend = () => {
    setUserInput("");
    setMessages((prevMessages) => [
      {
        text: userInput,
        sender: true,
      },
      ...prevMessages,
    ]);
  };

  const fakeView = useAnimatedStyle(
    () => ({
      height: Math.abs(height.value),
    }),
    []
  );

  return (
    <View style={styles.container}>
      <FlatList
        inverted
        initialNumToRender={15}
        contentContainerStyle={styles.contentContainer}
        data={messages}
        renderItem={RenderItem}
        ref={flatListRef}
        onContentSizeChange={(e) => {
          flatListRef.current?.scrollToEnd({
            animated: true,
          });
        }}
      />
      <TextInput
        style={styles.textInput}
        enterKeyHint="send"
        value={userInput}
        onChangeText={setUserInput}
        onSubmitEditing={handleSend}
      />
      <Animated.View style={fakeView} />
    </View>
  );
}

export default ReanimatedChatFlatList;

Repo for reproducing
/example (ReanimatedChatFlatList/index.tsx) has been modified as shown above
To Reproduce
Steps to reproduce the behavior:

Go to 'Chat FlatList component'
Click on 'text field' and add text
Click on "Enter"
See error

Expected behavior
The chat-log scrolls gracefully, to the last sent message (similar to any typical chat app)
Screenshots
https://github.com/kirillzyusko/react-native-keyboard-controller/assets/84950398/1a2115c3-2f8c-4194-89c8-cdc51373883a
Smartphone (please complete the following information):

Desktop OS: [e.g. Windows 10, MacOS 10.15.5]
Device: iPhone 15 Pro Max
OS: 17.2
RN version: 0.74.2
RN architecture: new
JS engine: [e.g. JSC, Hermes, v8]
Library version: 1.12.3

Hey @NoureldinAmer
I used this code and it works (though scroll is not animated):
import React, { useState } from "react";
import { Button, FlatList, TextInput, View } from "react-native";
import { useKeyboardHandler } from "react-native-keyboard-controller";
import Animated, {
  useAnimatedStyle,
  useSharedValue,
} from "react-native-reanimated";

import Message from "../../../components/Message";
import { history } from "../../../components/Message/data";

import styles from "./styles";

import type { MessageProps } from "../../../components/Message/types";
import type { ListRenderItem } from "react-native";

const reversedMessages = [...history].reverse();

const RenderItem: ListRenderItem<MessageProps> = ({ item, index }) => {
  return <Message key={index} {...item} />;
};

const useGradualAnimation = () => {
  const height = useSharedValue(0);

  useKeyboardHandler(
    {
      onMove: (e) => {
        "worklet";

        height.value = e.height;
      },
      onEnd: (e) => {
        "worklet";

        height.value = e.height;
      },
    },
    [],
  );

  return { height };
};

function ReanimatedChatFlatList() {
  const [messages, setMessages] = useState(reversedMessages);
  const [userInput, setUserInput] = useState<string>("");
  const { height } = useGradualAnimation();

  const fakeView = useAnimatedStyle(
    () => ({
      height: Math.abs(height.value),
    }),
    [],
  );

  const handleSend = (e) => {
    setUserInput("");
    setMessages((prevMessages) => [
      {
        text: userInput,
        sender: true,
      },
      ...prevMessages,
    ]);
  };

  return (
    <View style={styles.container}>
      <FlatList
        inverted
        initialNumToRender={15}
        contentContainerStyle={styles.contentContainer}
        data={messages}
        renderItem={RenderItem}
      />
      <View>
        <TextInput
          style={styles.textInput}
          value={userInput}
          onChangeText={setUserInput}
          onSubmitEditing={handleSend}
        />
        <Button title="Send" onPress={handleSend} />
      </View>
      <Animated.View style={fakeView} />
    </View>
  );
}

export default ReanimatedChatFlatList;

If you would like to avoid instant scrolling and have an animated variant, then you can look into - https://github.com/facebook/react-native/issues/25239
But honestly I didn't find out on how to make this animation 🤷♂

I'm going to close that issue, because it's related to example app (which was crafted for demonstration purposes) and not related to the functionality of the library.

authors: NoureldinAmer kirillzyusko


text:
chore: import repository https://github.com/keerthana4008/keerthana4008.git

this commit will trigger a pipeline to generate the CI/CD configuration which will create a second commit on this Pull Request before it auto merges

[jx-info] Hi, we've detected that the pipelines in this repository are using a syntax that will soon be deprecated.
We'll continue to update you through PRs as we progress. Please check #8589 for further information.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jxbotaccount: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

verify
19b661a69e1675c5b288508784f8581243a5816d
link
/test verify

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

source: gharchive/pull-request


text:
Optimise extension + Change all of the code #2

This is a PR to align with #2 as requested in your License + Discord

Sorry about the 9 thousand commits to this PR, i ended up removing the icon as GH will not format it nicely, with an icon and a title in the same format, unlike how its rendered in normal mdx. So, for this the icon is removed, and its now just a stock title

repo: kishanhitk/SnapSearch


text:
first contributing

A project in react to visualize the sorting algorithm with vertical bars and colors switching.

this repo has been excluded


text:
Help with initial setup of re-write branch

Hi,
maybe you can help my with the setup of the rewrite-branch.
I want to try out the new stuff and may be help with feedback, but for now I'm stuck during the setup.
I checked the branch out and initialized all with "npm install". The script runs fine without any error.
What I'm currently missing, is, how to place it on the web-server. I'm using IIS under windows, the legacy version runs smoothly.
To setup the new on, I have to understand:

where the correct root of the web-app? Folder "src" ?
what is the rule of the index.html in folder src? It's quite empty with some broken dependencies (js/vender.js; js/bundle.js)
how should I set-up the url-rewrite, that I got it to work? So what is the intention/logic behind this?

I'm willing to write some howto to your wiki, when I successfully got it ready, but for now, I think I need some support. Thank you!

IIS Install Steps
IIS MissingFiles .zip

Copy 0.31 to IIS directory, give  IIS_IUSER permissions
Install PHP v5 and Register handler mapping for C:\Program Files (x86)\PHP\v5.6\php-cgi.exe (wonto work with php 7 can register handler mapping for downgrade in directory
Copy Web.config to directories  (api & for url rewrite rules)
Copy vendor directory ( has vendor\slim\web.config)
Install missing deploy using .\build\install_depends.cmd
Log on as admin/admin

repo: kiswa/TaskBoard


text:
Generate secret for session cookie on template generation

For sane defaults, we should generate a random 16-char cookie secret on template generation instead of a fixed one. That way even those people who don't configure an env var with a cookie secret don't have the same one.
https://github.com/kit-clj/kit/blob/master/libs/lein-template/resources/leiningen/new/kit/resources/system.edn#L31

Closed with template 0.1.11

repo: kit-clj/kit


text:
can not download scipyserver or something

Get https://index.docker.io/v1/repositories/ipython/scipyserver/images: dial tcp: lookup index.docker.io on 75.75.76.76:53: server misbehaving

Do you get the same issue when you do:
docker pull ipython/scipyserver

hi, I  use kitematic ,almost the same thing happen all last night and now I
can not even delete the container scipyserver.
Or there is some other way to use jupyterhub? But I don't know how to sign
in ,which username and password should I use?
T
On Wed, Aug 5, 2015 at 11:52 AM, FrenchBen notifications@github.com wrote:

Do you get the same issue when you do:
docker pull ipython/scipyserver
—
Reply to this email directly or view it on GitHub
https://github.com/kitematic/kitematic/issues/892#issuecomment-128047237
.

@estheryou Can you go into virtualbox and fully delete the VM, and then try again?
Thanks

I will try that~thanks
On Wed, Aug 5, 2015 at 1:10 PM, Michael Chiang notifications@github.com
wrote:

@estheryou https://github.com/estheryou Can you go into virtualbox and
fully delete the VM, and then try again?
Thanks
—
Reply to this email directly or view it on GitHub
https://github.com/kitematic/kitematic/issues/892#issuecomment-128074854
.

authors: FrenchBen estheryou mchiang0610

repo: kitematic/kitematic

license_source: bigquery


text:
add versioning for documentation

Description
At the moment the documentation on https://docs.hanami-ai.com/ is based on the develop-branch. This has to be changed to a versioned version of the documenation. The used mkdocs already provides functions for this:
https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/

will be done in context of issue: https://github.com/kitsudaiki/Hanami/issues/189

repo: kitsudaiki/Hanami


text:
simple GET request fails with IllegalAccessError OkHttp3

Hi, using 3.0.0-alpha1 on my android project when I make a simple GET request on a healthy URL I get the following exception and the request fails:
java.lang.IllegalAccessError: Field 'okhttp3.OkHttpClient$Builder.eventListenerFactory' is inaccessible to class 'okhttp3.OkHttpClient' (declaration of 'okhttp3.OkHttpClient' appears in ../base.apk!classes4.dex

code
import fuel.Fuel
import fuel.get

val spUrl = "https://google.com"
val res = Fuel.get(spUrl)   // <- throws exception

I'm not sure if it's a bug in the lib or something related to my android project?

Are you override the okhttp versions in your apps? Fuel 3x uses okhttp 5.

Nope, you can find the build.gradle here https://github.com/nymtech/nym/blob/bbce67902b1040d9cc5a3b609215a885291e30b6/nym-connect/native/android/app/build.gradle#L126C42-L126C46

Oh okay, I think I figured out what went wrong.
on alpha1, I had okhttp as implementation instead api. The snapshot already had api. I believe your android apps is looking at the okttp library, but it is not found. Hence errors. As for temporary workaround, you can put okttp 5 library on your apps.

Adding okhttp in dependencies does not solve the problem
    implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.11'

I still get the same error

Sorry, no updates for now.

I built my own News app that uses Fuel 3.0 alpha 01 and compose multiplatform. https://github.com/iNoles/News
I hope it would help you.

Thx, but no it does not help since your android project is almost empty (you forgot to push maybe?).
Anyway, I downgraded to latest stable 2.3.1 and the library works as expected.
But I left the issue open for 3.0.0-alpha1.

That is because shared modules contain the android library.

authors: doums iNoles

repo: kittinunf/fuel


text:
Test against otp20

Updates testing matrix to include OTP/20 (#117) and also added Elixir 1.5.1

Coverage remained the same at 88.732% when pulling 0b44341808396f4843d73ba039c12140870daf4a on markkevans:test-against-otp20 into c5bd274a28d12ff7d04d0b09edc07483dcf75c8b on kittoframework:master.

Coverage remained the same at 88.732% when pulling 0b44341808396f4843d73ba039c12140870daf4a on markkevans:test-against-otp20 into c5bd274a28d12ff7d04d0b09edc07483dcf75c8b on kittoframework:master.

Coverage remained the same at 88.732% when pulling 0b44341808396f4843d73ba039c12140870daf4a on markkevans:test-against-otp20 into c5bd274a28d12ff7d04d0b09edc07483dcf75c8b on kittoframework:master.

Coverage remained the same at 88.732% when pulling 0b44341808396f4843d73ba039c12140870daf4a on markkevans:test-against-otp20 into c5bd274a28d12ff7d04d0b09edc07483dcf75c8b on kittoframework:master.

Coverage remained the same at 88.732% when pulling 0b44341808396f4843d73ba039c12140870daf4a on markkevans:test-against-otp20 into c5bd274a28d12ff7d04d0b09edc07483dcf75c8b on kittoframework:master.

Looks good 👍 , thanks for contributing!

authors: Zorbash coveralls markkevans

repo: kittoframework/kitto

license: mit


text:
alignment scroll down / up events

Scrolling down led also to a scroll-up event, which is fixed now. It appears as if Kivy and Matplotlib define a scroll down opposing. For Matplotlib it's the hand downwards movement (at least on my computer), so I went with that definition.

@misl6 If you approve, I got an example for the docs somewhere on hold, waiting for that functionality.

repo: kivy-garden/matplotlib


text:
Binding function with arguments

Ok guys, this is no issue, but more of a question. I have this code here(https://github.com/cocodevienne/curl2android). So far so good, I managed to make a somewhat repsonsive UI, its very primitve though. Now I have one question.  What do I have to add to my code in order to call the download function and pass  "self.url" and "self.fname" to it? This has been confusing me thoroughly and I would be very happy if anyone here could resolve this for me. Thanks in advance!

P.S: so that the download function is executed with the press of the button taking in the args described above.

GitHub issues are for reporting bugs. Please use one of the appropriate channels for such questions. It's also a lot faster in a large scale.

https://kivy.org/#support
https://github.com/kivy/kivy/wiki/Community-Guidelines

authors: KeyWeeUsr cocodevienne

repo: kivy/kivy


text:
[WIP] Prevent VideoFFPy from crashing when filename is None

Maintainer merge checklist

[ ] Title is descriptive/clear for inclusion in release notes.
[ ] Applied a Component: xxx label.
[ ] Applied the api-deprecation or api-break label.
[ ] Applied the release-highlight label to be highlighted in release notes.
[ ] Added to the milestone version it was merged into.
[ ] Unittests are included in PR.
[ ] Properly documented, including versionadded, versionchanged as needed.

Fixes issue #8390

I am coming in with only a very shallow understanding, so apologies if I have misunderstood but... I think this PR is tackling the wrong problem.
core/video/__init__.py defines a class, VideoBase.
It tries to define an instance variable, self._filename, but in line 84, it wrongly refers to it as self.filename (no leading underscore).
The wrong variable is initialised, and it is unaffected by later attempts to change it.
Meanwhile VideoFFPy also refers to self.filename, and chaos ensues...
I would change all references to self._filename.
Having the None check from the PR is probably a good idea too.


text:
FIX: Tooltip content scrolling

https://take.ms/87h5Og
LiveURL: https://orbit-components-fix-tooltip-scrolling.surge.sh

Could you please write some story for this case ? @vepor

I would not expose it, as it should not be used in this way - it's just legacy edge case. Also it won't be captured visually, as Tooltip is hidden by default. @tomashapl

I would not expose it, as it should not be used in this way - it's just legacy edge case. Also it won't be captured visually, as Tooltip is hidden by default. @tomashapl

Understand, but it should be nice to have story with bigger content of tooltip to see if your fix works

Added @tomashapl

authors: tomashapl vepor

repo: kiwicom/orbit-components


text:
fix(mobile-back-button): fix back button on mobile

see https://gitlab.skypicker.com/frontend/frontend/merge_requests/5753#note_746276

:tada: This PR is included in version 1.3.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

I think, that it is ok... Please, for future don't put description during skypicker. I haven't an access here. Thanks :)

authors: MagdalenaAlmanova kantord

repo: kiwicom/smart-faq


text:
Chatmuseum with basic authentication

We would like to using Chatmuseum with basic authentication.
(I already made it locally. :) Can I request a feature branch?)

We're looking forward to a PullRequetst from your fork. :)

authors: axdotl caroberto

repo: kiwigrid/helm-maven-plugin


text:
🛑 MON 6 is down

In 869ea0f, MON 6 ($MON_URL/10_0_9_6.html) was down:

HTTP code: 404
Response time: 221 ms

Resolved: MON 6 is back up in 3fbabe6 after 14 minutes.

repo: kizzna/bovorn-mon


text:
🛑 MON 18 is down

In ee1712f, MON 18 ($MON_URL/10_0_9_18.html) was down:

HTTP code: 404
Response time: 632 ms

Resolved: MON 18 is back up in 7b8dc65 after 10 minutes.


text:
🛑 MON-9-51 is down

In 18547b9, MON-9-51 ($MON_URL/b509792c5b60e21d.html) was down:

HTTP code: 404
Response time: 171 ms

Resolved: MON-9-51 is back up in 64f4020 after 9 minutes.


text:
🛑 Watbovorn is down

In 6041d29, Watbovorn (https://watbovorn.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Watbovorn is back up in fed7306 after 3 minutes.

repo: kizzna/uptime


text:
外部依存を隔離する

Next.js
React
Chakra UI
MicroCMS
React Hook Form

などなど、外部依存は多々ある。ReactからVueに移行という事態だって考えられるが、まあその可能性は現時点では薄いとしてもChakraなんかは別のに乗り換える可能性は大いにある。
例えばAtomic Designで言うならChakraをインポートするのはAtomsでだけにして、それより上の階層でChakraのコンポーネントをインポートしたくなったらAtomsにラッパーコンポーネントを用意してそっちをインポートする、とかにしたほうがいいような気がしている。

pages/blogs/index.tsx の getStaticProps() でブログ一覧を取ってきてるが、BlogsResponse を直接渡すのもMicroCMS依存になっていて良くない
type StaticProps = {
  posts: BlogsResponse
}
type PageProps = InferGetStaticPropsType<typeof getStaticProps>

const Blogs: NextPage<PageProps> = (props) => {

スキーマは自分で決められるとはいえ、使わないけどmicorcms都合で勝手に付いてくるフィールドとかあるし。


text:
Bestbuy prompts to login before checking out process finishes this stops the bot

Even after selecting stay sign in on the device, once the robot has been running for a while the site will ask you to sign in again before finishing checkout process which stops the bot from completing the purchase.
Just wondering if there is a work around Thank you

Try this in Firefox:

Open 1-8 temporary container tabs and stay logged out . Each tab will give you a separate queue time for a product you're trying to buy. Open the same product on each of your container tabs and run the script. Strategy is to only go for one item at a time. The less tabs the lower the risk of verify loops, but the more tabs the better the odds of a good queue time. If verify loops happen, close all tabs, restart firefox, create new temporary container tabs and try again.


text:
How to use bsf

Thanks all！
I can use ffmpeg to add sei information

ffmpeg  -i output.h264 -c:v copy -bsf:v h264_metadata=sei_user_data='086f3693-b7b3-4f2c-9653-21492feee5b8+qqqqq' xx.sei.h264

Does anyone know how to implement it in Python?  thanks！！！

have know,fixed

repo: kkroening/ffmpeg-python


text:
Fix issue #195. Redirect stdout/err to /dev/null

Fixes #195
Redirect stdout/stderr to DEVNULL when quiet is requested, otherwise, the buffer will be filled until a MemoryError on long encodings.

Any news on this one? Straightforward change

@kkroening

Have you already tested the code?
I used the same fix, but problem still exists.

@ArchieMeng could you check with the latest version? I changed it slightly to cover all cases.
I tested in my use case, which is:
        self._ffmpeg_proc = (
            ffmpeg.input("pipe:", format="rawvideo", pix_fmt="yuyv422", s=resolution, framerate=cfg().calculate_fps())
            .output(self._filename, vcodec=cfg().record_codec)
            .overwrite_output()
            .run_async(pipe_stdin=True, quiet=True)
        )

Patched and running fine in v0.2.0. Here's how run_async is being called:
def run(self):
  """
  Run channel encoder
  """

  self.process = (
    self.output.run_async(
      quiet=self.quiet
    )
  )
  self.print("Running")

  return_code = self.process.wait()
  if return_code:
    self.print(f"Exited with code {return_code}")

Just for the record, the secret here is to redirect stderr to stdout and then redirect stdout to /dev/null, otherwise, it doesn't work redirecting both to /dev/null.

Just for the record, the secret here is to redirect stderr to stdout and then redirect stdout to /dev/null, otherwise, it doesn't work redirecting both to /dev/null.

That's a weird bug :thinking:

Yes. It works. Thank you.


text:
Feat/extcodehash

Pull Request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Resolves: #131
What is the new behavior?

Alrighty!

repo: kkrt-labs/kakarot-ssj


text:
Add PartyAsRaid

Issue Fixed Can't play with party frames on arena
Proposed Changes

Undo change with delete partyAsRaid from older version

@Kissmyoss-WoW

Have added this in the latest update. Just disable Party Frames now.

authors: Kkthnx YannigSmagghe

repo: kkthnx-wow/KkthnxUI


text:
Coordinator handle commit offset error

fixes #150

2.2.10?

authors: id zmstone

repo: klarna/brod


text:
مشكلة إضافة الأعضاء وتسجيل عضوية جديدة

إخوتي الأفاضل كيف يمكنني إضافة أعضاء من لوحة التحكم، لم أجد أي خيار لإضافة أعضاء جدد أو مسؤولين.
وكذلك يوجد مشكلة في صفحة تسجيل عضوية جديدة
عند الانتقال لتسجيل عضوية جديدة يظهر الخطأ التالي:
خطأ بالتوجه..
رجوع للخلف
شاكرين لكم حسن تعاونكم وتعاملكم.

لاضافة عضو جديد تحتاج للذهاب الى الاعضاء و المجموعات و ستجد اسفل القائمة خيار عضو جديد
ولكن بما انك تستخدم نظام الربط بالمنتدى . فأن عملية اضافة عضو جديد يجب ان تكون من المنتدى . و بالنسبة للخطأ في صفحة تسجيل الدخول . عند استخدام احدث نسخة من الاضافة ستجد خيار في لوحة التحكم لاضافة رابط التسجيل . ويجب ان يكون رابط تسجيل المنتدى

أستاذ ميتان أولاً شكراً على سرعة استجابتك.
أنا أستخدم حالياً نظام العضويات العادي وليس نظام الربط بالمنتدى.
وأيضاً لا توجد أيقونة إضافة عضو في صفحة الأعضاء والمجموعات.

بعد ان تفتح صفحة الاعضاء و المجموعات . ستجدها في القائمة الجانبية . وليس ضمن الصفحة

لم أجدها حبيبنا.

تم حل المشكلة عبر تغيير قيمة
user_system = 1
في جدول klj_config
كل الشكر والتقدير للأستاذ ميتان

authors: MitanOmar asbahi-m

repo: kleeja-official/kleeja


text:
連携アプリを複数登録したい

連携アプリを複数登録できるようにしたい。

Ver2.0 release.