Sta DANE-authenticatie toe voor uw mailserver of website

DANE https://datatracker.ietf.org/doc/html/rfc7671 staat voor DNS-Based Authentication of Named Entities. Met dit protocol kunnen clients het gebruikte externe certificaat controleren via TLSA DNS-records. DANE vereist DNSSEC https://datatracker.ietf.org/doc/html/rfc9364.

Dit bericht gaat niet over de implementatie aan de clientzijde, maar over de backend. Ik zal uitleggen hoe TLSA-records gemaakt kunnen worden die de openbare sleutel van het gebruikte certificaat en het gebruikte certificaat gebruiken. In principe gebruik ik alleen opensl om de TLSA-records te maken. Het artikel is gebaseerd op https://www.mailhardener.com/kb/how-to-create-a-dane-tlsa-record-with-openssl. Het meest gebruikelijke gebruik is dat mailservers zorgen voor gecodeerde e-mailoverdracht tussen MTA's, dus dat is wat ik in dit voorbeeld zal gebruiken. De mailserver die een e-mail wil afleveren bij uw beveiligde mailserver, moet nog steeds de door u gepubliceerde TLSA-records respecteren. De aanpassing voor DANE is de laatste jaren toegenomen. zelfs bedrijven als Microsoft beginnen DANE te adopteren.

Het certificaat en de ketting verkrijgen van uw mailserver

Met opensl u kunt het PEM-gecodeerde certificaat en de ketting eenvoudig opnieuw genereren vanaf een mailserver.

echo STOP | openssl s_client -connect mail.example.com:25 -starttls smtp -showcerts

Dit opent een verbinding via poort 25 met STARTTLS en drukt de certificaten af en beëindigt vervolgens de gemaakte verbinding. Om de uitvoer in een bestand op te slaan, leidt u de uitvoer gewoon om.

De certificaatketen in de uitvoer bevat waarschijnlijk meerdere certificaten die beginnen met het servercertificaat.

Laten we het eerste certificaat in de keten opslaan als server.crt, en de tweede als intermediair.crt.

Voor een mailserver zijn we geïnteresseerd in het servercertificaat (het eerste certificaat in de keten) en het issuercertificaat. We gebruiken het schema 3 1 1 (DANE EE) voor het servercertificaat en 2 1 1(DANE TA) voor het uitgevende certificaat. De in DNS gepubliceerde TLSA-waarde is een SHA256-hash van de openbare sleutel. De openbare sleutel verandert alleen als de persoonlijke sleutel die is gebruikt om de CSR van het certificaat te maken, is gewijzigd.

Maak SHA256-hash van de openbare sleutel

Uit de certificaatbestanden die we hebben verkregen, kunnen we nu de SHA256-hash berekenen.

openssl x509 -in server.crt -pubkey -noout | openssl rsa -pubin -outform der | sha256sum

genereert de public key hash voor het servercertificaat. Uitvoer kan iets soortgelijks zijn, zoals:

RSA-sleutel schrijven 4648564dc7c901037f631391d765643e8f8f86622849f59dfc9564838e1e8a76 -

We hebben hier alleen de lange string nodig. We kunnen dit herhalen voor het tussencertificaat.

Maak en publiceer TLSA DNS-records

DANE-authenticatie controleert gepubliceerde TLSA-records. Voor onze mailserver willen we de openbare sleutel SHA256-hash voor server en tussencertificaat voor poort 25 publiceren (u kunt ook records voor fort 465 of 587 publiceren als u dat wilt). Dus laten we zeggen dat we de openbare sleutel van de server voor onze mailserver (mail.example.com) willen publiceren, we publiceren het volgende record:

Naam: _25._tcp.mail.example.com.
Type: TLSA
TTL: 1 dag
Waarde: 3 1 1 4648564dc7c901037f631391d765643e8f8f86622849f59dfc9564838e1e8a76

Het is een goede gewoonte om ook een 2 1 1 TLSA-record voor het intermediate certificaat. Zorg ervoor dat u een nieuw TLSA-record publiceert wanneer uw certificaat verandert (en de privésleutel ook is gewijzigd). voor installatie van het nieuwe certificaat. U kunt meerdere instanties voor 3 1 1 xxx and 2 1 1 xxx verslagen. Nadat het nieuwe certificaat is geïnstalleerd, kunnen de verouderde records worden verwijderd.

