Opentherm

Vanwege wat problemen met de centrale verwarming (CV) wil ik gaan monitoren wat er extern te meten is van de CV.

In het verleden de Opentherm print gebouwd en middels een Raspberry Pi (RPI) gekoppeld. Helaas was er ergens een fout in gekomen en werkte het niet meer zoals ik wenste en heb ik het in de ijskast gezet.
Na alles weer te hebben aangesloten ging ik eens kijken wat er nog werkte. En helaas bleek er niets meer op te starten. Omdat het zeker 2 jaar in de kast had gelegen heb ik besloten het weer vanaf het begin te gaan opbouwen met dezelfde hardware.

Stap1: De RPI weer nieuw leven inblazen met een nieuwe SD kaart met de laatste versie erop.

Een nieuw image van de raspian stretch Lite van https://www.raspberrypi.org/downloads/raspbian/ gedownload.
Niet vergeten een leeg ssh bestand op de SD kaart te plaatsen, zodat ik gelijk met ssh (Putty) aan de slag kan.

Gezorgd voor een vast IP adres  (192.168.9.237) middels DHCP-server. Daarom kan ik vanaf nu met het Windowsprogramma Putty vanaf mijn PC inloggen op de RPI

Het inloggen van een nieuw image doe ik altijd met de login "pi" en de gebruikersnaam "raspberry". Zodra ik ingelogd ben, verander ik gelijk het wachtwoord met "passwd" zodat het veilig blijft.
De RPI nog even updaten met: "sudo apt-get update sudo apt-get upgrade" en de image is klaar.

 

Stap 2: Kijken of ik kan communiceren met de Opentherm vanuit de RPI.

Omdat er geen serieel communicatieprogramma meer op de RPI zit, heb ik gekozen voor het programma Minicom.
Installeren voor de RPI gaat makkelijk met met "sudo apt-get install minicom"

Uit het verleden weet ik nog dat de interne rs232 op de ttyAMA0 zat. Met de info dat de communicatie ging over 9600 baud het volgende geprobeerd.

"minicom -D /dev/ttyAMA0 -b 9600 -o"

Daarna de spanning op de Opentherm en Voila. Ik krijg iets te zien met tekst. Dat klopt

 

Stap 3: Het RS232 signaal via de Raspberry Pi op het netwerk krijgen.

Na wat zoekwerk vond ik ser2net als mogelijke kandidaat.

Dus met "sudo apt-get install ser2net" geïnstalleerd.

Daarna het configuratiebestand aangepast met: "sudo nano /etc/ser2net.conf"En de regels aangepast naar:
"#2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2000:raw:600:/dev/ttyAMA0:9600 8DATABITS NONE 1STOPBIT banner
#2001:telnet:600:/dev/ttyS1:9600 8DATABITS NONE 1STOPBIT banner
#3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
#3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner"
Omdat de andere seriele poorten niet hoeven te worden doorgegeven, heb ik die voorzien van een #.

Na de aanpassing en bewaren ser2net.conf heb ik het programma herstart met: "sudo /etc/init.d/ser2net restart"

En controleren of het programma draait, kan met "sudo /etc/init.d/ser2net status"

 

Stap 4:

Mijn doel is om te registreren en de OTMONITOR lijkt daaraan te voldoen en dus begin ik met 4A. Echter omdat de logging stopt als het programma stopt, is het niet voor mijn doel geschikt. Omdat ik ook Domoticz heb draaien begin ik vanuit hier ook met de tweede keuse namelijk 4B

 

Stap 4a: Worden de gegevens doorgegeven over mijn netwerk.

Als eerste heb ik het programma "otmonitor" op mijn PC gestart.

Vanuit de menubalk gekozen voor "Options" en dan "Connection". De keuze gemaakt voor TCP connection. Mijn IP adres van de RPI  ingevuld en als poort 2000 gekozen. 

Menubalk  gekozen voor "File" en daarna voor "Diagnostics" en ik krijg zicht op info van de communicatie.

 

 Yess, ik heb contact.
Nu nog de webserver starten en ik kan het resultaat op mijn browser zien. Dus vanuit de menubalk "Options" daarna "Webserver" en daarna de knop "Start".
Dat laatste kan bij mij niet omdat hij al draaide :-)

 

 En nu in de browser intikken: "http://localhost:8080" en je krijgt het resultaat van noeste arbeid te zien :-)

 

Is dit af, nee.

Want zodra het programma OTMON wordt beëindigd stopt ook de logging. Het heeft dus een vervolg. 

 

Stap 4b: logging op een RPI met Domoticz

Ik heb Domoticz draaien en weet dat die een logging bijhoud. Dus als ik de koppeling maak met de meetgegevens ben ik klaar.
Ik ben naar mijn Domoticzprogramma gegaan en heb de gegevens van de RPI die gekoppeld is aan de Opentherm print ingevoerd.

Daarna kreeg ik een heleboel gegevens ter beschikking die eigenlijk meteen gelogd werden.

Ik moet wel nog even delen dat als je otmon aan hebt staan er geen gegevens worden gevonden door Domoticz. Dus eerst Otmon afsluiten !!!!

 

 

Herstart van de RPI

Om bij een herstart van de RPI ser2net te laten starten heb ik een aantal dingen toegevoegd.

