Supla virtual device i pushover

User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Koledzy , zmajstrowałem sobie na malinie 4 czujniki od xiaoim i to już działa, dodałem 4 czujniki otwarcia okna to też działa, na podstawie Robertowego B. podręcznika z powiadomieniem pushover o poczcie chciałem otrzymywać powiadomienie o otwarciu okien no i to nie działa.
Całość zostanie jeszcze wyposażona w cztery przekaźniki które będą sterować rozdzielaczem w ogrzewaniu podłogowym ale to w następnej kolejności .
Do rzeczy ,po uruchomieniu czujników, rozszerzyłem ilość virtualnych kanałów

Code: Select all

[GLOBAL]
device_name=Bramka Xiaomi


[SERVER]
host=svr1.supla.org
protocol_version=12

[AUTH]
[email protected]

[CHANNEL_0]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th0.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_1]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th1.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_2]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th2.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_3]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th3.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_4]
function=GATEWAYSENSOR
file=/home/pi/supla-window/okno_filip.txt
w folderze

Code: Select all

 supla-window 
stworzyłem skrypt

Code: Select all

import RPi.GPIO as GPIO
import argparse
import os
import re
from time import sleep

#parser=argparse.ArgumentParser(allow_abbrev=False)
parser=argparse.ArgumentParser()
parser.add_argument("--window","-w", help="Set name file window",metavar='window.txt')
parser.add_argument("--gpio","-g", help="Get nuber  gpio's on board", metavar='', type=in$

args=parser.parse_args()

GPIO.setmode(GPIO.BCM)
GPIO.setup(args.gpio, GPIO.IN, pull_up_down=GPIO.PUD_UP)

print(args.window)
print(args.gpio)
try:
    while True:
        sleep(0.1)
        State1 = GPIO.input(args.gpio)
        f = open(args.window);
        x = f.read()
        f.close()
        if State1 == 0:
                if x == "1":
                        f = open(args.window,"w")
                        f.write("0")
                        f.close()
        if State1 == 1:
                if x == "0":
                        f = open(args.window,"w")
                        f.write("1")
                        f.close()
        print(State1)
except KeyboardInterrupt:
    GPIO.cleanup();

który tworzy plik window.txt ze stanem okna : 0 - otwarte 1 - zamkiete

ten sam plik chcę wykorzystać do powiadomienia
w pliku

Code: Select all

  /etc/supervisor/conf.d/supla-window-filip.conf
jest

Code: Select all



[program:supla-window-filip]
command=python2 ./window.py --window okno_filip.txt --gpio 21
directory=/home/pi/supla-window
autostart=true
autorestart=true
user=pi



Skrypt jest uruchomiony i działa ,zmieniaja sie ikonki okien w aplikacji

Code: Select all

pi@raspberrypi:~ $ supervisorctl status
cpu-temp                         RUNNING   pid 21273, uptime 0:00:15
mi-th-0                          RUNNING   pid 21272, uptime 0:00:15
mi-th-1                          RUNNING   pid 21271, uptime 0:00:15
mi-th-2                          RUNNING   pid 21270, uptime 0:00:15
mi-th-3                          RUNNING   pid 21267, uptime 0:00:15
supla-pushover                   RUNNING   pid 21263, uptime 0:00:15
supla-virtual-device             RUNNING   pid 21266, uptime 0:00:15
supla-window-dach                RUNNING   pid 21265, uptime 0:00:15
supla-window-filip               RUNNING   pid 21264, uptime 0:00:15
supla-window-maks                RUNNING   pid 21276, uptime 0:00:15
pi@raspberrypi:~ $

w pliku

Code: Select all

 supla-pushover/supla-pushover-config.yaml 
jest

Code: Select all


supla:
  port: 2016
  host: 'srvX.supla.org'
  email: '[email protected]'
  protocol_version: 10

pushover:
  user: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  token: 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy''

notifications:
  - trigger: 'onchange'
    condition: '%channel_4% == 0'
    message: 'Otwarte okno!'

Oczywiście konto na pushover mam, i działają powiadomienia z supla.fracz.com
ustawiłem osobny token na supla-scripts osobny virtual-device
nie wiem w czym problem , ale nie działa , za zielony jestem w te klocki, :lol: zielony he, he
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Numer kanału dla Supla Pushover to w Cloud te cyferki po ID.
Supla_channel.jpg


Ps. Fajny skrypt do czytania stanu GPIO. Dzięki za udostępnienie, przyda się.
Jak przypuszczam, sterowanie zaworami (4 przekaźnikami) będzie na podstawie temperatur z LYWSD03MMC oraz otwarcia okna, ale logika będzie realizowana lokalnie na Raspberry?
You do not have the required permissions to view the files attached to this post.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Robert Błaszczak wrote: Wed Feb 03, 2021 7:40 pm Numer kanału dla Supla Pushover to w Cloud te cyferki po ID.

Supla_channel.jpg


Ps. Fajny skrypt do czytania stanu GPIO. Dzięki za udostępnienie, przyda się.
Jak przypuszczam, sterowanie zaworami (4 przekaźnikami) będzie na podstawie temperatur z LYWSD03MMC oraz otwarcia okna, ale logika będzie realizowana lokalnie na Raspberry?
A widzisz , trzeba czytać ze zrozumieniem :D , teraz działa .
PS. znalazłem małą literówkę w twojej instrukcji
"supervisorctl stop supla-virtual-devicekod"
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Dzięki, literówka poprawiona. Coś się przykleiło :lol: .
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Chciałbym teraz wysterować gpio malinki ale nie bardzo wiem jak.
Zmodyfikowałem plik supla-virtual-device.cfg , wstawiłem kanał

Code: Select all


[CHANNEL_11]
function=POWERSWITCH
command_on =  
command_off = 

w apce pojawił się przełącznik ale
nie mam pomysłu jak wysterować gpio ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Może w ten sposób:

Code: Select all

[CHANNEL_11]
function=POWERSWITCH
command_on =  echo '1' > channel_11.txt
command_off = echo '0' > channel_11.txt
Do tego należałoby napisać skrypt sprawdzający wartości w pliku channel_11.txt i na podstawie tych wartości sterować GPIO.

Tyle że to będzie działać tylko kiedy zmienimy stan w aplikacji na smartfonie.

Nie używałem jeszcze innych kanałów poza sensorami. Muszę się tym pobawić.

EDIT: drobna poprawka w przykładowej konfiguracji. Aby stan kanału zapisywać w jednym wierszu usunąłem jeden znak >.
Last edited by Robert Błaszczak on Sat Feb 06, 2021 8:56 am, edited 2 times in total.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

W sumie to się zastanawiam czy konieczność sterowania z aplikacji będzie mi potrzebna w tym projekcie . Projekt nad którym pracuje to sterownik do podłogówki oparty o czujniki xiaomi i czujnik otwarcia okna, które będą załączać termo siłownik poprzez przekaźnik.
.Także w tym projekcie chyba sobie to odpuszczę , ale dobrze by było wiedzieć wiedzieć na przyszłość jak takie GPIO wysterować .
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)

Return to “Pomoc”