diff --git a/.ionide/symbolCache.db b/.ionide/symbolCache.db new file mode 100644 index 0000000..8a73c4f Binary files /dev/null and b/.ionide/symbolCache.db differ diff --git a/Dockerfile b/Dockerfile index 898682d..ed52e31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN npm ci --only=production COPY . . -ENV NODE_ENV mitko +ENV NODE_ENV development-dockerfile # USING BASE_IMAGE FROM node:12-alpine diff --git a/config/config.json b/config/config.json index 51a1b4b..3db6c3d 100644 --- a/config/config.json +++ b/config/config.json @@ -9,7 +9,10 @@ "operatorsAliases": false, "logFile":"/dht.log", "gardenIP":"192.168.0.187", - "mqttIP": "192.168.0.10" + "mqttIP": "192.168.0.10", + "mqttPortHttp": "1884", + "mqttPortHttps": "8444", + "irHost": "192.168.0.10" }, "mitko": { "host": "node-mysql", @@ -21,7 +24,10 @@ "operatorsAliases": false, "logFile":"/dht.log", "gardenIP":"192.168.0.187", - "mqttIP": "192.168.0.10" + "mqttIP": "192.168.0.10", + "mqttPortHttp": "1884", + "mqttPortHttps": "8444", + "irHost": "192.168.0.10" }, "production": { "username": "iot", @@ -33,6 +39,9 @@ "operatorsAliases": false, "logFile":"/var/www/dht.log", "gardenIP":"192.168.0.187", - "mqttIP": "192.168.0.10" + "mqttIP": "192.168.0.10", + "mqttPortHttp": "1884", + "mqttPortHttps": "8444", + "irHost": "192.168.0.10" } } diff --git a/docker-compose.yml b/docker-compose.yml index 7ce8a18..381a127 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,8 +9,12 @@ services: - DATABASE_USER=root - DATABASE_PASS=mitko2021 - GARDEN_IP=192.168.0.187 + - MQTT_HOST=node-mqtt + - MQTT_PORT_HTTP=1883 + - MQTT_PORT_HTTPS=8444 depends_on: - node-mysql + - node-mqtt restart: always ports: - 2081:2080 @@ -22,6 +26,8 @@ services: MYSQL_ROOT_PASSWORD: mitko2021 MYSQL_USER: iot MYSQL_PASSWORD: mitko2021 + volumes: + - iotdbdata:/var/lib/mysql # for mitko:mqtt node-mqtt: image: eclipse-mosquitto @@ -29,4 +35,6 @@ services: hostname: node-mqtt ports: - 1885:1883 - restart: always \ No newline at end of file + restart: always +volumes: + iotdbdata: \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..0530123 --- /dev/null +++ b/readme.md @@ -0,0 +1,5 @@ +to build and deploy in docker: run | +~/var/www/html/iot.d-popov.com#> docker-compose build ++ docker-compose up ++ OR ++ docker-compose up --build \ No newline at end of file diff --git a/src/devices/ir.js b/src/devices/ir.js index 2dfd915..39fea76 100644 --- a/src/devices/ir.js +++ b/src/devices/ir.js @@ -6,13 +6,23 @@ const { parse } = require('querystring'); var moment = require('moment'); const request = require('request'); +const env = process.env.NODE_ENV || 'development'; +console.log("ENV: %s", env); +const config = require(__dirname + '/../../config/config.json')[env]; + +var irHost = process.env.IR_HOST || config.irHost || '127.0.0.1' + +console.log('DB: Checking config sources: process.env.IR_HOST: %s', process.env.IR_HOST); +console.log('DB: Checking config sources: config.irHost : %s', config.irHost ); +console.log('IR: irHost : %s', irHost ); + function GetDht() { try {//? var result; (async () => { try { //http://192.168.0.58/json?view=sensorupdate - var url='http://'+'192.168.1.143'+'/cm?cmnd=status%2010&user=admin&password=vlado555'; + var url='http://'+irHost+'/cm?cmnd=status%2010&user=admin&password=vlado555'; request(url, { json: true }, (err, res, body) => { if (err) { return console.log("Problem getting current conditions: " + err); } diff --git a/src/mqtt.js b/src/mqtt.js index 194894c..8f783df 100644 --- a/src/mqtt.js +++ b/src/mqtt.js @@ -4,29 +4,44 @@ const env = process.env.NODE_ENV || 'development'; console.log("ENV: %s", env); const config = require(__dirname + '/../config/config.json')[env]; +console.log('MQTT: Checking config sources: process.env.MQTT_HOST: %s', process.env.MQTT_HOST); +console.log('MQTT: Checking config sources: process.env.MQTT_PORT_HTTP: %s', process.env.MQTT_PORT_HTTP); +console.log('MQTT: Checking config sources: process.env.MQTT_PORT_HTTPS: %s', process.env.MQTT_PORT_HTTPS); +console.log('MQTT: Checking config sources: config.mqttIP : %s', config.mqttIP ); +console.log('MQTT: Checking config sources: config.mqttPortHttp : %s', config.mqttPortHttp ); +console.log('MQTT: Checking config sources: config.mqttPortHttps : %s', config.mqttPortHttps ); + var mosca = require('mosca'); var mqtt_settings = { - port:1884 + host:process.env.MQTT_HOST || config.mqttIP, + port:process.env.MQTT_PORT_HTTP || config.mqttPortHttp || 1884 } if(typeof credentials!=='undefined') { mqtt_settings.secure = { - port: 8444, + host:process.env.MQTT_HOST || config.mqttIP, + port: process.env.MQTT_PORT_HTTPS || config.mqttPortHttps || 8444, keyPath: SECURE_KEY, certPath: SECURE_CERT, } } -var mqtt = new mosca.Server(mqtt_settings); -mqtt.on('ready', function(){ - console.log("MQTT ready on port " + mqtt_settings.port); -}) -mqtt.on('clientConnected', function(){ - console.log("MQTT client connected !"); -}); + +mqtt_settings.port = parseInt(mqtt_settings.port); +console.log('MQTT: mqtt_settings.host : %s', mqtt_settings.host ); +console.log('MQTT: mqtt_settings.port : %s', mqtt_settings.port ); + +//MQTT SERVER!!! +//var mqttServer = new mosca.Server(mqtt_settings); +// mqttServer.on('ready', function(){ +// console.log("MQTT ready on port " + mqtt_settings.port); +// }) +// mqttServer.on('clientConnected', function(){ +// console.log("MQTT client connected !"); +// }); var mqtt = require('mqtt'); -var mqtt_client = mqtt.connect('mqtt://'+ config.mqttIP); +var mqtt_client = mqtt.connect('mqtt://'+ mqtt_settings.host); mqtt_client.on('connect', function () { console.log("MQTT connected. subscribing to topics"); mqtt_client.subscribe('tele/tasmota/STATE'); diff --git a/views/login.ejs b/views/login.ejs index 36b208d..2d37812 100644 --- a/views/login.ejs +++ b/views/login.ejs @@ -10,4 +10,7 @@
- \ No newline at end of file + + + \ No newline at end of file diff --git a/views/sort.ejs b/views/sort.ejs new file mode 100644 index 0000000..e34e4c2 --- /dev/null +++ b/views/sort.ejs @@ -0,0 +1 @@ +//generate ejs view to sort csv numbers from textbox \ No newline at end of file