Skip to content

Releases

Greg v1.7.1

Choose a tag to compare

@github-actions github-actions released this 05 Nov 22:12

Changed

  • Greg arrives as a zip now. Every release carries a greg.zip and HACS
    downloads that rather than the source archive GitHub generates. What you
    install and how you install it are unchanged. The point is that GitHub
    counts release files and does not count source archives, which is the whole
    reason Greg has never had a download number beside his name in HACS while
    other integrations do.
  • The number HACS shows is for the current release only and starts again from
    nothing every time he is updated, so it says how much traffic one version
    got rather than how many people have him. There is a running total on the
    README for the other question. That one only goes up.
  • Both counts start from this release. Nothing before it was ever counted and
    nothing can go back and count it.

Internal

  • The release workflow builds the zip and refuses to publish if its layout is
    wrong, and the ordinary checks build it on every push for the same reason. A
    zip one level too deep would install to the right place with everything
    inside it in the wrong one, which produces a perfectly green build and a Greg
    that does not load.
  • .github/scripts/downloads.py prints the all-time total with a line per
    release, for when the badge is not enough.

Greg v1.7.1b1

Greg v1.7.1b1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Nov 21:44

Test build of 1.7.1. Not for general use.

What it will contain when it ships:

Changed

  • Greg arrives as a zip now. Every release carries a greg.zip and HACS
    downloads that rather than the source archive GitHub generates. What you
    install and how you install it are unchanged. The point is that GitHub
    counts release files and does not count source archives, which is the whole
    reason Greg has never had a download number beside his name in HACS while
    other integrations do.
  • The number HACS shows is for the current release only and starts again from
    nothing every time he is updated, so it says how much traffic one version
    got rather than how many people have him. There is a running total on the
    README for the other question. That one only goes up.
  • Both counts start from this release. Nothing before it was ever counted and
    nothing can go back and count it.

Internal

  • The release workflow builds the zip and refuses to publish if its layout is
    wrong, and the ordinary checks build it on every push for the same reason. A
    zip one level too deep would install to the right place with everything
    inside it in the wrong one, which produces a perfectly green build and a Greg
    that does not load.
  • .github/scripts/downloads.py prints the all-time total with a line per
    release, for when the badge is not enough.

Greg v1.7.0

Choose a tag to compare

@WHISTLER-Arc WHISTLER-Arc released this 15 Oct 18:48

Added

  • The escalation ladder. The three thresholds are one track with three
    handles in Greg's panel, in the mood colours the card already uses. The
    handles cannot cross, so chaos sitting below medium, which made him skip a
    mood for no visible reason, is no longer something that can be set.
  • Timing in the panel too, as three numbers you type over rather than
    three more full-width sliders: how long until he calms down, how long until
    he notices the silence, and how often the existential crises come round.
  • All six are still in advanced settings as well. Nothing has moved out from
    under anybody, and if they end up crossed there Greg puts them in order.
  • Line backups. Export to a file writes everything you have written to
    greg-lines-<date>.txt. Import from a file reads one back, asking first
    whether to add the file's lines to yours or replace yours with them, and
    saying how many lines a replace would throw away.
  • The file is plain text: ## en, ### soft, and a line per bullet. Anything
    else in it is ignored, so you can also write a batch of lines in a text
    editor and import them, and a file somebody sends you can be pasted straight
    into a GitHub issue.
  • greg.import_lines does the same from an automation. One call rather than
    one per category, so a restore is a single reload.
  • greg.set_options now accepts the thresholds and the timing values.
  • The panel says when Greg is not running. An integration that failed to
    start leaves the panel rendering perfectly with nothing in it: no face, empty
    dropdowns, no version. It now says so, and points at the log.

