• En ringklocka utan sladdar – när webben ringer på dörren

    En QR-kod på dörren, en webbsida som “ringer”, och en konsol inomhus som plingar till via en egen ntfy-server – kan det verkligen fungera som ringklocka? I praktiken visade det sig vara oväntat stabilt och snabbt, även om det knappast ersätter en klassisk installation permanent. Här publicerar vi den testade koden och visar vilka få inställningar du behöver ändra för att komma igång.

    Tänk dig en ringklocka som inte sitter i väggen, inte kräver någon särskild hårdvara och inte ens behöver vara i samma byggnad som du själv. I stället består den av en QR-kod, en webbsida och en notifieringstjänst. Det låter som ett experiment – och det är det också – men ett förvånansvärt fungerande sådant.

    I en tidigare artikel beskrev vi hur man kan bygga en mjukvarubaserad ringklocka med hjälp av QR-kod, egen domän och en självhostad ntfy-server. Nu har lösningen testats i praktiken, och dessutom publiceras den kod som faktiskt användes. Den skiljer sig något från den som visades i det första inlägget.

    Resultatet? Inte något man installerar som permanent ersättning för en vanlig ringklocka, men absolut ett intressant och lärorikt bygge.

    Två delar som tillsammans bildar ett “pling”

    Systemet är uppdelat i två tydliga delar som samverkar via webben.

    Den första delen är webbsidan som QR-koden pekar på. QR-koden sitter exempelvis på dörren eller porten. När någon skannar den öppnas en enkel webbsida där besökaren kan ”ringa på”. Ett klick räcker för att ett meddelande ska skickas vidare.

    Den andra delen är konsolen på insidan. Det kan vara en dator, surfplatta eller mobil som har en webbsida öppen i webbläsaren. Den sidan lyssnar på notifieringar från ntfy-servern. När någon ringer på hörs ett ljud och ett meddelande visas direkt på skärmen.

    All kommunikation sker i realtid, helt via webbläsaren.

    Hur fungerade det i praktiken?

    Överraskande bra.

    Notiserna dök upp snabbt, ljudsignalen fungerade stabilt och hela lösningen kändes oväntat robust så länge nätverket var tillförlitligt. Samtidigt märks det tydligt att detta inte är tänkt som en långsiktig hushållsprodukt. Det är mer ett tekniskt experiment än en färdig konsumentlösning.

    Men som koncept och demonstration är det mycket lyckat.

    Den testade koden och nödvändiga ändringar

    När du laddar ner och packar upp arkivet med koden hittar du två mappar, en för webbsidan bakom QR-koden och en för konsolen.

    I filen index.html för webbdelen behöver du ändra adressen till din egen ntfy-server:

    const NTFY_URL = ”https://ntfy.exempel.se/ringklocka-Ringer”;

    Sätt adressen till den domän där din ntfy-server faktiskt finns.

    I konsolens index.html gör du motsvarande ändring:

    const NTFY_BASE = ”https://ntfy.exempel.se”;

    Även här ska adressen peka på din egen ntfy-domän.

    Vad krävs för att lösningen ska fungera?

    För att systemet ska fungera pålitligt behöver du några grundläggande förutsättningar. Du bör ha en egen domän, både för stabilitet och för att kunna använda HTTPS. Du behöver också tillgång till en ntfy-server, helst självhostad. Slutligen krävs en enhet som är igång och har konsolsidan öppen i webbläsaren.

    I övrigt behövs inga appar, inga användarkonton och ingen specialutrustning.

    Installera ntfy

    För att installera en ntfy-server på Ubuntu är det en fördel att ta det steg för steg. Börja med att se till att systemet är uppdaterat och att du har grundläggande verktyg som curl och gpg installerade. Därefter lägger du till ntfy-projektets officiella paketkälla. Det görs genom att hämta GPG-nyckeln och registrera arkivet i systemets APT-konfiguration. När paketkällan är på plats uppdaterar du paketlistan och installerar ntfy med systemets vanliga pakethanterare.

    När programmet är installerat skapar du en konfigurationsfil, vanligtvis /etc/ntfy/server.yml. Där anger du grundläggande inställningar, till exempel vilken extern adress servern ska använda, som https://ntfy.dindomän.se, samt vilken lokal port tjänsten ska lyssna på. Konfigurationsfilen behöver inte vara avancerad till att börja med, utan kan hållas mycket enkel.

    Nästa steg är att köra ntfy som en systemtjänst. Genom att aktivera tjänsten med systemd ser du till att den startar automatiskt vid omstart av servern. När tjänsten väl är igång kan du kontrollera att den fungerar genom att skicka ett testmeddelande till ett valfritt ämne.

    För praktisk och säker användning placeras ntfy normalt bakom en webbserver som Apache. Webbservern fungerar då som en omvänd proxy och vidarebefordrar HTTPS-trafik till ntfy-tjänsten som kör lokalt. Slutligen säkrar du uppkopplingen med ett TLS-certifikat, till exempel via Let’s Encrypt och Certbot.

    När dessa delar är på plats har du en stabil och självhostad ntfy-server som kan användas för allt från notifieringar till den mjukvarubaserade ringklockan till andra typer av realtidsmeddelanden.

    Varför är detta intressant?

    För att det visar hur långt man kan komma med enkla webbtekniker och öppna standarder. Med bara HTML, JavaScript och en notifieringstjänst går det att koppla samman den fysiska världen med webben på ett mycket direkt sätt.

    Samma idé kan användas för andra ändamål, till exempel enkla larmsystem, interna notifieringar, hjälpknappar eller tillfälliga installationer på mässor och evenemang.

    Det är kanske inte framtidens ringklocka, men det är ett tydligt exempel på hur kreativ mjukvara kan ersätta hårdvara – åtminstone ibland.

    Texten ovan bör ses som en övergripande beskrivning. Ett tips är att ta hjälp av en lämplig AI för att få allt att fungera.

    Länk för att ladda hem koden

    https://www.linux.se/kod/ringkloocka.tar

    Fakta: Mjukvaruringklocka med QR-kod och ntfy
    En experimentell ringklocka som använder en QR-kod på dörren och en webbsida som skickar en notifiering till en konsol via en egen ntfy-server.
    Består av:
    • Webbsida som QR-koden pekar på (”ring på”-knapp)
    • Konsolvy i webbläsaren som spelar ljud och visar meddelanden
    • ntfy-server som förmedlar notifieringar i realtid
    Du behöver:
    • Egen domän och HTTPS
    • En ntfy-server (helst självhostad på Ubuntu)
    • En enhet som är igång och har konsolsidan öppen
    Filer att ändra i koden:
    index.html: NTFY_URL
    consol/index.html: NTFY_BASE
    Tips: Se texten i artikeln som en övergripande beskrivning. Ta gärna hjälp av en lämplig AI för att få detaljerna rätt i din egen miljö.

