Skip to content

ichko/hivemon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hivemon

IOT project for monitoring bee hives

Usage

let { DeviceManager } = require('./app/device-manager');
let { HiveMonitor } = require('./app/monitor');
let { HiveApi } = require('./app/api');


let port = 3001;
let monitoringDelay = 5000;
let apiCredentials = {
    username: 'admin',
    password: 'admin'
};
let espCredentials = {
    username: 'admin',
    password: 'admin'
};


new DeviceManager().init('mongodb://localhost:27017/hive').then(manager => {
    let api = new HiveApi(manager, apiCredentials);
    let monitor = new HiveMonitor({
        credentials: espCredentials,
        manager,
        frequency: monitoringDelay,
        logger: console.log
    });
    manager.setSensor(
        { name: 'hiveTemperature', displayName: 'Hive temperature' },
        { name: 'piloTemperature', displayName: 'Pilo temperature' },
        { name: 'light', displayName: 'Light' },
        { name: 'humidity', displayName: 'Humidity' }
    );
    manager.setDevice(
        ['hiveTemperature', 'piloTemperature', 'light', 'humidity'],
        { name: 'hive0', endpoints: {
            sensors: 'http://192.168.43.82/sensors',
            lock: 'http://192.168.43.82/lock',
            unlock: 'http://192.168.43.82/unlock',
            update: 'http://192.168.43.82/update'
        }, location: 'Sofia', displayName: 'Hive 0' }
        // { name: 'hive1', url: '0.0.0.1', location: 'Sofia', displayName: 'Hive 1' }
    );
    // repository.addSensorData('hive0', 'light', 600, new Date())
    // repository.addSensorData('hive0', 'light', 10, new Date())
    // repository.addSensorData('hive0', 'hiveTemperature', 10, new Date())
    // repository.addSensorData('hive0', 'humidity', [1, 2, 3], new Date());

    console.log(`Monitoring and api (port: ${ port }) initiated...`);
    monitor.start();
    api.start(port);
})
.catch(console.log);