Fixed

  • Custom Piper voices were ignored. A .onnx installed by hand is not in
    the list Wyoming advertises, and Greg refused any name he could not find in
    that list, so a custom voice never played while the same name worked fine in
    an automation. He now asks for it and notes in the log that he did not
    recognise it. Reported by
    rujelus22 on the forum
    thread.
  • An en_US voice was checked against the wrong locale. Greg's codes are
    bare, so English fell through to whichever locale sorted first, usually
    en_GB, and an en_US voice was then not recognised. A voice now decides
    the locale, as long as the engine offers it and it speaks the language Greg
    is speaking. Same report.
  • A voice name that is right apart from its accents or its capitals is now
    corrected to the engine's own spelling rather than refused, which is the
    pt_PT-tugao-medium trap from 1.5.5 fixed rather than merely explained.
  • The existential interval defaulted to 37 minutes in one file and 42 in
    another, so a fresh install that never opened the advanced dialog ran five
    minutes fast.
  • Thresholds stored in the wrong order, which the dialog has always allowed,
    are put back in order wherever they are read, so an install that has been
    quietly skipping a mood for months stops doing it.

Internal

  • Tests live in the repo now, and run in CI: python -m unittest discover -s tests, plus node tests/ladder.test.mjs and node tests/backup.test.mjs,
    which run the real panel in a stubbed DOM. No pytest, no Home Assistant.
  • tests/preview.html opens Greg's panel against a fake Home Assistant, for
    looking at a change without an install to hand.
  • pyflakes runs in CI alongside compileall, which proves the syntax is
    valid but not that every name used is imported.

Greg v1.7.0b2

Greg v1.7.0b2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Oct 06:59

Test build of 1.7.0. Not for general use.

What it will contain when it ships:

Added

  • The escalation ladder. The three thresholds are one track with three
    handles in Greg's panel, in the mood colours the card already uses. The
    handles cannot cross, so chaos sitting below medium, which made him skip a
    mood for no visible reason, is no longer something that can be set.
  • Timing in the panel too, as three numbers you type over rather than
    three more full-width sliders: how long until he calms down, how long until
    he notices the silence, and how often the existential crises come round.
  • All six are still in advanced settings as well. Nothing has moved out from
    under anybody, and if they end up crossed there Greg puts them in order.
  • Line backups. Export to a file writes everything you have written to
    greg-lines-<date>.txt. Import from a file reads one back, asking first
    whether to add the file's lines to yours or replace yours with them, and
    saying how many lines a replace would throw away.
  • The file is plain text: ## en, ### soft, and a line per bullet. Anything
    else in it is ignored, so you can also write a batch of lines in a text
    editor and import them, and a file somebody sends you can be pasted straight
    into a GitHub issue.
  • greg.import_lines does the same from an automation. One call rather than
    one per category, so a restore is a single reload.
  • greg.set_options now accepts the thresholds and the timing values.
  • The panel says when Greg is not running. An integration that failed to
    start leaves the panel rendering perfectly with nothing in it: no face, empty
    dropdowns, no version. It now says so, and points at the log.

Fixed

  • Custom Piper voices were ignored. A .onnx installed by hand is not in
    the list Wyoming advertises, and Greg refused any name he could not find in
    that list, so a custom voice never played while the same name worked fine in
    an automation. He now asks for it and notes in the log that he did not
    recognise it. Reported by
    rujelus22 on the forum
    thread.
  • An en_US voice was checked against the wrong locale. Greg's codes are
    bare, so English fell through to whichever locale sorted first, usually
    en_GB, and an en_US voice was then not recognised. A voice now decides
    the locale, as long as the engine offers it and it speaks the language Greg
    is speaking. Same report.
  • A voice name that is right apart from its accents or its capitals is now
    corrected to the engine's own spelling rather than refused, which is the
    pt_PT-tugao-medium trap from 1.5.5 fixed rather than merely explained.
  • The existential interval defaulted to 37 minutes in one file and 42 in
    another, so a fresh install that never opened the advanced dialog ran five
    minutes fast.
  • Thresholds stored in the wrong order, which the dialog has always allowed,
    are put back in order wherever they are read, so an install that has been
    quietly skipping a mood for months stops doing it.

Internal

  • Tests live in the repo now, and run in CI: python -m unittest discover -s tests, plus node tests/ladder.test.mjs and node tests/backup.test.mjs,
    which run the real panel in a stubbed DOM. No pytest, no Home Assistant.
  • tests/preview.html opens Greg's panel against a fake Home Assistant, for
    looking at a change without an install to hand.