En ringklocka utan sladdar – när webben ringer på dörren

En QR-kod på dörren, en webbsida som “ringer”, och en konsol inomhus som plingar till via en egen ntfy-server – kan det verkligen fungera som ringklocka? I praktiken visade det sig vara oväntat stabilt och snabbt, även om det knappast ersätter en klassisk installation permanent. Här publicerar vi den testade koden och visar vilka få inställningar du behöver ändra för att komma igång.

Tänk dig en ringklocka som inte sitter i väggen, inte kräver någon särskild hårdvara och inte ens behöver vara i samma byggnad som du själv. I stället består den av en QR-kod, en webbsida och en notifieringstjänst. Det låter som ett experiment – och det är det också – men ett förvånansvärt fungerande sådant.

I en tidigare artikel beskrev vi hur man kan bygga en mjukvarubaserad ringklocka med hjälp av QR-kod, egen domän och en självhostad ntfy-server. Nu har lösningen testats i praktiken, och dessutom publiceras den kod som faktiskt användes. Den skiljer sig något från den som visades i det första inlägget.

Resultatet? Inte något man installerar som permanent ersättning för en vanlig ringklocka, men absolut ett intressant och lärorikt bygge.

Två delar som tillsammans bildar ett “pling”

Systemet är uppdelat i två tydliga delar som samverkar via webben.

Den första delen är webbsidan som QR-koden pekar på. QR-koden sitter exempelvis på dörren eller porten. När någon skannar den öppnas en enkel webbsida där besökaren kan ”ringa på”. Ett klick räcker för att ett meddelande ska skickas vidare.

Den andra delen är konsolen på insidan. Det kan vara en dator, surfplatta eller mobil som har en webbsida öppen i webbläsaren. Den sidan lyssnar på notifieringar från ntfy-servern. När någon ringer på hörs ett ljud och ett meddelande visas direkt på skärmen.

All kommunikation sker i realtid, helt via webbläsaren.

Hur fungerade det i praktiken?

Överraskande bra.

Notiserna dök upp snabbt, ljudsignalen fungerade stabilt och hela lösningen kändes oväntat robust så länge nätverket var tillförlitligt. Samtidigt märks det tydligt att detta inte är tänkt som en långsiktig hushållsprodukt. Det är mer ett tekniskt experiment än en färdig konsumentlösning.

