home-assistance – uber nerds only

Na 10 jaar spelen met domoticz stappen over naar Home Assistance omdat steeds minder mensen zelf willen programmeren en er enorm veel intergratie mogelijk zijn voor HA.

HA op de raspberry pi Zerro 2 W, werk zo snel als op de 3B en is een prima oplossing voor kleine meet projecten.
https://www.home-assistant.io/installation/raspberrypi

Next op de lijst is het testen van een super simpele P1 integratie testen
https://www.home-assistant.io/integrations/dsmr/

RFXCOM integratie testen
https://www.home-assistant.io/integrations/rfxtrx/



In dit hoofdstuk gaan we op ‘unix’ nivo direct in het mechaniek van je PI wroeten … de kans dat het een paar keer fout gaat is gegarandeerd dus maak backup’s en test op je test systeem … ( ja ik weet dat je dat  niet doet maar dan heb ik het in ieder geval verteld )
Tip: Domoticz heeft een zeer duidelijke en complete handleiding 

Instaleren van home assistant op een pi zerro-w
download image via:
https://github.com/home-assistant/operating-system/releases/download/4.12/hassos_rpi0-w-4.12.img.gz
Brand image op je SD kaart met bv: win32diskimager
tip als je je sd kaart niet kan wissen gebruik dan windows schijfbeheer (rechtermuiskop/start) ps gooi niet de verkeerde schijf weg.

voor de overige stappen lees:
https://wltd.org/posts/how-to-install-home-assistant-on-the-raspberry-pi-zero-super-easily

Reading the API from the P1MON energie manager.
We use the P1MON energie manager for measuring power, gas and water on a raspbery pi zirro-w. Is a very stable and easy to use energie manager that can be used by anyone.
But we also wish to import the values in domoticz.
This is how we did that.

