Draadloze vloerverwarmingsthermostaat

We hebben infrarood-vloerverwarming geïnstalleerd. De verwarming is, bij gebrek aan themostaat, nog niet aangesloten. Vanaf het begin was mijn idee om een Arduino of vergelijkbaar te gebruiken om zelf een thermostaat te bouwen. Het was niet alleen goedkoper en flexibeler, maar ook een uitstekende reden om met Arduino aan de slag te gaan.

De onderdelen zijn ondertussen aangekomen:

  • ESP32, het brein van elke thermostaat
  • Relais, voor het daadwerkelijke aan/uitschakelen van de verwarmingsfilm
  • 10k NTC’s liggen al onder de vloer, samen met de film zelf

De afzonderlijke functies die ik nodig heb/wil integreren zijn makkelijk online te vinden, en het samenvoegen ervan ging aanvankelijk best vlot. Het resultaat was bijna wat ik nodig had, enkel de sensor voor omgevingstemperatuur en het instellen van een variabele doeltemperatuur ontbraken. En alles werkte in de verkeerde volgorde. Welke functies allemaal, en wat ging er mis in de eerste iteratie?

  • Temperatuur meten
  • Thermostaat instellen
    • Aan de ene kant de omgevingstemperatuur: de gewenste temperatuur in de kamer
    • Aan de andere kant de vloertemperatuur: de vloer mag niet warmer dan 29 graden Celsius worden
  • Relays aan- of uitschakelen afhankelijk van de gemeten temperatuur en de instelling van de thermostaat
  • Toegankelijk via WiFi op het interne domotica-netwerk

Zoals gezegd, van iedere afzonderlijke functie zijn er voorbeelden voor Arduino en, in mindere mate, voor ESP32 te vinden. Ik had uiteindelijk een programma dat:

  • Verbinding zoekt via WiFi
  • Een web-interface toont om het relais aan of uit te schakelen
  • De temperatuur meet als je een button op de webinterface indrukt
  • Het relais schakelt gebaseerd op de gemeten temperatuur

De thermostaad deed dus niets met het relais totdat je er zelf wat mee deed. Niet zo nuttig. Het moet juist andersom werken:

  • Bekijk de huidige staat van het relais
    • Staat ‘ie uit? Dan de omgevingstemperatuur vergelijken met de ingestelde thermostaatwaarde
    • Staat ‘ie aan? Dan de vloertemperatuur vergelijken met de ingestelde maximumwaarde
  • Afhankelijk van de uitkomst hierboven, het relais schakelen of in de huidige staat laten
  • Verbind gedurende een minuut met WiFi
  • Toon in die tijd de web-interface
  • Geef de mogelijkheid de thermostaat in te stellen
  • Begin van boven af aan

De volgende stap is om een domoticaserver een interface voor de thermostaat te laten serveren, en dat de ESP32 de domoticaserver zo nu en dan vraagt wat de gewenste temperatuur is. Op die manier toont de ESP32 niet zo lang een web-interface via WiFi, met zodoende minder energieverbruik en hogere veiligheidsgraad. Maar dat komt later

Print this entry

Public IPv4 subnet with Fritz!Box

Port forwarding kapot

De Engelstalige versie heeft het hele verhaal, hier mijn stappen om te voorkomen dat de Fritzbox een duplicaat apparaat krijgt. Zo’n duplicaat apparaat (dezelfde hostname met twee MAC-adressen) zorgt voor een heel irritante foutmelding bij het aanmaken van een nieuwe portforwarding of het aanpassen van een bestaande:

Een publiek IPv4 toewijzen

Voor Yunohosts met Armbian op OPi Zero’s volg ik bij benadering het volgende stappenplan:

  • Gewoon aansluiten en een adres per DHCP laten toewijzen
  • Blijf van de hostname af in de Fritzbox
  • Configureer het systeem via SSH op het locale IP
  • Zorg dat zowel een verbinding via ethernet als via seriele kabel beschikbaar is
  • Gebruik nmtui om het publieke IP in te richten
    • Activeer de nieuwe inrichting nog niet
  • Maak de ethernetkabel los
  • Gebruik de seriele verbinding om het apparaatje af te sluiten
  • Wacht totdat de Fritzbox het apparaatje van actieve naar inactieve aansluitingen verplaatst heeft in de thuisnetwerk-instellingen
  • Verwijder het apparaat uit de lijst met apparaten
    • Dat kan enkel wanneer de FB denkt dat het apparaat inactief is
    • Het heeft enkel effect wanneer de naam van het apparaat niet veranderd is vanaf de eerste keer dat de FB het apparaat gesignaleerd heeft
    • Soms helpt het de FB eens te rebooten, maar niet altijd, en het maakt het proces ook niet altijd sneller
  • Zodra je ‘m verwijderd hebt, sluit de ethernetkabel weer aan
  • Zet het apparaatje weer aan . network manager gebruikt de nieuwe configuratie om de netwerkaansluiting in te richten
    • Soms zie je het apparaat niet direct staan, omdat het met een naam gebaseerd op het IP-adres in de lijst gezet wordt
    • Pas de (onhandige) naam niet aan
  • Nu is het apparaat te bereiken op het publieke IP. Het inrichten van port forwardings mag geen problemen opleveren.