Git gebruiken

Als ontwikkelaar werk ik mee aan meerdere projecten. In veel gevallen is het nodig om een fork van het stroomopwaartse project te maken en een pull-aanvraag toe te voegen. De eerste stappen (een fork maken) enz. zijn niet moeilijk, en in eerste instantie heb je een up-to-date kloon van de originele website waarop je kunt werken en pull-aanvragen kunt openen voor het stroomopwaartse project. De meeste van deze stappen kunnen worden uitgevoerd met behulp van de web-UI (bijv. bij gebruik van Github). Maar tijdens het werken aan een pull request is het vaak nodig om je gevorkte kloon te synchroniseren, bijvoorbeeld om een nieuwe branch te openen. Dan begint de ellende. Wat kan gebeuren:

  • Je bent een nieuwe branch gestart, maar de hoofd branch liep niet synchroon
  • U moet rebaseen en mogelijk is er een conflict

Mensen beginnen met rebasen, maar halen vaak niet-gerelateerde commits binnen die andere problemen veroorzaken. In dit bericht wil ik enkele methoden delen die ik heb om met dergelijke gevallen om te gaan.

Een nieuwe `branch` openen

Wanneer je een nieuwe pull request wilt openen wil je dat dit correct gebeurt. Ik neem hier aan dat je al een ontwikkelomgeving hebt opgezet met je gekloonde git-repository, klaar om commits te pushen.

Om ervoor te zorgen dat uw fork gesynchroniseerd is, moet u alle upstream-updates ophalen. Dat kunnen we doen met:

git fetch --all

of als het gewoon is upstream, we kunnen gebruiken

git fetch upstream

welke sneller is.

De volgende stap is het uitchecken van de doelvertakking waartegen je de pull request wilt maken. Dit kan zijn main, master of de dev, maar soms kan dit zelfs anders zijn. In ons voorbeeld gebruiken we main.

git checkout main 

Nu willen we resetten main naar dezelfde staat als upstream\main, omdat dit de branch is waar we het pull-verzoek naartoe willen sturen. We moeten ervoor zorgen dat er geen niet-vastgelegde bestanden zijn, aangezien deze zullen worden verwijderd!

git reset --hard upstream/main

Als we de --hard markeer dan zal git niet-vastgelegde bestanden maken voor alle wijzigingen tussen de oude en nieuwe staat. Dit kan handig zijn als we commits willen terugdraaien, maar niet bij het starten van een nieuwe branch.

Vanaf hier kunnen we de lokale vestiging naar onze vork duwen met:

git push

Nu zijn we op hetzelfde niveau als de doelvestiging en kunnen we een nieuwe vertakking openen die synchroon loopt met upstream. We kiezen een nieuwe branchenaam die de naam van ons pull-verzoek weerspiegelt, in dit voorbeeld zal ik gebruiken test-pull-verzoek als filiaalnaam.

git checkout -b test-pull-request

Dit creëert een nieuwe lokale branch, vanaf hier kun je beginnen met coderen en je commits toevoegen. Als je er klaar voor bent, kun je je branch naar je fork publiceren (ik gebruik origin als naam voor de gekloonde repository). Vanaf dat moment wordt elke nieuwe commit gepusht origin ook. Wanneer we onze nieuwe lokale branch publiceren, moeten we ook de stroomopwaartse branch instellen, zodat we later een pull-aanvraag kunnen openen.

git push --set-upstream origin test-pull-request

Wanneer alle commits zijn gedaan en we al onze commits hebben gepusht (git push), dan zijn we klaar om een pull request te openen.

Open een nieuwe pull prequest

Wanneer u Github gebruikt, is het raadzaam om een pull-aanvraag te openen met behulp van de web-UI of met behulp van een plug-in vscode of andere ontwikkelomgeving. In de meeste gevallen is er een sjabloon die moet worden ingevuld. Zorg ervoor dat de juiste commits worden weergegeven en dat u de juiste doeltak hebt geselecteerd!

Rebasen en oplossen van problemen met `mergen`

