[LUA] Domotisé votre Landroid

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

[LUA] Domotisé votre Landroid

Message par deennoo »

Salut a tous,

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 commandArray


Il 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
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
phalseb
Messages : 41
Inscription : 16 janv. 2018, 17:11

Re: Domotisé votre Landroid

Message par phalseb »

Bonsoir Deennoo,

Je viens devoir que u as réussi à intégrer ton robot tondeuse.
J aimerai faire la même chose mais je n y connais pas grand chose.

Je commence à faire des scripts lua (j avoue à partir des scripts de ce forum) (notamment des interrupteurs à des lampes via lua). J’utilise également la « bible »: modules.lua
Bref tout ça pour dire que je commence.

Je ne capte pas encore bien json....

Peux tu m aider ?
J ai domoticz sur un pi3.
Mon robot est un worx Landroid L avec wifi connecté.

Merci
Répondre