Troubleshooting

Print this entry

Fediverse met Nextcloud/nginX op Yunohost part II

Het resultaat van deel I was dat ik gebruikers op dezelfde server kon vinden: iedereen die een account op online.osba.nl heeft. Leuk, maar dat was niet wat ik voor ogen had. De afgelopen weken heb ik zo nu en dan een blik op het probleem geworpen, in de hoop dat me een makkelijke oplossing onder ogen zou komen. Helaas.

Vanavond heb ik er meer tijd dan ik had gehoopt besteed, maar ik heb wel een deel van de (weg naar de) oplossing gevonden. De test op webginger.net geeft nu een nuttig resultaat terug:

https://webfinger.net/lookup/?resource=wbk%40online.osba.nl

geeft:

Request log

18:20:13 Looking up WebFinger data for acct:wbk@online.osba.nl
18:20:13 GET https://online.osba.nl/.well-known/webfinger?resource=acct%3Awbk%40online.osba.nl

JSON Resource Descriptor (JRD)

{
  "subject": "acct:wbk@online.osba.nl",
  "links": [
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "http://online.osba.nl/nextcloud/nextcloud/index.php/apps/social/@wbk"
    },
    {
      "rel": "http://ostatus.org/schema/1.0/subscribe"
    }
  ]
}

Dat was telkens 404, niets gevonden.

Meer details zijn (in het Engels) te vinden Yunohost forum, maar het belangrijkste deel is de benodigde configuratie en waar je het moet laten. Het configuratiebestand waar het om gaat is de nginx-configuratie op

/etc/nginx/conf.d/online.osba.nl.conf

Er zijn twee servers gedefinieerd, de onversleutelde op poort 80 en de versleutelde verbinding op poort 443. De eerste had na het installeren via Yunohost / Nextcloud alle redirects cadeau gekregen, die op poort 443 niets. Ik vond het opvallend, maar bij gebrek aan kennis van nginx deed het ook geen alarmbellen rinkelen. Het blijkt dat de verwijzingen op beid e servers gedefinieerd moeten staan, anders werkt het niet via TLS. Bovendien moet het een combinatie van doorverwijzing en herschrijven van de URL zijn:

Het gecombineerde stanza ziet er zo uit:

location = /.well-known/webfinger {
  rewrite ^ https://online.osba.nl/nextcloud/public.php?service=webfinger&$1 last; # $1 will use the first parameter (?resource=…)
}

Stop het stukje tussen de ‘include …’ en ‘log ..’ regels.

Ookal werkt de test op webfinger.net nu, het lukt nog niet om op de ene Nextcloud een gebruiker op een andere Nextcloud-server te vinden.

Wordt vervolgd…

Print this entry

Foto’s bewaren en delen met Nextcloud

Nextcloud is een systeem om allerlei dingen die op je computer of op je telefoon staan te bewaren of te delen. Bijvoorbeeld foto’s, muziek, plaatjes, savegames of backups.

Een blauwe, vierkante knop met de tekst 'Fotos en andere bestanden delen (Nextcloud)'
Zoek Nextcloud uit en klik erop

Je kunt gewoon inloggen op je Nextcloud door op het vierkantje de drukken en te bladeren in de bestanden die al naar Nextcloud gestuurd zijn, of je kan op je computer/telefoon instellen dat nieuwe foto’s automatisch geupload worden: backup (kopie voor de zekerheid) en synchronisatie (zodat de foto van je telefoon automatisch op je computer komt te staan).

Foto upload

Het hoofdscherm van Nextcloud ziet er ongeveer zo uit:

Een lijst met menu-items, direcories en foto's
Nextcloud startscherm

Het ziet er een beetje uit als de lijst met bestanden op je computer, maar dan op je webserver. Als je voor het eerst kijkt, zie je dat er tijdens de installatie van het systeem al wat voorbeeldbestanden neergezet zijn. Die kun je gerust weggooien.

Een nieuwe foto kun je met het plusje naast het huisje toevoegen. Als je het plusje aanwijst, komt er een menu’tje tevoorschijn waar je kun kiezen een nieuw bestand te uploaden (‘Upload file’/’Bestand uploaden’):

Het kleine menu'tje waar je kun kiezen een bestand te upoaden
Bovenaan de pagina, naast ‘All files’ / ‘Alle bestanden’

De foto is na een paar ogenblikken (afhankelijk van hoe groot de foto is en hoe snel de verbinding) te zien in de lijst met bestanden.

Foto delen

Drie balletjes en twee lijntjes: delen
poena@osba.nl als emailadres, of klik ‘Share link’