Men som koncept och demonstration är det mycket lyckat.

Den testade koden och nödvändiga ändringar

När du laddar ner och packar upp arkivet med koden hittar du två mappar, en för webbsidan bakom QR-koden och en för konsolen.

I filen index.html för webbdelen behöver du ändra adressen till din egen ntfy-server:

const NTFY_URL = ”https://ntfy.exempel.se/ringklocka-Ringer”;

Sätt adressen till den domän där din ntfy-server faktiskt finns.

I konsolens index.html gör du motsvarande ändring:

const NTFY_BASE = ”https://ntfy.exempel.se”;

Även här ska adressen peka på din egen ntfy-domän.

Vad krävs för att lösningen ska fungera?

För att systemet ska fungera pålitligt behöver du några grundläggande förutsättningar. Du bör ha en egen domän, både för stabilitet och för att kunna använda HTTPS. Du behöver också tillgång till en ntfy-server, helst självhostad. Slutligen krävs en enhet som är igång och har konsolsidan öppen i webbläsaren.

I övrigt behövs inga appar, inga användarkonton och ingen specialutrustning.

Installera ntfy

För att installera en ntfy-server på Ubuntu är det en fördel att ta det steg för steg. Börja med att se till att systemet är uppdaterat och att du har grundläggande verktyg som curl och gpg installerade. Därefter lägger du till ntfy-projektets officiella paketkälla. Det görs genom att hämta GPG-nyckeln och registrera arkivet i systemets APT-konfiguration. När paketkällan är på plats uppdaterar du paketlistan och installerar ntfy med systemets vanliga pakethanterare.

När programmet är installerat skapar du en konfigurationsfil, vanligtvis /etc/ntfy/server.yml. Där anger du grundläggande inställningar, till exempel vilken extern adress servern ska använda, som https://ntfy.dindomän.se, samt vilken lokal port tjänsten ska lyssna på. Konfigurationsfilen behöver inte vara avancerad till att börja med, utan kan hållas mycket enkel.

Nästa steg är att köra ntfy som en systemtjänst. Genom att aktivera tjänsten med systemd ser du till att den startar automatiskt vid omstart av servern. När tjänsten väl är igång kan du kontrollera att den fungerar genom att skicka ett testmeddelande till ett valfritt ämne.

För praktisk och säker användning placeras ntfy normalt bakom en webbserver som Apache. Webbservern fungerar då som en omvänd proxy och vidarebefordrar HTTPS-trafik till ntfy-tjänsten som kör lokalt. Slutligen säkrar du uppkopplingen med ett TLS-certifikat, till exempel via Let’s Encrypt och Certbot.

När dessa delar är på plats har du en stabil och självhostad ntfy-server som kan användas för allt från notifieringar till den mjukvarubaserade ringklockan till andra typer av realtidsmeddelanden.

Varför är detta intressant?

För att det visar hur långt man kan komma med enkla webbtekniker och öppna standarder. Med bara HTML, JavaScript och en notifieringstjänst går det att koppla samman den fysiska världen med webben på ett mycket direkt sätt.

Samma idé kan användas för andra ändamål, till exempel enkla larmsystem, interna notifieringar, hjälpknappar eller tillfälliga installationer på mässor och evenemang.

Det är kanske inte framtidens ringklocka, men det är ett tydligt exempel på hur kreativ mjukvara kan ersätta hårdvara – åtminstone ibland.

Texten ovan bör ses som en övergripande beskrivning. Ett tips är att ta hjälp av en lämplig AI för att få allt att fungera.

Länk för att ladda hem koden

https://www.linux.se/kod/ringkloocka.tar

Fakta: Mjukvaruringklocka med QR-kod och ntfy
En experimentell ringklocka som använder en QR-kod på dörren och en webbsida som skickar en notifiering till en konsol via en egen ntfy-server.
Består av:
• Webbsida som QR-koden pekar på (”ring på”-knapp)
• Konsolvy i webbläsaren som spelar ljud och visar meddelanden
• ntfy-server som förmedlar notifieringar i realtid
Du behöver:
• Egen domän och HTTPS
• En ntfy-server (helst självhostad på Ubuntu)
• En enhet som är igång och har konsolsidan öppen
Filer att ändra i koden:
index.html: NTFY_URL
consol/index.html: NTFY_BASE
Tips: Se texten i artikeln som en övergripande beskrivning. Ta gärna hjälp av en lämplig AI för att få detaljerna rätt i din egen miljö.