Giter Club home page Giter Club logo

raspberrypirelays's Introduction

RaspberryPiRelays

Per i raspberry senza systemd bisogna mettere questa linea nel file di configurazione dei cron job (usando sudo): @reboot /home/pi/RaspberryPiRelays/script/RelaysServerTest.py --savedrestart -p 5002 -c /home/pi/RaspberryPiRelays/script/relays_rpi02.txt >> /home/pi/log.txt 2>&1

Per i raspberry con systemd bisogna attivare i servizi al boot con: sudo systemctl enable relayserver

Per segnalare lo stato dell'allarme presenze con i LED occorre eseguire: ./RaspberryPiRelays/script/presencealarmChecker.sh RaspberryPiRelays/script/presencealarmConfig.txt & quando systemd non e' disponibile. Altrimenti viene installato automaticamente come unit systemd e per attivarlo al boot occorre eseguire il comando: sudo systemctl enable presencealarmchecker

Per funzionare bisogna installare inotify-tools: sudo apt-get install inotify-tools

Altri pacchetti da installare: sudo apt-get install apache2

raspberrypirelays's People

Contributors

venturia avatar

Watchers

James Cloos avatar  avatar

raspberrypirelays's Issues

Scripts per accendere e spegnere relays se un file esiste o no

Scrivere scripts, python o bash, che mandano i comandi per spegnere/accendere/configurare i relays in case alla presenza o assenza di un file.
Cercare di avere un modo elegante per configurare questi script per definire il file, la logica per accendere e spegnere, la lista di canali GPIO da accendere e spegnere, l'indirizzo IP e la porta a cui inviare il comando.

Log file

Aggiungere la scrittura dei comandi ricevuti dal server

Web interface deve mostare risposte del server

Il web interface deve mostrare interattivamente le risposte ottenute dal server a seguito dei comandi inviati dal web interface o per preparare la lista di bottoni per controllare i relays con il web interface

Accensione e spegnimento con richieste multiple

Prevedere nel server che alcune porte siano accese o spente solo se piu' comandi di accensione o spegnimento (da clienti diversi) sono stati ricevuti. Definire quanti clienti, monitorare lo stato delle richieste, decidere quale e' la condizione per accendere o spegnere.

Stato GPIO port

A richieste di stato il server deve rispondere con:

  • lista porte GPIO utilizzabili
  • etichette delle porte GPIO utilizzabili
  • elenco delle porte GPIO utilizzate da altri sistemi (locked)
  • stato delle porte GPIO (accese/spente)
  • stato del server

Indirizzare comandi usando nome porta GPIO

Aggiungere la possibilita' di inviare comandi al server usando il nome e non il numero della porta GPIO.
Posso introdurre una nuova serie di comandi grazie alla quale il server capisce che deve aspettarsi il nome e non il numero e quindi fa la conversione

Schemi

Aggiungere gli schemi delle connessioni con i Darlington, i relais e i LED

Libreria per decodificare l'output del comando stato

Sviluppare librerie python per decodificare l'output del comando "stato". Dovrebbe essere un oggetto che per ogni porta GPIO restituisce le sue caratteristiche. La libreria e' l'unica cosa da aggiornare se ci sono cambiamenti di formato.

Web interface

Il web interface deve essere capace di:

  • ricavare la lista di canali abilitati, il loro stato e la loro maschera dei bit dal server e usarla per creare la pagina
  • ricavare se un canale e' locked o no e abilitare o disabilitare i bottoni
  • configurare la porta e il nodo remoto a cui mandare i comandi
  • mostrare le risposte del server

Comando per invertire stato relay

per controllare luci che hanno anche un deviatore puo' essere utile avere un comando per invertire lo stato di un relay, indipendentemente dallo stato. Questo deve essere possibile solo per i relays configurati senza bit mask.

Codice risposta

Aggiungere a ogni risposta del server un codice per capire se la risposta e' positiva o se ci sono stati errori

Path di relaylib.py

Lo script di installazione deve essere capace di configurare correttamente il path di relaylib.py quando installa gli scripts che lo usano.
Oppure devo installare questo file in una directory opportuna per python

Trasformare il server in un service

Provare a trasformare il server in un client.
Devo riuscire a:

  • configurare in modo pulito il log file
  • decidere il momento giusto quando far partire il processo: la porta GPIO deve essere utilizzabile
  • permettere la ripartenza in caso di interruzione del processo: mail quando succede, intervallo di attesa, partenza dallo stato precedente, numero finito di tentativi

Configurazione server per ripartenze in automatico

Configurare opportunamente il server in systemd in modo che:

  • dopo un reboot riparta al momento giusto
  • ad uno shutdown sia spento in modo opportuno
  • se ha un crash per qualsiasi motivo, venga mandato un mail di errore e provi a ripartire (dallo stato precedente #6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.