Greg v1.7.0b1

Greg v1.7.0b1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Oct 06:03

Test build of 1.7.0. Not for general use.

What it will contain when it ships:

Added

  • The escalation ladder. The three thresholds are one track with three
    handles in Greg's panel, in the mood colours the card already uses. The
    handles cannot cross, so chaos sitting below medium, which made him skip a
    mood for no visible reason, is no longer something that can be set.
  • Timing in the panel too, as three numbers you type over rather than
    three more full-width sliders: how long until he calms down, how long until
    he notices the silence, and how often the existential crises come round.
  • All six are still in advanced settings as well. Nothing has moved out from
    under anybody, and if they end up crossed there Greg puts them in order.
  • Line backups. Export to a file writes everything you have written to
    greg-lines-<date>.txt. Import from a file reads one back, asking first
    whether to add the file's lines to yours or replace yours with them, and
    saying how many lines a replace would throw away.
  • The file is plain text: ## en, ### soft, and a line per bullet. Anything
    else in it is ignored, so you can also write a batch of lines in a text
    editor and import them, and a file somebody sends you can be pasted straight
    into a GitHub issue.
  • greg.import_lines does the same from an automation. One call rather than
    one per category, so a restore is a single reload.
  • greg.set_options now accepts the thresholds and the timing values.

Fixed

  • Custom Piper voices were ignored. A .onnx installed by hand is not in
    the list Wyoming advertises, and Greg refused any name he could not find in
    that list, so a custom voice never played while the same name worked fine in
    an automation. He now asks for it and notes in the log that he did not
    recognise it. Reported by
    rujelus22 on the forum
    thread.
  • An en_US voice was checked against the wrong locale. Greg's codes are
    bare, so English fell through to whichever locale sorted first, usually
    en_GB, and an en_US voice was then not recognised. A voice now decides
    the locale, as long as the engine offers it and it speaks the language Greg
    is speaking. Same report.
  • A voice name that is right apart from its accents or its capitals is now
    corrected to the engine's own spelling rather than refused, which is the
    pt_PT-tugao-medium trap from 1.5.5 fixed rather than merely explained.
  • The existential interval defaulted to 37 minutes in one file and 42 in
    another, so a fresh install that never opened the advanced dialog ran five
    minutes fast.
  • Thresholds stored in the wrong order, which the dialog has always allowed,
    are put back in order wherever they are read, so an install that has been
    quietly skipping a mood for months stops doing it.

Internal

  • Tests live in the repo now, and run in CI: python -m unittest discover -s tests, plus node tests/ladder.test.mjs and node tests/backup.test.mjs,
    which run the real panel in a stubbed DOM. No pytest, no Home Assistant.
  • tests/preview.html opens Greg's panel against a fake Home Assistant, for
    looking at a change without an install to hand.

Greg v1.6.5

Choose a tag to compare

@github-actions github-actions released this 14 Sep 16:14

Added

  • Greg on your phone. Not a new ability, an explanation and a shortcut. He
    has always spoken through any media_player, so a phone only needs something
    on it for him to speak through. The README now covers the three ways to do
    that, browser_mod being the least invasive, along with the four steps that
    fail silently if you miss them.
  • Speak on this device. When the browser showing Greg's panel has a
    browser_mod player of its own, a button appears under the Speaker dropdown
    that switches him to it in one tap.
  • Greg says why he was silent. He checks his speaker before speaking now
    and reports it in the panel when he cannot: a speaker that has been renamed,
    one that has gone unavailable, or a browser refusing to play audio until
    somebody taps the page. All of those used to leave him reporting a line he
    never delivered.
  • speech_problem attribute on the mood sensor, carrying the same thing.
  • Conditions. Greg can now consult the same core conditions the rest of
    your automations use, rather than only his own clock. Rows of entity /
    is or is not / state in his panel, all of which have to hold or he keeps
    quiet. Requested by
    euf0ria on the forum thread.
  • Conditions sit alongside quiet hours rather than replacing them, so anyone
    who has not written any notices no change at all.
  • Each row shows the entity's current state, and warns when what you have typed
    can never match it. input_boolean.x is false never fires, because an
    input_boolean is on or off.
  • The panel says which condition is keeping him quiet, rather than leaving you
    to work out why a poke did nothing.
  • blocked and blocked_by attributes on the mood sensor. quiet_hours still
    means only the clock, so automations reading it are unaffected.
  • greg.set_options takes a conditions list, so the same thing can be
    scripted.