Test the result of API you wish to read. In this case the water API:
http://p1mon/api/v2/watermeter/day
That give this result:
[[“2021-05-23 00:00:00”, 1621720800, 13, 77.0, 77.0, 14.258]

First you have to create a http/poller
Using the values

exit create a virtual censor:
look up the IDX in the device list In this case 795

Next create the micro script the adjust the API value and import it in IDX795 device

Log in to your domoticz pi:
cd /home/pi/domoticz/scripts/lua_parsers/

create the LUA micro script:
sudo nano watermeter.lua

Cut and past the code and adjust it for your project, remember to adjust the IDX es :

— this is a micro script to import the api values from the P1MON meter
— in this case the water meters values
local idx = 794
— This function split a string according to a defined separator
— Entries are returned into an associative array with key values 1,2,3,4,5,6…
local function split(str, sep)
if sep == nil then
sep = “%s”
end
local t={} ; i=1
local regex = string.format(“([^%s]+)”, sep)
for str in str:gmatch(regex) do
t[i] = str
i = i + 1
end
return t
end
— Retrieve the request content
s = request[‘content’];
— Split the content into an array of values
local values = split(s, “,”);
— print (“>>>>Script test “)
— print (values[3],values[4],values[5],values[6])
domoticz_updateDevice(idx, ” , values[5]/10)

— below is a copy of the the above to import the total value [6]
local idx = 795
local function split(str, sep)
if sep == nil then
sep = “%s”
end
local t={} ; i=1
local regex = string.format(“([^%s]+)”, sep)
for str in str:gmatch(regex) do
t[i] = str
i = i + 1
end
return t
end
s = request[‘content’];
local values = split(s, “,”);
— print (values[3],values[4],values[5],values[6])
domoticz_updateDevice(idx, ” , values[6])

To trouble shoot you can un-comment the:
— print (values[3],values[4],values[5],values[6])
that will print the 3,4,5 and 6th value in the log file

Special thanks to Roel Reijn ( fb dutch domoticz group) for helping to creating the lua micro script and the masterclass LUA 😉

Running project: BME680 VOC/CO2 temperatuur , luchtdruk en luchtvochtigheid sensor.
Let op dit is lab / knutsel project , de meetwaarden zullen afwijken door bv de hitte van de Pi zelf … neem de meet waarden dan ook niet te serieus !

Close-up of mounted BME680 and solder pads

Software installatie:
Let op tijdens de onderstaande stappen kan je een melding krijgen dat bepaalde software achter loopt, voer dan de voor gestelde update uit.

Aan de slag:
SSH naar je pi en voer de volgende commando uit:

Zorg dat je I/O header klaar is voor gebruik:
curl https://get.pimoroni.com/i2c | bash

Haal de BME680 library op:
git clone https://github.com/pimoroni/bme680
cd bme680/library
sudo python setup.py install

Haal de rest van de software op incl examples:
curl https://get.pimoroni.com/bme680 | bash

In lezen:
https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-bme680-breakout

dagelijkse reboot van je pi,
Een van de meest frustrerende issues met de pi is dat hij soms ineens hangt en onbereikbaar is. De gangbare methode is:
tot 10 tellen ( idd nu om de meeste frustratie kwijt te raken )
uitzetten met de schakelaar in de het snoer
tot 10 tellen (omdat hardware er niet goed tegen kan als je ze snel aan en uitdoet )
aanzetten … kijken naar het rust gevende ledje en weer door
Maar dat kan ook automatisch met behulp van de crontab.

sudo crontab -e
2 voor nano
(Voeg deze regel toe:)
0 4 * * * /sbin/shutdown -r now
(en bewaar CTRL x, yes )
Nu word je pi dagelijk om 04:00 uur gereboot

Het Sonoff project,
Upgrade je sonoff mini met behulp van eWeLink app naar 3.5.

De Sonoff mini verie 3.5 kan je nu in DIY mode zetten door TWEE maal 5 sec op de button te drukken.
De eerste X zou genoeg zijn als hij leeg was maar de tweede X reset de Sonoff mini en zet hem in AP mode . Zodra de LED gelijkmatig snel flitst.

Kijk op je wifi en connect met de Sonoff AP: ITEAD-XXXXXXX (password: 12345678)
Vervolgens krijg je de vraag of je je Sonoff mini aan je WLAN wil knopen om gebruikt te kunnen maken van de DIY 2.0 ingang. Dus even je SSID over type ( idd wlan discovery doet het niet ) en de key.
Even wachten en er verschijnt Succes, The device will try to connect to
En daarna nietsssss … idd Sonoff blijft voor nerds
De blauwe LED blinkt nu 2 maal snel niets etc … te teken dat hij wel aan je netwerk hangt maar geen verbinding meer heeft met de eWeLink server … immers je ging de Sonoff zelf bedienen of via een andere applicatie bv domoticz
Als je geen type fouten gemaakt hebt vind je op je router een device dat sonoffDIY heet.
Gefeliciteerd je kan nu je Sonoff via het API protocol bedienen zie voorbeelden.
https://sonoff.tech/product-tutorials/diy-mode-to-control-the-sonoff-device

Meer verdieping voor het programeren van je API
http://developers.sonoff.tech/sonoff-diy-mode-api-protocol.html

SONOFF DIY Tool
Nu de sonoff in DYI mode staat kan je testen met de DYI tool:
https://github.com/itead/Sonoff_Devices_DIY_Tools/blob/master/tool/tool_01DIY85(3.3.0).exe
Deze geeft je ook de mogelijkheid om te Flashen en toch maar voor een ander OS te gaan bv Tasmota
Letop zodra je de SONOFF flashed is er geen weg terug

MAX! QE3 – CUBE computer thermostaten uitlezen
Na verschillende vruchteloze pogingen is er nu dan toch een handig goed werkende plugin voor de MAX! computer thermostaten.

PuTTy naar je pi ( google knows )
ga naar de domoticz plugin dir
cd domoticz/plugins/
Importeer de scripts
git clone https://github.com/mvzut/maxcube-Domoticz-plugin MaxCube
als het goed is heb je nu een MaxCube dir

Restart de pi
Add hardware eQ3 Max
Vul het IP adres van je Cube in en je bent klaar


Meet informatie:
https://github.com/mvzut/maxcube-Domoticz-plugin

Quickfix domoticz hangt na dat het netwerk en de pi tegelijk opstarten.
Regelmatig hangt domoticz op het moment dat zowel het internet modem als de pi op starten.
Ook na een reboot komt domoticz niet terug.
Als je via Putty ( ik zei nerds only toch 😉 inlogt en het commando:
sudo service domoticz.sh status
geeft krijg je de datus te zien met iets als:
Oct 22 11:17:05 AdriaanMeet domoticz[715]: Domoticz running…
Oct 22 11:17:05 AdriaanMeet domoticz[714]: Could not lock PID lock file /var…g
Oct 22 11:17:05 AdriaanMeet domoticz.sh[545]: 2019-10-22 11:17:05.270 Statu…8
Oct 22 11:17:05 AdriaanMeet domoticz.sh[545]: 2019-10-22 11:17:05.271 Statu…/
Oct 22 11:17:05 AdriaanMeet domoticz.sh[545]: domoticz: Domoticz is starting….
Oct 22 11:17:05 AdriaanMeet domoticz.sh[650]: 2019-10-22 11:17:05.271 Statu…/
Oct 22 11:17:05 AdriaanMeet domoticz.sh[650]: domoticz: Domoticz is starting….
Oct 22 11:17:05 AdriaanMeet domoticz.sh[545]: domoticz: Could not lock PID l…g
Oct 22 11:17:05 AdriaanMeet systemd[1]: Started LSB: Home Automation System.
>>> Oct 22 12:08:26 AdriaanMeet domoticz[715]: Domoticz stopped…
Hieruit blijkt dat je domoticz service het niet meer snapte en iets anders leuks is gaan doen.
Door het comando:
sudo service domoticz.sh restart
te geven zal je domoticz weer tot leven komen. En kan je weer verder meten / regelen tot de volgende lompe reboot.
Als je dit zat bent en wil automatiseren kan dat op heel veel manieren, ik kies voor de aller simpelste namelijk het aanpassen van de rc.local file.
Na een reboot zullende commando’s in rc.locale uitgevoerd worden ( zeg maar de DOS autoexec.bat van heeeeeeel vroeger )

Dus edit rc.local en voeg de volgende sleep en restart toe:
sudo nano /etc/rc.local
#restart domoticz services on reboot
sleep 1m
sudo service domoticz.sh restart
sleep 5m
sudo service domoticz.sh restart
exit 0


Natuurlijk kan je hier een geweldig mooi script van maken die je gaat mailen en meuk maar ik wil heel simpel zeker weten dat de service restart na een reboot en zodra het netwerk weer terug is.

Oeps ik kan niet meer inloggen en rebooten help niets.
Een enkele keer blijft domoticz hangen en helpt rebooten niet of nauwelijk.
Soms krijg je het inlog scherm maar wordt je passwd niet herkent en krijg je na 3 pogingen de melding dat je het einde van het internet bereikt hebt en je maar een buiten moet gaan spelen.
Leuk maar daar wordt je natuurlijk niet gelukkig van … dus wat kan je wel doen?
– installer je putty software en ga naar de krochten van je unix ( dialect ) OS en log in … als je zo dom bent geweest je passwd voor PI op _raspberry_ te laten staan is dat een pietsie onhandig … zeg maar niveaux pincode op je bankpas schrijven …
Eenmaal ingelogd kan je met history even kijken wat je de laatste maal allemaal uitgevreten hebt maar het gaat nu even om inloggen op je gecrashte domoticz systeem …
Probeer eerst even :
sudo /etc/init.d/domoticz.sh restart
En kijk of je weer in kan loggen … zo niet maak een file met de naam ‘resetpwd’ in de directory domoticz aan … dus
cd domoticz
cat >> resetpwd
CLRL z
ls -ls en daar staat je file resetpwd 1 minute en dan is die weer weg
Domoticz geeft je nu een kans om je passwd te resetten
Maar minimaal zo belangrijk is het opsporen van de oorzaak van je system hangup!
Tip zet zo veel mogelijke vage hardware uit want dat is meestal de oorzaak van je system hangup.

Oeps de dB is gecrached:
Heel zelden komt het voor de je domoticz programma er geen gat meer in ziet en zelfs na een harde reboot ( =verwijder alle aansluitingen!! incl HDMI , ethernet en USB en maak de voeding los voor 10 sec en weer vast en kijk of de lampjes gaan knipperen ) niet meer wakker wil worden. Het beroemde domoticz is offline.
De oorzaken kunnen talrijk zijn maar de beroemdste is na een update.
Op het internet kan je je laten uitlachen over backups etc maar daar heb je nu niets aan.
Wat kan je wel doen?
Inloggen in je pi via PuTTY ( nerds only zei ik toch !)
sudo service domoticz.sh stop
maak een local copy van domoticz.db bv domoticz.db.old (gosh ik ben zo origineel )
backup domoticz.db naar je pc
en dan nu het spannende stuk … 
remove domoticz.db ( in de pi dummy !!)
reboot de pi en kijk verwachtings vol naar het scherm of domoticz het weer gaat doen

Als het goed gaat krijg je nu een clean install met waarschijnlijk de vraag of je wil gaan upgraden…. maar dat doe je niet!
restore ( via domotics menu ) eerst de oude db en upgrade dan is mijn advies 

Als het allemaal gelukt is maak je de jaarlijkse backup die je vervolgens vergeet … maar zolang je deze procedure weet te herinneren is de kans groot dat je ook de volgende crash overleeft

Buienradar:
Op zoek naar een grafiek van de zonne-energie die we in baarn hadden kunnen oogsten zit oa in buienradar. Het installeren gaat als volgt:

Voorbereiden:
sudo apt install libpython3.4
sudo apt install python3-dev

Het kopiëren van de scripts:

cd domoticz/plugins
git clone https://github.com/ffes/domoticz-buienradar.git

Opstarten Domoticz 
sudo service domoticz.sh restart

Alles wat je zou willen weten en meer:
https://github.com/ffes/domoticz-buienradar

ga naar hardware
buienradar toevoegen cd domoticz/plugins git clone https://github.com/ffes/domoticz-buienradar.git


cd domoticz/pluginsgit
clone https://github.com/ffes/domoticz-buienradar.git

Opstarten Domoticz 
sudo service domoticz.sh restart

Alles wat je zou willen weten en meer:
https://github.com/ffes/domoticz-buienradar


cd domoticz/pluginsgit
clone https://github.com/ffes/domoticz-buienradar.git

Opstarten Domoticz 
sudo service domoticz.sh restart

Alles wat je zou willen weten en meer:
https://github.com/ffes/domoticz-buienradar



PiMonitor:

Pi Monitor is een zeeeeer uitgebreid monitoring tool dat oa spannings fluctuaties in de gaten kan houden, je weet wel dat spannings tekentje rechts boven in je scherm.
Installeren doe je bv vanuit git hub:
ga naar de plugin dir
cd ./home/pi/domoticz/plugins 
Importeer alle files van uit GIT hub
sudo git clone https://github.com/Xorfor/Domoticz-PiMonitor-Plugin
zorg dat plugin.py gestart kan worden door:
chmod +x plugin.py
reboot en install PiMonitor in het HW menu

Ga naar hardware toevoegen en voeg Pimonitor toe en kijk in utilities voor de nieuwe meet tools

Tip als je niet van command line typen houd kan je zodra je commando uniek is twee keer op exc drukken en de pi zal de rest voor je in toetsen 

P1 poort van de nieuwe RFXCom -XL gebruiken:

De nieuwste RFXCom heeft een DSRM chip optie zodat je de p1 poort van je slimme meter uit kan lezen. Onder domoticz versie 4.10 ( nu nog beta ) zijn de volgende setting beschikbaar.
Zoek je slimme meter op in de tabel, in ons geval type 4, selecteer DSMR_4 en druk op set mode om te bewaren.
Tip: 
Op de RFXCom site zijn alle tools en een zeer uitgebreide handleiding te vinden

Kies DSMR versie 4 voor de meest gangbare P1 porten als je meter er niet bij staat 

Na een reboot zal je log file er zo uit kunnen zien:
2018-12-09 09:18:23.002 Status: RFXCOM: Using serial port: /dev/ttyUSB0
2018-12-09 09:18:23.653 Status: RFXCOM: Async mode set to: ‘DSMR 4/5’
2018-12-09 09:18:30.634 Status: P1 Smart Meter: Meter reports as DSMR 4.2
2018-12-09 09:18:31.727 (RFXCom-XL) P1 Smart Meter (Power)
2018-12-09 09:18:31.728 (RFXCom-XL) Usage (Usage L1)
2018-12-09 09:18:31.733 (RFXCom-XL) P1 Smart Meter (Gas)
2018-12-09 09:18:31.562 Status: P1 Smart Meter: Found gas meter on M-Bus channel 1
2018-12-09 09:18:41.760 (RFXCom-XL) P1 Smart Meter (Power)
2018-12-09 09:18:41.761 (RFXCom-XL) Usage (Usage L1)

Nefit Easy toevoegen:
https://www.domoticz.com/wiki/NefitEasy

Hier de stappen met mijn opmerkingen:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash –
sudo apt-get install nodejs
If necessary / not installed automatically, also install npm
sudo apt-get install npm
Install pm2 to control the service
sudo npm install pm2 -g
sudo pm2 startup
Install easy server
sudo npm i nefit-easy-http-server -g
Create start script
sudo nano /home/pi/scripts/nefiteasyhttpserver.sh
#!/bin/bash/usr/bin/easy-server –serial=your-serial –access-key=your-access –password=your-password –host=127.0.0.1 >/dev/null
( Deze gegevens vind je in je nefit easy op, en passwd heb je hopelijk op geschreven )
chmod 755 nefiteasyhttpserver.sh

Broadlink A1 toevoegen:
Check je pytonversie:
python3 –version
moet versie 3.5 of hoger zijn 

sudo pip3 install broadlink
sudo pip3 install pyaes
sudo pip3 uninstall pycryptodome

Lees:
https://www.domoticz.com/wiki/Plugins/BroadlinkRM2.html
copy plugin files to /home/pi/domoticz/plugins/BroadlinkRM2
mkdir /home/pi/domoticz/plugins/BroadlinkRM2
chmod +x plugin.py
chmod +x plugin_send.py
chmod +x plugin_http.py
chmod +x plugin_http.sh

sudo chmod + * 

sudo service domoticz restart

Letop haal de ‘:’ weg bij het toevoegen van het mac adress van je A1