Soms moeten we `rebasen`. Dit kan gebeuren als de PR te oud is en we moeten synchroniseren met onze target branch. Persoonlijk zou ik de originele commits bovenop de rebased branch willen forceren in plaats van een merge-commit toe te voegen. Force-push maakt het gemakkelijker om de commits in het pull-verzoek bij te houden en vermijdt extra merge-commits. Om correct te kunnen rebasen, moeten we eerst de nieuwste updates ophalen. We kunnen hiervoor gebruiken:

git fetch upstream

Nu zorgen we ervoor dat we bij het juiste filiaal zijn uitgecheckt.

git checkout test-pull-request

Om te rebaseen met onze stroomopwaartse doeltak starten we een rebase-opdracht.

git rebase upstream/dev

Als je de commits wilt selecteren die moeten worden opgenomen (bijvoorbeeld wanneer je sommige commits wilt terugdraaien), zou je moeten overwegen om de -i vlag om interactief rebasen te starten.

git rebase -i upstream/dev

Voor elke commit zal git proberen te rebaseen, als dit niet lukt, dan moet je je bestanden corrigeren, opslaan en stagen om git te vertellen welke wijzigingen moeten worden aangebracht. Na staging kun je doorgaan met rebasen:

git rebase --continue

Zorg ervoor dat je alleen wijzigingen aanbrengt in commits die direct gerelateerd zijn aan de samenvoegconflicten en die de gewenste wijzigingen voor die bepaalde commit weergeven. Herhaal dit voor de andere commits (indien van toepassing) totdat de rebase met succes is voltooid.

Als alles een puinhoop wordt, is er een redding door het `merge` commando af te breken.

git rebase --abort

De volgende stap is dat we niet alleen commits nu pullen en pushen, maar alleen rebased commits forceren. Dit kan onlogisch zijn, maar we willen ervoor zorgen dat we de exacte lokale situatie naar onze hand zetten origin tak.

git push --force

Nu zou onze branch opnieuw moeten worden gebaseerd en in het pull-verzoek zouden we alleen de commits van onze PR moeten zien, of de geselecteerde commits uit het bestand (bij gebruik van de -i keuze).

Nieuwe schone commits maken van eerder werk

Als je een grotere PR hebt met meerdere bestanden en je bestaande commits wilt vervangen of ongedaan wilt maken zonder je werk te verliezen, kun je dit gebruiken git reset.

Met git log we kunnen de commits die we hebben gemaakt bovenop onze branch laten zien. Om deze commits te vervangen moeten we rebaseen naar de commit van waar we opnieuw willen beginnen.

Stel dat we twee commits hebben die we over willen doen. Laat ze zien met git log.

commit 6090d321e3926ad9c5ffdd026f7c2fb046cdbbf2 (HEAD -> test2) Auteur: jij Datum: wo 24 mei 14:19:24 2023 +0000 commit 2 commit a0ad22921fb8f5797aeb4e414cf3403b80027a3d Auteur: jij Datum: wo 24 mei 14:18:03 2023 +0000 commit 1 commit abf08f66a4c7e01955213c228542884951d45a11 (upstream/dev, origin/test2, origin/dev, origin/HEAD, dev) Auteur: gebruiker Datum: wo 24 mei 01:38:16 2023 -0500 Update upstream

Ervan uitgaande dat we geen niet-vastgelegde bestanden hebben, kunnen we rebaseen om vast te leggen abf08f66a4c7e01955213c228542884951d45a11 (upstream/dev, origin/test2, origin/dev, origin/HEAD, dev).

git reset abf08f66a4c7e01955213c228542884951d45a11

Nu zul je zien dat de wijzigingen van de laatste 2 commits nu unstaged bestanden zijn. Je kunt nu de wijzigingen voor je nieuwe commit stagen, of, als je wilt, dit in meer commits doen totdat alle wijzigingen zijn gestaged en vastgelegd. Nu, om de oude commits te vervangen door de nieuwe, kunnen we ze forceren om ze naar onze te pushen origin tak.

git push --force

Nu zijn je commits vervangen door de nieuwe.

Tijdelijk niet opgeslagen werk opslaan

