Skip to content

Releases

v1.30.2 — no Install popup while Home Assistant updates; keep-alive example

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 04 Nov 16:33
324388e

English

Two fixes for a PiPup screen that took over while someone was watching (PiPup #76, reported by @Ltek).

  • Fixed: the app's own "PiPup x.y available" popup no longer appears while automatic updates are on (app ≥ 0.30.1). Its Install button takes the remote's focus, so an OK meant for Plex or Prime Video started an install, and on Android < 12 the install confirmation then took over the screen. Every request now tells the app whether Home Assistant installs its updates (X-HA-PiPup-Auto-Update: on|off). It says on only when the nightly update can actually install on that TV: switched on, and ADB or a silent app self-update. The nightly run uses the same test. On the TV, /state.update.haManaged shows it.
  • Docs: the TCL keep-alive example only runs on the home screen. The restart opens PiPup and then presses Home. The old example skipped only a TV that was playing, but the Android TV integration decides that per app, so a film in an app it does not recognise could be cut off. The condition is now the app_id of the launcher, which also stops the automation from switching a TV in standby on. If you copied the example, update your automation. The section now starts with the app's accessibility service, which usually makes the automation unnecessary.

Nederlands

Twee fixes voor een PiPup-scherm dat het beeld overnam terwijl er gekeken werd (PiPup #76, gemeld door @Ltek).

  • Opgelost: de eigen popup "PiPup x.y beschikbaar" van de app verschijnt niet meer zolang automatische updates aan staan (app ≥ 0.30.1). De Install-knop pakt de focus van de afstandsbediening, dus een OK voor Plex of Prime Video startte een installatie, en op Android < 12 nam het bevestigingsscherm daarna het beeld over. Elk verzoek vertelt de app nu of Home Assistant de updates installeert (X-HA-PiPup-Auto-Update: on|off). Het is alleen on als de nachtelijke update op die tv ook echt kan installeren: aangezet, en ADB of een stille update door de app zelf. De nachtelijke run gebruikt dezelfde toets. Op de tv laat /state.update.haManaged het zien.
  • Docs: het TCL-keep-alive-voorbeeld draait alleen nog op het startscherm. De herstart opent PiPup en drukt daarna op Home. Het oude voorbeeld sloeg alleen een tv over die playing was, maar de Android TV-integratie bepaalt dat per app, dus een film in een app die hij niet herkent kon worden afgebroken. De voorwaarde is nu de app_id van de launcher, waardoor de automation ook geen tv in standby meer aanzet. Heb je het voorbeeld overgenomen, pas je automation dan aan. De sectie begint nu met de accessibility-service van de app, die de automation meestal overbodig maakt.

Full changelog: CHANGELOG.md

v1.30.1 — ADB install on slower TVs

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 25 Oct 21:32
ac4e3a9

English

  • Fixed: the ADB install broke off after 10 seconds on TVs where pm install takes longer (a TCL Smart TV on Android 11: 12.7 s). The 2-minute wait passed since 1.29.0 was silently cut to 10 s by the ADB library (it caps the wait for the next bytes at its read timeout). Home Assistant then reported "the ADB connection dropped" while the TV finished the install on its own, and the overlay/install permissions were not granted again. Both timeouts are now 2 minutes, and a TV that closes the connection is reported at once instead of keeping Home Assistant busy until the timeout. Fire TVs (≈5 s) were not affected.

Nederlands

  • Opgelost: de ADB-install brak na 10 seconden af op tv's waar pm install langer duurt (een TCL Smart TV op Android 11: 12,7 s). De wachttijd van 2 minuten sinds 1.29.0 werd door de ADB-library stilletjes afgekapt tot 10 s (die begrenst de wachttijd op de volgende bytes tot zijn read-timeout). Home Assistant meldde dan "the ADB connection dropped" terwijl de tv de installatie zelf afmaakte, en de overlay- en installrechten werden niet opnieuw gezet. Beide timeouts zijn nu 2 minuten, en een tv die de verbinding sluit wordt meteen gemeld in plaats van Home Assistant tot de timeout bezig te houden. Fire TV's (≈5 s) hadden er geen last van.

Full changelog: CHANGELOG.md

v1.30.0 — automatic updates

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 25 Oct 21:05
d477be4

English

  • Automatic updates in Advanced install (gear icon), off by default (#49). A new PiPup app release is installed by itself inside a quiet window (default 03:00–05:00 local time; it may cross midnight):
    • one TV at a time, once a night, only when the TV is reachable and no popup is on screen;
    • on a TV that is on, the app is never opened: the install only restarts PiPup, and if the app does not come back by itself it starts the next time the TV is switched on;
    • the app's own update where it is silent (Android 12+), the built-in ADB install from 1.29.0 below that; the options refuse automatic updates on a TV where the app's own update would wait for the remote;
    • a skipped version is left alone.
  • A success only writes a logbook entry (PiPup app updated 0.29.2 → 0.30.0 (ADB)). A failure retries the next night; a repair appears after three failed nights, or at once when something on the TV needs fixing, and disappears after the next successful update (also one done by hand).
  • New attributes on the update entity: auto_update, last_auto_update, auto_update_failures, restored after a restart (a restart inside the window does not cause a second attempt that night).

Nederlands

  • Automatische updates in Geavanceerd installeren (tandwieltje), standaard uit (#49). Een nieuwe release van de PiPup-app wordt vanzelf geïnstalleerd binnen een rustig venster (standaard 03:00–05:00 lokale tijd; mag over middernacht lopen):
    • één tv tegelijk, één keer per nacht, alleen als de tv bereikbaar is en er geen popup in beeld staat;
    • op een tv die aan staat wordt de app nooit geopend: de installatie herstart alleen PiPup, en komt de app niet vanzelf terug, dan start hij de volgende keer dat de tv aangaat;
    • de eigen update van de app waar die stil is (Android 12+), daaronder de ingebouwde ADB-install uit 1.29.0; de opties weigeren automatische updates op een tv waar de eigen update van de app op de afstandsbediening zou wachten;
    • een overgeslagen versie blijft staan.
  • Een geslaagde update komt alleen in het logboek (PiPup app updated 0.29.2 → 0.30.0 (ADB)). Een mislukte wordt de volgende nacht opnieuw geprobeerd; na drie mislukte nachten, of meteen als er op de tv iets opgelost moet worden, verschijnt een repair. Die verdwijnt na de volgende geslaagde update (ook een handmatige).
  • Nieuwe attributen op de update-entiteit: auto_update, last_auto_update, auto_update_failures, die een herstart overleven (een herstart binnen het venster geeft geen tweede poging die nacht).

Full changelog: CHANGELOG.md

v1.29.0 — Advanced install: built-in ADB install

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 25 Oct 20:34
d9a4c43

English

  • Advanced install in the integration's options (gear icon), a collapsed section per TV: install method (App self-update, the default and the old behaviour; Auto: app on Android 12+, ADB below; ADB), ADB port and ADB key (PiPup's own pipup_adbkey, or the Android TV integration's key). Choosing Auto or ADB tests the connection when you save, and walks you through Allow debugging from this computer? on the TV.
  • Install over ADB: on Android < 12 the update entity's Install no longer needs a press on the remote (PiPup #76, #49). The same steps as install.sh, in pure Python, so it works on Home Assistant OS: the APK is checked against the release's sha256, installed with pm install -r, and the overlay/install permissions (plus auto_start on TCL and the accessibility service if it was on) are granted again. It never uninstalls the app. New attribute install_method on the update entity; requires_remote is false with ADB.
  • Needs network debugging (ADB) on the TV. Opt-in, off by default: nothing changes until you pick Auto or ADB.
  • Automatic nightly updates follow in a later version (#49).

Nederlands

  • Geavanceerd installeren in de opties van de integratie (tandwieltje), een inklapbare sectie per tv: installatiemethode (Self-update van de app, de standaard en het oude gedrag; Automatisch: app op Android 12+, ADB daaronder; ADB), ADB-poort en ADB-sleutel (de eigen pipup_adbkey van PiPup, of de sleutel van de Android TV-integratie). Kies je Automatisch of ADB, dan wordt de verbinding bij opslaan getest en word je door Foutopsporing toestaan vanaf deze computer? op de tv geleid.
  • Installeren via ADB: op Android < 12 hoeft er bij Installeren op de update-entiteit niet meer op de afstandsbediening gedrukt te worden (PiPup #76, #49). Dezelfde stappen als install.sh, in puur Python, dus het werkt ook op Home Assistant OS: het APK wordt gecontroleerd tegen de sha256 van de release, geïnstalleerd met pm install -r, en de overlay- en installrechten (plus auto_start op TCL en de toegankelijkheidsdienst als die aan stond) worden opnieuw gezet. De app wordt nooit verwijderd. Nieuw attribuut install_method op de update-entiteit; requires_remote is false bij ADB.
  • Vereist netwerkfoutopsporing (ADB) op de tv. Opt-in, standaard uit: er verandert niets tot je Automatisch of ADB kiest.
  • Automatische nachtelijke updates volgen in een latere versie (#49).

Full changelog: CHANGELOG.md

v1.28.1 — fullscreen (app ≥ 0.29.1)

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 24 Oct 07:44
2d68b36

English

  • fullscreen in pipup.show (app ≥ 0.29.1): the popup window covers the whole screen, status and navigation bars included, with the popup centred (PiPup #73). grid_fullscreen sets it too, so a camera wall is no longer clipped on a device with system bars. An older app ignores the field.

Nederlands

  • fullscreen in pipup.show (app ≥ 0.29.1): het popupvenster bedekt het hele scherm, inclusief status- en navigatiebalk, met de popup gecentreerd (PiPup #73). grid_fullscreen zet het ook, dus een cameramuur wordt op een apparaat met systeembalken niet meer afgeknipt. Een oudere app negeert het veld.

Full changelog: CHANGELOG.md

v1.28.0 — TV control, camera wall, blueprints (app ≥ 0.29.0)

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 23 Oct 19:35
e249d21

English

TV control, a camera wall and two blueprints. Needs PiPup app 0.29.0 on the TV for the new features; everything else works as before with older apps.

  • Media player per TV: the installed TV apps as sources (pick one to start it), play/pause/stop/next/previous, volume up/down/mute, a volume slider where the box owns its volume, and on/off through the screen routes. It only appears for TVs on app 0.29.0 or newer.
  • pipup.launch_app (package and/or deep link) and pipup.send_key (media keys, home, back). A TV on an older app gets an error naming the version it needs; the other TVs still get the call.
  • Camera wall: grid in pipup.show takes up to nine WHEP URLs (or whep_url + label + poster_url), with grid_columns, grid_fullscreen and grid_labels.
  • Blueprints (import buttons in the README):
    • Info card on the TV (script): set the look once, call it with only the text, e.g. the weather or today's calendar.
    • Appliance done (automation): a card when the washing machine, dryer or dishwasher has finished, from its power meter. A helper remembers "running" across a restart, and a 5-minute check catches a finish whose quiet period was interrupted.
  • English and Dutch labels for everything new.

Nederlands

Tv-bediening, een cameramuur en twee blueprints. Voor de nieuwe functies is PiPup-app 0.29.0 op de tv nodig; de rest werkt met oudere apps zoals voorheen.

  • Mediaspeler per tv: de geïnstalleerde tv-apps als bronnen (kies er een om hem te starten), afspelen/pauzeren/stoppen/volgende/vorige, volume omhoog/omlaag/dempen, een volumeschuif waar de box zijn eigen volume heeft, en aan/uit via de schermroutes. Verschijnt alleen voor tv's met app 0.29.0 of nieuwer.
  • pipup.launch_app (pakket en/of deeplink) en pipup.send_key (mediatoetsen, home, terug). Een tv met een oudere app krijgt een foutmelding met de benodigde versie; de andere tv's krijgen de opdracht wel.
  • Cameramuur: grid in pipup.show neemt tot negen WHEP-URL's (of whep_url + label + poster_url), met grid_columns, grid_fullscreen en grid_labels.
  • Blueprints (importknoppen in de README):
    • Infokaart op de tv (script): stel de look één keer in en roep hem aan met alleen de tekst, bijv. het weer of de agenda van vandaag.
    • Apparaat klaar (automation): een kaart als de wasmachine, droger of vaatwasser klaar is, op basis van de vermogensmeter. Een helper onthoudt "draait" over een herstart heen, en een controle elke 5 minuten vangt een einde op waarvan de stille periode werd onderbroken.
  • Engelse en Nederlandse labels voor alles wat nieuw is.

Full changelog: CHANGELOG.md

v1.27.0 — camera popup look, button style, video height (app ≥ 0.28.0)

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 14 Oct 20:49
911d0e3

English

Camera popup look, button style and a video height for pipup.show. Companion: PiPup app v0.28.0. Every field is sent only when set, and an older app ignores it.

  • live_badge (+ live_badge_color, live_badge_position), media_full_bleed and buttons_inline (#44).
  • button_color, button_focus_color, button_text_color, button_border_color, button_corner_radius (#43).
  • media_height now also applies to video popups (camera_entity stream/mjpeg and video_url) (#42). Only a per-call value is sent; the per-TV default would otherwise change every existing video popup.
action: pipup.show
data:
  device_id: <tv>
  popup_id: doorbell
  title: Front door
  message: Motion
  camera_entity: camera.doorbell
  corner_radius: 24
  media_full_bleed: true
  live_badge: true
  buttons_inline: true
  buttons: [{ id: close, label: "✕" }]

Thanks

@pelkiegr for all three PRs, each with tests and English and Dutch labels (#42, #43, #44).

Nederlands

Camerapopup-look, knopstijl en een videohoogte voor pipup.show. Hoort bij PiPup-app v0.28.0. Elk veld wordt alleen meegestuurd als het gezet is, en een oudere app negeert het.

  • live_badge (+ live_badge_color, live_badge_position), media_full_bleed en buttons_inline (#44).
  • button_color, button_focus_color, button_text_color, button_border_color, button_corner_radius (#43).
  • media_height geldt nu ook voor videopopups (camera_entity stream/mjpeg en video_url) (#42). Alleen een waarde per oproep wordt meegestuurd; de standaardwaarde per tv zou anders elke bestaande videopopup veranderen.

Bedankt

@pelkiegr voor alle drie de PR's, elk met tests en Engelse en Nederlandse labels (#42, #43, #44).

Full changelog: CHANGELOG.md

v1.26.0 — popup stacking (app ≥ 0.27.0)

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 14 Oct 16:42
8de2d85

English

Popup stacking from Home Assistant. Companion: PiPup app v0.27.0.

  • stack: vertical | horizontal | none in pipup.show (app ≥ 0.27.0). The popup lines up with the other stacking popups at the same position instead of overlapping them, so two camera popups on the right edge sit one above the other. The rest moves up when one closes. Not for center.
  • Per-TV default under Configure → Default stacking. stack: none overrides it for one call.
  • No version gate. An older app ignores the field and the popups overlap as before.
  • English and Dutch labels.
action: pipup.show
data:
  device_id: <tv>
  popup_id: doorbell
  position: top_right
  stack: vertical
  title: Doorbell

Thanks

@bboykaos for the idea and the use case (PiPup #64).

Nederlands

Popups stapelen vanuit Home Assistant. Hoort bij PiPup-app v0.27.0.

  • stack: vertical | horizontal | none in pipup.show (app ≥ 0.27.0). De popup sluit aan bij de andere stapelende popups op dezelfde positie in plaats van eroverheen, dus twee camerapopups aan de rechterrand staan onder elkaar. Sluit er één, dan schuift de rest op. Niet voor center.
  • Standaardwaarde per tv onder Configureren → Standaard stapelen. stack: none overschrijft die voor één oproep.
  • Geen versiecontrole. Een oudere app negeert het veld en de popups overlappen zoals voorheen.
  • Engelse en Nederlandse labels.

Bedankt

@bboykaos voor het idee en de use case (PiPup #64).

Full changelog: CHANGELOG.md

v1.25.0 — center left / center right (app ≥ 0.26.0)

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 11 Oct 09:34
ab42c8a

English

Two new positions, nothing else. Companion: PiPup app v0.26.0.

  • position: center_left and center_right (app ≥ 0.26.0) — the 3×3 grid is complete (PiPup #62). Available in pipup.show, in the device's default-position option and on the overlay entities, with English and Dutch labels.
  • Gated like top_center/bottom_center: on a TV whose app is older than 0.26.0 the action reports an error for that TV instead of sending an ordinal its JSON parser would reject (which used to fail the whole popup silently).
  • Tests pin the ordinal table against the app enum and the 0.26.0 gate.

Nederlands

Twee nieuwe posities, verder niets. Hoort bij PiPup-app v0.26.0.

  • position: center_left en center_right (app ≥ 0.26.0) — het 3×3-raster is compleet (PiPup #62). Beschikbaar in pipup.show, in de standaardpositie-optie van het apparaat en op de overlay-entiteiten, met Engelse en Nederlandse labels.
  • Afgeschermd zoals top_center/bottom_center: op een tv met een app ouder dan 0.26.0 meldt de actie een fout voor die tv in plaats van een ordinaal te sturen die de JSON-parser afwijst (wat voorheen de hele popup stil liet mislukken).
  • Tests leggen de ordinaaltabel tegen de app-enum vast, plus de 0.26.0-grens.

v1.24.1 — audit fixes

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 08 Oct 07:28
3192c4b

English

Audit round (security + robustness), no new features. Companion: PiPup app v0.25.1.

  • Button callbacks are bound to their token. The pipup_button event is built from what HA showed (popup id, issued buttons, TV), not from the callback body; a button id HA did not issue is rejected. Matters when a button opens a door.
  • Diagnostics no longer contain the push webhook id.
  • Removing an overlay (or the whole PiPup device) takes its popup off the TV and clears the TV's webhook and the overlay store.
  • pipup.show / pipup.dismiss run per TV in parallel; one sleeping TV no longer holds up the others. For apps with push (≥ 0.24.0) the extra /state read after the call is skipped.
  • Update entity no longer spins "installing" for 15 min after a successful install when GitHub was unreachable; release lookups are serialised and failures cached for 15 min.
  • Version gates accept 0.25.0-rc1-style builds as 0.25.0; an unparseable app version no longer breaks the hourly update check.
  • Overlay listener no longer hits a KeyError between removing an overlay and the reload; the "cannot set webhook" warning is logged once instead of every minute.

Nederlands

Auditronde (security + robuustheid), geen nieuwe functies. Hoort bij PiPup-app v0.25.1.

  • Knop-callbacks zijn gebonden aan hun token. Het pipup_button-event wordt opgebouwd uit wat HA toonde (popup-id, uitgegeven knoppen, tv), niet uit de callback-body; een knop-id dat HA niet uitgaf wordt geweigerd. Van belang als een knop een deur opent.
  • Diagnostics bevatten de push-webhook-id niet meer.
  • Een overlay (of het hele PiPup-apparaat) verwijderen haalt de popup van de tv en wist de webhook op de tv en de overlay-opslag.
  • pipup.show / pipup.dismiss draaien per tv parallel; één slapende tv houdt de rest niet meer op. Bij apps met push (≥ 0.24.0) vervalt de extra /state-read na de aanroep.
  • Update-entiteit blijft niet meer 15 min op "bezig met installeren" hangen na een geslaagde installatie als GitHub onbereikbaar was; release-opvragingen lopen na elkaar en mislukkingen worden 15 min gecachet.
  • Versiecontroles accepteren builds als 0.25.0-rc1 als 0.25.0; een onleesbare app-versie breekt de uurlijkse updatecheck niet meer.
  • Overlay-listener loopt niet meer op een KeyError tussen het verwijderen van een overlay en de herlaad; de "cannot set webhook"-waarschuwing komt één keer in plaats van elke minuut.