Changed

  • Quiet hours and conditions have their own card, "When Greg keeps quiet",
    below the mood card. They answer the same question and now live in the same
    place, with room for as many conditions as you want and its own Save. The
    settings block carries a summary and a link down to it.
  • The card says what is actually holding him, so a poke that does nothing has
    a visible reason.
  • The panel's settings are one block again. They were rendered twice, once
    in the cog popover and once in the right-hand column, and kept in step by
    hand. Now it is a single block that CSS moves: the popover below 1000px, the
    column above.
  • Settings are grouped into what he listens to, how he speaks, and when he
    keeps quiet, rather than twelve fields in a row.
  • Wide screens are two columns rather than three. Greg and his last line stack
    together; settings gets a column of its own.
  • One breakpoint fewer. Between 720 and 1000 pixels you now get the phone
    layout at a wider size instead of a two-column arrangement nobody asked for.
  • Uninstall is a card-level action rather than the last thing in a popover you
    could not reach the bottom of.
  • The lines editor looks like the rest of the panel now. It was built
    before everything else settled on a look and had kept its own: blue buttons
    where the rest of Greg is green, pill-shaped controls where the rest is
    softly rounded, and outlined rows where every other list is filled. Nothing
    moved, it just stopped looking like it came from somewhere else.

Fixed

  • The speaker dropdown offered entities that were not there. It listed
    every entity in the domain regardless of state, and several of them can share
    a name, so picking the right one was guesswork. Dead entities are gone now
    and duplicates carry their entity id. Whatever is currently saved stays in the
    list even when unavailable: dropping it would leave the select on its first
    option, so applying an unrelated setting could quietly move Greg onto a
    different speaker. (#7)
  • The settings closed on every touch below 1000px. The click-outside
    handler asked whether the click was inside the panel using contains, which
    cannot see into a shadow DOM: every click looked like it was outside, so the
    settings shut the moment you touched one. (#5)
  • The settings could not be scrolled, so on a short screen the bottom of
    them was unreachable. They now have their own scroll and stay inside it. (#5)
  • The panel leaked one document listener per teardown.
  • Greg's options no longer eat his settings. Pressing Submit in Greg's
    options replaced the whole stored options rather than merging into them, so
    it deleted any lines you had written and any conditions you had set, and
    reverted advanced settings changed since install. Present since custom lines
    shipped in 1.6.0.

Notes

  • browser_mod needs the page open and visible. Android freezes a backgrounded
    webview and Greg goes quiet with it, so it suits showing him off rather than
    being a permanent speaker.
  • The Companion app cannot do this on its own. Its TTS notifications use the
    phone's own voice, and it registers no Assist satellite, so there is nothing
    to push his real voice to.
  • An entity that is missing, unavailable or unknown does not block Greg. Rename
    something and he carries on talking, rather than going quiet for good with
    nothing to say why.
  • Twenty conditions is the cap. That is there to stop a stray automation writing
    thousands of rows into the config entry, not because anyone will reach it.

Greg v1.6.5b3

Greg v1.6.5b3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Aug 14:54

Test build of 1.6.5. Not for general use.

What it will contain when it ships:

Added

  • Greg on your phone. Not a new ability, an explanation and a shortcut. He
    has always spoken through any media_player, so a phone only needs something
    on it for him to speak through. The README now covers the three ways to do
    that, browser_mod being the least invasive, along with the four steps that
    fail silently if you miss them.
  • Speak on this device. When the browser showing Greg's panel has a
    browser_mod player of its own, a button appears under the Speaker dropdown
    that switches him to it in one tap.
  • Greg says why he was silent. He checks his speaker before speaking now
    and reports it in the panel when he cannot: a speaker that has been renamed,
    one that has gone unavailable, or a browser refusing to play audio until
    somebody taps the page. All of those used to leave him reporting a line he
    never delivered.
  • speech_problem attribute on the mood sensor, carrying the same thing.
  • Conditions. Greg can now consult the same core conditions the rest of
    your automations use, rather than only his own clock. Rows of entity /
    is or is not / state in his panel, all of which have to hold or he keeps
    quiet. Requested by
    euf0ria on the forum thread.
  • Conditions sit alongside quiet hours rather than replacing them, so anyone
    who has not written any notices no change at all.
  • Each row shows the entity's current state, and warns when what you have typed
    can never match it. input_boolean.x is false never fires, because an
    input_boolean is on or off.
  • The panel says which condition is keeping him quiet, rather than leaving you
    to work out why a poke did nothing.
  • blocked and blocked_by attributes on the mood sensor. quiet_hours still
    means only the clock, so automations reading it are unaffected.
  • greg.set_options takes a conditions list, so the same thing can be
    scripted.

Changed

  • Quiet hours and conditions have their own card, "When Greg keeps quiet",
    below the mood card. They answer the same question and now live in the same
    place, with room for as many conditions as you want and its own Save. The
    settings block carries a summary and a link down to it.
  • The card says what is actually holding him, so a poke that does nothing has
    a visible reason.
  • The panel's settings are one block again. They were rendered twice, once
    in the cog popover and once in the right-hand column, and kept in step by
    hand. Now it is a single block that CSS moves: the popover below 1000px, the
    column above.
  • Settings are grouped into what he listens to, how he speaks, and when he
    keeps quiet, rather than twelve fields in a row.
  • Wide screens are two columns rather than three. Greg and his last line stack
    together; settings gets a column of its own.
  • One breakpoint fewer. Between 720 and 1000 pixels you now get the phone
    layout at a wider size instead of a two-column arrangement nobody asked for.
  • Uninstall is a card-level action rather than the last thing in a popover you
    could not reach the bottom of.
  • The lines editor looks like the rest of the panel now. It was built
    before everything else settled on a look and had kept its own: blue buttons
    where the rest of Greg is green, pill-shaped controls where the rest is
    softly rounded, and outlined rows where every other list is filled. Nothing
    moved, it just stopped looking like it came from somewhere else.

Fixed

  • The speaker dropdown offered entities that were not there. It listed
    every entity in the domain regardless of state, and several of them can share
    a name, so picking the right one was guesswork. Dead entities are gone now
    and duplicates carry their entity id. Whatever is currently saved stays in the
    list even when unavailable: dropping it would leave the select on its first
    option, so applying an unrelated setting could quietly move Greg onto a
    different speaker. (#7)
  • The settings closed on every touch below 1000px. The click-outside
    handler asked whether the click was inside the panel using contains, which
    cannot see into a shadow DOM: every click looked like it was outside, so the
    settings shut the moment you touched one. (#5)
  • The settings could not be scrolled, so on a short screen the bottom of
    them was unreachable. They now have their own scroll and stay inside it. (#5)
  • The panel leaked one document listener per teardown.
  • Greg's options no longer eat his settings. Pressing Submit in Greg's
    options replaced the whole stored options rather than merging into them, so
    it deleted any lines you had written and any conditions you had set, and
    reverted advanced settings changed since install. Present since custom lines
    shipped in 1.6.0.

Notes

  • browser_mod needs the page open and visible. Android freezes a backgrounded
    webview and Greg goes quiet with it, so it suits showing him off rather than
    being a permanent speaker.
  • The Companion app cannot do this on its own. Its TTS notifications use the
    phone's own voice, and it registers no Assist satellite, so there is nothing
    to push his real voice to.
  • An entity that is missing, unavailable or unknown does not block Greg. Rename
    something and he carries on talking, rather than going quiet for good with
    nothing to say why.
  • Twenty conditions is the cap. That is there to stop a stray automation writing
    thousands of rows into the config entry, not because anyone will reach it.

Greg v1.6.5b2

Greg v1.6.5b2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Aug 11:49

Test build of 1.6.5. Not for general use.

What it will contain when it ships:

Added

  • Conditions. Greg can now consult the same core conditions the rest of
    your automations use, rather than only his own clock. Rows of entity /
    is or is not / state in his panel, all of which have to hold or he keeps
    quiet. Requested by
    euf0ria on the forum thread.
  • Conditions sit alongside quiet hours rather than replacing them, so anyone
    who has not written any notices no change at all.
  • Each row shows the entity's current state, and warns when what you have typed
    can never match it. input_boolean.x is false never fires, because an
    input_boolean is on or off.
  • The panel says which condition is keeping him quiet, rather than leaving you
    to work out why a poke did nothing.
  • blocked and blocked_by attributes on the mood sensor. quiet_hours still
    means only the clock, so automations reading it are unaffected.
  • greg.set_options takes a conditions list, so the same thing can be
    scripted.

Changed

  • Quiet hours and conditions have their own card, "When Greg keeps quiet",
    below the mood card. They answer the same question and now live in the same
    place, with room for as many conditions as you want and its own Save. The
    settings block carries a summary and a link down to it.
  • The card says what is actually holding him, so a poke that does nothing has
    a visible reason.
  • The panel's settings are one block again. They were rendered twice, once
    in the cog popover and once in the right-hand column, and kept in step by
    hand. Now it is a single block that CSS moves: the popover below 1000px, the
    column above.
  • Settings are grouped into what he listens to, how he speaks, and when he
    keeps quiet, rather than twelve fields in a row.
  • Wide screens are two columns rather than three. Greg and his last line stack
    together; settings gets a column of its own.
  • One breakpoint fewer. Between 720 and 1000 pixels you now get the phone
    layout at a wider size instead of a two-column arrangement nobody asked for.
  • Uninstall is a card-level action rather than the last thing in a popover you
    could not reach the bottom of.
  • The lines editor looks like the rest of the panel now. It was built
    before everything else settled on a look and had kept its own: blue buttons
    where the rest of Greg is green, pill-shaped controls where the rest is
    softly rounded, and outlined rows where every other list is filled. Nothing
    moved, it just stopped looking like it came from somewhere else.

Fixed

  • The settings closed on every touch below 1000px. The click-outside
    handler asked whether the click was inside the panel using contains, which
    cannot see into a shadow DOM: every click looked like it was outside, so the
    settings shut the moment you touched one. (#5)
  • The settings could not be scrolled, so on a short screen the bottom of
    them was unreachable. They now have their own scroll and stay inside it. (#5)
  • The panel leaked one document listener per teardown.
  • Greg's options no longer eat his settings. Pressing Submit in Greg's
    options replaced the whole stored options rather than merging into them, so
    it deleted any lines you had written and any conditions you had set, and
    reverted advanced settings changed since install. Present since custom lines
    shipped in 1.6.0.

Notes

  • An entity that is missing, unavailable or unknown does not block Greg. Rename
    something and he carries on talking, rather than going quiet for good with
    nothing to say why.
  • Twenty conditions is the cap. That is there to stop a stray automation writing
    thousands of rows into the config entry, not because anyone will reach it.

Greg v1.6.5b1

Greg v1.6.5b1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Aug 11:32

Test build of 1.6.5. Not for general use.

What it will contain when it ships:

Added

  • Conditions. Greg can now consult the same core conditions the rest of
    your automations use, rather than only his own clock. Rows of entity /
    is or is not / state in his panel, all of which have to hold or he keeps
    quiet. Requested by
    euf0ria on the forum thread.
  • Conditions sit alongside quiet hours rather than replacing them, so anyone
    who has not written any notices no change at all.
  • Each row shows the entity's current state, and warns when what you have typed
    can never match it. input_boolean.x is false never fires, because an
    input_boolean is on or off.
  • The panel says which condition is keeping him quiet, rather than leaving you
    to work out why a poke did nothing.
  • blocked and blocked_by attributes on the mood sensor. quiet_hours still
    means only the clock, so automations reading it are unaffected.
  • greg.set_options takes a conditions list, so the same thing can be
    scripted.

Changed

  • Quiet hours and conditions have their own card, "When Greg keeps quiet",
    below the mood card. They answer the same question and now live in the same
    place, with room for as many conditions as you want and its own Save. The
    settings block carries a summary and a link down to it.
  • The card says what is actually holding him, so a poke that does nothing has
    a visible reason.
  • The panel's settings are one block again. They were rendered twice, once
    in the cog popover and once in the right-hand column, and kept in step by
    hand. Now it is a single block that CSS moves: the popover below 1000px, the
    column above.
  • Settings are grouped into what he listens to, how he speaks, and when he
    keeps quiet, rather than twelve fields in a row.
  • Wide screens are two columns rather than three. Greg and his last line stack
    together; settings gets a column of its own.
  • One breakpoint fewer. Between 720 and 1000 pixels you now get the phone
    layout at a wider size instead of a two-column arrangement nobody asked for.
  • Uninstall is a card-level action rather than the last thing in a popover you
    could not reach the bottom of.

Fixed

  • The settings closed on every touch below 1000px. The click-outside
    handler asked whether the click was inside the panel using contains, which
    cannot see into a shadow DOM: every click looked like it was outside, so the
    settings shut the moment you touched one. (#5)
  • The settings could not be scrolled, so on a short screen the bottom of
    them was unreachable. They now have their own scroll and stay inside it. (#5)
  • The panel leaked one document listener per teardown.
  • Greg's options no longer eat his settings. Pressing Submit in Greg's
    options replaced the whole stored options rather than merging into them, so
    it deleted any lines you had written and any conditions you had set, and
    reverted advanced settings changed since install. Present since custom lines
    shipped in 1.6.0.

Notes

  • An entity that is missing, unavailable or unknown does not block Greg. Rename
    something and he carries on talking, rather than going quiet for good with
    nothing to say why.
  • Twenty conditions is the cap. That is there to stop a stray automation writing
    thousands of rows into the config entry, not because anyone will reach it.

Greg v1.6.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 21:29

Added

  • Write your own lines, in his panel. A Lines you wrote section under the
    card, one tab per category. Type a line, press Add, press Save, and Greg says
    it. No pull request, no waiting for anyone to approve it. Your table, your
    jokes.
  • Lines belong to the language you wrote them in, so a Dutch one only comes up
    while Greg is speaking Dutch.
  • Use only my lines, for anyone who wants a different table rather than a
    slightly expanded one. It never empties a pool: switch it on with nothing
    written for a category and that category keeps its fifty built-in lines.
  • Share the good ones. A button that opens a GitHub issue with your lines
    already in it, sorted by category and tagged with the language, and a field
    for how you would like crediting. Read it, press submit, done. No account
    needed beyond the GitHub one, and nothing is sent anywhere until you press it.
  • A bot sorts each submission into a checklist and marks anything already in
    the pools, so accepted lines can be picked in about a minute and turn up in a
    later release with credit.
  • greg.set_lines service behind the editor, so the same thing can be scripted.

Notes

  • Lines live in the config entry, so they survive updates and reinstalls of the
    integration, and are removed with it.
  • Two hundred lines per category is the cap, and three hundred characters per
    line. Both are far beyond anything that reads well out loud.
  • Prefilled GitHub links have a size limit of their own, so a very large batch
    is copied to the clipboard with instructions instead of being silently cut in
    half.
  • Reload the page after updating. Greg's panel script is versioned so a new
    release is never served from cache, but the panel registers its address once
    when Home Assistant starts, and the frontend holds that address until the page
    itself is reloaded. So the editor will not appear until you refresh, and a
    hard refresh if your browser is being stubborn. This has always been true of
    panel changes; it is simply more obvious when the change is a whole new
    section rather than a tweak.