Soms moet je tussen branches wisselen, maar heeft u niet-vastgelegde bestanden. Als pre-commit wordt gebruikt, is het misschien niet mogelijk om te committen. In plaats daarvan kunt u uw wijzigingen op de stapel opslaan. U kunt uw wijzigingen later terugkrijgen door ze uit de stapel te halen. Dit werkt ook als u niet-vastgelegde wijzigingen wilt toepassen op een andere branch.

Om uw niet-toegewijde werk op te bergen:

git stash

Om de wijzigingen terug te laten komen:

git stash pop

Er is veel meer dat je kunt doen met git stash, maar ik zal het hier kort houden.

Voor meer git-commando's gebruik je de online documentatie.

Home Assistent + `haproxy` +`LetsEncrypt`+TransIP

Deze post gaat over mijn (positieve) ervaring met haproxy als reverse proxy voor Home Assistant. Toegang op afstand is nodig als je Home Assistant van buiten uw thuisnetwerk wilt openen.

Als voorwaarde zullen we ook de poort moeten doorsturen 443(https) in onze router/firewall naar het gebruikte systeem en zorg ervoor dat we een geldige DNS A/AAAA- of CNAME-record hebben ingesteld die verwijst naar het openbare IP-adres dat wordt gebruikt om door te sturen.

Ik wilde LetsEncrypt certificaten hebben die worden uitgegeven met behulp van een DNS-challenge. Hiervoor heb ik een Raspberry Pi 3b-bord gebruikt waarop Rasbian (Debian) is geïnstalleerd. Verder installeerde ik docker, en haproxy.

Het installeren van de haproxy pakket is zo simpel als:

sudo apt-update and sudo apt install haproxy

Als voorwaarde zullen we ook de poort moeten doorsturen 443(https) in onze router/firewall naar het gebruikte systeem en zorg ervoor dat we een geldige DNS A/AAAA- of CNAME-record hebben ingesteld die verwijst naar het openbare IP-adres dat wordt gebruikt om door te sturen.

LetsEncrypt met DNS-01 challenge en TransIP API

In mijn geval worden mijn internetdomeinen beheerd door TransIP, en DNS-toegang heeft API-ondersteuning. In het portaal kunt je een API-sleutel aanmaken en de IP-adressen die u wilt gebruiken voor DNS-toegangen whitelisten. We gebruiken deze API om in te schrijven LetsEncrypt certificaten. Het grote voordeel is dat we wild card certificaten kunnen inschrijven of certificaten met interne namen die we niet op het internet willen tonen, en we hoeven poort 80 niet te openen!

Voor de inschrijving van certificaten met LetsEncrypt via de TransIP API heb ik de docker image (rbongers/certbot-dns-transip) van gebruikt Roy Bongers waar alle functionaliteit in zit.

Opzetten LetsEncrypt

Maak eerst de mappen aan /etc/letsencrypt, /var/log/letsencrypt and /etc/transip.

Maak als root bestand config.php in /etc/transip. Gebruik de onderstaande link voor het sjabloon:

https://gist.github.com/jbouwh/3b6042ed4ca1189e1f37d0f8ff7274e5#file-config-php-L1-L17

Je dient de verkregen TransIP API key en je TransIP gebruikersnaam in te plakken.

Zorg ervoor dat u uw sleutelbestand beveiligt met sudo chmod 400 /etc/transip/config/php dus dat is alleen-lezen voor root.

Om het certificaat voor de eerste keer in te stellen, maken we een bash-script (ik plaatste het in /usr/local/sbin):

https://gist.github.com/jbouwh/3b6042ed4ca1189e1f37d0f8ff7274e5#file-certinit-bash-L1-L10

Vervang de `–cert-name` en het wild card domein (-d certificaatnaam.example.com), en vervang het domein door een willekeurige domeinnaam die u bezit. U kunt de -D parameter meerdere keren. Voor elk domein wordt een dns-challenge aangemaakt.

Zorg ervoor dat het script uitvoerbaar is chmod +x certinit.bash.

Ren nu certinit.bash . Het downloadt de afbeelding en start een docker voor de installatie. Dit is interactief, u krijgt enkele vragen zoals uw e-mailadres.

