Il fait beau, chaud, puis il pleut, et le gazon pousse encore et encore, puis il faut sortir la tondeuse, l'essence, la mettre en route, sympa mais un peu la corvé non ?
Perso j'ai de moins en moins de temps pour le faire sauf a des heures ou je dérange les voisins, pour resté courtois et parce que ce truc me faisait envie depuis long temps, j'ai investie dans un robot tondeuse Landroid M.
Bien sur il est connecté et propose une api en json et sur le serveur hebergé par le robot tondeuse (Cloud Free), pas mal !
Seulement il lui manque quelque chose, en cas de problème il n'y a aucune notification et il peut resté bloqué sur le toboggan, ou sous le bain de soleil dommage.
Du coup j'ai commencer a cherche une solution et Domoticz est venu a la rescousse.
J'ai donc commencé un script LUA qui va parser le json du robot et remonté les infos importantes a mes yeux.
Voici mon script LUA
Code : Tout sélectionner
-- Paramètres
local PIN = 0000 -- Code Pin du Landroid
local IP = "192.168.0.68" -- Adresse IP du Landroid entre les ""
local idxbat = 5558 -- IDX du widget Batterie % du Landroid
local idxstate = 5562 -- IDX du Widget text du Landroid
local idxmessage = 5561 -- IDX du Widget Alerte du Landroid
local debug = 1 --0 pour ne pas les voir, 1 pour voir tout les printsdans les logs, 2 pour ne voir que les valeurs importantes dans les logs
-- Fin Paramètres
function Chklandroid()
json = (loadfile "/home/nico/domoticz/scripts/lua/JSON.lua")() -- For Linux
local config=assert(io.popen('/usr/bin/curl http://admin:'..PIN..'@'..IP..'/jsondata.cgi'))
local blocjson = config:read('*all')
config:close()
if debug == 1 then
print('****************')
print (blocjson)
print('****************')
end
local jsonValeur = json:decode(blocjson)
state = jsonValeur.state
bat = jsonValeur.perc_batt
message = jsonValeur.message
batteryChargerState = jsonValeur.batteryChargerState
if debug == 2 or debug == 1 then
print('****************')
print(state)
print(bat)
print(message)
print(batteryChargerState)
print('****************')
end
commandArray[1]={['UpdateDevice'] = ''..idxstate..'|0|'..state..''}
commandArray[2]={['UpdateDevice'] = ''..idxbat..'|0|'..bat..''}
commandArray[3]={['UpdateDevice'] = ''..idxmessage..'|0|'..message..''}
end
commandArray = {}
--print('****************')
time = os.date("*t")
print(time)
-- etat du landroid toutes les 5 minutes
if (((time.min-1) % 2)== 0) then Chklandroid() end
return commandArrayIl me reste a trouver une fonction a la valeur batteryChargerState et surtout a gerer le widget "alerte" en couleur et en fonction de l’état du robot afin de m'envoyer une notif si le widget passe a rouge.
Les conseil sont les bienvenues