Onder elke foto (en elk ander bestand) staat een ikoontje, drie balletjes met streepjes ertussen. Dat is om aan te geven dat je iets kan delen. Als je het ikoontje aanklikt, krijg je een nieuw menu aan de rechterkant. Je kan een emailadres of de naam van iemand anders invullen om rechtstreeks te sturen, of je kan op ‘share link’ klikken om een hyperlink klaar te zetten. Die link moet je daarna zelf aan iemand sturen: met een email, overschrijven of een ander berichtje.

Klaar!

Je foto is nu bereikbaar voor iedereen aan wie je de link stuurt, of enkel voor degene aan wie je de email stuurde. Wat die mensen vervolgens doen weet je maar nooit, als je eenmaal iets gedeeld hebt op internet, is het voor altijd gedeeld.

Behalve de foto zelf delen, kun je ook iets over de foto zeggen, of andere mensen er iets over laten zeggen. Iedereen met een account op je Yunohost kan dat in ieder geval, maar je kan ook vrienden op hun eigen Nextcloud rechtstreeks benaderen. Het is me nog niet goed gelukt dat te laten werken, wordt vervolgd.

Print this entry

Een verhaal schrijven met WordPress

Zoek naar ‘inloggen’ om bij het loginscherm te komen.

Druk op het vierkantje voor WordPress om een nieuw verhaal te schrijven. Je krijgt een achtergrond-plaatje te zien, je moet een heel eind naar beneden schuiven om “Inloggen” te vinden onder het kopje “Meta”.

Je naam en wachtwoord worden al ingevuld.

Je gebruikersnaam wordt dan al ingevuld. Als dat een keer niet zo is: het is dezelfde naam als om in te loggen op Yunohost om bij de vierkantjes te komen.

De pagina verandert nu: er komt een stukje boven en aan de linkerkant is een nieuw menu. Bovenaan Dashboard, daaronder Berichten, Media en veel meer.

Wijs “Berichten” aan, en na een seconde komt er een klein menu’tje waar je “Nieuw bericht” kunt klikken. Het grootste deel van het scherm wordt nu wit, en bovenaan staat een stukje over blokken. Dat kun je op het plaatje hieronder ook zien, en als je het gelezen hebt, kun je het met het kruisje wegkrijgen.

Linksbovenaan “Berichten” aanwijzen, en dan “Nieuw bericht” aanklikken.

Het is niet zo goed te zien, maar je kan nu een titel schrijven. Ik heb als titel: “Een verhaal schrijven met WordPress”. Het staat bovenaan deze pagina.

Begin met typen om een titel te schrijven

Telkens als je op enter drukt, wordt er een nieuw blok gemaakt waarin je verder kunt typen. In zo’n blok kun je ook plaatjes en foto’s stoppen, zoals ik hier telkens gedaan heb.

Er kan nog veel meer met WordPress, maar nu kun je al allerlei verhalen schrijven.

Print this entry

Yunohost

Nadat je ingelogd bent, zie vierkantjes met daarin de naam van het deelsysteem.
Zo ziet het er ongeveer uit op de computer:

Er staan gekleurde vierkantjes op een donkere achtergrond, met daarop de naam van de web-applicatie die geinstaleerd is, zoals bijvoorbeeld "Ne - Nextcloud"
De apps die nu op mijn Yunohost staan. Zo ziet het er op een groot scherm uit. Het zijn de standaardnamen.

Op een telefoonschermpje wordt het allemaal een beetje samengedrukt, zoals je hiernaast ziet.

Er staan gekleurde vierkantjes op een donkere achtergrond, met daarop de naam van de web-applicatie die geinstaleerd is, zoals bijvoorbeeld "Ne - Nextcloud"
De geinstalleerde webapps op een telefoonschermpje: kleinere vierkantjes, alles boven elkaar.

Dit zijn de systemen die geintalleerd zijn:

  • Nextcloud, om bijvoorbeeld je foto’s, tekeningen, muziek en films te bewaren en te delen.
  • Opensondage is een afspraakplanner. Als je een feestje of een dagje uit wil organiseren, kan iedereen invullen welke dag het beste uitkomt. Je kan dan makkelijk zien op welke dag iedereen kan, zonder telkens iedereen op te bellen.
  • Met Roundcube kun je je email lezen en versturen.
  • WordPress is een systeem om verhalen en foto’s op je website te publiceren. Wat je nu leest is ook “WordPress”.

De namen heb ik niet bedacht; ze zijn gekozen door de mensen die aan dat systeem werken. Je kan ze aanpassen in de Yunohost-instellingen. Je kan dan een makkelijker te onthouden naam gebruiken, zo bijvoorbeeld

Gekleurde vierkantjes op een donkere achtergrond. De tekst op de vierkantjes geeft een omschrijving van de webapp waar het een link naartoe is, bijvoorbeeld "Foto's en andere bestanden delen" in plaats van "Ne - Nextcloud
Dezelfde webapps, maar in plaats van de naam een korte beschrijving.

In latere posts ga ik op de verschillende onderdelen in:

Print this entry