root@docker01:/usr/local/sbin# certinit.bash
Unable to find image 'rbongers/certbot-dns-transip:latest' locally
latest: Pulling from rbongers/certbot-dns-transip
330ad28688ae: Pull complete
882df4fa64e9: Pull complete
07e271639575: Pull complete
2d60c5e17079: Pull complete
f54b294a6f71: Pull complete
6f27ea6ab430: Pull complete
0c8c5a3cd6a8: Pull complete
6436ec8cd157: Pull complete
350482e0cef8: Pull complete
fcb8169b6442: Pull complete
ba9658959877: Pull complete
b9d5ffb589b1: Pull complete
a368f8fc57ed: Pull complete
Digest: sha256:faec7bc102edf00237041fbce8030249fb55f300da76b637660384c353043bff
Status: Downloaded newer image for rbongers/certbot-dns-transip:latest
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): user@example.com (your email adres)


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

Account registered.
Requesting a certificate for xxxxxx and jjjjj
Performing the following challenges:
dns-01 challenge for xxxx
dns-01 challenge for jjjjj
Running manual-auth-hook command: /opt/certbot-dns-transip/auth-hook
Output from manual-auth-hook command auth-hook:
[2023-03-31 08:32:03.596791] INFO: Creating TXT record for _acme-challenge with challenge 'FfGM5VPKWKkwR-6ggUhlpoZlQ5-vPGK-JIy25tekb_E' [] []
[2023-03-31 08:32:06.782752] INFO: Waiting until nameservers (ns0.transip.net, ns1.transip.nl, ns2.transip.eu) are up-to-date [] []
[2023-03-31 08:32:08.625219] INFO: All nameservers are updated! [] []

Running manual-auth-hook command: /opt/certbot-dns-transip/auth-hook
Output from manual-auth-hook command auth-hook:
[2023-03-31 08:32:09.659195] INFO: Creating TXT record for _acme-challenge with challenge 'lP_hQVRODhVCiglLiNSZvNky9voGChnTyo407N_xRU4' [] []
[2023-03-31 08:32:12.628115] INFO: Waiting until nameservers (ns0.transip.net, ns1.transip.nl, ns2.transip.eu) are up-to-date [] []
[2023-03-31 08:32:13.659641] INFO: All nameservers are updated! [] []

Waiting for verification...
Cleaning up challenges
Running manual-cleanup-hook command: /opt/certbot-dns-transip/cleanup-hook
Output from manual-cleanup-hook command cleanup-hook:
[2023-03-31 08:32:16.459605] INFO: Cleaning up record _acme-challenge with value 'FfGM5VPKWKkwR-6ggUhlpoZlQ5-vPGK-JIy25tekb_E' [] []

Running manual-cleanup-hook command: /opt/certbot-dns-transip/cleanup-hook
Output from manual-cleanup-hook command cleanup-hook:
[2023-03-31 08:32:20.031682] INFO: Cleaning up record _acme-challenge with value 'lP_hQVRODhVCiglLiNSZvNky9voGChnTyo407N_xRU4' [] []


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/xxxxxx/fullchain.pem Uw sleutelbestand is opgeslagen op: /etc/letsencrypt/live/xxxxxx/privkey.pem
   Your certificate will expire on 202x-mm-ss. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Je certificaat wordt aangemaakt in /etc/letsencrypt/live/{certname}.

Automatische uitgifte instellen

We willen het certificaat automatisch verlengen en haproxy bijwerken om het nieuwe certificaat te gebruiken. Het haproxy certificaat wordt geplaatst in /etc/haproxy/cert.pem. Om in te schrijven heb ik een bash-script gemaakt certrenew.bash:

https://gist.github.com/jbouwh/3b6042ed4ca1189e1f37d0f8ff7274e5#file-certrenew-bash-L1-L68

Zorg ervoor dat u de basecert parameter in het script. en plaats het als certrenew in /usr/local/bin/sbin en maak het uitvoerbaar met sudo chmod + x /etc/local/sbin/certrenew.

We moeten certrenew een eerste keer uitvoeren om ervoor te zorgen dat het haproxy certificaat wordt gemaakt.

Om ervoor te zorgen dat het elke dag ergens tussen 23.00 uur en middernacht draait, maken we er een cronfile (`/etc/cron.d/certrenew`) voor (zie link).

https://gist.github.com/jbouwh/3b6042ed4ca1189e1f37d0f8ff7274e5#file-certrenew-cron-L1-L9.