Als eerste heb ik de Crontab geopend en gekozen voor de editor nano (Is het makkelijkst werken). dat heb ik gedaan met het commando:

"sudo crontab -e" Omdat er nog geen was, geeft hij aan dat hij een nieuwe maakt voor de root.

In de crontab heb ik het volgende toegevoegd.

 

 

De finale stap:


Ik moet zorgen dat de RPI nu wel "up to date" blijft middels update en upgrade
Er moet een watch-dog komen voor het geval de RPI vastloopt

Websites met daarin bruikbare informatie.

In mijn poging het project goed af te ronden heb ik mijn informatie van diverse websites gehaald. Omdat ik die informatie niet wil verliezen en ook de niet gebruikte kennis wil delen, heb ik de gebruikte links opgesomd.

 Mocht er een link verbroken zijn, dan zie ik graag een bericht in de contactpagina.

 

 Korte overdenking van dit project:


Als ik had geweten dat dit het resultaat zou zijn, dan zou ik de volgende keer gelijk de Openthermprint aan een ESP8266 chip hebben gekoppeld. Maar misschien bauw ik de RPI nog om tot logger.

 

 

Gebruik van Telegram (Bot Opentherm)

De BOT van de Telegram app.

  • Hoe het begon
  • Opentherm en waarschuwingsmeldingen

Op welke manieren kan ik berichten van mij automatisering doorsturen. Dan niet met mails, maar met een chat-app of iets anders wat wel universeel is en het bericht niet in de massa verdwijnt.
Ik kreeg van meerdere kanten te horen dat er een alternatief was voor Wattsapp en dat daarbij de mogelijkheid was om met een zelf gemaakt programma berichten te sturen naar de mobile telefoon.

Later bleek dat je dan ook gelijk het resultaat op de website kon zien.

Na wat kijken op het internet bleek dat het een "BOT" heet en dat je er best veel info over kan vinden.
Na wat kijken van You-tube filmpjes werd het me al wat duidelijker. Dus maar een account aangemaakt met de telefoon. Daarna kon ik vanaf de computer verder aan de slag.
Ik koos niet vanuit windows, maar vanuit de command-line met de Raspberry pi.

 

 Opentherm en waarschuwingsmeldingen 

Telegram Bot opzetten

Vanuit Telegram (Ik werk vanaf de website https://web.telegram.org/#/im?p=@BotFather)
De link werkt alleen als je bent ingelogd in Telegram !!

Vanuit de BotFather in de telegramapp de opdracht gegeven: "/newbot"

Ik kreeg toen de vraag om een naam op te geven voor mijn Bot. Ik heb toen gekozen voor "cimate control" als verwijzing voor meldingen die vanaf de CV installatie komen, maar mogelijk ook straks voor de afzuiging worden gebruikt. (De afzuiging kan met een bussysteem worden uitgelezen, een van mijn volgende projecten:-)

daarna moest ik een naam geven voor de bot, die moest eindigen op "bot". Helaas waren veel keuzes al gebruikt, maar uiteindelijk een naam gevonden.

En toen kwam de beloning van de BotFather, ik kreeg een "token". Met deze code kan ik mijn bot benaderen. Uitleg in https://core.telegram.org/bots/api en https://core.telegram.org/bots

 

Wat is een eigen robot zonder een afbeelding, dus een mooie foutmelding van mijn CV scherm geupload na het commando: "/setuserpic".
Daarna nog de commando's: "/setdiscription en /setabouttext /setprivacy -> ENABLED en /setjoingroups -> DISABLED" gezet.

Later toegevoegd: /setcommands  Keuze gemaakt voor de juiste bot en de tekst "waterdruk - geef de druk van de CV installatie" ingevoegd

Toen was het tijd om uit de chat met de BotFather te gaan.

Om met de API te kunnen communiceren, heb ik een browser venster geopend en de url ingevoed, bestaande uit: "https://api.telegram.org/bot<API -token>/getme" en later met "https://api.telegram.org/bot<API -token>/getupdates"
Daar heb ik met name de "id" en "chat:id" uit gehaald. Deze had ik nodig. Ik weet dat dat ook kan met een bot. (weet niet meer welke)

Open vervolgens binnen Domoticz de instellingen.

Daarna kies het tabblad notificaties

En vul onderin de pagina het vakje Telegram in met de API-token en de eerder verkregen id of chat:id

 En als je op de knop Testen klikt, verschijn er een melding in telegram.

Vergeet nu vooral niet op rechts bovenin op BEWAREN te klikken !!

Nu de instelling bij een sensor:

Kies vanuit het tabblad Overige je sensor. Ik heb met de Opentherm koppeling deze sensor van de Waterdruk van de CV ter beschikking.

Klik dan op Notofications en stel de diverse instellingen in.

En bij mij komt er een melding bij mijn telegram CV bot binnen als de waterduk op of boven de 3 Bar of op of onder de 1 Bar komt.

 

Commando's vanuit Telegram uitvoeren op locale machine

Kale RPI: Telnet: 

Voor de afhandeling in Python heb ik een aantal libarys nodig, geinstalleerd met:

  •  sudo apt-get install python-requests
  • sudo apt install python3-pip
  • sudo pip3 install telepot

 Met commando "python3 bot_input.py" start ik het programma

 

 

 

 

#MQTT #RPI #Telegram #Sonoff