6 Commits
drv ... v0.5.8

Author SHA1 Message Date
lejubila
3ed46d80ad Merge branch 'master' of https://github.com/lejubila/piGarden 2018-07-18 23:10:29 +02:00
lejubila
05a73720bb Inserito data nel CHANGELOG prima della pubbilicazione della release, aggiunto prima implementazione sperimentale di mqttconnector 2018-07-18 23:08:16 +02:00
David Bigagli
fc717f18a2 Update README.md 2018-06-05 18:00:25 +02:00
David Bigagli
50117a5a96 Update README.md 2018-06-05 17:57:14 +02:00
David Bigagli
309c209b1b Update README.md 2018-06-05 17:56:35 +02:00
David Bigagli
9a81f0fbba Update README.md 2018-06-05 17:53:36 +02:00
7 changed files with 108 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
# 0.5.8 - xx/07/2018
# 0.5.8 - 19/07/2018
- Added "openweathermap" driver for impement check weather condition from openweatermap api
# 0.5.7 - 01/06/2018

View File

@@ -3,7 +3,7 @@
For more information see https://www.lejubila.net/2018/03/pigardent-0-5-5-driver-master-per-implementare-un-architettura-master-slave/
# Example of zone configuration in piGarden.conf
```bash
EV1_ALIAS="Giarino_Posteriore_DX" #
EV1_GPIO="drv:remote:PIREMOTE1:Giardino_Posteriore_DX"
@@ -11,3 +11,4 @@ PIREMOTE1_IP="192.168.1.51"
PIREMOTE1_PORT="8084"
PIREMOTE1_USER=""
PIREMOTE1_PWD=""
```

View File

@@ -5,6 +5,7 @@ More information on Sonoff Tasmota firmware: https://github.com/arendst/Sonoff-T
# Example of zone configuration in piGarden.conf
```bash
EV1_ALIAS="Giardino_Posteriore_DX"
EV1_GPIO="drv:sonoff_tasmota_http:SONOFF1:Power1"
EV1_MONOSTABLE=1
@@ -16,6 +17,6 @@ EV2_MONOSTABLE=1
SONOFF1_IP="192.168.1.1"
SONOFF1_USER="user"
SONOFF1_PWD="pwd"
```
More information for configuration: https://www.lejubila.net/2018/06/pigarden-0-5-7-gestisci-le-tue-elettrovalvole-con-i-moduli-sonoff-grazie-al-nuovo-driver-sonoff_tasmota_http

1
mqttconnector/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
piGardenMqttconnector.ini

2
mqttconnector/exec_command.sh Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
echo -e "$1" | ../piGarden.sh socket_server_command

View File

@@ -0,0 +1,88 @@
#
# Installare libreria paho-mqtt, configparser:
# sudo pip install paho-mqtt configparser
#
import paho.mqtt.client as mqttClient
import time
import subprocess
import configparser
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Connected to broker")
global Connected # Use global variable
Connected = True # Signal connection
else:
print("Connection failed")
def on_message(client, userdata, message):
print "Topic : " + message.topic
print "Message received: " + message.payload
if message.topic.startswith("pigarden/command/"):
print "pigarden command: " + message.payload
cmd = ""
cmd = message.payload
if pigarden_user != "" and pigarden_pwd != "":
cmd = pigarden_user + '\n' + pigarden_pwd + '\n' + cmd
p = subprocess.Popen([ pigarden_path + "mqttconnector/exec_command.sh", cmd ], stdout=subprocess.PIPE)
(output, err) = p.communicate()
## Wait for date to terminate. Get return returncode ##
p_status = p.wait()
print "Command : '" + cmd + "'"
print "Command output : ", output
print "Command exit status/return code : ", p_status
config = configparser.ConfigParser()
config.read('/etc/piGardenMqttconnector.ini')
Connected = False # global variable for the state of the connection
broker_address = config['mqtt']['broker_address']
port = int(config['mqtt']['port'])
user = config['mqtt']['user']
password = config['mqtt']['password']
client_id = config['mqtt']['client_id']
pigarden_path = config['pigarden']['path']
pigarden_user = config['pigarden']['user']
pigarden_pwd = config['pigarden']['pwd']
client = mqttClient.Client(client_id) # create new instance
client.username_pw_set(user, password=password) # set username and password
client.on_connect = on_connect # attach function to callback
client.on_message = on_message # attach function to callback
print broker_address, port, user, password
client.connect(broker_address, port=port) # connect to broker
client.loop_start() #start the loop
while Connected != True: #Wait for connection
time.sleep(0.1)
client.subscribe("pigarden/command/+")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
print "exiting"
client.disconnect()
client.loop_stop()

View File

@@ -0,0 +1,12 @@
[mqtt]
broker_address=m20.cloudmqtt.com
port=13554
user=ucorgnpg
password=K5iJrLxNnhbM
client_id=Python
[pigarden]
path=/home/pi/piGarden/
user=a
pwd=b