Herstart cron sudo systemctl restart cron

Wanneer het script wordt uitgevoerd, wordt gecontroleerd of het certificaat binnen 30 dagen verloopt, in dat geval wordt een nieuw certificaat aangevraagd. Als het proces succesvol was, wordt het certificaat bijgewerkt en opnieuw opgestart haproxy met het nieuwe certificaat.

Nu zijn we helemaal klaar, zorg ervoor dat je de logboeken controleert om te zien of de hele installatie correct werkt.

Instellen haproxy

Als laatste stap kan nu haproxy (/etc/haproxy/haproxy.cfg) worden ingesteld met het nieuwe certificaat.

Je kunt https://gist.github.com/jbouwh/3b6042ed4ca1189e1f37d0f8ff7274e5#file-haproxy-cfg-L1-L61 gebruiken als sjabloon voor uw configuratie. U moet de DNS-namen en het interne IP-adres van uw backend wijzigen. In mijn geval heb ik een Raspberry PI met een SD-kaart gebruikt en logging uitgeschakeld om ervoor te zorgen dat de SD-kaart langer meegaat. Als u een SSD hebt aangesloten, kunt u de logging wijzigen.

Zorg ervoor dat u ook installeert /etc/haproxy/dhparam.pem (zie de opmerking op de laatste regel van het configuratiebestand over hoe u dit kunt verkrijgen).

In de voorbeeldconfiguratie heb ik de statistiekenpagina ingeschakeld op https://{jouw_domeinnaam}/stats. Je kunt deze pagina gebruiken om de statistieken te bekijken. acl network_allowed_src src wordt gebruikt om te beveiligen dat de pagina alleen toegankelijk is vanaf interne IP-adressen. Zorg ervoor dat je de juiste IP-ranges invult die toegang moeten hebben.

Als je klaar bent, kun je het configuratiebestand testen met:

haproxy -f /etc/haproxy/haproxy.cfg -c

Als dat goed is, ben je helemaal klaar. Herstart haproxy om de nieuwe configuratie te laden met: sudo systemctl restart haproxy.

Nu heb je van buitenaf toegang tot Home Assistant. Zorg ervoor dat twee-factor-authenticatie is ingesteld om de toegang tot uw netwerk te beveiligen.

Elro Connects -Home Assistant

Ik ben bezig met een integratie voor Elro Connects. De integratie moet gebruikers met Elro Connects brand-, water- of koolmonoxidemelders in staat stellen deze met Home Assistant te integreren. Als u Elro Connects brandmelders bezit en graag wilt testen, kunt u de Elro Connects integratie met HACS toevoegen aan Home Assistant.

Voeg de volgende repository toe aan HACS https://github.com/jbouwh/ha-elro-connects/. Je moet Home Assistant opnieuw opstarten nadat je de aangepaste integratie hebt gedownload. Na de herstart zou je de integratie aan Home Assistant moeten kunnen toevoegen.

Voor elk alarm wordt een sirene entiteit gecreëerd. Als u deze inschakelt, wordt een testalarmverzoek verzonden. Je kunt de sirene uitzetten om een (test)alarm uit te zetten.

Laat me weten of je deze integratie leuk vindt. Als uw apparaat niet wordt ondersteund of niet correct werkt, laat het me dan weten!

InfluxDB 2-ondersteuning

Omnikdatalogger v1.11.1 heeft nu native ondersteuning voor InfluxDB v2-authenticatie. Het is niet langer nodig om v1-authenticatie-ondersteuning te bieden. Om het in te schakelen, moet u de configuratieparameters org, bucket, en token, configureren. Als u HACS gebruikt via AppDaemon, zorg er dan voor dat u influxdb-client aan de python-packages toevoegt.

Daarnaast kunt u nu gebruik maken van een SSL-verbinding.

Lees meer over de nieuwe release:

https://github.com/jbouwh/omnikdatalogger/releases/tag/v1.11.1-1

Omnikdatalogger ondersteunt nu een nieuwe http methode

