Skip to content

Releases: Nenco79/PAT-Monitor

v1.5.0

Choose a tag to compare

@Nenco79 Nenco79 released this 02 Oct 09:43
Immutable release. Only release title and notes can be modified.

Notifications with the page closed, and a new panel behind More.

The warnings the page shows can now reach a phone or a computer with the page
closed, as system notifications:

  • Notifications are off until you turn them on, one device at a time, from
    More → Notifications on this device → Receive. Send a test checks
    that they arrive.
  • They arrive only where the browser can receive them: when the monitor is
    opened from its https://…ts.net address, the one that can also be reached
    from outside the home, and on an iPhone or iPad (iOS 16.4 or later) only from
    its icon on the Home Screen. Elsewhere the card says why.
  • Each device has settings of its own that decide whether a notification
    arrives while it sleeps.
    The procedure for Windows, Android and iPhone
    lists them, in every language of the interface.
  • They are the page's own warnings: crying, barking and motion, and the
    faults. When a fault clears, a notification says so and asks the device not
    to sound. Notifications can arrive late or not at all.
  • The message goes through the push service the browser uses (Apple, Google,
    Mozilla or Microsoft), encrypted for that device. The
    privacy policy says
    what is kept and what that service receives.

Changes you may notice:

  • The Details button is now More. Its panel opens with three cards (the
    recordings, the notifications, and the address with its QR code when access
    from outside works), then the camera and the microphone, and the readings
    behind a closed Diagnostics row.
  • The password pages give password managers a user name, PAT Monitor: on an
    iPhone the keychain asked for one every time the password was saved.
  • The messages that say a fault has cleared now say what holds ("The
    microphone is working now") rather than "again", which was not true when the
    fault had been there since the monitor started.
  • The safety notice in the pages and in the README now names the devices with
    notifications turned on.

To update, close the monitor and unpack the zip over the old folder. The zip comes
with a detached signature made with the same key as the previous releases.

v1.4.0

Choose a tag to compare

@Nenco79 Nenco79 released this 30 Sep 04:32
Immutable release. Only release title and notes can be modified.

A new recordings page, and a round of fixes.

The recordings page has been redrawn. Every row used to carry three labelled
buttons; now the list is what you read and the commands are where you use them:

  • Clips are grouped by day, each with what was recognised, its time and its
    length. A filter per kind (barking, motion, crying, manual) shows how many
    there are.
  • A star keeps a clip, so the monitor's cleanup never removes it.
  • Download and Delete are under the player, for the clip that is open.
  • Deleting can be undone: the clip leaves the list, and for six seconds a
    notice offers to put it back.
  • Select picks several clips at once, to download, keep or delete them
    together. Several clips download as one ZIP, up to 200 at a time.

Changes you may notice:

  • Changing the password now ends every other session, including one that was
    signing in at that moment.
  • A phone on the home network that connects over IPv6 no longer loses its
    session.
  • Access from outside is tried again on its own after it fails, instead of
    staying off until the monitor is restarted.
  • The icon next to the clock comes back on its own after Windows Explorer
    restarts. Closing the monitor from another program (taskkill without /F)
    now quits it; before, the icon went away and the camera stayed on.
  • In a clip, sound and picture stay in step: on some AMD machines the picture
    drifted behind the sound, and a camera that stalls or stops mid-clip no longer
    pulls them apart. Each piece is dated by when it was captured. One clip can no longer
    replace another.
  • The next person to open the monitor no longer starts at a very low quality
    because of how the previous viewer's connection went.
  • An update the monitor has found is no longer forgotten when a pre-release
    appears on GitHub.

To update, close the monitor and unpack the zip over the old folder. The zip comes
with a detached signature made with the same key as the previous releases.

v1.3.0

Choose a tag to compare

@Nenco79 Nenco79 released this 27 Sep 17:57
Immutable release. Only release title and notes can be modified.

Portuguese and Japanese, and a floor under the recordings.

The interface now speaks Portuguese, in two catalogues, and Japanese, alongside
English, Italian, German, French, Spanish and Simplified Chinese. As with the
others, they are written as decisions rather than translated:

  • Brazilian Portuguese says você, as Microsoft's Brazilian interface does.
  • European Portuguese has its own words (telemóvel, ecrã, palavra-passe,
    Definições) and its own voice: no você and no tu, as in Portuguese Windows.
    A browser asking for pt-PT gets it; any other Portuguese gets the Brazilian
    catalogue.
  • Japanese uses です/ます in sentences and half-width ? ! :, the other way
    round from Chinese, as Japanese Windows does.

The language selector now lists the names in the Latin alphabet first, in
alphabetical order, then the others. The six existing catalogues were reread
against each other, and about a hundred and forty entries changed: meanings that
had drifted, one word used for two different things, and phrases that followed
English or Italian instead of the language.

Changes you may notice:

  • No clip is saved while the disk has less than 1 GB free, kept or not. The
    page, the log and the icon next to the clock say so, and the Clip button
    explains why it refuses.
  • The QR code in the viewer's details now shows on a phone signed in from
    outside the house.
    Before, that phone got an empty box.
  • The password is accepted on the home network and over Tailscale only when the
    page is opened by this PC's address or one of its own names.
  • The log writes every email address as <email>, including with -v.

To update, close the monitor and unpack the zip over the old folder. The zip comes
with a detached signature made with the same key as the previous releases.

v1.2.1

Choose a tag to compare

@Nenco79 Nenco79 released this 26 Sep 21:33

Fixes from a security review, and one step not to undo.

After updating, do not go back to 1.2.0. The first time access from outside
starts, 1.2.1 moves Tailscale's data for this PC from %APPDATA%\PAT Monitor\tsnet
to %LOCALAPPDATA%\PAT Monitor\tsnet. Version 1.2.0 would not find it there and
would register this PC as a new device, with a different public address. If you
have to go back, copy the tsnet folder back first.

Changes you may notice:

  • A session signed in on the home network is not accepted through the public
    address.
    Sign in again when you open the monitor from outside the house. A
    session signed in over Tailscale works on both.
  • Talk-back: after two minutes of talking, counting pauses shorter than 30
    seconds, nobody can talk for 30 seconds, so that the room can be heard.
  • At most ten viewers at once. The eleventh page says so instead of reporting
    a failed connection.
  • Opening the setup or sign-in page on this PC by the computer's name now
    redirects to its address.
  • -set-password refuses to run while the monitor is running.

What the monitor now refuses or ignores:

  • commands and password submissions that come from pages other than its own;
  • a link placed in the recordings folder under a clip's name;
  • a link from Tailscale or from the update check that is not a Tailscale page or
    a release page of this project;
  • DLLs in the program's own folder: it loads them from Windows' system folder
    only.

Sign-in attempts from one address are checked one at a time, and attempts through
the public address no longer queue ahead of a sign-in at home.

The log writes the public address with the name of your Tailscale network replaced
by <tailnet>, unless the program is started with -v, and a burst of refused
requests is written as one line instead of one line each. Look over a -v log
before attaching it anywhere.

The privacy policy says where
Tailscale's data is kept now.

To update, close the monitor and unpack the zip over the old folder. The zip comes
with a detached signature made with the same key as the previous releases.

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 19:36

Chinese, a change to the first-time setup, and a monitor that tells you why.

The interface now speaks Simplified Chinese as well as English, Italian, German,
French and Spanish. As with the others, it is written as decisions rather than
translated: the voice is 你, as in Windows 11's own Chinese interface, and the
punctuation is full width. A browser asking for Traditional Chinese gets the
Simplified catalogue.

A change in behaviour: the first-time setup is accepted only from this PC.
Until now, while no password existed (at the first start and after a password
reset), any device on the home network could set one. Now only the PC running
the monitor can. After that, signing in works from any device as before.

What the monitor now says instead of guessing:

  • A camera or microphone refused in Windows privacy settings is reported as
    refused, not as a stopped capture. The notification-area panel then offers the
    button that opens the right Settings page.
  • While Windows is still asking for permission, the monitor waits for the
    answer instead of reporting a missing microphone.
  • A microphone muted in Windows is reported as muted, not as silent.
  • A missing camera is written to the log once, not three lines every thirty
    seconds for as long as it stays missing.

And a few things it now does on its own:

  • The PC stays awake while the monitor runs. Before, the sleep timer could
    switch off a monitor at two in the morning with nothing reported. The screen
    can still turn off. powercfg /requests shows who is keeping the PC awake,
    and why.
  • Shutting down or logging off closes the monitor cleanly: the clip being
    written is finished and the log records that it was a shutdown, not a crash.
  • The recordings folder is tested at start-up by writing a file in it, so a
    folder the monitor cannot write to shows up then, not at the first clip.

The notification-area panel uses the Windows typeface and wraps long lines instead
of cutting them. A notice's button now sits under its own line, and the selection
starts at the top.

What PAT Monitor is not is now stated on the sign-in page, at the end of the
guided setup and at the foot of the details, in all six languages: it is not a
medical device or a safety system, it can miss a sound or a movement, and it calls
no one.

Also in this release: Tailscale v1.102.4 and current versions of the WebRTC
libraries, and a privacy policy
that describes what the program does with information.

To update, close the monitor and unpack the zip over the old folder. The zip comes
with a detached signature made with the same key as the previous releases.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 14:20

Three languages, and a bar that starts a row later.

The interface now speaks German, French and Spanish as well as English and
Italian, each written as decisions rather than as a translation: the voice is the
same in all of them (tu, du, tú), nothing in them presumes the reader's
gender — the trap French and Spanish share — and each language's own typography is
respected, from the French non-breaking space before : ; ? ! to the Spanish
opening ¿.

The Italian sentences where the program spoke in the first person now state what
happens instead, in the pages and in the tray.

One thing shows on a wide screen: the bar of commands becomes a single row at
1020 px instead of 980. The German labels moved that number most of the way
and the Spanish ones by the last ten pixels, and it is measured rather than
chosen.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 20:30

A pet and baby monitor in one executable: the webcam and the microphone of a
Windows machine, in a browser, at home or from outside the house without opening
a port on the router. Nothing to install beside it, no service, no account
except a free Tailscale one if you want to watch from outside.

What you need

  • Windows 10 or 11, x64, with a webcam and a microphone. Either one can fail
    without stopping the other.
  • An H.264 encoder, which every supported Windows has: the machine's hardware
    one where there is one, the Microsoft software encoder otherwise.

Starting it

  1. Unpack the zip anywhere and run pat-monitor.exe. The binary is unsigned, so
    SmartScreen shows a warning: More info, then Run anyway.
  2. The guided setup opens at http://localhost:8080/onboarding. It asks for a
    password, shows the camera and the microphone level so you can check them,
    and then offers access from outside.
  3. The last screen gives the address for a phone, and a QR code for it.

It then lives in the notification area: left-click opens the monitor,
right-click opens a panel with the state, the QR code and the commands — quitting
among them, which is what releases the camera.

Start it from the console of that machine, not from a Remote Desktop session.
Windows audio endpoints are per session: inside RDP the microphone does not
exist while the camera works, so it reads as a microphone fault, and
disconnecting does not cure it.

Checking the download

The archive is signed with a key that has never been on GitHub. TLS proves the
bytes arrive unaltered; the signature is what says they are ours. From a clone
of this repository:

go run ./cmd/pat-sign -verify PAT-Monitor-1.0.0-windows-amd64.zip

Nothing in the program reads that signature yet — it ships now so that a later
version, one that can fetch an update by itself, has a key the installed binary
already carries.

What is in the zip

pat-monitor.exe, LICENSE, NOTICE and licenses/, one directory per
dependency. Apache-2.0, and the third-party notices travel with the binary
because their licences require it.