Omnikatalogger's tcpclient ondersteunt een directe connectie over poort 8899 om de data op te halen middels Wouter van der Zwans code. Niet alle omvormers ondersteunen deze methode van ophalen. Sommige omvormers ondersteunen wel het ophalen van de data via HTTP. Met de nieuwe versie de tcpclient zal terugvallen op de HTTP methode wanneer de methode va poort 8899 mislukt. Omnikdatalogger zal proberen de status op te halen via http://{inverter_ip}:80/js/status.js en de data hier vanuit te extraheren. Een nieuwe instelling http_only bij de omvormer specifieke instellingen zal je toestaan om tcpclient te configureren alleen deze HTTP methode te gebruiken.

Een nadeel van deze methode is dat deze minder details van de omvormer ophaalt en zo de informatie mist van de PV DC strings (gelijkspanning).

MQTT TLS support – nieuwe Solarman API

The laatste release van Omnikdatalogger ondersteund MQTT TLS en ondersteund de nieuwe Solarman API.

MQTT TLS ondersteuning

De MQTT uitvoer plugin an de mqtt_proxy plugin voor de localproxy client kunnen nu ook met een TLS beveiligde MQTT service verbinden. Het gebruik can client certificaten en een alternatieve CA wordt nu ondersteund.

Voorbeeld van de nieuwe settings:

output.mqtt: tls: true ca_certs: ./.omnik/ca/mosquitto.org.crt client_cert: ./.omnik/client.crt client_key: ./.omnik/client.key

Alle nieuwe instellingen zijn optioneel.

TLS ondersteuning is ook toegevoegd aan Omnikdatalogger proxy.

Nieuwe Solarman API

The laatste solarmanpv client werkte niet meer omdat deze was gebaseerd op een oude API die uit de lucht is gehaald. Een splinternieuwe implementatie van de solarmanpv client is nu beschikbaar. De client heeft inloggegevens nodig om te werken. Bezoek https://home.solarmanpv.com om je te registereren. Je kunt customer support vragen om je oude data te migreren (als dat nodig is). Het nieuwe portaal en de API hebben een andere plant_id, het los configureren van een serienummer is niet langer nodig.

De nieuwe API performt goed en is beveiligd, maar de dataverzameling en verwerking is nog niet helemaal geweldig en traag. Hopelijk zal dit snel verbeteren.

Grote voordeel is dat je opnieuw toegang krijgt tot je historische data.

`solarmanpv` client werkt niet meer – nieuwe API

Omnikdataloggers solarmanpv client lijkt niet langer te werken. Gebruikers hebben berichten ontvangen dat de oude dienstverlening is gestopt. The portaal functionaliteit is verplaatst naar https://home.solarmanpv.com/. Het lukt mij deze nieuwe gebruikersinterface in gebruik te nemen door mijn wachtwoord te resetten waarbij ik het zelfde emailadres hebt gebruikt als voorheen. Terwijl ik dit schrijf moet mijn data nog wel worden gemigreerd. Je kunt contact opnemen met klantenservice@solarmanpv.com voor ondersteuning met de datamigratie. Eenmaal ingelogd kun je een omvormer toevoegen met het serienummer van de WiFi logger. Dat zou niet nodig moeten zijn als je data correct is overgezet. Solarman heeft ook een nieuwe API geïntroduceerd. Ik zal Omnikdatalogger een update geven om die nieuwe API te ondersteunen via de solarmanpv plugin, maar dat kan even duren. Je moet hiervoor wel even een account aanmaken zodat je toegang hebt tot het portaal en je data. Er is een link op de login pagina van het nieuwe portaal voor 'oud' Solarman/Omnik gebruikers.

Link om oude SOLARMAN-gebruikers op te merken

Mijn doel is om de togenag tot real-time-data via de solarmanpv client te herstellen met de nieuwe API.

Tot ziens!

Gas monitoring beschikbaar

De nieuwste versie van Omnik Data Logger (1.7.1) ondersteund nu het monitoren van gas verbruik (via MQTT) via het nieuwe Energie dashboard in Home Assistant. Werk Home Assistant bij tot versie 2021.9.x of hoger voordat je Omnik Data Logger bijwerkt, anders werkt MQTT niet meer.

Het nieuwe Home Assistant Energie dashboard met gas monitoring.

De eenheid voor gas verbruik is gewijzigd van m3 naar m³ om compatibel te zijn met Home Assistant. Gas verbruik per uur was m3/h en is nu m³/h.